:root{color-scheme:dark;--bg:#0d1117;--surface:#161b22;--surface-2:#21262d;--text:#e6edf3;--text-muted:#8b949e;--border:#30363d;--accent:#58a6ff;--accent-dim:#388bfd66;--link:#79c0ff;--danger:#f85149;--ok:#3fb950;--focus:#1f6feb;font-family:system-ui,Segoe UI,Roboto,sans-serif}body,html{background:var(--bg);color:var(--text);line-height:1.45;margin:0;min-height:100%}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:1.5rem;margin:0 0 .75rem}h1,h2{font-weight:600}h2{color:var(--text);font-size:1.1rem;margin:1.25rem 0 .5rem}p{color:var(--text-muted);max-width:55rem}button,input,select,textarea{font:inherit}input[type=number],input[type=password],input[type=text],select,textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);min-width:12rem;padding:.4rem .55rem}input:focus,select:focus,textarea:focus{outline:2px solid var(--focus);outline-offset:0}button{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;color:var(--text);cursor:pointer;padding:.4rem .75rem}button:hover:not(:disabled){background:#30363d;border-color:#8b949e}button:disabled{cursor:not-allowed;opacity:.55}.app{margin:0 auto;max-width:1100px;padding:1rem 1.25rem 2rem}.app-header{align-items:center;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-bottom:1.5rem;padding-bottom:.9rem}.app-header>a:first-of-type{color:var(--text)!important;font-size:1.05rem;font-weight:600;text-decoration:none}.app-header>a:first-of-type:hover{color:var(--accent)!important}.app-nav{align-items:center;display:flex;flex-wrap:wrap;gap:.6rem .9rem;margin-left:auto}table{background:var(--surface);border:1px solid var(--border);border-collapse:collapse;border-radius:8px;font-size:.95rem;overflow:hidden;width:100%}td,th{border-bottom:1px solid var(--border);padding:.5rem .65rem;text-align:left}thead th{background:var(--surface-2);color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:#1c2128}.text-err{color:var(--danger)!important}.text-ok{color:var(--ok)!important}.page-login{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:1rem}.page-login__box{background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0005;max-width:22rem;padding:1.5rem 1.25rem 1.75rem;width:100%}.page-login__box h1{margin-top:0}.page-login__box label{color:var(--text-muted);display:flex;flex-direction:column;font-size:.9rem;gap:.35rem;margin-bottom:.75rem}.page-login__box input{box-sizing:border-box;min-width:0;width:100%}.page-login__box button{background:var(--accent-dim);border-color:var(--accent);color:var(--text);margin-top:.5rem;padding:.5rem;width:100%}.page-login__box button:hover:not(:disabled){background:#388bfd99}.form-row{align-items:flex-end;display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin:.75rem 0}.form-row label{display:flex;flex-direction:column;font-size:.88rem;gap:.25rem}.form-row label,.muted{color:var(--text-muted)}select.route-item-select{max-width:100%;min-width:min(28rem,100%)}
