@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');
/* =====================================================================================
   app.css — design system único do app de precificação (redesenho Stitch "LicitaSys PRO",
   11/09/2026). Servido em /app.css pelo server.js, carregado ANTES do <style> de cada página.

   REGRA DE OURO: os NOMES das variáveis e das classes abaixo são API do JavaScript —
   aparecem dentro de strings (style="color:var(--crit)", class="chip ok"). Nunca renomear;
   só mudar valor. Classe nova leva prefixo por tela: sh- shell · orc- Orçamento ·
   pd- Pré-disputa · vt- Pós-disputa · cat- catálogo · mkt- mercado. stx-* é biblioteca
   compartilhada. Ajudantes de uma letra (.r .c .l .v .t .n .b) só existem com escopo
   (th.r, .kpi .l, .stx-ln .t) — a versão solta colidia com outras telas.
   ===================================================================================== */
:root{
  /* superfícies e texto (Material 3 do DESIGN.md do Stitch) */
  --ground:#f8f9ff;--surface:#ffffff;--surface-2:#eff4ff;--surface-3:#e5eeff;--thead:var(--surface-3);
  --ink:#0b1c30;--ink-2:#475569;--deep:#131b2e;
  --line:#e2e8f0;--line-soft:#eef2f7;--line-2:#c6c6cd;
  /* ação */
  --accent:#2563eb;--accent-deep:#004ac6;--accent-hover:#1d4ed8;--accent-soft:#eff6ff;--accent-line:#bfdbfe;
  /* semântica */
  --ok:#047857;--ok-bg:#ecfdf5;--ok-dot:#10b981;
  --warn:#b45309;--warn-bg:#fffbeb;--warn-dot:#f59e0b;
  --crit:#b91c1c;--crit-bg:#fef2f2;--crit-dot:#ef4444;
  --sel:#fffbeb;--sel-line:#f59e0b;--sel-ink:#b45309;      /* seleção = âmbar (Stitch "Selecionado") */
  --fin:#1e40af;--fin-bg:#eff6ff;                          /* chip financeiro mono caps */
  --shadow:0 1px 2px rgba(15,23,42,.04);--shadow-2:0 4px 12px -2px rgba(15,23,42,.08);
  --sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;
  /* barra lateral escura */
  --rail:240px;--rail-bg:#f1f5f9;--rail-bg-2:#e8edf3;--rail-line:#e2e8f0;--rail-hover:#e2e8f0;
  --rail-ink:#0b1c30;--rail-ink-2:#475569;--rail-on:var(--accent);   /* 11/09: barra CINZA clara (pedido do Antonio) */
  /* apelidos legados — corpos server-rendered (/acao, /busca) escrevem var(--tx2) etc. inline */
  --tx:var(--ink);--tx2:var(--ink-2);--bd:var(--line);--bg:var(--ground);--nv:var(--rail-bg);
  --er:var(--crit);--erb:var(--crit-bg);--wr:var(--warn);--wrb:var(--warn-bg);--okb:var(--ok-bg);--or:#c2410c;
  --ok-soft:var(--ok-bg);--warn-soft:var(--warn-bg);--crit-soft:var(--crit-bg);--soft:var(--surface-2);--linha:var(--line);
  /* 3º subsistema do mercado.html, absorvido sem renomear */
  --mkt-bg:var(--ground);--mkt-card:var(--surface);--mkt-line:var(--line-2);--mkt-line-soft:var(--line-soft);
  --mkt-blue:var(--accent);--mkt-blue-deep:var(--accent-deep);--mkt-blue-soft:var(--accent-soft);--mkt-blue-border:var(--accent-line);
  --mkt-green:#166534;--mkt-green-bg:#dcfce7;--mkt-amber:var(--warn-dot);--mkt-shadow:var(--shadow-2);
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
button{font:inherit;cursor:pointer}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.msym{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:19px;line-height:1;
  letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;
  vertical-align:-4px;font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24}

/* ---------- esqueleto: barra + conteúdo. Tabela larga rola; a página nunca. ---------- */
.app{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100vh}
.app.so-gate{grid-template-columns:1fr}
.app.so-gate .sh-rail,.app.so-gate .rail{display:none}
.wrap{max-width:1280px;padding:18px 22px 48px;display:flex;flex-direction:column;gap:13px;min-width:0;width:100%;overflow-x:hidden}
.scroller,.scroll{overflow-x:auto;max-width:100%}
@media(max-width:900px){.app{grid-template-columns:1fr}.sh-rail{position:static;height:auto}}

/* ---------- barra lateral (shell.js emite só sh-*) ---------- */
.sh-rail{background:var(--rail-bg);color:var(--rail-ink);border-right:1px solid var(--rail-line);position:sticky;top:0;
  height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:0;scrollbar-width:thin;scrollbar-color:#334155 transparent}
.sh-rail::-webkit-scrollbar{width:6px}.sh-rail::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}
.sh-brand{display:flex;align-items:center;gap:10px;padding:14px 16px;height:60px;border-bottom:1px solid var(--rail-line);background:rgba(2,6,23,.4)}
.sh-logo{width:32px;height:32px;border-radius:8px;background:var(--accent);display:grid;place-items:center;color:#fff;flex:none;box-shadow:0 4px 10px rgba(37,99,235,.25)}
.sh-logo svg{width:18px;height:18px}
.sh-brand b{font:700 13.5px var(--sans);color:#f1f5f9;letter-spacing:-.01em;display:flex;align-items:center;gap:6px}
.sh-brand .sh-pro{font:700 9px var(--mono);color:#93c5fd;background:rgba(59,130,246,.2);border:1px solid rgba(96,165,250,.3);border-radius:4px;padding:1px 5px;text-transform:uppercase}
.sh-brand small{display:block;font-size:10.5px;color:var(--rail-ink-2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-brand a{color:inherit;text-decoration:none;min-width:0}
.sh-edital{padding:12px 12px 10px;border-bottom:1px solid var(--rail-line);background:rgba(2,6,23,.2)}
.sh-edital .sh-lbl{display:flex;justify-content:space-between;align-items:center;padding:0 4px 6px}
.sh-lbl{font:600 9.5px var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--rail-ink-2)}
.sh-sync{font:500 9px var(--mono);color:#6ee7b7;background:rgba(16,185,129,.1);border:1px solid rgba(16,185,129,.3);border-radius:4px;padding:1px 6px;display:inline-flex;align-items:center;gap:4px}
.sh-sync::before{content:"";width:5px;height:5px;border-radius:50%;background:#34d399}
.sh-sel{width:100%;appearance:none;background:rgba(30,41,59,.8);border:1px solid rgba(51,65,85,.7);border-radius:8px;color:#e2e8f0;
  font:500 12px var(--sans);padding:8px 28px 8px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center}
.sh-sel:hover{background-color:#1e293b}.sh-sel:focus{outline:none;border-color:var(--accent)}
.sh-sel option,.sh-sel optgroup{background:#0f172a;color:#e2e8f0}
.sh-nav{padding:12px 12px 8px;display:flex;flex-direction:column;gap:2px;flex:1}
.sh-nav .sh-lbl{padding:8px 10px 6px}
.sh-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--rail-ink-2);font:500 13px var(--sans);
  text-decoration:none;border:0;background:none;width:100%;text-align:left;cursor:pointer;position:relative;min-height:36px}
.sh-item svg{width:16px;height:16px;flex:none;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.sh-item:hover{background:var(--rail-hover);color:#f1f5f9}
.sh-item[aria-current=true]{background:var(--accent);color:#fff;font-weight:600;box-shadow:0 4px 10px rgba(37,99,235,.25)}
.sh-item .sh-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-item.sh-off{opacity:.45;cursor:default}
.sh-item.sh-off:hover{background:none;color:var(--rail-ink-2)}
.sh-badge{font:500 9.5px var(--mono);padding:2px 6px;border-radius:4px;border:1px solid rgba(51,65,85,.6);background:#1e293b;color:var(--rail-ink-2);white-space:nowrap;flex:none}
.sh-badge.ok{background:rgba(16,185,129,.15);color:#6ee7b7;border-color:rgba(16,185,129,.3)}
.sh-badge.wr{background:rgba(245,158,11,.15);color:#fcd34d;border-color:rgba(245,158,11,.3)}
.sh-badge.cr{background:rgba(239,68,68,.15);color:#fca5a5;border-color:rgba(239,68,68,.3)}
.sh-badge.az{background:rgba(59,130,246,.2);color:#93c5fd;border-color:rgba(96,165,250,.3)}
.sh-badge.mk{background:rgba(245,158,11,.12);color:#fcd34d;border:1px dashed rgba(245,158,11,.6)}   /* só no mockup: "simulado" */
.sh-item[aria-current=true] .sh-badge{background:rgba(255,255,255,.18);color:#fff;border-color:transparent}
.sh-dot{width:7px;height:7px;border-radius:50%;flex:none;background:#334155}
.sh-dot.done{background:var(--ok-dot)}.sh-dot.now{background:#fff;box-shadow:0 0 0 3px rgba(255,255,255,.25)}
.sh-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 18px;padding-left:10px;border-left:1px solid var(--rail-line)}
.sh-sub .sh-item{padding:6px 9px;font-size:12px;min-height:30px;border-radius:6px}
.sh-sub .sh-item[aria-current=true]{background:var(--rail-hover);color:#fff;box-shadow:none}
.sh-foot{margin-top:auto;padding:10px 12px 14px;border-top:1px solid var(--rail-line);display:flex;flex-direction:column;gap:2px}
.sh-foot .sh-item{min-height:32px;font-size:12px}
.sh-foot .sh-ext{margin-left:auto;opacity:.5;font-size:11px}
.sh-empresa{margin-top:8px;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;background:rgba(2,6,23,.4);border:1px solid var(--rail-line)}
a.sh-empresa{text-decoration:none;color:inherit}
a.sh-empresa:hover{border-color:var(--accent-line);background:var(--rail-hover)}
.sh-empresa .sh-av{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#334155,#475569);display:grid;place-items:center;font:700 10px var(--sans);color:#fff;flex:none}
.sh-empresa b{display:block;font:600 11.5px var(--sans);color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sh-empresa small{display:block;font:400 9.5px var(--mono);color:var(--rail-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* ---- tema cinza da barra (11/09/2026): só valores; as classes sh-* continuam as mesmas ---- */
.sh-rail::-webkit-scrollbar-thumb{background:#cbd5e1}
.sh-brand{background:transparent}
.sh-brand b{color:var(--ink)}
.sh-brand .sh-pro{color:var(--accent-deep);background:var(--accent-soft);border-color:var(--accent-line)}
.sh-edital{background:transparent}
.sh-sync{color:var(--ok);background:var(--ok-bg);border-color:#a7f3d0}.sh-sync::before{background:var(--ok-dot)}
.sh-sel{background:#fff;border-color:var(--line);color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.sh-sel{background-repeat:no-repeat;background-position:right 9px center}   /* o shorthand acima zerava isto e a seta virava um tracejado */
.sh-sel:hover{background-color:#f8fafc}
.sh-sel option,.sh-sel optgroup{background:#fff;color:var(--ink)}
.sh-item:hover{background:var(--rail-hover);color:var(--ink)}
.sh-item[aria-current=true]{box-shadow:0 2px 6px rgba(37,99,235,.25)}
.sh-badge{background:#fff;border-color:var(--line);color:var(--ink-2)}
.sh-badge.ok{background:var(--ok-bg);color:var(--ok);border-color:#a7f3d0}
.sh-badge.wr{background:var(--warn-bg);color:var(--warn);border-color:#fde68a}
.sh-badge.cr{background:var(--crit-bg);color:var(--crit);border-color:#fecaca}
.sh-badge.az{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-line)}
.sh-badge.mk{background:var(--warn-bg);color:var(--warn);border:1px dashed var(--warn-dot)}
.sh-dot{background:#cbd5e1}.sh-dot.now{background:var(--accent);box-shadow:0 0 0 3px rgba(37,99,235,.18)}
.sh-sub .sh-item[aria-current=true]{background:var(--rail-hover);color:var(--ink)}
.sh-empresa{background:#fff;border-color:var(--line)}
.sh-empresa .sh-av{background:linear-gradient(135deg,var(--accent),var(--accent-deep))}
.sh-empresa b{color:var(--ink)}
.sh-gate{max-width:360px;margin:80px auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-2)}
.sh-gate h1{font-size:18px;margin:0}
.sh-gate input{width:100%;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 10px;font:inherit}
.sh-mock{position:fixed;left:0;right:0;bottom:0;z-index:70;background:#fffbeb;border-top:1px dashed var(--sel-line);color:var(--sel-ink);
  font:600 11px var(--sans);padding:5px 12px;display:flex;gap:10px;align-items:center;justify-content:center;flex-wrap:wrap}
.sh-mock b{font-weight:700}

/* ---------- tipografia e genéricos (nomes que o JS já emite) ---------- */
h1{font-size:20px;margin:0;letter-spacing:-.015em;font-weight:700;line-height:1.25;color:var(--accent-deep)}   /* título das telas em azul (11/09) */
.stx-edital h1,.sh-gate h1,.cat-item h2{color:var(--ink)}
h2{font-size:15px;font-weight:600;margin:0 0 6px}
.sub{color:var(--ink-2);font-size:12px;margin:3px 0 0}
.small{font-size:11px;color:var(--ink-2)}
.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--ink-2)}
.bar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.big{font:700 26px var(--mono);font-variant-numeric:tabular-nums}
.er{color:var(--crit)}.mut{color:var(--ink-2)}
code{background:var(--surface-2);padding:1px 5px;border-radius:3px;font-family:var(--mono);font-size:12px}
.gate{max-width:340px;margin:60px auto}

/* superfícies */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow)}
.card>header{padding:11px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:11px;flex-wrap:wrap}
.card>header h2{margin:0;font-size:14px;font-weight:600}
.card.ok{background:var(--ok-bg);border-color:#a7f3d0}
.card.wr{background:var(--warn-bg);border-color:#fde68a}
.card.er{background:var(--crit-bg);border-color:#fecaca}
.card ul,.card ol{margin:8px 0 0;padding-left:20px;font-size:12.5px;color:var(--ink-2)}
.card li{margin:3px 0}
.pad{padding:13px 14px;display:flex;flex-direction:column;gap:12px}

/* botões: cheio = ação que grava; .o = reversível/secundário; .g = neutro; .s = pequeno; .p = destaque escuro */
.btn,a.btn,button.btn{display:inline-flex;align-items:center;gap:6px;background:var(--accent);color:#fff;border:1px solid var(--accent);
  border-radius:var(--r-md);padding:8px 15px;font:inherit;font-size:13px;font-weight:550;cursor:pointer;text-decoration:none;line-height:1.2;min-height:34px}
.btn:hover:not(:disabled),a.btn:hover,button.btn:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}
.btn:disabled,button.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.o,a.btn.o,button.btn.o,.btn.g,a.btn.g,button.btn.g{background:var(--surface);color:var(--ink);border-color:var(--line-2)}
.btn.o:hover:not(:disabled),a.btn.o:hover,button.btn.o:hover:not(:disabled),.btn.g:hover,a.btn.g:hover,button.btn.g:hover{background:var(--surface-2);border-color:var(--ink-2)}
.btn.p,a.btn.p,button.btn.p{background:var(--deep);border-color:var(--deep)}
.btn.p:hover:not(:disabled),a.btn.p:hover,button.btn.p:hover:not(:disabled){background:#1e293b;border-color:#1e293b}
.btn.s,a.btn.s,button.btn.s{padding:0 11px;min-height:32px;font-size:11.5px}
.btn.go{margin-left:auto;white-space:nowrap;align-self:center}
.btn .sub-efeito{display:block;font:400 10px var(--sans);opacity:.85}

/* campos */
select,input,textarea{font-family:inherit;font-size:12.5px;color:var(--ink);background:var(--surface)}
input:not([type=checkbox]):not([type=radio]),select,textarea{border:1px solid var(--line-2);border-radius:var(--r-md);padding:7px 9px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}
/* 25/09/2026 (revisão das telas, T2): foco visível no que não é campo — botão, link, item da barra */
button:focus-visible,a:focus-visible,[tabindex]:focus-visible,summary:focus-visible,.sh-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
textarea{width:100%;line-height:1.5}
input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);cursor:pointer}
.sel{border:1px solid var(--line-2);border-radius:var(--r-md);padding:7px 28px 7px 10px;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%235b6472' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 9px center;max-width:440px}
.tax-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:700px){.tax-grid{grid-template-columns:repeat(2,1fr)}}
.fields{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}
.fields .field{width:94px}
.fields .field.w{width:auto;min-width:150px}
.sep{width:1px;align-self:stretch;background:var(--line);margin:0 3px}
.deriv{font-size:11.5px;color:var(--ink-2);line-height:1.55;padding-bottom:2px}
.deriv b{color:var(--ink);font-family:var(--mono);font-variant-numeric:tabular-nums}
.u{position:relative;display:block}
.u::after{content:attr(data-u);position:absolute;right:7px;top:50%;transform:translateY(-50%);font:500 11px var(--mono);color:var(--ink-2);pointer-events:none}
.field .u input{padding-right:23px}
.field label{display:block;font:700 9.5px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);margin-bottom:3px}
.field input{width:100%;text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500;padding:6px 8px}
.orc-fsel{width:100%;border:1px solid var(--line-2);border-radius:var(--r-md);padding:6px 8px;font-family:var(--sans);text-align:left}

/* chips, pílulas, kpis */
.chip{display:inline-block;padding:2px 8px;border-radius:999px;font:700 10.5px var(--sans);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;border:0}
.chip.ok,.ok.chip{background:var(--ok-bg);color:var(--ok)}
.chip.warn,.warn.chip{background:var(--warn-bg);color:var(--warn)}
.chip.crit,.crit.chip{background:var(--crit-bg);color:var(--crit)}
.chip.mute,.mute.chip{background:var(--surface-2);color:var(--ink-2)}
.chip.fin{background:var(--fin-bg);color:var(--fin);font-family:var(--mono);letter-spacing:.02em;border:1px solid var(--accent-line)}
/* genéricos que o formal.js emite como class="chip ok" — mesma semântica de sempre */
.ok{background:var(--ok-bg);color:var(--ok)}
.warn{background:var(--warn-bg);color:var(--warn)}
.crit{background:var(--crit-bg);color:var(--crit)}
.mute{background:var(--surface-2);color:var(--ink-2)}
.pill{padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.none{background:var(--surface-2);color:var(--ink-2)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.kpi{background:var(--surface-2);border-radius:var(--r-md);padding:9px 11px;border:1px solid transparent}
.kpi .l{font:700 9.5px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2)}
.kpi .v{font-family:var(--mono);font-size:17px;font-weight:700;margin-top:3px;font-variant-numeric:tabular-nums;white-space:nowrap}
.kpis.mini{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:7px}
.kpis.mini .kpi{padding:6px 9px}.kpis.mini .kpi .l{font-size:8.5px}.kpis.mini .kpi .v{font-size:13px;margin-top:2px}
.kpi-forte{background:var(--surface);border:1px solid var(--line-2)}
.kpi.kpi-forte .v{color:var(--accent-deep)}
.toggle{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--r-md);overflow:hidden}
.toggle button{background:var(--surface);border:none;padding:0 12px;min-height:32px;font:inherit;font-size:12px;font-weight:550;color:var(--ink-2);cursor:pointer}
.toggle button+button{border-left:1px solid var(--line-2)}
.toggle button[aria-pressed=true]{background:var(--accent);color:#fff}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:5px;overflow:hidden;white-space:nowrap}
.seg button{background:var(--surface);border:0;padding:0 11px;min-height:32px;cursor:pointer;font:inherit;font-size:12px;color:var(--ink-2)}
.seg button[aria-pressed=true]{background:var(--accent);color:#fff;font-weight:600}
#toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;align-items:center}
/* 24/09/2026: tela com rodapé fixo (Orçamento, Pré-disputa, Disputa, Pós-disputa) — o toast sobe acima dele, senão cobre os totais */
body:has(.orc-rodape,.pd-bar,.dp-bar,.vt-bar,.bs-bar) #toast{bottom:84px}
#toast .toast,.toast{background:var(--deep);color:#fff;padding:9px 14px;border-radius:var(--r-md);font-size:12.5px;box-shadow:var(--shadow-2)}
#toast .toast.err,.toast.err{background:var(--crit)}

/* tabelas densas (briefing: densidade > beleza) */
table{width:100%;border-collapse:collapse;font-size:12.5px}
th{text-align:left;font:700 10.5px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ink-2);padding:7px 8px;
  border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap}
td{padding:5px 8px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
tbody tr:hover td{background:#fafbfd}
th.r,td.r{text-align:right}th.c,td.c{text-align:center}
td input{border:1px solid var(--line-2);border-radius:var(--r-sm);padding:5px 7px;width:100%}
td input.n{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;font-weight:500}
tr.fora td{color:#9aa3af;background:#fbfcfd}
td.desc{position:relative;white-space:normal;max-width:290px;min-width:180px;padding-right:19px}
td.desc .dc.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mais{position:absolute;right:3px;bottom:4px;background:none;border:0;padding:0;margin:0;color:#b3bac3;font-size:9px;line-height:1;cursor:pointer;font-family:var(--sans)}
.mais:hover{color:var(--accent)}
.linha-colapso td{padding:8px;background:var(--surface-2);color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;text-align:center}
.linha-colapso td:hover{background:var(--accent-soft)}

/* ---------- biblioteca stx-* (Equilibrium/Stitch, compartilhada) ---------- */
.stx-badge{display:inline-block;padding:3px 9px;border-radius:var(--r-sm);font:700 10.5px/16px var(--sans);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:1px solid}
.stx-badge.az{background:var(--accent-soft);color:var(--accent-deep);border-color:var(--accent-line)}
.stx-badge.ok{background:#dcfce7;color:#166534;border-color:#bbf7d0}
.stx-badge.cr{background:var(--crit-bg);color:var(--crit);border-color:#fecaca}
.stx-badge.wr{background:var(--warn-bg);color:var(--warn);border-color:#fde68a}
.stx-badge.mu{background:var(--surface-2);color:var(--ink-2);border-color:var(--line)}
.stx-badge.sl{background:var(--sel);color:var(--sel-ink);border-color:#fcd34d}
.stx-badge.mk{background:#fffbeb;color:#b45309;border:1px dashed #f59e0b}   /* só no mockup: dado ou ação simulada */
.stx-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow)}
.stx-pad{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.stx-hd{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:11px;flex-wrap:wrap}
.stx-hd h2{margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}
.stx-hd .sub{margin:2px 0 0}
.stx-h2{margin:0;font-size:14px;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;gap:7px;padding-bottom:9px;border-bottom:1px solid var(--line-soft)}
.stx-work{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}
.stx-left,.stx-right{min-width:0}
.stx-right{display:flex;flex-direction:column;gap:14px}
table.stx-tbl{width:100%;min-width:0;border-collapse:collapse}
table.stx-tbl th{position:static;background:var(--thead);border-bottom:1px solid var(--line);padding:8px 8px;font:700 10px/16px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);text-align:left;white-space:nowrap}
table.stx-tbl th.r{text-align:right}table.stx-tbl th.c{text-align:center}
table.stx-tbl td{padding:8px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
table.stx-tbl tbody tr:last-child td{border-bottom:0}
table.stx-tbl td.r{text-align:right}table.stx-tbl td.c{text-align:center}
table.stx-tbl td.num{font-family:var(--mono);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}
table.stx-tbl td.b{font-weight:700}
table.stx-tbl td.rd,.stx-cmpmx .v.rd{color:var(--crit)}
table.stx-tbl td.pc{color:var(--accent);font-weight:700}
tr.stx-row.zeb td{background:#f8fafc}
tr.stx-row:hover td{background:var(--surface-2)}
.stx-expbtn{background:none;border:1px solid var(--line-2);border-radius:5px;width:32px;height:32px;display:inline-grid;place-items:center;color:var(--ink-2);cursor:pointer;padding:0}
.stx-expbtn:hover{background:var(--surface-2);color:var(--ink);border-color:var(--ink-2)}
.stx-expbtn.on{background:var(--accent);border-color:var(--accent);color:#fff}
.stx-fornl{display:flex;align-items:center;gap:8px;min-width:0}
.stx-fornnm{font:700 12.5px var(--sans);color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px}
.stx-fornnm:hover{color:var(--accent-deep);text-decoration:underline}
.stx-cnt{background:var(--accent);color:#fff;font:700 9.5px/1 var(--sans);letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;border-radius:999px;white-space:nowrap}
.stx-cnt.rd{background:var(--crit-bg);color:var(--crit);border:1px solid #fecaca}
.stx-sub{font-size:11px;color:var(--ink-2);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}
tr.stx-expline>td{background:var(--surface-2);padding:16px 18px;border-bottom:1px solid var(--line)}
.stx-exp3{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:840px){.stx-exp3{grid-template-columns:1.5fr 1.1fr .9fr}}
.stx-exp3 h4{margin:0 0 7px;font:700 10.5px var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.stx-ln{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:4px 0;border-bottom:1px dashed rgba(195,198,215,.35);font-size:12px}
.stx-ln:last-child{border-bottom:0}
.stx-ln .t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.stx-ln .v{white-space:nowrap;text-align:right}
.stx-ln .v.num{font-family:var(--mono);font-size:12px;font-weight:500;font-variant-numeric:tabular-nums}
.stx-ln.p{padding:7px 2px;font-size:12.5px;border-bottom:1px dashed var(--line-soft)}
.stx-ln.tot{border-top:1px solid var(--line);border-bottom:0;margin-top:2px;padding-top:9px}
.stx-ln.tot .t{color:var(--ink);font-weight:650}
.stx-div{border-top:1px solid var(--line);margin:4px 0}
.stx-sec{display:flex;flex-direction:column;gap:10px}
.stx-sech{margin:0;font-size:14.5px;font-weight:650;letter-spacing:-.01em;display:flex;align-items:center;gap:7px}
.stx-cmpgrid{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:840px){.stx-cmpgrid{grid-template-columns:1fr 1fr}}
.stx-cmpmx{display:grid;grid-template-columns:1fr auto;gap:8px;background:#f8fafc;border:1px solid var(--line);border-radius:var(--r-md);padding:9px 12px;align-items:end}
.stx-cmpmx.hi{background:var(--surface-2);border-color:#d3e4fe}
.stx-cmpmx .l{display:block;font-size:11px;color:var(--ink-2)}
.stx-cmpmx .v{display:block;font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:17px;margin-top:2px;color:var(--ok)}
.stx-cmpmx .r2{text-align:right}.stx-cmpmx .r2 .v{font-size:12.5px;color:var(--ink);padding-bottom:2px}
/* cabeçalho de edital (Stitch "Dispensa 2297/2026 - Salvador") — usado por várias telas */
.stx-edital{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:16px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px}
.stx-edital .stx-etop{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}
.stx-edital h1{font-size:18px;letter-spacing:-.015em}
.stx-edital .stx-org{color:var(--ink-2);font-size:12.5px;text-transform:uppercase;letter-spacing:.02em;margin-left:8px}
.stx-edital .stx-obj{font:600 13px var(--sans);text-transform:uppercase;letter-spacing:.02em;margin-top:2px}
.stx-edital .stx-meta{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-top:8px;padding:6px 12px;border-radius:var(--r-lg);background:var(--surface-2);font-size:12px;color:var(--ink-2)}
.stx-edital .stx-meta .k{font:600 10px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.stx-edital .stx-meta .num{color:var(--ink)}
.stx-edital .stx-meta .dot{color:var(--line-2)}
.stx-edital .stx-meta a{color:var(--accent);text-decoration:none;white-space:nowrap}
.stx-edital .stx-meta a:hover{text-decoration:underline}
.stx-edital .stx-meta .ml{margin-left:auto;display:flex;gap:12px}
.stx-pilula{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font:500 12px var(--sans);white-space:nowrap}
.stx-pilula.neutro{background:var(--surface-2);color:var(--ink-2)}
.stx-pilula.neutro::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line-2)}
.stx-pilula.urg{background:var(--crit-bg);color:var(--crit)}
.stx-pilula.urg::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--crit-dot)}
.stx-pilula.teto{background:var(--surface-3);color:var(--accent-deep)}
.stx-pilula.teto .k{font:700 10px var(--sans);letter-spacing:.06em;text-transform:uppercase}
.stx-pilula.teto .num{font:700 13px var(--mono)}
/* texto "N de M" + chip (briefing: sem anel decorativo) */
.stx-prog{display:inline-flex;align-items:baseline;gap:6px}
.stx-prog .num{font:700 15px var(--mono)}
.stx-prog .small{font-size:11px}

/* ---------- catálogo por item (catalogo.js emite cat-*) ---------- */
.cat-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-top:1px solid var(--linha)}
.cat-row:first-child{border-top:0}
.cat-n{flex:0 0 30px;font:700 12px var(--mono);color:var(--ink-2);text-align:right}
.cat-d{flex:1;min-width:0}
.cat-d b{display:block;font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-d .sub{font-size:10.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-arq{flex:0 0 auto;display:flex;align-items:center;gap:6px;max-width:46%}
.cat-arq a{font-size:11.5px;color:var(--accent);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}
.cat-arq a:hover{text-decoration:underline}
.cat-vazio{font-size:11.5px;color:var(--ink-2)}
.cat-file{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.cat-btn{font:600 11px var(--sans);padding:4px 9px;border-radius:var(--r-md);border:1px solid var(--linha);background:var(--ground);color:var(--ink);cursor:pointer;white-space:nowrap;min-height:28px}
.cat-btn:hover{border-color:var(--accent);color:var(--accent)}
.cat-btn.rm{color:var(--crit);border-color:transparent;padding:4px 6px}
.cat-btn[disabled]{opacity:.5;cursor:progress}
/* cartão por item da Pré-disputa › Catálogo (Stitch "LOTE 01 · Cooktop…") */
.cat-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:16px 20px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px}
.cat-item .cat-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.cat-item .cat-top h2{font-size:15px;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60ch}
.cat-item .cat-lote{font:700 9.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;background:var(--surface-3);color:var(--accent-deep);padding:3px 8px;border-radius:4px}
.cat-item .cat-n{flex:0 0 auto;font:700 13px var(--mono);color:var(--ink)}
.cat-item .chip{text-transform:uppercase;font-size:9.5px;letter-spacing:.06em;font-weight:700}
.cat-item .chip.ok{background:var(--surface-3);color:var(--accent-deep);border-color:transparent}
.cat-teto{color:var(--accent-deep)}
.cat-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:900px){.cat-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)}}
.cat-grid label.cat-lbl{display:block;font:700 9.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:6px}
.cat-grid input[type=text]{width:100%;background:var(--surface-2);border:1px solid transparent;border-radius:var(--r-md);padding:9px 12px;font:inherit;font-size:13px}
.cat-grid input[type=text]:focus{background:var(--surface);border-color:var(--accent);outline:none}
.cat-grid .sub{font-size:11px;color:var(--ink-2);margin-top:6px}
.cat-box{background:var(--surface-2);border-radius:var(--r-lg);padding:12px 14px;display:flex;align-items:center;gap:12px;min-height:60px;position:relative}
.cat-box .cat-ico{width:40px;height:40px;border-radius:var(--r-md);background:var(--surface-3);display:grid;place-items:center;color:var(--accent);flex:none;font:700 10px var(--mono)}
.cat-box .cat-nome{font-size:12.5px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cat-box .cat-nome a{color:var(--ink);text-decoration:none}.cat-box .cat-nome a:hover{color:var(--accent)}
.cat-box .cat-meta{font:400 11px var(--mono);color:var(--ink-2);margin-top:2px}
.cat-box img{width:64px;height:64px;object-fit:cover;border-radius:var(--r-md);flex:none;background:var(--surface-3)}
.cat-box.cat-comfoto{align-items:center}
.cat-links{display:flex;gap:10px;margin-top:2px;flex-wrap:wrap}
.cat-ph{width:64px;height:64px;border-radius:var(--r-md);background:var(--surface-3);flex:none}
.cat-lnk{background:none;border:0;padding:0;font:500 12px var(--sans);color:var(--accent);cursor:pointer}
.cat-lnk:hover{text-decoration:underline}.cat-lnk.rm{color:var(--ink-2)}
.cat-btn.cat-ic{border:0;background:transparent;color:var(--accent);font-size:16px;padding:2px 6px}
.cat-btn.cat-ic:hover{background:var(--surface-3)}
.cat-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* 12/09: colar print — a caixa da foto e focavel (tabindex) e fica "armada" esperando o Ctrl+V */
.cat-box[data-foto]{cursor:copy}
.cat-box[data-foto]:focus{outline:none;box-shadow:0 0 0 1px var(--accent),0 0 0 4px var(--accent-soft)}
.cat-box[data-armado]{background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent),0 0 0 4px var(--accent-soft)}
.cat-box[data-armado]::after{content:'cole agora';position:absolute;top:-8px;right:10px;background:var(--accent);color:#fff;font:700 9px var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:999px}
.cat-nota{font-size:11px;color:var(--ink-2);margin-top:6px}.cat-nota.cat-wr{color:var(--warn)}
.cat-ok{color:var(--ok);font-size:11.5px;display:flex;align-items:center;gap:4px;margin-top:6px}
/* selo "Preenchimento · N de M itens prontos" (Stitch) — anel em CSS puro */
.cat-pre{display:flex;align-items:center;gap:12px;background:var(--surface-2);border-radius:var(--r-xl);padding:8px 14px;width:max-content;max-width:100%;margin-left:auto}
.cat-prelbl{font:700 9.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2)}
.cat-pre .stx-prog .num{font-size:14px}
.cat-anel{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:conic-gradient(var(--accent) calc(var(--cat-p,0)*1%),var(--surface-3) 0)}
.cat-anel span{width:34px;height:34px;border-radius:50%;background:var(--surface);display:grid;place-items:center;font:700 10px var(--mono);color:var(--accent-deep)}

/* ---- catálogo em TABELA (24/09/2026, Pré-disputa simples): CAT.linhas() ---- */
.cat-tab{width:100%;border-collapse:collapse;font-size:13px}
.cat-tab th{padding:9px 10px;border-bottom:1px solid var(--line);background:var(--surface);color:color-mix(in srgb,var(--ink-2) 60%,var(--surface));font:500 11.5px var(--sans);letter-spacing:0;text-transform:none;white-space:nowrap;text-align:left}
.cat-tab td{padding:8px 10px;border-bottom:0;border-top:1px solid var(--line-soft);vertical-align:middle}
.cat-tab tbody tr:first-child td{border-top:0}
.cat-lin:focus-within td{background:#fafcff}
.cat-c0{width:24px}.cat-nw{white-space:nowrap}.cat-op{font-weight:400}
.cat-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--warn-dot)}.cat-dot.ok{background:var(--ok-dot)}
.cat-dsc{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-sub{color:color-mix(in srgb,var(--ink-2) 60%,var(--surface));font-size:12px}
.cat-tab input.cat-inl{width:100%;min-width:110px;padding:5px 6px;border:1px solid transparent;border-bottom:1px dashed var(--line);border-radius:5px;background:none;font-size:13px}
.cat-tab input.cat-inl:hover{border-bottom-color:var(--line-2)}
.cat-tab input.cat-inl:focus{outline:none;box-shadow:none;border-color:var(--accent-line);background:var(--accent-soft)}
.cat-tab input.cat-inl.cat-falta{border-bottom-color:var(--warn-dot);background:#fffdf5}
.cat-tab .cat-arq{max-width:none;gap:8px}
.cat-nm{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-x{padding:0 2px;border:0;background:none;color:var(--ink-2);font-size:13px;cursor:pointer}.cat-x:hover{color:var(--crit)}
.cat-lnk.cat-forte{font-weight:650}
.cat-lnk.cat-pq{font-size:11px}
.cat-mini{width:26px;height:26px;border-radius:5px;object-fit:cover;background:var(--accent-soft)}
.cat-cfoto{position:relative;outline:none}
.cat-cfoto:focus-visible{box-shadow:inset 0 0 0 2px var(--accent-line)}
.cat-cfoto[data-armado]{background:var(--accent-soft)}
.cat-cfoto[data-armado]::after{content:'cole agora (' attr(data-tecla) ')';margin-left:8px;color:var(--accent);font:600 12px var(--sans)}
@media(max-width:760px){.cat-cmod{display:none}}

/* ===== comuns a todas as telas (25/09/2026, revisão das telas R12/R13/T1/T6): Shell.popup, Shell.aviso, Shell.contexto ===== */
.sh-veu{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:10vh 16px;background:rgba(15,23,42,.4)}
.sh-pop{display:flex;flex-direction:column;width:min(520px,100%);max-height:84vh;border-radius:12px;background:var(--surface);box-shadow:0 20px 50px rgba(15,23,42,.3)}
.sh-pop.sh-pop-largo{width:min(900px,100%)}
.sh-pophd{display:flex;align-items:center;gap:10px;padding:16px 20px;border-bottom:1px solid var(--line)}.sh-pophd h2{flex:1;margin:0;font-size:16px}
.sh-popbd{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:16px 20px;font-size:13.5px}.sh-popbd p{margin:0}.sh-popbd ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.sh-popft{display:flex;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--line)}
.sh-sp{flex:1}
.sh-desf{margin-left:12px;padding:0;border:0;background:none;color:var(--accent-line);font-weight:700;cursor:pointer}
.sh-ctx{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;color:var(--ink-2);font-size:12.5px}
.sh-ctx-l{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 7px}.sh-ctx-l b{color:var(--ink);font-weight:600}.sh-ctx-l i{font-style:normal;color:var(--line-2)}
.sh-ctx-r{display:flex;gap:14px;white-space:nowrap}.sh-ctx-r a{color:var(--ink-2);text-decoration:none}.sh-ctx-r a:hover{color:var(--accent)}
.sh-gate-erro{margin:0 0 10px;color:var(--crit);font-size:13px;font-weight:600}
@media(max-width:760px){.sh-veu{padding:0}.sh-pop{max-height:100vh;border-radius:0}}

/* ===== cadastro de fornecedor (cf-*) — componente CadForn do comum.js, usado por Fornecedores e Mapeamento
   (25/09/2026, revisão das telas §5.2). Veio do CSS da gaveta da tela Fornecedores, com prefixo. ===== */
.cf-veu{position:fixed;inset:0;z-index:900;display:none;background:rgba(8,25,43,.42)}.cf-veu.cf-on{display:block}
.cf-drawer{position:fixed;top:0;right:0;bottom:0;z-index:901;display:flex;flex-direction:column;width:min(480px,100vw);border-left:1px solid var(--line);background:var(--surface);box-shadow:-8px 0 30px rgba(8,25,43,.12);translate:100% 0;transition:translate .16s ease}
.cf-drawer.cf-on{translate:0 0}
body:has(.sh-mock) .cf-drawer{bottom:30px}
@media (prefers-reduced-motion:reduce){.cf-drawer{transition:none}}
.cf-topo{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line-soft)}
.cf-topo h2{flex:1;min-width:0;margin:0;overflow:hidden;font-size:16px;text-overflow:ellipsis;white-space:nowrap}
.cf-fecha{padding:3px 7px;border:0;background:none;color:var(--ink-2);font-size:17px;cursor:pointer}
.cf-abas{display:flex;gap:2px;padding:0 18px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.cf-abas button{margin-bottom:-1px;padding:10px 12px;border:0;border-bottom:2px solid transparent;background:none;color:var(--ink-2);font:600 12.5px var(--sans);cursor:pointer}
.cf-abas button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}
.cf-cnt{padding:0 6px;border:1px solid var(--line);border-radius:20px;background:var(--surface);font:700 11px var(--sans)}.cf-cnt:empty{display:none}
.cf-corpo{display:flex;flex:1;flex-direction:column;gap:13px;overflow-y:auto;padding:16px 18px}
.cf-grupo{padding:18px 0;border-top:1px solid var(--line-soft)}.cf-grupo:first-child{border-top:0}
.cf-grupo>h4{display:flex;align-items:center;gap:8px;margin:0 0 14px;color:var(--ink-2);font:700 11px var(--sans);letter-spacing:.08em;text-transform:uppercase}
.cf-p{display:grid;place-items:center;width:18px;height:18px;border:1px solid var(--accent-line);border-radius:50%;background:var(--accent-soft);color:var(--accent);font:700 11px var(--sans)}
.cf-field{margin-bottom:14px}.cf-field:last-child{margin-bottom:0}.cf-mt{margin-top:14px}
.cf-field label{display:block;margin-bottom:3px;color:var(--ink-2);font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.cf-field input,.cf-field select,.cf-field textarea{width:100%;padding:7px 9px;border:1px solid var(--line);border-radius:7px}
.cf-field textarea{min-height:52px;resize:vertical}
.cf-op{color:var(--ink-2);font-size:11px;font-weight:400;letter-spacing:0;text-transform:none}
.cf-dica{margin:7px 0 0;color:var(--ink-2);font-size:12px;line-height:1.5}.cf-dica b{color:var(--ink)}.cf-m0{margin:0}
.cf-tipos{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cf-tipos button{padding:11px 10px;border:1.5px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:650 13px var(--sans);line-height:1.3;text-align:left;cursor:pointer}
.cf-tipos button small{display:block;margin-top:2px;color:var(--ink-2);font-size:11px;font-weight:400}
.cf-tipos button[aria-pressed=true]{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.cf-tipos button[aria-pressed=true] small{color:var(--accent-deep)}
.cf-cond{margin-top:12px;padding:14px;border:1px solid var(--accent-line);border-radius:10px;background:var(--accent-soft)}
.cf-cond.cf-cond-fab{border-color:#d9c9f2;background:#faf7fe}
.cf-cond h5{margin:0 0 4px;color:var(--accent);font:700 11px var(--sans);letter-spacing:.05em;text-transform:uppercase}.cf-cond.cf-cond-fab h5{color:#5b3a9e}
.cf-exp{margin:6px 0 2px;color:var(--ink-2);font-size:12px;line-height:1.5}
.cf-chk{display:flex;align-items:center;gap:9px;margin:0;font-size:13px;cursor:pointer}.cf-chk input{flex:none;width:16px;height:16px;margin:0;accent-color:var(--accent)}
.cf-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:9px;margin-top:9px}.cf-row .cf-field{margin-bottom:0}
.cf-f2{flex:1 1 150px}.cf-f1{flex:0 1 80px}.cf-ou{padding-bottom:10px;color:var(--ink-2);font-size:12px}
.cf-vinculo{display:flex;align-items:center;gap:10px;margin-bottom:7px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:13px}
.cf-q{flex:1;min-width:0}.cf-q div{margin-top:2px;color:var(--ink-2);font-size:12px}
.cf-vinculo button{padding:0 3px;border:0;background:none;color:var(--ink-2);font-size:15px;cursor:pointer}.cf-vinculo button:hover{color:var(--crit)}
.cf-dupla{display:grid;grid-template-columns:1fr 92px;gap:10px}.cf-grid2{display:grid;grid-template-columns:1fr 1fr;gap:11px}.cf-col2{grid-column:1/-1}
.cf-aviso{display:none;margin-top:3px;color:var(--crit);font-size:12px}
.cf-dup{margin-top:4px;color:var(--warn);font-size:12.5px}.cf-dup:empty{display:none}
.cf-lnk{padding:0;border:0;background:none;color:var(--accent);font:600 12.5px var(--sans);cursor:pointer;text-decoration:underline}
.cf-mais{display:inline-flex;align-items:center;gap:6px;padding:5px 0;border:0;background:none;color:var(--accent);font:600 12.5px var(--sans);cursor:pointer}.cf-mais:hover{text-decoration:underline}
#cfOutros{margin-top:11px}
.cf-bloco{margin-top:16px;padding:11px 13px;border:1px solid var(--line-soft);border-radius:10px;background:var(--surface-2)}
.cf-bloco h4{margin:0 0 7px;color:var(--ink-2);font-size:11px;letter-spacing:.05em;text-transform:uppercase}
.cf-ev{color:var(--ink-2);font-size:12px;line-height:1.5}
.cf-pessoa{display:flex;align-items:center;gap:9px;padding:6px 0;border-top:1px solid var(--line-soft)}.cf-pessoa:first-child{border-top:0}
.cf-av{display:grid;flex:none;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700}
.cf-quem{flex:1;min-width:0;font-size:12.5px}.cf-quem b{display:block}.cf-quem span{display:block;color:var(--ink-2);font-size:12px}.cf-it{font-style:italic}
.cf-pessoa a{text-decoration:none}
.cf-tira{border:0;background:none;color:var(--ink-2);font-size:12px;cursor:pointer}.cf-tira:hover{color:var(--crit)}
.cf-fpes{display:none;flex-direction:column;gap:9px;margin-top:9px;padding-top:10px;border-top:1px dashed var(--line)}.cf-fpes.cf-on{display:flex}
#cfMaisPessoa{margin-top:8px}
.cf-pe{display:flex;gap:10px;padding:12px 18px;border-top:1px solid var(--line-soft)}.cf-pe .btn:first-child{flex:1;justify-content:center}
.cf-perigo{background:var(--crit)!important;border-color:var(--crit)!important;color:#fff!important}
