:root{
  --bg:#070b14; --bg2:#0c1220; --card:#111a2c; --card2:#16213a; --ln:#1f2b45; --tx:#e7ecf6; --mut:#8693ad;
  --samsung:#1428a0; --azul:#3d7bff; --vermelho:#ef3340; --amarelo:#ffc629; --verde:#22c55e;
  --raio:14px;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--tx);font:13px/1.45 "SamsungOne","Segoe UI",system-ui,sans-serif}
button,.bt{font:inherit;cursor:pointer;border:1px solid var(--ln);border-radius:10px;padding:7px 12px;background:var(--card2);color:var(--tx);text-decoration:none;display:inline-flex;align-items:center;gap:6px}
button:hover,.bt:hover{border-color:var(--azul)}
button.pri{background:var(--samsung);border-color:var(--samsung)} button.pri:hover{background:#1d36c4}
button.mini{padding:3px 8px;font-size:11px;border-radius:8px}
input,select,textarea{font:inherit;background:var(--bg2);border:1px solid var(--ln);border-radius:9px;padding:6px 9px;color:var(--tx)}
input[type=date]{color-scheme:dark}
.muted{color:var(--mut)} .esp{flex:1}
h4{margin:18px 0 8px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);font-weight:600}
::-webkit-scrollbar{width:8px;height:8px} ::-webkit-scrollbar-thumb{background:#24324f;border-radius:8px}

.app{display:flex;height:100%}
/* ---------- rail ---------- */
.rail{width:74px;background:var(--bg2);border-right:1px solid var(--ln);display:flex;flex-direction:column;align-items:center;padding:12px 0;gap:4px}
.rail .logo{width:42px;height:42px;border-radius:12px;background:var(--samsung);display:grid;place-items:center;font-weight:800;letter-spacing:.04em;margin-bottom:12px}
.rail button{width:62px;border:0;background:none;color:var(--mut);display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0;border-radius:12px;font-size:10px}
.rail button svg{width:22px;height:22px;fill:currentColor}
.rail button:hover{color:var(--tx);background:#ffffff08}
.rail button.ativo{color:#fff;background:linear-gradient(180deg,#1428a0,#0f1f7a)}
.rail .esp{flex:1}

.principal{flex:1;display:flex;flex-direction:column;min-width:0}
/* ---------- topbar ---------- */
.topbar{height:68px;display:flex;align-items:center;gap:18px;padding:0 18px;border-bottom:1px solid var(--ln);background:var(--bg2)}
.titulo small{display:block;font-size:10px;letter-spacing:.14em;color:var(--mut)} .titulo b{font-size:18px;font-weight:600}
.kpis{display:flex;gap:10px;margin-left:12px;overflow:auto}
.kpi{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:12px;background:var(--card);border:1px solid var(--ln);white-space:nowrap}
.kpi b{font-size:18px} .kpi span{color:var(--mut);font-size:11px}
.kpi i{width:12px;height:12px;border-radius:50%}
.kpi.vermelho i{background:var(--vermelho);box-shadow:0 0 10px var(--vermelho)} .kpi.amarelo i{background:var(--amarelo);box-shadow:0 0 10px var(--amarelo)}
.kpi.desligado{opacity:.4}
.direita{margin-left:auto;display:flex;align-items:center;gap:10px}
.dot{width:8px;height:8px;border-radius:50%;background:#475569} .dot.ok{background:var(--verde)} .dot.warn{background:var(--amarelo)} .dot.err{background:var(--vermelho)}
.atualizado{color:var(--mut);font-size:11px}
.refresh{position:relative;width:36px;height:36px;padding:0;border-radius:50%;justify-content:center;border:0;background:none}
.refresh svg{position:absolute;inset:0;transform:rotate(-90deg)}
.refresh circle{fill:none;stroke-width:2.5} .refresh .trilho{stroke:#1f2b45} .refresh .prog{stroke:var(--azul);stroke-linecap:round;stroke-dasharray:94.25;transition:stroke-dashoffset 1s linear}
.refresh .ic{font-size:16px;color:var(--tx)} .refresh.girando .ic{animation:gira 1s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.crono{font-size:11px;color:var(--mut);font-variant-numeric:tabular-nums;width:30px}

/* ---------- corpo ---------- */
.corpo{flex:1;display:flex;gap:14px;padding:14px;min-height:0}
.mapa-card{position:relative;flex:1;border-radius:var(--raio);overflow:hidden;border:1px solid var(--ln);background:#0a0f1a;min-width:0}
#mapa{position:absolute;inset:0;background:#0a0f1a}
.lado{width:400px;background:var(--card);border:1px solid var(--ln);border-radius:var(--raio);overflow:auto;padding:4px 14px 14px}
.corpo.cheia .mapa-card,.corpo.cheia .lado{display:none}
.tela{flex:1;overflow:auto;background:var(--card);border:1px solid var(--ln);border-radius:var(--raio);padding:16px}
.painel{display:none} .painel.ativo{display:block}
.barra{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:12px 0}
.barra label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mut)}
.busca{flex:1;min-width:140px}
.dica{font-size:11px;color:var(--mut)}

/* ferramentas do mapa */
.ferramentas{position:absolute;left:12px;top:12px;z-index:500;display:flex;flex-direction:column;gap:6px;background:#0c1220e6;border:1px solid var(--ln);border-radius:12px;padding:6px;backdrop-filter:blur(6px)}
.ferramentas button{width:34px;height:34px;padding:0;justify-content:center;border-radius:9px;border:0;background:none;color:var(--mut)}
.ferramentas button svg{width:18px;height:18px;fill:currentColor}
.ferramentas button.ativo{background:#1428a055;color:#fff}
.ferramentas hr{border:0;border-top:1px solid var(--ln);margin:2px 0}
.bola{display:inline-block;width:12px;height:12px;border-radius:50%} .bola.v{background:var(--vermelho)} .bola.a{background:var(--amarelo)}
.filtros-mapa{position:absolute;top:12px;left:62px;z-index:500;display:flex;gap:6px;align-items:center}
.chip-tipo{padding:5px 11px;border-radius:99px;background:#0c1220e6;color:var(--mut);font-weight:700;font-size:11px;letter-spacing:.05em}
.chip-tipo.ativo{color:#fff;border-color:var(--azul)}
.zona-ativa{padding:5px 11px;border-radius:99px;background:var(--samsung);font-size:11px;cursor:pointer}
.legenda{position:absolute;left:12px;bottom:12px;z-index:500;display:flex;gap:12px;background:#0c1220e6;border:1px solid var(--ln);border-radius:10px;padding:6px 10px;font-size:11px;color:var(--mut)}
.legenda span{display:flex;align-items:center;gap:5px}
.leaflet-container{background:#0a0f1a;font:inherit}
.leaflet-control-zoom{margin-right:12px!important;margin-top:12px!important;border:1px solid var(--ln)!important}
.leaflet-control-zoom a{background:#0c1220!important;color:var(--tx)!important;border-color:var(--ln)!important}
.leaflet-container .leaflet-control-attribution{background:#0c1220aa;color:#64748b} .leaflet-control-attribution a{color:#8693ad}
.leaflet-popup-content-wrapper,.leaflet-popup-tip,.leaflet-tooltip{background:#111a2c;color:var(--tx);border:1px solid var(--ln);box-shadow:0 8px 24px #000a}
.leaflet-tooltip:before{display:none}

/* marcadores */
.mk-os{background:none;border:0}
.mk-os .b{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:9.5px;font-weight:800;letter-spacing:.02em;border:2px solid #0a0f1a;box-shadow:0 0 0 1px #ffffff40,0 2px 6px #000a}
.mk-os.PRONTA .b{background:var(--vermelho);color:#fff}
.mk-os.AGENDAMENTO .b{background:var(--amarelo);color:#1a1300}
.mk-os.cidade .b{border-style:dashed;border-color:#0a0f1acc}
.mk-os .n{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;border-radius:8px;font-size:10px;font-weight:700;color:#fff;display:grid;place-items:center;border:1.5px solid #0a0f1a;padding:0 3px}
.mk-veic{background:none;border:0}
.mk-veic .seta{width:32px;height:32px;border-radius:50%;background:var(--azul);border:3px solid #e7ecf6;box-shadow:0 0 14px #3d7bffaa;display:grid;place-items:center}
.mk-veic .rot{position:absolute;top:33px;left:50%;transform:translateX(-50%);background:#0c1220;border:1px solid var(--ln);color:#fff;font-size:10px;padding:1px 6px;border-radius:6px;white-space:nowrap}
.mk-base{background:none;border:0} .mk-base div{width:28px;height:28px;border-radius:8px;background:var(--samsung);color:#fff;display:grid;place-items:center;font-weight:800;border:2px solid #e7ecf6}
.pop b{display:block;margin-bottom:2px} .pop .end{margin-top:8px;display:flex;gap:4px} .pop .end input{flex:1;min-width:150px}
.tag{display:inline-block;padding:1px 7px;border-radius:99px;font-size:10px;font-weight:700}
.tag.PRONTA{background:#ef334033;color:#ff8a92} .tag.AGENDAMENTO{background:#ffc62933;color:var(--amarelo)}

/* painel lateral */
.grade-tipos{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.tipo{background:var(--card2);border:1px solid var(--ln);border-radius:12px;padding:10px 6px;text-align:center;cursor:pointer}
.tipo.off{opacity:.35}
.tipo b{display:block;font-size:15px;letter-spacing:.05em;margin-bottom:6px}
.tipo .n{display:flex;justify-content:center;gap:8px;font-size:12px}
.zona{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--card2);border:1px solid var(--ln);margin-bottom:6px;cursor:pointer}
.zona:hover,.zona.sel{border-color:var(--azul)}
.zona .cor{width:6px;align-self:stretch;border-radius:4px}
.zona .nome{flex:1} .zona .nome small{display:block;color:var(--mut);font-size:10px}
.cont{display:flex;gap:8px;font-weight:700} .cont .v{color:#ff6b75} .cont .a{color:var(--amarelo)}
.antiga{display:flex;justify-content:space-between;padding:7px 2px;border-bottom:1px solid var(--ln);cursor:pointer;font-size:12px}
.antiga:hover{color:#fff}

/* planejamento */
.coluna{border:1px solid var(--ln);border-radius:12px;margin-bottom:8px;background:var(--bg2)}
.coluna .cab{display:flex;align-items:center;gap:8px;padding:9px 11px;cursor:pointer}
.coluna .cab .cor{width:10px;height:10px;border-radius:3px}
.coluna .cab .info{font-size:11px;color:var(--mut);margin-left:auto}
.coluna .acoes{display:flex;gap:5px;padding:0 10px 8px;flex-wrap:wrap}
.coluna.fechada .lista,.coluna.fechada .acoes{display:none}
.qt{background:var(--card2);border-radius:99px;padding:0 8px;font-size:11px}
.lista{list-style:none;margin:0;padding:6px;min-height:30px}
#listaDesignar{max-height:36vh;overflow:auto}
.os{background:var(--card);border:1px solid var(--ln);border-left:4px solid var(--vermelho);border-radius:9px;padding:6px 9px;margin-bottom:5px;cursor:grab;font-size:12px}
.os .l1{display:flex;justify-content:space-between;gap:6px;font-weight:600}
.os .l2{color:var(--mut);display:flex;gap:8px;flex-wrap:wrap;font-size:11px}
.os .num{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;color:#fff;font-size:10px;margin-right:4px}
.os .tp{font-weight:800;font-size:10px;padding:0 5px;border-radius:5px;background:#ef334033;color:#ff8a92}
.os .sug{color:#9fb6ff}
.sortable-ghost{opacity:.35}

/* tabelas e rotas */
.tab{width:100%;border-collapse:collapse;font-size:12px}
.tab th,.tab td{padding:7px 6px;border-bottom:1px solid var(--ln);text-align:left}
.tab th{color:var(--mut);font-weight:600;font-size:11px}
.tab tbody tr{cursor:pointer} .tab tbody tr:hover{background:#ffffff08} .tab tbody tr.sel{background:#1428a044}
.parada{border:1px solid var(--ln);border-radius:10px;margin:8px 0;font-size:12px;overflow:hidden}
.parada .h{display:flex;justify-content:space-between;gap:6px;padding:7px 9px;background:var(--card2);font-weight:600}
.parada table{width:100%;border-collapse:collapse} .parada td,.parada th{padding:4px 9px;border-top:1px solid var(--ln);text-align:left}
.veic{border:1px solid var(--ln);background:var(--card2);border-radius:12px;padding:9px 11px;margin-bottom:8px;font-size:12px;cursor:pointer}
.veic .t{display:flex;justify-content:space-between;font-weight:600;font-size:13px}
.veic select{width:100%;margin-top:6px}
.veic.mov .t span:last-child{color:var(--verde)} .veic.parado .t span:last-child{color:var(--mut)}
.campo{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--mut);margin-bottom:10px}
.linha2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ajuda{font-size:12px;margin-bottom:10px;color:var(--mut)} .ajuda ol{padding-left:18px}

/* relatórios */
.grade-rel{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px}
.cartao{background:var(--card2);border:1px solid var(--ln);border-radius:var(--raio);padding:14px}
.cartao h3{margin:0 0 10px;font-size:13px;font-weight:600}
.cartao .grande{font-size:30px;font-weight:700}
.barras .lin{display:grid;grid-template-columns:140px 1fr 46px;gap:8px;align-items:center;margin:5px 0;font-size:12px}
.barras .lin .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mut)}
.barras .trilho{height:10px;border-radius:6px;background:#0a0f1a;display:flex;overflow:hidden}
.barras .trilho i{display:block;height:100%}
.barras .vl{text-align:right;font-variant-numeric:tabular-nums}
.colunas{display:flex;align-items:flex-end;gap:3px;height:110px;margin-top:8px}
.colunas div{flex:1;background:var(--azul);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.colunas div span{position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--mut)}
.insight{padding:8px 10px;border-left:3px solid var(--azul);background:#1428a022;border-radius:6px;margin:6px 0;font-size:12px}

/* atividade */
.ev{display:grid;grid-template-columns:130px 130px 1fr;gap:10px;padding:8px 6px;border-bottom:1px solid var(--ln);font-size:12px}
.ev .tp{font-weight:700;font-size:10px;letter-spacing:.05em}
.ev .tp.ROTA_CRIADA,.ev .tp.OS_EM_ROTA{color:#7aa2ff} .ev .tp.ENTROU_FILA{color:var(--amarelo)} .ev .tp.SAIU_FILA{color:var(--verde)} .ev .tp.DESIGNADO{color:#c084fc}

#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#16213a;border:1px solid var(--ln);color:#fff;padding:9px 16px;border-radius:10px;display:none;z-index:9999;max-width:80vw}

@media (max-width:1100px){.kpi span{display:none}.lado{width:340px}}
@media (max-width:820px){.rail{width:56px}.rail button span{display:none}.corpo{flex-direction:column}.lado{width:auto;height:45%}.kpis{display:none}}
@media print{.rail,.topbar,.barra{display:none}.tela{border:0}body{background:#fff;color:#000}.cartao{border-color:#ccc;background:#fff}}

/* OpenStreetMap em modo escuro (alternativa sem chave) */
.osm-escuro{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.9) saturate(.4)}

/* ---------- v3: serviço em rota ---------- */
:root{--hoje:#22c55e;--outros:#a855f7}
.bola.g{background:var(--hoje)} .bola.r{background:var(--outros)}
.kpi.verde i{background:var(--hoje);box-shadow:0 0 10px var(--hoje)} .kpi.roxo i{background:var(--outros);box-shadow:0 0 10px var(--outros)}
.mk-os.HOJE .b{background:var(--hoje);color:#03250f}
.mk-os.OUTROS .b{background:var(--outros);color:#fff}
.tag.HOJE{background:#22c55e33;color:#4ade80} .tag.OUTROS{background:#a855f733;color:#d8b4fe}
.zona-ativa.rota{background:#0f5132;border:1px solid var(--hoje)}
.aviso-cos{position:absolute;top:56px;left:62px;right:70px;z-index:500;background:#3b1d0acc;border:1px solid #f97316;color:#fed7aa;border-radius:10px;padding:8px 12px;font-size:12px}
.cont .g{color:#4ade80} .cont .r{color:#d8b4fe}
.hab{display:inline-block;font-size:9px;font-weight:800;padding:0 5px;border-radius:5px;background:#ffffff14;color:var(--mut);margin-left:3px}
.os.alerta{border-left-color:#f97316!important;background:#2a1a0e}
.os .alerta-txt{color:#fdba74}
.hab-linha{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--ln);font-size:12px}
.hab-linha .nm{flex:1}
.hab-linha label{display:flex;align-items:center;gap:3px;font-size:11px;color:var(--mut)}
.trajeto-info{margin:8px 0;padding:8px 10px;border-radius:10px;background:#0f5132;border:1px solid #166534;font-size:12px}
.trajeto-info.sem{background:#2a1a0e;border-color:#9a3412}
.tipo .n .v{color:#ff6b75} .tipo .n .a{color:var(--amarelo)} .tipo .n .g{color:#4ade80} .tipo .n .r{color:#d8b4fe}
.tipo .n{gap:7px;font-weight:700}
.campo input,.campo textarea{width:100%}

/* ---------- v4 ---------- */
.lado{width:46%;max-width:720px;min-width:380px}
.ano{display:flex;align-items:center;gap:6px;margin-left:6px;padding:6px 10px;border-radius:12px;background:var(--samsung);border:1px solid #2a44d8}
.ano span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#c7d2fe}
.ano select{background:transparent;border:0;color:#fff;font-weight:700;font-size:15px;padding:0 2px;cursor:pointer}
.ano select option{background:var(--bg2)}
.sino{position:relative;width:34px;height:34px;padding:0;justify-content:center;border-radius:50%;background:none;border:1px solid var(--ln)}
.sino svg{width:18px;height:18px;fill:var(--mut)}
.sino span{position:absolute;top:-4px;right:-4px;min-width:17px;height:17px;border-radius:9px;background:var(--vermelho);color:#fff;font-size:10px;font-weight:700;display:grid;place-items:center;padding:0 4px}
.sino.tem svg{fill:#fbbf24}
.pop-alertas{position:absolute;top:60px;right:120px;z-index:2000;width:380px;max-height:60vh;overflow:auto;background:var(--card);border:1px solid var(--ln);border-radius:12px;padding:8px;box-shadow:0 12px 30px #000a}
.pop-alertas .al{padding:8px;border-bottom:1px solid var(--ln);font-size:12px}
.pop-alertas .al small{color:var(--mut)}
.sug-bt{width:100%;justify-content:center;margin:4px 0 8px}
.caixa-sug{background:var(--bg2);border:1px solid #2a44d8;border-radius:12px;padding:10px;margin-bottom:10px;font-size:12px}
.caixa-sug pre{white-space:pre-wrap;font:12px/1.5 inherit;margin:0 0 8px;max-height:40vh;overflow:auto}
.caixa-sug .acoes{display:flex;gap:6px;flex-wrap:wrap}
.grade-rel.prod{margin-bottom:14px}
.cartao.largo{grid-column:1/-1}
.tprod{width:100%;border-collapse:collapse;font-size:12px}
.tprod th,.tprod td{padding:6px 8px;border-bottom:1px solid var(--ln);text-align:right;white-space:nowrap}
.tprod th:first-child,.tprod td:first-child{text-align:left}
.tprod th{color:var(--mut);font-weight:600;font-size:11px}
.tprod td.z{color:#334155}
.tprod tr.tot td{font-weight:700;border-top:2px solid var(--ln)}
.tprod td.r{color:#4ade80;font-weight:700} .tprod td.a{color:#7aa2ff;font-weight:700}
.eq{display:grid;grid-template-columns:1fr 70px 60px;gap:6px;padding:5px 0;border-bottom:1px solid var(--ln);font-size:12px}
.eq .ok{color:#4ade80} .eq .atr{color:#fb923c}
[hidden]{display:none!important}
.caixa-sug pre{font-family:inherit;font-size:12px;line-height:1.55}
.titulo small{white-space:nowrap}

/* =================== v6 · DASHBOARD INTERATIVO OPERACIONAL =================== */
:root{--neon:#22d3ee;--glow:0 0 0 1px #3d7bff22,0 10px 30px -12px #000c,0 0 24px -10px #3d7bff66}
body{background:radial-gradient(1200px 600px at 85% -10%,#1428a033,transparent 60%),radial-gradient(900px 500px at -10% 110%,#22d3ee14,transparent 60%),var(--bg)}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.35;
  background-image:linear-gradient(#3d7bff0d 1px,transparent 1px),linear-gradient(90deg,#3d7bff0d 1px,transparent 1px);background-size:44px 44px;
  mask-image:radial-gradient(ellipse at 60% 30%,#000 30%,transparent 80%)}
.app{position:relative;z-index:1}
.rail{background:linear-gradient(180deg,#0b1222,#070b14);overflow-y:auto}
.rail .logo{width:50px;height:50px;background:none;border-radius:0;margin-bottom:10px;filter:drop-shadow(0 0 10px #3d7bff88)}
.rail .logo img{width:50px;height:50px}
.rail button.mod span{font-weight:700;letter-spacing:.06em}
.rail button.mod.ativo{background:linear-gradient(160deg,#1428a0,#0b1a66);box-shadow:inset 0 0 0 1px #3d7bff66,0 0 18px -4px #3d7bffaa}
/* rail v6.5: grupos que expandem/retraem */
.rail{overflow-y:auto;overflow-x:hidden;scrollbar-width:none} .rail::-webkit-scrollbar{display:none}
.rail .grupo{display:flex;flex-direction:column;align-items:center;width:100%}
.rail .grupo > button.mod{position:relative}
.rail .grupo.atual > button.mod:not(.ativo){color:#fff}
.rail .seta{position:absolute;right:3px;top:50%;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-70%) rotate(45deg);opacity:.55;transition:transform .2s}
.rail .grupo.aberto .seta{transform:translateY(-30%) rotate(-135deg)}
.rail .sub{display:flex;flex-direction:column;align-items:center;width:100%;max-height:0;overflow:hidden;opacity:0;transition:max-height .25s ease,opacity .2s,margin .2s;border-left:2px solid #3d7bff44;border-radius:0 0 0 8px}
.rail .grupo.aberto .sub{max-height:420px;opacity:1;margin:2px 0 6px}
.rail .sub button{width:58px;padding:6px 0;font-size:9.5px;margin:1px 0}
.rail .sub button svg{width:18px;height:18px}
.rail .sub button.ativo{background:#3d7bff22;color:#fff;box-shadow:inset 2px 0 0 var(--neon,#3d7bff)}
.topbar{background:linear-gradient(90deg,#0b1222ee,#0c1220cc);backdrop-filter:blur(8px)}
.titulo small{color:var(--neon);letter-spacing:.18em}
.titulo small span{color:var(--mut)}
body.fora-ih .so-ih{display:none!important}
.tela{background:#0d1526cc;backdrop-filter:blur(6px);box-shadow:var(--glow)}
.cartao{background:linear-gradient(180deg,#141f37,#111a2c);box-shadow:var(--glow);position:relative;overflow:hidden}
.cartao::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#3d7bff88,transparent)}
.cartao h3{letter-spacing:.02em}
a.cartao.lk{color:inherit;text-decoration:none;display:block;transition:transform .15s,border-color .15s}
a.cartao.lk:hover{border-color:var(--azul);transform:translateY(-2px)}

/* cabeçalho dos módulos */
.mod-cab{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.mod-cab h2{margin:0;font-size:22px;font-weight:700;background:linear-gradient(90deg,#fff,#7dd3fc);-webkit-background-clip:text;background-clip:text;color:transparent}
/* KPIs dos módulos */
.kpi-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:14px}
.kc{position:relative;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;background:linear-gradient(160deg,#16213a,#0f1729);border:1px solid var(--ln);color:var(--tx);text-decoration:none;overflow:hidden;box-shadow:var(--glow)}
.kc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--c);box-shadow:0 0 14px var(--c)}
.kc::after{content:"";position:absolute;right:-30px;top:-30px;width:90px;height:90px;border-radius:50%;background:var(--c);opacity:.08;filter:blur(8px)}
a.kc:hover{border-color:var(--c);transform:translateY(-2px)} .kc{transition:transform .15s,border-color .15s}
.kc-rot{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--mut)}
.kc-val{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}
.kc-sub{font-size:11.5px;color:var(--mut)} .kc-sub b{color:var(--tx)}
.kc-sub em{font-style:normal;font-weight:700} .kc-sub em.up{color:#4ade80} .kc-sub em.dn{color:#fb7185}
.kc-ir{position:absolute;right:12px;top:10px;color:var(--c);font-size:13px;opacity:.7}
/* colunas empilhadas */
.colunas.emp div{display:flex;flex-direction:column-reverse;background:none;overflow:visible}
.colunas.emp div i{display:block;width:100%;min-height:0}
.colunas.emp div i:last-of-type{border-radius:3px 3px 0 0}
.colunas div span{white-space:nowrap}
.colunas.emp div:nth-child(odd) span{visibility:hidden}
.leg-mini{display:flex;gap:12px;font-size:11px;color:var(--mut);margin-bottom:4px}
.leg-mini span{display:flex;align-items:center;gap:5px} .leg-mini i{width:10px;height:10px;border-radius:3px}
.barras a.lin.lk{color:inherit;text-decoration:none;border-radius:6px;padding:1px 4px;margin:3px -4px}
.barras a.lin.lk:hover{background:#3d7bff1a} .barras a.lin.lk:hover .nm{color:var(--tx)}
.barras .vl.v2{min-width:96px} .barras .lin:has(.v2){grid-template-columns:140px 1fr 100px}
.sub-val{font-size:10.5px;color:var(--mut);text-align:right;margin:-4px 0 4px}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.duo div{background:#0a0f1a;border:1px solid var(--ln);border-radius:10px;padding:10px}
.duo span{display:block;font-size:11px} .duo b{font-size:18px} .duo b.alerta{color:#fb7185}
/* status */
.status-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.st-bloco{background:#0a0f1a;border:1px solid var(--ln);border-radius:12px;padding:10px 12px;border-top:2px solid var(--c)}
.st-cab{display:flex;justify-content:space-between;align-items:baseline;color:var(--tx);text-decoration:none;margin-bottom:6px}
.st-cab span{font-weight:600} .st-cab b{font-size:24px;color:var(--c);text-shadow:0 0 14px var(--c)}
.st-cab:hover span{text-decoration:underline}
.status-grade.so-cab .st-bloco{padding:12px} .status-grade.so-cab{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.st-cos{grid-column:1/-1;justify-self:start}
/* dashboard + IA */
.dash-grade{display:grid;grid-template-columns:1fr 360px;gap:14px;align-items:start}
.dash-grade.so{grid-template-columns:1fr}  /* v7.16: sem o Assistente IA */
@media (max-width:1200px){.dash-grade{grid-template-columns:1fr}}
.ia-box{position:sticky;top:0;display:flex;flex-direction:column;height:calc(100vh - 220px);min-height:420px;border-radius:16px;border:1px solid #3d7bff55;
  background:linear-gradient(180deg,#101a33,#0b1222);box-shadow:0 0 40px -12px #22d3ee66,inset 0 0 0 1px #22d3ee11;overflow:hidden}
.ia-cab{display:flex;gap:10px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--ln)}
.ia-cab small{display:block;color:var(--mut);font-size:11px}
.ia-orb{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#22d3ee 30%,#1428a0 75%);box-shadow:0 0 18px #22d3ee;animation:pulso 3s ease-in-out infinite}
@keyframes pulso{50%{box-shadow:0 0 30px #22d3ee,0 0 60px #3d7bff66}}
.ia-msgs{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}
.ia-m{max-width:92%;padding:9px 11px;border-radius:12px;font-size:12.5px;line-height:1.5}
.ia-m.bot{background:#16213a;border:1px solid var(--ln);align-self:flex-start}
.ia-m.eu{background:linear-gradient(135deg,#1428a0,#2a46d6);align-self:flex-end}
.ia-m.erro{border-color:#ef334088;color:#fecaca}
.ia-m code{background:#0a0f1a;padding:1px 4px;border-radius:4px}
.ia-m .fontes{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding-top:6px;border-top:1px solid var(--ln)}
.ia-m .fontes a{color:#7dd3fc;font-size:11px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pensando{display:flex;gap:4px} .pensando i{width:6px;height:6px;border-radius:50%;background:var(--neon);animation:pisca 1s infinite}
.pensando i:nth-child(2){animation-delay:.2s} .pensando i:nth-child(3){animation-delay:.4s}
@keyframes pisca{50%{opacity:.2}}
.ia-form{display:flex;gap:8px;padding:10px;border-top:1px solid var(--ln)}
.ia-form textarea{flex:1;resize:none} .ia-form.off{opacity:.5;pointer-events:none}

/* =================== v6.1 =================== */
.seg{display:inline-flex;gap:4px;padding:3px;border:1px solid var(--ln);border-radius:12px;background:#0a0f1a;margin:0 0 12px}
.seg button{border:0;background:none;color:var(--mut);padding:5px 12px;border-radius:9px;font-size:12px}
.seg button.ativo{background:#1428a0;color:#fff;box-shadow:inset 0 -2px 0 var(--c,#3d7bff)}
.chip-g{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:99px;font-size:10.5px;font-weight:700;text-decoration:none;
  color:var(--c);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 12%,transparent)}
.chip-g:hover{background:color-mix(in srgb,var(--c) 28%,transparent)}
.st-chips{display:flex;gap:6px;margin:-2px 0 8px}
.barras .st-lin{grid-template-columns:minmax(110px,1fr) 1.2fr 42px;row-gap:2px}
.barras .st-lin a.nm{color:var(--mut);text-decoration:none} .barras .st-lin a.nm:hover{color:var(--tx);text-decoration:underline}
.st-lin .sub-g{grid-column:1/-1;display:flex;gap:5px;justify-content:flex-end;margin-top:-2px}
/* falhas de processo */
.falhas-bt{position:fixed;right:18px;bottom:16px;z-index:900;display:flex;align-items:center;gap:6px;padding:6px 11px;border-radius:99px;
  background:#0c1220d9;border:1px solid var(--ln);color:var(--mut);font-size:12px;backdrop-filter:blur(6px);opacity:.75;transition:opacity .2s}
.falhas-bt:hover{opacity:1} .falhas-bt svg{width:15px;height:15px;fill:currentColor}
.falhas-bt.tem{color:#fbbf24;border-color:#fbbf2455} .falhas-bt.tem-alta{color:#fb7185;border-color:#fb718566;box-shadow:0 0 14px -4px #fb7185}
.falhas-painel{position:fixed;right:18px;bottom:58px;z-index:901;width:420px;max-width:calc(100vw - 36px);max-height:70vh;overflow:auto;
  background:linear-gradient(180deg,#121c33,#0b1222);border:1px solid #3d7bff44;border-radius:16px;padding:12px 14px;box-shadow:0 20px 50px -10px #000e,0 0 30px -12px #3d7bff88}
.fp-cab{display:flex;align-items:center;gap:8px} .fp-sub{font-size:11px;margin:4px 0 10px}
.fl{border-left:3px solid #64748b;background:#0a0f1a;border-radius:8px;padding:8px 10px;margin:8px 0;font-size:12px}
.fl.alta{border-color:#ef3340} .fl.media{border-color:#ffc629} .fl.baixa{border-color:#22d3ee} .fl.off{opacity:.5}
.fl-cab{display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.fl-n,.fl-m{font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;padding:1px 6px;border-radius:5px;background:#ffffff10;color:var(--mut)}
.fl.alta .fl-n{color:#fb7185} .fl.media .fl-n{color:#fbbf24}
.fl-d{color:var(--mut);margin-top:3px} .fl-s{margin-top:4px;color:#a5f3fc}
.fl-l{display:inline-block;margin-top:5px;color:#7dd3fc;text-decoration:none;font-size:11.5px}
.acoes-x{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}
/* XML */
.xml-box{margin-bottom:14px} .xml-box summary{cursor:pointer;list-style:none} .xml-box summary h3{margin:0;display:inline}
.xml-box summary::-webkit-details-marker{display:none} .xml-box[open] summary{margin-bottom:10px}
.xml-grade{display:grid;grid-template-columns:minmax(300px,1fr) 1.6fr;gap:16px} @media(max-width:1100px){.xml-grade{grid-template-columns:1fr}}
.xml-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:130px;border:2px dashed #3d7bff66;border-radius:14px;background:#0a0f1a;text-align:center}
.xml-drop.sobre{border-color:var(--neon);background:#22d3ee12}
.xml-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.chk{flex-direction:row!important;align-items:center;gap:6px!important;color:var(--tx)!important}
#xmlTab td{vertical-align:top} #xmlTab tr.x-erro td{color:#fecaca} .alerta{color:#fb7185}
.bt.mini{padding:3px 8px;font-size:11px;border-radius:8px}
/* GSPN */
.gspn-tag{display:inline-block;padding:2px 8px;border-radius:6px;background:#1428a0;font-size:11px;letter-spacing:.1em;margin-right:6px;box-shadow:0 0 12px #3d7bff88}
.mini-k .kc-val{font-size:22px}
.breves{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.breve{position:relative;display:flex;flex-direction:column;gap:2px;padding:12px;border-radius:12px;border:1px dashed #3d7bff55;background:#0a0f1a;opacity:.8}
.breve span{font-size:20px} .breve small{color:var(--mut)} .breve em{position:absolute;right:10px;top:10px;font-style:normal;font-size:10px;color:var(--neon);letter-spacing:.08em;text-transform:uppercase}
/* aprendizado */
.ap-grade{display:grid;grid-template-columns:1fr 1.4fr;gap:18px} @media(max-width:1100px){.ap-grade{grid-template-columns:1fr}}
.tempo{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 0;border-bottom:1px solid var(--ln);font-size:12px}
.tempo span{flex:1;color:var(--mut)} .tempo b{color:var(--c);font-size:13px} .tempo b small{color:var(--mut);font-weight:400;margin-left:4px;font-size:10px}
td.alerta{font-weight:700}
/* upgrades */
.up-bt{border-radius:99px;background:linear-gradient(135deg,#1428a0,#6d28d9);border:0;box-shadow:0 0 18px -6px #a855f7}
.up-bt span:not(:empty){background:#fff;color:#1428a0;border-radius:99px;padding:0 6px;font-size:11px;font-weight:700}
.up-painel{top:90px;bottom:auto;max-height:calc(100vh - 120px)} .up-seg{margin-top:10px}
.up-form{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}
.feito{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--ln);font-size:12px}
.feito .v{flex:none;padding:2px 7px;border-radius:6px;background:#22c55e22;color:#4ade80;font-weight:700;font-size:11px}
.feito small{display:block}

/* =================== v6.2 · usuários =================== */
.usuario-chip{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:99px;background:#0a0f1a;border:1px solid var(--ln);text-align:left}
.usuario-chip b{display:block;font-size:12px;line-height:1.1} .usuario-chip small{display:block;font-size:10px;color:var(--mut)}
.av{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;flex:none;
  background:linear-gradient(135deg,#1428a0,#22d3ee);box-shadow:0 0 10px -2px #22d3ee88}
.sair{padding:4px 8px}
.papel{display:inline-block;padding:1px 8px;border-radius:99px;font-size:10.5px;font-weight:700;letter-spacing:.04em}
.p-programador{background:#a855f722;color:#d8b4fe;border:1px solid #a855f755} .p-administrador{background:#3d7bff22;color:#93c5fd;border:1px solid #3d7bff55}
.p-gerente{background:#22c55e22;color:#86efac;border:1px solid #22c55e55} .p-auxiliar{background:#64748b22;color:#cbd5e1;border:1px solid #64748b55}
.conta{background:#0a0f1a;border:1px solid var(--ln);border-radius:10px;padding:10px;font-size:12px;line-height:1.6}
.form-u{display:flex;flex-direction:column;gap:7px;margin-top:8px} .form-u .linha2{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.usu{border:1px solid var(--ln);border-radius:10px;padding:8px 10px;margin:6px 0;background:#0a0f1a;font-size:12px}
.usu.off{opacity:.55} .usu-l{display:flex;gap:9px;align-items:flex-start}
.usu-ed summary{cursor:pointer;color:#7dd3fc;font-size:11.5px;margin-top:6px}
button.perigo{border-color:#ef334066;color:#fca5a5} button.perigo:hover{background:#ef334022}
.aviso-admin{margin:12px 0;padding:9px 11px;border-radius:10px;background:#ef334018;border:1px solid #ef334055;font-size:12px}
.os-vinc{margin-top:5px;font-size:11.5px} .os-vinc a{color:#7dd3fc;text-decoration:none;margin-right:6px} .os-vinc a small{color:var(--mut)}

/* =================== v6.3 · rotear por texto =================== */
.rt-box{background:#0a0f1a;border:1px solid #3d7bff44;border-radius:12px;padding:10px 12px;margin:12px 0}
.rt-box summary{cursor:pointer;font-weight:600} .rt-box textarea{width:100%;margin-top:8px;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.rt-cab{margin:8px 0;font-size:12.5px}
.rt-grupo{border:1px solid var(--ln);border-radius:10px;padding:8px;margin:8px 0;background:#0c1426}
.rt-tec{display:flex;gap:6px;align-items:center;margin-bottom:6px;font-size:12px} .rt-tec select{flex:1}
.rt-os{display:flex;gap:6px;align-items:baseline;font-size:12px;padding:3px 0;border-bottom:1px dashed #1f2b45}
.rt-os em{margin-left:auto;font-style:normal;font-size:11px} .rt-os.ok em{color:#4ade80} .rt-os.nao{opacity:.75} .rt-os.nao em{color:#fbbf24}
.rt-msg{font-size:10.5px;color:var(--mut);margin-top:6px}
.rt-feita{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:6px 0;font-size:12px}
.insight.ok{border-left-color:#22c55e;background:#22c55e14} .insight.erro{border-left-color:#ef3340;background:#ef334014}
.vinc-conf .insight{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

.rel-g{display:inline-flex;gap:6px;align-items:center;margin-right:8px} .rel-g input{padding:4px 7px;font-size:12px}
/* mini bots */
.bot-ic{font-size:15px;line-height:1}
.fl-q{font-size:11px;font-weight:700;padding:0 7px;border-radius:99px;background:#3d7bff33;color:#cfe0ff}
.fl-r{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:5px;font-size:11px}
.fl.st-andamento{background:#0b1a33} .fl.st-feita,.fl.st-ignorada{opacity:.55}
.mural{display:flex;gap:8px;padding:5px 2px;border-bottom:1px solid var(--ln);font-size:12px} .mural small{color:var(--mut);white-space:nowrap;font-variant-numeric:tabular-nums}
.mural.ok span{color:#86efac} .mural.erro span{color:#fda4af}
.bot-seg{margin-bottom:4px}
button.mini.ok{border-color:#22c55e88;color:#86efac} button.mini.nao{border-color:#ef334088;color:#fda4af}
/* modal de upgrades */
.modal-fundo{position:fixed;inset:0;z-index:2000;background:#020611cc;backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px}
.modal-fundo[hidden]{display:none}
.modal{width:560px;max-width:100%;max-height:85vh;overflow:auto;background:var(--card);border:1px solid var(--ln);border-radius:16px;padding:16px;box-shadow:0 20px 60px #000c}
.modal .up-item{background:var(--bg2)}
/* GSPN e laboratório */
.rolagem{max-height:420px;overflow:auto}
.ok-dot,.erro-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--verde);box-shadow:0 0 8px var(--verde);margin-right:3px}
.erro-dot{background:var(--vermelho);box-shadow:0 0 8px var(--vermelho)}
.tab td.alerta{color:#fb7185;font-weight:700}
.busca{width:100%;margin-bottom:8px}
.rolagem-x{overflow-x:auto}
/* v6.6 */
.modal.largo{width:860px}
.credito-box{margin-bottom:14px}
.cred-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px} .cred-cab h3{margin:0}
.recolhe>summary{cursor:pointer;list-style:none} .recolhe>summary::-webkit-details-marker{display:none}
.recolhe>summary h3{display:inline-flex;gap:6px;align-items:baseline;margin:0}
.recolhe>summary h3::before{content:"▸";color:var(--mut);transition:transform .2s;display:inline-block}
.recolhe[open]>summary h3::before{transform:rotate(90deg)}
.recolhe[open]>summary{margin-bottom:10px}
.recolhe.tem-falha{border-color:#ef334066}
#gspnBuffer{margin:14px 0}
.tab.clic tbody tr{cursor:pointer} .tab.clic tbody tr:hover td{background:#3d7bff14}
.buf-form{display:flex;flex-direction:column;gap:10px}
.buf-form label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--mut)}
.buf-lin{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.buf-pecas{border:1px solid var(--ln);border-radius:10px;padding:8px;background:var(--bg2)}
.buf-cab,.buf-item{display:grid;grid-template-columns:1fr 90px 34px;gap:6px;align-items:center}
.buf-cab{font-size:11px;color:var(--mut);margin-bottom:4px} .buf-item{margin-bottom:6px}
.buf-res{padding:10px 12px;border-radius:10px;background:var(--bg2);border-left:3px solid var(--azul);margin-bottom:10px}
.buf-res.ok,.buf-res.ok_parcial{border-color:var(--verde)} .buf-res.falha{border-color:var(--vermelho)}
.passos div{font-size:12px;padding:3px 0;border-bottom:1px solid var(--ln)} .passos .erro{color:#fda4af} .passos small{color:var(--mut)}
.tprod tbody tr:not(.tot) td:first-child{cursor:pointer;color:#7dd3fc;text-decoration:underline dotted}
.form-ft{border:1px solid var(--ln);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:var(--bg2)} .form-ft summary{cursor:pointer}
.grade-fotos{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-top:8px}
.grade-fotos a{display:flex;flex-direction:column;gap:3px;text-decoration:none;color:var(--mut);font-size:11px}
.grade-fotos img{width:100%;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--ln);background:#0a0f1a}
@media (max-width:700px){.buf-lin{grid-template-columns:1fr}}
.robo-st{font-size:12px;padding:3px 9px;border-radius:99px;background:#ffffff10;color:var(--mut)} .robo-st.ok{color:#86efac;background:#22c55e1a} .robo-st.off{color:#fda4af;background:#ef33401a}
.buf-passos{margin:8px 0 10px 18px;padding:0;font-size:13px;line-height:1.7} .buf-nome{font-family:monospace;font-weight:700;background:#3d7bff22;padding:2px 8px;border-radius:6px;color:#cfe0ff} .buf-res.aguardando_gspn,.buf-res.processando{border-color:#ffc629}
/* v6.8 */
.tag-tipo{display:inline-block;padding:1px 7px;border-radius:9px;font-size:.75em;font-weight:700}
.tag-tipo.lp{background:#1e3a8a33;color:#60a5fa;border:1px solid #60a5fa66}
.tag-tipo.ow{background:#7c2d1233;color:#fb923c;border:1px solid #fb923c66}
.tri-est{color:#facc15;font-weight:700;cursor:help}
.buf-nome{user-select:all;-webkit-user-select:all;cursor:text}
/* v6.9 fotos + ação OW */
.grade-fotos .foto{position:relative}
.grade-fotos .foto .baixar{position:absolute;top:4px;right:4px;background:#0b1220cc;color:#fff;border-radius:6px;padding:2px 7px;font-size:14px}
.grade-fotos .foto .baixar:hover{background:#3d7bff}
.ow-acao{border:1px solid #fb923c66;background:#7c2d1222;border-radius:10px;padding:8px;margin:8px 0}
.ow-acao textarea{width:100%;margin:6px 0;box-sizing:border-box}
.ow-res div{font-size:12px;margin-top:2px}
.graf-ped{display:flex;gap:8px;align-items:flex-end;height:170px;margin:10px 0 4px}
.gp-dia{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}
.gp-barras{flex:1;display:flex;gap:3px;align-items:flex-end;width:100%;justify-content:center}
.gp-b{width:42%;min-height:2px;border-radius:4px 4px 0 0;position:relative}
.gp-b span{position:absolute;top:-16px;left:0;right:0;text-align:center;font-size:11px;font-weight:700}
.gp-dia small{font-size:10px;color:var(--mut);margin-top:3px}
.foto-erro{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px dashed #fb923c88;border-radius:8px;color:#fb923c;font-size:12px;text-align:center}
.xml-pv summary{cursor:pointer;font-size:12px;color:var(--mut);margin-top:4px}
.xml-pv table{font-size:12px;margin-top:4px}
.xml-vinc{font-size:12px;margin-top:4px;line-height:1.5}

/* v6.14 · camadas extras do IH (não prontas para rota) */
:root{--ex-ag:#38bdf8;--ex-rc:#f97316;--ex-co:#94a3b8}
.bola.ex-ag{background:var(--ex-ag)} .bola.ex-rc{background:var(--ex-rc)} .bola.ex-co{background:var(--ex-co)}
.ferramentas button[data-extra]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;opacity:.55}
.ferramentas button[data-extra] small{font-size:8.5px;line-height:1;color:var(--mut)}
.ferramentas button[data-extra].ativo{opacity:1;outline:1px solid #ffffff40}
.ferramentas button[data-extra].carregando{animation:pisca 1s infinite}
@keyframes pisca{50%{opacity:.3}}
.mk-os.AGPECAS .b{background:var(--ex-ag);color:#03202e}
.mk-os.RECONHECIDO .b{background:var(--ex-rc);color:#2a1100}
.mk-os.COLETADO .b{background:var(--ex-co);color:#0b1220}
.tag.AGPECAS{background:var(--ex-ag);color:#03202e} .tag.RECONHECIDO{background:var(--ex-rc);color:#2a1100} .tag.COLETADO{background:var(--ex-co);color:#0b1220}
.aviso-extra{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:600;background:#0c1220ee;border:1px solid var(--ln);border-radius:10px;padding:6px 12px;font-size:12px;color:var(--txt,#e5e7eb)}
.gerar-sv{margin-bottom:12px;border-left:3px solid var(--azul)}
.gerar-sv .barra{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.sv-ok{color:#22c55e} .sv-erro{color:#ef3340}
.chip-sv{display:inline-block;margin:4px 4px 0 0;padding:2px 8px;border-radius:999px;background:#ffffff10;font-size:12px}
.chip-sv.erro{background:#ef334022}

/* =====================================================================
   v7.0 · IH com mapa cheio + painéis flutuantes (protótipo aprovado 05/11)
   ===================================================================== */
:root{--vidro:#0d1424e8;--ln2:#2a3a5c;--sombra-v:0 10px 30px #000a,0 0 0 1px #ffffff0d inset}
.vidro{background:var(--vidro);backdrop-filter:blur(10px);border:1px solid var(--ln);border-radius:14px;box-shadow:var(--sombra-v)}
body:not(.fora-ih) .corpo:not(.cheia){position:relative;padding:0;gap:0}
body:not(.fora-ih) .corpo:not(.cheia) .mapa-card{position:absolute;inset:0;border:0;border-radius:0}
.topbar .titulo b{font-size:15px}
/* filas (KPIs) no topo do mapa */
.filas-flut{position:absolute;top:12px;left:12px;z-index:620;display:flex;align-items:stretch;gap:6px;padding:6px 8px;max-width:calc(100% - 430px);overflow-x:auto}
.filas-flut .grp{display:flex;flex-direction:column;gap:3px}
.filas-flut .grp>small{font-size:8.5px;letter-spacing:.14em;color:var(--mut);padding:0 6px;white-space:nowrap}
.filas-flut .grp>div{display:flex;gap:4px}
.filas-flut .div-v{width:1px;background:var(--ln);margin:2px 2px}
.filas-flut .kpi{background:none;border:1px solid transparent;padding:4px 10px 4px 8px;border-radius:10px;gap:8px;display:flex;align-items:center;text-align:left;cursor:pointer}
.filas-flut .kpi b{font-size:19px;line-height:1;font-variant-numeric:tabular-nums}
.filas-flut .kpi span{font-size:10.5px;line-height:1.15;white-space:nowrap}
.filas-flut .kpi:not(.desligado){background:#ffffff0d;border-color:var(--ln2)}
.filas-flut .kpi.desligado{opacity:.42}
.filas-flut .kpi.neutro{cursor:default;align-self:center}
.filas-flut .kpi.extra i{width:10px;height:10px;border-radius:50%}
.filas-flut .bt-rota{align-self:center;margin-left:4px;white-space:nowrap}
/* busca + filtros */
.filtros-mapa{top:86px;left:12px;padding:6px 8px;gap:8px;z-index:610}
.busca-mapa{display:flex;align-items:center;gap:6px;background:var(--bg2);border:1px solid var(--ln);border-radius:9px;padding:0 8px;width:260px}
.busca-mapa input{background:none;border:0;outline:0;padding:6px 0;width:100%}
.busca-mapa kbd{font-size:10px;color:var(--mut);border:1px solid var(--ln2);border-radius:5px;padding:0 5px}
.filtros-mapa select{padding:5px 8px}
/* lista à esquerda */
.lista-mapa{position:absolute;top:140px;left:12px;bottom:62px;width:320px;z-index:600;display:flex;flex-direction:column;overflow:hidden;transition:transform .25s}
.lista-mapa.fechada{transform:translateX(-340px)}
.lm-cab{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--ln)}
.lm-cab b{font-size:11.5px;letter-spacing:.08em} .lm-cab .qt{background:#ffffff12;border-radius:999px;padding:0 8px;font-size:11px}
.lm-cab select{margin-left:auto;font-size:11px;padding:3px 6px}
.lm-corpo{overflow:auto;flex:1;padding:4px 6px 8px}
.lm-grupo{position:sticky;top:0;background:#0d1424;padding:8px 6px 4px;font-size:10px;letter-spacing:.12em;color:var(--mut);display:flex;justify-content:space-between;z-index:1}
.lm-item{display:grid;grid-template-columns:4px 1fr auto;gap:10px;padding:7px 8px;border-radius:10px;cursor:pointer;align-items:center}
.lm-item:hover,.lm-item.sel{background:#ffffff0b} .lm-item.sel{outline:1px solid var(--azul)}
.lm-item .cor{width:4px;height:100%;min-height:30px;border-radius:3px}
.lm-item .l1{display:flex;gap:6px;align-items:center;font-weight:600}
.lm-item .l2{font-size:11px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:205px}
.lm-item .tp{font-size:9.5px;font-weight:700;border-radius:5px;padding:0 5px;background:#ffffff14}
.idade{font-size:11px;font-weight:700;border-radius:7px;padding:2px 7px;text-align:center;min-width:42px}
.idade.ok{background:#22c55e1f;color:#4ade80} .idade.at{background:#ffc6291f;color:#ffd666} .idade.cr{background:#ef33402a;color:#ff6b77}
/* rodapé do mapa: lista · camadas · legenda */
.rodape-mapa{position:absolute;left:12px;bottom:12px;z-index:600;display:flex;gap:8px;align-items:center}
.bt-lista{padding:8px 12px;border-radius:11px}
.mapa-card .ferramentas{position:static;flex-direction:row;padding:4px;border-radius:11px}
.mapa-card .ferramentas button{width:32px;height:32px}
.mapa-card .ferramentas hr{border:0;border-left:1px solid var(--ln);margin:2px 2px}
.ferramentas button[data-camada="pronta"],.ferramentas button[data-camada="agend"],.ferramentas button[data-camada="hoje"],
.ferramentas button[data-camada="outros"],.ferramentas button[data-extra],.ferramentas hr{display:none!important}
.mapa-card .legenda{position:static;padding:7px 12px;border-radius:11px}
.legenda>span:has(.bola.v),.legenda>span:has(.bola.a),.legenda>span:has(.bola.g),.legenda>span:has(.bola.r){display:none}
.leg-idade{display:inline-block;width:10px;height:10px;border-radius:50%}
/* aviso das camadas extras */
.mapa-card .aviso-extra{top:140px;padding:7px 14px;border-radius:11px}
/* lateral flutuante (Painel / Rotear / Frota / Ajustes) */
body:not(.fora-ih) .corpo:not(.cheia) .lado{position:absolute;top:12px;right:12px;bottom:12px;width:380px;min-width:0;max-width:none;z-index:640;
  background:var(--vidro);backdrop-filter:blur(10px);box-shadow:var(--sombra-v);transition:transform .25s}
body:not(.fora-ih) .corpo:not(.cheia).v-plan .lado{width:560px}
body:not(.fora-ih) .corpo:not(.cheia).lado-off .lado{transform:translateX(calc(100% + 24px))}
.bt-lado{position:absolute;top:50%;right:398px;z-index:650;width:22px;height:54px;padding:0;border-radius:9px 0 0 9px;justify-content:center;transition:right .25s}
.corpo.v-plan .bt-lado{right:578px}
.corpo.lado-off .bt-lado{right:12px;border-radius:9px}
.corpo.cheia .bt-lado{display:none}
/* zoom acompanha a lateral */
.mapa-card .leaflet-right{right:396px;transition:right .25s}
.corpo.v-plan .mapa-card .leaflet-right{right:576px}
.corpo.lado-off .mapa-card .leaflet-right{right:0}
.corpo.det-on .mapa-card .leaflet-right{right:396px}
.corpo.rota-on .mapa-card .leaflet-right{right:576px}
.corpo.det-on .lado,.corpo.det-on .bt-lado,.corpo.rota-on .lado,.corpo.rota-on .bt-lado{display:none}
.corpo.det-on .filas-flut{max-width:calc(100% - 420px)}
.corpo.rota-on .filas-flut{max-width:calc(100% - 600px)}
/* detalhe da OS e rota (direita) */
.det-os,.rota-flut{position:absolute;top:12px;right:12px;bottom:12px;width:380px;z-index:660;display:flex;flex-direction:column;overflow:hidden}
.rota-flut{width:560px}
.det-os[hidden],.rota-flut[hidden]{display:none}
.det-cab{padding:14px 16px 12px;border-bottom:1px solid var(--ln)}
.det-cab .x{float:right;background:none;border:0;color:var(--mut);font-size:18px;line-height:1;padding:0 2px}
.det-cab h2{margin:0 0 4px;font-size:18px} .det-cab .sub{color:var(--mut);font-size:12px}
.det-cab .tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.det-cab .tags .tg{font-size:11px;font-weight:600;border-radius:999px;padding:2px 9px;background:#ffffff12}
.det-corpo{overflow:auto;padding:12px 16px;flex:1}
.det-campo{display:grid;grid-template-columns:92px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed #ffffff0f;font-size:12.5px}
.det-campo>span{color:var(--mut)}
.det-sug{margin:12px 0;padding:10px 12px;border-radius:11px;background:#3d7bff14;border:1px solid #3d7bff40;font-size:12.5px}
.det-linha{margin:14px 0 4px;font-size:10px;letter-spacing:.12em;color:var(--mut)}
.det-passo{display:flex;gap:10px;font-size:12px;padding:3px 0}
.det-passo i{width:8px;height:8px;border-radius:50%;background:var(--ln2);margin-top:5px;flex:none}
.det-passo.feito i{background:var(--hoje)}
.det-acoes{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px;border-top:1px solid var(--ln)}
.det-acoes button,.det-acoes a{justify-content:center;font-size:12px}
.det-acoes .pri{grid-column:1/-1}
.det-end{display:flex;gap:6px;margin-top:6px}.det-end input{flex:1}
/* marcadores: anel de idade */
.mk-os .b{position:relative}
.mk-os.at .b::after,.mk-os.cr .b::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid #ffc629aa}
.mk-os.cr .b::after{border-color:#ef3340;animation:pulsar 1.6s infinite}
.mk-os.sel .b{transform:scale(1.3);box-shadow:0 0 0 3px #fff,0 4px 14px #000}
@keyframes pulsar{0%{transform:scale(.9);opacity:1}100%{transform:scale(1.35);opacity:0}}
/* rota por texto (painel flutuante) */
.rota-flut .rt-box{margin-bottom:10px}
.rota-flut textarea{width:100%;font:12px/1.4 Consolas,monospace}
.rt-sug{white-space:pre-wrap;font:12px/1.4 Consolas,monospace;background:var(--bg2);border:1px solid var(--ln);border-radius:9px;padding:8px;max-height:260px;overflow:auto}
.rt-aux{font-size:11px;color:#c7d2fe;background:#3d7bff22;border-radius:999px;padding:1px 8px;margin-left:6px}
.rota-flut .rt-os{flex-wrap:wrap}
.rt-os .det{display:block;flex-basis:100%;font-size:11px;color:var(--mut)}
.rt-enc{margin:10px 0;padding:10px 12px;border-radius:11px;background:#22c55e12;border:1px solid #22c55e44}
.rt-enc h5{margin:0 0 6px;font-size:12px}
.rt-enc .lin{font-size:12px;padding:2px 0}
.rt-enc .pecas{color:#7dd3fc}
.rt-aut{margin-top:10px;padding:10px 12px;border-radius:11px;border:1px solid var(--azul);background:#3d7bff14}
.rt-aut label{display:flex;gap:6px;align-items:center;font-size:12px;margin:4px 0}
@media (max-width:1500px){.filas-flut .kpi{padding:4px 7px}.filas-flut .kpi b{font-size:17px}.lista-mapa{width:290px}.busca-mapa{width:210px}}
.veic-chip{font-size:12px;color:var(--mut);padding:0 4px;white-space:nowrap}.veic-chip b{color:var(--tx)}
.filtros-mapa .bt-rota{padding:6px 12px;white-space:nowrap}
.filas-flut{max-width:calc(100% - 410px)}
.aviso-extra a{color:#8fb0ff}
@media (max-width:1600px){.filas-flut .kpi span{font-size:9.5px}.filas-flut .kpi b{font-size:16px}.filas-flut .kpi{padding:3px 6px;gap:6px}}
.det-campo>div{min-width:0}.det-end input{min-width:0}

/* ===================== v7.14 · MESA IH (formato "desk") ===================== */
.mesa{margin:12px 14px 0;border:1px solid var(--ln);border-top:3px solid var(--vermelho);border-radius:var(--raio);background:linear-gradient(180deg,#0b1222,#0a101d);padding:10px 12px 8px;display:none}
body.v-mesa .mesa{display:block}
.mesa-cab,.rede-cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.mesa-logo{width:34px;height:34px;border-radius:9px;background:var(--vermelho);display:grid;place-items:center;font-weight:800;color:#fff;flex:none}
.mesa-logo.cl{background:#f97316}
.mesa-tit b{font-size:17px;letter-spacing:.04em} .mesa-tit small{display:block;font:10px/1.3 Consolas,monospace;color:#f87171}
.mesa-dia{flex:1;min-width:160px;display:flex;align-items:center;gap:8px;font:11px Consolas,monospace;color:var(--amarelo)}
.mesa-dia .trilho{flex:1;height:8px;border-radius:6px;background:#1b2438;overflow:hidden}
.mesa-dia .trilho i{display:block;height:100%;width:0;background:repeating-linear-gradient(135deg,#ffc629 0 8px,#d9a514 8px 16px);transition:width .6s}
.seg{display:flex;border:1px solid var(--ln);border-radius:10px;overflow:hidden}
.seg button{border:0;border-radius:0;background:transparent;padding:5px 12px;color:var(--mut)} .seg button.ativo{background:var(--samsung);color:#fff}
.mesa-relogio{font:600 17px Consolas,monospace;border:1px solid var(--ln);border-radius:9px;padding:3px 10px;background:#070b14}
.mesa-cards{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px;margin-top:10px}
.mesa.recolhida .mesa-cards,.mesa.recolhida .mesa-rodape{display:none}
.mc{border:1px solid var(--ln);border-left:3px solid var(--c,#3d7bff);border-radius:10px;background:#0d1526;padding:7px 9px;cursor:pointer;min-width:0;text-align:left;display:block;width:100%}
.mc:hover{border-color:var(--c,#3d7bff)}
.mc .t{display:flex;align-items:center;gap:6px} .mc .t b{font-size:13px;letter-spacing:.03em;color:var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .dono{margin-left:auto;font:10px Consolas,monospace;padding:1px 6px;border-radius:5px;background:var(--c);color:#06101f;white-space:nowrap}
.mc .s{font:10.5px Consolas,monospace;color:var(--mut);margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mc .n{font:600 20px Consolas,monospace;color:var(--tx)}
.mc .bar{height:3px;border-radius:3px;background:#1b2438;margin:4px 0} .mc .bar i{display:block;height:100%;background:var(--c);border-radius:3px}
.mc .p{display:flex;justify-content:space-between;font:10px Consolas,monospace;color:var(--mut)} .mc .p .er{color:var(--vermelho)} .mc .p .okk{color:var(--verde)}
.mesa-rodape{display:flex;gap:12px;align-items:center;margin-top:8px}
.mesa-linha{flex:0 0 38%;height:26px;display:flex;align-items:flex-end;gap:2px;border-bottom:1px solid var(--ln);position:relative}
.mesa-linha i{flex:1;background:#3d7bff66;border-radius:2px 2px 0 0;min-height:2px} .mesa-linha i.agora{background:var(--amarelo)}
.mesa-log{flex:1;font:10.5px Consolas,monospace;color:var(--mut);white-space:nowrap;overflow:hidden;display:flex;gap:16px}
.mesa-log span b{color:var(--neon,#22d3ee);font-weight:400;margin-right:4px}
@media (max-width:1400px){.mesa-cards{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:760px){.mesa-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.mesa-linha{display:none}}

/* ===================== v7.14 · REDE DO CLAUDIO ===================== */
.rede{border:1px solid var(--ln);border-top:3px solid #f97316;border-radius:var(--raio);background:linear-gradient(180deg,#0b1222,#0a101d);padding:10px 12px;margin-bottom:14px}
.rede-res{font:11px Consolas,monospace;color:var(--amarelo)}
.rede-corpo{display:flex;gap:12px;margin-top:10px}
.rede-palco{position:relative;flex:1;height:440px;border:1px solid var(--ln);border-radius:12px;background:radial-gradient(circle at 50% 50%,#f9731614,transparent 55%),#070b14;overflow:hidden}
.rede-palco svg{position:absolute;inset:0;width:100%;height:100%}
.rede-palco path{fill:none;stroke-linecap:round}
.rede-palco path.vivo{stroke-dasharray:6 10;animation:fluxo 1.6s linear infinite}
@keyframes fluxo{to{stroke-dashoffset:-32}}
.rn{position:absolute;transform:translate(-50%,-50%);border:1px solid var(--c,#22d3ee);border-radius:10px;background:#0d1526ee;padding:5px 9px;min-width:118px;box-shadow:0 0 18px -8px var(--c)}
.rn b{font-size:12px;color:var(--c)} .rn small{display:block;font:10px Consolas,monospace;color:var(--mut)}
.rn .k{font:10px Consolas,monospace;color:var(--tx)} .rn .k .er{color:var(--vermelho)} .rn .k .okk{color:var(--verde)}
.rn.centro{--c:#f97316;min-width:150px;text-align:center;padding:10px 12px;border-width:2px}
.rn.centro .av{width:44px;height:44px;margin:0 auto 4px;border-radius:12px;background:#f97316;display:grid;place-items:center;font-weight:800;font-size:18px;color:#fff;box-shadow:0 0 24px #f9731688}
.rn.sat{--c:#a855f7;min-width:0;padding:2px 7px;border-radius:7px;font:10px Consolas,monospace;color:#d8b4fe}
.rede-log{width:300px;border:1px solid var(--ln);border-radius:12px;background:#070b14;padding:8px 10px;font:10.5px Consolas,monospace;overflow:auto;max-height:440px}
.rede-log small{color:var(--mut);letter-spacing:.1em} .rede-log div div{padding:3px 0;border-bottom:1px dashed #1f2b45;color:var(--mut)}
.rede-log b{color:#22d3ee;font-weight:400} .rede-log .er{color:var(--vermelho)} .rede-log .okk{color:var(--verde)}
@media (max-width:1000px){.rede-corpo{flex-direction:column}.rede-log{width:auto;max-height:220px}.rede-palco{height:520px}}

/* v7.16 · peças não lançadas */
.nl-box .kpi-grade{margin:10px 0}.nl-k{cursor:pointer;text-align:left;font:inherit;color:inherit}
.nl-lista{margin-top:10px}.tab-rolar{max-height:420px;overflow:auto}.tab td.vermelho{color:#ef3340;font-weight:700}

/* ===================== v7.16 · MESA DE RELATÓRIOS IH (visual "desk", igual à Rede do Claudio) ===================== */
.rel-mesa{display:block!important;margin:0 0 14px;border-top-color:#22d3ee}
.rel-mesa .mesa-logo{background:#22d3ee;color:#06101f}
.rel-mesa .mesa-tit small{color:#67e8f9}
.rel-mesa .mesa-cards{grid-template-columns:repeat(5,minmax(0,1fr))}
.rel-mesa .mc{background:linear-gradient(180deg,#0d1526,#0a1120);box-shadow:0 0 18px -12px var(--c)}
.rel-mesa .mc:hover{box-shadow:0 0 22px -8px var(--c);transform:translateY(-1px)}
.tela[data-t="rel"]{background:radial-gradient(1200px 400px at 50% -100px,#22d3ee10,transparent)}
.tela[data-t="rel"] .cartao{border-color:#1f2b45;background:linear-gradient(180deg,#0b1222,#0a101d);box-shadow:inset 0 1px 0 #22d3ee22}
.tela[data-t="rel"] .cartao h3{font-family:Consolas,monospace;letter-spacing:.05em;text-transform:uppercase;font-size:13px;color:#e2e8f0}
.tela[data-t="rel"] details.cartao{border-left:3px solid #22d3ee55}
.tela[data-t="rel"] details.cartao[open]{border-left-color:#22d3ee;box-shadow:0 0 24px -14px #22d3ee}
@media (max-width:1400px){.rel-mesa .mesa-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.rel-mesa .mesa-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ===================== v7.17 · ESTOQUE DESK (3D, neon) ===================== */
.est-desk{border:1px solid #1f2b45;border-top:3px solid #84cc16;border-radius:var(--raio);background:radial-gradient(900px 380px at 50% 40%,#22d3ee14,transparent),linear-gradient(180deg,#070c18,#050913);padding:10px 12px;margin-bottom:14px;overflow:hidden}
.ed-top{display:flex;align-items:center;gap:12px}
.ed-logo{width:34px;height:34px;border-radius:9px;background:#84cc16;color:#06101f;display:grid;place-items:center;font-weight:800}
.ed-top b{font-size:17px;letter-spacing:.06em} .ed-top small{display:block;font:10px Consolas,monospace;color:#a3e635}
.ed-tick{flex:0 1 55%;overflow:hidden;white-space:nowrap;font:10.5px Consolas,monospace;color:#67e8f9;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.ed-tick span{display:inline-block;padding-left:100%;animation:edTick 40s linear infinite}
@keyframes edTick{to{transform:translateX(-100%)}}
.ed-rel{font:600 16px Consolas,monospace;border:1px solid #1f2b45;border-radius:9px;padding:3px 10px;background:#04070e}
.ed-corpo{display:grid;grid-template-columns:230px 1fr 230px;gap:10px;margin-top:10px}
.ed-palco{position:relative;height:420px;border:1px solid #1f2b45;border-radius:12px;background:#03060d;overflow:hidden;cursor:grab}
.ed-palco:active{cursor:grabbing} .ed-palco canvas{position:absolute;inset:0;width:100%;height:100%}
.ed-nos{position:absolute;inset:0;pointer-events:none}
.ed-no{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:1px solid var(--c);border-radius:10px;background:#0b1222e6;padding:5px 9px;min-width:128px;font:10.5px Consolas,monospace;color:#cbd5e1;box-shadow:0 0 22px -8px var(--c);cursor:pointer;transition:transform .15s}
.ed-no:hover{transform:translate(-50%,-50%) scale(1.07);box-shadow:0 0 28px -4px var(--c)}
.ed-no b{display:block;color:var(--c);font:700 11px Consolas,monospace;letter-spacing:.06em} .ed-no i{font-style:normal;font-size:16px;color:#fff;font-weight:700}
.ed-dica{position:absolute;left:12px;bottom:10px;font:10px Consolas,monospace;color:#64748b}
.ed-lado{display:flex;flex-direction:column;gap:8px}
.ed-k{border:1px solid #1f2b45;border-left:3px solid var(--c);border-radius:10px;background:#0b1222;padding:8px 10px;cursor:pointer}
.ed-k:hover{border-color:var(--c)} .ed-k small{font:10px Consolas,monospace;color:#94a3b8;letter-spacing:.08em;text-transform:uppercase}
.ed-k b{display:block;font:700 22px Consolas,monospace;color:#fff;text-shadow:0 0 12px var(--c)} .ed-k span{font:10.5px Consolas,monospace;color:#94a3b8}
.ed-k .spark{display:flex;align-items:flex-end;gap:2px;height:22px;margin-top:4px} .ed-k .spark i{flex:1;background:var(--c);opacity:.75;border-radius:2px 2px 0 0;min-height:2px}
.ed-base{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}
.ed-f{border:1px solid #1f2b45;border-radius:10px;background:#0b1222;padding:7px 9px;font:10.5px Consolas,monospace;color:#94a3b8}
.ed-f b{display:block;font:700 15px Consolas,monospace;color:var(--c)} .ed-f .tr{height:4px;border-radius:3px;background:#1b2438;margin-top:5px} .ed-f .tr i{display:block;height:100%;border-radius:3px;background:var(--c);box-shadow:0 0 8px var(--c)}
@media (max-width:1300px){.ed-corpo{grid-template-columns:1fr}.ed-lado{flex-direction:row;flex-wrap:wrap}.ed-k{flex:1 1 180px}.ed-base{grid-template-columns:repeat(2,1fr)}}

/* v7.18 · auditoria e gasto OW */
.modal.assina{max-width:460px;display:flex;flex-direction:column;gap:8px}.modal.assina label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--mut)}
.aud-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.aud-p{border:1px solid #1f2b45;border-left:3px solid #22c55e;border-radius:10px;background:#0b1222;padding:7px 10px}
.aud-p b{display:block;font-size:12px} .aud-p i{font-style:normal;font:700 20px Consolas,monospace;color:#22c55e} .aud-p span{display:block;font-size:10.5px;color:var(--mut)}
.gow-sem{display:flex;align-items:center;justify-content:space-between;border:1px solid #f9731666;border-radius:12px;background:linear-gradient(90deg,#f9731614,transparent);padding:8px 12px;margin-bottom:8px}
.gow-sem small{font:10px Consolas,monospace;color:#fdba74;letter-spacing:.08em} .gow-sem b{display:block;font:700 22px Consolas,monospace} .gow-sem span{font-size:11px;color:var(--mut)}
.gow-col{display:flex;align-items:flex-end;gap:4px;height:120px;margin:6px 0 18px}
.gow-col>div{flex:1;height:100%;display:flex;flex-direction:column-reverse;position:relative}
.gow-col i{display:block;width:100%;border-radius:2px;min-height:1px} .gow-col span{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:9.5px;color:var(--mut)}

/* v7.19 · gasto OW clicável + mapa dia × hora */
.gow-d{cursor:pointer} .gow-d:hover i{filter:brightness(1.3)}
.gow-mapa{overflow:auto;margin-bottom:8px} .gow-mapa table{border-collapse:collapse;font:10.5px Consolas,monospace;width:100%}
.gow-mapa th,.gow-mapa td{border:1px solid #1f2b45;padding:3px 5px;text-align:center;color:#cbd5e1} .gow-mapa th{color:var(--mut);font-weight:400}
.gow-cel{cursor:pointer;color:#fff!important;font-weight:700} .gow-cel:hover{outline:2px solid #fdba74}

/* v7.22 · esteira do assistente */
.est-zap{margin-top:14px;background:radial-gradient(800px 260px at 50% 0,#22d3ee10,transparent),linear-gradient(180deg,#0b1222,#070c18)}
.ez-quadro{display:grid;grid-template-columns:1.2fr 1fr 1.2fr 1fr;gap:10px}
.ez-col{border:1px solid #1f2b45;border-radius:12px;background:#070c18;padding:8px;min-height:180px}
.ez-col h4{margin:0 0 6px;font:700 11px Consolas,monospace;letter-spacing:.12em} .ez-col h4 i{font-style:normal;color:#e2e8f0;margin-left:4px}
.ez-lista{display:flex;flex-direction:column;gap:5px;max-height:300px;overflow:auto}
.ez-c{border:1px solid #1f2b45;border-left:3px solid var(--c);border-radius:8px;background:#0b1222;padding:5px 8px;font-size:11.5px}
.ez-c b{display:block;font-weight:600} .ez-c span{display:block;color:#94a3b8;font-size:10.5px} .ez-c small{font:10px Consolas,monospace;color:#64748b}
.ez-c.erro{border-left-color:#ef3340} .ez-c.erro small{color:#fb7185}
.ez-c.pulsa{box-shadow:0 0 0 1px var(--c),0 0 22px -6px var(--c);animation:ezPulso 1.6s ease-in-out infinite}
.ez-c.travada{border-color:#ef3340;box-shadow:0 0 24px -4px #ef3340;animation:ezPulso .8s ease-in-out infinite}
@keyframes ezPulso{50%{transform:scale(1.02)}}
.ez-agora{display:flex;flex-direction:column;justify-content:center} .ez-seg{font:700 22px Consolas,monospace;text-align:center;margin:8px 0 0}
.ez-seg.vermelho{color:#ef3340}
.ez-baixo{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;margin-top:10px}
.ez-ag{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.ez-k{border:1px solid #1f2b45;border-left:3px solid var(--c);border-radius:10px;background:#0b1222;padding:7px 10px}
.ez-k small{font:10px Consolas,monospace;text-transform:uppercase;color:#94a3b8} .ez-k b{display:block;font:700 22px Consolas,monospace;color:#fff}
.ez-k span{font-size:10.5px;color:#94a3b8}
.ez-horas{display:flex;align-items:flex-end;gap:3px;height:110px;border:1px solid #1f2b45;border-radius:10px;padding:8px 8px 18px;background:#070c18}
.ez-horas>div{flex:1;height:100%;display:flex;flex-direction:column-reverse;position:relative} .ez-horas i{display:block}
.ez-horas span{position:absolute;bottom:-15px;left:0;right:0;text-align:center;font-size:9.5px;color:#64748b}
.ez-resumo{margin:0;border:1px solid #1f2b45;border-radius:10px;background:#070c18;padding:8px 10px;font:11px Consolas,monospace;color:#cbd5e1;white-space:pre-wrap}
@media (max-width:1200px){.ez-quadro,.ez-baixo{grid-template-columns:1fr 1fr}}
