:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--text);font-size:15px}button,input,textarea{font:inherit}a{color:inherit}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--primary);color:var(--primary-contrast);padding:26px 18px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;padding:0 8px 28px;border-bottom:1px solid color-mix(in srgb,var(--primary-contrast) 20%,transparent)}.brand img{display:block;width:112px;max-height:62px;object-fit:contain}.brand span{font-size:12px;letter-spacing:.13em;text-transform:uppercase;writing-mode:vertical-rl;opacity:.72}.nav{display:grid;gap:6px;margin-top:26px}.nav a{display:flex;align-items:center;gap:12px;padding:12px 13px;border-radius:10px;text-decoration:none;font-weight:650;color:color-mix(in srgb,var(--primary-contrast) 72%,transparent)}.nav a span{width:24px;text-align:center;font-size:19px}.nav a:hover,.nav a.active{background:color-mix(in srgb,var(--primary-contrast) 14%,transparent);color:var(--primary-contrast)}.sidebar-foot{margin-top:auto;display:grid;gap:7px;padding:15px 10px 2px;border-top:1px solid color-mix(in srgb,var(--primary-contrast) 18%,transparent)}.sidebar-foot small{opacity:.8}.sidebar-foot a{font-size:13px;opacity:.72}.tenant-chip{font-weight:800;letter-spacing:.04em}.main-area{min-width:0;display:flex;flex-direction:column}.topbar{height:92px;padding:17px clamp(22px,4vw,52px);display:flex;align-items:center;justify-content:space-between;background:var(--surface);border-bottom:1px solid color-mix(in srgb,var(--text) 9%,transparent)}.topbar h1{margin:3px 0 0;font-size:23px;line-height:1.1}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 14%,transparent)}.avatar{display:grid;place-items:center;width:38px;height:38px;margin-left:12px;border-radius:50%;background:var(--primary);color:var(--primary-contrast);font-weight:800;text-decoration:none}.menu-toggle{display:none;border:0;background:transparent;color:var(--text);font-size:24px}.content{width:100%;max-width:1540px;margin:0 auto;padding:clamp(24px,4vw,50px);flex:1}.hero-row,.section-intro,.driver-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:30px}.hero-row h2,.section-intro h2,.driver-head h2{font-size:clamp(28px,4vw,45px);line-height:1.08;margin:8px 0 10px;letter-spacing:-.035em}.hero-row p,.section-intro p,.driver-head p{max-width:720px;margin:0;color:var(--muted);font-size:16px;line-height:1.55}.date-label{display:inline-flex;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--primary) 10%,transparent);color:var(--primary);font-size:12px;font-weight:800;letter-spacing:.04em}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 17px;border-radius:9px;border:1px solid transparent;text-decoration:none;font-weight:750;cursor:pointer;white-space:nowrap}.button-primary{background:var(--primary);color:var(--primary-contrast);box-shadow:0 7px 20px color-mix(in srgb,var(--primary) 22%,transparent)}.button-primary:hover{filter:brightness(1.08)}.button-secondary{background:var(--surface);border-color:color-mix(in srgb,var(--text) 14%,transparent);color:var(--text)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat-card,.panel,.driver-stop,.next-stop-banner{background:var(--surface);border:1px solid color-mix(in srgb,var(--text) 8%,transparent);border-radius:14px;box-shadow:0 7px 28px color-mix(in srgb,var(--text) 5%,transparent)}.stat-card{padding:20px 22px;display:grid;gap:5px;border-top:3px solid color-mix(in srgb,var(--primary) 65%,transparent)}.stat-card span{color:var(--muted);font-size:12px;font-weight:700}.stat-card strong{font-size:28px;letter-spacing:-.03em}.stat-card small{color:var(--muted)}.stat-card.stat-good{border-top-color:var(--success)}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.8fr);gap:22px}.panel{padding:22px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.panel-head h3{font-size:19px;margin:4px 0 0}.panel-head>a{color:var(--primary);font-weight:750;text-decoration:none;font-size:13px}.map-card{position:relative;overflow:hidden;background:var(--background);border-radius:11px;border:1px solid color-mix(in srgb,var(--text) 7%,transparent)}.map-card svg{display:block;width:100%;height:auto;min-height:280px;color:var(--text)}.map-card text{fill:var(--muted);font-size:13px;font-weight:700}.map-note{position:absolute;left:16px;top:16px;max-width:295px;padding:12px 14px;border-radius:9px;background:color-mix(in srgb,var(--surface) 93%,transparent);box-shadow:0 5px 16px color-mix(in srgb,var(--text) 12%,transparent);display:grid;gap:3px}.map-note strong{font-size:13px}.map-note span{color:var(--muted);font-size:11px;line-height:1.35}.mini-stop{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.mini-stop:last-child{border-bottom:0}.sequence{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:var(--primary-contrast);font-size:12px;font-weight:850}.mini-stop div{display:grid;gap:3px}.mini-stop strong{font-size:13px}.mini-stop small,.route-stop small,.driver-stop small{color:var(--muted)}.phase{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.phase.return{color:var(--accent);font-weight:800}.route-badges{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.route-badges span{padding:8px 11px;border:1px solid color-mix(in srgb,var(--text) 10%,transparent);border-radius:999px;background:var(--surface);font-size:12px;font-weight:750}.route-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.9fr);gap:22px;align-items:start}.map-large{position:sticky;top:112px}.optimization-rule{display:grid;grid-template-columns:34px 1fr;gap:14px 10px;margin-top:20px}.optimization-rule div{display:grid;gap:3px}.optimization-rule small{color:var(--muted)}.rule-number{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;background:color-mix(in srgb,var(--primary) 11%,transparent);color:var(--primary);font-weight:850}.stop-list{padding-bottom:10px}.route-stop{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:start;padding:15px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.route-stop-main{display:grid;gap:4px}.route-stop em{color:var(--accent);font-size:11px;font-style:normal;font-weight:750}.stop-time{text-align:right;display:grid;gap:3px}.stop-time strong{font-size:16px}.import-grid{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(420px,1.28fr);gap:22px;align-items:start}.upload-form{display:grid;gap:14px}.drop-zone{min-height:250px;border:2px dashed color-mix(in srgb,var(--primary) 32%,transparent);border-radius:13px;background:color-mix(in srgb,var(--primary) 4%,var(--surface));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px;cursor:pointer}.drop-zone:hover{border-color:var(--primary)}.drop-zone input{position:absolute;width:1px;height:1px;opacity:0}.drop-zone strong{font-size:18px}.drop-zone small{margin-top:7px;color:var(--muted)}.upload-icon{display:grid;place-items:center;width:48px;height:48px;margin-bottom:13px;border-radius:50%;background:var(--primary);color:var(--primary-contrast);font-size:25px}.email-option{display:flex;gap:13px;margin-top:22px;padding-top:19px;border-top:1px solid color-mix(in srgb,var(--text) 9%,transparent)}.email-option>span{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:9px;background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);font-weight:850}.email-option p{margin:4px 0;color:var(--muted);font-size:12px;line-height:1.45}.import-item{display:grid;grid-template-columns:45px minmax(0,1fr) auto;gap:13px;padding:15px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.file-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:8px;background:color-mix(in srgb,var(--primary) 11%,transparent);color:var(--primary);font-size:9px;font-weight:900}.import-item div{display:grid;gap:3px}.import-item p{margin:3px 0;color:var(--muted);font-size:12px}.import-status{align-self:start;padding:5px 8px;border-radius:999px;background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning);font-size:10px;font-weight:800}.status-reviewed{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.progress-ring{display:grid;place-items:center;align-content:center;width:96px;height:96px;border-radius:50%;border:8px solid color-mix(in srgb,var(--primary) 14%,transparent);border-top-color:var(--primary)}.progress-ring strong{font-size:20px}.progress-ring small{color:var(--muted);font-size:10px}.next-stop-banner{padding:20px 22px;margin-bottom:17px;border-left:5px solid var(--accent);display:grid;gap:4px}.next-stop-banner>span{color:var(--accent);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}.next-stop-banner strong{font-size:20px}.next-stop-banner small{color:var(--muted)}.driver-stops{display:grid;gap:13px;max-width:920px}.driver-stop{overflow:hidden}.driver-stop header{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:13px;align-items:center;padding:18px 20px}.driver-stop header>div:nth-child(2){display:grid;gap:4px}.driver-stop header strong{font-size:16px}.driver-time{text-align:right;display:grid;gap:2px}.driver-time strong{font-size:18px}.return-hint{padding:9px 20px;background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent);font-size:12px;font-weight:750}.driver-actions{display:flex;align-items:center;gap:9px;padding:0 20px 18px 71px}.quick-status{margin-left:auto}.link-button{border:0;background:transparent;color:var(--warning);cursor:pointer;font-weight:700;font-size:12px}.photo-form{padding:18px 20px;background:var(--background);border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent);display:grid;gap:13px}.photo-form[hidden]{display:none}.photo-form label,.login-card label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:750}.photo-form input,.photo-form textarea,.login-card input,.theme-form input[type=text],.theme-form input:not([type=color]){border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:8px;padding:11px;background:var(--surface);color:var(--text)}.driver-stop.status-delivered{border-left:4px solid var(--success)}.driver-stop.status-problem{border-left:4px solid var(--warning)}.settings-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:22px;align-items:start}.brand-preview{grid-row:span 2}.preview-card{margin-top:17px;padding:30px;border-radius:14px;background:var(--background);text-align:center}.preview-card img{max-width:170px;max-height:90px}.preview-card h3{font-size:24px;margin:18px 0 4px}.preview-card p{color:var(--muted);margin:0 0 22px}.theme-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.theme-form>label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:750}.theme-form label span{display:grid;grid-template-columns:42px 1fr;gap:7px}.theme-form input[type=color]{width:42px;height:42px;padding:3px;border:1px solid color-mix(in srgb,var(--text) 13%,transparent);border-radius:8px;background:var(--surface)}.theme-form .button{grid-column:1/-1}.tenant-facts dl{margin:0;display:grid}.tenant-facts dl div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.tenant-facts dt{color:var(--muted)}.tenant-facts dd{margin:0;font-weight:700;text-align:right}.alert{margin-bottom:20px;padding:13px 16px;border-radius:9px;font-weight:700}.alert-success{background:color-mix(in srgb,var(--success) 13%,var(--surface));color:var(--success)}.alert-error{background:color-mix(in srgb,var(--warning) 13%,var(--surface));color:var(--warning)}.footer{display:flex;justify-content:space-between;padding:18px clamp(22px,4vw,52px);color:var(--muted);font-size:11px;border-top:1px solid color-mix(in srgb,var(--text) 7%,transparent)}.login-page{min-height:100vh}.login-shell{display:grid;grid-template-columns:1.2fr .8fr;min-height:100vh}.login-brand{padding:clamp(45px,8vw,120px);background:var(--primary);color:var(--primary-contrast);display:flex;flex-direction:column;justify-content:center}.login-brand img{width:210px;max-height:120px;object-fit:contain;object-position:left center;margin-bottom:55px}.login-brand>p:first-of-type{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;opacity:.72}.login-brand h1{max-width:650px;margin:10px 0 20px;font-size:clamp(42px,6vw,78px);line-height:.98;letter-spacing:-.055em}.login-copy{max-width:590px;line-height:1.65;opacity:.78;font-size:17px}.login-card{display:flex;flex-direction:column;justify-content:center;padding:clamp(35px,7vw,100px);background:var(--surface)}.via-kicker{color:var(--primary);font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.login-card h2{font-size:35px;margin:10px 0 5px}.login-card>p{color:var(--muted)}.login-card form{display:grid;gap:16px;margin-top:24px}.login-card input{min-height:47px}.login-hint{margin-top:24px!important;font-size:12px;line-height:1.45}.offline-badge{display:none}
@media(max-width:1100px){.app-shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-inline:12px}.dashboard-grid,.route-layout{grid-template-columns:1fr}.map-large{position:static}.stats-grid{grid-template-columns:1fr 1fr}.settings-grid{grid-template-columns:1fr}.brand-preview{grid-row:auto}.import-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:250px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:10px 0 30px #0003}.sidebar.open{transform:translateX(0)}.menu-toggle{display:block}.topbar{height:76px;padding:12px 17px;gap:12px}.topbar h1{font-size:18px}.top-actions>span{display:none}.content{padding:22px 15px 35px}.hero-row,.section-intro,.driver-head{align-items:flex-start;flex-direction:column}.hero-row h2,.section-intro h2,.driver-head h2{font-size:32px}.stats-grid{grid-template-columns:1fr 1fr;gap:9px}.stat-card{padding:15px}.stat-card strong{font-size:22px}.panel{padding:16px}.dashboard-grid{display:block}.next-panel{margin-top:14px}.map-card svg{min-height:220px}.route-stop{grid-template-columns:30px minmax(0,1fr)}.stop-time{grid-column:2;text-align:left;display:flex;gap:8px;align-items:baseline}.import-item{grid-template-columns:42px minmax(0,1fr)}.import-status{grid-column:2;justify-self:start}.driver-head{display:grid;grid-template-columns:1fr auto}.progress-ring{width:76px;height:76px;border-width:6px}.driver-stop header{padding:15px;grid-template-columns:32px minmax(0,1fr)}.driver-time{grid-column:2;text-align:left;display:flex;gap:7px;align-items:baseline}.driver-actions{padding:0 15px 15px;display:grid;grid-template-columns:1fr 1fr}.quick-status{grid-column:1/-1;margin:0;text-align:center}.theme-form{grid-template-columns:1fr}.login-shell{display:block}.login-brand{min-height:43vh;padding:38px 28px}.login-brand img{width:150px;margin-bottom:28px}.login-brand h1{font-size:42px}.login-brand .login-copy{display:none}.login-card{min-height:57vh;padding:38px 28px}.footer{display:none}}
@media(max-width:420px){.stats-grid{grid-template-columns:1fr}.driver-head{display:flex}.progress-ring{align-self:flex-end}.driver-actions{grid-template-columns:1fr}.map-note{position:static;max-width:none;border-radius:0;box-shadow:none}.top-actions{margin-left:auto}.topbar .eyebrow{display:none}}
.user-panel{grid-column:2}.user-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent)}.avatar.small{width:32px;height:32px;margin:0;font-size:12px}.user-row div{display:grid;gap:2px}.user-row small{color:var(--muted)}.user-form{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:17px}.user-form label{display:grid;gap:6px;color:var(--muted);font-size:11px;font-weight:750}.user-form input,.user-form select{min-height:43px;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:8px;padding:9px 11px;background:var(--surface);color:var(--text)}.user-form .button{grid-column:1/-1}.security-note{margin:13px 0 0;color:var(--muted);font-size:11px}
@media(max-width:1100px){.user-panel{grid-column:auto}}
@media(max-width:760px){.user-form{grid-template-columns:1fr}}
.password-field{display:grid!important;grid-template-columns:minmax(0,1fr) 44px;gap:0!important}.password-field input{min-width:0;border-radius:8px 0 0 8px!important}.password-toggle{display:grid;place-items:center;min-width:44px;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-left:0;border-radius:0 8px 8px 0;background:var(--surface);color:var(--text);cursor:pointer}.password-toggle:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 30%,transparent);outline-offset:2px}.login-link{display:inline-block;margin-top:17px;color:var(--primary);font-size:13px;font-weight:750}.user-list{display:grid;gap:12px}.user-edit-form{padding:14px;border:1px solid color-mix(in srgb,var(--text) 9%,transparent);border-radius:10px;background:color-mix(in srgb,var(--background) 55%,var(--surface));display:grid;gap:12px}.user-row-head{display:flex;align-items:center;gap:10px}.user-row-head>div{display:grid;gap:2px}.user-row-head small{color:var(--muted)}.user-edit-grid{display:grid;grid-template-columns:1fr 1.25fr .8fr auto;gap:10px;align-items:end}.user-edit-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:750}.user-edit-grid input,.user-edit-grid select{min-height:40px;border:1px solid color-mix(in srgb,var(--text) 16%,transparent);border-radius:8px;padding:8px 10px;background:var(--surface);color:var(--text)}.user-edit-grid .active-check{display:flex;align-items:center;gap:7px;min-height:40px;white-space:nowrap}.user-edit-grid .active-check input{min-height:auto}.user-edit-form>.button{justify-self:end;min-height:38px}.subheading{margin:24px 0 2px;font-size:15px}.user-form .password-field input{min-height:43px}.user-form label:has(.password-field){grid-column:auto}
@media(max-width:1200px){.user-edit-grid{grid-template-columns:1fr 1fr}.user-edit-grid .active-check{align-self:end}}
@media(max-width:760px){.user-edit-grid{grid-template-columns:1fr}.user-edit-form>.button{justify-self:stretch}.password-toggle{min-width:46px}}
.user-security{border-top:1px solid color-mix(in srgb,var(--text) 8%,transparent);padding-top:10px}.user-security summary{cursor:pointer;color:var(--primary);font-size:12px;font-weight:800}.user-security-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.user-security-grid>label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:750}.user-security-grid .active-check{grid-column:1/-1;display:flex;align-items:center;gap:7px}.user-security-grid .active-check input{width:auto}.user-delete-form{margin:-6px 14px 8px;display:flex;justify-content:flex-end}.danger-link{border:0;background:transparent;color:var(--warning);font-size:11px;font-weight:750;cursor:pointer}.danger-link:disabled{opacity:.42;cursor:not-allowed}.login-events{grid-column:1/-1}.event-table{display:grid}.event-row{display:grid;grid-template-columns:170px minmax(160px,1fr) 130px;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid color-mix(in srgb,var(--text) 8%,transparent);font-size:12px}.event-head{color:var(--muted);font-weight:800}.event-status{justify-self:start;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:850}.event-status.status-success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.event-status.status-failed,.event-status.status-blocked{background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning)}
@media(max-width:760px){.user-security-grid{grid-template-columns:1fr}.user-security-grid .active-check{grid-column:auto}.event-row{grid-template-columns:1fr auto;gap:5px 10px}.event-row>span:first-child{grid-column:1/-1;color:var(--muted)}.event-head{display:none}.login-events{overflow:hidden}}
