:root{
  color-scheme:light;
  --bg:#fafafa;--card:#fff;--muted:#f4f4f5;--line:#e4e4e7;--line2:#d4d4d8;
  --tx:#18181b;--tx2:#52525b;--tx3:#71717a;
  --g:#157a35;--g-deep:#09381d;--g-soft:#ecf5ee;--g-line:#bfdcc8;
  --r:#c81e1e;--r-soft:#fdeeed;--au:#8a5a12;--au-soft:#fdf6e7;
  --radius:8px;--radius-lg:12px;--shadow:0 1px 2px rgba(24,24,27,.06);
  --font:'Geist',system-ui,sans-serif;--mono:'Geist Mono',ui-monospace,monospace;
}
:root[data-tema="escuro"]{
  color-scheme:dark;
  --bg:#0c0f0d;--card:#131715;--muted:#1a1f1c;--line:#262c28;--line2:#333a35;
  --tx:#f4f4f5;--tx2:#b4b4bb;--tx3:#8b8b94;
  --g:#3fb36a;--g-deep:#1f6e3d;--g-soft:#15281c;--g-line:#24452f;
  --r:#f26b6b;--r-soft:#2a1514;--au:#e0a541;--au-soft:#2a2213;--shadow:none;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--tx);font-family:var(--font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3,h4{letter-spacing:-.015em}
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
/* barra lateral */
.side{border-right:1px solid var(--line);background:var(--card);padding:16px 12px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;overflow:auto}
.marca{display:flex;align-items:center;gap:10px;padding:2px 6px}
.marca-ic{width:32px;height:32px;border-radius:8px;background:var(--g-deep);color:#fff;display:grid;place-items:center;font-size:18px;flex:none}
.marca b{display:block;font-weight:600;font-size:14px;line-height:1.2}
.marca span{font-size:12px;color:var(--tx2)}
.grupo-nav p{margin:0 0 4px;padding:0 8px;font-size:12px;color:var(--tx3)}
.nav{display:flex;flex-direction:column;gap:1px}
.nav button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;padding:7px 8px;border-radius:var(--radius);color:var(--tx2)}
.nav button i{font-size:17px}
.nav button:hover{background:var(--muted);color:var(--tx)}
.nav button[aria-current="page"]{background:var(--muted);color:var(--tx);font-weight:500;box-shadow:inset 2px 0 0 var(--tx)}
.cont{margin-left:auto;font-size:12px;border-radius:999px;padding:0 7px;line-height:18px;background:var(--muted);color:var(--tx2)}
.cont.urg{background:var(--r);color:#fff}
.side-pe{margin-top:auto;display:flex;flex-direction:column;gap:8px}
.amb{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--tx2);padding:8px;border:1px dashed var(--line2);border-radius:var(--radius)}
.pulso{width:8px;height:8px;border-radius:50%;background:var(--au);flex:none}
/* topo */
.topo{display:flex;align-items:center;gap:12px;padding:10px 24px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(6px);position:sticky;top:0;z-index:5;min-height:56px}
.trilha{font-size:13px;color:var(--tx2)}
.trilha b{color:var(--tx);font-weight:500}
.extracao{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx2);border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 4px;margin-left:auto;white-space:nowrap}
.extracao span.hora{background:var(--g-soft);color:var(--g-deep);border-radius:999px;padding:0 8px;font-weight:500;font-variant-numeric:tabular-nums}
:root[data-tema="escuro"] .extracao span.hora{color:var(--g)}
.busca{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--radius);padding:5px 10px;color:var(--tx3);width:240px;background:var(--bg)}
.busca:focus-within{border-color:var(--g)}
.busca input{all:unset;color:var(--tx);flex:1;min-width:0}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:var(--radius);padding:6px 12px;font-size:13px;white-space:nowrap;transition:background-color .15s,border-color .15s}
.btn:hover{background:var(--muted)}
.btn.pri{background:var(--g-deep);border-color:var(--g-deep);color:#fff}
.btn.pri:hover{background:var(--g)}
.btn.perigo{color:var(--r);border-color:color-mix(in srgb,var(--r) 35%,var(--line))}
.btn.perigo:hover{background:var(--r-soft)}
.btn.ic{padding:6px 8px}
.btn:disabled{opacity:.5;cursor:not-allowed}
main:focus{outline:none}
main{padding:24px;display:flex;flex-direction:column;gap:20px;max-width:1760px;width:100%;margin:0 auto}
.cab{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.cab h1{margin:0;font-size:20px;font-weight:600}
.cab h2{margin:0;font-size:16px;font-weight:600}
.cab p{margin:2px 0 0;color:var(--tx2)}
.acoes{display:flex;gap:8px;flex-wrap:wrap}
/* cartões */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.card-pad{padding:16px}
.grade{display:grid;gap:12px}
.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(270px,1fr))}
.met{padding:14px 16px}
.met span{color:var(--tx2);font-size:13px}
.met b{display:block;font-size:24px;font-weight:600;letter-spacing:-.02em;margin-top:2px;font-variant-numeric:tabular-nums}
.met small{font-size:12px;color:var(--tx3)}
.selo{display:inline-flex;align-items:center;gap:5px;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid var(--line);color:var(--tx2);white-space:nowrap;background:var(--card)}
.selo.ok{background:var(--g-soft);border-color:var(--g-line);color:var(--g-deep)}
:root[data-tema="escuro"] .selo.ok{color:var(--g)}
.selo.alerta{background:var(--au-soft);border-color:transparent;color:var(--au)}
.selo.ruim{background:var(--r-soft);border-color:transparent;color:var(--r)}
.selo .bol{width:6px;height:6px;border-radius:50%;background:currentColor}
/* cartão clicável: o link cobre o cartão; o conteúdo continua legível */
.clic{position:relative;display:flex;flex-direction:column;gap:12px;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);transition:border-color .15s}
.clic:hover{border-color:var(--line2)}
.clic .cobre{all:unset;position:absolute;inset:0;border-radius:var(--radius-lg);cursor:pointer}
.clic .cobre:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.clic-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.clic-tit{display:flex;align-items:center;gap:10px;min-width:0}
.clic-tit .txt{min-width:0}
.clic-tit .txt b{display:block;font-weight:500}
.clic-tit .txt span{display:block;font-size:12px;color:var(--tx2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--muted);display:grid;place-items:center;font-size:18px;color:var(--tx2);flex:none}
.avatar.g{background:var(--g-soft);color:var(--g-deep)}
:root[data-tema="escuro"] .avatar.g{color:var(--g)}
.dezenas{display:flex;gap:4px}
.dezenas span{font-family:var(--mono);font-size:12px;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--tx2)}
.linha-kv{display:flex;justify-content:space-between;gap:12px;font-size:13px;color:var(--tx2)}
.linha-kv b{color:var(--tx);font-weight:500;font-variant-numeric:tabular-nums}
.barra{height:6px;border-radius:3px;background:var(--muted);overflow:hidden}
.barra i{display:block;height:100%;background:var(--g);border-radius:3px;transition:width .5s ease}
.ritmo{display:flex;gap:3px;align-items:flex-end;height:22px}
.ritmo i{flex:1;background:var(--g-line);border-radius:2px}
/* tabelas */
table.tab{width:100%;border-collapse:collapse;font-size:13px}
table.tab th{font-weight:400;color:var(--tx3);text-align:left;padding:8px 16px;border-bottom:1px solid var(--line);font-size:12px;white-space:nowrap}
table.tab td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:middle}
table.tab tr:first-child td{border-top:0}
table.tab tbody tr{cursor:pointer;transition:background-color .15s}
table.tab tbody tr:hover{background:var(--muted)}
table.tab .t{all:unset;cursor:pointer;font-weight:500;color:var(--tx)}
table.tab .t:focus-visible{outline:2px solid var(--g);outline-offset:2px;border-radius:4px}
table.tab .s{display:block;font-size:12px;color:var(--tx2);max-width:560px;white-space:normal;overflow-wrap:anywhere}
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.filtros{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.seg button{all:unset;cursor:pointer;padding:5px 10px;font-size:13px;color:var(--tx2)}
.seg button[aria-pressed="true"]{background:var(--muted);color:var(--tx);font-weight:500}
.seg button:focus-visible{outline:2px solid var(--g);outline-offset:-2px}
/* funil */
.funil{display:flex;flex-direction:column;gap:8px}
.etapa{display:grid;grid-template-columns:150px minmax(0,1fr) 80px;gap:12px;align-items:center;font-size:13px}
.etapa .barra{height:10px;border-radius:5px}
/* painel lateral */
.veu{position:fixed;inset:0;background:rgba(9,9,11,.35);opacity:0;pointer-events:none;transition:opacity .2s;z-index:20}
.veu.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(580px,100%);background:var(--card);border-left:1px solid var(--line);z-index:21;transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column;visibility:hidden}
.sheet.on{transform:none;visibility:visible}
.sheet-cab{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:12px}
.sheet-cab h2{margin:0;font-size:16px;font-weight:600}
.sheet-cab p{margin:2px 0 0;color:var(--tx2);font-size:13px}
.sheet-cab .btn.ic{margin-left:auto}
.abas{display:flex;gap:2px;padding:0 20px;border-bottom:1px solid var(--line);overflow-x:auto}
.abas button{all:unset;cursor:pointer;padding:10px;color:var(--tx2);font-size:13px;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.abas button[aria-selected="true"]{color:var(--tx);border-bottom-color:var(--g)}
.abas button:focus-visible{outline:2px solid var(--g);outline-offset:-2px;border-radius:4px}
.sheet-corpo{padding:20px;overflow:auto;flex:1;display:flex;flex-direction:column;gap:18px}
.sheet-pe{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.sheet-pe:empty{display:none}
.secao h3{margin:0 0 6px;font-size:13px;font-weight:600}
.secao p.aj{margin:0 0 10px;font-size:12px;color:var(--tx2)}
.campo{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.secao .campo:first-of-type{border-top:0}
.campo label{font-size:13px}
.campo small{display:block;color:var(--tx3);font-size:12px}
input[type=text],input[type=number],input[type=time],select,textarea{font:inherit;color:var(--tx);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:6px 10px}
input[type=number]{width:96px;font-variant-numeric:tabular-nums}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--g);outline-offset:1px}
input[type=range]{accent-color:var(--g);width:180px}
textarea{width:100%;min-height:72px;resize:vertical}
.chave{position:relative;width:36px;height:20px;flex:none}
.chave input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.chave span{position:absolute;inset:0;border-radius:999px;background:var(--line2);transition:background-color .15s;pointer-events:none}
.chave span:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}
.chave input:checked+span{background:var(--g)}
.chave input:checked+span:after{transform:translateX(16px)}
.chave input:focus-visible+span{outline:2px solid var(--g);outline-offset:2px}
.chave input:disabled{cursor:not-allowed}
.aviso{display:flex;gap:8px;font-size:12px;color:var(--au);background:var(--au-soft);border-radius:var(--radius);padding:8px 10px}
/* conversa */
.conversa{background:var(--muted);border-radius:var(--radius-lg);padding:14px;display:flex;flex-direction:column;gap:6px;max-height:380px;overflow:auto}
.dia{align-self:center;font-size:12px;color:var(--tx3);background:var(--card);padding:1px 10px;border-radius:999px;margin:4px 0}
.msg{max-width:80%;padding:7px 10px;border-radius:10px;font-size:13px;line-height:1.45}
.msg small{display:flex;justify-content:flex-end;gap:4px;align-items:center;font-size:12px;color:var(--tx3);margin-top:2px}
.msg.lead{align-self:flex-start;background:var(--card);border:1px solid var(--line)}
.msg.robo{align-self:flex-end;background:var(--g-soft);border:1px solid var(--g-line)}
.msg.op{align-self:flex-end;background:var(--card);border:1px solid var(--g)}
.msg.sis{align-self:center;background:transparent;font-size:12px;color:var(--tx2);padding:2px;border:0}
.resp{display:flex;gap:8px}
.resp input{flex:1}
.prontas{display:flex;gap:6px;flex-wrap:wrap}
.prontas button{all:unset;cursor:pointer;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 10px;color:var(--tx2)}
.prontas button:hover{background:var(--muted);color:var(--tx)}
.prontas button:focus-visible{outline:2px solid var(--g);outline-offset:2px}
/* linha do tempo */
.tempo{list-style:none;margin:0;padding:0 0 0 14px;border-left:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.tempo li{position:relative;font-size:13px}
.tempo li:before{content:"";position:absolute;left:-19px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--card);border:2px solid var(--g)}
.tempo li.ruim:before{border-color:var(--r)}
.tempo li small{display:block;color:var(--tx3);font-size:12px}
/* ajustes */
.ajustes{display:grid;grid-template-columns:220px minmax(0,1fr);gap:20px;align-items:start}
.ajustes nav{display:flex;flex-direction:column;gap:1px;position:sticky;top:76px}
.ajustes nav button{all:unset;box-sizing:border-box;cursor:pointer;padding:7px 10px;border-radius:var(--radius);color:var(--tx2);font-size:13px;display:flex;gap:8px;align-items:center}
.ajustes nav button:hover{background:var(--muted)}
.ajustes nav button[aria-current="true"]{background:var(--muted);color:var(--tx);font-weight:500}
.ajustes nav button:focus-visible,.nav button:focus-visible{outline:2px solid var(--g);outline-offset:1px}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-flex;align-items:center;gap:4px;font-size:12px;border:1px solid var(--line);border-radius:999px;padding:2px 4px 2px 10px;background:var(--card)}
.tag button{all:unset;cursor:pointer;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:var(--tx3)}
.tag button:hover{background:var(--muted);color:var(--r)}
.tag button:focus-visible{outline:2px solid var(--g)}
.previa{position:relative;height:40px;border-radius:var(--radius);background:var(--muted);margin-top:8px}
.previa i{position:absolute;top:12px;width:16px;height:16px;border-radius:50%;background:var(--g);transition:left .3s ease}
.salvar{position:sticky;bottom:16px;margin-top:12px;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:10px 14px;border-radius:var(--radius-lg);background:var(--card);border:1px solid var(--line2);box-shadow:0 8px 24px rgba(0,0,0,.08);transform:translateY(12px);opacity:0;pointer-events:none;transition:transform .2s,opacity .2s}
.salvar.on{transform:none;opacity:1;pointer-events:auto}
.vazio{padding:40px 20px;text-align:center;color:var(--tx2)}
.vazio i{font-size:28px;color:var(--tx3)}
.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,20px);opacity:0;background:var(--tx);color:var(--bg);padding:8px 14px;border-radius:var(--radius);font-size:13px;transition:transform .2s,opacity .2s;z-index:30;pointer-events:none}
.toast.on{opacity:1;transform:translate(-50%,0)}
.confirma{border:1px solid color-mix(in srgb,var(--r) 35%,var(--line));background:var(--r-soft);border-radius:var(--radius-lg);padding:12px;display:none;flex-direction:column;gap:8px}
.confirma.on{display:flex}
.qr{width:160px;height:160px;border-radius:var(--radius);background:repeating-conic-gradient(var(--tx) 0 25%,var(--card) 0 50%) 0 0/16px 16px;border:8px solid var(--card);outline:1px solid var(--line)}
.mini{font-size:12px;color:var(--tx2)}
.mono{font-family:var(--mono);font-size:12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.menu-movel{display:none}
/* palpites em forma de pule */
.pule{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--card);padding:14px 16px;position:relative;display:flex;flex-direction:column;gap:10px}
.pule:before,.pule:after{content:"";position:absolute;left:-1px;right:-1px;height:8px;background:radial-gradient(circle at 6px 0,var(--bg) 5px,transparent 5.5px) 0 0/12px 8px repeat-x}
.pule:before{top:-1px}.pule:after{bottom:-1px;transform:rotate(180deg)}
.milhares{display:flex;gap:6px;flex-wrap:wrap}
.milhares input{width:64px;text-align:center;font-family:var(--mono);letter-spacing:.08em}
.milhares span{font-family:var(--mono);border:1px solid var(--line);border-radius:6px;padding:2px 8px;letter-spacing:.08em}
/* arte 4:5 (1080 × 1350). Tudo em cqw: a miniatura e a peça grande são a mesma arte. Cores fixas: é imagem, não muda no modo escuro. */
.arte{container-type:inline-size;position:relative;width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:4px;background:#fff;color:#fff;line-height:1.05;isolation:isolate;font-family:var(--font);user-select:none;text-align:left}
.arte>*{position:absolute}
.arte-vazia{display:grid;place-items:center;background:var(--muted);color:var(--tx3);font-size:12px}
.arte-vazia span{position:static}
/* arte sobre a referência: a base é a própria arte do cliente; por cima só os cards novos e a linha de 18+ */
.arte.ref{background-color:#0b5a2a;background-repeat:no-repeat;background-size:100% 100%;font-family:'Figtree',var(--font);line-height:1}
.a-tx{white-space:nowrap;text-align:center;line-height:1;color:#fff}
.a-foto{background-size:cover;background-position:center;background-repeat:no-repeat}
.a-foto.sem{display:grid;place-items:center;background:#0b3d1f;color:#fff;font-size:1.8cqw;font-weight:800}
.a-pil{background:linear-gradient(90deg,#d8120a,#bc0a0a 50%,#a20303)}
.a-18p{color:#064d1a;font-weight:600}
@media (max-width:600px){ table.tab, table.heat{display:block;overflow-x:auto;max-width:100%} } /* tabelas rolam por dentro no celular, sem rolar a página */
.a-18t{color:#eef7f0;font-weight:600;-webkit-text-stroke:.37cqw rgba(0,0,0,.55);paint-order:stroke fill}
/* criativos: telas */
.cri-barra{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;padding:12px 16px}
.cri-barra .est{display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex:1;min-width:240px}
.cri-abas{flex-wrap:wrap;align-self:flex-start}
.rolar{overflow-x:auto}
mark.ph{background:var(--r-soft);color:var(--r);border-radius:4px;padding:0 3px;font-weight:500}
table.rot td{vertical-align:top;padding:10px 12px;min-width:190px;font-size:12px}
table.rot td:first-child{min-width:130px}
table.rot tbody tr,table.lote tbody tr,table.eq tbody tr{cursor:default}
table.rot tbody tr:hover,table.lote tbody tr:hover,table.eq tbody tr:hover{background:none}
table.rot tr.hoje td{background:color-mix(in srgb,var(--g-soft) 55%,transparent)}
.rot .post+.post{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.rot .tipo{font-weight:600;color:var(--r)}
.rot .txt{white-space:pre-line;color:var(--tx);margin-top:2px}
.rot .nota{display:block;color:var(--tx3);font-style:italic;margin-top:4px}
table.lote td{vertical-align:top}
.cel-arte{display:flex;flex-direction:column;gap:6px;width:170px}
.cel-arte .ver{all:unset;cursor:pointer;display:block;border-radius:6px}
.cel-arte .ver:focus-visible,.heat .cel:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.cel-arte .ver.bloq .arte{opacity:.45;filter:grayscale(.7)}
.cel-arte .acoes .btn{padding:3px 8px;font-size:12px}
.cel-arte .linha-kv{font-size:12px;align-items:center}
.cel-arte .ver,.prov-wrap{position:relative}
.motivo{margin:0;font-size:12px;color:var(--r)}.motivo.au{color:var(--au)}
.bib{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.bib>.card{padding:10px;display:flex;flex-direction:column;gap:6px}
.bib .linha-kv{align-items:center}
.fotos-bicho{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.fotos-bicho>.card{padding:10px;display:flex;flex-direction:column;gap:8px}
.fotos-bicho .tr{display:grid;grid-template-columns:1fr;gap:6px}
.mini-foto img{display:block;width:100%;aspect-ratio:218/184;object-fit:cover;border-radius:10px}
.sem-foto{display:grid;place-items:center;aspect-ratio:218/184;border:1px dashed var(--line);border-radius:10px;color:var(--tx3);font-size:12px}
.excluida .arte{filter:grayscale(1);opacity:.45}
.ver-ref{all:unset;cursor:pointer;display:block;border-radius:6px}
.ver-ref:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.mini-foto{container-type:inline-size;display:flex;flex-direction:column;gap:2px;text-align:center}
.mini-foto .foto{aspect-ratio:200/170;border-radius:6px}
.mini-foto .foto.ph span{font-size:40cqw}.mini-foto .foto.ph small{font-size:12cqw}
.heat{border-collapse:separate;border-spacing:4px;font-size:12px}
.heat th{font-weight:400;color:var(--tx3);text-align:center;white-space:nowrap;line-height:1.3}
.heat th.g{text-align:left;color:var(--tx);font-weight:500;padding-right:8px}
.heat th.hoje{color:var(--g-deep);font-weight:600}
:root[data-tema="escuro"] .heat th.hoje{color:var(--g)}
.heat .cel{all:unset;box-sizing:border-box;cursor:pointer;position:relative;width:36px;height:30px;border-radius:6px;display:grid;place-items:center;color:#fff;font-size:11px;font-weight:600}
.heat .cel.col{outline:2px solid var(--r);outline-offset:1px;box-shadow:inset 0 0 0 2px #fff}
.fed-dot{position:absolute;right:3px;top:3px;width:7px;height:7px;border-radius:50%;background:#f7e46b;box-shadow:0 0 0 1px rgba(0,0,0,.3)}
.legenda{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:12px;color:var(--tx2)}
.legenda span{display:inline-flex;align-items:center;gap:6px}
.legenda i{display:inline-block;width:12px;height:12px;border-radius:3px}
.eqc{display:inline-block;min-width:26px;text-align:center;border-radius:4px;padding:0 4px;background:color-mix(in srgb,var(--g) calc(var(--a)*100%),transparent)}
.fone{width:100%;max-width:360px;border:10px solid #18181b;border-radius:36px;background:#efe7dc;overflow:hidden;display:flex;flex-direction:column;height:680px}
:root[data-tema="escuro"] .fone{background:#0b141a;border-color:#2a2f2c}
.fone-cab{background:#075e54;color:#fff;padding:10px 14px;display:flex;gap:10px;align-items:center}
.fone-corpo{flex:1;overflow:auto;padding:10px;display:flex;flex-direction:column;gap:8px}
.wa{align-self:flex-start;max-width:90%;width:90%;background:#fff;color:#111;border-radius:8px;padding:4px;font-size:12.5px;box-shadow:0 1px 1px rgba(0,0,0,.12)}
:root[data-tema="escuro"] .wa{background:#202c33;color:#e9edef}
.wa p{margin:4px 6px;white-space:pre-line;line-height:1.4}
.wa>small{display:block;text-align:right;color:#667781;font-size:11px;margin:0 6px 2px}
.wa-video{display:flex;align-items:center;justify-content:center;gap:6px;height:120px;border-radius:6px;background:#1f2937;color:#fff;font-size:12px}
.app>div{min-width:0}
@media (max-width:900px){ .cri-barra .acoes{width:100%} }
/* busca e feed */
.busca{position:relative}
.resultados{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.08);display:none;flex-direction:column;padding:4px;z-index:6;max-height:320px;overflow:auto}
.resultados.on{display:flex}
.resultados button{all:unset;cursor:pointer;padding:7px 10px;border-radius:6px;font-size:13px;color:var(--tx);display:flex;justify-content:space-between;gap:8px}
.resultados button:hover,.resultados button:focus-visible{background:var(--muted)}
.resultados span{color:var(--tx3);font-size:12px}
.feed{display:flex;flex-direction:column;gap:0;max-height:360px;overflow:auto;font-size:13px}
.feed div{display:grid;grid-template-columns:64px 90px minmax(0,1fr);gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.feed div:first-child{border-top:0}
.feed div.novo{animation:entra .4s ease}
@keyframes entra{from{background:var(--g-soft)}to{background:transparent}}
.servico{display:flex;flex-direction:column;gap:10px}
.servico .linha-kv b{font-family:var(--mono);font-weight:400;font-size:12px}
/* ===== organização 2026-11-11: tokens e peças comuns (padrão do dash do BZ, sem Next) ===== */
:root{--h2:16px}
.cab h2{font-size:var(--h2)}
.grade.g2{grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}
@media (min-width:1500px){ .g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))} }
.trilha{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}
.trilha .sep{color:var(--tx3)}
.voltar{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--tx2);padding:3px 8px;border-radius:var(--radius);border:1px solid var(--line);white-space:nowrap}
.voltar:hover{background:var(--muted);color:var(--tx)}
.voltar:focus-visible{outline:2px solid var(--g);outline-offset:2px}
.voltar[hidden]{display:none}
.selo-sim{cursor:help}
.busca kbd{font-family:var(--mono);font-size:11px;border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--tx3);background:var(--card)}
.resultados .tipo{padding:6px 10px 2px;font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.04em}
.resultados button[aria-selected="true"]{background:var(--muted)}
.resultados mark{background:var(--au-soft);color:inherit;border-radius:2px}
/* stat tile */
.stat{display:flex;flex-direction:column;gap:2px;padding:14px 16px}
.stat .rot{color:var(--tx2);font-size:13px}
.stat .val{font-size:24px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.3}
.stat .val.ruim{color:var(--r)}
.stat .dica{font-size:12px;color:var(--tx3)}
.delta{font-size:12px;font-variant-numeric:tabular-nums;color:var(--tx2)}
.delta.ok{color:var(--g)}.delta.ruim{color:var(--r)}
.delta span{color:var(--tx3)}
/* filtro de data único */
.fdata{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.fdata input[type=date]{font:inherit;font-size:13px;color:var(--tx);background:var(--card);border:1px solid var(--line);border-radius:6px;padding:4px 8px}
.fdata select{font-size:13px;padding:5px 8px}
.fdata .inv{font-size:12px;color:var(--r);flex-basis:100%}
/* tabelas: ordenar, coluna principal fixa, escolher colunas */
table.tab th[data-ord]{cursor:pointer;user-select:none}
table.tab th[data-ord]:hover{color:var(--tx)}
table.tab th[data-ord]:after{content:"\2195";opacity:.35;margin-left:4px;font-size:11px}
table.tab th[aria-sort="ascending"]:after{content:"\2191";opacity:1}
table.tab th[aria-sort="descending"]:after{content:"\2193";opacity:1}
table.tab th[data-ord]:focus-visible{outline:2px solid var(--g);outline-offset:-2px}
@media (max-width:600px){ table.tab .fixa{position:sticky;left:0;background:var(--card);z-index:1;box-shadow:1px 0 0 var(--line)} }
.colunas{position:relative}
.colunas summary{list-style:none;cursor:pointer}
.colunas summary::-webkit-details-marker{display:none}
.colunas .menu{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.08);padding:8px 10px;z-index:6;display:flex;flex-direction:column;gap:6px;min-width:180px;font-size:13px}
.colunas .menu label{display:flex;gap:8px;align-items:center}
/* estado vazio padrão */
.vazio{display:flex;flex-direction:column;align-items:center;gap:4px}
.vazio b{color:var(--tx);font-weight:500}
.vazio p{margin:0;font-size:13px}
.vazio .acoes{margin-top:8px;justify-content:center}
/* robôs do MVP */
.bot{display:flex;flex-direction:column;gap:12px}
.bot .kvs{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px}
.bot .kvs div{background:var(--muted);border-radius:var(--radius);padding:8px 10px}
.bot .kvs span{display:block;font-size:12px;color:var(--tx2)}
.bot .kvs b{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
.link-linha{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;padding:6px 0;border-top:1px solid var(--line)}
.link-linha:first-child{border-top:0}
.link-linha .mono{background:var(--muted);padding:2px 6px;border-radius:4px;overflow-wrap:anywhere}
.link-linha .rot{min-width:130px;color:var(--tx2)}
.copiar{all:unset;cursor:pointer;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:6px;color:var(--tx3);flex:none}
.copiar:hover{background:var(--muted);color:var(--tx)}
.copiar:focus-visible{outline:2px solid var(--g)}
.faixa{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;border-radius:var(--radius-lg);font-size:13px}
.faixa.ruim{background:var(--r-soft);color:var(--r)}
.faixa.alerta{background:var(--au-soft);color:var(--au)}
.faixa .btn{margin-left:auto}
.sub-abas{align-self:flex-start;flex-wrap:wrap}
@media (min-width:1100px){ .largo{grid-column:span 2} }
table.tab{position:relative} /* textos .sr ficam presos dentro da tabela que rola no celular */
@media (max-width:900px){ .topo{gap:8px;padding:10px 16px} .topo .extracao{display:none} .trilha .grp{display:none} }
@media (max-width:600px){ .g4{grid-template-columns:repeat(2,minmax(0,1fr))} .stat .val{font-size:20px} .filtros .busca{width:100%!important} }
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* Peças da Social Media (D28) */
.app.modo-sm{grid-template-columns:1fr}
.modo-sm .side,.modo-sm .busca,.modo-sm #sino,.modo-sm .extracao,.modo-sm .menu-movel{display:none!important}
.sm-faixa{align-items:center;flex-wrap:wrap;color:var(--tx);background:var(--muted)}
.sm-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;padding:22px 16px;border:2px dashed var(--line2);border-radius:var(--radius-lg);text-align:center;cursor:pointer;color:var(--tx2)}
.sm-drop:hover,.sm-drop.on,.sm-drop:focus-within{border-color:var(--g);background:var(--g-soft)}
.sm-drop .ti{font-size:26px;color:var(--g)}
.sm-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.sm-grid{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr);gap:16px;align-items:start}
.sm-campos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.sm-campos label,.sm-leg label{display:block;font-size:13px;font-weight:500;margin-bottom:4px}
.sm-campos select{width:100%}
.sm-leg textarea{width:100%;min-height:90px}
.sm-val{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:12px}
.sm-val li{display:flex;gap:6px;align-items:flex-start}
.sm-val .ok{color:var(--g)}.sm-val .ruim{color:var(--r)}.sm-val .alerta{color:var(--au)}
.sm-fs{border:1px solid var(--line);border-radius:var(--radius);padding:8px 12px 10px;margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.sm-fs legend{font-size:13px;font-weight:500;padding:0 4px}
.sm-fs label{display:flex;gap:8px;align-items:flex-start;font-size:13px}
.sm-fs input{margin-top:2px;flex:none}
.sm-link{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.sm-link code{background:var(--muted);padding:4px 8px;border-radius:6px;font-size:12px;word-break:break-all}
.sm-nome{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;font-size:13px}
.sm-prev{width:100%;aspect-ratio:4/5;border-radius:6px;background:var(--muted) center/100% 100% no-repeat;display:grid;place-items:center;color:var(--tx3);font-size:12px;text-align:center;padding:8px}
.sm-pend ul{margin:4px 0 0;padding-left:18px}
@media (max-width:700px){.sm-grid{grid-template-columns:minmax(0,1fr)}}
.sm-grid>*{min-width:0}
@media (max-width:900px){
  .app{grid-template-columns:1fr}
  .side{position:fixed;inset:0 auto 0 0;width:260px;z-index:25;transform:translateX(-100%);transition:transform .2s}
  .side.on{transform:none}
  .menu-movel{display:inline-flex}
  .busca{display:none}
  .ajustes{grid-template-columns:1fr}.ajustes nav{position:static;flex-direction:row;overflow-x:auto}
  .esconde-movel:not(th):not(td){display:none}
  .etapa{grid-template-columns:110px minmax(0,1fr) 60px}
  main{padding:16px}
}
/* ===== produção: login, usuário no topo, estados de carregando e erro ===== */
.login-tela{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--bg)}
.login-tela[hidden],.app[hidden]{display:none}
.login-card{width:100%;max-width:380px;padding:28px}
.login-card .marca{margin-bottom:18px}
.login-card form{display:flex;flex-direction:column;gap:14px}
.login-card .btn.pri{justify-content:center;width:100%}
.login-erro{color:var(--r);margin:0;min-height:1.2em}
.login-card form[hidden],#painel-recuperacao[hidden]{display:none}
.login-card .campo{flex-direction:column;align-items:stretch;gap:6px;padding:0;border-top:0}
.login-card .campo input{width:100%}
#painel-recuperacao{display:flex;flex-direction:column;gap:14px}
.linha-2fa{display:flex;gap:8px;flex-wrap:wrap}
.linha-2fa input{flex:1;min-width:0;font-family:ui-monospace,monospace}
.passos-2fa{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.qr-2fa{display:grid;place-items:center;min-height:40px}
.qr-2fa svg{width:200px;height:200px;background:#fff;border-radius:8px}
.codigos-2fa{margin:0;padding-left:22px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;font-family:ui-monospace,monospace}
#c-codigo,#s-codigo{font-family:ui-monospace,monospace;letter-spacing:.15em}
.usuario-topo{display:flex;align-items:center;gap:8px;margin-left:auto;min-width:0}
.usuario-topo .mini{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:220px}
.carregando{display:flex;align-items:center;gap:10px;padding:28px;color:var(--mut, inherit)}
.carregando .ti{animation:gira 1s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.carregando .ti{animation:none}}
.paginacao{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 16px}
.bot-form{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.bot-form .linha{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.bot-form input[type=text]{flex:1;min-width:200px}
