/* =========================================================================
   Auditoria de Lojas · Design System v2 | Criado por Marcos Ferreira
   Cor tem função: índigo = ação/destaque · verde = positivo · âmbar = atenção
   vermelho = crítico · azul = informação · neutros = estrutura
   ========================================================================= */
:root{
  color-scheme:light;
  --bg:#f6f7f9; --card:#fff; --surface-2:#fafbfc; --hover:#f2f4f7;
  --bd:#e6e8ec; --bd2:#d3d8df;
  --tx:#0b1220; --tx2:#3b4556; --mu:#667085;
  --pri:#4f46e5; --pri2:#4338ca; --pri-l:#eef0ff; --pri-tx:#3730a3; --pri-btn:#4f46e5;
  --ok:#157f3c; --ok-l:#ecfdf3; --ok-m:#1f9d55;
  --warn:#b45309; --warn-l:#fff6e5; --warn-m:#e59a0b;
  --crit:#c81e1e; --crit-l:#fef1f1; --crit-m:#e04545;
  --info:#1d63d8; --info-l:#eff5ff;
  --mute-l:#f2f4f7;
  --serie:#2a78d6; --grade:#eceef2;
  --r:12px; --r-sm:8px;
  --sh:0 1px 2px rgba(16,24,40,.04);
  --sh-lg:0 12px 40px rgba(16,24,40,.14),0 2px 6px rgba(16,24,40,.06);
  --lat:244px; --topo:60px; --inf:64px;
  --f:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]){
  color-scheme:dark;
  --bg:#0a0e15; --card:#111722; --surface-2:#0e131c; --hover:#182030;
  --bd:#212a39; --bd2:#2d3849; --tx:#e8ecf2; --tx2:#b8c1cf; --mu:#8a95a7;
  --pri:#9496fa; --pri2:#adaffb; --pri-l:#1d1f45; --pri-tx:#c9caff; --pri-btn:#5b5cf0;
  --ok:#4ade80; --ok-l:#0f2a1c; --ok-m:#2fbf6b; --warn:#fbbf24; --warn-l:#2e230c; --warn-m:#e0a21b;
  --crit:#f87171; --crit-l:#33161a; --crit-m:#e66767; --info:#60a5fa; --info-l:#10233f;
  --mute-l:#182030; --serie:#3987e5; --grade:#1c2432; --sh:none; --sh-lg:0 16px 50px rgba(0,0,0,.55)}}
:root[data-theme=dark]{
  color-scheme:dark;
  --bg:#0a0e15; --card:#111722; --surface-2:#0e131c; --hover:#182030;
  --bd:#212a39; --bd2:#2d3849; --tx:#e8ecf2; --tx2:#b8c1cf; --mu:#8a95a7;
  --pri:#9496fa; --pri2:#adaffb; --pri-l:#1d1f45; --pri-tx:#c9caff; --pri-btn:#5b5cf0;
  --ok:#4ade80; --ok-l:#0f2a1c; --ok-m:#2fbf6b; --warn:#fbbf24; --warn-l:#2e230c; --warn-m:#e0a21b;
  --crit:#f87171; --crit-l:#33161a; --crit-m:#e66767; --info:#60a5fa; --info-l:#10233f;
  --mute-l:#182030; --serie:#3987e5; --grade:#1c2432; --sh:none; --sh-lg:0 16px 50px rgba(0,0,0,.55)}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f);font-size:14px;line-height:1.5;background:var(--bg);color:var(--tx);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-feature-settings:"cv11","ss01"}
body.no-scroll{overflow:hidden}
a{color:var(--pri);text-decoration:none}
h1,h2,h3,h4{margin:0 0 8px;line-height:1.25;letter-spacing:-.01em;font-weight:650}
h3{font-size:15px}h4{font-size:11.5px;margin:18px 0 8px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;font-weight:650}
p{margin:6px 0}small{font-size:12.5px}
.num,.kpi-val b,.tab .d,.qtd-box b{font-variant-numeric:tabular-nums}
.mu{color:var(--mu)}.centro{text-align:center}.bl{display:block;color:var(--mu);font-weight:400}
.t-ok{color:var(--ok)}.t-warn{color:var(--warn)}.t-crit{color:var(--crit)}.t-mute{color:var(--mu)}.t-info{color:var(--info)}
.ok-txt{color:var(--ok);font-weight:600}.warn-txt{color:var(--warn)}.erro-txt{color:var(--crit);font-weight:600}
.pre{white-space:pre-line}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--pri);outline-offset:2px;border-radius:6px}

/* ---------- formulários ---------- */
input,select,textarea{width:100%;font:inherit;font-size:14px;color:var(--tx);background:var(--card);border:1px solid var(--bd2);border-radius:var(--r-sm);padding:9px 12px;min-height:40px;outline:none;transition:border-color .15s,box-shadow .15s}
textarea{resize:vertical;min-height:auto}
input::placeholder,textarea::placeholder{color:var(--mu)}
input:hover,select:hover,textarea:hover{border-color:var(--mu)}
input:focus,select:focus,textarea:focus{border-color:var(--pri);box-shadow:0 0 0 3px var(--pri-l)}
input:disabled,select:disabled,textarea:disabled{background:var(--mute-l);color:var(--mu);border-color:var(--bd)}
input[type=checkbox],input[type=radio]{width:18px;height:18px;min-height:0;accent-color:var(--pri);margin:0;flex:0 0 18px}
input[type=range]{padding:0;min-height:0;border:0;box-shadow:none}
input[type=color]{padding:2px;height:38px}
label{display:block;font-size:12.5px;font-weight:600;color:var(--tx2);margin:14px 0 6px}
label.mini{font-size:12px;color:var(--mu);margin:10px 0 5px;font-weight:600}
label.check{display:flex;align-items:center;gap:10px;font-weight:500;color:var(--tx);margin:10px 0;cursor:pointer}
.salvo{border-color:var(--ok)!important;box-shadow:0 0 0 3px var(--ok-l)!important}

/* ---------- botões ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:13.5px;font-weight:600;border-radius:var(--r-sm);border:1px solid transparent;padding:8px 14px;min-height:38px;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .06s;letter-spacing:-.005em}
.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.pri{background:var(--pri-btn);color:#fff;box-shadow:0 1px 2px rgba(79,70,229,.25)}.btn.pri:hover{background:var(--pri2)}
:root[data-theme=dark] .btn.pri:hover{background:#4d4ee0}
.btn.sec{background:var(--card);color:var(--tx);border-color:var(--bd2);box-shadow:var(--sh)}.btn.sec:hover{background:var(--hover)}
.btn.link{background:none;color:var(--pri);padding:6px 8px;min-height:32px}.btn.link:hover{background:var(--pri-l)}
.btn.perigo{color:var(--crit)}.btn.link.perigo:hover{background:var(--crit-l)}.btn.pri.perigo{background:var(--crit);color:#fff}
.btn.sm{padding:5px 10px;min-height:32px;font-size:13px}
.btn.grande{width:100%;padding:13px;font-size:15px;min-height:48px}
.btn.bloco{width:100%;margin-top:12px}
.btn.ic{padding:0;width:42px;flex:0 0 42px}
.btn svg{width:17px;height:17px}
.ic-btn{background:none;border:0;color:var(--tx2);cursor:pointer;width:38px;height:38px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;font-size:16px;position:relative}
.ic-btn:hover{background:var(--hover);color:var(--tx)}
.ic-btn svg{width:19px;height:19px}
.chip-btn{display:inline-flex;align-items:center;gap:6px;background:var(--card);border:1px solid var(--bd2);border-radius:999px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer;color:var(--tx)}
.chip-btn:hover{background:var(--hover)}
.chip-btn i{width:12px;height:12px;border-radius:3px;border:1px solid var(--bd2)}
.ajuda{width:18px;height:18px;border-radius:50%;border:1px solid var(--bd2);background:var(--card);color:var(--mu);font-size:11px;cursor:pointer;padding:0;margin-left:4px;vertical-align:1px}
.aj-txt{display:block;background:var(--info-l);color:var(--info);padding:8px 10px;border-radius:var(--r-sm);margin-bottom:6px}
.x-mini{background:none;border:0;color:var(--mu);cursor:pointer;padding:0 0 0 4px}

/* ---------- chips / status (sempre ícone + texto) ---------- */
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--mute-l);color:var(--tx2);line-height:1.6;border:1px solid transparent}
.chip b{font-weight:800;font-size:11px}
.chip.sm{padding:1px 8px;font-size:11.5px}
.chip.ok{background:var(--ok-l);color:var(--ok)}.chip.warn{background:var(--warn-l);color:var(--warn)}.chip.crit{background:var(--crit-l);color:var(--crit)}.chip.info{background:var(--info-l);color:var(--info)}.chip.mute{background:var(--mute-l);color:var(--mu)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mu);margin-right:6px;vertical-align:1px}
.dot.ok{background:var(--ok-m)}.dot.warn{background:var(--warn-m)}.dot.crit{background:var(--crit-m)}.dot.info{background:var(--info)}

/* ---------- casca: menu lateral, barra superior ---------- */
#app{min-height:100vh}
.lateral{position:fixed;inset:0 auto 0 0;width:var(--lat);background:var(--surface-2);border-right:1px solid var(--bd);display:flex;flex-direction:column;z-index:20}
.lateral nav{flex:1;overflow:auto;padding:4px 10px 10px}
.menu-grupo{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);padding:16px 10px 6px}
.lateral a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);color:var(--tx2);font-weight:550;font-size:13.5px;margin-bottom:1px;position:relative}
.lateral a svg{width:17px;height:17px;color:var(--mu)}
.lateral a:hover{background:var(--hover);color:var(--tx)}
.lateral a.ativo{background:var(--card);color:var(--tx);box-shadow:var(--sh),0 0 0 1px var(--bd)}
.lateral a.ativo svg{color:var(--pri)}
.lateral a .badge{margin-left:auto}
.badge{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--crit-m);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;font-variant-numeric:tabular-nums}
.ic-btn .badge{position:absolute;top:3px;right:2px;min-width:16px;height:16px;font-size:10px;border:2px solid var(--bg)}
.lateral-pe{border-top:1px solid var(--bd);padding:10px}
.marca{display:flex;align-items:center;gap:11px}
.marca.pequena{padding:16px 16px 8px}
.marca-ic{width:34px;height:34px;border-radius:9px;background:linear-gradient(135deg,#5b54ef,#3b33c9);color:#fff;display:flex;align-items:center;justify-content:center;flex:0 0 34px;box-shadow:0 2px 6px rgba(79,70,229,.35)}
.marca-ic svg{width:18px;height:18px}
.marca b{display:block;font-size:14px;letter-spacing:-.01em}.marca small{color:var(--mu);font-size:12px}
.usuario-box{display:flex;align-items:center;gap:10px;padding:6px;border-radius:var(--r-sm);cursor:pointer;width:100%;background:none;border:0;font:inherit;color:var(--tx);text-align:left}
.usuario-box:hover{background:var(--hover)}
.usuario-box b{display:block;font-size:13px;font-weight:600}.usuario-box small{color:var(--mu);font-size:11.5px}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--pri-l);color:var(--pri-tx);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;flex:0 0 30px}
.topo{position:sticky;top:0;z-index:15;height:var(--topo);margin-left:var(--lat);background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);display:flex;align-items:center;gap:10px;padding:0 28px;border-bottom:1px solid var(--bd)}
.topo-tit{flex:1;min-width:0}
.topo-tit small{display:block;color:var(--mu);font-size:12px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo h2{font-size:16.5px;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}
#topo-acoes{display:flex;gap:8px;align-items:center}
.topo-sep{width:1px;height:22px;background:var(--bd);margin:0 2px}
.busca-btn{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--bd2);border-radius:var(--r-sm);height:36px;padding:0 10px;color:var(--mu);font:inherit;font-size:13px;cursor:pointer;min-width:220px}
.busca-btn:hover{border-color:var(--mu)}
.busca-btn svg{width:16px;height:16px}
.busca-btn kbd,kbd{margin-left:auto;font-family:var(--f);font-size:11px;border:1px solid var(--bd2);border-bottom-width:2px;border-radius:5px;padding:0 5px;color:var(--mu);background:var(--surface-2)}
.topo [data-voltar]{display:none}
body.sub .topo [data-voltar]{display:inline-flex}
#conteudo{margin-left:var(--lat);padding:24px 28px 48px;max-width:calc(1320px + var(--lat))}
.inferior{display:none}
.assina{color:var(--mu);font-size:11.5px;margin:8px 4px 2px}

/* ---------- cabeçalho de página e seções ---------- */
.pg-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}
.pg-head h1{font-size:22px;margin:0;letter-spacing:-.02em}
.pg-head p{margin:2px 0 0;color:var(--mu)}
.sec-tit{margin:26px 2px 10px;font-size:12px;color:var(--mu);text-transform:uppercase;letter-spacing:.07em;font-weight:650;display:flex;align-items:center;justify-content:space-between;gap:10px}
.sec-h{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.sec-h small{display:block;color:var(--mu)}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.card-h h3{margin:0}.card-h small{color:var(--mu)}

/* ---------- cartões ---------- */
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:18px;margin-bottom:14px;box-shadow:var(--sh)}
.card.estreito{max-width:520px}
.card.destaque{border-color:color-mix(in srgb,var(--pri) 45%,var(--bd));background:linear-gradient(180deg,var(--pri-l),var(--card) 70%)}
.warn-card{border-color:color-mix(in srgb,var(--warn-m) 45%,var(--bd));background:var(--warn-l)}
.ok-card{border-color:color-mix(in srgb,var(--ok-m) 40%,var(--bd));background:var(--ok-l);color:var(--ok);font-weight:600}
.lista{display:flex;flex-direction:column;gap:8px}
.lista>.card{margin-bottom:0}
.linha-card{display:flex;align-items:center;gap:14px;color:var(--tx);padding:14px 16px}
a.linha-card,button.linha-card{transition:border-color .15s,background .15s}
a.linha-card:hover{border-color:var(--bd2);background:var(--surface-2)}
.linha-card.plana{background:none;border:0;box-shadow:none;padding:11px 0;border-bottom:1px solid var(--bd);border-radius:0}
.card .linha-card.plana:last-child{border-bottom:0}
.lc-meio{flex:1;min-width:0}.lc-meio b{display:block;font-weight:600}.lc-meio small{color:var(--mu)}
.seta{color:var(--mu);font-size:20px}
.col-acoes{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.inativo{opacity:.5}
.acoes-lin{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.linha-form{display:flex;gap:8px}.linha-form select,.linha-form input{flex:1}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:0 14px}
.checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:0 12px;background:var(--surface-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:2px 12px}
.filtros{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;align-items:center}
.filtros select,.filtros input{width:auto;min-width:190px;flex:0 1 260px}
.dica{background:var(--info-l);color:var(--info);padding:10px 12px;border-radius:var(--r-sm);margin-bottom:14px;font-size:13.5px}

/* ---------- KPIs ---------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:12px;margin-bottom:16px}
.kpis.k3{grid-template-columns:repeat(3,minmax(0,1fr))}.kpis.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px;box-shadow:var(--sh);position:relative;overflow:hidden}
.kpi small{display:block;color:var(--mu);font-weight:550;font-size:12.5px}
.kpi>b{display:block;font-size:26px;font-weight:700;margin-top:4px;letter-spacing:-.02em}
.kpi.alerta{border-color:color-mix(in srgb,var(--crit-m) 50%,var(--bd))}
a.kpi{color:var(--tx);transition:border-color .15s}a.kpi:hover{border-color:var(--bd2)}
.kpi-top{display:flex;justify-content:space-between;align-items:flex-start;gap:6px 8px;flex-wrap:wrap}
.kpi-val{display:flex;align-items:baseline;gap:6px;margin-top:6px}
.kpi-val{flex-wrap:wrap}
.kpi-val b{display:block;margin:0;font-size:clamp(19px,1.75vw,27px);font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpi-val span{color:var(--mu);font-size:13px;font-weight:500}
.kpi-rodape{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;min-height:26px}
.delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:650;padding:1px 7px;border-radius:999px;font-variant-numeric:tabular-nums}
.delta.bom{color:var(--ok);background:var(--ok-l)}.delta.ruim{color:var(--crit);background:var(--crit-l)}.delta.neutro{color:var(--mu);background:var(--mute-l)}
.delta-txt{color:var(--mu);font-size:11.5px;margin-left:4px}
.spark{display:block;width:84px;height:26px}
.spark path.l{fill:none;stroke:var(--serie);stroke-width:1.6}
.spark path.a{fill:color-mix(in srgb,var(--serie) 14%,transparent);stroke:none}
.kpi-meta{margin-top:10px}
.kpi-meta .barra{height:6px}
.kpi-meta small{display:flex;justify-content:space-between;gap:8px;margin-top:5px;font-size:11.5px}
.kpi-meta b{font-size:12px;font-weight:700;color:var(--tx)}
.kpi-mini small{display:block;color:var(--mu);font-size:12px}.kpi-mini b{font-size:20px;font-variant-numeric:tabular-nums}
.conta-topo{display:flex;justify-content:space-around;text-align:center}
.alertas{list-style:none;margin:0;padding:0}
.alertas li{padding:10px 12px;border-radius:var(--r-sm);margin-bottom:6px;display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.alertas li.crit{background:var(--crit-l);color:var(--crit)}.alertas li.warn{background:var(--warn-l);color:var(--warn)}
.alertas li a{color:inherit;font-weight:600;margin-left:auto;white-space:nowrap}

/* prioridades */
.prio-lista{display:flex;flex-direction:column}
.prio{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--bd)}
.prio:last-child{border-bottom:0}
.prio-ic{width:26px;height:26px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex:0 0 26px}
.prio-ic.crit{background:var(--crit-l);color:var(--crit)}.prio-ic.warn{background:var(--warn-l);color:var(--warn)}
.prio b{display:block;font-weight:600;font-size:13.5px}.prio small{color:var(--mu)}
.prio .btn{margin-left:auto}

/* grades de dashboard */
.dash{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.dash>.card{margin:0}
.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}.c12{grid-column:span 12}

/* ---------- gráficos ---------- */
.grafico{position:relative}
.grafico svg{display:block;width:100%;height:auto;overflow:visible}
.grafico .eixo text,.grafico text.eixo{fill:var(--mu);font-size:11px;font-family:var(--f)}
.grafico .grade line{stroke:var(--grade);stroke-width:1}
.grafico .linha{fill:none;stroke:var(--serie);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.grafico .area{fill:color-mix(in srgb,var(--serie) 12%,transparent)}
.grafico .pt{fill:var(--card);stroke:var(--serie);stroke-width:2}
.grafico .meta-l{stroke:var(--mu);stroke-dasharray:4 4;stroke-width:1}
.grafico .cross{stroke:var(--bd2);stroke-width:1}
.hbar{display:grid;grid-template-columns:minmax(110px,max-content) 1fr auto;gap:8px 12px;align-items:center}
.hbar .rot{font-size:13px;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.hbar .trilho{height:18px;position:relative;border-radius:4px}
.hbar .trilho i{position:absolute;left:0;top:0;bottom:0;border-radius:0 4px 4px 0;background:var(--serie);min-width:2px;transition:width .5s ease}
.hbar .trilho i.ok{background:var(--ok-m)}.hbar .trilho i.warn{background:var(--warn-m)}.hbar .trilho i.crit{background:var(--crit-m)}.hbar .trilho i.mute{background:var(--bd2)}
.hbar .trilho .marca-lim{position:absolute;top:-3px;bottom:-3px;width:0;border-left:1px dashed var(--mu)}
.hbar .val{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.hbar .linha-h{display:contents;cursor:default}
.hbar .linha-h:hover .rot{color:var(--tx)}
.empilhada{display:flex;height:12px;border-radius:4px;overflow:hidden;gap:2px;background:var(--card)}
.empilhada i{display:block;height:100%}
.empilhada i.ok{background:var(--ok-m)}.empilhada i.warn{background:var(--warn-m)}.empilhada i.crit{background:var(--crit-m)}.empilhada i.info{background:var(--serie)}.empilhada i.mute{background:var(--bd2)}
.legenda{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:12.5px;color:var(--tx2)}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda b{font-variant-numeric:tabular-nums}
.tip{position:fixed;z-index:200;pointer-events:none;background:var(--tx);color:var(--card);padding:7px 10px;border-radius:7px;font-size:12px;box-shadow:var(--sh-lg);max-width:260px;opacity:0;transition:opacity .1s}
.tip b{display:block;font-weight:650}
.tip.on{opacity:1}

/* ---------- lojas ---------- */
.grade-lojas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.grade-lojas .card{margin:0}
.loja-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.loja-h b{display:block;font-size:15px;font-weight:650}.loja-h small{color:var(--mu)}
.loja-linhas>div{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px 0;border-top:1px solid var(--bd)}
.loja-linhas span{width:96px;color:var(--mu);font-size:12.5px;font-weight:550}
.nota-bola{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:16px;flex:0 0 48px;background:var(--mute-l);color:var(--mu);gap:2px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.nota-bola.ok{background:var(--ok-l);color:var(--ok)}.nota-bola.warn{background:var(--warn-l);color:var(--warn)}.nota-bola.crit{background:var(--crit-l);color:var(--crit)}.nota-bola.info{background:var(--info-l);color:var(--info)}
.nota-bola.grande{width:92px;height:92px;font-size:30px;flex-basis:92px;border-radius:20px}
.nota-bola span{font-size:11px}
.barra{height:8px;background:var(--mute-l);border-radius:99px;overflow:hidden;flex:1;min-width:80px}
.barra i{display:block;height:100%;border-radius:99px;background:var(--pri);transition:width .5s ease}
.barra i.ok{background:var(--ok-m)}.barra i.warn{background:var(--warn-m)}.barra i.crit{background:var(--crit-m)}
.grade-menu{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.menu-item{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 10px;text-align:center;color:var(--tx);font-weight:600;margin:0}
.menu-item svg{width:24px;height:24px;color:var(--pri)}

/* ---------- abas e segmentos ---------- */
.abas{display:flex;gap:2px;overflow-x:auto;margin:0 0 16px;border-bottom:1px solid var(--bd);scrollbar-width:none}
.abas::-webkit-scrollbar{display:none}
.abas button{flex:0 0 auto;border:0;background:none;font:inherit;font-size:13.5px;font-weight:600;color:var(--mu);padding:10px 12px;cursor:pointer;min-height:40px;border-bottom:2px solid transparent;margin-bottom:-1px}
.abas button:hover{color:var(--tx)}
.abas button.ativo{color:var(--tx);border-bottom-color:var(--pri)}
.abas button small{background:var(--mute-l);border-radius:99px;padding:0 7px;margin-left:5px;font-size:11px;color:var(--mu);font-variant-numeric:tabular-nums}
.abas.peq{display:inline-flex;border:1px solid var(--bd);border-radius:var(--r-sm);padding:3px;margin-top:6px;gap:2px}
.abas.peq button{border:0;border-radius:6px;padding:5px 12px;min-height:30px;margin:0}
.abas.peq button.ativo{background:var(--mute-l)}
.seg{display:inline-flex;border:1px solid var(--bd2);border-radius:var(--r-sm);padding:2px;background:var(--card)}
.seg button{border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--mu);padding:5px 12px;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:30px}
.seg button svg{width:15px;height:15px}
.seg button.ativo{background:var(--mute-l);color:var(--tx)}

/* ---------- visita ---------- */
.vis-topo{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center}
.vis-topo>div small{display:block}
.vis-topo .prog{flex:1;min-width:220px}
.nota-g{font-size:26px}
.sec-card{border-left:3px solid var(--bd2)}
.sec-card.feito{border-left-color:var(--ok-m)}
.sec-card textarea{margin-top:10px}
.notas-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.notas{display:flex;gap:6px}
.notas button{flex:1;min-width:0;height:44px;border-radius:var(--r-sm);border:1px solid var(--bd2);background:var(--card);font:inherit;font-weight:700;font-size:16px;color:var(--tx2);cursor:pointer;transition:background .12s,transform .06s}
.notas button:hover:not(:disabled){background:var(--hover)}
.notas button:active{transform:scale(.96)}
.notas button.sel{color:#fff;border-color:transparent}
.notas button.n1{background:#c81e1e}.notas button.n2{background:#e05a2a}.notas button.n3{background:#d08a00}.notas button.n4{background:#3f9a59}.notas button.n5{background:#157f3c}
.simnao{display:flex;gap:6px;margin-top:10px}
.simnao button{flex:1;height:44px;border-radius:var(--r-sm);border:1px solid var(--bd2);background:var(--card);font:inherit;font-weight:600;color:var(--tx2);cursor:pointer;padding:0 6px}
.simnao button:hover:not(:disabled){background:var(--hover)}
.simnao button.sel.ok{background:var(--ok-m);color:#fff;border-color:transparent}.simnao button.sel.crit{background:var(--crit-m);color:#fff;border-color:transparent}
.simnao button.sel.warn{background:var(--warn-m);color:#fff;border-color:transparent}.simnao button.sel.mute{background:var(--mu);color:#fff;border-color:transparent}
.foto-acoes{display:flex;gap:6px;align-items:center;margin-top:10px}
.fotos{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.foto{position:relative;width:88px;height:88px;border-radius:var(--r-sm);overflow:hidden;background:var(--mute-l);border:1px solid var(--bd)}
.foto img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}
.foto-del{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;cursor:pointer;font-size:11px}
img.zoom{width:100%;height:auto;border-radius:var(--r-sm)}

/* ---------- conferência ---------- */
.etapas{display:flex;gap:6px;margin-bottom:16px;overflow-x:auto}
.etapas div{flex:1;min-width:110px;display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:var(--r-sm);background:var(--card);border:1px solid var(--bd);color:var(--mu);font-weight:600;font-size:13px}
.etapas span{width:22px;height:22px;border-radius:50%;background:var(--mute-l);color:var(--mu);display:flex;align-items:center;justify-content:center;font-size:11.5px;flex:0 0 22px;font-weight:700}
.etapas .atual{border-color:var(--pri);color:var(--tx)}.etapas .atual span{background:var(--pri-btn);color:#fff}
.etapas .feita{color:var(--ok)}.etapas .feita span{background:var(--ok-m);color:#fff}
.item-conta{display:flex;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:var(--tx);cursor:pointer;border-left:3px solid var(--bd2);margin:0}
.item-conta:hover{background:var(--surface-2)}
.item-conta.feito{border-left-color:var(--ok-m)}
.qtd-box{text-align:center;min-width:70px}.qtd-box b{display:block;font-size:22px}.qtd-box small{color:var(--mu)}
.item-linha{display:flex;align-items:center;gap:12px;margin:0}
.in-qtd{width:110px;flex:0 0 110px;text-align:center;font-size:17px;font-weight:700;font-variant-numeric:tabular-nums}
.in-qtd.grande{width:100%;font-size:30px;height:62px}
.barra-acao{position:sticky;bottom:16px;margin-top:16px;z-index:5}
.resultado-conf{border-width:1px}
.resultado-conf.ok{border-color:color-mix(in srgb,var(--ok-m) 60%,var(--bd))}.resultado-conf.warn{border-color:color-mix(in srgb,var(--warn-m) 60%,var(--bd))}.resultado-conf.crit{border-color:color-mix(in srgb,var(--crit-m) 60%,var(--bd))}
.res-faixa .chip{font-size:14px;padding:5px 14px;margin-bottom:12px}
.regua{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}
.regua small{flex-basis:100%}
.lin-crit td{background:var(--crit-l)}.lin-warn td{background:var(--warn-l)}
.check{user-select:none}

/* ---------- busca de produto ---------- */
.picker{position:relative}
.picker-linha{display:flex;gap:8px}
.picker-in{flex:1;font-size:15px;min-height:42px}
.picker-res{display:flex;flex-direction:column;gap:6px;margin-top:8px;max-height:340px;overflow:auto}
.picker-item{text-align:left;border:1px solid var(--bd);background:var(--card);border-radius:var(--r-sm);padding:9px 12px;font:inherit;color:var(--tx);cursor:pointer}
.picker-item:hover,.picker-item:focus{border-color:var(--pri);background:var(--pri-l)}
.picker-item b{display:block;font-weight:600}.picker-item small{color:var(--mu)}
.picker-vazio{padding:10px;color:var(--mu)}
.achado{margin-top:10px;padding:12px;border-radius:var(--r-sm);background:var(--ok-l)}.achado small{display:block;color:var(--mu)}

/* ---------- leitor ---------- */
.scanner{position:fixed;inset:0;background:#000;z-index:100;display:flex;flex-direction:column}
.scanner video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.scan-mira{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.scan-mira span{width:78%;max-width:420px;height:150px;border:2px solid #fff;border-radius:16px;box-shadow:0 0 0 2000px rgba(0,0,0,.5)}
.scan-topo,.scan-rodape{position:relative;z-index:2;display:flex;gap:10px;align-items:center;padding:16px;padding-top:max(16px,env(safe-area-inset-top))}
.scan-topo{justify-content:space-between;color:#fff}
.scan-rodape{margin-top:auto;padding-bottom:max(16px,env(safe-area-inset-bottom))}
.scan-input{font-size:17px}

/* ---------- tabelas ---------- */
.tab-wrap{overflow:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-sm)}
.tab{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px}
.tab th{text-align:left;font-size:11.5px;color:var(--mu);text-transform:uppercase;letter-spacing:.05em;padding:9px 12px;border-bottom:1px solid var(--bd);white-space:nowrap;font-weight:650;background:var(--card)}
.tab td{padding:10px 12px;border-bottom:1px solid var(--bd);vertical-align:middle}
.tab tbody tr:last-child td{border-bottom:0}
.tab .d{text-align:right}
.tab tr.clicavel{cursor:pointer}.tab tr.clicavel:hover td{background:var(--surface-2)}
.tab tr.clicavel:focus{outline:none}.tab tr.clicavel:focus td{background:var(--pri-l)}
.tab.mini{font-size:12px}.tab.mini td{padding:6px;white-space:nowrap}
.tab.metas input{width:120px;min-height:34px;padding:5px 8px;text-align:right;font-variant-numeric:tabular-nums}
.pag{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:12px}

/* tabela inteligente */
.tbl{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);margin-bottom:14px}
.tbl-bar{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.tbl-busca{position:relative;flex:1 1 220px;max-width:340px}
.tbl-busca svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--mu)}
.tbl-busca input{padding-left:32px;min-height:36px}
.tbl-bar select{width:auto;min-height:36px;flex:0 1 190px}
.tbl-bar .esp{flex:1}
.tbl-cont{color:var(--mu);font-size:12.5px;white-space:nowrap}
.tbl .tab-wrap{max-height:min(68vh,780px);border-radius:0}
.tbl thead th{position:sticky;top:0;z-index:2}
.tbl th.ord{cursor:pointer;user-select:none}
.tbl th.ord:hover{color:var(--tx)}
.tbl th .seta-ord{opacity:.35;margin-left:4px;font-size:10px}
.tbl th[aria-sort=ascending] .seta-ord,.tbl th[aria-sort=descending] .seta-ord{opacity:1;color:var(--pri)}
.tbl-pe{display:flex;justify-content:center;padding:10px;border-top:1px solid var(--bd)}
.menu-pop{position:absolute;z-index:40;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh-lg);padding:6px;min-width:220px}
.menu-pop label{margin:0;padding:7px 8px;border-radius:6px;font-weight:500;color:var(--tx)}
.menu-pop label:hover{background:var(--hover)}
.menu-pop button.mi{display:flex;width:100%;gap:10px;align-items:center;background:none;border:0;font:inherit;color:var(--tx);padding:8px 10px;border-radius:6px;cursor:pointer;text-align:left}
.menu-pop button.mi:hover{background:var(--hover)}
.menu-pop hr{border:0;border-top:1px solid var(--bd);margin:4px 0}

/* ---------- kanban ---------- */
.kanban{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;align-items:start;overflow-x:auto;padding-bottom:6px}
.kan-col{background:var(--surface-2);border:1px solid var(--bd);border-radius:var(--r);padding:10px;min-height:200px}
.kan-col.alvo{border-color:var(--pri);background:var(--pri-l)}
.kan-h{display:flex;align-items:center;gap:8px;padding:4px 4px 10px;font-weight:650;font-size:13px}
.kan-h .chip{margin-left:auto}
.kan-card{display:block;background:var(--card);border:1px solid var(--bd);border-radius:var(--r-sm);padding:11px 12px;margin-bottom:8px;color:var(--tx);box-shadow:var(--sh);cursor:grab}
.kan-card:hover{border-color:var(--bd2)}
.kan-card.arrastando{opacity:.5}
.kan-card b{display:block;font-weight:600;font-size:13.5px;line-height:1.35}
.kan-card small{display:block;color:var(--mu);margin-top:4px}
.kan-card .chips{margin-top:8px}
.kan-card.atrasado{border-left:3px solid var(--crit-m)}

/* ---------- 5W2H ---------- */
.w5{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.w-bloco{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:14px 16px}
.w-bloco small{display:block;color:var(--pri);font-weight:700;letter-spacing:.08em;margin-bottom:6px;font-size:11px}
.w-largo{grid-column:span 4}.w-como{background:var(--surface-2)}
.w-crit{border-color:color-mix(in srgb,var(--crit-m) 55%,var(--bd))}.w-crit div{color:var(--crit);font-weight:650}
.hist{background:var(--surface-2);border:1px solid var(--bd);border-radius:var(--r-sm);padding:10px 12px;font-size:13.5px;margin-bottom:10px}
.perg small{display:block;color:var(--mu);margin-top:4px}
.perg-teste h4{text-transform:none;letter-spacing:0;color:var(--tx);font-size:15px;margin:8px 0;font-weight:600}
.perg-teste details{margin:6px 0;color:var(--mu)}.perg-teste summary{cursor:pointer;color:var(--pri);font-weight:600}
.perg-teste input{margin-top:8px}
.crit-lista .crit{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--bd)}
.crit-lista .crit span{flex:1;font-weight:550}.crit-lista .notas{flex:0 0 260px}
.resultado{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px}

/* ---------- planta ---------- */
.planta-wrap{display:grid;grid-template-columns:300px 1fr;gap:16px;align-items:start}
.planta-wrap>p{grid-column:1/-1}
.planta-ferr{display:flex;flex-direction:column;gap:14px}
.ferr-grupo b{display:block;font-size:12px;color:var(--mu);margin-bottom:6px;text-transform:uppercase;letter-spacing:.06em}
.planta-area{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:8px;overflow:auto}
#svgP{width:100%;height:auto;display:block;touch-action:none;user-select:none;min-width:600px}
.pl-el{cursor:move}.pl-h{cursor:nwse-resize}
.props .acoes-lin{margin-top:12px}
.mini-graf{display:flex;align-items:flex-end;gap:8px;height:160px;padding-top:10px}
.mini-graf div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}
.mini-graf i{width:100%;max-width:40px;border-radius:4px 4px 0 0;background:var(--mu)}
.mini-graf i.ok{background:var(--ok-m)}.mini-graf i.warn{background:var(--warn-m)}.mini-graf i.crit{background:var(--crit-m)}
.mini-graf small{color:var(--mu);font-size:11px;margin-top:4px}

/* ---------- modal, paleta de comandos, notificações, toast ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(9,13,22,.45);backdrop-filter:blur(2px);z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;animation:fade .15s}
.modal{background:var(--card);border:1px solid var(--bd);border-radius:16px;width:100%;max-width:520px;max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:var(--sh-lg);animation:sobe .18s ease}
.modal.largo{max-width:880px}
.modal-h{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 4px 22px}
.modal-h h3{margin:0;font-size:16px}
.modal-b{padding:6px 22px 18px;overflow:auto}
.modal-f{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding:12px 16px;border-top:1px solid var(--bd);background:var(--surface-2);border-radius:0 0 16px 16px}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes sobe{from{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:none}}
.cmdk-bg{align-items:flex-start;padding-top:12vh}
.cmdk{max-width:620px;overflow:hidden}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:4px 16px;border-bottom:1px solid var(--bd)}
.cmdk-in svg{width:18px;height:18px;color:var(--mu)}
.cmdk-in input{border:0;box-shadow:none;font-size:15.5px;padding:14px 0;min-height:52px;background:none}
.cmdk-res{max-height:52vh;overflow:auto;padding:6px}
.cmdk-g{font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.07em;color:var(--mu);padding:10px 10px 4px}
.cmdk-it{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:var(--r-sm);background:none;border:0;font:inherit;color:var(--tx);cursor:pointer;text-align:left}
.cmdk-it svg{width:17px;height:17px;color:var(--mu)}
.cmdk-it small{color:var(--mu);margin-left:auto;font-size:12px}
.cmdk-it.sel{background:var(--pri-l)}.cmdk-it.sel svg{color:var(--pri)}
.cmdk-pe{display:flex;gap:14px;padding:9px 14px;border-top:1px solid var(--bd);color:var(--mu);font-size:12px;background:var(--surface-2)}
.notif{position:fixed;z-index:50;top:calc(var(--topo) - 4px);right:20px;width:min(400px,calc(100vw - 24px));max-height:70vh;overflow:auto;background:var(--card);border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh-lg);animation:sobe .15s ease}
.notif-h{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--bd)}
.notif-h b{font-size:14px}
.notif-it{display:flex;gap:10px;padding:12px 16px;border-bottom:1px solid var(--bd);color:var(--tx);font-size:13px;align-items:flex-start}
.notif-it:last-child{border-bottom:0}
.notif-it:hover{background:var(--surface-2)}
#toasts{position:fixed;right:20px;bottom:20px;z-index:120;display:flex;flex-direction:column;gap:8px;width:min(92vw,380px)}
.toast{display:flex;gap:10px;align-items:flex-start;background:var(--card);color:var(--tx);border:1px solid var(--bd);padding:12px 14px;border-radius:var(--r);box-shadow:var(--sh-lg);font-weight:500;font-size:13.5px;animation:sobe .2s;transition:opacity .3s,transform .3s}
.toast::before{content:"✓";width:20px;height:20px;border-radius:50%;flex:0 0 20px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;background:var(--ok-l);color:var(--ok)}
.toast.erro::before{content:"!";background:var(--crit-l);color:var(--crit)}
.toast.info::before{content:"i";background:var(--info-l);color:var(--info)}
.toast.erro{border-color:color-mix(in srgb,var(--crit-m) 50%,var(--bd))}
.toast.out{opacity:0;transform:translateY(6px)}
.loading{display:flex;align-items:center;gap:10px;justify-content:center;padding:40px;color:var(--mu)}
.spin{width:18px;height:18px;border:2px solid var(--bd2);border-top-color:var(--pri);border-radius:50%;animation:gira .7s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.skel{background:linear-gradient(90deg,var(--mute-l) 25%,var(--hover) 37%,var(--mute-l) 63%);background-size:400% 100%;animation:brilho 1.3s ease infinite;border-radius:var(--r-sm)}
@keyframes brilho{0%{background-position:100% 50%}100%{background-position:0 50%}}
.skel-pg .skel-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.skel-pg .skel-kpis div{height:110px;border-radius:var(--r)}
.skel-pg .skel-bloco{height:220px;border-radius:var(--r);margin-bottom:14px}
.skel-pg .skel-linha{height:58px;border-radius:var(--r);margin-bottom:8px}
.vazio{text-align:center;padding:40px 16px;color:var(--mu)}
.vazio-ic{font-size:20px;width:52px;height:52px;border-radius:14px;background:var(--mute-l);display:flex;align-items:center;justify-content:center;margin:0 auto 12px;color:var(--mu)}
.vazio p{max-width:420px;margin:0 auto}

/* ---------- login ---------- */
.tela-login{background:var(--bg)}
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}
.login-arte{background:radial-gradient(1200px 600px at 10% 0%,#5b54ef 0%,#2b2596 45%,#0f0c3d 100%);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-arte h2{font-size:34px;letter-spacing:-.03em;line-height:1.1;max-width:460px;margin:0 0 14px;font-weight:700}
.login-arte p{color:rgba(255,255,255,.75);max-width:430px;font-size:15px}
.login-arte ul{list-style:none;padding:0;margin:26px 0 0;display:grid;gap:12px}
.login-arte li{display:flex;gap:10px;align-items:center;color:rgba(255,255,255,.88)}
.login-arte li b{width:22px;height:22px;border-radius:6px;background:rgba(255,255,255,.14);display:inline-flex;align-items:center;justify-content:center;font-size:12px}
.login-lado{display:flex;align-items:center;justify-content:center;padding:24px}
.login-card{width:100%;max-width:380px}
.login-card h1{font-size:24px;margin:0;letter-spacing:-.02em}.login-card .marca{margin-bottom:28px}.login-card .marca p{margin:2px 0 0;color:var(--mu)}
.login-card .btn{margin-top:20px}
.login-card input{min-height:44px}

/* ---------- relatório ---------- */
.relatorio{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:32px;max-width:980px}
.rel-cab{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--bd);padding-bottom:18px;margin-bottom:18px;gap:16px}
.rel-cab h1{font-size:22px;margin:0;letter-spacing:-.02em}.rel-cab p{margin:2px 0 0;color:var(--mu)}
.rel-dados{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px;margin-bottom:12px}
.rel-dados small{display:block;color:var(--mu)}
.relatorio h2{font-size:12px;margin:28px 0 10px;color:var(--mu);text-transform:uppercase;letter-spacing:.07em}
.rel-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.rel-fotos figure{margin:0}.rel-fotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm)}.rel-fotos figcaption{font-size:12px;color:var(--mu);margin-top:3px}
.rel-parte{display:flex;align-items:center;gap:10px;margin:30px 0 14px}
.rel-parte span{width:26px;height:26px;border-radius:8px;background:var(--pri-l);color:var(--pri-tx);display:inline-flex;align-items:center;justify-content:center;font-weight:750;font-size:12.5px}
.rel-parte h2{margin:0;font-size:16px;letter-spacing:-.01em;text-transform:none;color:var(--tx)}
.conclusoes{margin:0;padding:0;list-style:none;display:grid;gap:8px}
.conclusoes li{display:flex;gap:10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--surface-2);border:1px solid var(--bd);font-size:13.5px}

/* ---------- celular e tablet ---------- */
@media (max-width:1100px){.c4,.c5,.c6,.c7,.c8{grid-column:span 12}}
@media (max-width:900px){
  :root{--lat:0px}
  body{font-size:15px}
  .lateral{display:none}
  .topo{padding:0 6px 0 12px;margin-left:0;height:56px}
  .topo h2{font-size:16px}
  .busca-btn{min-width:0;width:38px;padding:0;justify-content:center;border:0;background:none}
  .busca-btn span,.busca-btn kbd{display:none}
  .topo-sep{display:none}
  #topo-acoes .btn span{display:none}
  #topo-acoes .btn{padding:0 11px}
  #conteudo{margin-left:0;padding:16px 14px calc(var(--inf) + 28px)}
  .inferior{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--bd);height:calc(var(--inf) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  .inferior a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--mu);font-size:11px;font-weight:600;position:relative}
  .inferior a.ativo{color:var(--pri)}
  .inferior svg{width:22px;height:22px}
  .inferior .badge{position:absolute;top:6px;left:calc(50% + 6px)}
  .g3{grid-template-columns:1fr 1fr}
  .w5{grid-template-columns:1fr 1fr}.w-largo{grid-column:span 2}
  .planta-wrap{grid-template-columns:1fr}
  .grade-lojas{grid-template-columns:1fr}
  .filtros select,.filtros input{max-width:none;min-width:0;flex:1 1 100%}
  .modal-bg{align-items:flex-end;padding:0}
  .cmdk-bg{align-items:flex-start;padding:10px}
  .modal{border-radius:18px 18px 0 0;max-height:92vh}
  .cmdk{border-radius:16px}
  .modal-f{border-radius:0}
  .modal-f .btn{flex:1}
  .rel-dados{grid-template-columns:1fr 1fr}
  .relatorio{padding:14px;border-radius:var(--r)}
  .rel-cab{flex-direction:column;align-items:flex-start}.rel-cab h1{font-size:19px}
  .crit-lista .crit{flex-direction:column;align-items:stretch}.crit-lista .notas{flex:1}
  .kpis,.kpis.k3,.kpis.k4{grid-template-columns:1fr 1fr}
  .kpi{padding:14px}.kpi-val b{font-size:clamp(17px,5vw,24px);white-space:normal;overflow-wrap:anywhere}
  .kpi-top .chip{font-size:11px;padding:1px 7px}
  .kpi-rodape{flex-wrap:wrap}
  .spark{width:64px}
  .vis-topo{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.vis-topo .prog{grid-column:1/-1;min-width:0}
  .barra-acao{bottom:calc(var(--inf) + 12px)}
  #toasts{left:50%;right:auto;transform:translateX(-50%);bottom:calc(var(--inf) + 14px)}
  .notif{right:8px;top:58px}
  .login{grid-template-columns:1fr}.login-arte{display:none}
  .kanban{grid-template-columns:repeat(3,minmax(250px,86vw));scroll-snap-type:x mandatory}.kan-col{scroll-snap-align:start}
  .tbl-busca{max-width:none}
  .pg-head h1{font-size:19px}
  .hbar{grid-template-columns:minmax(90px,38%) 1fr auto}
}
@media (max-width:480px){.g2,.g3{grid-template-columns:1fr}.notas-grid{grid-template-columns:1fr}.simnao button{font-size:13.5px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- impressão ---------- */
@media print{
  .lateral,.topo,.inferior,#toasts,.tbl-bar,.no-print{display:none!important}
  #conteudo{margin:0;padding:0;max-width:none}
  body{background:#fff;color:#000}
  .relatorio,.card,.tbl{border:1px solid #ddd;box-shadow:none}
  .relatorio{border:0;padding:0;max-width:none}
  .rel-fotos{grid-template-columns:repeat(3,1fr)}
  .chip{border:1px solid #bbb}
  .tbl .tab-wrap{max-height:none;overflow:visible}
  h2{page-break-after:avoid}figure,tr,.card,.kpi{page-break-inside:avoid}
  .dash{display:block}.dash>.card{margin-bottom:12px}
}

/* olho da senha */
.senha-box{position:relative}
.senha-box input{padding-right:46px}
.olho{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:none;color:var(--mu);border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.olho:hover{color:var(--tx);background:var(--hover)}