:root{--text:#1f2328;--text-muted:#6e7681;--text-subtle:#8b949e;--bg:#f6f7f9;--card-bg:#fff;--card-bg-subtle:#fafbfc;--border:#e5e7eb;--border-strong:#d0d5dd;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:#eff4ff;--accent-text:#fff;--danger:#dc2626;--danger-hover:#b91c1c;--danger-soft:#fef2f2;--success:#16a34a;--success-soft:#f0fdf4;--warning:#d97706;--warning-soft:#fffbeb;--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 4px 12px #10182814;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#e6e8eb;--text-muted:#9aa1ab;--text-subtle:#767d87;--bg:#111318;--card-bg:#1a1d23;--card-bg-subtle:#15171c;--border:#2b2f38;--border-strong:#3a3f4a;--accent:#5b8dff;--accent-hover:#77a0ff;--accent-soft:#182238;--accent-text:#0b1220;--danger:#f0605a;--danger-hover:#f68a85;--danger-soft:#2a1616;--success:#4ade80;--success-soft:#12241a;--warning:#f2b34d;--warning-soft:#2b220f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 16px #0006}}*{box-sizing:border-box}body{margin:0}h1,h2,h3{letter-spacing:-.01em;margin:0;font-weight:600}h1{font-size:22px}h2{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}h3{font-size:15px}p{margin:0}a{color:var(--accent)}.page{max-width:1040px;padding:var(--space-6) var(--space-5) var(--space-6);gap:var(--space-5);flex-direction:column;margin:0 auto;display:flex}@media (width<=768px){.page{padding:var(--space-4) var(--space-3)}}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-header-text h1{margin-bottom:4px}.page-header-text p{color:var(--text-muted);max-width:60ch;font-size:13.5px}.stack{gap:var(--space-5);flex-direction:column;display:flex}.centered-page{background:var(--bg);min-height:100vh;padding:var(--space-4);justify-content:center;align-items:center;display:flex}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-header h3{margin:0}.card-subtext{color:var(--text-muted);margin-top:2px;font-size:13px}button,.btn{cursor:pointer;border:1px solid var(--border-strong);background:var(--card-bg);color:var(--text);border-radius:var(--radius-sm);padding:7px 14px;font-size:13.5px;font-weight:500;line-height:1.3;transition:background-color .12s,border-color .12s,opacity .12s}button:hover,.btn:hover{background:var(--card-bg-subtle);border-color:var(--text-subtle)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button[type=submit],.btn-primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}button[type=submit]:hover,.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-danger{color:var(--danger);background:0 0;border-color:#0000}.btn-danger:hover{background:var(--danger-soft);border-color:var(--danger-soft);color:var(--danger-hover)}.btn-ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--card-bg-subtle);border-color:var(--border);color:var(--text)}.btn-block{width:100%}.btn-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.field{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.field-label{color:var(--text-muted);font-weight:500}input,select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);color:var(--text);padding:7px 10px;font-family:inherit;font-size:14px;transition:border-color .12s}input:hover,select:hover{border-color:var(--text-subtle)}input:disabled{opacity:.6}label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:13px;display:flex}.form-grid{gap:var(--space-3) var(--space-4);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end;display:grid}@media (width<=480px){.form-grid{grid-template-columns:1fr}}.form-actions{gap:var(--space-2);grid-column:1/-1;display:flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inline-form input,.inline-form select{flex:1;min-width:140px}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--card-bg);overflow:auto hidden}table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:560px}th,td{text-align:left;border-bottom:1px solid var(--border);overflow-wrap:break-word;padding:10px 14px;font-size:13.5px}th{color:var(--text-subtle);text-transform:uppercase;letter-spacing:.03em;background:var(--card-bg-subtle);font-size:11.5px;font-weight:600}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:var(--card-bg-subtle)}td .btn-row{justify-content:flex-end}.badge{text-transform:uppercase;letter-spacing:.02em;background:var(--border);color:var(--text-muted);border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-success{background:var(--success-soft);color:var(--success)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-warning{background:var(--warning-soft);color:var(--warning)}.badge-neutral{background:var(--accent-soft);color:var(--accent)}.stat-row{gap:var(--space-4);flex-wrap:wrap;display:flex}.stat{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);min-width:120px;padding:var(--space-3) var(--space-4);flex:1}.stat-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);font-size:11.5px;font-weight:600}.stat-value{margin-top:2px;font-size:20px;font-weight:600}.empty-state{text-align:center;color:var(--text-muted);padding:var(--space-6) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-size:13.5px}.loading-state{color:var(--text-muted);padding:var(--space-4) 0;font-size:13.5px}.error{color:var(--danger);background:var(--danger-soft);border-radius:var(--radius-sm);border:1px solid #0000;padding:8px 12px;font-size:13px}.notice{color:var(--success);background:var(--success-soft);border-radius:var(--radius-sm);padding:8px 12px;font-size:13px}.pill-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.pill{border:1px solid var(--border-strong);background:var(--card-bg);color:var(--text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500;transition:all .12s}.pill:hover{border-color:var(--accent)}.pill.active{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.navbar{z-index:10;background:var(--card-bg);position:sticky;top:0}.navbar-row{padding:0 var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;height:56px;display:flex}.navbar-hamburger{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--card-bg);width:34px;height:34px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;padding:0;font-size:16px;display:none}.navbar-links{align-items:center;gap:2px;display:flex}.navbar-brand{color:var(--text);margin-right:var(--space-4);align-items:center;gap:8px;font-size:14.5px;font-weight:700;text-decoration:none;display:flex}.navbar-brand-mark{background:var(--accent);width:22px;height:22px;color:var(--accent-text);border-radius:7px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.navbar-links a{color:var(--text-muted);border-radius:var(--radius-sm);padding:7px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background-color .12s,color .12s}.navbar-links a:hover{color:var(--text);background:var(--card-bg-subtle)}.navbar-links a.active{color:var(--accent);background:var(--accent-soft)}.navbar-dropdown{position:relative}.navbar-dropdown-trigger{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:7px 12px;font-family:inherit;font-size:13.5px;font-weight:500;transition:background-color .12s,color .12s;display:flex}.navbar-dropdown-trigger:hover,.navbar-dropdown-trigger.active{color:var(--text);background:var(--card-bg-subtle)}.navbar-dropdown-trigger.active{color:var(--accent);background:var(--accent-soft)}.navbar-dropdown-chevron{font-size:10px;transition:transform .12s}.navbar-dropdown-trigger[aria-expanded=true] .navbar-dropdown-chevron{transform:rotate(180deg)}.navbar-dropdown-menu{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);min-width:170px;box-shadow:var(--shadow-md);z-index:20;flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.navbar-dropdown-menu a{color:var(--text-muted);border-radius:var(--radius-sm);padding:8px 10px;font-size:13.5px;font-weight:500;text-decoration:none}.navbar-dropdown-menu a:hover{color:var(--text);background:var(--card-bg-subtle)}.navbar-dropdown-menu a.active{color:var(--accent);background:var(--accent-soft)}.navbar-user{align-items:center;gap:12px;display:flex}.navbar-user-info{color:var(--text-muted);align-items:center;gap:8px;font-size:13px;display:flex}.navbar-avatar{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);text-transform:uppercase;border-radius:50%;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.navbar-mobile-menu{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);flex-direction:column;gap:2px;display:flex}.navbar-mobile-menu a{color:var(--text-muted);border-radius:var(--radius-sm);padding:10px 8px;font-size:14px;font-weight:500;text-decoration:none}.navbar-mobile-menu a:hover{color:var(--text);background:var(--card-bg-subtle)}.navbar-mobile-menu a.active{color:var(--accent);background:var(--accent-soft)}.navbar-mobile-section-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);padding:10px 8px 2px;font-size:11px;font-weight:600}.navbar-mobile-divider{border:none;border-top:1px solid var(--border);margin:var(--space-2) 0}.navbar-mobile-user{color:var(--text-muted);align-items:center;gap:8px;padding:8px;font-size:13px;display:flex}@media (width<=768px){.navbar-links,.navbar-user{display:none}.navbar-hamburger{display:flex}}.login-card{gap:var(--space-4);flex-direction:column;width:100%;max-width:340px;display:flex}.login-brand{align-items:center;gap:var(--space-2);text-align:center;margin-bottom:var(--space-2);flex-direction:column;display:flex}.login-brand .navbar-brand-mark{border-radius:var(--radius-md);width:40px;height:40px;font-size:18px}.login-brand h1{font-size:18px}.login-brand p{color:var(--text-muted);font-size:13px}.quick-links{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.quick-link-card{color:inherit;flex-direction:column;gap:4px;text-decoration:none;display:flex}.quick-link-card h3{color:var(--text)}.quick-link-card p{color:var(--text-muted);font-size:13px}.quick-link-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.dashboard-section-label{text-transform:uppercase;letter-spacing:.03em;color:var(--text-subtle);margin:0 0 var(--space-2);font-size:11.5px;font-weight:600}.manage-links{gap:var(--space-2);flex-wrap:wrap;display:flex}.manage-link{color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-bg);padding:8px 14px;font-size:13px;font-weight:500;text-decoration:none;transition:all .12s}.manage-link:hover{color:var(--text);border-color:var(--border-strong);background:var(--card-bg-subtle)}.route-loader-inline{vertical-align:-3px;margin-right:6px;display:inline-block}.route-loader-inline .route-loader-path{stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:41;stroke-dashoffset:41px;animation:1.4s ease-in-out infinite route-loader-draw-inline}.route-loader-inline .route-loader-vehicle{fill:currentColor}.route-loader-panel{align-items:center;gap:var(--space-2);padding:var(--space-4) 0;flex-direction:column;display:flex}.route-loader-panel .route-loader-path{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:235;stroke-dashoffset:235px;animation:2.6s ease-in-out infinite route-loader-draw-panel}.route-loader-panel .route-loader-vehicle{fill:var(--card-bg);stroke:var(--accent);stroke-width:2px}.route-loader-node{fill:var(--accent);opacity:.35;transform-box:fill-box;transform-origin:50%;animation:2.6s ease-in-out infinite route-loader-pulse}.route-loader-node-depot,.route-loader-node-end{opacity:.6}.route-loader-label{color:var(--text-muted);margin:0;font-size:13px}@keyframes route-loader-draw-inline{0%{stroke-dashoffset:41px}55%{stroke-dashoffset:0}to{stroke-dashoffset:-41px}}@keyframes route-loader-draw-panel{0%{stroke-dashoffset:235px}55%{stroke-dashoffset:0}to{stroke-dashoffset:-235px}}@keyframes route-loader-pulse{0%,to{opacity:.35;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.route-loader-path,.route-loader-node{animation:none!important}}
