/* Sistema Exclusiva — base visual consolidada
   Base consolidada em 0.10.18. Regras condicionais antigas foram removidas;
   responsividade fica exclusivamente em adaptive.css. */
: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);
  --overlay:rgba(7,22,18,.46); --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);
  --overlay:rgba(0,0,0,.72); --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}
.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}.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}.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}







/* 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)}




/* v0.7.4 — 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)}



/* 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:"NOVO PERFIL";display:block;margin-bottom:4px;color:var(--green);font-size:.57rem;font-weight:950;letter-spacing:.05em}


/* 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}




/* 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.21 — carregamento otimizado por página + atualizaçã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}.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)}



/* v0.7.21 */
.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)}


/* v0.7.21 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}


/* v0.7.21 */
.global-loading-overlay{position:fixed;inset:0;z-index:180;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(7,22,29,.42);backdrop-filter:blur(3px)}.global-loading-overlay.hidden{display:none}.global-loading-card{display:flex;align-items:center;gap:14px;min-width:min(420px,calc(100vw - 36px));max-width:520px;padding:16px 18px;border:1px solid var(--border);border-radius:13px;background:var(--panel);color:var(--text);box-shadow:0 20px 70px rgba(0,0,0,.28)}.global-loading-card strong{display:block;font-size:.9rem}.global-loading-card span:not(.global-loading-spinner){display:block;margin-top:3px;color:var(--muted);font-size:.72rem}.global-loading-spinner{width:28px;height:28px;flex:0 0 28px;border:3px solid color-mix(in srgb,var(--green) 22%,var(--border));border-top-color:var(--green);border-radius:50%;animation:globalSpin .75s linear infinite}@keyframes globalSpin{to{transform:rotate(360deg)}}
.service-card .action-buttons .btn{min-height:46px;padding:10px 17px;font-size:.78rem;font-weight:900}.service-card .action-buttons .confirm-direct-btn,.service-card .action-buttons .swap-btn{min-width:110px}.btn.swap{font-weight:900}


.user-save-feedback{margin-top:12px;padding:9px 11px;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);color:var(--muted);font-size:.72rem;font-weight:800}.user-save-feedback.saving{border-color:#9fc9f0;color:#205d94}.user-save-feedback.ok{border-color:#76c991;color:#13713a;background:color-mix(in srgb,var(--green) 8%,var(--panel))}.user-save-feedback.error{border-color:#e39499;color:#b51d27;background:color-mix(in srgb,var(--red) 7%,var(--panel))}:root[data-theme="dark"] .user-save-feedback.saving{color:#75bfff}:root[data-theme="dark"] .user-save-feedback.ok{color:#75df92}:root[data-theme="dark"] .user-save-feedback.error{color:#ff8c92}

/* v0.7.21 • UI compacta, notificações centrais e atualização obrigatória */
.pwa-card.update-required{border-width:2px;box-shadow:0 14px 34px color-mix(in srgb,var(--blue) 22%,transparent)}
.pwa-card.update-required .pwa-card-copy strong{font-size:1rem}.pwa-card.update-required .btn{min-height:44px;font-size:.78rem}
#loginForm.login-blocked{opacity:.48;filter:saturate(.55);pointer-events:none;user-select:none}

.global-loading-overlay{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:20px;border:0;background:rgba(7,22,29,.45);color:var(--text);display:flex;align-items:center;justify-content:center;box-sizing:border-box;overflow:hidden}
.global-loading-overlay::backdrop{background:rgba(7,22,29,.45);backdrop-filter:blur(4px)}
.global-loading-overlay:not([open]){display:none}
.global-loading-card{margin:auto;min-width:min(440px,calc(100vw - 36px));max-width:540px;padding:18px 20px;border-radius:16px;box-shadow:0 26px 90px rgba(0,0,0,.38)}

.notification-dialog{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:20px;border:0;background:transparent;overflow:hidden;color:var(--text)}
.notification-dialog::backdrop{background:rgba(7,22,29,.50);backdrop-filter:blur(5px)}
.notification-dialog:not([open]){display:none}
.toast-container{position:static;width:min(470px,calc(100vw - 36px));margin:auto;display:block;pointer-events:auto}
.toast-notice{grid-template-columns:40px minmax(0,1fr) 34px;gap:12px;padding:17px 16px;border-radius:16px;background:var(--panel);box-shadow:0 26px 90px rgba(0,0,0,.38);transform:scale(.96);opacity:0;transition:opacity .18s ease,transform .18s ease;border-width:1px;border-left-width:6px}
.toast-notice.show{transform:scale(1);opacity:1}.toast-icon{width:38px;height:38px;font-size:1.05rem}.toast-title{display:block;font-size:.88rem;margin-bottom:3px}.toast-copy{display:block;font-size:.78rem;line-height:1.42;font-weight:750}.toast-close{width:32px;height:32px;font-size:1.18rem}

/* Mais linhas visíveis sem encolher os botões operacionais */
.operation-groups{gap:9px}.operation-group{gap:5px}.operation-group-head{padding:3px 2px 0}.operation-group-head h3{font-size:.82rem}.operation-group-head p{font-size:.6rem}.operation-group-count{padding:2px 8px;font-size:.62rem;min-width:30px}
.service-list{gap:5px}.service-card{grid-template-columns:minmax(190px,1.08fr) minmax(115px,.64fr) minmax(145px,.8fr) minmax(130px,.72fr) minmax(178px,.8fr);gap:8px;padding:7px 9px 7px 12px;border-radius:8px}
.line-name{font-size:.89rem}.line-meta{margin-top:2px;gap:4px}.chip{font-size:.53rem;padding:1px 5px}.data-label{font-size:.52rem}.data-value{font-size:.76rem}.confirm-deadline{font-size:1.03rem}.confirm-time,.realized{margin-top:2px;font-size:.59rem}.status{font-size:.62rem}.status-detail{font-size:.58rem}.edit-meta{font-size:.52rem}.card-action{margin-top:5px}
.action-buttons{gap:6px}.action-buttons .btn,.service-card .action-buttons .btn{min-height:38px;padding:8px 13px;font-size:.72rem;font-weight:900}



/* v0.7.21 • ação NÃO RODA */
.btn.no-run{background:#5d6670;color:#fff;border-color:#48515a;font-weight:900}.btn.no-run:hover{background:#4e5760}.service-card.no-run{--state:#66717b;background:color-mix(in srgb,var(--panel) 90%,#cfd4d8)}:root[data-theme="dark"] .service-card.no-run{background:color-mix(in srgb,var(--panel) 88%,#5d6670)}.status.no-run{color:#48515a}:root[data-theme="dark"] .status.no-run{color:#c9d0d6}.no-run-chip{color:#4d565e;border-color:#aab1b7}.service-card .action-buttons .no-run-btn{min-width:108px}


/* v0.7.21 • três ações operacionais sempre visíveis */



/* v0.7.21 • exclusão de usuários e perfis */
.btn.danger{background:#c92a32;color:#fff;border-color:#aa2028;font-weight:900}.btn.danger:hover{background:#ad2028}.btn.danger:disabled{opacity:.48;cursor:not-allowed}.row-actions{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.row-actions .btn{min-width:72px}.permissions-table .profile-actions{min-width:104px;text-align:right}.delete-profile-btn{white-space:nowrap}.danger-modal{border-color:color-mix(in srgb,#c92a32 55%,var(--border))}.danger-eyebrow{color:#c92a32}.delete-warning{display:grid;gap:5px;padding:13px 14px;border:1px solid color-mix(in srgb,#c92a32 35%,var(--border));border-radius:10px;background:color-mix(in srgb,var(--panel) 88%,#ffd7da);font-size:.78rem}.delete-warning strong{font-size:.94rem;color:#a51e26}.delete-warning span{color:var(--muted)}:root[data-theme="dark"] .delete-warning{background:color-mix(in srgb,var(--panel) 86%,#5b171c)}


/* v0.7.21 • visualização de senha no Admin */
.users-table{min-width:980px}.user-password-cell{display:flex;align-items:center;gap:7px;min-width:145px}.user-password-cell code{display:inline-block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 7px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);font:700 .68rem/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--text)}.small-password-toggle{width:32px;height:32px;min-width:32px;padding:0}.password-legacy{display:inline-flex;padding:5px 7px;border:1px solid color-mix(in srgb,var(--orange) 40%,var(--border));background:color-mix(in srgb,var(--orange) 10%,var(--panel));color:var(--orange);border-radius:6px;font-size:.65rem;font-weight:900;white-space:nowrap}


/* v0.7.21 • mobile compacto + senha visível no login */
.login-password-wrap{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px;align-items:stretch}
.login-password-wrap input{min-width:0}
.login-password-toggle{width:42px;height:auto;min-height:42px;background:var(--panel-2)}
.login-password-toggle.is-on{border-color:color-mix(in srgb,var(--green) 65%,var(--border));color:var(--green)}






/* v0.7.23 • filtros compactos no mobile e estado ativo */
.kpi{transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.kpi.active{border-color:color-mix(in srgb,var(--green) 70%,var(--border));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--green) 38%,transparent),var(--shadow)}
.kpi:active{transform:translateY(1px)}




/* v0.7.27 — horários de confirmação */
.confirmation-rules-toolbar{display:flex;align-items:end;gap:10px;padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}
.confirmation-rules-toolbar .field{margin:0;min-width:190px}.confirmation-rules-toolbar .grow{flex:1;min-width:220px}.confirmation-rules-toolbar .btn{min-height:38px}
.confirmation-rules-note{margin:8px 0;color:var(--muted);font-size:.7rem;line-height:1.45}.confirmation-rules-wrap{max-height:360px;border:1px solid var(--border);border-radius:10px}.confirmation-rules-table{min-width:720px}.confirmation-rules-table td:first-child{white-space:normal;min-width:220px}.rule-occurrence{display:block;color:var(--muted);font-size:.58rem;margin-top:2px}.confirmation-rule-tag{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.58rem;font-weight:900}.confirmation-rule-tag.default{background:color-mix(in srgb,var(--green) 12%,var(--panel));color:var(--green)}.confirmation-rule-tag.custom{background:color-mix(in srgb,var(--yellow) 20%,var(--panel));color:#9a7000}:root[data-theme="dark"] .confirmation-rule-tag.custom{color:#ffdb4a}.btn.small{min-height:30px;padding:5px 9px;font-size:.65rem}



/* v0.7.32 - ações em lote por veículo */
.batch-action-modal{width:min(1040px,calc(100vw - 24px));max-height:calc(100dvh - 24px)}
.batch-action-modal form{display:flex;flex-direction:column;max-height:calc(100dvh - 26px);overflow:hidden}
.batch-action-head{flex:0 0 auto;margin-bottom:12px}
.batch-swap-fields{flex:0 0 auto;margin-bottom:10px}
.batch-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:var(--panel-2);margin-bottom:9px;flex:0 0 auto}
.batch-selection-toolbar>div:first-child{display:grid;gap:2px}.batch-selection-toolbar strong{font-size:.78rem}.batch-selection-toolbar span{font-size:.62rem;color:var(--muted)}
.batch-selection-actions{display:flex;gap:6px;flex-wrap:wrap}
.batch-service-list{display:grid;gap:7px;overflow:auto;min-height:120px;max-height:47dvh;padding:2px 3px 4px 1px;overscroll-behavior:contain}
.batch-service-item{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:stretch;border:1px solid var(--border);border-radius:10px;background:var(--panel);cursor:pointer;overflow:hidden;transition:.12s ease}
.batch-service-item:hover{border-color:color-mix(in srgb,var(--green) 48%,var(--border));background:color-mix(in srgb,var(--green) 3%,var(--panel))}
.batch-service-item.selected{border-color:color-mix(in srgb,var(--green) 70%,var(--border));box-shadow:inset 4px 0 0 var(--green);background:color-mix(in srgb,var(--green) 6%,var(--panel))}
.batch-service-item.disabled{opacity:.58;cursor:not-allowed}
.batch-check-wrap{display:grid;place-items:center;border-right:1px solid var(--border);background:var(--panel-2)}
.batch-service-check{width:19px;height:19px;accent-color:var(--green)}
.batch-service-content{padding:9px 11px;min-width:0}
.batch-service-main{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.batch-service-main-left{min-width:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.batch-service-line{font-size:.88rem;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:520px}.batch-service-start{font-size:1rem;font-weight:950;color:var(--green);white-space:nowrap}
.batch-service-chips{display:flex;gap:4px;flex-wrap:wrap}.batch-service-chips .chip{font-size:.53rem}
.batch-service-details{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:7px 11px}
.batch-detail{min-width:0}.batch-detail small{display:block;font-size:.5rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:900}.batch-detail strong{display:block;margin-top:2px;font-size:.68rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.batch-detail.warning strong{color:var(--orange)}
.batch-observation-field{flex:0 0 auto;margin-top:10px}.batch-action-modal .confirm-hint{flex:0 0 auto;margin-top:9px}.batch-action-modal .modal-actions{flex:0 0 auto}



/* Gerenciar linhas */
.line-manager-card{padding:14px}.line-manager-filters{display:grid;grid-template-columns:minmax(180px,.55fr) minmax(220px,1fr) minmax(220px,1fr);gap:10px;align-items:end}.line-manager-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 2px 8px;color:var(--muted);font-size:.7rem}.line-manager-meta strong{color:var(--text)}.line-manager-wrap{max-height:calc(100dvh - 280px);border:1px solid var(--border);border-radius:10px}.line-manager-table{min-width:1080px}.line-manager-table thead th{position:sticky;top:0;z-index:2}.line-manager-table td{vertical-align:middle}.line-manager-table td:nth-child(6),.line-manager-table td:nth-child(7),.line-manager-table td:nth-child(8){text-align:center;font-variant-numeric:tabular-nums}.line-manager-table td:last-child{text-align:right}



/* v0.7.37 — Gerenciar linhas consolidado */
.line-manager-wrap{overflow-x:hidden}
.line-manager-table{min-width:0;width:100%;table-layout:fixed}
.line-manager-table .col-line{width:30%}.line-manager-table .col-vehicle{width:20%}.line-manager-table .col-confirm{width:17%}.line-manager-table .col-time{width:12%}.line-manager-table .col-action{width:9%}
.line-manager-table th,.line-manager-table td{white-space:normal;overflow-wrap:anywhere}
.line-manager-table th:nth-child(3),.line-manager-table th:nth-child(4),.line-manager-table th:nth-child(5),.line-manager-table td:nth-child(3),.line-manager-table td:nth-child(4),.line-manager-table td:nth-child(5){text-align:center;font-variant-numeric:tabular-nums}
.line-manager-table td:last-child{text-align:right}.line-manager-confirmation{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 9px}.line-manager-confirmation span{white-space:nowrap}.line-manager-confirmation b{color:var(--green);font-size:.58rem}
.line-schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.line-schedule-direction{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--panel-2)}.line-schedule-direction>strong{display:block;margin-bottom:9px;font-size:.78rem}.line-schedule-direction .form-grid{grid-template-columns:1fr;gap:9px}

/* Controle do drawer mobile; o breakpoint desktop o oculta. */
.sidebar-collapse-btn{display:grid;flex:0 0 auto;font-size:1.25rem;font-weight:900}




.line-schedule-confirmation-block{grid-column:1/-1}.line-schedule-confirmation-block small{display:block;margin-top:7px;color:var(--muted);font-size:.65rem}.line-schedule-confirmation-block .field{max-width:260px}


.line-manager-vehicle-pair{display:grid;gap:2px;line-height:1.15}.line-manager-vehicle-pair span{white-space:normal}.line-manager-vehicle-pair b{color:var(--green);font-size:.55rem}

.line-manager-confirm-pair{display:inline-flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.line-manager-confirm-pair span{white-space:nowrap}.line-manager-confirm-pair b{font-size:.58rem;color:var(--muted);margin-right:2px}

/* v0.8.4 — Sistema Exclusiva: shell modular */
.module-section-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.module-section-title span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-section-title small{flex:0 0 auto;padding:2px 5px;border:1px solid rgba(255,255,255,.13);border-radius:999px;color:#74d88e;font-size:.46rem;letter-spacing:.06em}
.context-hidden{display:none}
.home-view{display:grid;gap:18px}.system-hero{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(230px,.6fr);gap:24px;align-items:center;padding:24px;background:linear-gradient(135deg,color-mix(in srgb,var(--panel) 90%,var(--green) 10%),var(--panel));overflow:hidden;position:relative}.system-hero::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-90px;top:-120px;background:color-mix(in srgb,var(--green) 10%,transparent);pointer-events:none}.system-hero-copy{position:relative;z-index:1}.system-hero h2{margin:5px 0 7px;font-size:1.55rem;letter-spacing:-.025em}.system-hero p{margin:0;max-width:820px;color:var(--muted);font-size:.82rem;line-height:1.55}.system-hero-meta{position:relative;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:start;padding:14px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--panel) 88%,transparent)}.system-meta-label{color:var(--muted);font-size:.62rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.system-hero-meta strong{font-size:.72rem;line-height:1.35;overflow-wrap:anywhere}
.home-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px}.home-section-head h2{margin:0;font-size:1.05rem}.home-section-head p{margin:3px 0 0;color:var(--muted);font-size:.72rem;max-width:850px}
.module-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.module-card{min-height:225px;display:flex;flex-direction:column;justify-content:space-between;gap:18px;padding:18px;border:1px solid var(--border);border-radius:13px;background:var(--panel);box-shadow:var(--shadow);position:relative;overflow:hidden}.module-card-active{border-color:color-mix(in srgb,var(--green) 38%,var(--border));background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 94%,var(--green) 6%),var(--panel))}.module-card-active::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--green)}.module-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.module-icon{width:38px;height:38px;border:1px solid var(--border);border-radius:10px;display:grid;place-items:center;background:var(--panel-2);color:var(--green);font-size:1.1rem;font-weight:950}.module-card small{display:block;color:var(--muted);font-size:.56rem;font-weight:950;letter-spacing:.11em}.module-card h3{margin:5px 0 5px;font-size:1.04rem}.module-card p{margin:0;color:var(--muted);font-size:.73rem;line-height:1.48}.module-status{padding:4px 7px;border-radius:999px;font-size:.53rem;font-weight:950;letter-spacing:.06em}.module-status.live{background:color-mix(in srgb,var(--green) 13%,var(--panel));color:var(--green);border:1px solid color-mix(in srgb,var(--green) 32%,var(--border))}.module-status.planned{background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.module-card-actions{display:flex;gap:8px;flex-wrap:wrap}.module-card-actions .btn{min-width:120px}.module-card-planned{box-shadow:none}.module-card-planned .module-icon{color:var(--muted)}.module-card-planned .btn{align-self:flex-start}.module-no-access{opacity:.72}.module-no-access .module-status.live{color:var(--muted);border-color:var(--border);background:var(--panel-2)}
.system-admin-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px}.system-admin-card h3{margin:5px 0 3px;font-size:.94rem}.system-admin-card p{margin:0;color:var(--muted);font-size:.7rem;line-height:1.45}.system-admin-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}




/* v0.8.4 — permissões separadas por módulo */
.permissions-page-card{padding:12px}.permissions-module-list{display:grid;gap:14px}.permission-module-card{overflow:hidden;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.permission-module-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,color-mix(in srgb,var(--panel-2) 92%,var(--green) 8%),var(--panel))}.permission-module-head h3{margin:3px 0 2px;font-size:1rem}.permission-module-head p{margin:0;color:var(--muted);font-size:.7rem}.permission-module-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border:1px solid color-mix(in srgb,var(--green) 30%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--green) 8%,var(--panel));color:var(--green);font-size:.52rem;font-weight:950;letter-spacing:.08em}.module-permissions-table{min-width:760px}.module-permissions-table .permission-profile{min-width:130px}.permission-profile small{display:block;margin-top:3px;color:var(--muted);font-size:.56rem}.permission-disabled{opacity:.42}.permission-disabled .switch-check{filter:grayscale(.5)}.permissions-empty{padding:20px;color:var(--muted);text-align:center}.permissions-module-list .table-wrap{border:0;border-radius:0;box-shadow:none}.permissions-module-list .admin-table th{background:var(--panel-2)}



/* Vistoria • módulo 03 — extensão responsiva sobre o layout-base da 0.8.4 */
.vistoria-view{padding-top:22px;padding-bottom:28px;min-width:0}
.vistoria-module-content{display:grid;gap:16px;min-width:0;max-width:100%}
.vistoria-head{margin-bottom:0;min-width:0}
.vistoria-tabs{display:flex;gap:8px;padding:8px;width:max-content;max-width:100%;overflow-x:auto;overflow-y:hidden}
.vistoria-tab{border:0;background:transparent;color:var(--muted);padding:10px 14px;border-radius:9px;font-weight:850;white-space:nowrap}
.vistoria-tab:hover{background:var(--panel-2);color:var(--text)}
.vistoria-tab.active{background:var(--green);color:#fff}
.vistoria-form-card{display:grid;gap:18px;min-width:0}
.vistoria-section-head h3{margin:4px 0 3px}.vistoria-section-head p{margin:0;color:var(--muted);font-size:.78rem}
.vistoria-section-title{padding-top:4px;border-top:1px solid var(--border);color:var(--muted);font-size:.68rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase}
.vistoria-check-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.vistoria-form-bottom{margin-top:2px}
.vistoria-form-actions{display:flex;justify-content:flex-end;border-top:1px solid var(--border);padding-top:14px}
.vistoria-form-actions .btn{min-width:180px}
.vistoria-kpis{grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}
.vistoria-filter-card{display:grid;gap:14px;min-width:0;max-width:100%;overflow:hidden}
.vistoria-filter-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.vistoria-filter-head>div{min-width:0}.vistoria-filter-head h3{margin:0 0 4px}.vistoria-filter-head p{margin:0;color:var(--muted);font-size:.76rem;line-height:1.45}
.vistoria-filter-head .btn{flex:0 0 auto}
.vistoria-dashboard-filters{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:12px;min-width:0}
.vistoria-dashboard-filters .field{min-width:0;margin:0}.vistoria-dashboard-filters .field.grow{grid-column:span 2}
.vistoria-dashboard-filters input,.vistoria-dashboard-filters select{width:100%;min-width:0}
.vistoria-table-card{min-width:0;max-width:100%;overflow:hidden}
.vistoria-table-card .table-title{gap:12px;min-width:0}
.vistoria-table-wrap{width:100%;max-width:100%;max-height:none;overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch}
.vistoria-table{width:100%;min-width:980px}
.vistoria-table td,.vistoria-table th{white-space:nowrap}
.vistoria-sort-note{color:var(--muted);font-size:.72rem;white-space:nowrap}
.vistoria-issue{display:inline-flex;align-items:center;justify-content:center;min-width:58px;padding:4px 8px;border-radius:999px;font-size:.7rem;font-weight:900}
.vistoria-issue.good{background:rgba(22,130,61,.12);color:var(--green)}
.vistoria-issue.bad{background:rgba(223,48,56,.12);color:var(--red)}
.vistoria-error{padding:22px}.vistoria-error strong{display:block;font-size:1rem}.vistoria-error p{color:var(--muted);margin:7px 0 15px}





/* v0.9.6 — lapidação de layout, navegação e tabelas */
.module-nav-toggle{width:100%;border:0;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer;appearance:none}
.module-nav-toggle i{flex:0 0 auto;color:#74d88e;font-size:.66rem;font-style:normal;transition:transform .16s ease}
.sidebar-nav-group.section-collapsed>.side-nav{display:none}
.sidebar-nav-group.section-collapsed .module-nav-toggle i{transform:rotate(-90deg)}
.module-nav-toggle:focus-visible{outline:2px solid #74d88e;outline-offset:-2px;border-radius:6px}

.shell{width:100%;max-width:1680px;min-width:0;padding:16px clamp(12px,2vw,24px) 32px}
.panel-card,.management-head,.table-wrap,.history-table-card,.line-manager-card,.permissions-page-card,.permission-module-card{min-width:0;max-width:100%}
.table-wrap{width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
.history-wrap{max-height:none;min-height:0}
.history-table{min-width:1180px}.admin-table{min-width:720px}
.history-table th,.admin-table th{top:0;z-index:2}
.management-head{align-items:center}.management-head>div{min-width:0}.management-head p{display:none}
.compact-notice{min-height:38px}.compact-notice p{display:none}
.permission-module-head{padding:11px 13px}.permission-module-head h3{margin:3px 0;font-size:.98rem}.permission-module-head p{display:none}
.module-permissions-table{min-width:690px}.permissions-wrap{overflow-x:auto}
.vistoria-filter-card{padding:12px}.vistoria-filter-head{align-items:center}.vistoria-filter-head h3{margin:0;font-size:1rem}.vistoria-filter-head p{display:none}
.vistoria-dashboard-filters{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:10px}.vistoria-dashboard-filters .field.grow{grid-column:span 2}
.vistoria-table{min-width:860px}.vistoria-table th,.vistoria-table td{padding:9px 10px}.vistoria-table th{position:sticky;top:0;background:var(--panel-2);z-index:2}
.vistoria-issue-btn{border:0;cursor:pointer;font:inherit}.vistoria-issue-btn:hover{filter:brightness(.97);box-shadow:0 0 0 2px color-mix(in srgb,#d64045 16%,transparent)}.vistoria-issue-btn span{display:inline-block;margin-left:3px;transition:transform .15s ease}.vistoria-issue-btn.is-open span{transform:rotate(180deg)}
.vistoria-detail-row td{padding:0;background:color-mix(in srgb,var(--panel-2) 82%,var(--panel));border-bottom:1px solid var(--border)}
.vistoria-pending-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:7px;padding:10px 12px}.vistoria-pending-item{display:grid;gap:2px;padding:9px 10px;border:1px solid color-mix(in srgb,#d64045 25%,var(--border));border-radius:8px;background:color-mix(in srgb,#d64045 5%,var(--panel))}.vistoria-pending-item strong{font-size:.68rem;color:#bd2830}.vistoria-pending-item span{font-size:.66rem;color:var(--text);line-height:1.35;white-space:normal}.vistoria-pending-empty{padding:10px 12px;color:var(--muted)}
.modal,.admin-modal,.batch-action-modal{max-height:calc(100dvh - 24px);overflow:hidden}.modal form,.dialog-body{max-height:calc(100dvh - 28px);overflow:auto}.modal-actions{z-index:3}




/* hotfix menu lateral 0.9.6 — restaura tipografia compacta dos títulos dos módulos */
.module-nav-toggle.sidebar-section-title{font-size:.62rem;font-weight:900;letter-spacing:.14em;line-height:1.2}


/* 0.9.6 — falha isolada de módulo não é exibida como queda da internet */
.sync-badge.moduleError{background:#fff4df;color:#9a5b00;border-color:#efca88}

.password-restricted{display:inline-flex;padding:5px 7px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--muted);font-size:.65rem;font-weight:800;white-space:nowrap}

/* 0.9.8 — Relação Frota dentro de Gerenciamento Frota */
.fleet-relation-view{padding-top:22px;padding-bottom:28px;min-width:0}
.fleet-relation-card{padding:14px;min-width:0}
.fleet-relation-filters{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(190px,1fr) minmax(190px,1fr);gap:10px;align-items:end}
.fleet-relation-filters .field{min-width:0;margin:0}
.fleet-relation-wrap{max-height:calc(100dvh - 285px);border:1px solid var(--border);border-radius:10px}
.fleet-relation-table{min-width:760px}
.fleet-relation-table th{position:sticky;top:0;z-index:2}
.fleet-relation-table td:last-child{text-align:right}
.table-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.btn.mini{padding:6px 9px;min-height:30px;font-size:.64rem}
.fleet-vehicle-modal .form-grid{margin-top:4px}



/* 0.9.9 — auditoria responsiva final: sem barras internas em tabelas no celular */
.fleet-relation-filters{grid-template-columns:minmax(180px,.7fr) minmax(170px,1fr) minmax(170px,1fr) auto}
.fleet-clear-filters{align-self:end;white-space:nowrap}
.fleet-relation-wrap{max-height:none;overflow-y:visible}





/* 0.9.9.1 — compactação mobile de Vistoria/Relatório/Frota */




/* 0.9.9.2 — hotfix mobile: filtros de Vistoria sem coluna fantasma/overflow */
.vistoria-filter-title{min-width:0;display:grid;gap:2px}
.vistoria-filter-summary{display:block;min-width:0;color:var(--muted);font-size:.63rem;line-height:1.3;overflow-wrap:anywhere}
.vistoria-filter-head .btn.is-active{border-color:color-mix(in srgb,var(--green) 48%,var(--border));color:var(--green);background:color-mix(in srgb,var(--green) 8%,var(--panel))}
.vistoria-filter-head .btn:disabled{opacity:.52;cursor:default}
.vistoria-module-content,.vistoria-module-content>*,.vistoria-filter-card,.vistoria-dashboard-filters,.vistoria-dashboard-filters>.field{min-width:0;max-width:100%}
.vistoria-dashboard-filters>.field{width:100%}
.vistoria-dashboard-filters input,.vistoria-dashboard-filters select{min-inline-size:0;max-inline-size:100%}



/* Em telefones, os filtros do relatório ficam em UMA coluna real. A regra vem por último
   para não ser sobrescrita pelos breakpoints antigos de 520/390 px. */




/* 0.10.0 — auditoria completa de responsividade do shell */
:root{
  --shell-sidebar:220px;
  --shell-topbar:74px;
  --shell-gutter:clamp(10px,1.55vw,22px);
}
html,body{max-width:100%;overflow-x:clip}
body{min-width:0}
.app-layout{padding-left:var(--shell-sidebar)}
.sidebar{width:var(--shell-sidebar)}
.brand-block{height:var(--shell-topbar)}
.content-area,.topbar,.shell,.view-panel,.panel-card{min-width:0;max-width:100%}
.topbar{min-height:var(--shell-topbar);padding:9px var(--shell-gutter);gap:10px}
.brand-area{min-width:0;flex:1}
.brand-area h1{font-size:clamp(.96rem,1.3vw,1.22rem);line-height:1.15;max-width:min(58vw,760px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-area .eyebrow{font-size:.61rem;letter-spacing:.12em}
.subline{font-size:.68rem}
.top-actions{min-width:0;flex-wrap:nowrap;gap:6px}
.top-actions>*{flex:0 0 auto}
.shell{padding:14px var(--shell-gutter) 28px}
.view-panel{min-height:calc(100dvh - var(--shell-topbar))}

/* Login: uma única identificação da marca e alinhamento real ao centro. */
.login-screen{min-height:100vh;min-height:100dvh;padding:clamp(12px,3vw,28px)}
.login-card{width:min(420px,100%);padding:clamp(20px,4vw,30px);border-radius:20px}
.login-brand{text-align:center;margin:0 0 18px}
.login-logo{display:block;width:78px;height:78px;margin:0 auto 10px}
.login-card h1{margin:0;font-size:clamp(1.35rem,4vw,1.7rem);line-height:1.15;text-align:center}
.login-card form{gap:12px}
.login-card .field{min-width:0}
.login-card input{min-height:42px}
.login-card .btn.wide{min-height:42px}
.login-pwa-card{margin-top:0}

/* Cards e cabeçalhos: mais densidade sem perder área de toque. */
.management-head{gap:12px;margin-bottom:10px}
.management-head h2{font-size:clamp(1.12rem,2vw,1.35rem)}
.management-kpis{gap:8px;margin-bottom:10px}
.mgmt-kpi{padding:11px 12px}
.mgmt-kpi span{font-size:1.35rem;line-height:1}
.module-card{min-height:185px;padding:15px;gap:13px}
.system-hero{padding:18px;gap:18px}
.history-filters,.toolbar,.admin-page-card,.line-manager-card,.fleet-relation-card{max-width:100%;min-width:0}

/* Formulários nunca podem impor largura ao viewport. */
.form-grid,.field,.history-filters,.line-manager-filters,.fleet-relation-filters,.vistoria-ident-grid,.vistoria-check-grid,.vistoria-dashboard-filters{min-width:0;max-width:100%}
input,select,textarea{min-width:0;max-width:100%}

/* Reports ocupa somente a área útil e usa uma única rolagem no iframe. */
.reports-module-view{width:100%;max-width:100%;min-width:0;min-height:calc(100dvh - var(--shell-topbar));padding:0;margin:0;overflow:hidden;background:var(--bg)}
.reports-module-frame{display:block;width:100%;max-width:100%;min-width:0;height:calc(100dvh - var(--shell-topbar));min-height:620px;border:0;background:var(--bg);color-scheme:light dark}
:root[data-theme="dark"] .reports-module-frame{background:#0b1519}
body.reports-mode{overflow:hidden}
body.reports-mode .content-area{height:100dvh;min-height:0;overflow:hidden}
body.reports-mode .reports-module-view{height:calc(100dvh - var(--shell-topbar));min-height:0;overflow:hidden}
body.reports-mode .reports-module-frame{height:100%;min-height:0;overflow:hidden}














/* 0.10.3 — atualização obrigatória em toda nova versão, padrão Lugli. */
body.update-required{overflow:hidden}
.app-update-modal{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:18px;background:transparent;align-items:center;justify-content:center;overflow:hidden}
.app-update-modal[open]{display:flex}
.app-update-modal:not([open]){display:none}
.app-update-modal::backdrop{background:rgba(5,16,21,.88);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.app-update-box{width:min(460px,100%);padding:24px;border:2px solid var(--green);border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 94%,#fff 6%),var(--panel));box-shadow:0 24px 70px rgba(0,0,0,.42);text-align:center}
.app-update-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border:1px solid color-mix(in srgb,var(--green) 55%,var(--border));border-radius:50%;background:color-mix(in srgb,var(--green) 13%,transparent);color:var(--green);font-size:1.75rem;font-weight:900}
.app-update-lock{display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px;padding:7px 11px;border:1px solid color-mix(in srgb,var(--orange) 45%,var(--border));border-radius:999px;background:color-mix(in srgb,var(--orange) 10%,transparent);color:var(--text);font-size:.66rem;font-weight:900;letter-spacing:.08em}
.app-update-box h2{margin:0 0 8px;font-size:1.35rem;line-height:1.15}
.app-update-box p{margin:0 auto 12px;max-width:380px;color:var(--muted);font-size:.82rem;line-height:1.45}
.app-update-version{display:inline-flex;margin:2px 0 10px;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--panel-2) 88%,transparent);font-size:.72rem;font-weight:850}
.app-update-status{min-height:42px;margin:0 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:11px;background:color-mix(in srgb,var(--panel-2) 72%,transparent);color:var(--muted);font-size:.72rem;line-height:1.35}
.app-update-status.error{border-color:color-mix(in srgb,var(--red) 50%,var(--border));color:var(--red)}
.app-update-status.success{border-color:color-mix(in srgb,var(--green) 50%,var(--border));color:var(--green)}
.app-update-button{width:100%;min-height:46px;font-size:.8rem}
.app-update-button:disabled{opacity:.68;cursor:wait}


/* 0.10.11 — ações/edição do Relatório Vistorias */
.vistoria-row-actions{display:flex;align-items:center;justify-content:flex-start;gap:6px;flex-wrap:wrap;min-width:0}
.btn.tiny{min-height:28px;padding:5px 8px;border-radius:7px;font-size:.66rem;line-height:1;font-weight:850;white-space:nowrap}
.vistoria-edit-modal{width:min(1120px,calc(100vw - 24px));max-width:1120px;max-height:calc(100dvh - 24px);padding:0;overflow:hidden}
.vistoria-edit-form{display:grid;gap:14px;padding:16px;max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain}
.vistoria-edit-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px}
.vistoria-edit-form .field{min-width:0}
.vistoria-edit-form input,.vistoria-edit-form select,.vistoria-edit-form textarea{width:100%;min-width:0;max-width:100%}
.vistoria-edit-form input[readonly]{background:var(--panel-2);color:var(--muted)}
.vistoria-edit-form .modal-actions{position:sticky;bottom:-16px;z-index:2;margin:0 -16px -16px;padding:12px 16px;background:var(--panel);border-top:1px solid var(--border)}

/* 0.10.15 — aviso de duplicidade da Vistoria sem animações */
.vistoria-duplicate-hint{display:block;min-height:1.05em;font-size:.63rem;font-weight:800;line-height:1.25;color:var(--muted);overflow-wrap:anywhere}
.vistoria-duplicate-hint.checking{color:var(--blue)}
.vistoria-duplicate-hint.approved{color:var(--green)}
.vistoria-duplicate-hint.rejected,.vistoria-duplicate-hint.error{color:var(--red)}


/* Shell compartilhado: identidade da sidebar e overlay do drawer mobile. */
.brand-block{position:relative}
.sidebar-brand-copy{min-width:0;flex:1}
.sidebar-overlay{position:fixed;inset:0;z-index:40;border:0;padding:0;margin:0;background:rgba(4,14,18,.48);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,visibility .18s ease}
body.menu-open .sidebar-overlay{opacity:1;visibility:visible;pointer-events:auto}

/* 0.10.31 — operacional sem animações de atenção: atraso/urgência são indicados apenas por cor e texto. */
.service-card.late,.service-card.urgent,.service-card.soon{animation:none!important;}


/* 0.10.31 — todas as janelas, mensagens e notificações acompanham o tema */
.modal::backdrop,.notification-dialog::backdrop,.global-loading-overlay::backdrop,.app-update-modal::backdrop{background:var(--overlay)!important;backdrop-filter:blur(3px)}
.modal,.notification-dialog,.global-loading-card,.app-update-box{background:var(--panel);color:var(--text);border-color:var(--border)}
.notification-dialog{background:transparent;border:0;padding:0}
.theme-confirm-modal{width:min(520px,calc(100vw - 28px));padding:20px}
.theme-confirm-content{display:flex;align-items:flex-start;gap:14px}
.theme-confirm-icon{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--blue) 14%,var(--panel));color:var(--blue);font-size:1.15rem;font-weight:950;border:1px solid color-mix(in srgb,var(--blue) 30%,var(--border))}
.theme-confirm-copy{min-width:0}.theme-confirm-copy h3{margin:5px 0 6px;color:var(--text)}.theme-confirm-copy p{margin:0;color:var(--muted);line-height:1.5}
.theme-confirm-modal.danger-modal .theme-confirm-icon{background:color-mix(in srgb,var(--red) 13%,var(--panel));color:var(--red);border-color:color-mix(in srgb,var(--red) 32%,var(--border))}
.btn.danger{background:var(--red);border-color:color-mix(in srgb,var(--red) 78%,#000);color:#fff}
.toast-notice{background:var(--panel)!important;color:var(--text)!important;border-color:var(--border)!important;box-shadow:var(--shadow)!important}
.toast-notice .toast-title{color:var(--text)}.toast-notice .toast-copy{color:var(--muted)}.toast-notice .toast-close{color:var(--muted);background:transparent}.toast-notice .toast-close:hover{background:var(--panel-2);color:var(--text)}
.toast-notice.info .toast-icon{background:color-mix(in srgb,var(--blue) 14%,var(--panel));color:var(--blue)}.toast-notice.success .toast-icon{background:color-mix(in srgb,var(--green) 14%,var(--panel));color:var(--green)}.toast-notice.warning .toast-icon{background:color-mix(in srgb,var(--orange) 14%,var(--panel));color:var(--orange)}.toast-notice.error .toast-icon{background:color-mix(in srgb,var(--red) 14%,var(--panel));color:var(--red)}
.form-alert,.delete-warning,.confirm-hint,.profile-create-note{background:var(--panel-2);color:var(--text);border-color:var(--border)}
/* 0.10.31 — mensagens de estado também usam exclusivamente as cores do tema */
.login-error{background:color-mix(in srgb,var(--red) 10%,var(--panel));border-color:color-mix(in srgb,var(--red) 38%,var(--border));color:var(--red)}
.notice{background:color-mix(in srgb,var(--yellow) 13%,var(--panel));border-color:color-mix(in srgb,var(--yellow) 42%,var(--border));color:var(--text)}
.window-banner{background:color-mix(in srgb,var(--blue) 9%,var(--panel));border-color:color-mix(in srgb,var(--blue) 32%,var(--border));color:var(--text)}
.window-banner p{color:var(--muted)}

