/* Identidade Prospecta: cobre #AA6730, ouro #D59D12, azul PROENG #02253B, Montserrat */
:root{
  --bg:#f6f4f1; --surface:#ffffff; --sunk:#f0ebe5; --line:#e0d7cd;
  --ink:#02253b; --muted:#5f6670; --accent:#9a5b27; --accent-ink:#ffffff;
  --brand:#aa6730; --gold:#d59d12;
  --ok:#2f7d4f; --warn:#a86a00; --crit:#b33a2b; --idle:#6b7178;
  --ok-bg:#e3f1e8; --warn-bg:#fbefd6; --crit-bg:#f8e1dd; --idle-bg:#ebe7e2; --info-bg:#f5e8dc;
  --f:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0c1822; --surface:#13222e; --sunk:#0f1e29; --line:#253744;
  --ink:#ece6df; --muted:#9ba7b1; --accent:#d98c4d; --accent-ink:#1b0f05;
  --brand:#c98445; --gold:#e3ae2e;
  --ok:#6cc391; --warn:#e6a54a; --crit:#ef7d6c; --idle:#8e9aa5;
  --ok-bg:#163023; --warn-bg:#352812; --crit-bg:#3a1c18; --idle-bg:#1e2d38; --info-bg:#33220f;
  color-scheme:dark}}
.logo-dark{display:none}
:root[data-theme="dark"]{
  --bg:#0c1822; --surface:#13222e; --sunk:#0f1e29; --line:#253744;
  --ink:#ece6df; --muted:#9ba7b1; --accent:#d98c4d; --accent-ink:#1b0f05;
  --brand:#c98445; --gold:#e3ae2e;
  --ok:#6cc391; --warn:#e6a54a; --crit:#ef7d6c; --idle:#8e9aa5;
  --ok-bg:#163023; --warn-bg:#352812; --crit-bg:#3a1c18; --idle-bg:#1e2d38; --info-bg:#33220f;
  color-scheme:dark}
:root[data-theme="dark"] .logo-light{display:none}:root[data-theme="dark"] .logo-dark{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .logo-light{display:none}:root:not([data-theme="light"]) .logo-dark{display:block}}

*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 var(--f)}
a{color:var(--accent)}
h1,h2,h3{margin:0;font-weight:700;text-wrap:balance}
h1{font-size:1.6rem;font-weight:800}
h2{font-size:1.15rem}
h3{font-size:.95rem}
.wrap{max-width:1180px;margin:0 auto;padding:16px max(16px,env(safe-area-inset-left)) 48px;display:flex;flex-direction:column;gap:18px}

/* cabeçalho */
.topo{background:var(--surface);border-bottom:1px solid var(--line)}
.topo .in{max-width:1180px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.topo img{height:42px;width:auto}
.topo nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
.topo nav a{text-decoration:none;color:var(--ink);font-weight:600;font-size:.88rem;padding:6px 10px;border-radius:6px}
.topo nav a:hover,.topo nav a.on{background:var(--sunk)}
.base{display:flex;flex-direction:column;gap:3px}
.base i{display:block;height:2px;background:var(--brand)}
.base i:last-child{background:var(--gold)}
.eyebrow{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.linha{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap}

/* botões e formulários */
.btn{font:600 .88rem var(--f);border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;padding:8px 12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.btn:hover{border-color:var(--accent)}
.btn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.peq{padding:4px 9px;font-size:.78rem}
.btn.perigo{color:var(--crit);border-color:var(--crit)}
.btn[aria-pressed="true"].urg{background:var(--crit);border-color:var(--crit);color:var(--surface)}
.btn:disabled{opacity:.55;cursor:default}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
input,select,textarea{font:inherit;font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:7px 9px;min-width:0}
textarea{width:100%;min-height:80px;resize:vertical}
label.campo{display:flex;flex-direction:column;gap:3px;font-size:.75rem;color:var(--muted)}
.grade2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.grade2 .cheio{grid-column:1/-1}
.form-linha{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.form-linha input[type=text]{flex:1 1 220px}
.nota{font-size:.8rem;color:var(--muted)}
.nota.erro{color:var(--crit)}
form.inline{display:inline}

/* resumo */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.stat{background:var(--surface);padding:12px 14px;display:flex;flex-direction:column}
.stat b{font-size:1.6rem;line-height:1.1;color:var(--brand);font-variant-numeric:tabular-nums}
.stat.quente b{color:var(--crit)}
.stat span{font-size:.78rem;color:var(--muted)}
.filtros{display:flex;gap:6px;flex-wrap:wrap}
.chip{font:500 .8rem var(--f);border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 11px;text-decoration:none}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}

/* cartões */
.lista{display:flex;flex-direction:column;gap:10px}
.cartao{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;grid-template-columns:5px 1fr;text-decoration:none;color:inherit}
.cartao:hover{border-color:var(--muted)}
.faixa{border-radius:8px 0 0 8px;background:var(--idle)}
.faixa.crit{background:var(--crit)} .faixa.warn{background:var(--warn)} .faixa.ok{background:var(--ok)} .faixa.info{background:var(--accent)}
.cartao .corpo{padding:12px 14px;display:grid;grid-template-columns:1fr auto;gap:4px 12px}
.meta{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:.82rem;color:var(--muted)}
.mono{font-family:var(--mono);font-size:.78rem}
.dir{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.pill{font:600 .72rem var(--f);padding:2px 8px;border-radius:999px;white-space:nowrap;background:var(--idle-bg);color:var(--idle)}
.pill.crit{background:var(--crit-bg);color:var(--crit)} .pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.ok{background:var(--ok-bg);color:var(--ok)} .pill.info{background:var(--info-bg);color:var(--accent)}
.prazo{font-family:var(--mono);font-size:.75rem;color:var(--muted)}
.prazo.atraso{color:var(--crit);font-weight:500}
.prox{grid-column:1/-1;font-size:.85rem}
.vazio{background:var(--surface);border:1px dashed var(--line);border-radius:8px;padding:28px 18px;text-align:center;color:var(--muted)}

/* ficha */
.ficha{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:18px;align-items:start}
.painel{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:14px}
.sec{display:flex;flex-direction:column;gap:8px}
.sec+.sec{border-top:1px solid var(--line);padding-top:14px}
.carimbo{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:0}
.carimbo div{padding:7px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0}
.carimbo div:nth-child(3n){border-right:0}
.carimbo dt{font-family:var(--mono);font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.carimbo dd{margin:0;font-size:.88rem;overflow-wrap:anywhere}
ul.det{margin:0;padding-left:18px;font-size:.9rem;display:flex;flex-direction:column;gap:3px}
.pend{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:6px 8px;border-radius:6px}
.pend:hover{background:var(--sunk)}
.pend.urgente{background:var(--crit-bg)}
.pend.feito .txt{text-decoration:line-through;color:var(--muted)}
.pend .txt{overflow-wrap:anywhere}
.pend .quando{display:block;font-family:var(--mono);font-size:.72rem;color:var(--muted)}
.pend .quando.atraso{color:var(--crit)}
.pend .acoes{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.check{width:22px;height:22px;border:2px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer;padding:0;color:var(--accent-ink);font-weight:700;line-height:1}
.check.on{background:var(--accent);border-color:var(--accent)}
.resp{margin:0 0 6px 40px;border-left:2px solid var(--accent);padding:2px 0 2px 10px;font-size:.88rem;white-space:pre-wrap}
.resp .quando{font-family:var(--mono);font-size:.7rem;color:var(--muted);display:block}
details>summary{cursor:pointer;font-size:.8rem;color:var(--accent);list-style:none}
details>summary::-webkit-details-marker{display:none}
.doc{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.doc .tag{font:600 .66rem var(--mono);color:var(--accent);background:var(--info-bg);border-radius:4px;padding:3px 6px}
.doc .nm{min-width:0;overflow-wrap:anywhere;font-size:.9rem}
.doc .nm span{display:block;font-family:var(--mono);font-size:.7rem;color:var(--muted)}
.grupo h4{margin:0 0 6px;font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}

/* chat */
.chat{position:sticky;top:12px;max-height:calc(100vh - 24px);padding:0;gap:0}
.chat header{padding:12px 14px;border-bottom:1px solid var(--line)}
.msgs{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-height:240px}
.msg{max-width:92%;padding:8px 11px;border-radius:10px;font-size:.9rem;white-space:pre-wrap;overflow-wrap:anywhere}
.msg.user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:3px}
.msg.assistant{align-self:flex-start;background:var(--sunk);border-bottom-left-radius:3px}
.msg.aviso{align-self:center;background:var(--warn-bg);color:var(--warn);font-size:.8rem}
.chat form{border-top:1px solid var(--line);padding:10px;display:flex;flex-direction:column;gap:8px}
.chat textarea{min-height:64px}
.digitando{font-size:.8rem;color:var(--muted);padding:0 14px 8px}

/* tabelas */
table.tab{border-collapse:collapse;width:100%;font-size:.86rem}
table.tab th,table.tab td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:right;font-variant-numeric:tabular-nums}
table.tab th:first-child,table.tab td:first-child{text-align:left}
table.tab th{font:600 .72rem var(--mono);text-transform:uppercase;color:var(--muted)}

.login{max-width:360px;margin:10vh auto;padding:0 16px}
.login .painel{gap:12px}

.so-cel{display:none}
@media (max-width:900px){.so-cel{display:inline-flex}.ficha{grid-template-columns:1fr}.chat{position:static;max-height:none}}
@media (max-width:560px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.carimbo{grid-template-columns:repeat(2,minmax(0,1fr))}.carimbo div:nth-child(3n){border-right:1px solid var(--line)}.carimbo div:nth-child(2n){border-right:0}.grade2{grid-template-columns:1fr}.resp{margin-left:8px}}

/* abas do orçamento */
.abas{display:flex;gap:2px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.abas a{text-decoration:none;color:var(--muted);font-weight:600;font-size:.9rem;padding:8px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}
.abas a.on{color:var(--ink);border-bottom-color:var(--brand)}
.aviso{background:var(--warn-bg);color:var(--ink);border-radius:6px;padding:10px 12px;font-size:.88rem}
.aviso ul{margin:6px 0;padding-left:18px}
.aviso.ok{background:var(--ok-bg)}
.aviso.erro{background:var(--crit-bg)}

/* ficha da obra */
.ficha-obra{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}
.indice{position:sticky;top:12px;display:flex;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px}
.indice a{display:flex;justify-content:space-between;gap:8px;text-decoration:none;color:var(--ink);font-size:.82rem;padding:6px 8px;border-radius:5px}
.indice a:hover{background:var(--sunk)}
.indice a span{font-family:var(--mono);font-size:.7rem;color:var(--muted);white-space:nowrap}
#form-ficha{display:flex;flex-direction:column;gap:14px}
.secao{scroll-margin-top:12px}
.secao header{display:flex;flex-direction:column;gap:2px}
.grade3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}
.grade3 .cheio{grid-column:1/-1}
.ajuda{font-size:.7rem;color:var(--muted)}
.tab-rolagem{overflow-x:auto}
table.tab-lista td{padding:4px}
table.tab-lista input,table.tab-lista select{width:100%}
.barra-salvar{position:sticky;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:10px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* motor */
.croquis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.croquis figure{margin:0;display:flex;flex-direction:column;gap:6px}
.croquis svg{width:100%;height:auto;background:var(--sunk);border-radius:6px}
.croquis .solo{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 3}
.croquis .est{stroke:var(--ink);stroke-width:3}
.croquis .cob{stroke:var(--brand);stroke-width:2.5;fill:none}
.croquis .cota{stroke:var(--muted);stroke-width:1}
.croquis .eixo{stroke:var(--line);stroke-width:1;stroke-dasharray:5 4}
.croquis .abert{stroke:var(--gold);stroke-width:5}
.croquis .txt{fill:var(--ink);font:12px var(--f)}
.croquis .txt.peq{font-size:10px;fill:var(--muted)}
ol.modulos{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:.9rem}
ol.modulos .pill{margin-left:8px}

@media (max-width:900px){.ficha-obra{grid-template-columns:1fr}.indice{position:static;flex-direction:row;flex-wrap:wrap}.grade3{grid-template-columns:repeat(2,minmax(0,1fr))}.croquis{grid-template-columns:1fr}}
@media (max-width:560px){.grade3{grid-template-columns:1fr}}
table.tab-lista{min-width:640px}
table.tab-lista th{white-space:nowrap}
table.tab-lista td:nth-child(1),table.tab-lista td:nth-child(2){min-width:120px}
table.tab-lista td:nth-child(6){min-width:90px}
.croquis .svg-orig{stroke:var(--line);stroke-width:3;fill:none}
.croquis .svg-defo{stroke:var(--brand);stroke-width:2;fill:none}
.croquis .svg-solo{stroke:var(--muted);stroke-width:1;stroke-dasharray:4 3}
.croquis .svg-txt{fill:var(--muted);font:11px var(--f)}
table.tab tr.sel td{background:var(--info-bg)}
.minis{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:8px 0}
.minis svg{width:100%;height:auto;background:var(--sunk);border-radius:6px}
.mini-tit{fill:var(--ink);font:600 11px var(--f)}
.mini-eixo{stroke:var(--line);stroke-width:1}
.mini-bar{fill:var(--brand)}
.mini-bar.nao{fill:var(--line)}
.mini-bar.uso{stroke:var(--ink);stroke-width:2}
.mini-alvo{fill:transparent}
.minis g:hover .mini-alvo{fill:var(--line);opacity:.35}
.mini-val{fill:var(--ink);font:600 10px var(--mono)}
.mini-x{fill:var(--muted);font:9px var(--mono)}
svg.secao{width:100%;height:auto;max-width:200px}
.sec-conc{fill:var(--sunk);stroke:var(--ink);stroke-width:1.5}
.sec-estribo{fill:none;stroke:var(--brand);stroke-width:1.2}
.sec-barra{fill:var(--ink)}
.sec-txt{fill:var(--muted);font:10px var(--mono)}
.sec-txt.peq{font-size:8px}
.modelos{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.modelo{border:1px solid var(--line);border-radius:6px;padding:6px;display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
.modelo.inativo{opacity:.45}
.modelo .rot{font:600 .72rem var(--f)}
@media (max-width:900px){.modelos{grid-template-columns:repeat(3,minmax(0,1fr))}}
.sec-duto{fill:var(--surface,#fff);stroke:var(--accent);stroke-width:1.5;stroke-dasharray:3 2}
svg.viga-svg{width:100%;max-width:260px;height:auto}
svg.viga-elev{width:100%;height:auto;cursor:crosshair;background:var(--sunk);border-radius:6px}
.viga-conc{fill:var(--sunk);stroke:var(--ink);stroke-width:1.5}
svg.viga-elev .viga-conc{fill:var(--surface,#fff)}
.viga-zona{fill:var(--warn-bg);opacity:.6;pointer-events:none}
.viga-neo{fill:var(--ink)}
.viga-pino{stroke:var(--brand);stroke-width:3}
.furo-ok{fill:var(--ok-bg);stroke:var(--ok);stroke-width:2}
.furo-ref{fill:var(--warn-bg);stroke:var(--warn);stroke-width:2}
.furo-nao{fill:var(--crit-bg);stroke:var(--crit);stroke-width:2}
.aviso.info{background:var(--info-bg)}
svg.viga-svg.grande{max-width:560px}
.cota-l{stroke:var(--accent);stroke-width:1}
.cota-t{fill:var(--accent);font:10px var(--mono)}
.viga-furo{fill:var(--surface);stroke:var(--muted);stroke-width:1;stroke-dasharray:2 2}
/* desenho técnico */
.desenho-caixa{background:var(--sunk);border-radius:6px;padding:6px;overflow-x:auto}
svg.desenho{width:100%;height:auto;display:block}
.d-hach{fill:url(#d-hach45);stroke:none;pointer-events:none}
.d-hach-l{stroke:var(--ink);stroke-width:.94;opacity:.45}
.d-hach2{fill:url(#d-hach135);stroke:none;pointer-events:none}
.d-ruptura{fill:none;stroke:var(--ink);stroke-width:.94;stroke-linejoin:miter}
.d-plano-corte{stroke:var(--ink);stroke-width:.94;stroke-dasharray:18 3 2 3}
.d-plano-ponta{stroke:var(--ink);stroke-width:1.89}
.d-plano-seta{stroke:var(--ink);stroke-width:1.2}
.d-seta-m{fill:var(--ink)}
.d-corte-t{fill:var(--ink);font:700 13px var(--f)}
.d-escala{fill:var(--muted);font:10px var(--f)}
.d-oculta{fill:none;stroke:var(--ink);stroke-width:.94;stroke-dasharray:6 3}
.d-conc{fill:var(--surface);stroke:var(--ink);stroke-width:1.9}
.d-conc2{fill:var(--sunk);stroke:var(--ink);stroke-width:1.9}
.d-vazio{fill:var(--sunk);stroke:var(--ink);stroke-width:.94;stroke-dasharray:4 3}
.d-placa{fill:var(--info-bg);stroke:var(--accent);stroke-width:1}
.d-neo{fill:var(--ink)}
.d-pino{stroke:var(--brand);stroke-width:3}
.d-furo{fill:var(--surface);stroke:var(--muted);stroke-width:1;stroke-dasharray:3 2}
.d-fina{stroke:var(--muted);stroke-width:.94;fill:none}
.d-eixo{stroke:var(--muted);stroke-width:.94;stroke-dasharray:18 3 2 3}
.d-ext{stroke:var(--accent);stroke-width:.94}
.d-cota{stroke:var(--accent);stroke-width:.94}
.d-cota-t{fill:var(--accent);font:11px var(--mono)}
.d-txt{fill:var(--ink);font:11px var(--mono)}
.d-cham-t{fill:var(--ink);font:11px var(--mono)}
.d-chamada{stroke:var(--muted);stroke-width:.94;fill:none}
.d-ponto{fill:var(--ink)}
.d-detalhe{fill:none;stroke:var(--brand);stroke-width:1.2;stroke-dasharray:5 3}
.d-detalhe-b{fill:var(--brand)}
.d-detalhe-t{fill:#fff;font:700 11px var(--f)}
.d-rotulo{fill:var(--muted);font:600 11px var(--f)}
.d-erro{fill:var(--crit-bg);stroke:var(--crit);stroke-width:1.5}
.d-faixa{fill:var(--info-bg);fill-opacity:.45;stroke:var(--accent);stroke-width:.8;stroke-dasharray:6 3}
.d-tracejado{fill:none;stroke:var(--ink);stroke-width:1;stroke-dasharray:5 3}
.d-eixo-c{fill:var(--surface);stroke:var(--muted);stroke-width:1}
.d-eixo-t{fill:var(--ink);font:600 11px var(--f)}
.d-pil{fill:var(--ink)}
.d-pil-duto{fill:var(--accent)}
.d-pil-int{fill:var(--muted)}
.d-viga-p{stroke:var(--brand);stroke-width:3}
@media print{.topo,.abas,.btn{display:none}.painel{break-inside:avoid;border:none}svg.desenho{width:auto;max-width:100%}}
.modelo svg.desenho{max-width:150px}
.d-ordem{fill:var(--brand)}
.d-ordem-t{fill:#fff;font:700 11px var(--f)}
.d-seta{stroke:var(--accent);stroke-width:2}
.d-seta-p{fill:var(--accent)}
.cadernos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.caderno-card{border:1px solid var(--line);border-radius:8px;padding:12px;color:inherit;text-decoration:none;display:flex;flex-direction:column;gap:6px}
.caderno-card:hover{border-color:var(--brand)}
.caderno-card ul{margin:0;padding-left:18px;font-size:.82rem;color:var(--muted)}
.carimbo-prancha{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:6px;margin-bottom:10px}
.carimbo-prancha h2{margin:2px 0 0}
.carimbo-prancha dl{display:grid;grid-template-columns:repeat(4,auto);gap:4px 14px;margin:0;font-size:.78rem}
.carimbo-prancha dt{font:600 .64rem var(--mono);text-transform:uppercase;color:var(--muted)}
.carimbo-prancha dd{margin:0}
.indice-pranchas{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.indice-pranchas a{font-size:.78rem;border:1px solid var(--line);border-radius:999px;padding:2px 10px;text-decoration:none}
.resumo-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.resumo-grade h4{margin:0 0 4px;font:600 .72rem var(--mono);text-transform:uppercase;color:var(--muted)}
.lista-norma{margin:4px 0;padding-left:20px}
.seq{display:flex;flex-wrap:wrap;gap:6px;font-size:.78rem}
.seq span{border:1px solid var(--line);border-radius:6px;padding:2px 6px}
.seq i{color:var(--muted);font-style:normal}
.etiquetas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}
.etiqueta{display:flex;gap:8px;border:1px dashed var(--ink);border-radius:4px;padding:6px;background:#fff;color:#000;font:10px var(--mono);break-inside:avoid}
.et-qr svg{display:block}
.et-cod{font:700 15px var(--f)}
.et-campo{margin-top:2px;color:#333}
.et-obra{color:#555}
#cena3d{width:100%;border-radius:6px;overflow:hidden}
@media print{.etiquetas{grid-template-columns:repeat(3,1fr)}.prancha{break-after:page}}

/* legenda da folha (NBR 16752): canto inferior direito, 180 mm de comprimento */
.legenda-nbr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1.5px solid var(--ink);margin:14px 0 0 auto;max-width:680px;font-size:.74rem}
.legenda-nbr>div{padding:3px 6px;border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);min-width:0}
.legenda-nbr>div:nth-child(3n){border-right:0}
.legenda-nbr dt{font:600 .58rem var(--mono);text-transform:uppercase;color:var(--muted)}
.legenda-nbr dd{margin:0;overflow-wrap:anywhere}
.legenda-nbr .lg-emp{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline}
.legenda-nbr .lg-cont{grid-column:1/-1}
.legenda-nbr .lg-rt{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:end;column-gap:8px}
.legenda-nbr .lg-rt dt{grid-column:1/-1}
.legenda-nbr .lg-ass{font:.58rem var(--mono);color:var(--muted);border-top:1px solid var(--ink);min-width:44mm;text-align:center;padding-top:1px;margin-top:10px}
.legenda-nbr .lg-falta{color:var(--crit)}
.legenda-nbr .lg-folha{grid-column:span 2}
.legenda-nbr .lg-folha dd{font-size:.9rem}
@media print{
  @page{size:A3 landscape;margin:10mm 10mm 10mm 20mm}       /* NBR 16752: margem esquerda 20 mm, demais 10 mm */
  .prancha{border:.7mm solid #000 !important;padding:6mm;position:relative;break-after:page}   /* quadro 0,7 mm (A3) */
  .legenda-nbr{width:180mm;max-width:180mm;margin:8mm 0 0 auto}
  .indice-pranchas{display:none}
}
