:root {
  color-scheme: light;
  --bg:#f4f7f5; --panel:#ffffff; --panel-2:#f7faf8; --border:#dfe7e2; --text:#17211b; --muted:#6f7d74;
  --green:#16823d; --green-2:#0f6f32; --yellow:#f4b900; --orange:#f57c00; --red:#df3038; --blue:#1673d1; --purple:#8b3fb2;
  --sidebar:#132b31; --sidebar-2:#0f2228; --sidebar-text:#f5fbf7; --input:#ffffff; --shadow:0 8px 24px rgba(23,49,34,.08);
  --card-normal:#ffffff; --card-soon:#fff5bd; --card-urgent:#ffe1bf; --card-late:#ffd6d8; --card-confirmed:#ddf3e3;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg:#0b1519; --panel:#122128; --panel-2:#162a31; --border:#28414a; --text:#eef6f1; --muted:#91a49a;
  --green:#42bd69; --green-2:#2aa654; --yellow:#ffcf28; --orange:#ff9738; --red:#ff5960; --blue:#58a8f4; --purple:#b77bd2;
  --input:#0e1d23; --shadow:0 12px 30px rgba(0,0,0,.22);
  --card-normal:#14262d; --card-soon:#4e4216; --card-urgent:#4f3019; --card-late:#4c2024; --card-confirmed:#163a25;
}
*{box-sizing:border-box} html,body{min-height:100%} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)} button,input,select,textarea{font:inherit} button{cursor:pointer}.hidden{display:none!important}
.offline-bar{position:fixed;top:0;left:0;right:0;z-index:100;background:#a51f2b;color:#fff;text-align:center;padding:7px;font-weight:850}

/* Login */
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% -20%,#1d4a36 0,#10282d 43%,#0c1b20 100%)}
.login-card{width:min(460px,100%);padding:30px;border:1px solid rgba(255,255,255,.12);border-radius:24px;background:rgba(255,255,255,.96);color:#17211b;box-shadow:0 30px 80px rgba(0,0,0,.35)}
:root[data-theme="dark"] .login-card{background:#122128;color:#eef6f1}.login-logo{width:82px;height:82px;object-fit:contain;background:#111;border-radius:20px;box-shadow:0 8px 24px rgba(0,0,0,.2);margin-bottom:16px}.eyebrow{color:var(--green);font-size:.7rem;letter-spacing:.15em;font-weight:950}.login-card h1{margin:6px 0 2px;font-size:1.8rem}.login-card>p{margin:0 0 22px;color:var(--muted)}.login-card form{display:grid;gap:14px}.login-config{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.login-config summary{cursor:pointer;color:var(--muted);font-weight:800;margin-bottom:10px}.login-error{margin-top:14px;padding:10px 12px;border:1px solid rgba(223,48,56,.35);background:rgba(223,48,56,.08);color:var(--red);border-radius:10px;font-weight:800}.demo-credentials{margin-top:14px;color:var(--muted);font-size:.76rem}

/* Layout */
.app-layout{min-height:100vh;min-height:100dvh;display:block;padding-left:230px}.sidebar{position:fixed;left:0;top:0;bottom:0;width:230px;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:var(--sidebar-text);border-right:1px solid rgba(255,255,255,.06);z-index:20}.brand-block{height:82px;display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-logo{width:58px;height:58px;object-fit:contain;background:#111;border-radius:13px}.brand-block strong{display:block;font-size:1.06rem;font-style:italic;letter-spacing:.02em}.brand-block span{display:block;margin-top:2px;color:#4ac96e;font-size:.66rem;letter-spacing:.16em;font-weight:900}.sidebar-section-title{padding:22px 17px 8px;color:#92aaa1;font-size:.62rem;font-weight:900;letter-spacing:.14em}.side-nav{display:grid;gap:3px;padding:0 8px}.nav-item{border:0;background:transparent;color:#dceae3;display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:9px;width:100%;padding:11px 10px;border-radius:8px;text-align:left;font-size:.8rem}.nav-item:hover{background:rgba(255,255,255,.07)}.nav-item.active{background:linear-gradient(90deg,rgba(20,145,64,.45),rgba(20,145,64,.16));box-shadow:inset 3px 0 0 #ffd200;color:#fff}.nav-item span{font-size:1rem;text-align:center}.nav-item b{font-weight:750}.nav-item em{min-width:22px;padding:2px 6px;text-align:center;border-radius:999px;background:#f4b900;color:#101b13;font-style:normal;font-size:.65rem;font-weight:950}.sidebar-spacer{flex:1}.sidebar-version{padding:16px 18px 20px;color:#8fa69d;font-size:.64rem;border-top:1px solid rgba(255,255,255,.07)}.sidebar-version strong{display:block;color:#4ac96e;font-size:.73rem}.sidebar-version span{display:block;margin-top:4px}.content-area{min-width:0;min-height:100vh;min-height:100dvh}.topbar{min-height:82px;padding:11px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:15}.brand-area{min-width:250px}.brand-area h1{margin:2px 0 0;font-size:1.32rem;letter-spacing:-.02em}.subline{margin-top:4px;color:var(--muted);font-size:.75rem}.top-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}.mobile-menu{display:none!important}.shell{padding:18px 24px 40px;max-width:1640px;margin:0 auto}.view-panel{min-height:calc(100dvh - 112px)}

/* Generic controls */
.panel-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;gap:5px;min-width:135px}.field.grow{flex:1}.field label{font-size:.69rem;font-weight:850;color:var(--muted)}.field small{color:var(--muted)}input,select,textarea{width:100%;border:1px solid var(--border);background:var(--input);color:var(--text);border-radius:8px;padding:9px 10px;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(22,130,61,.1)}.btn{border:1px solid transparent;border-radius:8px;padding:9px 13px;font-weight:850}.btn.primary{color:#fff;background:linear-gradient(#1aa34e,#13813b);border-color:#0f7435}.btn.primary:hover{filter:brightness(1.05)}.btn.secondary{background:var(--panel-2);border-color:var(--border);color:var(--text)}.btn.swap{background:#1478d4;color:#fff;border-color:#0f5fae}.btn.swap:hover{background:#0f68bc}.btn.edit{background:#fff;color:#18231c;border:1px solid #9ea9a2}.btn.edit:hover{background:#f3f6f4}:root[data-theme="dark"] .btn.edit{background:#24373e;color:#fff;border-color:#53676e}.btn.export{background:#16823d;color:#fff;border-color:#0f6f32}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.wide{width:100%}.icon-btn{width:38px;height:38px;border:1px solid var(--border);border-radius:9px;background:var(--panel);color:var(--text);display:grid;place-items:center;font-size:1.05rem}.icon-btn:hover{background:var(--panel-2)}.mode-badge,.version-badge,.garage-badge{border-radius:999px;padding:6px 9px;font-size:.62rem;font-weight:900;white-space:nowrap}.mode-badge.demo{background:#fff1bf;color:#845e00;border:1px solid #eed276}.mode-badge.online{background:#dff3e4;color:#136b32;border:1px solid #a8d9b7}:root[data-theme="dark"] .mode-badge.demo{background:#493d16;color:#ffd95b;border-color:#76662b}:root[data-theme="dark"] .mode-badge.online{background:#153923;color:#5bd37c;border-color:#2c6c42}.version-badge{background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.garage-badge{display:none;background:#e5f2e8;color:#176e36;border:1px solid #b9ddc3}.garage-field{display:flex;align-items:center;gap:6px}.garage-field label{font-size:.6rem;color:var(--muted);font-weight:900;text-transform:uppercase}.garage-field select{width:auto;min-width:130px;padding:7px 27px 7px 8px}.user-pill{min-width:132px;padding:6px 9px;border-left:1px solid var(--border);line-height:1.05}.user-pill span{display:block;font-size:.76rem;font-weight:900;white-space:nowrap;max-width:150px;overflow:hidden;text-overflow:ellipsis}.user-pill small{display:block;margin-top:3px;color:var(--muted);font-size:.57rem;font-weight:800}.sound-btn{position:relative}.sound-btn::after{content:"AUTO";position:absolute;right:-5px;bottom:-5px;padding:1px 3px;border-radius:4px;font-size:.39rem;font-weight:950;background:#1ba54e;color:#fff;border:1px solid var(--panel)}

/* Operation */
.notice{margin-bottom:14px;padding:9px 12px;border:1px solid #e5cc72;background:#fff7d8;color:#715500;border-radius:9px;font-size:.78rem}:root[data-theme="dark"] .notice{background:#453b18;color:#ffe27a;border-color:#6b5a21}.kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}.kpi{min-height:92px;text-align:center;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.kpi span{display:block;font-size:1.75rem;line-height:1;font-weight:950}.kpi small{display:block;margin-top:7px;font-size:.65rem;font-weight:900}.kpi em{display:block;margin-top:3px;color:var(--muted);font-size:.58rem;font-style:normal}.kpi.danger span{color:var(--red)}.kpi.urgent span{color:var(--orange)}.kpi.soon span{color:var(--yellow)}.kpi.success span{color:var(--green)}.kpi.neutral span{color:var(--blue)}.toolbar{display:flex;align-items:flex-end;gap:10px;margin:14px 0;padding:11px}.window-banner{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0 0 15px;padding:9px 12px;border:1px solid #9fc9f0;background:#eef7ff;color:#205d94;border-radius:9px;font-size:.72rem}.window-banner p{margin:2px 0 0;color:#4b7598}.window-banner>span:last-child{font-weight:850;white-space:nowrap}:root[data-theme="dark"] .window-banner{background:#122e43;border-color:#285d82;color:#75bfff}:root[data-theme="dark"] .window-banner p{color:#8eb3cd}.list-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin:12px 0 8px}.list-head h2{margin:0;font-size:1rem}.list-head p{margin:2px 0 0;color:var(--muted);font-size:.7rem}.result-count{color:var(--muted);font-size:.72rem;font-weight:800}.service-list{display:grid;gap:8px}.service-card{--state:#aab6af;position:relative;display:grid;grid-template-columns:minmax(210px,1.15fr) minmax(130px,.7fr) minmax(165px,.85fr) minmax(145px,.75fr) minmax(180px,.8fr);align-items:center;gap:12px;padding:11px 12px 11px 15px;border:1px solid color-mix(in srgb,var(--state) 55%,var(--border));border-left:4px solid var(--state);border-radius:9px;background:var(--card-normal);box-shadow:0 2px 7px rgba(0,0,0,.035)}.service-card.soon{--state:#e3ad00;background:var(--card-soon)}.service-card.urgent{--state:#ed7600;background:var(--card-urgent)}.service-card.late{--state:#df3038;background:var(--card-late)}.service-card.confirmed{--state:#35a454;background:var(--card-confirmed)}.service-card.confirmed.late{--state:#df3038;background:var(--card-late)}.service-card.no-time{--state:#87938c}.service-card.late:not(.confirmed),.service-card.urgent:not(.confirmed){animation:pulseCard 1.7s ease-in-out infinite}@keyframes pulseCard{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--state) 14%,transparent)}}.line-name{font-size:1rem;font-weight:950}.line-meta{margin-top:4px;display:flex;gap:5px;flex-wrap:wrap}.chip{font-size:.58rem;font-weight:850;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.55);color:#39473e;border:1px solid rgba(0,0,0,.08)}:root[data-theme="dark"] .chip{background:rgba(0,0,0,.18);color:#dbe8e0;border-color:rgba(255,255,255,.1)}.swap-chip{color:#075ea9;border-color:#75aee0}.data-label{font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.data-value{margin-top:2px;font-size:.84rem;font-weight:850}.confirm-deadline{font-size:1.18rem;font-weight:950;color:var(--text)}.confirm-time{margin-top:4px;color:var(--muted);font-size:.65rem}.realized{margin-top:4px;font-size:.66rem}.realized.changed{font-weight:900;color:#1268b8}.action-col{text-align:right}.status{font-size:.68rem;font-weight:950}.status.late{color:#bc1923}.status.urgent{color:#c85e00}.status.soon{color:#967000}.status.ok{color:#13713a}.status.neutral{color:#65736a}:root[data-theme="dark"] .status.late{color:#ff8389}:root[data-theme="dark"] .status.urgent{color:#ffb46e}:root[data-theme="dark"] .status.soon{color:#ffe26b}:root[data-theme="dark"] .status.ok{color:#75df92}.status-detail{margin-top:2px;color:var(--muted);font-size:.64rem}.edit-meta{margin-top:3px;color:var(--muted);font-size:.56rem}.card-action{margin-top:7px}.action-buttons{display:flex;gap:6px;justify-content:flex-end}.action-buttons .btn{padding:7px 10px;font-size:.66rem}.empty{text-align:center;padding:38px 16px;color:var(--muted);border:1px dashed var(--border);background:var(--panel);border-radius:10px}

/* Management */
.management-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:14px}.management-head h2{margin:3px 0 3px;font-size:1.45rem}.management-head p{margin:0;color:var(--muted);font-size:.76rem}.management-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.mgmt-kpi{padding:16px;border:1px solid var(--border);background:var(--panel);border-radius:10px;border-top:3px solid var(--green);box-shadow:var(--shadow)}.mgmt-kpi span{font-size:1.65rem;font-weight:950}.mgmt-kpi small{display:block;margin-top:5px;color:var(--muted);font-size:.62rem;font-weight:900}.mgmt-kpi.swap{border-top-color:var(--yellow)}.mgmt-kpi.swap span{color:#b27f00}.mgmt-kpi.danger{border-top-color:var(--orange)}.mgmt-kpi.danger span{color:var(--orange)}.mgmt-kpi.neutral{border-top-color:#909a94}.mgmt-kpi.neutral span{color:#737d77}.mgmt-kpi.success span{color:var(--green)}.history-filters{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px;padding:12px;margin-bottom:14px}.history-filters .grow{min-width:0}.history-filter-actions{display:flex;align-items:end;gap:7px}.history-table-card{overflow:hidden}.table-title{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border)}.table-title h3{margin:0;font-size:.9rem}.table-title span{color:var(--muted);font-size:.66rem}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls .icon-btn{width:30px;height:30px}.table-wrap{overflow:auto}.history-wrap{max-height:calc(100vh - 410px);min-height:300px}.history-table,.admin-table{width:100%;border-collapse:collapse;min-width:1420px}.history-table th,.history-table td,.admin-table th,.admin-table td{padding:8px 9px;border-bottom:1px solid var(--border);text-align:left;font-size:.66rem;white-space:nowrap}.history-table th,.admin-table th{position:sticky;top:0;background:var(--panel-2);z-index:1;color:var(--muted);font-size:.56rem;text-transform:uppercase;letter-spacing:.04em}.history-table tr:hover td{background:color-mix(in srgb,var(--green) 4%,var(--panel))}.hist-tag{display:inline-flex;padding:2px 6px;border-radius:999px;font-weight:900}.hist-tag.ok{background:#dff3e4;color:#126a32}.hist-tag.swap{background:#fff0b0;color:#846100}.hist-tag.late{background:#ffd6d8;color:#a91620}.hist-tag.pending{background:#ecefed;color:#59645e}:root[data-theme="dark"] .hist-tag.ok{background:#173b25;color:#73dd90}:root[data-theme="dark"] .hist-tag.swap{background:#493d12;color:#ffdb4a}:root[data-theme="dark"] .hist-tag.late{background:#4b2024;color:#ff7c83}:root[data-theme="dark"] .hist-tag.pending{background:#26363d;color:#bac8c0}

/* Dialogs/Admin */
.modal{width:min(720px,calc(100vw - 24px));padding:0;border:1px solid var(--border);border-radius:14px;background:var(--panel);color:var(--text);box-shadow:0 30px 80px rgba(0,0,0,.4)}.modal.compact{width:min(560px,calc(100vw - 24px))}.modal::backdrop{background:rgba(3,12,10,.65);backdrop-filter:blur(4px)}.modal form{padding:20px}.modal-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:18px}.modal-head h3{margin:4px 0;font-size:1.25rem}.modal-head p{margin:0;color:var(--muted);font-size:.74rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-grid.one{grid-template-columns:1fr}.field.full{grid-column:1/-1}.confirm-hint{margin-top:13px;padding:10px;border-radius:8px;background:var(--panel-2);color:var(--muted);font-size:.75rem}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}.admin-modal{width:min(980px,calc(100vw - 24px))}.dialog-body{padding:20px}.upload-box{padding:14px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.file-info{margin-top:10px;color:var(--muted);font-size:.72rem}.admin-section-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 8px}.admin-section-head h4{margin:0}.admin-section-head span{font-size:.66rem;color:var(--muted)}.admin-table{min-width:760px}.import-status{display:inline-flex;padding:2px 6px;border-radius:999px;font-weight:900}.import-status.ok{background:#dff3e4;color:#126a32}.import-status.erro{background:#ffd6d8;color:#a91620}
.toast{position:fixed;right:18px;bottom:18px;z-index:80;max-width:min(430px,calc(100vw - 36px));padding:11px 13px;border:1px solid var(--border);border-radius:9px;background:var(--panel);box-shadow:var(--shadow);font-weight:750;font-size:.76rem}.toast.error{border-color:#dd656a;color:var(--red)}.version-footer{padding:10px 24px 18px;text-align:right;color:var(--muted);font-size:.62rem}.version-footer strong{color:var(--green)}



/* PWA install / update card */
.pwa-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:14px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--green) 55%,var(--border));border-radius:13px;background:linear-gradient(135deg,color-mix(in srgb,var(--green) 12%,var(--panel)),var(--panel));box-shadow:var(--shadow)}
.pwa-card.update{border-color:color-mix(in srgb,var(--blue) 60%,var(--border));background:linear-gradient(135deg,color-mix(in srgb,var(--blue) 11%,var(--panel)),var(--panel))}
.pwa-card-icon{width:64px;height:64px;object-fit:contain;border-radius:15px;background:#111;box-shadow:0 6px 18px rgba(0,0,0,.18)}
.pwa-card-copy strong{display:block;font-size:.93rem}.pwa-card-copy p{margin:3px 0 4px;color:var(--muted);font-size:.73rem;line-height:1.35}.pwa-card-copy small{color:var(--muted);font-size:.62rem;font-weight:750}.pwa-card-actions{display:flex;align-items:center;gap:7px}.pwa-dismiss{width:32px;height:32px}.pwa-card.ios .pwa-card-actions .btn{display:none}

@media(max-width:1200px){
  .app-layout{padding-left:190px}.sidebar{width:190px}.brand-block{padding-left:10px}.sidebar-logo{width:50px;height:50px}.brand-block strong{font-size:.9rem}
  .service-card{grid-template-columns:minmax(185px,1.1fr) 120px minmax(150px,.8fr) minmax(130px,.7fr) minmax(160px,.75fr)}.kpis{grid-template-columns:repeat(3,1fr)}.history-filters{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:900px){
  .app-layout{display:block;padding-left:0}.sidebar{position:fixed;left:-258px;width:238px;transition:left .2s ease;box-shadow:8px 0 30px rgba(0,0,0,.35);z-index:60}body.menu-open .sidebar{left:0}
  body.menu-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.52);z-index:55;backdrop-filter:blur(2px)}
  .mobile-menu{display:grid!important}.topbar{padding:10px 12px;min-height:70px;gap:10px}.shell{padding:14px 16px 32px}.service-card{grid-template-columns:1fr 1fr}.service-card .action-col{grid-column:2;grid-row:1/span 3}.service-card .vehicle-col{grid-column:1}.management-kpis{grid-template-columns:repeat(2,1fr)}
  .history-wrap{max-height:none}.history-table{min-width:1180px}.admin-modal{width:calc(100vw - 16px)}
}
@media(max-width:650px){
  body{font-size:15px}.shell{padding:10px 10px 26px}.topbar{align-items:center;padding:8px 9px;min-height:62px}.brand-area{min-width:0;flex:1}.brand-area .eyebrow{display:none}.brand-area h1{font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:48vw}.subline{font-size:.61rem;white-space:nowrap}.top-actions{gap:4px;flex-wrap:nowrap}.top-actions .icon-btn{width:34px;height:34px}.mode-badge,.version-badge,.user-pill,.garage-field,#settingsBtn,#refreshBtn{display:none!important}.garage-badge{display:inline-flex;max-width:82px;overflow:hidden;text-overflow:ellipsis}.sound-btn::after{display:none}
  .pwa-card{grid-template-columns:52px 1fr;gap:10px;padding:11px}.pwa-card-icon{width:52px;height:52px;border-radius:12px}.pwa-card-actions{grid-column:1/-1}.pwa-card-actions .btn{flex:1}.pwa-dismiss{flex:0 0 34px}.pwa-card-copy strong{font-size:.85rem}.pwa-card-copy p{font-size:.68rem}
  .kpis{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding-bottom:3px}.kpi{min-width:126px;min-height:76px;scroll-snap-align:start;padding:10px}.kpi span{font-size:1.45rem}.kpi em{font-size:.54rem}
  .toolbar{display:grid;grid-template-columns:1fr 1fr;padding:9px;gap:8px}.toolbar .grow{grid-column:1/-1}.field{min-width:0}.window-banner{grid-template-columns:auto 1fr;padding:8px 9px;margin-bottom:11px}.window-banner>span:last-child{display:none}.window-banner p{font-size:.65rem}.list-head{align-items:center;margin-top:10px}.list-head p{display:none}
  .service-list{gap:9px}.service-card{grid-template-columns:1fr;padding:12px 12px 12px 14px;gap:9px;border-left-width:5px}.service-card .action-col{grid-column:1;grid-row:auto;text-align:left;border-top:1px solid color-mix(in srgb,var(--state) 22%,var(--border));padding-top:9px}.service-card .vehicle-col{grid-column:auto}.line-name{font-size:1.05rem}.confirm-deadline{font-size:1.35rem}.data-value{font-size:.9rem}.data-label{font-size:.59rem}.driver-col,.vehicle-col,.time-col{display:grid;grid-template-columns:110px 1fr;align-items:baseline;gap:5px 8px}.driver-col .data-label,.vehicle-col .data-label,.time-col .data-label{grid-column:1}.driver-col .data-value,.vehicle-col .data-value,.time-col .data-value{grid-column:2}.confirm-time,.realized{grid-column:1/-1}.action-buttons{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.action-buttons .btn{width:100%;min-height:40px;font-size:.74rem}.action-buttons.completed .btn:first-child{grid-column:1/-1}.status{font-size:.76rem}.status-detail{font-size:.68rem}
  .management-head{align-items:stretch;flex-direction:column;gap:10px}.management-head .btn{width:100%}.management-kpis{grid-template-columns:repeat(2,1fr);gap:8px}.mgmt-kpi{padding:12px}.mgmt-kpi span{font-size:1.35rem}.history-filters{grid-template-columns:1fr;padding:10px}.history-filters .grow{grid-column:auto}.history-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.history-filter-actions .btn{width:100%}.table-title{align-items:flex-start;gap:8px}.pagination-controls{flex-shrink:0}.history-table{min-width:1060px}.history-table th,.history-table td{padding:8px 7px}.history-wrap{margin:0 -1px}
  .form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.modal{width:calc(100vw - 12px);max-height:calc(100dvh - 12px);border-radius:12px}.modal form,.dialog-body{padding:14px}.modal-actions{position:sticky;bottom:0;background:var(--panel);padding-top:9px}.modal-actions .btn{flex:1;min-height:42px}.admin-table{min-width:720px}.toast{left:10px;right:10px;bottom:10px;max-width:none}.version-footer{text-align:center;padding:10px 10px 18px}
}
@media(max-width:380px){.brand-area h1{max-width:40vw}.garage-badge{display:none}.top-actions .icon-btn{width:32px;height:32px}.driver-col,.vehicle-col,.time-col{grid-template-columns:96px 1fr}.kpi{min-width:116px}}
@media(prefers-reduced-motion:reduce){.service-card{animation:none!important}.sidebar{transition:none}}

/* v0.7.4 — perfil TRAFEGO: interface propositalmente mínima para confirmar/trocar */
.traffic-bar{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px;margin:0 0 12px}
.traffic-tab{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel);color:var(--text);box-shadow:var(--shadow);font-weight:850}
.traffic-tab strong{font-size:1.15rem;color:var(--green)}.traffic-tab span{font-size:.78rem}.traffic-tab.active{border-color:var(--green);background:color-mix(in srgb,var(--green) 11%,var(--panel));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 45%,transparent)}
body.traffic-mode .app-layout{display:block;padding-left:0}
body.traffic-mode .sidebar{display:none!important}
body.traffic-mode .content-area{width:100%}
body.traffic-mode .mobile-menu{display:none!important}
body.traffic-mode .topbar{min-height:64px;padding:8px 18px}
body.traffic-mode .brand-area{min-width:0;flex:1}
body.traffic-mode .brand-area .eyebrow{display:none}
body.traffic-mode .brand-area h1{font-size:1.08rem;margin:0}
body.traffic-mode .subline{margin-top:2px;font-size:.7rem}
body.traffic-mode .top-actions{flex-wrap:nowrap}
body.traffic-mode .mode-badge,body.traffic-mode .version-badge,body.traffic-mode .user-pill,body.traffic-mode .garage-field,body.traffic-mode #settingsBtn,body.traffic-mode #refreshBtn,body.traffic-mode #soundBtn{display:none!important}
body.traffic-mode .garage-badge{display:inline-flex;font-size:.72rem;padding:7px 10px}
body.traffic-mode .shell{max-width:1180px;padding:14px 18px 34px}
body.traffic-mode .kpis,body.traffic-mode .toolbar,body.traffic-mode .window-banner{display:none!important}
body.traffic-mode .list-head{margin:8px 0 10px}
body.traffic-mode .list-head h2{font-size:.95rem;margin:0}
body.traffic-mode .list-head p{display:none}
body.traffic-mode .result-count{font-size:.7rem}
body.traffic-mode .service-list{gap:9px}
body.traffic-mode .service-card{grid-template-columns:minmax(190px,1.2fr) 130px minmax(165px,.9fr) minmax(140px,.75fr) minmax(180px,.9fr);padding:12px 13px;gap:12px}
body.traffic-mode .line-name{font-size:1.04rem}
body.traffic-mode .confirm-deadline{font-size:1.28rem}
body.traffic-mode .action-buttons .btn{min-height:39px}
body.traffic-mode .version-footer{padding-top:2px}

@media(max-width:900px){
  body.traffic-mode .topbar{padding:8px 11px}
  body.traffic-mode .shell{padding:10px 10px 26px}
  body.traffic-mode .service-card{grid-template-columns:1fr 1fr}
  body.traffic-mode .service-card .action-col{grid-column:2;grid-row:1/span 3}
  body.traffic-mode .service-card .vehicle-col{grid-column:1}
}
@media(max-width:650px){
  body.traffic-mode .topbar{min-height:58px;padding:7px 8px}
  body.traffic-mode .brand-area h1{font-size:.86rem;max-width:54vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  body.traffic-mode .subline{font-size:.58rem}
  body.traffic-mode .garage-badge{max-width:92px;padding:5px 7px;font-size:.62rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.traffic-mode .top-actions .icon-btn{width:34px;height:34px}
  .traffic-bar{grid-template-columns:1fr 1fr;gap:7px;margin-bottom:9px}
  .traffic-tab{min-height:43px;padding:7px 8px;gap:6px}.traffic-tab strong{font-size:1rem}.traffic-tab span{font-size:.7rem}
  body.traffic-mode .list-head h2{font-size:.86rem}
  body.traffic-mode .service-card{grid-template-columns:1fr;padding:11px 11px 11px 13px;gap:8px}
  body.traffic-mode .service-card .action-col{grid-column:1;grid-row:auto}
  body.traffic-mode .service-card .vehicle-col{grid-column:auto}
  body.traffic-mode .driver-col,body.traffic-mode .vehicle-col,body.traffic-mode .time-col{grid-template-columns:104px 1fr}
  body.traffic-mode .action-buttons{grid-template-columns:1fr 1fr;gap:7px}
  body.traffic-mode .action-buttons .btn{min-height:44px;font-size:.78rem}
  body.traffic-mode .confirm-deadline{font-size:1.24rem}
  body.traffic-mode .version-footer{display:none}
}

/* v0.7.4 — backend único + administração de usuários/permissões + frota por prefixo */
.backend-note{margin-top:16px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2);color:var(--muted);font-size:.72rem;line-height:1.4}
.vehicle-type-info{margin-top:5px;min-height:20px;padding:5px 8px;border-radius:7px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:.68rem;font-weight:750}
.vehicle-type-info.loading{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 45%,var(--border))}.vehicle-type-info.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--border));background:color-mix(in srgb,var(--green) 8%,var(--panel))}.vehicle-type-info.error{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--border));background:color-mix(in srgb,var(--red) 7%,var(--panel))}
.admin-page-card{padding:14px}.admin-toolbar{display:flex;align-items:end;gap:10px;margin-bottom:12px}.admin-toolbar .btn{min-height:39px}.users-table{min-width:760px}.users-table th:last-child,.users-table td:last-child{text-align:right}.btn.small{padding:6px 9px;font-size:.7rem}.profile-tag,.user-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 7px;font-size:.61rem;font-weight:900}.profile-tag{background:var(--panel-2);border:1px solid var(--border)}.user-status.active{background:color-mix(in srgb,var(--green) 14%,var(--panel));color:var(--green);border:1px solid color-mix(in srgb,var(--green) 35%,var(--border))}.user-status.inactive{background:color-mix(in srgb,var(--red) 11%,var(--panel));color:var(--red);border:1px solid color-mix(in srgb,var(--red) 35%,var(--border))}
.garage-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.garage-check,.active-toggle{display:flex;align-items:center;gap:8px;padding:9px 10px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:.76rem;font-weight:750}.garage-check input,.active-toggle input{width:auto}.active-toggle{margin-top:2px}.form-grid .active-toggle.full{grid-column:1/-1}
.permission-help{margin-bottom:12px;padding:9px 11px;border:1px solid color-mix(in srgb,var(--blue) 35%,var(--border));border-radius:8px;background:color-mix(in srgb,var(--blue) 7%,var(--panel));color:var(--muted);font-size:.72rem}.permissions-table{min-width:880px}.permissions-table th:not(:first-child),.permissions-table td:not(:first-child){text-align:center}.permission-cell{vertical-align:middle}.switch-check{display:inline-flex;position:relative}.switch-check input{position:absolute;opacity:0;pointer-events:none}.switch-check span{display:block;width:38px;height:22px;border-radius:999px;background:var(--border);position:relative;transition:.15s}.switch-check span::after{content:"";position:absolute;width:16px;height:16px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.25);transition:.15s}.switch-check input:checked+span{background:var(--green)}.switch-check input:checked+span::after{transform:translateX(16px)}

@media(max-width:650px){
  .admin-page-card{padding:9px}.admin-toolbar{display:grid;grid-template-columns:1fr}.admin-toolbar .btn{width:100%}.garage-checks{grid-template-columns:1fr}.users-table{min-width:680px}.permissions-table{min-width:820px}
  .vehicle-type-info{font-size:.7rem;padding:7px 8px}.user-status,.profile-tag{font-size:.58rem}
}

/* v0.7.4 • criação de perfis */
.management-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.profile-create-note{margin-top:12px;padding:10px 11px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:.72rem}.profile-create-note::before{content:"PERFIL NO BACKEND";display:block;margin-bottom:4px;color:var(--green);font-size:.57rem;font-weight:950;letter-spacing:.05em}@media(max-width:760px){.management-head-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.management-head-actions .btn{width:100%}}


/* v0.7.4 — PWA somente no login + correção de altura da navegação */
.login-pwa-card{margin:16px 0 14px;grid-template-columns:54px minmax(0,1fr);padding:11px 12px;gap:10px;box-shadow:none}
.login-pwa-card .pwa-card-icon{width:54px;height:54px;border-radius:13px}
.login-pwa-card .pwa-card-actions{grid-column:1/-1;width:100%}
.login-pwa-card .pwa-card-actions .btn{flex:1;min-height:40px}
.login-pwa-card .pwa-dismiss{flex:0 0 36px}
.login-card:has(.login-pwa-card:not(.hidden)){width:min(500px,100%)}
.sidebar{-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.16) transparent}
.sidebar::-webkit-scrollbar{width:5px}.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:999px}
@media (max-height:760px) and (min-width:901px){
  .brand-block{height:66px;padding-top:7px;padding-bottom:7px}.sidebar-logo{width:46px;height:46px}.brand-block strong{font-size:.9rem}
  .sidebar-section-title{padding:11px 15px 5px}.side-nav{gap:1px}.nav-item{padding:8px 9px;font-size:.74rem}
  .sidebar-version{padding:9px 16px 11px}.sidebar-spacer{min-height:4px}
}
@media(max-width:650px){
  .login-screen{padding:14px}.login-card{padding:20px 16px;border-radius:18px}.login-logo{width:68px;height:68px;margin-bottom:12px}.login-card h1{font-size:1.45rem}.login-card>p{margin-bottom:14px}
  .login-pwa-card{grid-template-columns:46px 1fr;padding:10px;margin:12px 0}.login-pwa-card .pwa-card-icon{width:46px;height:46px}.login-pwa-card .pwa-card-copy strong{font-size:.8rem}.login-pwa-card .pwa-card-copy p{font-size:.65rem}
}


/* v0.7.4 — edição segura de usuário/senha */
.user-password-field{position:relative}.password-change-toggle{display:inline-flex;align-items:center;gap:6px;margin:0 0 7px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);font-size:.68rem;font-weight:800;color:var(--text);cursor:pointer}.password-change-toggle input{width:auto;margin:0}.user-password-field input:disabled{opacity:.62;cursor:not-allowed;background:color-mix(in srgb,var(--panel-2) 85%,var(--border))}

/* v0.7.4 - feedback de gravação de usuário dentro do dialog (top layer) */
.form-alert{margin:0 0 12px;padding:10px 12px;border:1px solid #efb0b3;border-radius:8px;background:#fff1f2;color:#a71d26;font-weight:750;font-size:.75rem;line-height:1.35}
[data-theme="dark"] .form-alert{background:#351719;border-color:#7f3439;color:#ffb9bd}
#userForm.is-saving .form-grid{opacity:.72;pointer-events:none}
#saveUserBtn:disabled{cursor:wait;opacity:.72}


/* v0.7.7 — cache-first por página + sincronização visível + notificações temáticas */
.sync-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:6px 8px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:.56rem;font-weight:950;letter-spacing:.035em;white-space:nowrap}
.sync-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.sync-badge.syncing{color:var(--blue)}.sync-badge.cached{color:var(--orange)}.sync-badge.synced{color:var(--green)}.sync-badge.error{color:var(--red)}
.sync-badge.syncing::before{animation:syncPulse .8s ease-in-out infinite alternate}@keyframes syncPulse{to{transform:scale(1.65);opacity:.45}}
.toast-container{position:fixed;right:18px;bottom:18px;z-index:120;display:grid;gap:9px;width:min(390px,calc(100vw - 36px));pointer-events:none}
.toast-container.hidden{display:none!important}.toast-notice{display:grid;grid-template-columns:30px minmax(0,1fr) 28px;align-items:center;gap:9px;padding:11px 10px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--panel) 94%,transparent);color:var(--text);box-shadow:0 14px 36px rgba(0,0,0,.18);backdrop-filter:blur(10px);transform:translateY(10px);opacity:0;transition:opacity .2s ease,transform .2s ease;pointer-events:auto}
.toast-notice.show{transform:translateY(0);opacity:1}.toast-notice.success{border-left:4px solid var(--green)}.toast-notice.error{border-left:4px solid var(--red)}.toast-notice.warning{border-left:4px solid var(--orange)}.toast-notice.info{border-left:4px solid var(--blue)}
.toast-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);border:1px solid var(--border);font-weight:950}.toast-notice.success .toast-icon{color:var(--green)}.toast-notice.error .toast-icon{color:var(--red)}.toast-notice.warning .toast-icon{color:var(--orange)}.toast-notice.info .toast-icon{color:var(--blue)}
.toast-copy{font-size:.76rem;font-weight:800;line-height:1.35}.toast-close{width:28px;height:28px;border:0;background:transparent;color:var(--muted);font-size:1.05rem;border-radius:7px}.toast-close:hover{background:var(--panel-2);color:var(--text)}
@media(max-width:650px){.sync-badge{font-size:0;width:28px;height:28px;padding:0;justify-content:center}.sync-badge::before{width:8px;height:8px}.toast-container{left:10px;right:10px;bottom:10px;width:auto}}


/* v0.7.7 */
.password-input-wrap{display:flex;align-items:stretch;gap:8px}.password-input-wrap input{flex:1}.password-toggle-btn{min-width:42px;height:42px;border:1px solid var(--border);background:var(--panel-2)}.password-toggle-btn:hover{background:color-mix(in srgb,var(--panel-2) 70%,var(--green))}.password-toggle-btn.is-on{border-color:color-mix(in srgb,var(--green) 60%,var(--border));color:var(--green)}
.operation-groups{display:grid;gap:14px}.operation-group{display:grid;gap:8px}.operation-group-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 0}.operation-group-head h3{margin:0;font-size:.92rem}.operation-group-head p{margin:2px 0 0;color:var(--muted);font-size:.68rem}.operation-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:34px;padding:4px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-size:.7rem;font-weight:900;color:var(--muted)}
@media(max-width:760px){.operation-group-head{align-items:flex-start;flex-direction:column}.operation-group-count{min-width:0}}

/* v0.7.7 user save diagnostics */
.user-backend-status{margin:0 0 10px;padding:8px 10px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);color:var(--muted);font-size:.68rem;font-weight:750}.user-backend-status.saving{color:#0b6b38;border-color:color-mix(in srgb,var(--green) 55%,var(--border))}.user-backend-status.error{color:#b6232c;border-color:color-mix(in srgb,var(--red) 55%,var(--border));background:color-mix(in srgb,var(--red) 7%,var(--panel))}.user-backend-status.ok{color:#0b6b38;border-color:color-mix(in srgb,var(--green) 55%,var(--border));background:color-mix(in srgb,var(--green) 7%,var(--panel))}

.password-change-toggle[hidden]{display:none!important}
