:root {
  --bg:#f7f6f2; --panel:#ffffff; --ink:#082440; --muted:#65717d; --line:#e2e3df;
  --teal:#c6933d; --teal-dark:#a9772b; --warning:#b76d00; --critical:#b83030; --ok:#2b7257;
  --shadow:0 12px 30px rgba(12,41,64,.08);
  --control-bg:#ffffff; --control-border:#cad5dc; --label:#344d60; --surface-soft:#f7fafb;
  --surface-raised:#fbfbf9; --ghost-bg:#edf2f5; --row-hover:#f7fafb; --map-filter:none;
}
*{box-sizing:border-box} html{scroll-behavior:smooth}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg)}
button,input,select{font:inherit}.hidden{display:none!important}.muted{color:var(--muted);font-size:.9rem}.error{color:var(--critical);min-height:1.2rem;margin-top:.6rem}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip-link{position:fixed;z-index:10000;top:8px;left:8px;transform:translateY(-150%);padding:10px 14px;border-radius:8px;background:#fff;color:#082440;font-weight:800;box-shadow:0 4px 18px rgba(0,0,0,.25)}.skip-link:focus{transform:translateY(0)}
:focus-visible{outline:3px solid #d3a33e;outline-offset:3px}button:focus-visible,.button-link:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d3a33e;outline-offset:2px}.row-click:focus-visible,.route-history-row:focus-visible,.platform-org-row:focus-visible,.ranking-row:focus-visible{outline-offset:-3px;background:var(--row-hover)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top left,#f6ecd9,transparent 38%),radial-gradient(circle at bottom right,#e8eef4,transparent 35%),var(--bg)}
.login-card{width:min(440px,100%);background:var(--panel);border:1px solid var(--line);border-radius:22px;padding:32px;box-shadow:var(--shadow)}.login-logo{width:220px;max-width:100%;display:block;margin-bottom:22px}.login-card h1{margin:.2rem 0 20px}.login-card p{color:var(--muted);line-height:1.55}.login-card label,.form-panel label{display:grid;gap:7px;margin:14px 0;color:#344d60;font-weight:600;font-size:.9rem}.login-card input,.form-panel input,.form-panel select{width:100%;padding:11px 12px;border:1px solid #cad5dc;border-radius:10px;background:#fff;color:var(--ink)}
.login-legal-links{position:absolute;z-index:2;left:50%;bottom:18px;transform:translateX(-50%);display:flex;gap:18px;font-size:.85rem}.login-legal-links a{color:#35566d}.app-legal-links{grid-column:1/-1;display:flex;gap:12px;font-size:.75rem}.app-legal-links a{color:#9eb2c2}.driver-legal-links{display:flex;justify-content:center;gap:16px;padding:12px 16px 18px;font-size:.78rem}.driver-legal-links a{color:var(--muted)}
button,.button-link{border:0;border-radius:10px;min-height:44px;padding:10px 14px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.primary{background:var(--teal);color:#fff;font-weight:700}.primary:hover{background:var(--teal-dark)}.ghost{background:#edf2f5;color:var(--ink)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:245px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#071f36;color:#fff;padding:22px 16px;display:flex;flex-direction:column}.brand-logo{width:190px;background:#fff;border-radius:12px;padding:6px;margin:0 auto 22px}.sidebar nav{display:grid;gap:7px}.nav-btn{background:transparent;color:#c8d7e3;text-align:left;justify-content:flex-start}.nav-btn.active,.nav-btn:hover{background:#163b58;color:#fff;box-shadow:inset 3px 0 0 var(--teal)}.sidebar-footer{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:16px;display:grid;gap:8px}.sidebar-footer .muted{color:#9eb2c2}.sidebar-footer .ghost{background:#16364d;color:#fff}
.content{padding:28px;min-width:0}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.topbar h1{margin:0 0 3px;font-size:1.75rem}.top-actions{display:flex;gap:8px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:14px;margin-bottom:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 16px rgba(12,41,64,.04)}.card .value{font-size:2rem;font-weight:800;margin-top:5px}.card.warning .value{color:var(--warning)}.card.critical .value{color:var(--critical)}.card.ok .value{color:var(--ok)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:0 5px 16px rgba(12,41,64,.04);margin-bottom:16px}.panel h2{margin:0 0 14px;font-size:1.05rem}.panel-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.panel-head h2{margin:0}.grid-2{display:grid;grid-template-columns:1.25fr .75fr;gap:16px}.stack{display:grid;gap:9px}.priority-item,.alert-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.priority-item strong,.alert-item strong{display:block}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:800}.badge.ok{background:#e7f4ee;color:var(--ok)}.badge.warning{background:#fff1db;color:var(--warning)}.badge.critical{background:#fbe7e7;color:var(--critical)}.badge.offline{background:#eceff2;color:#56636d}
.map{height:330px;border-radius:12px;background:linear-gradient(145deg,#eef4f5,#e4ecef);overflow:hidden;position:relative}.map svg{width:100%;height:100%}.map-dot{cursor:pointer}.map-label{font-size:10px;fill:#284459}.map-bg-line{stroke:#c8d5db;stroke-width:1}.map-water{fill:#dceff4}
table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e8edf0;vertical-align:middle}th{color:#60717f;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.row-click{cursor:pointer}.row-click:hover{background:#f7fafb}.fillbar{height:8px;border-radius:999px;background:#e7edf0;overflow:hidden;min-width:90px}.fillbar>span{height:100%;display:block;background:var(--teal)}.fillbar.warning>span{background:#df8f18}.fillbar.critical>span{background:#c43e3e}
.detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.metric{padding:12px;background:#f7fafb;border-radius:12px}.metric strong{display:block;font-size:1.25rem;margin-top:4px}.chart{width:100%;height:260px;border:1px solid var(--line);border-radius:12px;background:#fff}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-panel h2{margin-bottom:6px}code{background:#eef2f4;border-radius:6px;padding:2px 6px}
@media(max-width:1050px){.cards{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:1fr}.detail-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(4,1fr)}.brand-logo{width:160px}.sidebar-footer{margin-top:14px;padding-top:12px;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:center}.sidebar-footer #orgName,.sidebar-footer #userName{min-width:0;overflow-wrap:anywhere}.sidebar-footer #logoutBtn{grid-column:2;grid-row:1 / span 2;align-self:stretch;min-height:44px;padding-inline:16px}.content{padding:16px}.cards{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start}.form-row{grid-template-columns:1fr}.panel{overflow-x:auto}}
@media(max-width:520px){.login-shell{padding-bottom:72px}.login-legal-links{bottom:15px}.app-legal-links{margin-top:4px}}

/* Route planning */
.route-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.6fr);gap:16px;align-items:start}
.route-controls label{display:grid;gap:8px;margin:14px 0;color:#344d60;font-weight:650;font-size:.9rem}
.route-controls select,.route-controls input[type="number"]{width:100%;padding:11px 12px;border:1px solid #cad5dc;border-radius:10px;background:#fff;color:var(--ink)}
.threshold-row{display:grid;grid-template-columns:1fr 64px;gap:12px;align-items:center}.threshold-row input{width:100%;accent-color:var(--teal)}.threshold-row strong{text-align:right;color:var(--teal-dark)}
.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:9px!important;font-weight:600!important}.check-row input{width:auto!important;margin:0;accent-color:var(--teal)}
.route-candidate-info{padding:12px;border-radius:12px;background:#f1f7f7;border:1px solid #d8e9e9;margin:12px 0;font-size:.9rem;line-height:1.45}.route-candidate-info strong{font-size:1.1rem}
.route-note{line-height:1.55;margin-bottom:0}.route-map-panel{min-width:0}.route-map-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.route-map-head-actions .ghost{padding:7px 10px}.route-map{height:500px;border-radius:12px;border:1px solid var(--line);background:linear-gradient(145deg,#eef4f5,#e4ecef);overflow:hidden;position:relative}.route-map .leaflet-container{font:inherit}.route-map-empty{height:100%;display:grid;place-content:center;text-align:center;gap:6px;padding:20px;color:#526574}.route-map-empty strong{color:var(--ink)}
.map-alternative{margin:8px 2px 0;line-height:1.45}
.route-warning{margin-top:12px;border:1px solid #f0c27a;background:#fff6e8;color:#8a5200;padding:11px 12px;border-radius:10px;line-height:1.45}
.route-stats{grid-template-columns:repeat(4,minmax(130px,1fr));margin-top:0}.route-detail-grid{grid-template-columns:1.15fr .85fr}.route-stops{display:grid;gap:9px}.route-stop{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;padding:12px;border:1px solid var(--line);border-radius:12px}.route-stop-number{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:#fff;font-weight:800}.route-stop .stop-metrics{text-align:right}.route-stop .stop-metrics strong{display:block}.route-depot{background:#eef5f8;border-color:#cedde5}.route-depot .route-stop-number{background:#0c2940}
.route-excluded-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.route-excluded-item{padding:11px;border-radius:10px;background:#f7fafb;border:1px solid var(--line)}.route-excluded-item strong{display:block;font-size:1.2rem;margin-bottom:3px}
.route-history-table .route-history-row{cursor:pointer}.route-history-table .route-history-row:hover{background:#f7fafb}.provider-chip{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.78rem;font-weight:800;background:#e7f4ee;color:var(--ok)}.provider-chip.fallback{background:#fff1db;color:var(--warning)}
.route-number-icon{background:transparent!important;border:0!important}.route-number-icon span{width:30px;height:30px;border-radius:50%;background:var(--teal);color:#fff;border:3px solid #fff;box-shadow:0 2px 8px rgba(12,41,64,.25);display:grid;place-items:center;font-size:12px;font-weight:800}.route-depot-icon span{background:#0c2940}.sensor-point-icon{background:transparent!important;border:0!important}.sensor-point-icon span{display:block;width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 9px rgba(12,41,64,.35)}.sensor-point-ok span{background:var(--ok)}.sensor-point-warning span{background:#df8f18}.sensor-point-critical span{background:var(--critical)}.sensor-point-offline span{background:#73808b}.route-map-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:10px;color:#526574;font-size:.8rem}.route-map-legend span{display:flex;align-items:center;gap:6px}.route-map-legend i{width:10px;height:10px;border-radius:50%;display:inline-block}.legend-ok{background:var(--ok)}.legend-warning{background:#df8f18}.legend-critical{background:var(--critical)}.legend-offline{background:#73808b}.legend-route-stop{background:var(--teal)}.legend-depot{background:#0c2940}.fallback-sensor{stroke:#fff;stroke-width:3}.fallback-ok{fill:var(--ok)}.fallback-warning{fill:#df8f18}.fallback-critical{fill:var(--critical)}.fallback-offline{fill:#73808b}.route-map-fallback-note{position:absolute;bottom:10px;left:12px}.leaflet-popup-content{font-family:inherit}.leaflet-control-attribution{font-size:10px}

@media(max-width:1050px){.route-layout{grid-template-columns:1fr}.route-map{height:440px}.route-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.route-map{height:380px}.route-detail-grid{grid-template-columns:1fr}.route-stop{grid-template-columns:38px 1fr}.route-stop .stop-metrics{grid-column:2;text-align:left}.route-excluded-grid{grid-template-columns:1fr}.sidebar nav{grid-template-columns:repeat(5,1fr)}.nav-btn{font-size:.76rem;padding:9px 7px}}

/* v0.2.1 usability */
.form-help,.alert-help{line-height:1.5;margin:0 0 10px}.route-external-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:-2px 0 16px}.google-maps-segments{width:100%;display:flex;flex-wrap:wrap;gap:8px}.google-segment-link{font-size:.88rem}.route-external-actions .primary:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.route-external-actions{align-items:stretch}.route-external-actions>button{width:100%}.google-maps-segments{display:grid}.google-segment-link{width:100%}}

/* v0.3.0 automatic emptying detection + location ranking */
.cards{grid-template-columns:repeat(6,minmax(120px,1fr))}
.emptying-detail{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.emptying-detail h3{margin:0;font-size:1rem}.emptying-list{display:grid;gap:8px}.emptying-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;background:#f7fafb;border:1px solid var(--line);border-radius:10px}.emptying-item strong,.emptying-item span{display:block}
.ranking-head{align-items:flex-end}.ranking-period{display:grid;gap:5px;color:#344d60;font-weight:650;font-size:.86rem}.ranking-period select{padding:8px 10px;border:1px solid #cad5dc;border-radius:9px;background:#fff;color:var(--ink)}.ranking-help{line-height:1.55;max-width:1000px}.ranking-cards{grid-template-columns:repeat(4,minmax(140px,1fr));margin-top:16px}.ranking-card-value{font-size:1.45rem!important;overflow-wrap:anywhere}.ranking-row{cursor:pointer}.rank-number{width:30px;height:30px;border-radius:50%;display:inline-grid;place-items:center;background:#edf2f5;font-weight:800;color:#526574}.rank-number.top-rank{background:#f6ecd9;color:#8b6325}.ranking-table td:nth-child(3) strong{font-size:1.05rem}
@media(max-width:1050px){.cards{grid-template-columns:repeat(3,1fr)}.ranking-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar nav{grid-template-columns:repeat(3,1fr)}.ranking-head{align-items:flex-start;flex-direction:column}.ranking-period{width:100%}.ranking-period select{width:100%}.ranking-cards{grid-template-columns:repeat(2,1fr)}.emptying-item{align-items:flex-start;flex-direction:column}.ranking-table{min-width:980px}}

textarea{width:100%;box-sizing:border-box;border:1px solid var(--border,#d9e1e7);border-radius:10px;padding:10px;font:inherit;background:var(--surface,#fff);color:inherit} code{overflow-wrap:anywhere}


/* v0.7.0 Aksta Technologies operations/admin */
.login-logo{margin-left:auto;margin-right:auto}.brand-logo{padding:8px 10px}.form-result{margin-top:10px;overflow-wrap:anywhere}.section-gap{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.admin-table select,.admin-table input[type="number"],.compact-input{max-width:180px;padding:8px 9px;border:1px solid #cbd3d9;border-radius:8px;background:#fff;color:var(--ink)}
.admin-table input[type="checkbox"]{accent-color:var(--teal)}.switch-label{display:flex;align-items:center;gap:7px;white-space:nowrap}.subpanel{border:1px solid var(--line);background:#fbfbf9;border-radius:14px;padding:16px}.subpanel h3,.panel h3{margin:0 0 12px}.subpanel label{display:grid;gap:7px;margin:12px 0;color:#344d60;font-weight:600;font-size:.9rem}.subpanel input,.subpanel select,.subpanel textarea{width:100%;padding:10px 11px;border:1px solid #cad5dc;border-radius:9px;background:#fff;color:var(--ink);font:inherit}
.platform-detail-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.mini-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.mini-stats span{background:#f4ead8;color:#70511f;padding:6px 9px;border-radius:999px;font-size:.82rem;font-weight:700}.system-status-grid{display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:10px}.system-status-grid>div{padding:12px;border:1px solid var(--line);border-radius:11px;background:#fbfbf9}.system-status-grid span,.system-status-grid strong{display:block}.system-status-grid strong{margin-top:4px}.platform-org-row:hover{background:#faf6ed}.primary:disabled,.ghost:disabled{opacity:.55;cursor:not-allowed}
.support-layout{display:grid;grid-template-columns:minmax(300px,.78fr) minmax(420px,1.22fr);gap:16px;align-items:start}.support-new-ticket textarea,.support-reply-form textarea{width:100%;resize:vertical;min-height:110px;padding:11px 12px;border:1px solid #cad5dc;border-radius:10px;background:#fff;color:var(--ink);font:inherit}.support-ticket-list{display:grid;gap:8px}.support-empty{padding:28px 10px;text-align:center}.support-ticket-row{display:grid;grid-template-columns:1fr auto;gap:5px 12px;width:100%;text-align:left;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);cursor:pointer}.support-ticket-row:hover,.support-ticket-row.active{border-color:var(--gold);box-shadow:0 0 0 2px rgba(200,148,52,.12)}.support-ticket-row span,.support-ticket-row small{display:block}.support-ticket-row small{margin-top:4px;color:var(--muted)}.support-ticket-row-end{text-align:right}.support-ticket-subject{grid-column:1/-1;color:#344d60}.support-detail-head h2{margin:3px 0 0}.support-detail-head>div:last-child{display:flex;align-items:center;gap:10px}.support-platform-controls{display:grid;gap:7px}.support-status-control{display:grid;gap:4px;font-size:.78rem;color:var(--muted)}.support-status-control select{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--ink)}.support-legal-hold{font-size:.78rem;margin:0}.support-meta{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.support-meta span{padding:5px 9px;border-radius:999px;background:#f4f7f8;color:#526979;font-size:.8rem}.support-messages{display:grid;gap:10px;margin:16px 0 20px}.support-message{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fafcfd}.support-message.internal{border-color:#d7b96f;background:#fffaf0}.support-message header{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.82rem}.support-message header strong{color:var(--ink)}.support-message p{margin:10px 0 0;line-height:1.55}.support-reply-form{border-top:1px solid var(--line);padding-top:16px}.support-reply-form>label:first-child{display:grid;gap:7px;font-weight:600}.support-reply-form .check-row{margin:10px 0}
@media(max-width:1050px){.platform-detail-grid{grid-template-columns:1fr}.system-status-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:1050px){.support-layout{grid-template-columns:1fr}}
@media(max-width:760px){.admin-table{min-width:760px}.system-status-grid{grid-template-columns:1fr}.platform-detail-grid{grid-template-columns:1fr}.support-detail-head,.support-message header{align-items:flex-start;flex-direction:column}.support-detail-head>div:last-child{width:100%;align-items:center;justify-content:space-between}.support-status-control{flex:1}.support-status-control select{width:100%}.support-ticket-row{grid-template-columns:1fr}.support-ticket-row-end{text-align:left;display:flex;align-items:center;gap:8px}.support-ticket-subject{grid-column:1}}

/* v1.2 platform context */
.tenant-context{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:-6px 0 20px;padding:12px 14px;border:1px solid #dfc58f;border-radius:12px;background:#fff8e9}.tenant-context span,.tenant-context strong{display:block}.tenant-context span{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#80612d}.tenant-context strong{margin-top:3px}
@media(max-width:760px){.tenant-context{align-items:stretch;flex-direction:column}.route-map-head-actions{align-items:flex-end;flex-direction:column;gap:6px}}

/* v0.8 dispatch + fleet routing */
.field-title{font-size:.86rem;font-weight:700;margin-bottom:7px}.vehicle-picker{display:grid;gap:8px;margin-bottom:6px}.vehicle-option{display:flex!important;align-items:center;gap:10px;padding:10px 11px;border:1px solid #d9e0e5;border-radius:10px;background:#f8fafb;cursor:pointer}.vehicle-option input{width:auto!important;margin:0}.vehicle-option span{display:flex;flex-direction:column}.vehicle-option small{color:#748391;margin-top:2px}.fleet-route-cards{display:grid;gap:10px}.fleet-route-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid #dbe2e7;border-radius:12px;background:#fff;transition:.15s}.fleet-route-card.selected{border-color:#b58c3e;box-shadow:0 0 0 2px rgba(181,140,62,.12)}.fleet-route-card h3{margin:6px 0 2px;font-size:1.05rem}.fleet-route-actions{display:flex;gap:8px;flex-wrap:wrap}.compact-input{max-width:170px}.route-history-table .history-driver-btn{white-space:nowrap}@media(max-width:720px){.fleet-route-card{align-items:flex-start;flex-direction:column}.fleet-route-actions{width:100%}.fleet-route-actions button{flex:1}}

/* Guided first-login introduction for customer administrators */
.onboarding-tour{position:fixed;inset:0;z-index:4000;pointer-events:none}.onboarding-spotlight{position:fixed;border:3px solid #d3a33e;border-radius:13px;box-shadow:0 0 0 9999px rgba(4,18,32,.58),0 0 0 6px rgba(211,163,62,.2);transition:top .2s ease,left .2s ease,width .2s ease,height .2s ease;pointer-events:none}.onboarding-card{position:fixed;right:28px;bottom:28px;width:min(460px,calc(100vw - 32px));max-height:calc(100vh - 56px);overflow:auto;background:#fff;border:1px solid #d9c18d;border-radius:18px;padding:22px;box-shadow:0 24px 70px rgba(3,20,35,.32);pointer-events:auto}.onboarding-progress{color:#9a6c1f;font-size:.78rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.onboarding-card h2{margin:8px 0 10px;font-size:1.35rem}.onboarding-card p{margin:0;color:#526574;line-height:1.55}.onboarding-actions{display:flex;align-items:center;gap:8px;margin-top:20px}.onboarding-spacer{flex:1}.onboarding-actions button{white-space:nowrap}
@media(max-width:760px){.onboarding-card{left:16px;right:16px;bottom:16px;width:auto;max-height:48vh;padding:18px}.onboarding-actions{flex-wrap:wrap}.onboarding-spacer{display:none}.onboarding-actions button{flex:1}.onboarding-actions #onboardingSkipBtn{flex-basis:100%;order:3}.onboarding-spotlight{border-radius:10px}}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.badge,.primary,.ghost,.button-link,.nav-btn{border:1px solid ButtonText}.fillbar>span,.driver-progress span{forced-color-adjust:none}.onboarding-spotlight{border-color:Highlight}}

/* Refined route planner, ambient login motion and application-wide color scheme */
.login-shell{position:relative;isolation:isolate;overflow:hidden}
.login-card{position:relative;z-index:2;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.login-ambient{position:absolute;z-index:0;left:50%;top:50%;width:min(920px,94vw);aspect-ratio:1;transform:translate(-50%,-50%);pointer-events:none}
.login-ambient::before{content:"";position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,rgba(198,147,61,.16),rgba(198,147,61,0) 68%);animation:login-glow 7s ease-in-out infinite}
.login-orbit{position:absolute;border-radius:50%;border:1px solid rgba(11,54,89,.13);animation:login-orbit 26s linear infinite}
.login-orbit::before,.login-orbit::after{content:"";position:absolute;border-radius:50%;background:var(--teal);box-shadow:0 0 0 7px rgba(198,147,61,.1),0 0 22px rgba(198,147,61,.42)}
.login-orbit-outer{inset:3%}.login-orbit-outer::before{width:9px;height:9px;left:17%;top:10%}.login-orbit-outer::after{width:6px;height:6px;right:9%;bottom:28%}
.login-orbit-inner{inset:17%;border-style:dashed;border-color:rgba(198,147,61,.2);animation-duration:19s;animation-direction:reverse}.login-orbit-inner::before{width:7px;height:7px;right:12%;top:23%}.login-orbit-inner::after{width:5px;height:5px;left:18%;bottom:16%}
.login-signal-pulse{position:absolute;left:50%;top:50%;width:72%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(198,147,61,.16);animation:login-signal 4.8s ease-out infinite}
@keyframes login-orbit{to{transform:rotate(360deg)}}
@keyframes login-glow{0%,100%{transform:scale(.94);opacity:.5}50%{transform:scale(1.06);opacity:1}}
@keyframes login-signal{0%{transform:translate(-50%,-50%) scale(.76);opacity:0}24%{opacity:.58}75%,100%{transform:translate(-50%,-50%) scale(1.08);opacity:0}}

.theme-toggle{width:100%;gap:10px;justify-content:flex-start;background:transparent;color:#c8d7e3;text-align:left;transition:background .18s ease,color .18s ease}
.theme-toggle:hover,.theme-toggle[aria-pressed="true"]{background:#163b58;color:#fff;box-shadow:inset 3px 0 0 var(--teal)}
.theme-toggle-icon{position:relative;width:18px;height:18px;flex:0 0 18px;border:2px solid currentColor;border-radius:50%;transition:transform .3s ease}
.theme-toggle-icon::after{content:"";position:absolute;width:7px;height:7px;right:-3px;top:-3px;border-radius:50%;background:#071f36;box-shadow:-2px 2px 0 1px #071f36;transition:transform .3s ease,opacity .3s ease}
.theme-toggle[aria-pressed="true"] .theme-toggle-icon{transform:rotate(180deg);border-color:#e5bd67;box-shadow:0 0 12px rgba(229,189,103,.25)}
.theme-toggle[aria-pressed="true"] .theme-toggle-icon::after{opacity:0;transform:scale(.4)}

.route-controls{padding:0;overflow:hidden}
.route-planner-heading{display:flex;align-items:center;gap:13px;padding:18px 18px 15px;border-bottom:1px solid var(--line);background:linear-gradient(135deg,rgba(198,147,61,.11),rgba(198,147,61,0))}
.route-planner-heading h2{margin:2px 0 0;font-size:1.12rem}.route-planner-kicker{display:block;color:var(--teal-dark);font-size:.7rem;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.route-planner-mark{width:40px;height:40px;position:relative;display:grid;place-items:center;flex:0 0 40px;border-radius:12px;background:#0d2c46;box-shadow:0 8px 20px rgba(8,36,64,.16)}
.route-planner-mark span{position:absolute;width:5px;height:5px;border-radius:50%;background:#fff}.route-planner-mark span:nth-child(1){left:9px;bottom:10px}.route-planner-mark span:nth-child(2){left:18px;top:10px}.route-planner-mark span:nth-child(3){right:8px;bottom:12px}
.route-planner-mark::before,.route-planner-mark::after{content:"";position:absolute;height:2px;background:var(--teal);transform-origin:left center}.route-planner-mark::before{width:18px;left:11px;bottom:13px;transform:rotate(-49deg)}.route-planner-mark::after{width:17px;left:20px;top:14px;transform:rotate(43deg)}
.route-controls>.form-help{padding:15px 18px 2px;margin:0}.route-setup-group{margin:14px 18px 0;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.route-setup-title{display:flex;gap:10px;align-items:center;margin-bottom:12px}.route-setup-title>span{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;background:rgba(198,147,61,.16);color:var(--teal-dark);font-size:.78rem;font-weight:850}.route-setup-title strong,.route-setup-title small{display:block}.route-setup-title small{margin-top:2px;color:var(--muted);font-size:.76rem;font-weight:500}
.route-controls .route-threshold-label{margin:0;color:var(--label)}.route-threshold-label>span{font-size:.78rem;color:var(--muted);font-weight:700}.threshold-row{grid-template-columns:1fr 58px;padding:5px 0 1px}.threshold-row strong{padding:6px 7px;border-radius:9px;background:var(--panel);border:1px solid var(--line);color:var(--teal-dark);text-align:center}
.threshold-row input[type="range"]{appearance:none;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--teal),var(--teal));accent-color:var(--teal)}.threshold-row input[type="range"]::-webkit-slider-thumb{appearance:none;width:19px;height:19px;border-radius:50%;background:var(--panel);border:5px solid var(--teal);box-shadow:0 2px 7px rgba(8,36,64,.2)}.threshold-row input[type="range"]::-moz-range-thumb{width:10px;height:10px;border-radius:50%;background:var(--panel);border:5px solid var(--teal);box-shadow:0 2px 7px rgba(8,36,64,.2)}
.route-controls .vehicle-picker{gap:7px;margin:0}.route-controls .vehicle-option{margin:0;color:var(--ink);background:var(--panel);border-color:var(--line);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.route-controls .vehicle-option:hover{transform:translateY(-1px);border-color:rgba(198,147,61,.6)}.route-controls .vehicle-option:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 2px rgba(198,147,61,.12)}.route-controls .vehicle-option small{color:var(--muted)}
.route-controls .route-toggle-row{margin:14px 18px 0;padding:12px 14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);color:var(--ink)}.route-toggle-row>span strong,.route-toggle-row>span small{display:block}.route-toggle-row>span small{margin-top:2px;color:var(--muted);font-size:.76rem;font-weight:500}.route-toggle-row input{width:18px!important;height:18px;flex:0 0 18px}
.route-controls .route-candidate-info{margin:14px 18px 0;background:linear-gradient(135deg,rgba(43,114,87,.1),rgba(43,114,87,.035));border-color:rgba(43,114,87,.22)}.route-controls #routePlanBtn{width:calc(100% - 36px);margin:14px 18px 0;padding:13px 16px;border-radius:12px;box-shadow:0 8px 18px rgba(169,119,43,.2)}.route-controls #routeError{margin:8px 18px 16px}

.weather-strip{margin-bottom:16px;padding:14px 16px;border:1px solid var(--line);border-left:5px solid var(--ok);border-radius:14px;background:var(--panel);box-shadow:0 5px 16px rgba(12,41,64,.04);line-height:1.45}.weather-strip>div>strong,.weather-strip>div>span,.weather-strip-head strong,.weather-strip-head span{display:block}.weather-strip>div>span,.weather-strip-head span{margin-top:3px;color:var(--muted);font-size:.88rem}.weather-strip.weather-unavailable{border-left-color:#73808b}.weather-strip.weather-level-1{border-left-color:#d5b223}.weather-strip.weather-level-2{border-left-color:#df8f18}.weather-strip.weather-level-3{border-left-color:#d85b2f}.weather-strip.weather-level-4{border-left-color:var(--critical)}.weather-warning-item{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}.weather-warning-item summary{cursor:pointer;display:grid;gap:2px}.weather-warning-item summary span{color:var(--muted);font-size:.86rem}.weather-warning-item p{margin:8px 0 0;max-width:1100px;font-size:.9rem}.weather-warning-item p+p{margin-top:6px}.weather-source{margin-top:9px;color:var(--muted);font-size:.75rem}.weather-source a{color:inherit}

html[data-theme="dark"]{
  --bg:#08131e;--panel:#102232;--ink:#e7eef5;--muted:#9aacbb;--line:#294052;
  --teal:#d1a24d;--teal-dark:#e3b862;--warning:#f0ab42;--critical:#ff7676;--ok:#65c9a2;
  --shadow:0 18px 46px rgba(0,0,0,.3);--control-bg:#142a3b;--control-border:#385064;
  --label:#c8d4de;--surface-soft:#0c1c29;--surface-raised:#122737;--ghost-bg:#193247;
  --row-hover:#142b3c;--map-filter:invert(.9) hue-rotate(175deg) brightness(.72) contrast(.9);
}
html[data-theme="dark"] .login-shell{background:radial-gradient(circle at top left,rgba(198,147,61,.15),transparent 35%),radial-gradient(circle at bottom right,rgba(30,82,119,.25),transparent 38%),var(--bg)}
html[data-theme="dark"] .login-legal-links a{color:#b8c8d2}
html[data-theme="dark"] .login-card{background:rgba(16,34,50,.94)}
html[data-theme="dark"] .login-orbit{border-color:rgba(125,170,202,.18)}
html[data-theme="dark"] .login-orbit-inner{border-color:rgba(209,162,77,.25)}
html[data-theme="dark"] .login-card label,html[data-theme="dark"] .form-panel label,html[data-theme="dark"] .route-controls label,html[data-theme="dark"] .ranking-period,html[data-theme="dark"] .subpanel label{color:var(--label)}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .login-card input,html[data-theme="dark"] .form-panel input,html[data-theme="dark"] .form-panel select,html[data-theme="dark"] .subpanel input,html[data-theme="dark"] .subpanel select,html[data-theme="dark"] .subpanel textarea,html[data-theme="dark"] .admin-table select,html[data-theme="dark"] .admin-table input[type="number"],html[data-theme="dark"] .compact-input{background:var(--control-bg);border-color:var(--control-border);color:var(--ink)}
html[data-theme="dark"] .ghost{background:var(--ghost-bg);color:var(--ink)}
html[data-theme="dark"] .card,html[data-theme="dark"] .panel{box-shadow:0 9px 28px rgba(0,0,0,.18)}
html[data-theme="dark"] .badge.ok,html[data-theme="dark"] .provider-chip{background:rgba(69,173,132,.16);color:#7bd7b3}html[data-theme="dark"] .badge.warning,html[data-theme="dark"] .provider-chip.fallback{background:rgba(240,171,66,.15);color:#f4ba63}html[data-theme="dark"] .badge.critical{background:rgba(255,118,118,.14);color:#ff9696}html[data-theme="dark"] .badge.offline{background:#263a4a;color:#b4c2cd}
html[data-theme="dark"] th,html[data-theme="dark"] td{border-bottom-color:#263d4e}html[data-theme="dark"] th{color:#a9b8c5}html[data-theme="dark"] .row-click:hover,html[data-theme="dark"] .route-history-row:hover,html[data-theme="dark"] .platform-org-row:hover{background:var(--row-hover)}
html[data-theme="dark"] .metric,html[data-theme="dark"] .route-excluded-item,html[data-theme="dark"] .emptying-item,html[data-theme="dark"] .system-status-grid>div,html[data-theme="dark"] .subpanel{background:var(--surface-raised)}
html[data-theme="dark"] .support-ticket-row,html[data-theme="dark"] .support-message,html[data-theme="dark"] .support-status-control select{background:var(--surface-raised)}html[data-theme="dark"] .support-message.internal{background:rgba(200,148,52,.09);border-color:rgba(200,148,52,.5)}html[data-theme="dark"] .support-meta span{background:#243746;color:#b8c8d2}html[data-theme="dark"] .support-ticket-subject{color:var(--ink)}
html[data-theme="dark"] .chart{background:var(--control-bg)}html[data-theme="dark"] code{background:#1a3142}
html[data-theme="dark"] .route-map,html[data-theme="dark"] .map{background:linear-gradient(145deg,#102839,#0b1c29)}html[data-theme="dark"] .route-map-empty,html[data-theme="dark"] .route-map-legend{color:var(--muted)}
html[data-theme="dark"] .route-warning{border-color:#79591f;background:#2b2418;color:#f4c674}html[data-theme="dark"] .route-depot{background:#132c3c;border-color:#365365}
html[data-theme="dark"] .tenant-context{border-color:#6c5527;background:#282316}html[data-theme="dark"] .tenant-context span{color:#d9b86f}
html[data-theme="dark"] .mini-stats span{background:#2d2618;color:#e3bd6c}html[data-theme="dark"] .rank-number{background:#20374a;color:#b9c8d4}html[data-theme="dark"] .rank-number.top-rank{background:#362d1b;color:#e1b960}
html[data-theme="dark"] .fleet-route-card,html[data-theme="dark"] .vehicle-option{background:var(--control-bg);border-color:var(--line)}html[data-theme="dark"] .onboarding-card{background:var(--panel);border-color:#6f592c}html[data-theme="dark"] .onboarding-card p{color:var(--muted)}
html[data-theme="dark"] .weather-strip{box-shadow:0 9px 28px rgba(0,0,0,.18)}
html[data-theme="dark"] .leaflet-tile-pane{filter:var(--map-filter)}html[data-theme="dark"] .leaflet-control-zoom a,html[data-theme="dark"] .leaflet-control-layers,html[data-theme="dark"] .leaflet-popup-content-wrapper,html[data-theme="dark"] .leaflet-popup-tip{background:#102637;color:var(--ink);border-color:var(--line)}html[data-theme="dark"] .leaflet-control-attribution{background:rgba(8,19,30,.82);color:#9fb0bd}html[data-theme="dark"] .leaflet-control-attribution a{color:#dfb65c}

@media(max-width:760px){
  .theme-toggle{font-size:.76rem;padding:9px 7px}.theme-toggle-icon{width:15px;height:15px;flex-basis:15px}
  .login-ambient{width:145vw}.login-card{padding:26px 22px}.login-orbit-outer{inset:10%}.login-orbit-inner{inset:23%}
  .route-controls{overflow:visible}.route-planner-heading{padding:16px}.route-controls>.form-help{padding-inline:16px}.route-setup-group,.route-controls .route-toggle-row,.route-controls .route-candidate-info{margin-left:16px;margin-right:16px}.route-controls #routePlanBtn{width:calc(100% - 32px);margin-left:16px;margin-right:16px}
  .weather-strip{padding:12px 13px}.weather-warning-item summary{font-size:.92rem}.weather-warning-item p{font-size:.86rem}
}
@media(prefers-reduced-motion:reduce){.login-ambient::before,.login-orbit,.login-signal-pulse{animation:none!important}.vehicle-option{transition:none!important}}
