
/* Estrutura original da maquete. A paleta da LP fica no documento pai. */
html,body{margin:0;padding:0} [hidden]{display:none!important}
*:focus-visible{outline:2px solid #047857;outline-offset:3px}
[aria-disabled="true"]{cursor:not-allowed!important}
tr[role="button"]{cursor:pointer}
.app{
  --chao:#f6f7f9;--carta:#ffffff;--carta2:#f9fafb;--bd:#e4e7ec;--bd2:#d0d5dd;
  --tx:#101828;--tx2:#475467;--tx3:#6b7889;
  --ac:#059669;--ac-rgb:16,185,129;--ac-06:rgba(16,185,129,.07);--ac-12:rgba(16,185,129,.13);--ac-30:rgba(16,185,129,.32);
  --ok:#059669;--warn:#b45309;--bad:#dc2626;--ok-bg:rgba(16,185,129,.1);--warn-bg:rgba(180,83,9,.1);--bad-bg:rgba(220,38,38,.08);
  --rl:#0c1118;--rl2:#141b26;--rl-bd:#1d2632;--rl-tx:#8b98a9;--rl-tx2:#5b6878;--rl-on:#e6edf3;--rl-ac:#10b981;
  --sombra:0 1px 2px rgba(16,24,40,.05),0 8px 24px -12px rgba(16,24,40,.12);
  --sombra2:0 1px 3px rgba(16,24,40,.08),0 24px 48px -20px rgba(16,24,40,.22);
  background:var(--chao);color:var(--tx);font-family:'Geist',system-ui,sans-serif;font-size:13.5px;line-height:1.5;min-height:100vh
}
.app.dark{
  --chao:#0e141b;--carta:#131a23;--carta2:#171f2a;--bd:#212b38;--bd2:#2d3948;
  --tx:#e6edf3;--tx2:#9aa7b5;--tx3:#8290a0;
  --ac:#10b981;--ok:#34d399;--warn:#fbbf24;--bad:#fb7185;--ok-bg:rgba(52,211,153,.12);--warn-bg:rgba(251,191,36,.12);--bad-bg:rgba(251,113,133,.1);
  --rl:#0a0e13;--rl2:#11161d;--rl-bd:#1b232d;
  --sombra:0 1px 2px rgba(0,0,0,.4),0 8px 24px -12px rgba(0,0,0,.5);
  --sombra2:0 1px 3px rgba(0,0,0,.5),0 24px 48px -20px rgba(0,0,0,.7)
}
.app *{box-sizing:border-box}
.app .mono{font-family:'Geist Mono',ui-monospace,monospace}
.app svg.ic{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}

/* ── casca: trilho + mesa ── */
.app .shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.app .rail{background:var(--rl);border-right:1px solid var(--rl-bd);color:var(--rl-tx);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:14px 10px 10px}
.app .marca{display:flex;align-items:center;gap:9px;color:var(--rl-on);font-weight:700;font-size:16px;letter-spacing:-.02em;padding:2px 8px 14px}
.app .marca svg.mk{width:20px;height:20px;flex:none}.app .top .marca-cel svg.mk{width:17px;height:17px;flex:none}.app .mk .k1{fill:var(--rl-on)}.app .mk .k2{stroke:var(--rl-on)}.app .mk .k3{stroke:var(--rl-ac)}.app .top .marca-cel .mk .k1{fill:var(--tx)}.app .top .marca-cel .mk .k2{stroke:var(--tx)}.app .top .marca-cel .mk .k3{stroke:var(--ac)}.app .ac-esq .marca svg.mk{width:22px;height:22px}
.app .rgrp{font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--rl-tx2);padding:12px 8px 5px}
.app .rl-nav{display:grid;align-content:start;gap:1px;overflow-y:auto;flex:1;min-height:0}
.app .rl-nav::-webkit-scrollbar{width:4px}.app .rl-nav::-webkit-scrollbar-thumb{background:var(--rl-bd);border-radius:2px}
.app .ri{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;color:var(--rl-tx);font-size:12.5px;cursor:pointer;position:relative;border:0;background:none;font-family:inherit;text-align:left;width:100%}
.app .ri:hover{background:var(--rl2);color:var(--rl-on)}
.app .ri.on{background:var(--rl2);color:var(--rl-on)}
.app .ri.on::before{content:"";position:absolute;left:-10px;top:6px;bottom:6px;width:2px;border-radius:2px;background:var(--rl-ac)}
.app .ri.on svg.ic{color:var(--rl-ac)}
.app .ri kbd{margin-left:auto;font-family:'Geist Mono',monospace;font-size:9.5px;background:var(--rl-bd);border-radius:5px;padding:1px 6px;color:var(--rl-tx)}
.app .rconta{border-top:1px solid var(--rl-bd);margin-top:8px;padding-top:8px;position:relative}
.app .rc-bt{display:flex;align-items:center;gap:9px;width:100%;padding:7px 8px;border-radius:8px;background:none;border:0;cursor:pointer;color:var(--rl-tx);font-family:inherit;text-align:left}
.app .rc-bt:hover{background:var(--rl2)}
.app .rc-av{width:26px;height:26px;border-radius:50%;background:var(--rl-ac);color:#06251a;display:grid;place-items:center;font-weight:700;font-size:11px;flex:none}

/* ── recolher trilho (.app.rmin) ── */
.app .rl-rec{margin-left:auto;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:6px;background:none;color:var(--rl-tx2);cursor:pointer;flex:none}
.app .rl-rec:hover{background:var(--rl2);color:var(--rl-on)}
@media (min-width:768px){
  .app .shell{transition:grid-template-columns .18s ease}
  .app.rmin .shell{grid-template-columns:62px 1fr}
  .app.rmin .rail{padding-left:8px;padding-right:8px}
  .app.rmin .rail .marca{flex-direction:column;gap:6px;padding:2px 0 12px;font-size:0}
  .app.rmin .rl-rec{margin-left:0}
  .app.rmin .rl-rec svg.ic{transform:scaleX(-1)}
  .app.rmin .rgrp{height:0;overflow:hidden;padding:0;margin:7px 6px;border-top:1px solid var(--rl-bd)}
  .app.rmin .ri{font-size:0;gap:0;justify-content:center;padding:8px 0}
  .app.rmin .ri kbd{display:none}
  .app.rmin .ri.on::before{left:-8px}
  .app.rmin .rc-bt{justify-content:center;padding:7px 0}
  .app.rmin .rc-bt>span:not(.rc-av){display:none}
  .app.rmin .menu{left:4px;right:auto;width:212px}
}
.app .rc-bt b{display:block;color:var(--rl-on);font-size:12px;font-weight:600}
.app .rc-bt small{display:block;font-size:10px;color:var(--rl-tx2)}

/* menu de conta */
.app .menu{display:none;position:absolute;left:8px;right:8px;bottom:52px;background:var(--carta);border:1px solid var(--bd2);border-radius:12px;box-shadow:var(--sombra2);padding:5px;z-index:60;color:var(--tx)}
.app .menu.on{display:block}
.app .menu a{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:8px;font-size:12.5px;color:var(--tx2);cursor:pointer}
.app .menu a:hover{background:var(--carta2);color:var(--tx)}
.app .menu .sep{height:1px;background:var(--bd);margin:4px 6px}
.app .sw{flex:none;margin-left:auto;width:32px;height:19px;border-radius:999px;background:var(--bd2);position:relative;transition:background .18s}
.app .sw i{position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:var(--carta);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .18s}
.app .sw.on{background:var(--ac)}.app .sw.on i{left:15px}

/* topo da mesa */
.app .mesa-col{min-width:0;display:flex;flex-direction:column}
.app .top{display:flex;align-items:center;gap:12px;padding:10px 24px;border-bottom:1px solid var(--bd);background:var(--carta);position:sticky;top:0;z-index:40}
.app .busca{display:flex;align-items:center;gap:9px;width:380px;max-width:44vw;height:34px;padding:0 12px;border-radius:9px;background:var(--carta2);border:1px solid var(--bd);color:var(--tx3);font-size:12.5px;cursor:pointer}
.app .busca kbd{margin-left:auto;font-family:'Geist Mono',monospace;font-size:10px;border:1px solid var(--bd2);border-radius:5px;padding:1px 6px;color:var(--tx3)}
.app .top .esp{flex:1}
.app .tbt{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 13px;border-radius:9px;border:1px solid var(--bd2);background:var(--carta);color:var(--tx2);font-size:12.5px;font-weight:500;cursor:pointer;font-family:inherit}
.app .tbt:hover{border-color:var(--ac-30);color:var(--tx)}
.app .tbt.ia svg{color:var(--ac)}
.app .corpo{padding:22px 24px 60px;display:none;animation:pgIn .18s ease-out}
.app .corpo.on{display:block}
@keyframes pgIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}

/* cabeçalho de aba (enxuto) */
.app .ph{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.app .ey{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--tx3);margin-bottom:4px}
.app .ph h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.025em}
.app .ph .dir{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.app .seg{display:inline-flex;background:var(--carta);border:1px solid var(--bd2);border-radius:9px;padding:2px;gap:2px}
.app .seg a{padding:5px 11px;border-radius:7px;font-size:12px;color:var(--tx2);cursor:pointer;white-space:nowrap}
.app .seg a.on{background:var(--ac-12);color:var(--ac);font-weight:600}

/* kit base */
.app .card{background:var(--carta);border:1px solid var(--bd);border-radius:12px;padding:16px 18px;box-shadow:var(--sombra)}
.app .lbl{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3)}
.app .big{font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:5px}
.app .sub{font-size:12.5px;color:var(--tx2);margin-top:3px}
.app .chip{display:inline-flex;align-items:center;gap:5px;font-family:'Geist Mono',monospace;font-size:11px;padding:2.5px 9px;border-radius:999px;border:1px solid var(--bd2);color:var(--tx2);white-space:nowrap}
.app .chip.ok{color:var(--ok);background:var(--ok-bg);border-color:transparent}
.app .chip.warn{color:var(--warn);background:var(--warn-bg);border-color:transparent}
.app .chip.bad{color:var(--bad);background:var(--bad-bg);border-color:transparent}
.app .chip.mute{background:var(--carta2);border-color:transparent;color:var(--tx3)}
.app .delta{font-family:'Geist Mono',monospace;font-size:11px;font-weight:500}
.app .delta.up{color:var(--ok)}.app .delta.down{color:var(--bad)}
.app .proc{display:flex;gap:7px;align-items:baseline;font-size:11.5px;color:var(--warn);margin-top:8px}
.app .proc.falta{color:var(--bad)}
.app .proc i{flex:none;width:6px;height:6px;border-radius:50%;background:currentColor;transform:translateY(-1px)}
.app .bt{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:8px;background:var(--ac);color:#fff;border:0;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
.app.dark .bt{color:#06251a}
.app .bt.sec{background:var(--carta);border:1px solid var(--bd2);color:var(--tx2)}
.app .bt.sec:hover{border-color:var(--ac-30);color:var(--tx)}

/* fotos (cada uma pesa 1×, via variável) */
.app .ph-img{display:inline-block;background-size:contain;background-position:center;background-repeat:no-repeat;background-color:#fff;border:1px solid var(--bd);border-radius:8px;flex:none}
.app.dark .ph-img{background-color:#f3f4f6}
.app .ph-img.vazia{display:grid;place-items:center;color:var(--tx3);background:var(--carta2)}

/* Dashboard */
.app .bento{display:grid;grid-template-columns:repeat(12,1fr);gap:12px}
.app .c-hero{grid-column:span 6;grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between}
.app .c-4{grid-column:span 3}
.app .c-graf{grid-column:span 7;display:flex;flex-direction:column}
.app .c-top{grid-column:span 5}
.app .c-acoes{grid-column:span 12}
.app .hero-l{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.app .spark30{display:flex;align-items:flex-end;gap:2.5px;flex:1;min-height:88px;margin-top:14px}
.app .c-graf .sub{margin-top:10px}
.app .spark30 i{flex:1;border-radius:3px 3px 0 0;background:var(--ac-12);min-height:3px;position:relative}
.app .spark30 i.f{background:var(--ac)}
.app .blrow{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--bd);font-size:12.5px}
.app .blrow:last-child{border-bottom:0}
.app .blrow .bi{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3);width:14px;flex:none}
.app .blrow .bt-b{flex:1;min-width:0;position:relative;padding:3px 8px}
.app .blrow .bt-b i{position:absolute;left:0;top:0;bottom:0;background:var(--ac-06);border-left:2px solid var(--ac-30);border-radius:0 4px 4px 0}
.app .blrow .bt-b span{position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.app .blrow .bt-b small{position:relative;display:block;font-size:10.5px;color:var(--tx3)}
.app .blrow .bn{font-family:'Geist Mono',monospace;font-size:12px;font-variant-numeric:tabular-nums}
.app .acao{display:flex;gap:12px;padding:11px 2px;border-bottom:1px solid var(--bd);align-items:flex-start}
.app .acao:last-child{border-bottom:0}
.app .acao .aic{flex:none;width:30px;height:30px;border-radius:8px;display:grid;place-items:center}
.app .acao .aic.bad{background:var(--bad-bg);color:var(--bad)}
.app .acao .aic.warn{background:var(--warn-bg);color:var(--warn)}
.app .acao b{font-size:13px;font-weight:600;display:block}
.app .acao small{display:block;font-size:11.5px;color:var(--tx2);margin-top:1px}
.app .acts{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.app .acts a{font-size:11.5px;font-weight:600;padding:5px 11px;border-radius:999px;border:1px solid var(--bd2);color:var(--tx2);cursor:pointer;background:var(--carta)}
.app .acts a.pri{background:var(--ac-12);border-color:var(--ac-30);color:var(--ac)}

/* tabela v5 */
.app .mesa{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:12px;align-items:start}
.app .mesa.solo{grid-template-columns:minmax(0,1fr)}
.app .tcard{background:var(--carta);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sombra);overflow:hidden;display:flex;flex-direction:column}
.app .tcard .tbl{flex:1}
.app .mesa:has(> .tcard){align-items:stretch}
.app .mesa:has(> .tcard) > .gav{position:static}
.app .tbar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.app .pill{font-size:11.5px;padding:5px 11px;border-radius:999px;border:1px solid var(--bd2);color:var(--tx2);cursor:pointer;white-space:nowrap;background:var(--carta)}
.app .pill b{font-family:'Geist Mono',monospace;font-weight:500;font-size:10.5px;color:var(--tx3)}
.app .pill.on{background:var(--ac-12);border-color:var(--ac-30);color:var(--ac)}
.app .pill.on b{color:var(--ac)}
.app .tbar .sel-info{margin-left:auto;display:none;align-items:center;gap:8px;font-size:11.5px;color:var(--tx2)}
.app .tbar .sel-info.on{display:inline-flex}
.app .tbar .tfind{margin-left:auto;height:30px;width:210px;flex:none}
.app .tbar .tfind svg.ic{width:13px;height:13px;color:var(--tx3)}
.app .tbl{overflow-x:auto}
.app table{width:100%;border-collapse:collapse;font-size:13px}
.app thead th{position:sticky;top:0;background:var(--carta2);font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);text-align:left;padding:8px 12px;border-bottom:1px solid var(--bd);font-weight:500;white-space:nowrap}
.app tbody td{padding:9px 12px;border-bottom:1px solid var(--bd);vertical-align:middle}
.app tbody tr{cursor:pointer;position:relative}
.app tbody tr:hover td{background:var(--carta2)}
.app tbody tr.sel td{background:var(--ac-06)}
.app tbody tr.sel td:first-child{box-shadow:inset 2px 0 0 var(--ac)}
.app td.num,.app th.num{text-align:right;font-family:'Geist Mono',monospace;font-variant-numeric:tabular-nums}
.app .tprod{display:flex;align-items:center;gap:10px;min-width:0}
.app .tprod .ph-img{width:34px;height:34px}
.app .tprod b{display:block;font-weight:500;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}
.app .tprod small{display:block;font-family:'Geist Mono',monospace;font-size:11px;color:var(--tx2)}
.app .cb{display:inline-grid;place-items:center;position:relative;width:15px;height:15px;vertical-align:middle}
.app .cb input{position:absolute;inset:0;opacity:0;cursor:pointer;margin:0}
.app .cb i{width:15px;height:15px;border-radius:4.5px;border:1px solid var(--bd2);background:var(--carta);display:grid;place-items:center;color:transparent;font-size:9.5px;font-style:normal;line-height:1}
.app .cb input:checked+i{background:var(--ac);border-color:var(--ac);color:#fff}
.app .cb input:focus-visible+i{box-shadow:0 0 0 3px var(--ac-12)}
.app .pgn{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 14px;border-top:1px solid var(--bd);flex-wrap:wrap}
.app .pgn small{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3)}
.app .pgn nav{display:flex;gap:3px}
.app .pgn a{min-width:26px;height:26px;padding:0 7px;display:grid;place-items:center;border-radius:7px;font-family:'Geist Mono',monospace;font-size:11.5px;color:var(--tx2);cursor:pointer;border:1px solid transparent}
.app .pgn a:hover{background:var(--carta2)}
.app .pgn a.on{background:var(--ac-12);border-color:var(--ac-30);color:var(--ac)}
.app .pgn a.mudo{pointer-events:none;opacity:.45}
.app .pgn a.dots{pointer-events:none;border:0;color:var(--tx3)}

/* gaveta */
.app .gav{background:var(--carta);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sombra);padding:16px;position:sticky;top:66px}
.app .gav .ghd{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}
.app .gav h4{margin:0;font-size:14px;font-weight:600;letter-spacing:-.01em}
.app .gav .x{flex:none;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--tx3);cursor:pointer;border:1px solid var(--bd)}
.app .kv{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:6.5px 0;border-bottom:1px solid var(--bd);align-items:baseline}
.app .kv b{font-family:'Geist Mono',monospace;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
.app .kv .fon{flex:none;width:6px;height:6px;border-radius:50%;background:var(--ok);display:inline-block;margin-right:6px}
.app .kv .fon.est{background:var(--warn)}
.app .kv.tot{border-bottom:0}.app .kv.tot b{font-weight:600;font-size:14px}
.app .cbar{display:flex;height:8px;border-radius:4px;overflow:hidden;margin:6px 0 2px;background:var(--carta2)}
.app .cbar i{height:100%}
.app .gsec{margin-top:12px;padding-top:10px;border-top:1px solid var(--bd)}
.app .stp{display:grid;gap:0;margin-top:8px}
.app .stp-i{display:flex;gap:10px;position:relative;padding-bottom:14px}
.app .stp-i::before{content:"";position:absolute;left:7px;top:18px;bottom:2px;width:2px;background:var(--bd)}
.app .stp-i:last-child{padding-bottom:0}.app .stp-i:last-child::before{display:none}
.app .stp-p{flex:none;width:16px;height:16px;border-radius:50%;border:2px solid var(--bd2);background:var(--carta);margin-top:1px}
.app .stp-i.ok .stp-p{background:var(--ac);border-color:var(--ac)}
.app .stp-i.at .stp-p{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-12)}
.app .stp-i b{font-size:12px;font-weight:600;display:block}
.app .stp-i small{font-size:11px;color:var(--tx2);display:block}
.app .gbt{display:flex;gap:8px;margin-top:14px}
.app .gbt .bt{flex:1;justify-content:center}

/* produtos: cartões */
.app .pgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.app .mesa:not(.solo) .pgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
.app .pgrid.d6{grid-template-columns:repeat(6,minmax(0,1fr))}
.app .pgrid.d8{grid-template-columns:repeat(8,minmax(0,1fr))}
.app .mesa:not(.solo) .pgrid.d6{grid-template-columns:repeat(4,minmax(0,1fr))}
.app .mesa:not(.solo) .pgrid.d8{grid-template-columns:repeat(6,minmax(0,1fr))}
.app .pgrid.d6 .ph-img{height:92px}
.app .pgrid.d8 .ph-img{height:72px}
.app .pgrid.d8 .pc b{font-size:11.5px;min-height:28px}
.app .pgrid.d8 .pc .preco{font-size:12px}
.app .pgn.solta{background:var(--carta);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sombra);margin-top:12px}
.app .pc{min-width:0;background:var(--carta);border:1px solid var(--bd);border-radius:12px;box-shadow:var(--sombra);padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:8px}
.app .pc:hover{border-color:var(--ac-30)}
.app .pc .chip{white-space:normal;line-height:1.5}
.app .pc.sel{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-06),var(--sombra)}
.app .pc .ph-img{width:100%;height:110px;border-radius:9px}
.app .pc b{font-size:12.5px;font-weight:600;line-height:1.3;display:block;min-height:32px}
.app .pc .preco{font-family:'Geist Mono',monospace;font-size:13.5px;font-weight:600}
.app .marg{display:grid;gap:4px}
.app .marg .mtx{display:flex;justify-content:space-between;font-size:11px;color:var(--tx2)}
.app .marg .mtx b{font-family:'Geist Mono',monospace;font-weight:600}
.app .marg .mb{position:relative;height:5px;border-radius:3px;background:var(--carta2)}
.app .marg .mb i{position:absolute;left:0;top:0;bottom:0;border-radius:3px}
.app .marg .mb u{position:absolute;top:-2.5px;bottom:-2.5px;width:2px;background:var(--tx3);left:60%}
.app .pc .rodo{display:flex;gap:5px;flex-wrap:wrap;margin-top:auto}

/* slider de cenários */
.app .esl{margin-top:10px}
.app .esl-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.app .esl-hd .p{font-family:'Geist Mono',monospace;font-size:16px;font-weight:600}
.app .esl input[type=range]{width:100%;accent-color:var(--ac);height:22px;margin:0}
.app .esl-leg{display:flex;justify-content:space-between;font-family:'Geist Mono',monospace;font-size:11px;color:var(--tx2);margin-top:2px}
.app .esl-chips{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.app .esl-tr{position:relative;height:26px;margin:8px 0 0;cursor:pointer;touch-action:none}
.app .esl-tr::before{content:"";position:absolute;left:0;right:0;top:11px;height:4px;border-radius:2px;background:var(--bd2)}
.app .esl-fill{position:absolute;top:11px;height:4px;background:var(--ac);border-radius:2px}
.app .esl-mk{position:absolute;top:7px;width:2px;height:12px;background:var(--tx3);border-radius:1px}
.app .esl-mk.piso{background:var(--warn)}
.app .esl-th{position:absolute;top:4px;width:18px;height:18px;border-radius:50%;background:var(--carta);border:2px solid var(--ac);box-shadow:0 1px 4px rgba(0,0,0,.3);transform:translateX(-50%);transition:transform .12s}
.app .esl-th.drag{transform:translateX(-50%) scale(1.18)}
@keyframes alFade{from{opacity:0}to{opacity:1}}
@keyframes alEntra{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.app .blrow,.app .acao,.app tbody tr,.app .pc,.app .dre-l{animation:none!important}}

/* DRE */
.app .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:12px}
.app .dre-l{display:grid;grid-template-columns:minmax(150px,240px) minmax(120px,1fr) auto auto;gap:4px 14px;align-items:center;padding:7px 0;border-bottom:1px solid var(--bd);font-size:12.5px}
.app .dre-l:last-child{border-bottom:0}
.app .dre-l .n{font-family:'Geist Mono',monospace;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.app .dre-l .pc2{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3);width:44px;text-align:right}
.app .dre-l small{display:block;font-size:10.5px;color:var(--tx3)}
.app .dre-l .b{height:14px;border-radius:4px;background:var(--carta2);position:relative;min-width:60px}
.app .dre-l .b i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}

/* acesso */
.app .acesso{display:none;position:fixed;inset:0;z-index:90}
.app .acesso.on{display:grid;grid-template-columns:1fr 1fr}
.app .ac-esq{background:var(--rl);color:var(--rl-tx);display:flex;flex-direction:column;justify-content:space-between;padding:44px 48px}
.app .ac-esq .marca{padding:0;font-size:17px}
.app .ac-esq h3{color:var(--rl-on);font-size:clamp(24px,3vw,40px);font-weight:700;letter-spacing:-.03em;line-height:1.12;margin:0 0 12px;max-width:16ch}
.app .ac-esq p{font-size:13px;max-width:44ch;margin:0}
.app .ac-mini{display:flex;gap:26px;flex-wrap:wrap}
.app .ac-mini b{display:block;color:var(--rl-on);font-family:'Geist Mono',monospace;font-size:17px;font-weight:600}
.app .ac-mini small{font-size:11px}
.app .ac-am{font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--rl-tx2);margin-bottom:8px}
.app .ac-feats{display:grid;gap:12px;margin-top:24px}
.app .ac-feats span{display:flex;align-items:center;gap:11px;font-size:13px;color:var(--rl-tx)}
.app .ac-feats span b{color:var(--rl-on);font-weight:600}
.app .ac-feats i{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--rl2);border:1px solid var(--rl-bd);color:var(--rl-ac);flex:none;font-style:normal}
.app .ac-feats i svg.ic{width:15px;height:15px}
.app .ac-prev{margin-top:26px;max-width:560px;background:var(--rl2);border:1px solid var(--rl-bd);border-radius:14px;padding:18px 18px 8px}
.app .ac-prev-hd{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:12px}
.app .ac-prev-hd small{font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--rl-tx2)}
.app .ac-prev-hd b{font-family:'Geist Mono',monospace;font-size:15px;color:var(--rl-on);font-weight:600}
.app .ac-bars{display:flex;align-items:flex-end;gap:6px;height:150px;margin-bottom:14px}
.app .ac-bars i{flex:1;border-radius:3px 3px 1px 1px;background:var(--rl-ac);opacity:.3;transform-origin:bottom;animation:acSobe .55s cubic-bezier(.2,.7,.3,1) both}
.app .ac-bars i.hj{opacity:1}
@keyframes acSobe{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@media (prefers-reduced-motion:reduce){.app .ac-bars i{animation:none}}
@media (max-height:820px){.app .ac-bars{height:96px}.app .ac-prev{margin-top:18px}.app .ac-feats{gap:8px;margin-top:16px}}
@media (max-height:700px){.app .ac-bars{height:64px}.app .ac-feats{display:none}}
.app .ac-kv{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--rl-bd);font-size:12.5px}
.app .ac-kv b{font-family:'Geist Mono',monospace;font-weight:500;color:var(--rl-on)}
.app .ac-kv.fim b{color:var(--rl-ac);font-weight:700}
.app .ac-tag{font-size:9.5px;border:1px solid var(--rl-bd);border-radius:99px;padding:1px 7px;color:var(--rl-tx2);margin-left:6px;white-space:nowrap}
.app .ac-dir{background:var(--chao);background-image:radial-gradient(var(--bd) 1px,transparent 1px);background-size:22px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;overflow:auto}
.app .ac-ola{text-align:center}
.app .ac-ola b{display:block;font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--tx)}
.app .ac-ola small{font-size:12.5px;color:var(--tx2)}
.app .ac-pe{display:flex;gap:12px;align-items:center;font-size:11.5px;color:var(--tx3)}
.app .ac-pe a{cursor:pointer}
.app .ac-pe a:hover{color:var(--tx)}
.app .acao.banida{opacity:.85}
.app .acao.banida>div>b{color:var(--tx2)}
.app .acao[hidden],.app .acts[hidden]{display:none}
.app .acts a[data-del]{color:var(--bad)}
.app .acts a.confdel{background:var(--bad-bg);border-radius:6px;padding:2px 8px;font-weight:600}
.app .ac-card{width:min(360px,100%);background:var(--carta);border:1px solid var(--bd);border-radius:14px;padding:26px 24px;box-shadow:var(--sombra2)}
.app .ac-tabs{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--carta2);border:1px solid var(--bd);border-radius:9px;padding:3px;margin-bottom:16px}
.app .ac-tabs a{text-align:center;padding:6px;border-radius:7px;font-size:12.5px;color:var(--tx2);cursor:pointer}
.app .ac-tabs a.on{background:var(--carta);color:var(--tx);font-weight:600;box-shadow:0 1px 2px rgba(16,24,40,.1)}
.app .fld{display:grid;gap:5px;margin-bottom:11px}
.app .fld label{font-size:11px;font-weight:600;color:var(--tx2)}
.app .inp{display:flex;align-items:center;gap:7px;background:var(--carta);border:1px solid var(--bd2);border-radius:8px;padding:0 11px;height:36px}
.app .inp:focus-within{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-12)}
.app .inp input{background:none;border:0;outline:0;color:var(--tx);font:inherit;width:100%;min-width:0}
.app .inp input::placeholder{color:var(--tx3)}
.app .inp .olho{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3);cursor:pointer;flex:none}
.app .ac-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--tx2);margin-bottom:13px}
.app .ac-meta label{display:flex;gap:7px;align-items:center;cursor:pointer}
.app .ac-meta .link{color:var(--ac);cursor:pointer}
.app .ac-bt{width:100%;justify-content:center;height:38px}
.app .ac-nota{font-size:11.5px;color:var(--tx3);line-height:1.5;border-top:1px solid var(--bd);margin-top:16px;padding-top:12px}
.app .ac-nota b{color:var(--tx2)}

/* toast · calendário · ⌘K · analista */
.app .tst-host{position:fixed;right:20px;bottom:84px;display:grid;gap:8px;justify-items:end;z-index:95;pointer-events:none;width:min(380px,calc(100vw - 32px))}
.app .tst{display:flex;align-items:center;gap:9px;background:var(--carta);border:1px solid var(--bd2);border-left:3px solid var(--ac);border-radius:10px;padding:10px 14px;font-size:12.5px;color:var(--tx);box-shadow:var(--sombra2);animation:tstIn .22s cubic-bezier(.2,.7,.3,1)}
.app .tst.ok{border-left-color:var(--ok)}.app .tst.warn{border-left-color:var(--warn)}.app .tst.bad{border-left-color:var(--bad)}
.app .tst.some{animation:tstOut .25s ease-in forwards}
@keyframes tstIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes tstOut{to{opacity:0;transform:translateY(6px)}}
.app .velado{display:none;position:fixed;inset:0;background:rgba(12,17,24,.45);z-index:80}
.app .velado.on{display:block}
.app .velado.claro{background:transparent}
.app .cal{display:none;position:fixed;left:50%;top:14vh;transform:translateX(-50%);width:min(330px,calc(100vw - 24px));background:var(--carta);border:1px solid var(--bd2);border-radius:14px;box-shadow:var(--sombra2);z-index:84;overflow:hidden}
.app .cal.on{display:block}
.app .cal-hd{display:flex;align-items:center;justify-content:space-between;padding:12px 12px 6px}
.app .cal-hd b{font-size:13px;text-transform:capitalize}
.app .cal-hd a{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;color:var(--tx2);cursor:pointer;border:1px solid var(--bd)}
.app .cal-g{display:grid;grid-template-columns:repeat(7,1fr);padding:0 12px 8px}
.app .cal-g u{text-decoration:none;font-family:'Geist Mono',monospace;font-size:9.5px;color:var(--tx3);text-align:center;padding:5px 0}
.app .cal-g a{height:30px;display:grid;place-items:center;border-radius:8px;font-family:'Geist Mono',monospace;font-size:11.5px;color:var(--tx2);cursor:pointer;position:relative}
.app .cal-g a:hover{background:var(--carta2)}
.app .cal-g a.fora{opacity:.3;pointer-events:none}
.app .cal-g a.meio{background:var(--ac-06);border-radius:0;color:var(--tx)}
.app .cal-g a.ini,.app .cal-g a.fim{background:var(--ac);color:#fff}
.app.dark .cal-g a.ini,.app.dark .cal-g a.fim{color:#06251a}
.app .cal-g a.ini{border-radius:8px 0 0 8px}.app .cal-g a.fim{border-radius:0 8px 8px 0}.app .cal-g a.ini.fim{border-radius:8px}
.app .cal-ft{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-top:1px solid var(--bd)}
.app .cal-ft small{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx2)}
.app .cal-ft .bts{display:flex;gap:6px}
.app .ck{display:none;position:fixed;left:50%;top:14vh;transform:translateX(-50%);width:min(540px,calc(100vw - 24px));background:var(--carta);border:1px solid var(--bd2);border-radius:14px;box-shadow:var(--sombra2);z-index:85;overflow:hidden}
.app .ck.on{display:block}
.app .ck-in{display:flex;gap:9px;align-items:center;padding:12px 14px;border-bottom:1px solid var(--bd)}
.app .ck-in input{flex:1;background:none;border:0;outline:0;font:inherit;font-size:14px;color:var(--tx)}
.app .ck-ls{max-height:320px;overflow:auto;padding:6px}
.app .ck-g{font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--tx3);padding:8px 10px 3px}
.app .ck-i{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:8px;font-size:13px;cursor:pointer;align-items:baseline}
.app .ck-i small{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3)}
.app .ck-i.on{background:var(--ac-12);color:var(--ac)}
.app .ck-vz{padding:22px;text-align:center;color:var(--tx3);font-size:12.5px}
.app .iap{display:none;position:fixed;right:20px;bottom:20px;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 40px));background:var(--carta);border:1px solid var(--bd2);border-radius:16px;box-shadow:var(--sombra2);z-index:86;flex-direction:column;overflow:hidden}
.app .fab{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border-radius:50%;background:var(--ac);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;box-shadow:0 10px 24px -8px rgba(5,150,105,.55);z-index:66}
.app.dark .fab{color:#06251a}
.app .fab svg.ic{width:20px;height:20px}
.app .fab.some{display:none}
.app .iap.on{display:flex}
.app .iap-hd{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid var(--bd)}
.app .iap-hd b{font-size:13.5px}
.app .iap-hd .x{margin-left:auto;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--tx3);cursor:pointer;border:1px solid var(--bd)}
.app .iap-ms{flex:1;overflow:auto;padding:16px;display:grid;gap:12px;align-content:start}
.app .ia-u{justify-self:end;background:var(--ac-12);color:var(--tx);border-radius:12px 12px 3px 12px;padding:9px 13px;font-size:12.5px;max-width:85%}
.app .ia-a{font-size:12.5px;color:var(--tx);line-height:1.55;max-width:95%}
.app .ia-a .proc{margin-top:6px}
.app .iap-ft{border-top:1px solid var(--bd);padding:12px 14px}
.app .iap-chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:9px}
.app .iap-comp{display:flex;gap:8px;align-items:center;background:var(--carta2);border:1px solid var(--bd2);border-radius:999px;padding:4px 5px 4px 15px}
.app .iap-comp input{flex:1;background:none;border:0;outline:0;font:inherit;font-size:12.5px;color:var(--tx)}
.app .iap-comp .bt{border-radius:999px;height:30px}
.app .iap-nota{font-size:11px;color:var(--tx2);margin-top:8px;text-align:center}

/* listas, tracker, stepper horizontal, estúdio, admin */
.app .cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.app .lrow{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--bd);font-size:12.5px}
.app .lrow:last-child{border-bottom:0}
.app .lrow .li{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3);min-width:34px;flex:none}
.app .lrow .lt{flex:1;min-width:0}
.app .lrow .lt small{display:block;font-size:11.5px;color:var(--tx2)}
.app .lrow .ln{font-family:'Geist Mono',monospace;font-variant-numeric:tabular-nums;white-space:nowrap}
.app .lrow .ph-img{width:30px;height:30px}
.app .trk{display:flex;gap:3px;margin-top:10px}
.app .trk i{flex:1;height:22px;border-radius:4px;background:var(--ok-bg)}
.app .trk i.w{background:var(--warn-bg)}
.app .trk-lg{display:flex;gap:16px;margin-top:8px;font-size:11px;color:var(--tx2)}
.app .trk-lg i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--ok-bg);margin-right:5px;vertical-align:-1px}
.app .trk-lg .w i{background:var(--warn-bg)}
.app .aic.ok{background:var(--ok-bg);color:var(--ok)}
.app .stph{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:6px}
.app .stph a{display:grid;gap:3px;justify-items:center;text-align:center;padding:8px 4px;border-radius:9px;border:1px solid var(--bd);cursor:pointer;font-size:11px;color:var(--tx2)}
.app .stph a b{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--carta2);font-size:10.5px;font-family:'Geist Mono',monospace}
.app .stph a.done b{background:var(--ac);color:#fff}
.app.dark .stph a.done b{color:#06251a}
.app .stph a.cur{border-color:var(--ac-30);background:var(--ac-06)}
.app .stp-det{margin-top:10px;padding:10px 12px;border-radius:9px;background:var(--carta2);font-size:12px;color:var(--tx2)}
.app .stp-det b{display:block;color:var(--tx);margin-bottom:2px}
.app .cit{display:inline-grid;place-items:center;min-width:16px;height:16px;border-radius:5px;background:var(--ac-12);color:var(--ac);font-family:'Geist Mono',monospace;font-size:10px;padding:0 3px;flex:none}
.app .est{display:grid;grid-template-columns:290px minmax(0,1fr);gap:12px;align-items:start}
.app .eh{display:flex;gap:9px;align-items:center;padding:7px 0;border-bottom:1px solid var(--bd);cursor:pointer}
.app .eh:last-of-type{border-bottom:0}
.app .eh .ph-img{width:36px;height:36px;flex:none}
.app .eh b{display:block;font-size:12px;font-weight:600}
.app .eh small{font-size:11px;color:var(--tx2)}
.app .eh.sel b{color:var(--ac)}
.app .gen{margin-top:8px}
.app .gen .ph-img{width:min(240px,100%);height:170px;display:block}
.app .gen .cap{font-family:'Geist Mono',monospace;font-size:11px;color:var(--tx2);margin-top:4px}
.app .inp.num{width:80px;flex:none}
.app .inp.num input{text-align:right;font-family:'Geist Mono',monospace;font-size:12.5px}
.app .abas-pop{display:none;margin:8px 0 4px;padding:12px;background:var(--carta2);border:1px solid var(--bd);border-radius:10px}
.app .abas-pop.on{display:block}
.app .abas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:0 14px;margin:6px 0 10px}
.app .cbl{display:flex;gap:8px;align-items:center;padding:4px 0;font-size:12.5px;color:var(--tx2);cursor:pointer}
.app .cbl.off{opacity:.45;cursor:not-allowed}
.app .abas-ft{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.app .abas-ft small{font-size:11px;color:var(--tx2);line-height:1.45;flex:1;min-width:200px}
.app .so-cel{display:none}
/* oportunidades: subabas + cartões de análise de compra */
.app .subabas{margin-bottom:14px}
.app .subabas a{padding:7px 16px;font-size:12.5px}
.app .op-busca{display:flex;gap:10px;align-items:center;margin-bottom:12px}
.app .op-busca .inp{flex:1;height:40px}
.app .op-filtros{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.app .op-filtros .esp{flex:1}
.app .op-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.app .opc{display:flex;flex-direction:column;gap:10px}
.app .opc .op-hd{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.app .opc .op-hd b{font-size:13.5px;font-weight:600;letter-spacing:-.01em}
.app .opc .op-hd small{display:block;font-family:'Geist Mono',monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--tx3);margin-bottom:2px}
.app .op-lucro{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.app .op-lucro b{font-family:'Geist Mono',monospace;font-weight:600;font-size:18px;letter-spacing:-.01em}
.app .op-lucro .roi{font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3)}
.app .opgraf{display:grid;gap:6px}
.app .opbar{position:relative;padding-top:15px}
.app .opbar-tr{display:flex;height:12px;border-radius:4px;overflow:hidden;background:var(--carta2)}
.app .opbar-tr i{height:100%;flex:none}
.app .opbar-tr .c1,.app .opleg .c1{background:var(--tx2);opacity:.72}
.app .opbar-tr .c2,.app .opleg .c2{background:var(--tx2);opacity:.45}
.app .opbar-tr .c3,.app .opleg .c3{background:var(--tx2);opacity:.24}
.app .opbar-piso{position:absolute;left:85%;top:12px;bottom:-3px;width:2px;border-radius:1px;background:var(--tx)}
.app .opbar-piso b{position:absolute;right:-4px;bottom:100%;margin-bottom:2px;font-family:'Geist Mono',monospace;font-weight:600;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--tx3);white-space:nowrap}
.app .opleg{display:flex;flex-wrap:wrap;gap:3px 12px;font-size:10.5px;color:var(--tx2)}
.app .opleg span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.app .opleg i{flex:none;width:7px;height:7px;border-radius:2px}
.app .opleg b{font-family:'Geist Mono',monospace;font-weight:500;font-variant-numeric:tabular-nums}
.app .opleg-cap{font-family:'Geist Mono',monospace;font-weight:600;font-size:11px}
.app .op-maxrow{border-left:3px solid var(--warn);background:var(--warn-bg);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--tx2);line-height:1.5}
.app .op-maxrow b{font-family:'Geist Mono',monospace;font-weight:600;color:var(--warn)}
.app .op-kv{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}
.app .op-kv span{display:grid;gap:1px}
.app .op-kv .lbl{font-size:9px}
.app .op-kv b{font-family:'Geist Mono',monospace;font-weight:500;font-size:12.5px;font-variant-numeric:tabular-nums}
.app .op-max{border:1px solid rgba(180,83,9,.35);background:var(--warn-bg);border-radius:10px;padding:9px 12px}
.app .op-max .lbl{color:var(--warn)}
.app .op-max .vmax{font-family:'Geist Mono',monospace;font-weight:600;font-size:17px;color:var(--warn);margin-top:2px}
.app .op-max .sub{margin-top:1px;font-size:11.5px}
.app .opc details{border:1px solid var(--bd);border-radius:9px}
.app .opc summary{list-style:none;cursor:pointer;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--tx3);padding:8px 12px;text-align:center}
.app .opc summary::-webkit-details-marker{display:none}
.app .opc details[open] summary{border-bottom:1px solid var(--bd);color:var(--tx2)}
.app .opc details .kv{padding:5px 12px;font-size:12px}
.app .opc details .kv:last-child{border-bottom:0}
.app .opc .op-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
/* ads: administração de campanhas */
.app .recrow{border-left:3px solid var(--warn);background:var(--warn-bg);border-radius:8px;padding:9px 12px;font-size:12px;color:var(--tx2);line-height:1.5}
.app .recrow.ok{border-left-color:var(--ok);background:var(--ok-bg)}
.app .recrow.bad{border-left-color:var(--bad);background:var(--bad-bg)}
.app .recrow b{font-family:'Geist Mono',monospace;color:var(--tx)}
.app .camp-met{display:grid;grid-template-columns:repeat(4,1fr);gap:12px 14px}
.app .camp-met span{display:grid;gap:1px}
.app .camp-met .lbl{font-size:10px}
.app .camp-met .dim b{color:var(--tx2);font-size:13.5px;font-weight:500}
.app .camp-met b{font-family:'Geist Mono',monospace;font-weight:600;font-size:16px;font-variant-numeric:tabular-nums}
.app .camp-edit{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.app .camp-edit .fld{margin:0}
/* imagens: presets, conformidade, fidelidade */
.app .imx-pre{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.app .imx-pre .pill{padding:8px 14px;font-size:12px}
.app .imx-pre .pill small{display:block;font-size:11px;color:var(--tx2);font-weight:400}
.app .conf{display:inline-flex;gap:4px;align-items:center;font-family:'Geist Mono',monospace;font-size:11.5px;padding:3px 9px;border-radius:999px}
.app .conf.ok{background:var(--ok-bg);color:var(--ok)}
.app .conf.warn{background:var(--warn-bg);color:var(--warn)}
.app .conf.bad{background:var(--bad-bg);color:var(--bad)}
/* estúdio: aprovação com mapa de posições do anúncio */
.app .apv{display:none;margin-top:10px;border:1px solid var(--ac-30);background:var(--ac-06);border-radius:10px;padding:12px}
.app .apv.on{display:block}
.app .slots{display:flex;gap:5px;margin:8px 0 10px;flex-wrap:wrap}
.app .slot{width:34px;height:34px;border-radius:7px;border:1px solid var(--bd2);background:var(--carta);display:grid;place-items:center;font-family:'Geist Mono',monospace;font-size:10.5px;color:var(--tx3)}
.app .slot.cheio{background:var(--carta2);color:var(--tx2)}
.app .slot.principal{border-color:var(--tx3);font-weight:600}
.app .slot.nova{border-color:var(--ac);background:var(--ac-12);color:var(--ac);font-weight:600}
.app .slot.vazio{border-style:dashed;opacity:.55}
/* promoções: calendário mini + tarefas com progresso */
.app .cal5{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;margin-top:10px}
.app .cal5 span{height:34px;display:grid;place-items:center;border:1px solid var(--bd);border-radius:8px;font-family:'Geist Mono',monospace;font-size:11px;color:var(--tx2)}
.app .cal5 span.hj{border-color:var(--ac);background:var(--ac-06);color:var(--ac);font-weight:600}
.app .cal5-bar{margin-top:6px;height:24px;border-radius:7px;background:var(--warn-bg);border:1px solid rgba(180,83,9,.3);color:var(--warn);font-family:'Geist Mono',monospace;font-size:10.5px;display:flex;align-items:center;padding:0 10px;width:calc(60% - 2px)}
.app .tarefas{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.app .tarefa{display:grid;gap:6px;align-content:start}
.app .tarefa .tt{font-family:'Geist Mono',monospace;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--warn)}
.app .tarefa b{font-size:13px;font-weight:600;line-height:1.35}
.app .tprog{height:4px;background:var(--carta2);border-radius:2px;overflow:hidden}
.app .tprog i{display:block;height:100%;background:var(--ac)}
.app .tarefa .ver{font-size:12.5px;line-height:1.45;color:var(--tx2);border-top:1px solid var(--bd);padding-top:6px}
/* nova oportunidade: formulário com calculadora ao vivo */
.app .op-form{display:none;position:fixed;left:50%;top:8vh;transform:translateX(-50%);width:min(460px,calc(100vw - 24px));max-height:84vh;overflow:auto;background:var(--carta);border:1px solid var(--bd2);border-radius:14px;box-shadow:var(--sombra2);z-index:85}
.app .op-form.on{display:block}
.app .op-form .fhd{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--bd)}
.app .op-form .fhd b{font-size:14px}
.app .op-form .fhd .x{width:26px;height:26px;border-radius:7px;display:grid;place-items:center;color:var(--tx3);cursor:pointer;border:1px solid var(--bd)}
.app .op-form .fbody{padding:14px 16px;display:grid;gap:11px}
.app .op-form .f2{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.app .op-form .fft{padding:12px 16px;border-top:1px solid var(--bd);display:flex;gap:8px;justify-content:flex-end}
/* meu perfil: prévia do avatar no modal + avatar do rail com foto */
.app .pf-av{width:56px;height:56px;border-radius:50%;background:var(--ac-12);color:var(--ac);display:grid;place-items:center;font-weight:700;font-size:18px;flex:none}
.app .pf-av.foto,.app .rc-av.foto{color:transparent;background-size:cover;background-position:center}
/* ads v2: strip de 6 + edição inline na tabela */
.app .strip.s6{grid-template-columns:repeat(6,1fr)}
.app .tedit{display:inline-flex;align-items:center;gap:4px}
.app .tedit .inp{height:28px;padding:0 8px}
.app .tedit .inp input{width:52px;text-align:right;font-family:'Geist Mono',monospace;font-size:12.5px}
.app .leg{display:flex;gap:16px;margin-top:8px;font-size:11.5px;color:var(--tx2);flex-wrap:wrap}
.app .leg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
/* fornecedores + folha de pedido de compra (PDF via impressão) */
.app .lc-view{display:none;position:fixed;inset:0;z-index:88;background:rgba(12,17,24,.55);overflow:auto;padding:28px 16px}
.app .lc-view.on{display:block}
.app .lc-bar{max-width:760px;margin:0 auto 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.app .lc-bar .esp{flex:1}
.app .lc-folha{max-width:760px;margin:0 auto;background:#fff;color:#101828;border-radius:12px;box-shadow:0 30px 80px -30px rgba(0,0,0,.6);padding:34px 38px;font-size:13.5px}
.app .lc-folha .lc-hd{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:2px solid #101828;padding-bottom:14px;margin-bottom:6px}
.app .lc-folha .lc-hd .marca{color:#101828;font-weight:700;font-size:16px;padding:0}
.app .lc-folha .lc-hd .marca i{background:#059669}
.app .lc-folha h5{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#475467;margin:22px 0 4px;font-family:'Geist Mono',monospace}
.app .lc-folha table{width:100%;border-collapse:collapse;font-size:13px}
.app .lc-folha th{text-align:left;font-family:'Geist Mono',monospace;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:#475467;padding:7px 8px;border-bottom:1px solid #d0d5dd}
.app .lc-folha td{padding:8px;border-bottom:1px solid #e4e7ec}
.app .lc-folha .num{text-align:right;font-family:'Geist Mono',monospace;font-variant-numeric:tabular-nums}
.app .lc-folha .lc-tot td{border-bottom:0;font-weight:600;border-top:2px solid #101828}
.app .lc-folha .lc-obs{font-size:11.5px;color:#475467;margin-top:6px}
.app .lc-folha .lc-foot{margin-top:26px;padding-top:12px;border-top:1px solid #e4e7ec;font-size:11px;color:#667085;display:flex;justify-content:space-between;font-family:'Geist Mono',monospace}
@media print{
  .app > :not(.lc-view){display:none!important}
  .app .lc-view{display:block!important;position:static!important;background:#fff!important;padding:0!important;overflow:visible!important}
  .app .lc-bar{display:none!important}
  .app .lc-folha{box-shadow:none!important;border-radius:0!important;max-width:none!important;padding:0!important}
}
/* produtos: seleção em massa */
.app .pc{position:relative}
.app .pcx{position:absolute;top:6px;left:6px;z-index:2;width:32px;height:32px;background:var(--carta);border-radius:8px;box-shadow:0 1px 4px rgba(16,24,40,.22)}
.app .pcx i{width:17px;height:17px}
.app .pc.mk{box-shadow:0 0 0 2px var(--ac)}
.app .pfx{display:flex;gap:10px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.app .pvfm{display:inline-flex;gap:6px;flex-wrap:wrap}
.app .pvfm[hidden]{display:none}
@media (min-width:961px){
  .app #pv-wrap:not(.solo){align-items:stretch}
  .app #pv-wrap:not(.solo) .gav{position:static;display:flex;flex-direction:column}
  .app #pv-wrap:not(.solo) .gav .gbt{margin-top:auto;padding-top:14px}
}
.app .bulk{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--carta);border:1px solid var(--ac-30);border-radius:12px;box-shadow:var(--sombra);padding:9px 14px;margin-bottom:12px}
.app .bulk b{font-family:'Geist Mono',monospace;font-weight:600}
.app .bulk .esp{flex:1}
/* dock (celular) + rótulo */
.app .dock{display:none}
.app .rot{position:fixed;left:244px;bottom:12px;z-index:50;font-family:'Geist Mono',monospace;font-size:11px;color:var(--tx2);background:var(--carta);border:1px solid var(--bd2);padding:3px 8px;border-radius:7px;pointer-events:none}

@media (max-width:1180px){
  .app .pgrid,.app .pgrid.d6,.app .pgrid.d8,.app .mesa:not(.solo) .pgrid.d6,.app .mesa:not(.solo) .pgrid.d8{grid-template-columns:repeat(3,minmax(0,1fr))}
  .app .pgrid.d6 .ph-img,.app .pgrid.d8 .ph-img{height:110px}
  .app .c-hero{grid-column:span 12}.app .c-4{grid-column:span 6}
  .app .c-graf,.app .c-top{grid-column:span 12}
  .app .op-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app .tarefas{grid-template-columns:1fr}
  .app .strip.s6{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:960px){
  .app .mesa{grid-template-columns:1fr}
  .app .gav{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:78vh;overflow:auto;border-radius:16px 16px 0 0;z-index:70;display:none;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .app .gav.open{display:block}
  .app .strip,.app .strip.s6{grid-template-columns:repeat(2,1fr)}
  .app .cols,.app .est{grid-template-columns:1fr}
  .app .acesso.on{grid-template-columns:1fr}
  .app .ac-esq{display:none}
}
@media (max-width:767px){
  .app .shell{grid-template-columns:1fr}
  .app .rail{display:none}
  .app .top{padding:10px 14px}
  .app .top .marca-cel{display:flex;align-items:center;gap:8px;font-weight:700;font-size:14px}
  
  .app .busca{width:34px;max-width:34px;padding:0;justify-content:center}
  .app .busca span,.app .busca kbd{display:none}
  .app .corpo{padding:16px 14px 96px}
  .app .op-grid{grid-template-columns:1fr}
  .app .camp-met{grid-template-columns:repeat(2,1fr)}
  .app .pgrid,.app .pgrid.d6,.app .pgrid.d8,.app .mesa:not(.solo) .pgrid.d6,.app .mesa:not(.solo) .pgrid.d8{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app .tbar{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .app .dock{display:flex;position:fixed;left:14px;right:14px;bottom:calc(10px + env(safe-area-inset-bottom));height:42px;align-items:center;justify-content:space-around;background:var(--carta);border:1px solid var(--bd2);border-radius:999px;box-shadow:var(--sombra2);z-index:65;padding:0 6px}
  .app .dock button{display:grid;place-items:center;width:40px;height:36px;border:0;background:none;color:var(--tx3);cursor:pointer;border-radius:999px}
  .app .dock button.on{color:var(--ac)}
  .app .rot{left:12px;bottom:calc(64px + env(safe-area-inset-bottom))}
  .app .tst-host{right:50%;transform:translateX(50%);justify-items:center;bottom:calc(66px + env(safe-area-inset-bottom))}
  .app .fab{bottom:calc(64px + env(safe-area-inset-bottom))}
  .app .iap{left:10px;right:10px;width:auto;height:min(70vh,560px);bottom:calc(64px + env(safe-area-inset-bottom))}
  .app .menu{position:fixed;left:10px;right:10px;bottom:calc(62px + env(safe-area-inset-bottom));top:auto}
  .app th.cel-x,.app td.cel-x{display:none}
  .app .ph .dir{max-width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .app .ph .dir::-webkit-scrollbar{display:none}
  .app .ph .dir .seg,.app .ph .dir .bt,.app .ph .dir .chip{flex:none}
  .app .so-cel{display:grid}
  .app .mgrid{grid-template-columns:1fr 1fr;gap:1px;border-bottom:1px solid var(--bd);margin-bottom:4px;padding-bottom:4px}
  .app .dre-l{grid-template-columns:minmax(0,1fr) auto auto;gap:2px 7px}
  .app .dre-l .n{font-size:12px}
  .app .dre-l .pc2{width:36px}
  .app .dre-l .b{grid-column:1/-1;grid-row:2}
  .app .tprod b{max-width:150px}
  .app .stq{display:none}
}
@media (min-width:768px){.app .top .marca-cel{display:none}}
@media (prefers-reduced-motion:reduce){.app .corpo,.app .tst{animation:none}.app .tst.some{animation:none;opacity:0}}
