/* ==========================================================
   Controle de Frota — tema visual
   Cores como tokens; modo escuro por preferência do sistema
   ou escolha manual (data-theme), sempre com o toggle vencendo.
   ========================================================== */
:root{
  color-scheme:light;
  --bg:#f4f6f9; --surface:#ffffff; --surface-2:#f8f9fb; --surface-3:#eef1f5;
  --text:#0f172a; --text-2:#334155; --muted:#64748b; --line:#e5e8ee; --line-2:#d5dae2;
  --primary:#2459d6; --primary-h:#1c4ab8; --primary-soft:#eaf0fd; --on-primary:#fff;
  --ok:#137a46; --ok-bg:#e3f5eb; --warn:#9a5b00; --warn-bg:#fff2d9; --danger:#c0261b; --danger-bg:#fde7e5; --info:#2459d6; --info-bg:#e8effd;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#eda100;
  --shadow:0 1px 2px rgba(15,23,42,.04),0 1px 3px rgba(15,23,42,.06);
  --shadow-lg:0 12px 32px rgba(15,23,42,.14);
  --radius:12px; --side:252px; --top:60px;
  --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:where(:not([data-theme="light"])){
    color-scheme:dark;
    --bg:#0e1116; --surface:#161a21; --surface-2:#1b2029; --surface-3:#222834;
    --text:#e8ebf0; --text-2:#c6ccd6; --muted:#97a1b0; --line:#262c37; --line-2:#323a47;
    --primary:#5b8cf0; --primary-h:#7aa2f4; --primary-soft:#1e2a44; --on-primary:#0b1220;
    --ok:#4cc488; --ok-bg:#16301f; --warn:#f0b54a; --warn-bg:#33270f; --danger:#f2716a; --danger-bg:#3a1b1a; --info:#7aa2f4; --info-bg:#1b2640;
    --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500;
    --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 16px 40px rgba(0,0,0,.5);
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0e1116; --surface:#161a21; --surface-2:#1b2029; --surface-3:#222834;
  --text:#e8ebf0; --text-2:#c6ccd6; --muted:#97a1b0; --line:#262c37; --line-2:#323a47;
  --primary:#5b8cf0; --primary-h:#7aa2f4; --primary-soft:#1e2a44; --on-primary:#0b1220;
  --ok:#4cc488; --ok-bg:#16301f; --warn:#f0b54a; --warn-bg:#33270f; --danger:#f2716a; --danger-bg:#3a1b1a; --info:#7aa2f4; --info-bg:#1b2640;
  --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#c98500;
  --shadow:0 1px 2px rgba(0,0,0,.4); --shadow-lg:0 16px 40px rgba(0,0,0,.5);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:14.5px/1.5 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-h);text-decoration:underline}
h1{font-size:1.5rem;line-height:1.25;margin:0;letter-spacing:-.015em;font-weight:700}
h2{font-size:1.02rem;margin:1.6rem 0 .7rem;font-weight:650;letter-spacing:-.005em}
h3{font-size:.95rem;margin:0 0 .6rem;font-weight:650}
code{background:var(--surface-3);padding:1px 6px;border-radius:5px;font-size:.88em}
.i{flex-shrink:0;vertical-align:middle}
[hidden]{display:none!important}

/* ---------- Estrutura ---------- */
.sidebar{position:fixed;inset:0 auto 0 0;width:var(--side);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:30;overflow-y:auto}
.brand{display:flex;align-items:center;min-height:72px;padding:16px 20px 4px}
.brand:hover{text-decoration:none}
.brand-sub{padding:0 20px 14px;color:var(--muted);font-size:.74rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line)}
.logo{display:block;max-height:44px;max-width:190px;width:auto;height:auto;object-fit:contain}
.logo-lg{max-height:64px;max-width:240px}
.logo-fallback{display:inline-flex;align-items:center;gap:8px;color:var(--text);font-size:1rem;line-height:1.2}
.logo-fallback .i{color:var(--primary)}
/* No modo escuro a logomarca fica sobre um fundo claro para manter as cores originais */
:root[data-theme="dark"] .brand-logo:has(img),:root[data-theme="dark"] .report-header .report-logo{background:#fff;padding:6px 10px;border-radius:10px}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])) .brand-logo:has(img){background:#fff;padding:6px 10px;border-radius:10px}}
.brand-logo{display:inline-flex}
.sidebar nav{padding:10px 12px 24px;display:flex;flex-direction:column;gap:2px}
.nav-group{font-size:.7rem;font-weight:650;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:16px 10px 6px}
.sidebar nav a{display:flex;align-items:center;gap:11px;padding:8px 10px;border-radius:9px;color:var(--text-2);font-weight:500}
.sidebar nav a .i{color:var(--muted)}
.sidebar nav a:hover{background:var(--surface-3);text-decoration:none;color:var(--text)}
.sidebar nav a.active{background:var(--primary-soft);color:var(--primary);font-weight:600}
.sidebar nav a.active .i{color:var(--primary)}
.count{margin-left:auto;font-style:normal;background:var(--danger);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:1px 7px;min-width:20px;text-align:center}
.main{margin-left:var(--side);min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;height:var(--top);display:flex;align-items:center;gap:12px;padding:0 28px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-title{font-weight:600;color:var(--text-2)}
.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:6px}
.icon-btn{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid transparent;background:transparent;color:var(--text-2);cursor:pointer}
.icon-btn:hover{background:var(--surface-3);color:var(--text);text-decoration:none}
.menu-toggle{display:none}
.t-dark{display:none}
:root[data-theme="dark"] .t-light{display:none}:root[data-theme="dark"] .t-dark{display:inline}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])) .t-light{display:none}:root:where(:not([data-theme="light"])) .t-dark{display:inline}}
.user-chip{display:flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;border-radius:999px;color:var(--text)}
.user-chip:hover{background:var(--surface-3);text-decoration:none;color:var(--text)}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font-weight:700;font-size:.85rem}
.uc-txt{display:flex;flex-direction:column;line-height:1.15}.uc-txt b{font-weight:600;font-size:.86rem}.uc-txt small{color:var(--muted);font-size:.74rem}
.content{flex:1;padding:28px;width:100%;max-width:1360px}
.scrim{display:none}

/* ---------- Rodapé ---------- */
.app-footer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px;padding:18px 28px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;background:var(--surface)}
.app-footer nav{display:flex;gap:18px}
.app-footer nav a{color:var(--muted);display:inline-flex;align-items:center;gap:5px}
.app-footer nav a:hover{color:var(--text)}
.credits{margin-left:auto}
.gigalupa{font-weight:800;letter-spacing:-.01em;font-size:.95rem}
.gigalupa b{color:#010066;font-weight:800}.gigalupa i{color:#ff6500;font-style:normal}
:root[data-theme="dark"] .gigalupa b{color:#8f8cff}
@media (prefers-color-scheme:dark){:root:where(:not([data-theme="light"])) .gigalupa b{color:#8f8cff}}

/* ---------- Cabeçalho de página ---------- */
.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.page-head .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sub{margin:4px 0 0;color:var(--muted)}
.page-head .actions input,.page-head .actions select{width:auto}
.period-filter input[type=month]{min-width:170px}.period-filter select{max-width:220px}

/* ---------- Cartões e indicadores ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:18px;box-shadow:var(--shadow)}
.card > h2:first-child,.card > h3:first-child{margin-top:0}
.card-head{display:flex;align-items:baseline;gap:10px;margin-bottom:14px}
.card-head h3{margin:0}.card-head .muted{margin-left:auto;font-size:.8rem}
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow)}
.stat .n{font-size:1.6rem;font-weight:700;letter-spacing:-.02em}.stat .l{color:var(--muted);font-size:.83rem}
.stat.warn .n{color:var(--warn)}.stat.danger .n{color:var(--danger)}.stat.ok .n{color:var(--ok)}

.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:14px;margin-bottom:18px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px;min-height:118px}
.kpi .k-lab{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:.8rem;font-weight:600}
.kpi .k-ico{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}
.kpi .k-val{font-size:1.65rem;font-weight:700;letter-spacing:-.025em;line-height:1.15;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .k-val small{font-size:.85rem;font-weight:600;color:var(--muted);margin-left:3px;letter-spacing:0}
.kpi .k-foot{margin-top:auto;font-size:.78rem;color:var(--muted)}
.delta{display:inline-flex;align-items:center;gap:2px;font-weight:600;font-size:.78rem}
.delta.good{color:var(--ok)}.delta.bad{color:var(--danger)}.delta.neu{color:var(--muted);font-weight:500}
.fleet-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;gap:2px;margin-top:8px;background:var(--surface-3)}
.fleet-bar span{display:block;height:100%}
.fleet-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.75rem;color:var(--muted);margin-top:6px}
.fleet-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}

/* Leituras automáticas */
.insights{display:flex;flex-direction:column;gap:2px}
.insight{display:flex;gap:12px;align-items:flex-start;padding:11px 4px;border-bottom:1px solid var(--line)}
.insight:last-child{border-bottom:0}
.insight .ii{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex-shrink:0}
.insight.bad .ii{background:var(--danger-bg);color:var(--danger)}.insight.warn .ii{background:var(--warn-bg);color:var(--warn)}
.insight.good .ii{background:var(--ok-bg);color:var(--ok)}.insight.info .ii{background:var(--info-bg);color:var(--info)}
.insight p{margin:0;color:var(--text-2)}.insight p b{color:var(--text)}
.insight small{display:block;color:var(--muted);margin-top:2px}

/* Gráficos */
.chart{width:100%;height:auto;display:block;font-family:var(--font)}
.chart .grid{stroke:var(--line);stroke-width:1}.chart .grid.base{stroke:var(--line-2)}
.chart .axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}
.chart .val{fill:var(--text);font-size:12px;font-weight:650}
.chart .bar{transition:opacity .15s}.chart .s1{fill:var(--s1)}.chart .s2{fill:var(--s2)}.chart .s3{fill:var(--s3)}.chart .s4{fill:var(--s4)}
.chart .hit{fill:transparent;cursor:default}
.chart .hit:hover{fill:color-mix(in srgb,var(--text) 5%,transparent)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--text-2);margin:-4px 0 6px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.sw{display:inline-block;width:10px;height:10px;border-radius:3px}.sw.s1{background:var(--s1)}.sw.s2{background:var(--s2)}.sw.s3{background:var(--s3)}.sw.s4{background:var(--s4)}
.hbars{display:flex;flex-direction:column;gap:10px}
.hb-row{display:grid;grid-template-columns:minmax(90px,30%) 1fr auto;gap:12px;align-items:center}
.hb-lab{font-weight:600;font-size:.86rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis}
.hb-lab small{display:block;color:var(--muted);font-weight:400;font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-track{height:10px;background:var(--surface-3);border-radius:999px;overflow:hidden}
.hb-bar{height:100%;background:var(--s1);border-radius:999px}
.hb-val{font-size:.84rem;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;min-width:70px}
.empty-sm{color:var(--muted);font-size:.88rem;margin:8px 0}

/* ---------- Tabelas ---------- */
.table-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.card .table-wrap{box-shadow:none}
table{width:100%;border-collapse:collapse}
th,td{padding:10px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{background:var(--surface-2);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:650;white-space:nowrap}
tr:last-child td{border-bottom:0}
tbody tr:hover td,table tr:hover td{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.empty{padding:32px;text-align:center;color:var(--muted)}
dl.info{display:grid;grid-template-columns:170px 1fr;gap:8px 14px;margin:0}dl.info dt{color:var(--muted)}dl.info dd{margin:0}
.emp-cell{display:flex;gap:12px;align-items:center}
.emp-thumb{width:56px;height:36px;border-radius:8px;border:1px solid var(--line);display:grid;place-items:center;background:#fff;color:#64748b;overflow:hidden;flex-shrink:0}
.emp-thumb .thumb{max-width:50px;max-height:30px;object-fit:contain}

/* ---------- Formulários ---------- */
.form{display:grid;gap:14px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px}.form-grid .full{grid-column:1/-1}.form-grid .span2{grid-column:span 2}
.form-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.form-actions.right{justify-content:flex-end}
label{display:flex;flex-direction:column;gap:6px;font-size:.84rem;font-weight:600;color:var(--text-2)}
label.check{flex-direction:row;align-items:center;gap:9px;font-weight:500;margin:6px 0}
input,select,textarea{font:inherit;font-size:.92rem;padding:9px 12px;border:1px solid var(--line-2);border-radius:9px;background:var(--surface);color:var(--text);width:100%;transition:border-color .15s,box-shadow .15s}
input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--primary)}
input[type=file]{padding:7px}
input:disabled,input[readonly]{background:var(--surface-2);color:var(--muted)}
textarea{min-height:84px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent)}
.hint{font-weight:400;color:var(--muted);font-size:.78rem}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}.filters label{min-width:160px}
.logo-upload{display:grid;grid-template-columns:260px 1fr;gap:20px;align-items:start}
.logo-preview{height:120px;border:1px dashed var(--line-2);border-radius:var(--radius);display:grid;place-items:center;background:#fff;padding:14px}
.logo-prev-img{max-width:100%;max-height:90px;object-fit:contain}

/* ---------- Botões ---------- */
.btn{display:inline-flex;align-items:center;gap:7px;background:var(--primary);color:var(--on-primary);border:1px solid var(--primary);border-radius:9px;padding:9px 16px;font:inherit;font-size:.9rem;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}
.btn:hover{background:var(--primary-h);border-color:var(--primary-h);color:var(--on-primary);text-decoration:none}
.btn.ghost{background:transparent;color:var(--primary);border-color:var(--primary)}
.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--line-2)}.btn.secondary:hover{background:var(--surface-3)}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}
.btn.small{padding:6px 11px;font-size:.82rem}.btn.block{width:100%;justify-content:center}
.btn:disabled{opacity:.6;cursor:wait}
.inline{display:inline}

/* ---------- Selos e alertas ---------- */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:.74rem;font-weight:600;background:var(--surface-3);color:var(--muted);white-space:nowrap}
.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.warn{background:var(--warn-bg);color:var(--warn)}
.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.info{background:var(--info-bg);color:var(--info)}
.alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:10px;margin-bottom:14px;border:1px solid transparent;font-weight:500}
.alert.success{background:var(--ok-bg);color:var(--ok)}.alert.danger{background:var(--danger-bg);color:var(--danger)}
.alert.warn{background:var(--warn-bg);color:var(--warn)}.alert.info{background:var(--info-bg);color:var(--info)}
.muted{color:var(--muted)}.small{font-size:.84rem}.right{text-align:right}

/* ---------- Checklist ---------- */
.chk-cat{margin:20px 0 4px;font-weight:700;color:var(--muted);text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}
.chk-item{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.chk-item .desc .crit{color:var(--danger);font-size:.68rem;font-weight:700;margin-left:6px;letter-spacing:.04em}
.chk-opts{display:flex;gap:6px}
.chk-opts label{flex-direction:row;cursor:pointer}
.chk-opts input{position:absolute;opacity:0;pointer-events:none}
.chk-opts span{display:inline-block;padding:7px 12px;border:1px solid var(--line-2);border-radius:9px;font-weight:600;font-size:.84rem;min-width:54px;text-align:center;color:var(--text-2);background:var(--surface)}
.chk-opts input:focus-visible + span{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}
.chk-opts input:checked + span.o{background:var(--ok);border-color:var(--ok);color:#fff}
.chk-opts input:checked + span.n{background:var(--danger);border-color:var(--danger);color:#fff}
.chk-opts input:checked + span.a{background:var(--muted);border-color:var(--muted);color:#fff}
.chk-item .obs{grid-column:1/-1;display:none}.chk-item.is-nc .obs{display:block}

/* ---------- Etapas / abas ---------- */
.steps{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0 18px}
.steps a:hover{text-decoration:none}
.steps span{display:inline-block;padding:6px 13px;border-radius:999px;background:var(--surface-3);color:var(--muted);font-size:.8rem;font-weight:600}
.steps span.done{background:var(--ok-bg);color:var(--ok)}.steps span.cur{background:var(--primary);color:var(--on-primary)}
.pager{display:flex;gap:14px;justify-content:center;align-items:center;padding:14px;color:var(--muted)}

/* ---------- Cookies ---------- */
.cookie-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);width:min(980px,calc(100% - 32px));background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);padding:16px 18px;display:flex;gap:14px;align-items:center;z-index:60}
.cookie-banner p{margin:0;font-size:.86rem;color:var(--text-2);flex:1}
.cb-ico{color:var(--primary)}
.cb-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.modal{position:fixed;inset:0;background:rgba(10,15,25,.55);display:grid;place-items:center;z-index:70;padding:16px}
.modal-box{background:var(--surface);border-radius:16px;padding:24px;width:min(560px,100%);box-shadow:var(--shadow-lg);max-height:90vh;overflow:auto}
.modal-box h2{margin-top:0}
.cookie-cat{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}
.cookie-cat p{margin:4px 0 0}.cookie-cat.off{opacity:.65}
.switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}
.switch input{opacity:0;width:0;height:0}
.switch span{position:absolute;inset:0;background:var(--line-2);border-radius:999px;cursor:pointer;transition:.2s}
.switch span::before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.2)}
.switch input:checked + span{background:var(--primary)}.switch input:checked + span::before{transform:translateX(20px)}
.switch input:focus-visible + span{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}
.toast{position:fixed;right:20px;bottom:20px;background:var(--text);color:var(--bg);padding:11px 16px;border-radius:10px;font-size:.85rem;box-shadow:var(--shadow-lg);z-index:80;max-width:360px;transition:opacity .4s}
.toast.out{opacity:0}

/* ---------- Login e páginas públicas ---------- */
.auth-page{min-height:100vh;background:radial-gradient(1200px 600px at 10% -10%,var(--primary-soft),transparent 60%),var(--bg)}
.auth-wrap{min-height:100vh;display:flex;flex-direction:column}
.auth-card{margin:auto;margin-top:max(40px,12vh);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:34px 32px;width:calc(100% - 32px);max-width:410px;box-shadow:var(--shadow-lg)}
.auth-card.wide{max-width:600px}
.auth-card h1{font-size:1.35rem;margin-top:18px}
.auth-card > .muted{margin:4px 0 20px}
.auth-brand{display:flex;justify-content:flex-start}
.auth-wrap .app-footer{margin-top:40px;background:transparent;border-top:0;justify-content:center}
.auth-wrap .credits{margin-left:0}
.doc-wrap{max-width:900px;margin:0 auto;padding:24px 16px}
.doc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.prose h2{margin-top:1.8rem}.prose p,.prose li{color:var(--text-2)}.prose ul{padding-left:20px}
.doc-wrap .app-footer{background:transparent;border-top:0;padding:18px 0}

/* ---------- Relatórios impressos ---------- */
.report-header{display:none;align-items:center;gap:18px;padding-bottom:14px;margin-bottom:18px;border-bottom:2px solid #0f172a}
.report-logo{max-height:56px;max-width:200px;object-fit:contain}
.rh-txt{flex:1}.rh-emp{font-size:.8rem;color:#475569}.rh-tit{font-size:1.2rem;font-weight:700;color:#0f172a}.rh-sub{font-size:.85rem;color:#475569}
.rh-meta{font-size:.75rem;color:#475569;text-align:right}
.report-header.show{display:flex}

@media print{
  :root{color-scheme:light}
  body{background:#fff!important;color:#000}
  .sidebar,.topbar,.app-footer,.page-head .actions,.no-print,.filters,.cookie-banner,.modal,.toast,.scrim{display:none!important}
  .main{margin:0}.content{padding:0;max-width:none}
  .report-header{display:flex}
  .card,.table-wrap,.stat,.kpi{box-shadow:none;border-color:#ccc;break-inside:avoid}
  a{color:#000}
}

/* ---------- Responsivo ---------- */
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.g-2-1{grid-template-columns:1fr}}
@media (max-width:860px){
  .menu-toggle{display:inline-grid}
  .sidebar{transform:translateX(-100%);transition:transform .22s ease;box-shadow:none}
  .nav-open .sidebar{transform:none;box-shadow:var(--shadow-lg)}
  .nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(10,15,25,.45);z-index:25}
  .main{margin-left:0}
  .topbar{padding:0 12px}.content{padding:18px 16px}
  .uc-txt{display:none}.user-chip{padding:4px}
  .app-footer{padding:16px}.credits{margin-left:0}
  .cookie-banner{flex-direction:column;align-items:stretch;bottom:10px}
  .cb-ico{display:none}
}
@media (max-width:640px){
  .g2,.g3,.g4,.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}
  dl.info{grid-template-columns:1fr}dl.info dt{margin-top:8px}
  .chk-item{grid-template-columns:1fr}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .kpi{padding:13px 14px;min-height:0}.kpi .k-val{font-size:1.3rem}.kpi .k-ico{display:none}
  .logo-upload{grid-template-columns:1fr}
  .hb-row{grid-template-columns:minmax(80px,34%) 1fr auto;gap:8px}
  h1{font-size:1.3rem}
  .topbar-title{display:none}
  .chart .axis{font-size:19px}.chart .val{font-size:20px}
}
