/* Layout: abas no topo, menu lateral verde (só nas páginas: no editor ele some), a planta livre com as
   propriedades num painel fixo à direita (como no Figma e no AutoCAD) e a barra de status embaixo.
   Claro por padrão; Escuro na barra de status e no menu do usuário. */
:root{
  --teal:#005c5c; --teal-2:#0b6f6f; --teal-3:#044747; --teal-ink:#d6efea; --teal-mut:#8cc7bd; --mint-vivo:#7be0c0;
  --mint:#e4f2ee; --mint-2:#c9e4dd;
  --green:#1f8a5b; --terra:#d0643f;
  --bg:#f6f4f0; --card:#ffffff; --sunk:#f0ede8; --sunk-2:#ece9e4; --float:rgba(255,255,255,.96);
  --campo:#f3f1ed; --nav:#fbfaf8; --sel:#00a3a1; --sel-bg:#e3f3ee; --radio:#c9c1b8;
  --ink:#241a15; --ink-2:#5f524b; --ink-3:#9a8f87;
  --line:#e5e0d9; --line-2:#efebe5;
  --ok:#1f8a5b; --ok-bg:#e4f3eb; --ok-bd:#c6e6d4; --warn:#b4610a; --warn-bg:#fcefdc; --bad:#c03a2b; --bad-bg:#fbe7e3;
  --canvas:#e8e5df; --dot:rgba(95,82,75,.16);
  --sh-1:0 1px 2px rgba(36,26,21,.06);
  --sh-seg:0 1px 2px rgba(36,26,21,.08);
  --sh-2:0 4px 10px rgba(36,26,21,.08),0 14px 34px rgba(36,26,21,.10);
  --font:"Poppins",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,Consolas,monospace; --mono-tag:ui-monospace,"Cascadia Mono",Consolas,monospace;
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%239a8f87' stroke-width='2.4'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  color-scheme:light;
}
body.escuro{
  --mint:#123a3a; --mint-2:#1c5251;
  --bg:#151b1d; --card:#1c2427; --sunk:#232d30; --sunk-2:#232d30; --float:rgba(28,36,39,.96);
  --campo:#242e31; --nav:#1f282b; --sel-bg:#173b35; --radio:#4a5658;
  --ink:#e4ebea; --ink-2:#a8b4b2; --ink-3:#738280;
  --line:#2c383b; --line-2:#253033;
  --ok-bg:#16352a; --ok-bd:#21523d; --warn-bg:#3a2a14; --bad-bg:#3d1f1b; --warn:#e59b45; --ok:#4cc08a; --bad:#ef7565;
  --canvas:#101618; --dot:rgba(255,255,255,.05);
  --sh-1:0 1px 2px rgba(0,0,0,.3); --sh-seg:0 1px 2px rgba(0,0,0,.35); --sh-2:0 6px 24px rgba(0,0,0,.45);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:13px;line-height:1.45;overflow:hidden;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--teal-2);outline-offset:2px}
h1,h2,h3,h4{margin:0;font-weight:600}
kbd{font-family:var(--mono)}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--mono);font-size:12px}
.esp{flex:1}
.mut{color:var(--ink-2)} .mut3{color:var(--ink-3)}
.row{display:flex;align-items:center;gap:8px}
[hidden]{display:none!important}

/* ---------- abas no topo ---------- */
#app{height:100%;display:flex;flex-direction:column}
#abas{display:flex;align-items:stretch;height:38px;background:var(--teal-3);color:#fff;flex:none;padding-right:10px}
.botao-app{width:44px;border:0;background:var(--teal);display:grid;place-items:center;flex:none}
.botao-app:hover{background:var(--teal-2)}
.abas-lista{display:flex;align-items:stretch;min-width:0;overflow-x:auto;scrollbar-width:none}
.aba{display:flex;align-items:center;gap:8px;padding:0 8px 0 16px;border:0;background:transparent;color:var(--teal-ink);white-space:nowrap;max-width:280px;font-size:12.5px;border-right:1px solid rgba(255,255,255,.07)}
.aba:first-child{padding-right:16px}
.aba:hover{background:rgba(255,255,255,.07);color:#fff}
.aba[aria-selected=true]{background:var(--card);color:var(--ink);font-weight:600}
.aba .tt{overflow:hidden;text-overflow:ellipsis}
.aba .dot{width:7px;height:7px;border-radius:50%;background:var(--terra);flex:none}
.aba .x{width:20px;height:20px;border-radius:5px;display:grid;place-items:center;opacity:.55;flex:none}
.aba .x:hover{background:rgba(0,0,0,.12);opacity:1}
.aba-mais{width:38px;border:0;background:transparent;color:var(--mint-vivo);display:grid;place-items:center;flex:none}
.aba-mais:hover{background:rgba(255,255,255,.08)}
/* muitas plantas abertas: as abas encolhem como no navegador (até 116 px); o que não cabe rola, com a
   roda do mouse e as setas, e o botão com o número lista todas as abertas */
.abas-lista{flex:0 1 auto}
.abas-lista .aba:not(:first-child){flex:0 1 230px;min-width:116px}
.abas-lista .aba:not(:first-child) .tt{flex:1;min-width:0;text-align:left}
.aba-seta{width:26px;border:0;background:transparent;color:var(--teal-ink);display:none;place-items:center;flex:none}
.aba-seta:hover:not([disabled]){background:rgba(255,255,255,.08);color:#fff}
.aba-seta[disabled]{opacity:.3;cursor:default}
#abas.transborda .aba-seta{display:grid}
#abas.transborda .abas-lista{box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.35),inset -10px 0 8px -8px rgba(0,0,0,.35)}
.aba-todas{display:none;align-items:center;gap:4px;margin:6px 2px 6px 4px;padding:0 8px;border:1px solid rgba(255,255,255,.18);border-radius:6px;background:transparent;color:var(--mint-vivo);font-size:11.5px;flex:none}
.aba-todas b{font-weight:600}
.aba-todas:hover,.aba-todas[aria-expanded=true]{background:rgba(255,255,255,.1);color:#fff}
#abas.transborda .aba-todas{display:flex}
.pop.abas{width:340px;max-height:70vh;overflow:auto}
.pop-aba{display:flex;align-items:center;gap:2px;border-radius:5px}
.pop-aba .pop-it{flex:1;min-width:0}
.pop-aba .tt{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pop-aba .dot{width:7px;height:7px;border-radius:50%;background:var(--terra);flex:none}
.pop-aba.atual .pop-it{background:var(--mint);color:var(--teal);font-weight:600}
body.escuro .pop-aba.atual .pop-it{color:var(--mint-vivo)}
.pop-x{width:26px;height:26px;border:0;border-radius:5px;background:transparent;color:var(--ink-3);display:grid;place-items:center;flex:none}
.pop-x:hover{background:var(--sunk);color:var(--ink)}
.pres{display:flex;align-items:center;gap:10px;margin-left:auto;padding-left:12px;font-size:12px;color:var(--teal-ink);white-space:nowrap}
.pres .pedir{height:24px;border:0;border-radius:4px;background:var(--mint-vivo);color:var(--teal-3);font-weight:600;font-size:11.5px;padding:0 10px}
.rosto{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:9.5px;font-weight:600;color:#fff;border:2px solid var(--teal-3);flex:none}
.rosto.eu{background:var(--mint-vivo);color:var(--teal);border:0}
.rostos{display:flex}
.rostos .rosto+.rosto{margin-left:-6px}
.rostos .rosto.eu{border:2px solid var(--teal-3)}
.eu-btn{display:flex;align-items:center;gap:6px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--teal-ink);padding:0}
.eu-btn:hover,.eu-btn[aria-expanded=true]{background:rgba(255,255,255,.08)}

#corpo{flex:1;min-height:0;position:relative;display:flex}
#home{flex:1;display:flex;min-width:0;min-height:0}
#eds{flex:1;display:flex;min-width:0;min-height:0}
#eds:empty{display:none}

/* ---------- menu lateral ---------- */
.menu{position:relative;z-index:5;width:232px;flex:none;background:var(--teal);color:#fff;display:flex;flex-direction:column}
.menu-marca{flex:none;overflow:hidden;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:18px 14px 16px 20px;border-bottom:1px solid rgba(255,255,255,.1)}
.menu-marca b{display:block;font-size:10.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--mint-vivo);margin-top:9px}
.menu nav{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;padding:10px 0;display:flex;flex-direction:column}
.menu a.it{display:flex;align-items:center;gap:12px;padding:9px 20px;font-size:13px;color:var(--teal-ink);text-decoration:none;cursor:pointer;white-space:nowrap}
.menu a.it svg{flex:none}
.menu a.it:hover{background:rgba(255,255,255,.06);color:#fff}
.menu a.it[aria-current=page]{background:rgba(255,255,255,.1);color:#fff;font-weight:500;box-shadow:inset 3px 0 0 var(--mint-vivo)}
.menu .sub{display:flex;flex-direction:column;padding:4px 0 10px;background:rgba(255,255,255,.06)}
.menu .sub a{color:var(--teal-mut);font-size:12.5px;padding:5px 20px 5px 50px;cursor:pointer}
.menu .sub a:hover,.menu .sub a[aria-current=true]{color:#fff}
.menu-user{flex:none;overflow:hidden;margin-top:auto;padding:12px 14px;border-top:1px solid rgba(255,255,255,.1);display:flex;gap:10px;align-items:center}
.menu-user .av{width:30px;height:30px;border-radius:50%;background:var(--mint-vivo);color:var(--teal);display:grid;place-items:center;font-weight:600;font-size:11px;flex:none}
.menu-user div{min-width:0;line-height:1.3;flex:1}
.menu-user b{display:block;font-weight:500;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.menu-user small{color:var(--teal-mut);font-size:11px}
.menu-user button{width:28px;height:28px;border:0;background:transparent;color:var(--teal-ink);border-radius:6px;display:grid;place-items:center;flex:none}
.menu-user button:hover{background:rgba(255,255,255,.1);color:#fff}
.menu-user button[aria-current=page]{background:rgba(255,255,255,.14);color:#fff}
/* recolher o menu (como no Supply v2): a bolinha na borda direita deixa só os ícones, com o nome no title.
   O nome continua no item, transparente e cortado pelo nav, para a altura não mudar */
.menu-rec{position:absolute;top:101px;right:-12px;z-index:1;width:24px;height:24px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink-2);display:grid;place-items:center;box-shadow:var(--sh-1)}
.menu-rec:hover{background:var(--sunk);color:var(--ink)}
.menu.anima{transition:width .2s ease}   /* só depois do clique: ao abrir já recolhido, não anima */
.menu.recolhido{width:64px}
.menu.recolhido .menu-marca{height:85px;padding:0;align-items:center;justify-content:center}
.menu.recolhido .menu-marca .marca-aw{height:26px;color:#fff}
.menu.recolhido a.it{padding:9px 23px}
.menu.recolhido a.it span{opacity:0}
.menu.recolhido .menu-user{flex-direction:column;gap:6px;padding:12px 0}

/* ---------- botões e campos ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:30px;padding:0 12px;border-radius:6px;border:1px solid var(--line);background:var(--card);font-weight:500;font-size:12px;white-space:nowrap;color:var(--ink);flex:none}
.btn:hover:not([disabled]){border-color:var(--ink-3)}
.btn.pri{background:var(--teal);border:0;color:#fff;font-weight:600;font-size:12.5px}
.btn.pri:hover:not([disabled]){background:var(--teal-2)}
.btn.md{height:34px;padding:0 14px;font-size:12.5px}
.btn.md.pri,.btn.md.perigo{padding:0 16px}
.btn.lg{height:40px;font-size:13px}
.btn.sm{height:28px;padding:0 10px}
.btn.ghost{border-color:transparent;background:transparent}
.btn.ghost:hover:not([disabled]){background:var(--sunk);border-color:transparent}
.btn.txt{border:0;background:transparent;padding:0 10px;gap:6px;font-weight:400;color:var(--ink-2)}
.btn.txt:hover:not([disabled]){background:var(--sunk-2)}
.btn.perigo.cheio{background:var(--bad);border:0;color:#fff;font-weight:600}
.btn.perigo.cheio:hover:not([disabled]){filter:brightness(1.07);border-color:var(--bad)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.icobtn{width:28px;height:28px;border-radius:6px;border:0;background:transparent;display:grid;place-items:center;color:var(--ink-3);flex:none}
.icobtn:hover:not([disabled]){background:var(--sunk);color:var(--ink)}
.icobtn.perigo:hover:not([disabled]){background:var(--bad-bg);color:var(--bad)}
.icobtn[disabled]{opacity:.4;cursor:not-allowed}
/* campo do formulário (fundo cinza claro, sem borda) */
.campo-i{height:34px;border:1px solid transparent;border-radius:6px;background:var(--campo);padding:0 10px;font-size:13px;color:var(--ink);width:100%;min-width:0}
select.campo-i{appearance:none;padding-right:26px;background:var(--campo) var(--chev) no-repeat right 10px center}
textarea.campo-i{height:auto;padding:7px 10px;line-height:1.55;resize:vertical}
.campo-i:hover:not([disabled]){border-color:var(--line)}
.campo-i:focus{outline:none;border-color:var(--teal-2);background-color:var(--card)}
.campo-i.erro{border-color:var(--bad);background-color:var(--card)}
.campo-i[disabled]{color:var(--ink-2);cursor:not-allowed}
.erro-form{color:var(--bad);font-size:12px;min-height:16px}
.erro-form:empty{display:none}

/* ---------- páginas ---------- */
.pag{flex:1;min-width:0;overflow-y:auto;padding:24px 32px 40px;scrollbar-gutter:stable}
.pag-in{max-width:1240px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
/* todas as páginas com a mesma largura de conteúdo (a de Levantamentos) */
.pag-in.estreito{gap:18px}
.pg-cab{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pg-cab h1{font-size:20px;letter-spacing:-.3px}
.pg-n{font-size:13px;color:var(--ink-3)}
.pg-dir{margin-left:auto;display:flex;align-items:center;gap:8px}
.pg-filtros{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.filtro{position:relative;display:flex;align-items:center;justify-content:space-between;gap:8px;height:30px;padding:0 10px;border-radius:6px;background:var(--card);border:1px solid var(--line);font-size:12px;min-width:200px;color:var(--ink-3);cursor:pointer}
.fl-t{display:flex;gap:6px;white-space:nowrap;min-width:0}
.fl-t b{font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis}
.filtro select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;appearance:none;font-size:12px}
.filtro:focus-within{border-color:var(--teal-2)}
.filtro.auto{min-width:0}
.filtro.auto .fl-t{gap:8px}
.busca{position:relative;display:flex;align-items:center}
.busca svg{position:absolute;left:10px;color:var(--ink-3)}
.busca input{height:30px;width:200px;padding:0 10px 0 30px;border:1px solid var(--line);border-radius:6px;background:var(--card);font-size:12.5px}
.busca input:focus{outline:none;border-color:var(--teal-2)}
.vista{display:flex;background:var(--sunk-2);border-radius:6px;padding:2px}
.vista button{width:30px;height:26px;border:0;border-radius:4px;display:grid;place-items:center;color:var(--ink-3);background:transparent}
.vista button[aria-pressed=true]{background:var(--card);box-shadow:var(--sh-seg);color:var(--ink)}
/* a lista de obras (a do Drywall): a busca em cima, as fixas, uma linha, as obras com a contagem, criar embaixo */
.lo-campo{display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer}
.lo-campo .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lo-campo svg{flex:none;color:var(--ink-3)}
.lo-campo[aria-expanded=true]{border-color:var(--teal-2)}
.filtro.lo-campo{min-width:220px;max-width:420px;padding:0 10px 0 12px;font-size:12.5px;color:var(--ink)}
.filtro.lo-campo .nm{font-weight:500}
.campo-i.lo-campo.avulsa .nm{color:var(--ink-3)}
.lista-obras{position:fixed;z-index:70;display:flex;flex-direction:column;overflow:hidden;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:var(--sh-2)}
.lo-busca{flex:none;width:100%;height:34px;padding:0 12px;border:0;border-bottom:1px solid var(--line);background:transparent;font-size:12.5px;color:var(--ink)}
.lo-busca:focus{outline:none}
.lo-busca::placeholder{color:var(--ink-3)}
.lo-ops{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 0}
.lo-op{display:flex;align-items:center;gap:8px;height:30px;padding:0 12px;cursor:pointer;white-space:nowrap;font-size:12.5px;color:var(--ink)}
.lo-op .ck{width:10px;flex:none;display:flex;color:var(--teal-2)}
.lo-op .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.lo-op .n{flex:none;color:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}
.lo-op.fixa .nm{color:var(--ink-2)}
.lo-op:hover{background:var(--sunk)}
.lo-op[aria-selected=true]{background:var(--mint)}
.lo-sep{height:1px;margin:4px 0;background:var(--line)}
.lo-vazio{padding:8px 12px;color:var(--ink-3);font-size:12px}
.lo-pe{flex:none;border-top:1px solid var(--line);padding:4px 0}
.lo-pe .lo-op .nm b{font-weight:600}
.lo-nova{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 12px}
.lo-nova .ck{width:10px;flex:none;display:flex;color:var(--teal-2)}
.lo-nome{flex:1;min-width:0;height:28px;padding:0 8px;border:1px solid var(--teal-2);border-radius:5px;background:var(--card);font-size:12.5px;color:var(--ink)}
.lo-nome:focus{outline:none}
.lista-obras.ocupada .lo-pe{opacity:.5;pointer-events:none}
.lo-erro{flex:none;padding:6px 12px;border-top:1px solid var(--line);color:var(--bad);font-size:11.5px}
body.escuro .lo-op .ck,body.escuro .lo-nova .ck{color:var(--mint-vivo)}
.dica{font-size:11.5px;color:var(--ink-3)}
.vazio-pg{color:var(--ink-3);padding:48px 0;text-align:center}
.caixa{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden}
.sec-t{font-size:11px;font-weight:600;color:var(--ink-3);padding-top:8px}
.av{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:600;color:#fff;flex:none}
.voce{font-size:10px;font-weight:600;background:var(--teal);color:#fff;border-radius:99px;padding:1px 7px;flex:none}
.pag a:not(.it){color:var(--teal-2);text-decoration:none;cursor:pointer}
.pag a:not(.it):hover{text-decoration:underline}
body.escuro .pag a:not(.it){color:var(--mint-vivo)}

/* levantamentos em cards */
.grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.lev{background:var(--card);border:1px solid var(--line);border-radius:8px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;text-align:left;padding:0;transition:border-color .12s,box-shadow .12s}
.lev:hover{border-color:var(--teal-2);box-shadow:0 0 0 1px var(--teal-2)}
.lev .thumb{aspect-ratio:16/9;background:var(--sunk);border-bottom:1px solid var(--line-2);position:relative;display:grid;place-items:center;color:var(--ink-3);overflow:hidden}
.lev .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.selo{position:absolute;left:8px;top:8px;font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:99px;white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis}
.selo.eu{background:var(--teal);color:#fff}
.selo.outro{background:var(--card);color:var(--ink-2);box-shadow:var(--sh-seg)}
.selo.ok{background:var(--ok-bg);color:var(--ok)}
.selo.bad{background:var(--bad-bg);color:var(--bad)}
.lev .info{padding:10px 12px 12px;display:flex;flex-direction:column;gap:2px}
.lev .topo{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;color:var(--ink-3)}
.lev .topo span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lev h3{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lev .arq{font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lev .ets{display:flex;flex-direction:column;gap:3px;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-2)}
.et-l{display:flex;align-items:center;gap:7px;font-size:11.5px}
.et-l .n{color:var(--ink-2);width:56px}
.et-l .v{font-variant-numeric:tabular-nums}
.et-l i,.et-c i{width:7px;height:7px;border-radius:50%;flex:none;background:#d4cdc6}
.et-l.ok i,.et-c.ok i{background:var(--ok)} .et-l.rev i,.et-c.rev i{background:var(--warn)}
.et-l.nao .v,.et-c.nao{color:var(--ink-3)}
.lev .rod{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px;font-size:11px;min-height:16px}
.lev .rod .warn{color:var(--warn);font-weight:500} .lev .rod .bad{color:var(--bad);font-weight:500}
/* levantamentos em lista */
.ll{display:grid;grid-template-columns:minmax(0,2.4fr) 120px 130px 130px 130px 110px 96px;gap:12px;align-items:center;min-height:56px;padding:8px 16px;border-bottom:1px solid var(--line-2);font-size:12.5px}
.ll:last-child{border-bottom:0}
.ll:not(.cab):hover{background:var(--nav)}
.ll.cab{min-height:36px;height:36px;padding:0 16px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3)}
.ll-lev{display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}
.ll-lev .mini{width:56px;height:36px;border-radius:4px;background:var(--sunk);border:1px solid var(--line-2);flex:none;overflow:hidden;display:grid;place-items:center;color:var(--ink-3);position:relative}
.ll-lev .mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ll-lev .tx{display:flex;flex-direction:column;min-width:0}
.ll-lev b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ll-lev small{font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ll-lev:hover b{color:var(--teal-2)}
.ll-dono{display:flex;align-items:center;gap:8px;min-width:0}
.ll-dono>span:last-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.et-c{display:flex;align-items:center;gap:7px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
.ll-q{color:var(--ink-2)}
.ll-ac{display:flex;justify-content:flex-end;gap:4px}
@media (max-width:1240px){.ll{grid-template-columns:minmax(0,2.4fr) 120px 120px 120px 96px}.ll .c-dono,.ll .c-q{display:none}}
/* registro */
/* usuários */
.uu{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1.4fr) 130px 120px 150px;gap:12px;align-items:center;height:52px;padding:0 16px;border-bottom:1px solid var(--line-2);font-size:12.5px}
.uu:last-child{border-bottom:0}
.uu.cab{height:36px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3)}
.uu.off{opacity:.5}
.uu-nome{display:flex;align-items:center;gap:10px;min-width:0}
.uu-nome b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uu .mail{color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.uu .papel-t{display:flex;align-items:center;height:28px;padding:0 9px;font-size:12px;line-height:1.3}
.uu.cab .mail{color:inherit}
.uu .nunca{color:var(--warn)} .uu .ult{color:var(--ink-2)}
.uu-ac{display:flex;justify-content:flex-end;align-items:center;gap:4px}
.uu-ac .btn.ghost{color:var(--ink-2);border:0}
/* registro, usuários e login, redesenhados (13/10/2026). As cores por tipo de ação: --tc (texto, ícone) e --tb (fundo) */
.rt-todos{--tc:var(--ink-3)} .rt-lev{--tc:#0b8fa3;--tb:#e0f3f6} .rt-apr{--tc:var(--ok);--tb:var(--ok-bg)} .rt-orc{--tc:#b4532e;--tb:#fbeae2}
.rt-prec{--tc:#8a6d1d;--tb:#f5eeda} .rt-obra{--tc:var(--teal);--tb:var(--mint)} .rt-usu{--tc:#2457b8;--tb:#e6edfa} .rt-out{--tc:var(--ink-2);--tb:var(--sunk-2)} .rt-del{--tc:var(--bad);--tb:var(--bad-bg)}
body.escuro .rt-lev{--tc:#5cc6d6;--tb:#163a40} body.escuro .rt-orc{--tc:#f0a27c;--tb:#3d2a20} body.escuro .rt-prec{--tc:#d9bf73;--tb:#352e1a}
body.escuro .rt-obra{--tc:var(--mint-vivo)} body.escuro .rt-usu{--tc:#8fb0f0;--tb:#1d2a45}
.rgl,.usl-pg{max-width:1240px;gap:16px}
.rgl-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.rgl-cab h1{font-size:24px;letter-spacing:-.5px;line-height:1.2}
.rgl-cab p{margin:4px 0 0;color:var(--ink-2);font-size:12.5px;max-width:680px}
.pag .rgl-busca input{width:300px;height:34px}
.rgl-filtros{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}
.rgl-filtros .chip{height:30px}
.rgl-filtros .chip:hover{border-color:var(--teal-2)}
.rgl-dot{display:block;width:8px;height:8px;border-radius:50%;flex:none;background:var(--tc)}
.chip[aria-pressed=true] .rgl-dot{box-shadow:0 0 0 2px rgba(255,255,255,.7)}
.rgl-grade{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}
.rgl-col{display:flex;flex-direction:column;gap:20px;min-width:0}
.rgl-dia{display:flex;align-items:baseline;gap:10px;margin:0 4px 8px}
.rgl-dia h2{font-size:14px}
.rgl-dia span{font-size:12px;color:var(--ink-3)}
.rgl-dia .n{margin-left:auto}
.rgl-tl{list-style:none;margin:0;padding:6px 0}
.rgl-e{position:relative;display:grid;grid-template-columns:62px 28px minmax(0,1fr);gap:0 12px;padding:10px 18px 10px 12px;align-items:start}
.rgl-e:hover{background:var(--nav)}
/* a linha passa pelo centro dos ícones: 12 de margem + 62 da hora + 12 de vão + 14 (metade do ícone) − 1 */
.rgl-e::before{content:"";position:absolute;left:99px;top:0;bottom:0;width:2px;background:var(--line-2)}
.rgl-e:first-child::before{top:22px}
.rgl-e:last-child::before{bottom:calc(100% - 22px)}
.rgl-e:only-child::before{display:none}
.rgl-h{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-2);padding-top:4px;line-height:1.3}
.rgl-h small{display:block;font-size:10.5px;color:var(--ink-3)}
.rgl-no{position:relative;z-index:1;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--tb);color:var(--tc);box-shadow:0 0 0 3px var(--card)}
.rgl-e:hover .rgl-no{box-shadow:0 0 0 3px var(--nav)}
.rgl-tx{display:flex;flex-direction:column;gap:6px;min-width:0;padding-top:3px}
.rgl-l1{margin:0;display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:13px;line-height:1.4}
.rgl-l1 b{font-weight:600}
.rgl-alvos{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.rgl-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:6px;background:var(--sunk);border:1px solid var(--line-2);font-size:12px;color:var(--ink);white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.pag a.rgl-chip{color:var(--ink);text-decoration:none}
.pag a.rgl-chip:hover{border-color:var(--teal-2);text-decoration:none}
.rgl-chip.obra,.pag a.rgl-chip.obra{background:var(--mint);border-color:transparent;color:var(--teal);font-weight:600}
body.escuro .rgl-chip.obra,body.escuro .pag a.rgl-chip.obra{color:var(--mint-vivo)}
.rgl-chip.mono{font-family:var(--mono);font-size:11.5px}
.rgl-chip.orc{background:#fbeae2;border-color:transparent} body.escuro .rgl-chip.orc{background:#3d2a20}
.rgl-mais{height:24px;padding:0 9px;border:1px dashed var(--line);border-radius:6px;background:transparent;font-size:12px;color:var(--teal-2);font-weight:600}
.rgl-mais:hover{border-color:var(--teal-2)}
.rgl-passos{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--ink-2)}
.rgl-passo{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.rgl-passo svg{color:var(--tc)}
.rgl-passo small{color:var(--ink-3);font-variant-numeric:tabular-nums}
.rgl-lado{display:flex;flex-direction:column;gap:12px;position:sticky;top:0}
.rgl-res{padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.rgl-rot{font-size:11px;font-weight:600;color:var(--ink-3)}
.rgl-big{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.rgl-big b{font-size:26px;font-weight:600;letter-spacing:-.6px;line-height:1.1}
.rgl-big span{font-size:12px;color:var(--ink-2)}
.rgl-tp{display:grid;grid-template-columns:8px minmax(0,1fr) 80px 28px;gap:8px;align-items:center;font-size:12px}
.rgl-br{display:block;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.rgl-br i{display:block;height:100%;border-radius:3px;background:var(--tc)}
.rgl-tp b{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.rgl-ob{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:6px;border:0;border-top:1px solid var(--line-2);background:transparent;text-align:left;font-size:12.5px;color:var(--ink)}
.rgl-ob:first-child{border-top:0}
.rgl-ob:hover .t{color:var(--teal-2)}
.rgl-ob .ic{width:24px;height:24px;border-radius:6px;background:var(--mint);color:var(--teal);display:grid;place-items:center}
.rgl-ob .ic.av{background:var(--sunk-2);color:var(--ink-2)} body.escuro .rgl-ob .ic:not(.av){color:var(--mint-vivo)}
.rgl-ob .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rgl-ob b{font-weight:600;font-variant-numeric:tabular-nums}
.rgl-ob[aria-pressed=true]{background:var(--sel-bg);border-radius:6px}
.rgl-pe{display:flex;align-items:center;gap:10px;font-size:12.5px}
.rgl-pe>span:not(.av){flex:1;min-width:0}
.rgl-pe small{display:block;color:var(--ink-3);font-size:11.5px}
.rgl-pe b{font-weight:600;font-variant-numeric:tabular-nums}
.rgl-vazio{padding:48px 16px}
.rgl-vazio .lk-t{display:inline;margin-left:6px;font-size:12.5px;font-weight:600}
/* usuários */
.usl-pend{display:flex;align-items:center;gap:14px;padding:14px 16px;flex-wrap:wrap}
.usl-pend .ic{width:34px;height:34px;border-radius:50%;background:var(--warn-bg);color:var(--warn);display:grid;place-items:center;flex:none}
.usl-pend .tx{flex:1 1 320px;min-width:0;display:flex;flex-direction:column;gap:2px}
.usl-pend b{font-weight:600}
.usl-pend small{font-size:12px;color:var(--ink-2)}
.usl-pend .ac{display:flex;gap:8px}
.usl-ferr{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}
.usl-seg{display:inline-flex;gap:2px;padding:2px;border-radius:6px;background:var(--campo)}
.usl-seg button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px;border:0;border-radius:4px;background:transparent;font-size:12px;color:var(--ink-2)}
.usl-seg button[aria-pressed=true]{background:var(--card);box-shadow:var(--sh-seg);color:var(--ink);font-weight:500}
.usl-seg .c{min-width:20px;height:18px;padding:0 6px;border-radius:99px;background:var(--sunk-2);font-size:10.5px;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.usl-seg button[aria-pressed=true] .c{background:var(--mint);color:var(--teal)} body.escuro .usl-seg button[aria-pressed=true] .c{color:var(--mint-vivo)}
.pag .usl-busca{margin-left:auto}
.pag .usl-busca input{width:260px;height:34px}
.usl{display:grid;grid-template-columns:minmax(0,2fr) 150px minmax(0,1.1fr) 150px 220px;gap:12px;align-items:center;padding:0 16px}
.usl-h{height:38px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3)}
.usl-l{min-height:68px;border-bottom:1px solid var(--line-2)}
.usl-l:last-child{border-bottom:0}
.usl-l:hover{background:var(--nav)}
.usl-l.off{opacity:.6}
.usl-p{display:flex;align-items:center;gap:12px;min-width:0}
.usl-p .tx{display:flex;flex-direction:column;min-width:0}
.usl-p .n{display:flex;align-items:center;gap:8px;font-size:13.5px;min-width:0}
.usl-p .n b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.usl-p small{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.usl-fixo{display:inline-flex;align-items:center;font-size:12.5px;font-weight:500}
.usl-st{display:flex;flex-direction:column;gap:1px;min-width:0}
.usl-st span{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500}
.usl-st i{width:8px;height:8px;border-radius:50%;flex:none}
.usl-st small{font-size:11.5px;color:var(--ink-2);padding-left:15px}
.usl-st.ok span{color:var(--ok)} .usl-st.ok i{background:var(--ok)}
.usl-st.warn span{color:var(--warn)} .usl-st.warn i{background:var(--warn)}
.usl-st.off span{color:var(--ink-2)} .usl-st.off i{background:var(--radio)}
.usl-ult{font-size:12.5px}
.usl-ult small{display:block;font-size:11.5px;color:var(--ink-3)}
.usl-ac{display:flex;align-items:center;justify-content:flex-end;gap:4px}
.usl-ac .btn.ghost{color:var(--ink-2)}
.usl-mx-cab{padding:16px 18px 12px;border-bottom:1px solid var(--line-2)}
.usl-mx-cab h2{font-size:15px}
.usl-mx-cab p{margin:2px 0 0;font-size:12px;color:var(--ink-2)}
.usl-mx-w{overflow-x:auto}
.usl-mx{width:100%;border-collapse:collapse;font-size:12.5px}
.usl-mx th,.usl-mx td{padding:0 18px;height:46px;border-bottom:1px solid var(--line-2);text-align:left}
.usl-mx tr:last-child td{border-bottom:0}
.usl-mx thead th{height:60px;font-weight:600}
.usl-mx thead th small{display:block;font-size:11px;font-weight:400;color:var(--ink-2)}
.usl-mx .c{text-align:center;width:150px}
.usl-mx .sim{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--ok-bg);color:var(--ok)}
.usl-mx .nao{color:var(--radio);font-size:14px}
.usl-mx td.cap small{display:block;font-size:11.5px;color:var(--ink-2)}
@media (max-width:1100px){.rgl-grade{grid-template-columns:1fr}.rgl-lado{display:none}.usl{grid-template-columns:minmax(0,1.6fr) 140px minmax(0,1fr) 190px}.usl .usl-ult{display:none}}
@media (max-width:760px){.pag .rgl-busca,.pag .rgl-busca input,.pag .usl-busca,.pag .usl-busca input{width:100%;margin-left:0}
  .rgl-e{grid-template-columns:44px 28px minmax(0,1fr);gap:0 10px}.rgl-e::before{left:79px}
  .usl-h{display:none}.usl{grid-template-columns:1fr 1fr;padding:12px 16px;row-gap:10px}.usl-p,.usl-ac{grid-column:1 / -1}.usl-ac{justify-content:flex-start}.usl-mx .c{width:auto}}
@media (max-width:1100px){.uu{grid-template-columns:minmax(0,1.3fr) 130px 120px 150px}.uu .mail{display:none}}
/* orçamentos: a lista (a tabela de Usuários) e o orçamento na página */
.orl{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px 110px 44px;gap:12px;align-items:center;min-height:56px;padding:8px 16px;border-bottom:1px solid var(--line-2);font-size:12.5px}
.orl:last-child{border-bottom:0}
.orl:not(.cab):hover{background:var(--nav)}
.orl.cab{min-height:36px;height:36px;padding:0 16px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3)}
.orl-nome{display:flex;align-items:center;gap:10px;min-width:0;cursor:pointer}
.orl-nome .tx{display:flex;flex-direction:column;min-width:0}
.orl-nome b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orl-nome small{font-size:11px;color:var(--ink-3)}
.orl-nome:hover b{color:var(--teal-2)}
body.escuro .orl-nome:hover b{color:var(--mint-vivo)}
.orl-quem{display:flex;align-items:center;gap:8px;min-width:0}
.orl-q{color:var(--ink-2)}
.oo-ic{width:28px;height:28px;border-radius:6px;background:var(--sunk);color:var(--ink-3);display:grid;place-items:center;flex:none}
.oo-ac{display:flex;justify-content:flex-end;align-items:center;gap:4px}
.migalha{color:var(--ink-3);cursor:pointer;font-weight:500}
.migalha:hover{color:var(--teal-2)}
body.escuro .migalha:hover{color:var(--mint-vivo)}
.pg-cab h1{display:flex;align-items:baseline;gap:8px;min-width:0}
.pg-cab h1>span[title]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40vw}
.mig-sep{color:var(--ink-3);font-weight:400}
.mig-n{white-space:nowrap}
.ob-ac{margin-left:auto;display:flex;align-items:center;gap:6px}
.ob-tot{display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}
.ot{display:flex;flex-direction:column;gap:3px;padding:12px 16px;border-left:1px solid var(--line-2);min-width:0}
.ot:first-child{border-left:0}
.ot span{font-size:11px;font-weight:600;color:var(--ink-3)}
.ot b{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ot small{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ot small.warn{color:var(--warn)}
.orc-aviso{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:12.5px}
.orc-aviso .btn{margin-left:auto}
.pag-in.largo{max-width:1480px}
.orl-st{min-width:0}
.ok-t{color:var(--ok);font-weight:500} .warn{color:var(--warn)} .bad{color:var(--bad)}
.futuro{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;background:var(--sunk);color:var(--ink-3);font-size:10px;font-weight:600;letter-spacing:0;text-transform:none;vertical-align:1px}
/* a prévia da planilha da AW, no desenho do sistema (as planilhas do Drywall): Item e Descrição presos à esquerda */
.aw-tab{width:100%;table-layout:fixed;border-collapse:collapse;font-size:11.5px}
.aw-tab col.k-it{width:52px} .aw-tab col.k-fab{width:64px} .aw-tab col.k-un{width:38px} .aw-tab col.k-q{width:66px}
.aw-tab col.k-pav{width:60px} .aw-tab col.k-u{width:80px} .aw-tab col.k-v{width:94px} .aw-tab col.k-t{width:108px}
.aw-tab th,.aw-tab td{height:40px;padding:4px 6px;border-bottom:1px solid var(--line-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aw-tab th:first-child,.aw-tab td:first-child{padding-left:16px} .aw-tab th:last-child,.aw-tab td:last-child{padding-right:16px}
.aw-tab thead th{height:32px;border-bottom:1px solid var(--line);text-align:left;font-size:11px;font-weight:600;color:var(--ink-3)}
.aw-tab thead tr.grupo th{height:24px;border-bottom:0;font-weight:500;font-size:10.5px}
.aw-tab thead tr.grupo th.g{border-bottom:1px solid var(--line-2);text-align:center}
.aw-tab .n{text-align:right;font-variant-numeric:tabular-nums}
.aw-tab .ni{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.aw-tab td.c-desc{white-space:normal;line-height:1.3}
.aw-tab td.c-desc .d1{font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.aw-tab td.c-desc .futuro{margin-left:0;margin-top:2px}
.aw-tab td.c-fab{color:var(--ink-2)}
.aw-tab .c-un{color:var(--ink-3)}
.aw-tab td.c-q{font-weight:600}
.aw-tab td.c-pav{color:var(--ink-2)}
.aw-tab .c-u{border-left:1px solid var(--line-2)}
.aw-tab td.c-u{padding:0 3px}
.aw-tab td.c-t,.aw-tab th.c-t{font-weight:600}
.aw-tab .nada{color:var(--ink-3)}
.aw-tab tbody tr:not(.sec):not(.vazia):hover td{background:var(--nav)}
.aw-tab tr.sec td{height:32px;background:var(--sunk);font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-2)}
.aw-tab tr.sec td.n{text-transform:none;letter-spacing:0;font-size:12px}
.aw-tab tr.sec .sn{display:inline-block;min-width:20px;color:var(--ink-3)}
.aw-tab tr.vazia td{height:34px;color:var(--ink-3)}
/* o total, à parte, como o rodapé da planilha */
/* preso no pé da área da página, de ponta a ponta, por cima do resto enquanto ela rola; as margens
   negativas desfazem o padding do .pag (24px 32px 40px) */
.aw-rodape{position:sticky;bottom:-40px;z-index:6;margin:16px -32px -40px;background:var(--card);border-top:1px solid var(--line);box-shadow:0 -6px 18px rgba(0,0,0,.08)}
body.escuro .aw-rodape{box-shadow:0 -6px 18px rgba(0,0,0,.45)}
.ar-in{max-width:1480px;margin:0 auto;padding:12px 32px;display:flex;align-items:center;gap:24px}
.ar-rot{font-size:13px;font-weight:700}
.ar-pavs{display:flex;gap:24px;min-width:0;margin-left:auto}
.ar-pavs div,.ar-tots div{display:flex;flex-direction:column;gap:2px;min-width:0}
.ar-pavs span,.ar-tots span{font-size:11px;font-weight:600;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.ar-pavs b{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.ar-tots{display:flex;gap:24px;padding-left:24px;border-left:1px solid var(--line-2)}
.ar-tots b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.ar-tots .t b{font-size:18px;color:var(--teal)} body.escuro .ar-tots .t b{color:var(--mint-vivo)}
.aw-tab .futuro{margin-left:8px}
.futuro.aviso{background:var(--warn-bg);color:var(--warn)}
.orc-preco{width:100%;height:28px;border:1px solid transparent;border-radius:5px;background:var(--campo);text-align:right;padding:0 6px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink)}
.orc-preco.editado{color:var(--teal);font-weight:600;box-shadow:inset 2px 0 0 var(--teal-2)}
body.escuro .orc-preco.editado{color:var(--mint-vivo)}
.orc-preco:hover{border-color:var(--line)} .orc-preco:focus{outline:none;border-color:var(--teal-2)}
/* o orçamento, redesenhado (13/10/2026): o cabeçalho com a situação, a faixa do que falta para fechar,
   os três quadros de custo e a planilha com filtro, busca, atalhos e seções que recolhem */
:root{--orc-areia:#d6bf8e;--orc-sec-1:var(--teal-3);--orc-sec-2:var(--sel)}
/* no escuro o teal-3 some no card: a seção 1 clareia e a 2 escurece, para seguirem diferentes na luminosidade */
body.escuro{--orc-sec-1:#4fb8ae;--orc-sec-2:#1d6f6c}
.orc-cab{align-items:flex-end;gap:12px 24px}
.orc-cab-tx{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 420px}
.orc-trilha{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3);min-width:0}
.orc-trilha span[title]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-tit{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pg-cab.orc-cab h1{font-size:24px;letter-spacing:-.5px;line-height:1.2}
.orc-meta{margin:0;color:var(--ink-2);font-size:12.5px}
.orc-tag{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:5px;font-size:11px;font-weight:600;white-space:nowrap;flex:none;letter-spacing:0;text-transform:none}
.orc-tag.ok{background:var(--ok-bg);color:var(--ok)}
.orc-tag.warn{background:var(--warn-bg);color:var(--warn)}
.orc-tag.bad{background:var(--bad-bg);color:var(--bad)}
.orc-tag.neu{background:var(--sunk-2);color:var(--ink-2)}
/* a seção 4: pelo cobre ou por ponto */
.orc-modo{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.orc-tag.edit{background:var(--mint);color:var(--teal)} body.escuro .orc-tag.edit{color:var(--mint-vivo)}
.orc-tag.grande{height:26px;padding:0 10px;font-size:12px;border-radius:6px}
/* o que falta para fechar */
.orc-sit{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.orc-ck{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-left:1px solid var(--line-2);margin-left:-1px;color:var(--ink)}
.orc-ck-i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:none}
.orc-ck.ok .orc-ck-i{background:var(--ok-bg);color:var(--ok)}
.orc-ck.warn .orc-ck-i{background:var(--warn-bg);color:var(--warn)}
.orc-ck.neu .orc-ck-i{background:var(--sunk-2);color:var(--ink-2)}
.orc-ck-tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.orc-ck-tx>span{font-size:11px;font-weight:600;color:var(--ink-3)}
.orc-ck-tx b{font-size:13.5px;font-weight:600}
.orc-ck-tx small{font-size:12px;color:var(--ink-2)}
.orc-ck-tx .lk-t{margin-top:4px;font-size:12px;font-weight:600}
/* os três quadros de custo */
.orc-quadros{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;align-items:stretch}
.orc-q{padding:16px 18px;display:flex;flex-direction:column;gap:14px;min-width:0}
.orc-q-cab{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.orc-q-cab.col{flex-direction:column;align-items:flex-start;gap:2px}
.orc-q-cab small{font-size:12px;color:var(--ink-2)} .orc-q-cab small b{color:var(--ink);font-weight:600}
.orc-rot{font-size:11px;font-weight:600;color:var(--ink-3)}
.orc-valor{display:block;font-size:30px;font-weight:600;letter-spacing:-.8px;line-height:1.2;margin-top:2px;color:var(--teal)}
body.escuro .orc-valor{color:var(--mint-vivo)}
.orc-split{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden;background:var(--sunk)}
.orc-split i{display:block;background:var(--teal)} .orc-split i.mo{background:var(--mint-vivo)}
.orc-split-leg{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.orc-split-leg div{display:flex;flex-direction:column;gap:1px;min-width:0}
.orc-split-leg span{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-2)}
.orc-split-leg span i{width:8px;height:8px;border-radius:2px;background:var(--teal);flex:none} .orc-split-leg span i.mo{background:var(--mint-vivo)}
.orc-split-leg b{font-size:14px;font-weight:600;white-space:nowrap}
.orc-pvs{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line-2);padding-top:12px}
.orc-pvs-l{display:flex;flex-direction:column;gap:10px;max-height:240px;overflow:auto}
.orc-pv{display:flex;align-items:center;gap:12px;min-width:0}
.orc-mini{width:48px;height:34px;border-radius:5px;border:1px solid var(--line-2);background:var(--sunk);overflow:hidden;flex:none;position:relative;display:grid;place-items:center;color:var(--ink-3)}
.orc-mini img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.orc-mini.vazia{border-style:dashed;border-color:var(--line)}
.orc-pv-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.orc-pv-tx .l1{display:flex;align-items:center;gap:8px;min-width:0}
.orc-pv-tx b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-pv-tx small{font-size:11.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-pv-v{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex:none}
.orc-pv-v b{font-weight:600}
.orc-pv-v .lk-t{align-self:flex-end}
.orc-pilha{display:flex;gap:2px;height:14px;border-radius:5px;overflow:hidden;background:var(--sunk)}
.orc-pilha i{display:block;min-width:2px}
.orc-comp{display:flex;flex-direction:column}
.orc-comp-l{display:grid;grid-template-columns:10px minmax(0,1fr) auto 48px;gap:10px;align-items:center;padding:7px 0;border:0;border-bottom:1px solid var(--line-2);background:transparent;text-align:left;font-size:12.5px;color:var(--ink)}
.orc-comp-l:last-child{border-bottom:0}
.orc-comp-l:hover .t{color:var(--teal-2)}
.orc-comp-l .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-comp-l .sn{color:var(--ink-3);margin-right:6px;font-variant-numeric:tabular-nums}
.orc-comp-l b{font-weight:600}
.orc-comp-l small{text-align:right;color:var(--ink-2);font-size:11.5px}
.orc-comp-l.futuro-l{grid-template-columns:10px minmax(0,1fr) auto;color:var(--ink-3)}
.orc-cor{display:block;width:10px;height:10px;border-radius:3px;flex:none}
.futuro-l .orc-cor{border:1.5px dashed var(--radio)}
.orc-top{display:flex;flex-direction:column;gap:10px}
.orc-top-l{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:4px 10px;align-items:center}
.orc-top-l .ni{grid-row:span 2;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.orc-top-l .d{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-top-l b{font-size:12.5px;font-weight:600;text-align:right}
.orc-top-l .br{display:block;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.orc-top-l .br i{display:block;height:100%;border-radius:3px;background:var(--teal-2)}
.orc-top-l small{font-size:11px;color:var(--ink-2);text-align:right}
.orc-vazio{margin:0;color:var(--ink-3);font-size:12px}
/* a planilha (.orc-plan; .orc-pl é a planta do diálogo Novo orçamento): overflow clip (e não hidden) para o cabeçalho da tabela poder ficar preso no alto do .pag;
   com mais de 4 pavimentos as colunas não cabem e a tabela rola de lado (e o cabeçalho deixa de prender) */
.orc-plan{overflow:clip}
.orc-plan.rola .orc-tw{overflow-x:auto}
.orc-plan-cab{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 32px;padding:14px 16px 12px;border-bottom:1px solid var(--line-2)}
.orc-plan-tx{flex:1 1 320px;display:flex;flex-direction:column;gap:2px}
.orc-plan-tx h2{font-size:16px}
.orc-plan-tx span{font-size:12px;color:var(--ink-2)}
.orc-plan-meta{margin:0;display:flex;flex-wrap:wrap;gap:24px}
.orc-plan-meta dt{font-size:11px;font-weight:600;color:var(--ink-3)}
.orc-plan-meta dd{margin:0;font-weight:600}
.orc-plan-meta .nada{font-weight:400;color:var(--ink-3)}
.orc-ferr{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 16px 8px}
.orc-filtros{display:inline-flex;gap:2px;padding:2px;border-radius:6px;background:var(--campo)}
.orc-filtros button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 10px;border:0;border-radius:4px;background:transparent;font-size:12px;color:var(--ink-2)}
.orc-filtros button[aria-pressed=true]{background:var(--card);box-shadow:var(--sh-seg);color:var(--ink);font-weight:500}
.orc-filtros .c{min-width:20px;height:18px;padding:0 6px;border-radius:99px;background:var(--sunk-2);font-size:10.5px;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.orc-filtros button[aria-pressed=true] .c{background:var(--mint);color:var(--teal)} body.escuro .orc-filtros button[aria-pressed=true] .c{color:var(--mint-vivo)}
.orc-busca{margin-left:auto}
.pag .orc-busca input{width:260px}
.orc-saltos{display:flex;flex-wrap:wrap;gap:6px;padding:4px 16px 14px}
.orc-saltos .chip{gap:7px}
.orc-saltos .chip:hover{border-color:var(--teal-2);color:var(--ink)}
.orc-saltos .chip b{font-weight:600;color:var(--ink)}
.orc .aw-tab{font-size:12px}
.orc .aw-tab col.k-it{width:56px} .orc .aw-tab col.k-un{width:44px} .orc .aw-tab col.k-q{width:76px} .orc .aw-tab col.k-pav{width:64px}
.orc .aw-tab col.k-u{width:96px} .orc .aw-tab col.k-v{width:104px} .orc .aw-tab col.k-t{width:128px}
.orc .aw-tab th,.orc .aw-tab td{height:48px}
/* o cabeçalho preso: o .pag tem 24px de padding em cima, daí o -24px da primeira linha */
.orc .aw-tab thead th{position:sticky;top:0;z-index:2;height:32px;background:var(--card);box-shadow:inset 0 -1px 0 var(--line)}
.orc .aw-tab thead tr.grupo th{top:-24px;height:24px;box-shadow:none}
.orc .aw-tab thead tr.grupo th.g{box-shadow:inset 0 -1px 0 var(--line-2)}
.orc-plan.rola .aw-tab thead th{position:static}
.orc .aw-tab td.c-desc{padding-top:6px;padding-bottom:6px}
.orc .aw-tab .tags{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:3px;font-size:11.5px;color:var(--ink-3)}
.orc .aw-tab .tags .fab{color:var(--ink-2)}
.orc .aw-tab tr.sem-q td{color:var(--ink-3)} .orc .aw-tab tr.sem-q td.c-desc .d1{color:var(--ink-2)}
.orc .aw-tab tr.editada td{background:color-mix(in srgb,var(--mint) 45%,var(--card))}
.orc .aw-tab td.c-t .v{display:block}
.orc-bar{display:block;width:72px;max-width:100%;height:3px;margin:4px 0 0 auto;border-radius:2px;background:var(--sunk);overflow:hidden}
.orc-bar i{display:block;height:100%;margin-left:auto;border-radius:2px;background:var(--teal-2)}
.orc .aw-tab tr.sec td{height:46px;background:var(--sunk);text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:var(--ink-2);border-top:1px solid var(--line)}
.orc .aw-tab tr.sec td.c-t{color:var(--ink);font-size:13px;font-weight:700}
.orc .aw-tab tr.sec{scroll-margin-top:64px}
.orc-plan{scroll-margin-top:8px}
.orc-sec-b{display:flex;align-items:center;gap:9px;width:100%;height:44px;border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}
.orc-sec-b svg{color:var(--ink-3);transition:transform .15s;flex:none}
.orc-sec-b[aria-expanded=false] svg{transform:rotate(-90deg)}
.orc-sec-b .sn{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:12px;min-width:0}
.orc-sec-b .tt{font-size:13.5px;font-weight:600}
.orc-sec-b:hover .tt{color:var(--teal-2)}
.orc-sec-b .ct{font-size:12px;color:var(--ink-3);font-weight:400}
.orc .aw-tab tr.nota td{height:auto;padding:12px 16px 12px 66px;white-space:normal;color:var(--ink-2);font-size:12px;background:var(--card)}
.orc .aw-tab tr.nota:hover td{background:var(--card)}
.orc .aw-tab tr.nota td svg{vertical-align:-3px;margin-right:8px;color:var(--ink-3)}
.orc .aw-tab tr.nota .lk-t{margin-left:10px;font-size:12px;font-weight:600}
.orc .aw-tab tr.nota.vazio td{padding:36px 16px;text-align:center}
/* o rodapé: as linhas de preço editado à esquerda, o total à direita */
.ar-ed{display:flex;align-items:center;gap:10px;min-width:0;font-size:12px}
.ar-ed-t{display:flex;align-items:center;gap:7px;color:var(--teal);font-weight:600} body.escuro .ar-ed-t{color:var(--mint-vivo)}
.ar-ed-t i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
@media (max-width:1400px){.ar-ed .mut3{display:none}}
@media (max-width:1180px){.orc-tw{overflow-x:auto}.orc .aw-tab{min-width:1000px}.orc .aw-tab thead th{position:static}}
@media (max-width:760px){.orc-busca{margin-left:0;flex:1}.pag .orc-busca input{width:100%}.orc-ck{border-left:0;border-top:1px solid var(--line-2)}}
@media (prefers-reduced-motion:reduce){.orc-sec-b svg{transition:none}}
/* Preços: a lista à esquerda, o item à direita */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:14px;border:1px solid var(--line);background:var(--card);font-size:12px;color:var(--ink-2)}
.chip .n{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.chip[aria-pressed=true]{background:var(--teal);border-color:var(--teal);color:#fff}
.chip[aria-pressed=true] .n{color:#cfeee6}
.prec-div{display:grid;grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:16px;align-items:start}
.prec-lista{max-height:calc(100vh - 230px);overflow:auto}
.pl-cab,.pl-it{display:grid;grid-template-columns:minmax(0,1fr) 100px 52px;gap:10px;align-items:center;padding:0 14px}
.pl-cab{height:34px;font-size:11px;font-weight:600;color:var(--ink-3);border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1}
.pl-sec{padding:10px 14px 4px;font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3);background:var(--card)}
.pl-sec .n{margin-left:6px;font-weight:500}
.pl-it{width:100%;min-height:50px;border:0;border-bottom:1px solid var(--line-2);background:transparent;text-align:left;color:var(--ink)}
.pl-it:hover{background:var(--nav)}
.pl-it.sel{background:var(--sel-bg,#e3f3ee);box-shadow:inset 3px 0 0 var(--teal-2)}
body.escuro .pl-it.sel{background:#173b35}
.pl-it.inativo{opacity:.5}
.pl-tx{display:flex;flex-direction:column;min-width:0;padding:6px 0}
.pl-tx .l1{display:flex;align-items:center;gap:6px;font-size:12.5px}
.pl-tx .l2{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.un{font-size:10.5px;color:var(--ink-3);padding:0 5px;border-radius:3px;background:var(--sunk)}
.ina{font-size:10px;color:var(--warn)}
.pl-v{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}
.pl-n{text-align:right;font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-2)}
.sp{color:var(--warn);font-weight:500;font-size:11.5px}
.prec-painel{padding:16px 18px;display:flex;flex-direction:column;gap:12px;position:sticky;top:0}
.pp-cab{display:flex;align-items:center;gap:10px}
.pp-nome{display:flex;align-items:center;gap:8px;font-size:16px}
.pp-nome .gr{font-size:11px;color:var(--ink-2);padding:2px 8px;border-radius:10px;border:1px solid var(--line)}
.pp-cab .btn{margin-left:auto}
.pp-desc{font-size:13px;color:var(--ink);margin:0}
.pp-regra{margin:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--ink-3)}
.pp-regra code{font-family:var(--mono);font-size:11px;padding:2px 6px;border-radius:4px;background:var(--sunk);color:var(--ink-2)}
.pp-regra .fx{color:var(--ink-2)}
.pp-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line-2);border-radius:8px;overflow:hidden}
.pc{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border-left:1px solid var(--line-2);min-width:0}
.pc:first-child{border-left:0}
.pc .r{font-size:11px;font-weight:600;color:var(--ink-3)}
.pc b{font-size:15px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pc.forte b{color:var(--teal)} body.escuro .pc.forte b{color:var(--mint-vivo)}
.pc.sp b{color:var(--warn)}
.pc .s{font-size:10.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-tit{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--ink-3)}
.pp-tab{width:100%;border-collapse:collapse;font-size:12px}
.pp-tab th{white-space:nowrap;height:30px;text-align:left;font-size:11px;font-weight:600;color:var(--ink-3);border-bottom:1px solid var(--line);padding:0 8px}
.pp-tab td{padding:7px 8px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.pp-tab .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.pp-tab .c{text-align:center;width:44px}
.pp-tab td.c .ck-b{margin:0 auto}
.pp-tab .forte{font-weight:600}
.pp-tab{table-layout:auto}
.pp-tab td.fonte{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.pp-tab td.por{color:var(--ink-3);white-space:nowrap}
.pp-tab tr.fora td{color:var(--ink-3)} .pp-tab tr.fora td.forte{text-decoration:line-through}
.pp-tab tr.novo td{background:var(--nav)}
.pp-tab tr.novo .campo-i{height:30px;font-size:12px}
.pp-tab tr.novo .campo-i.n{text-align:right}
.pp-tab td.acoes{text-align:right;white-space:nowrap} .pp-tab td.acoes .btn{margin-left:6px}
.pp-tab td.vazio{color:var(--ink-3);text-align:center;padding:24px}
.ck-b[aria-checked=true]{background:var(--teal);border-color:var(--teal)}
.ck-b[disabled]{opacity:.6}
.pp-form{display:flex;flex-direction:column;gap:12px}
.pp-form .nr{grid-template-columns:1fr auto 1fr auto}
.pi-ativo{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink)}
.pp-form-pe{display:flex;align-items:center;gap:8px}
@media (max-width:1240px){.prec-div{grid-template-columns:1fr}.prec-lista{max-height:420px}.pp-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* Preços, redesenhado (13/10/2026): o estado do banco, a lista com a fonte mais firme de cada item e o
   painel do item (média, como entra no orçamento, o histórico de preços) */
.prx{gap:16px}
.prx-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 24px;flex-wrap:wrap}
.prx-cab h1{font-size:24px;letter-spacing:-.5px;line-height:1.2}
.prx-cab p{margin:4px 0 0;color:var(--ink-2);font-size:12.5px;max-width:640px}
.prx-cab>div:first-child{flex:1 1 340px;min-width:0}
.prx-cab .ob-ac{margin-left:0;flex-wrap:wrap;gap:8px}
.pag .prx-busca input{width:260px;height:34px}
.prx-sit{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.prx-ck{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:0;border-left:1px solid var(--line-2);margin-left:-1px;background:transparent;text-align:left;color:var(--ink)}
button.prx-ck:hover{background:var(--nav)}
button.prx-ck[aria-pressed=true]{background:var(--sel-bg)}
.prx-ck .i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex:none}
.prx-ck.ok .i{background:var(--ok-bg);color:var(--ok)}
.prx-ck.warn .i{background:var(--warn-bg);color:var(--warn)}
.prx-ck.neu .i{background:var(--sunk-2);color:var(--ink-2)}
.prx-ck .tx{display:flex;flex-direction:column;gap:1px;min-width:0}
.prx-ck .tx>span{font-size:11px;font-weight:600;color:var(--ink-3)}
.prx-ck .tx b{font-size:13.5px;font-weight:600}
.prx-ck .tx small{font-size:12px;color:var(--ink-2)}
.prx-conta{margin-left:auto;font-size:12px;color:var(--ink-3);display:flex;align-items:center;gap:8px}
.prx-conta .lk-t{font-size:12px;font-weight:600}
.prx .pg-filtros .chip{height:30px}
.prx .pg-filtros .chip:hover{border-color:var(--teal-2)}
.prx-grade{display:grid;grid-template-columns:minmax(0,500px) minmax(0,1fr);gap:16px;align-items:start}
.prx-lista{max-height:calc(100vh - 150px);overflow:auto}
.prx-lh,.prx-it{display:grid;grid-template-columns:minmax(0,1fr) 110px 92px;gap:10px;align-items:center;padding:0 16px}
.prx-lh{height:36px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3);position:sticky;top:0;background:var(--card);z-index:1}
.prx-lh span:not(:first-child){text-align:right}
.prx-sec{display:flex;align-items:center;gap:8px;padding:12px 16px 6px;font-size:11px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-2)}
.prx-sec .n{font-weight:500;color:var(--ink-3);letter-spacing:0}
.prx-sec .s{margin-left:auto;font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink-3);font-size:11px}
.prx-it{width:100%;min-height:54px;padding-top:7px;padding-bottom:7px;border:0;border-top:1px solid var(--line-2);background:transparent;text-align:left;color:var(--ink);position:relative}
.prx-it:hover{background:var(--nav)}
.prx-it[aria-pressed=true]{background:var(--sel-bg)}
.prx-it[aria-pressed=true]::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--teal-2)}
.prx-it.inativo{opacity:.55}
.prx-it .tx{display:flex;flex-direction:column;min-width:0;gap:1px}
.prx-it .l1{display:flex;align-items:center;gap:7px}
.prx-it .l1 b{font-weight:600;font-size:12.5px;font-family:var(--mono)}
.prx-it .un,.prx-pn-cab .un{font-size:10.5px;color:var(--ink-3);background:var(--sunk);border-radius:4px;padding:0 5px}
.prx-it .l2{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prx-it .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;font-size:12.5px}
.prx-it .v small{display:block;font-weight:400;font-size:11px;color:var(--ink-3)}
.prx-it .v .sp{color:var(--warn);font-weight:500}
.prx-conf{display:inline-flex;align-items:center;gap:5px;height:20px;padding:0 7px;border-radius:5px;font-size:10.5px;font-weight:600;white-space:nowrap;justify-self:end}
.prx-conf i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}
.prx-conf.firme{background:var(--ok-bg);color:var(--ok)}
.prx-conf.var{background:var(--sunk-2);color:var(--ink-2)}
.prx-conf.est{background:var(--warn-bg);color:var(--warn)}
.prx-conf.sem{background:var(--bad-bg);color:var(--bad)}
.prx-conf.nd{display:none}
.prec-painel.prx-pn{padding:18px 20px;gap:16px}
.prx-pn-cab{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap}
.prx-pn-cab .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.prx-pn-cab .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.prx-pn-cab .cod{font-family:var(--mono);font-weight:700;font-size:15px}
.prx-pn-cab .sec{font-size:11px;color:var(--ink-2);border:1px solid var(--line);border-radius:99px;padding:1px 8px}
.prx-pn-cab h2{font-size:16px;line-height:1.35}
.prx-aviso{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;background:var(--warn-bg);color:var(--warn);font-size:12.5px}
.prx-aviso span{flex:1} .prx-aviso svg{flex:none}
.prx-aviso.sem{background:var(--bad-bg);color:var(--bad)}
.prx-val{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px}
.prx-tot{padding:14px 16px;border-radius:8px;background:var(--sunk);display:flex;flex-direction:column;gap:8px;min-width:0}
.prx-rot{font-size:11px;font-weight:600;color:var(--ink-3)}
.prx-tot b.g{font-size:26px;font-weight:600;letter-spacing:-.6px;line-height:1.15;color:var(--teal);font-variant-numeric:tabular-nums}
body.escuro .prx-tot b.g{color:var(--mint-vivo)}
.prx-split{display:flex;gap:2px;height:7px;border-radius:4px;overflow:hidden;background:var(--line-2)}
.prx-split i{display:block;background:var(--teal)} .prx-split i.mo{background:var(--mint-vivo)}
.prx-leg{display:flex;gap:6px 16px;flex-wrap:wrap;font-size:12px;color:var(--ink-2)}
.prx-leg span{display:inline-flex;align-items:center;gap:6px}
.prx-leg b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.prx-leg i{width:8px;height:8px;border-radius:2px;background:var(--teal);display:block} .prx-leg i.mo{background:var(--mint-vivo)}
.prx-mini{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-2);border-radius:8px;min-width:0}
.prx-mini div{padding:10px 12px;display:flex;flex-direction:column;gap:2px;border-left:1px solid var(--line-2);border-top:1px solid var(--line-2);min-width:0}
.prx-mini div:nth-child(odd){border-left:0} .prx-mini div:nth-child(-n+2){border-top:0}
.prx-mini b{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prx-mini small{font-size:11px;color:var(--ink-3)}
.prx-casa{border:1px solid var(--line-2);border-radius:8px;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.prx-casa p{margin:0;font-size:12px;color:var(--ink-2)}
.prx-termos{display:flex;flex-wrap:wrap;gap:6px}
.prx-termos code{font-family:var(--mono);font-size:11.5px;background:var(--campo);border-radius:5px;padding:3px 8px;color:var(--ink)}
.prx-faixa{display:flex;flex-direction:column;gap:6px}
.prx-fx,.prx-fx-esc{display:flex;gap:3px}
.prx-fx span{height:26px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:var(--sunk-2);color:var(--ink-2);font-size:11px;font-family:var(--mono);font-weight:600;min-width:0;overflow:hidden}
.prx-fx span.on{background:var(--teal);color:#fff}
.prx-fx-esc span{text-align:right;font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.prx-fx-esc span.u{flex:none;padding-left:4px}
.prx-hist-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.prx-hist-cab h3{font-size:13px}
.prx-hist-cab small{font-size:12px;color:var(--ink-2);font-weight:400;margin-left:6px}
.prx-p{display:grid;grid-template-columns:78px minmax(0,1fr) 96px 92px 34px 28px;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--line-2);font-size:12.5px}
.prx-p.fora{opacity:.55}
.prx-p .d{font-variant-numeric:tabular-nums;color:var(--ink-2)}
.prx-p .f{display:flex;flex-direction:column;gap:3px;min-width:0}
.prx-p .f>span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prx-p .n{text-align:right;font-variant-numeric:tabular-nums}
.prx-p .n small{display:block;font-size:11px;color:var(--ink-3);white-space:nowrap}
.prx-p .n b{font-weight:600}
.prx-tf{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font-size:10.5px;font-weight:600;width:max-content}
.prx-tf.est{background:var(--warn-bg);color:var(--warn)} .prx-tf.var{background:var(--sunk-2);color:var(--ink-2)} .prx-tf.lic,.prx-tf.tab,.prx-tf.cot{background:var(--ok-bg);color:var(--ok)}
.prx-novo{display:grid;grid-template-columns:130px minmax(0,1fr) 110px 110px;gap:8px;padding:12px;border-radius:8px;background:var(--sunk);align-items:end;margin-bottom:8px}
.prx-novo label{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:600;color:var(--ink-3)}
.prx-novo .campo-i{height:34px;font-size:12.5px;background:var(--card)}
.prx-novo .campo-i.n{text-align:right}
.prx-novo .ac{grid-column:1 / -1;display:flex;gap:8px;justify-content:flex-end;align-items:center}
.prx-novo .ac small{margin-right:auto;font-size:11.5px;color:var(--ink-2);font-weight:400}
.prx-p .ck-b{width:18px;height:18px;border-radius:4px}
.prx-vz{padding:18px 0;border-top:1px solid var(--line-2);color:var(--ink-2);font-size:12.5px}
@media (max-width:1240px){.prx-grade{grid-template-columns:1fr}.prx-lista{max-height:420px}}
@media (max-width:760px){.pag .prx-busca,.pag .prx-busca input{width:100%}.prx-val{grid-template-columns:1fr}.prx-p{grid-template-columns:70px minmax(0,1fr) 92px 24px 28px}.prx-p .n.m{display:none}.prx-novo{grid-template-columns:1fr 1fr}}
/* Novo orçamento: as plantas da obra */
.orc-pls{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:8px;max-height:300px;overflow:auto}
.orc-pl{display:flex;align-items:center;gap:10px;padding:8px 12px;border:0;border-bottom:1px solid var(--line-2);background:transparent;text-align:left;font-size:12.5px;color:var(--ink)}
.orc-pl:last-child{border-bottom:0}
.orc-pl:hover:not([disabled]){background:var(--nav)}
.orc-pl b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.orc-pl .f{margin-left:auto;font-size:11px;color:var(--ink-3);white-space:nowrap}
.orc-pl.off{opacity:.5}
/* excluir a obra: o que acontece com as plantas embaixo de cada opção */
.orc-pls.ex-obra .orc-pl{align-items:flex-start;padding:10px 12px}
.orc-pls.ex-obra .ck-b{margin-top:1px}
.orc-pls.ex-obra .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.orc-pls.ex-obra .f{margin-left:0;white-space:normal}
.orc-pl-vazio{padding:16px;color:var(--ink-3);font-size:12px;text-align:center}
.ck-b{width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ink-3);background:var(--card);display:grid;place-items:center;padding:0;color:#fff;flex:none}
.ck-b.redondo{border-radius:50%}
.ck-b.redondo i{width:6px;height:6px;border-radius:50%;background:#fff}
.orc-pl[aria-checked=true] .ck-b{background:var(--teal);border-color:var(--teal)}
body.escuro .orc-pl[aria-checked=true] .ck-b{background:var(--teal-2);border-color:var(--teal-2)}
@media (max-width:1240px){.orl{grid-template-columns:minmax(0,1fr) 140px 110px 44px}.orl .orl-quem,.orl.cab>span:nth-child(3){display:none}
  .ob-tot{grid-template-columns:repeat(3,minmax(0,1fr))}.ob-tot .ot:nth-child(4){border-left:0}.ob-tot .ot:nth-child(n+4){border-top:1px solid var(--line-2)}}
/* configurações */
.cfg-l{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start;padding:16px 18px;border-top:1px solid var(--line-2)}
.cfg-l:first-child{border-top-color:transparent}
.cfg-l .rot{display:flex;flex-direction:column;gap:2px}
.cfg-l .rot b{font-size:12.5px;font-weight:600} .cfg-l .rot span{font-size:11.5px;color:var(--ink-2)}
.cfg-l .campo-i{height:auto;min-height:32px;padding:7px 10px;line-height:1.55;font-size:12.5px;border:0;box-shadow:inset 0 0 0 1px transparent}
.cfg-l .campo-i:hover:not([disabled]){box-shadow:inset 0 0 0 1px var(--line)}
.cfg-l .campo-i:focus{box-shadow:inset 0 0 0 1px var(--teal-2)}
.cfg-l.sair{align-items:center;padding:14px 18px}
.cfg-l select.campo-i{background-image:none;padding-right:10px}
.cfg-l.sair .btn{justify-self:end}
.com-un{position:relative;display:flex;align-items:center}
.com-un span{position:absolute;right:10px;font-size:11.5px;color:var(--ink-3);pointer-events:none}
.com-un .campo-i{padding-right:52px}
.cfg-rod{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--line-2);background:var(--nav)}
.cfg-rod span{font-size:11.5px;color:var(--ink-3);margin-right:auto}
.cfg-rod .btn{height:32px;padding:0 16px}

/* ---------- diálogos ---------- */
.veu{position:fixed;inset:0;background:rgba(10,14,15,.5);display:grid;place-items:center;z-index:50;padding:16px}
.dlg{background:var(--card);border-radius:10px;width:min(560px,100%);max-height:92vh;overflow:auto;box-shadow:0 24px 64px rgba(0,0,0,.3)}
.dlg.peq{width:min(400px,100%)}
.dlg.medio{width:min(420px,100%)}
/* os atalhos em duas colunas: cabem na tela sem rolar */
.dlg.largo{width:min(820px,100%)}
.dlg.largo .atalhos{grid-template-columns:auto 1fr auto 1fr;gap:9px 14px}
.dlg-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line-2)}
.dlg-cab h2{font-size:15px}
.dlg-corpo{padding:18px 20px;display:flex;flex-direction:column;gap:18px}
.dlg-corpo.junto{gap:8px}
.dlg-topo{padding:18px 20px 0;display:flex;flex-direction:column;gap:8px}
.dlg-topo h2{font-size:15px}
.dlg-topo p{margin:0;font-size:12.5px;color:var(--ink-2)}
.dlg-rod{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:14px 20px 16px}
.dlg-rod.faixa{border-top:1px solid var(--line-2);background:var(--nav);padding:14px 20px}
.dlg-rod .nota{font-size:11.5px;color:var(--ink-3);margin-right:auto}
.form-g{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px 12px;align-items:center;font-size:12px;color:var(--ink-2)}
.form-g.g64{grid-template-columns:64px minmax(0,1fr)}
.form-g.g-cal{grid-template-columns:auto minmax(0,1fr)}
.cal-conta{margin:12px 0 0;font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.cal-conta b{color:var(--ink);font-weight:600}
.nr{display:grid;grid-template-columns:1fr 70px 1fr;gap:8px 12px;align-items:center}
.nr>span{text-align:right}
.seg2{display:flex;background:var(--campo);border-radius:6px;padding:2px;height:34px}
.seg2 button{flex:1;border:0;border-radius:4px;background:transparent;font-size:12px;color:var(--ink-2)}
.seg2 button[aria-pressed=true]{background:var(--card);box-shadow:var(--sh-seg);color:var(--ink);font-weight:500}
.t-bloco{display:flex;flex-direction:column;gap:8px}
.t-bloco>.t{font-size:11px;font-weight:600}
.escopos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.esc-op{border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:3px;border:1px solid var(--line);background:var(--card);text-align:left}
.esc-op:hover{border-color:var(--ink-3)}
.esc-op b{display:flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600}
.esc-op b i{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--radio);background:var(--card);flex:none}
.esc-op span{font-size:11px;color:var(--ink-2);line-height:1.4;padding-left:21px}
.esc-op[aria-pressed=true]{border-color:var(--teal-2);background:var(--mint);box-shadow:0 0 0 1px var(--teal-2)}
.esc-op[aria-pressed=true] b{color:var(--teal)}
.esc-op[aria-pressed=true] b i{border:4px solid var(--teal)}
body.escuro .esc-op[aria-pressed=true] b{color:var(--mint-vivo)}
/* o que levantar com caixinha: dutos, equipamentos e frigorígena, uma ou mais (23/10/2026) */
.escopos.multi .esc-op b i{border-radius:4px;display:grid;place-items:center;color:#fff}
.escopos.multi .esc-op[aria-pressed=true] b i{border:1.5px solid var(--teal);background:var(--teal)}
body.escuro .escopos.multi .esc-op[aria-pressed=true] b i{border-color:var(--teal-2);background:var(--teal-2)}
.seg2.multi button{display:flex;align-items:center;justify-content:center;gap:7px}
.seg2.multi button[aria-pressed=true] .ck-b{background:var(--teal);border-color:var(--teal)}
body.escuro .seg2.multi button[aria-pressed=true] .ck-b{background:var(--teal-2);border-color:var(--teal-2)}
.pdf-box{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;border:1px solid var(--ok-bd);background:var(--ok-bg)}
.pdf-box .ico{width:36px;height:36px;border-radius:6px;background:var(--card);display:grid;place-items:center;color:var(--green);flex:none}
.pdf-box .tx{flex:1;min-width:0;display:flex;flex-direction:column}
.pdf-box .tx b{font:600 12.5px/1.45 var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdf-box .tx span{font-size:11.5px;color:var(--green)}
.pdf-box label{position:relative;overflow:hidden;border-color:var(--ok-bd)}
.pdf-box input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}
.pdf-box.bad{border-color:var(--bad-bg);background:var(--bad-bg)}
.pdf-box.bad .ico,.pdf-box.bad .tx span{color:var(--bad)}
.pdf-box.sem{border:1px dashed var(--radio);background:var(--nav)}
.pdf-box.sem .ico{color:var(--ink-3)}
.pdf-box.sem .tx b{font-family:var(--font);font-weight:600}
.pdf-box.sem label{border-color:var(--line)}
.dlg-corpo.junto{padding:16px 20px}
.dlg-rod.p12{padding:12px 20px 16px}
/* editar usuário: o papel que não muda (o seu) e o Excluir à esquerda */
.form-g .valor-fixo{display:flex;align-items:center;min-height:34px;padding:0 10px;font-size:13px;color:var(--ink);overflow-wrap:anywhere}
.form-g .valor-fixo small{margin-left:8px;font-size:11.5px;color:var(--ink-3)}
.dlg-rod .esq{margin-right:auto}
.btn.ghost.perigo{color:var(--bad);padding:0 12px 0 10px;gap:6px}
.btn.ghost.perigo:hover:not([disabled]){background:var(--bad-bg)}
.atalhos{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;align-items:center;font-size:12.5px}
.atalhos kbd{justify-self:start;font-size:11px;font-weight:600;background:var(--campo);border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;padding:1px 7px;white-space:nowrap}
.atalhos span{color:var(--ink-2)}

/* menu do usuário e menus pequenos */
.pop{position:fixed;z-index:60;width:240px;background:var(--card);border-radius:8px;box-shadow:0 12px 32px rgba(0,0,0,.25);padding:6px}
.pop.lev{width:180px}
.pop-cab{display:flex;align-items:center;gap:10px;padding:8px 8px 10px;border-bottom:1px solid var(--line-2);margin-bottom:4px}
.pop-cab .av{width:30px;height:30px;font-size:11px;background:var(--mint-vivo);color:var(--teal)}
.pop-cab div{display:flex;flex-direction:column;line-height:1.3;min-width:0}
.pop-cab b{font-weight:600;font-size:12.5px} .pop-cab small{color:var(--ink-3);font-size:11px}
.pop-it{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 8px;border:0;border-radius:5px;background:transparent;font-size:12.5px;color:var(--ink);text-align:left}
.pop-it:hover{background:var(--sunk)}
.pop-it .k{margin-left:auto;font-size:11px;color:var(--ink-3)}
.pop-it.bad{color:var(--bad)}

#toast{position:fixed;left:50%;bottom:44px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:9px 16px;border-radius:6px;font-size:12.5px;z-index:90;box-shadow:var(--sh-2);max-width:90vw}
/* com uma planta aberta o aviso vai para o alto da planta: embaixo ele tampava a barra de ferramentas */
#toast.no-ed{top:76px;bottom:auto}

/* ---------- entrada pelo portal ---------- */
.login{position:fixed;inset:0;z-index:100;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);background:var(--bg);overflow:auto}
.login-art{background-color:var(--teal);background-image:radial-gradient(rgba(123,224,192,.13) 1px,transparent 1.2px);background-size:22px 22px;color:#fff;padding:44px 48px;display:flex;flex-direction:column;gap:24px;position:relative;overflow:hidden;min-height:100vh}
.la-marca{display:flex;align-items:center;gap:16px}
.la-marca .marca-aw{height:30px}
.la-marca b{display:block;font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--mint-vivo);padding-left:16px;border-left:1px solid rgba(255,255,255,.25);line-height:22px}
.la-meio{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}
.la-meio svg{width:100%;max-width:640px;max-height:56vh;height:auto;display:block;overflow:visible}
.la-tx{display:flex;flex-direction:column;gap:14px;max-width:560px}
.la-tx h2{font-size:34px;line-height:1.15;letter-spacing:-.6px;text-wrap:pretty}
.la-tx p{margin:0;font-size:14px;color:var(--teal-ink);max-width:460px;text-wrap:pretty}
.la-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.la-pills span{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 11px;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid rgba(123,224,192,.25);color:var(--teal-ink);font-size:12px;white-space:nowrap}
.la-pills i{width:6px;height:6px;border-radius:50%;background:var(--mint-vivo)}
.la-rod{font-size:12px;color:var(--teal-mut)}
.login-form{display:grid;place-items:center;padding:40px 32px}
.en-msg{width:min(400px,100%);display:flex;flex-direction:column;gap:20px}
.en-ic{width:44px;height:44px;border-radius:50%;display:grid;place-items:center}
.en-ic.aviso{background:var(--warn-bg);color:var(--warn)}
.en-ic.erro{background:var(--bad-bg);color:var(--bad)}
.en-t{display:flex;flex-direction:column;gap:8px}
.en-t h1{font-size:24px;letter-spacing:-.4px;line-height:1.25;text-wrap:balance}
.en-t p{margin:0;font-size:13px;color:var(--ink-2);text-wrap:pretty}
.btn.en-acao{height:46px;font-size:14px;border-radius:8px;gap:8px;text-decoration:none}
.en-aviso{margin:0;padding:10px 14px;border-radius:8px;background:var(--sunk);border:1px solid var(--line);font-size:13px}
.en-acoes{display:flex;flex-direction:column;gap:14px}
.en-portal{align-self:center;font-size:13px;font-weight:500;color:var(--ink-2);text-underline-offset:3px}
.en-portal:hover{color:var(--ink)}
.arte-iso .il-ar{animation:il-ar 1.6s linear infinite}
.arte-iso .il-ar1{animation-delay:-.55s} .arte-iso .il-ar2{animation-delay:-1.1s}
.arte-iso .il-seta{animation:il-ar 1.4s linear infinite}
.arte-iso .il-sel{animation:il-sel 1.2s linear infinite}
.arte-iso .il-pdf{animation:il-flutua 5s ease-in-out infinite}
.arte-iso .il-card{animation:il-flutua 6s ease-in-out infinite;animation-delay:-2s}
@keyframes il-ar{to{stroke-dashoffset:-16}}
@keyframes il-sel{to{stroke-dashoffset:-14}}
@keyframes il-flutua{50%{transform:translateY(-6px)}}
@media (max-height:760px){.la-meio svg{max-height:46vh}.la-tx h2{font-size:28px}}

/* =============================== editor ============================== */
.ed{flex:1;display:flex;flex-direction:column;min-width:0}
/* barra do topo */
.barra-topo{flex:none;height:48px;background:var(--card);border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;padding:0 12px 0 16px;min-width:0}
.bt-nome{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:60px;flex:0 1 auto}
.bt-ro{display:flex;align-items:center;gap:6px;height:22px;padding:0 9px;border-radius:99px;background:var(--sunk);color:var(--ink-2);font-size:11px;font-weight:500;flex:none}
.etapas-seg{display:flex;align-items:center;gap:4px;margin:0 auto;background:var(--sunk);border-radius:8px;padding:3px;flex:none}
.ep{display:flex;align-items:center;gap:7px;height:28px;padding:0 10px 0 5px;border-radius:6px;border:0;background:transparent;color:var(--ink-2);white-space:nowrap}
.ep:hover:not([disabled]){background:var(--card)}
.ep[disabled]{cursor:default}
.ep[aria-current=step]{background:var(--card);box-shadow:var(--sh-seg);color:var(--ink)}
.ep .c{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:600;background:var(--line);color:var(--ink-2);flex:none}
.ep[aria-current=step] .c{background:var(--teal);color:#fff}
.ep.feito .c{background:var(--green);color:#fff}
.ep b{font-size:12px;font-weight:600}
.ep small{font-size:11px;font-weight:500}
.ep small.rev{color:var(--warn)} .ep small.ok{color:var(--ok)} .ep small.nao{color:var(--ink-3)} .ep small.run{color:var(--teal-2)}
body.escuro .ep small.run{color:var(--mint-vivo)}
.ep-seta{display:grid;color:var(--ink-3)}
.bt-dir{display:flex;align-items:center;gap:8px;flex:none}
.bt-dir .btn{padding:0 10px}
.bt-pend{border:0;background:transparent;font-size:11.5px;font-weight:500;color:var(--warn);padding:0 6px 0 0;height:30px;white-space:nowrap}
.bt-pend b{font-weight:inherit}
.bt-pend:hover:not([disabled]){text-decoration:underline}
.bt-pend.ok{color:var(--ok)} .bt-pend[disabled]{cursor:default}
.bt-salvo{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ink-3);padding-right:4px;white-space:nowrap}
.bt-salvo i{width:7px;height:7px;border-radius:50%}
.bt-salvo i.pisca{animation:pisca 1s infinite}
@keyframes pisca{50%{opacity:.3}}
.ap{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border:0;border-radius:7px;background:var(--green);color:#fff;font-size:12.5px;font-weight:600;white-space:nowrap}
.ap:hover:not([disabled]){filter:brightness(1.07)}
.ap[disabled]{opacity:.45;cursor:not-allowed}
.ap.seguir{background:var(--teal)}
.ap.feito{background:var(--ok-bg);color:var(--ok);cursor:default}
.lk{display:flex;align-items:center;gap:6px;border:0;background:transparent;font-size:11.5px;color:var(--ink-2);padding:0 6px;height:30px;border-radius:6px;white-space:nowrap}
.lk:hover:not([disabled]){background:var(--sunk);color:var(--ink)}
@media (max-width:1360px){.bt-salvo span,.bt-salvo{font-size:0;gap:0;padding:0}.bt-salvo i{font-size:11px}}

.ed-meio{flex:1;display:flex;min-height:0}
/* palco: a prancha do PDF e as marcações. Está em pt do PDF (1 unidade = 1 pt); pan e zoom são um transform só */
.stage{flex:1;min-width:0;position:relative;overflow:hidden;background-color:var(--canvas);background-image:radial-gradient(var(--dot) 1px,transparent 1px);background-size:20px 20px;cursor:default;touch-action:none}
.stage.arrasta,.stage.espaco{cursor:grab}
.stage.arrasta.espaco,.stage.pan{cursor:grabbing}
.stage.desenhando{cursor:crosshair}
.stage.movendo{cursor:move}
.palco{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 2px 14px rgba(0,0,0,.18);will-change:transform}
.palco canvas{display:block;background:#fff}
.detalhe{position:absolute;left:0;top:0;pointer-events:none}
.cv-marcas{position:absolute;left:0;top:0;width:100%;height:100%;z-index:2;pointer-events:none}
/* o leitor novo da frigorígena: as cores das camadas FRIG */
.lf-cores{display:flex;flex-wrap:wrap;gap:6px}
.lf-cor{height:26px;padding:0 9px;gap:6px;font-variant-numeric:tabular-nums}
.lf-cor i{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.lf-cor small{font-size:11px;opacity:.75}
.lf-auto{border:0;background:none;padding:0;font:inherit;color:var(--teal-2);text-decoration:underline;cursor:pointer}
/* a opacidade da planta original (etapa Frigorígena): o véu da cor da folha por cima da prancha (não é o .veu dos diálogos) */
.veu-planta{position:absolute;left:0;top:0;transform-origin:0 0;z-index:1;pointer-events:none;background:#fff;opacity:0}
body.escuro .veu-planta{background:#0e0e0e}
.marcas{position:absolute;left:0;top:0;width:100%;height:100%;z-index:3;overflow:visible;pointer-events:none}
.marcas .alca-alvo,.marcas .vert-alvo{pointer-events:all}
/* Destacar: a planta esmaecida em cinza; a cor fica nas marcações */
.stage.destaca .palco canvas,.stage.destaca .detalhe{filter:grayscale(1) contrast(var(--esm-c,.42)) brightness(var(--esm-b,1.5))}
body.escuro .stage.destaca .palco canvas,body.escuro .stage.destaca .detalhe{filter:invert(1) hue-rotate(180deg) grayscale(1) contrast(var(--esm-ce,.5)) brightness(var(--esm-be,.85))}
body.escuro .palco canvas,body.escuro .detalhe{filter:invert(1) hue-rotate(180deg) brightness(.9)}
body.escuro .palco{box-shadow:0 2px 14px rgba(0,0,0,.6)}
/* edição: alças quadradas, vértices, desenho, régua */
.alca{fill:#fff;stroke:var(--sel);stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.alca-alvo{fill:transparent;stroke:none}
.alca-alvo.nw,.alca-alvo.se{cursor:nwse-resize}.alca-alvo.ne,.alca-alvo.sw{cursor:nesw-resize}
.alca-alvo.n,.alca-alvo.s{cursor:ns-resize}.alca-alvo.e,.alca-alvo.w{cursor:ew-resize}
.vert{fill:#fff;stroke:#ff6a00;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.vert-alvo{fill:transparent;stroke:none;cursor:move}
.rascunho{fill:rgba(0,184,180,.1);stroke:var(--sel);stroke-width:1.5;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}
/* a trena: linha, traço nas pontas e a medida numa etiqueta (como no Drywall); o ímã; a área de seleção */
.trena line,.trena path{stroke:var(--terra);stroke-width:2;fill:none;vector-effect:non-scaling-stroke}
.trena rect{fill:var(--terra);opacity:.95}
.trena text{fill:#fff;font-family:Poppins,sans-serif;font-weight:600;text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}
.ima{fill:none;stroke:var(--terra);stroke-width:1.5;vector-effect:non-scaling-stroke}
/* a caneta: a peça em desenho, o elástico até o ponteiro, os pontos e o primeiro (que fecha) */
.caneta-area{fill:rgba(255,106,0,.16);stroke:none}
.caneta-linha{fill:none;stroke:#ff6a00;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.caneta-volta{stroke:#ff6a00;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke;opacity:.7}
.caneta-pt{fill:#fff;stroke:#ff6a00;stroke-width:1.5;vector-effect:non-scaling-stroke}
.caneta-ini{fill:#ff6a00;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.caneta-ini.perto{fill:var(--sel)}
.caneta-cota rect{fill:#ff6a00;opacity:.95}
.caneta-cota text{fill:#fff;font-family:Poppins,sans-serif;font-weight:600;text-anchor:middle;dominant-baseline:central}
.stage.desenhando.fecha{cursor:cell}
/* a ligação da rede frigorígena em desenho (a caneta, na cor da rede); a evaporadora em que a ponta vai ligar */
.liga-linha{fill:none;stroke:#d6249f;stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.liga-pt{fill:#fff;stroke:#d6249f;stroke-width:1.5;vector-effect:non-scaling-stroke}
.liga-ini{fill:#d6249f;stroke:#fff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.liga-cota rect{fill:#d6249f;opacity:.95}
.liga-cota text{fill:#fff;font-family:Poppins,sans-serif;font-weight:600;text-anchor:middle;dominant-baseline:central}
.liga-maq line{stroke:#1f9d55;stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.liga-maq text{fill:#1f9d55;font-family:var(--mono-tag);font-weight:700;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
/* as correções da rede frigorígena: o que o clique vai pegar com a ferramenta na mão (Apagar, Cortar, Prumada, Refnet,
   Máquina) e o texto do que ele faz */
.fr-alvo{fill:none;stroke:var(--sel);stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round}
.fr-alvo.apaga{stroke:#d92d20;stroke-width:5;opacity:.75}
.fr-alvo.corta{stroke:#d92d20;stroke-width:2.6}
.fr-alvo.tira{stroke:#d92d20}
.fr-alvo-t{fill:var(--ink);font-family:Poppins,sans-serif;font-weight:600;paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round}
.fr-alvo-t.tira{fill:#b42318}
/* as atribuições da evaporadora: uma linha por item com a quantidade; embaixo, as que dá para pôr */
.at-l{display:flex;align-items:center;gap:6px;font-size:12px;min-height:32px}
.at-l b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.at-l .at-mao{flex:none;font-size:10px;font-weight:600;color:var(--teal-2);background:color-mix(in srgb,var(--teal) 12%,transparent);border-radius:4px;padding:1px 5px}
body.escuro .at-l .at-mao{color:var(--mint-vivo)}
.at-l .at-q{width:52px;flex:none;margin-left:auto}
.at-l .at-q input{text-align:right}
.at-l .at-un{width:26px;flex:none;font-size:11px;color:var(--ink-3)}
.at-l .pp-icob{flex:none;width:24px;height:24px}
.at-poe{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 6px}
.at-add{height:26px;border:1px dashed var(--line);border-radius:6px;background:transparent;padding:0 8px;font-size:11.5px;font-weight:500;color:var(--teal-2)}
.at-add:hover{border-color:var(--teal-2);border-style:solid}
body.escuro .at-add{color:var(--mint-vivo)}
.escolha-tag.atrib .op b{font:600 12px var(--font)}
.escolha-tag.atrib .op .mais{margin-left:auto;flex:none;font-weight:700;font-size:11px;color:var(--teal-2)}
/* a área ignorada (o desenho que não conta): cinza tracejado, com o nome no canto */
.area-ign{fill:rgba(102,112,133,.13);stroke:#667085;stroke-width:1.5;stroke-dasharray:7 4;vector-effect:non-scaling-stroke;pointer-events:none}
.area-ign-t{fill:#475467;font-family:var(--font);font-weight:600;dominant-baseline:hanging;pointer-events:none}
.pp-oferta{margin:0 0 10px;padding:9px 10px;border-radius:8px;background:color-mix(in srgb,var(--teal) 9%,transparent);font-size:12px;line-height:1.45;display:flex;flex-direction:column;gap:7px}
.pp-oferta div{display:flex;gap:6px;flex-wrap:wrap}
.ign-av{font-size:12px;line-height:1.45;color:var(--warn);background:color-mix(in srgb,var(--warn) 9%,transparent);border-radius:7px;padding:8px 10px;margin-bottom:8px}
.ign-l{display:flex;align-items:center;gap:7px;font-size:12px;min-height:28px}
.ign-l .q{width:12px;height:12px;flex:none;border:1.5px dashed #667085;background:rgba(102,112,133,.13);border-radius:2px}
.ign-l b{font-weight:600;white-space:nowrap;flex:none}
.ign-l .n{color:var(--ink-3);font-size:11px;margin-left:auto;white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ign-l .pp-icob{flex:none}
/* a rede frigorígena: o trecho na cor da rede, na grossura do tubo (quantas evaporadoras ele alimenta) */
.fr-sw{width:16px;height:var(--w);flex:none;background:var(--c);border-radius:2px;min-height:1.5px}
.area-sel{fill:rgba(0,163,161,.12);stroke:var(--sel);stroke-width:1;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
/* etiquetas das pendências na planta (clicáveis) e o rótulo e a cota da caixa selecionada */
.etiquetas{position:absolute;left:0;top:0;width:0;height:0;z-index:4;--z:1}
.etq{position:absolute;left:calc(var(--x) * var(--z) * 1px);top:calc(var(--y) * var(--z) * 1px);transform:translate(-50%,calc(-100% - 4px));height:16px;padding:0 4px;background:rgba(255,255,255,.85);border:1.5px dashed var(--warn);border-radius:2px;font:700 10px/13px var(--mono);color:var(--warn);white-space:nowrap;cursor:pointer}
.etq:hover{background:#fff;z-index:1}
body.escuro .etq{color:#b4610a;border-color:#b4610a}
.etq.sem{border-color:var(--bad);color:var(--bad);border-style:solid}
.etiquetas.mudo .etq{pointer-events:none;opacity:.55}
/* a chegada numa pendência: um anel encolhe duas vezes sobre cada caixa dela */
.focos{position:absolute;left:0;top:0;width:0;height:0;z-index:4;pointer-events:none;--z:1}
.focos i{position:absolute;left:calc(var(--x0) * var(--z) * 1px - 12px);top:calc(var(--y0) * var(--z) * 1px - 12px);width:calc(var(--w) * var(--z) * 1px + 24px);height:calc(var(--h) * var(--z) * 1px + 24px);border:3px solid var(--sel);border-radius:12px;box-shadow:0 0 0 2px rgba(255,255,255,.8);opacity:0;animation:foco .8s ease-out 2}
@keyframes foco{0%{opacity:0;transform:scale(2.2)}25%{opacity:1}75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
.selrot{position:absolute;left:0;top:0;width:0;height:0;z-index:5;pointer-events:none}
.sel-rot{position:absolute;transform:translate(-50%,calc(-100% - 5px));font:700 10.5px/14px var(--mono);background:rgba(255,255,255,.9);padding:0 4px;border-radius:2px;white-space:nowrap}
.cota{position:absolute;transform:translate(-50%,9px);background:var(--sel);color:#fff;font-size:10.5px;font-weight:600;line-height:15px;padding:1px 6px;border-radius:3px;white-space:nowrap;font-variant-numeric:tabular-nums}
/* ferramentas, escala */
/* as ferramentas flutuam embaixo da planta, como no Drywall: botões de 46 px com o atalho embaixo
   do ícone, sombra forte para destacar da prancha e a ferramenta ligada cheia, em verde */
.ferramentas{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:6;display:flex;align-items:center;gap:3px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:0 10px 28px rgba(16,24,40,.22),0 2px 6px rgba(16,24,40,.12)}
.ferramentas button{width:46px;height:46px;border:0;background:transparent;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--ink)}
.ferramentas button small{font-size:9.5px;line-height:1;font-weight:600;color:var(--ink-3);letter-spacing:.02em;white-space:nowrap}
.ferramentas button:hover:not([disabled]):not([aria-pressed=true]){background:var(--sunk)}
.ferramentas button[aria-pressed=true]{background:var(--teal);color:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}
.ferramentas button[aria-pressed=true] small{color:var(--mint-vivo)}
body.escuro .ferramentas button[aria-pressed=true]{background:var(--teal-2)}
.ferramentas button[disabled]{opacity:.32;cursor:default}
.ferramentas .sep{width:1px;height:30px;background:var(--line);margin:0 3px}
body.escuro .ferramentas{box-shadow:0 10px 28px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4)}
/* marcar tag (equipamentos): a lista para escolher a tag, como o seletor de tipologia do Drywall —
   o quadrado da cor, a tag e o que ela é; a lida no PDF vem acesa, com "no PDF" */
.escolha-tag{position:absolute;z-index:8;width:340px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(16,24,40,.22),0 2px 6px rgba(16,24,40,.12);padding:6px;cursor:default;display:flex;flex-direction:column;gap:4px}
.escolha-tag .et-q{height:32px;border:1px solid var(--line);border-radius:7px;padding:0 10px;font:600 12.5px var(--mono-tag);background:var(--card);color:var(--ink);outline:0}
.escolha-tag .et-q:focus{border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 18%,transparent)}
.escolha-tag .et-q::placeholder{font:400 12px var(--font);color:var(--ink-3)}
.escolha-tag .et-lista{max-height:248px;overflow-y:auto;display:flex;flex-direction:column}
.escolha-tag .op{display:flex;align-items:center;gap:8px;height:28px;padding:0 8px;border-radius:6px;cursor:pointer;white-space:nowrap;font-size:12px;flex:none}
.escolha-tag .op .cor{width:14px;height:14px;border-radius:3px;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.escolha-tag .op .cor.nova{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink-3);border-radius:3px}
.escolha-tag .op b{font:700 12px var(--mono-tag);color:var(--ink);flex:none}
.escolha-tag .op .sug{flex:none;font-size:10px;font-weight:600;color:var(--teal);background:color-mix(in srgb,var(--teal) 12%,transparent);border-radius:4px;padding:1px 5px}
body.escuro .escolha-tag .op .sug{color:var(--mint-vivo)}
.escolha-tag .op .d{color:var(--ink-3);font-size:11px;overflow:hidden;text-overflow:ellipsis;min-width:0}
.escolha-tag .op:hover{background:var(--sunk)}
.escolha-tag .op[aria-selected=true]{background:color-mix(in srgb,var(--teal) 13%,transparent)}
.escolha-tag .vazio{padding:10px 8px;color:var(--ink-3);font-size:12px;white-space:normal}
.escolha-tag .et-pe{display:flex;align-items:center;gap:4px;border-top:1px solid var(--line);padding:6px 4px 1px;font-size:11px;color:var(--ink-3)}
.escolha-tag .et-pe b{font-family:var(--mono-tag);color:var(--ink-2)}
.escolha-tag .et-pe span{margin-left:auto;white-space:nowrap}
.escolha-tag .et-cab{display:flex;align-items:center;gap:8px;padding:2px 4px 4px;border-bottom:1px solid var(--line);font-size:12px}
.escolha-tag .et-cab[hidden]{display:none}
.escolha-tag .et-cab .cor{width:14px;height:14px;border-radius:3px;flex:none;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.escolha-tag .et-cab b{font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.escolha-tag .et-cab .n{margin-left:auto;color:var(--ink-3);font-size:11px;white-space:nowrap}
.escolha-tag .et-volta{width:24px;height:24px;flex:none;border:0;border-radius:6px;background:var(--sunk);color:var(--ink);font-size:14px;line-height:1;cursor:pointer}
.escolha-tag .et-volta:hover{background:var(--sunk-2)}
.escolha-tag .op.fam{height:30px}
.escolha-tag .op.fam .nome{font:600 12px var(--font);color:var(--ink);overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.escolha-tag .op.fam .d{flex:none;margin-left:auto}
.escolha-tag .op .vai{flex:none;color:var(--ink-3);font-size:15px;line-height:1;margin-left:2px}
body.escuro .escolha-tag{box-shadow:0 10px 28px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4)}
/* a mesma lista, debaixo do campo Tag do painel do duto */
.escolha-tag.tag-d{position:fixed;z-index:60}
.escala{position:absolute;left:14px;bottom:14px;z-index:6;font-size:11px;color:var(--ink-2);display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-family:var(--mono);pointer-events:none}
.escala i{height:6px;border:1.5px solid var(--ink-2);border-top:0}
/* o que flutua sobre a planta: aviso, alerta, carregando, vazio */
.aviso-ed{position:absolute;left:50%;top:14px;transform:translateX(-50%);z-index:6;display:flex;align-items:flex-start;gap:12px;background:var(--float);border:1px solid var(--teal-2);border-radius:8px;padding:12px 12px 12px 14px;box-shadow:var(--sh-2);min-width:360px;max-width:calc(100% - 40px)}
.aviso-ed .ok{width:26px;height:26px;border-radius:50%;background:var(--teal-2);color:#fff;display:grid;place-items:center;flex:none}
.aviso-ed b{display:block;font-size:13.5px}
.aviso-ed span{font-size:12px;color:var(--ink-2)}
.aviso-ed .icobtn{margin-left:auto}
.alerta-ed{position:absolute;left:14px;right:14px;top:14px;z-index:6;max-width:620px;margin:0 auto;background:var(--bad-bg);color:var(--bad);border-radius:8px;padding:10px 14px;font-size:12.5px;box-shadow:var(--sh-1)}
.carregando{position:absolute;inset:0;display:grid;place-items:center;z-index:7;background:color-mix(in srgb,var(--canvas) 45%,transparent)}
.carregando>div{width:340px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:18px 20px;box-shadow:var(--sh-2);display:flex;flex-direction:column;gap:12px}
.carregando .cc-t{display:flex;flex-direction:column;gap:2px}
.carregando .cc-t b{font-size:13.5px;font-weight:600}
.carregando .cc-t small{font-size:12px;color:var(--ink-3)}
.barra{height:4px;border-radius:2px;background:var(--line-2);overflow:hidden}
.barra i{display:block;height:100%;background:var(--teal-2);transition:width .4s}
.fases{display:flex;flex-direction:column;gap:6px}
.fase{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink-3)}
.fase .c{width:16px;height:16px;border-radius:50%;display:grid;place-items:center;background:var(--card);border:1.5px solid #d4cdc6;color:#fff;flex:none}
.fase.ok,.fase.agora{color:var(--ink)}
.fase.ok .c{background:var(--green);border:0}
.fase.agora .c{border:2px solid var(--teal-2)}
.ed-vazio{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:7;display:flex;flex-direction:column;align-items:center;gap:12px;background:var(--float);border:1px solid var(--line);border-radius:10px;padding:20px 26px;box-shadow:var(--sh-2)}
.ed-vazio b{font-size:14px}

/* painel de propriedades */
.props{width:304px;flex:none;background:var(--card);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;user-select:text}
.pp-nav{flex:none;display:flex;align-items:center;gap:4px;height:36px;padding:0 6px;border-bottom:1px solid var(--line-2);background:var(--nav)}
.pp-nav span{flex:1;text-align:center;font-size:11.5px;color:var(--ink-2)}
.pp-nav b{color:var(--ink);font-weight:600}
.pp-b{width:26px;height:26px;border:0;border-radius:5px;background:transparent;display:grid;place-items:center;color:var(--ink-2);flex:none}
.pp-b:hover{background:var(--sunk);color:var(--ink)}
.pp-cab{flex:none;display:flex;align-items:center;gap:8px;height:40px;padding:0 8px 0 14px;border-bottom:1px solid var(--line-2)}
.pp-cab .sw{width:10px;height:10px;border-radius:2px;flex:none}
.pp-cab b{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-cab.planta{padding:0 14px}
.pp-cab .d{font-size:11px;color:var(--ink-3);margin-left:auto}
.pp-cab .pp-b{color:var(--ink-3)}
.pill{font-size:10.5px;font-weight:600;border-radius:99px;padding:2px 8px;margin-left:auto;white-space:nowrap}
.pill.warn{background:var(--warn-bg);color:var(--warn)} .pill.bad{background:var(--bad-bg);color:var(--bad)} .pill.ok{background:var(--ok-bg);color:var(--ok)}
.pp-corpo{flex:1;min-height:0;overflow-y:auto}
.pp-mot{display:flex;gap:7px;padding:10px 14px;font-size:11.5px;line-height:1.4;color:var(--warn);background:var(--warn-bg)}
.pp-mot.bad{color:var(--bad);background:var(--bad-bg)}
.pp-mot svg{flex:none;margin-top:1px}
.pp-sec{padding:12px 14px;border-bottom:1px solid var(--line-2);display:flex;flex-direction:column;gap:6px}
.pp-sec:last-child{border-bottom:0}
.pp-sec.larga{gap:12px}
.pp-sec.larga>.pp-t{padding-bottom:0}
.pp-sec.lin{gap:2px}
.pp-sec.lin>.pp-t{padding-bottom:6px}
.pp-sec.g8{gap:8px}
.pp-sec.g8>.pp-t{padding-bottom:0}
.pp-t{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:600;padding-bottom:2px}
.pp-t span{font-weight:400;color:var(--ink-3)}
.pp-g{display:grid;grid-template-columns:64px minmax(0,1fr);gap:6px;align-items:center;font-size:11.5px;color:var(--ink-2)}
.pp-g.g3{grid-template-columns:64px minmax(0,1fr) 28px}
.pp-g>.top{align-self:start;padding-top:5px}
.cp{height:28px;border-radius:5px;background:var(--campo);border:1px solid transparent;padding:0 8px;font-size:12px;color:var(--ink);font-variant-numeric:tabular-nums;min-width:0;width:100%;display:flex;align-items:center}
.cp:hover:not([disabled]){border-color:var(--line)}
.cp:focus{outline:none;border-color:var(--teal-2);background-color:var(--card)}
.cp.tag{font-family:var(--mono);font-size:12.5px;font-weight:700}
.props[data-tipo=duto] input.cp.tag{font-family:var(--mono-tag)}
/* a tag do duto abre a lista das tags da planta: a seta é a do select do Sistema; a peça sem tag mostra o prefixo no lugar */
.props[data-tipo=duto] input.cp.tag:not([disabled]){padding-right:22px;background:var(--campo) var(--chev) no-repeat right 8px center;cursor:pointer}
.props[data-tipo=duto] input.cp.tag:focus{background-color:var(--card);cursor:text}
.props[data-tipo=duto] input.cp.tag.sem::placeholder{font:600 12.5px var(--mono);color:var(--ink)}
.props[data-tipo=equip] .pp-mot{line-height:1.45}
.cp.texto{height:auto;min-height:28px;padding:6px 8px;line-height:1.4;display:block;border:0}
select.cp{appearance:none;padding-right:22px;background:var(--campo) var(--chev) no-repeat right 8px center}
.cp[disabled]{cursor:default}
.cp-sis{position:relative;min-width:0}
.cp-sis i{position:absolute;left:8px;top:12px;width:10px;height:4px;border-radius:2px;pointer-events:none}
.cp-sis select{padding-left:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cpr{height:28px;border-radius:5px;background:var(--campo);padding:0 8px;display:flex;align-items:center;gap:6px;border:1px solid transparent;min-width:0;font-size:12px}
.cpr:hover{border-color:var(--line)}
.cpr:focus-within{border-color:var(--teal-2);background:var(--card)}
.cpr .r{font-size:11px;color:var(--ink-3);width:10px;flex:none}
.cpr.esc{gap:4px}
/* a escala e o Calibrar (o do Drywall): o botão com o nome, aceso enquanto se mede */
.pp-g.esc-g{grid-template-columns:64px minmax(0,1fr) auto;margin-bottom:6px}
.b-cal{height:28px;display:inline-flex;align-items:center;gap:5px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:var(--card);color:var(--ink);font-size:12px;font-weight:500;white-space:nowrap}
.b-cal:hover:not([disabled]){border-color:var(--ink-3)}
.b-cal[aria-pressed="true"]{background:var(--sel-bg);border-color:var(--sel);color:var(--sel)}
.b-cal[disabled]{opacity:.5}
/* a escala na barra de baixo também abre o Calibrar */
.st-esc{border:0;background:transparent;font:inherit;color:inherit;padding:0 2px;border-radius:3px;cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.st-esc:hover,.st-esc[aria-pressed="true"]{color:var(--sel);background:var(--sel-bg)}
.cpr.esc .r{width:auto;font-size:12px}
.cpr .un{font-size:11px;color:var(--ink-3)}
.cpr input{flex:1;min-width:0;border:0;background:transparent;font-size:12px;font-variant-numeric:tabular-nums;outline:none;color:var(--ink);padding:0;height:100%}
.cpr input[disabled]{color:var(--ink-2);cursor:default}
.cpr.forte input{font-weight:600}
.cpr.dis:hover{border-color:transparent}
.g2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px}
.g-sec{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 28px;gap:6px}
.g-sec.um{grid-template-columns:minmax(0,1fr)}
.inv{height:28px;border:0;border-radius:5px;background:transparent;color:var(--teal-2);font-size:13px;display:grid;place-items:center}
.inv:hover:not([disabled]){background:var(--sunk)}
.inv[disabled]{color:var(--ink-3);opacity:.5;cursor:default}
body.escuro .inv{color:var(--mint-vivo)}
.nota{font-size:11px;color:var(--ink-3)}
.seg-f{display:flex;background:var(--campo);border-radius:5px;padding:2px;height:28px}
.seg-f span{flex:1;display:grid;place-items:center;border-radius:4px;font-size:11.5px;color:var(--ink-3)}
.seg-f span.on{background:var(--card);color:var(--ink);box-shadow:var(--sh-seg)}
.seg-f button{flex:1;border:0;border-radius:4px;background:transparent;font-size:11.5px;color:var(--ink-3);padding:0}
.seg-f button:hover:not([disabled]){color:var(--ink)}
.seg-f button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:500;box-shadow:var(--sh-seg)}
.seg-f button[disabled]{cursor:default}
.comp-o{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--ink-3);padding-left:70px}
.comp-o button{border:0;background:transparent;color:var(--teal-2);font-size:11px;padding:0}
.comp-o button:hover{text-decoration:underline}
.pp-tx{font-size:11.5px;color:var(--ink-2);line-height:1.45}
.pp-lin{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:3px 0}
.pp-lin>span:first-child{color:var(--ink-2);flex:none}
.pp-lin>span:last-child{text-align:right;min-width:0;overflow-wrap:anywhere}
.pp-lin.q>span:last-child{font-weight:600;font-variant-numeric:tabular-nums}
.pp-lin .warn{color:var(--warn)} .pp-lin .bad{color:var(--bad)} .pp-lin .ok{color:var(--ok)}
.pp-rod{flex:none;border-top:1px solid var(--line);padding:10px 14px 12px;display:flex;flex-direction:column;gap:6px}
.b-ap{height:34px;display:flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:6px;background:var(--green);color:#fff;font-weight:600;font-size:12.5px}
.b-ap:hover:not([disabled]){filter:brightness(1.06)}
.b-ap kbd{font-size:10px;font-weight:600;background:rgba(255,255,255,.2);border-radius:3px;padding:0 5px}
.b-ap.teal{background:var(--teal);height:32px;font-size:12px}
.b-ap.teal:hover:not([disabled]){background:var(--teal-2);filter:none}
.b-ap.teal.f30{height:30px}
.b-ap.out{background:var(--card);color:var(--green);box-shadow:inset 0 0 0 1.5px var(--green)}
.b-ap.out kbd{background:var(--ok-bg)}
body.escuro .b-ap.out{color:var(--ok);box-shadow:inset 0 0 0 1.5px var(--ok)}
/* os dois atalhos da tag de equipamento: na planta e no quadro */
.pp-atalhos{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:10px 14px 0}
.pp-atalhos button{height:28px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:6px;background:var(--card);font-size:11.5px;font-weight:500;color:var(--teal-2);white-space:nowrap}
.pp-atalhos button:hover:not([disabled]){border-color:var(--teal-2)}
.pp-atalhos button[disabled]{color:var(--ink-3);opacity:.5;cursor:default}
body.escuro .pp-atalhos button{color:var(--mint-vivo)}
.b-ap[disabled],.b-2 button[disabled]{opacity:.45;cursor:not-allowed}
.b-2{display:flex;gap:6px}
.b-2 button{flex:1;height:30px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:6px;background:var(--card);font-weight:500;font-size:12px;color:var(--ink);white-space:nowrap;padding:0 6px}
.b-2 button:hover:not([disabled]){border-color:var(--ink-3)}
.b-2 button.bad{color:var(--bad)}
.b-2 button.bad:hover:not([disabled]){border-color:var(--bad)}
.b-2 kbd{font-size:10px;color:var(--ink-3)}
.lk-t{align-self:flex-start;border:0;background:transparent;padding:0;font-size:11.5px;font-weight:500;color:var(--teal-2)}
.lk-t:hover{text-decoration:underline}
body.escuro .lk-t,body.escuro .comp-o button,body.escuro .barra-s[aria-pressed=true] .l span:first-child{color:var(--mint-vivo)}
.prog-t{display:flex;justify-content:space-between;font-size:11px}
.prog-t b{font-weight:600} .prog-t span{color:var(--ink-3)}
.prog{height:4px;border-radius:2px;background:var(--line-2);overflow:hidden}
.prog i{display:block;height:100%;background:var(--green)}
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-2);border:1px solid var(--line-2);border-radius:6px;overflow:hidden}
.kpi{background:var(--card);padding:9px 11px;min-width:0}
.kpi small{display:block;font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.7px;font-weight:500}
.kpi b{font-size:16px;font-weight:600;font-variant-numeric:tabular-nums}
.kpi span{font-size:11px;color:var(--ink-2)}
.barras{display:flex;flex-direction:column;gap:12px}
.barra-s{display:flex;flex-direction:column;gap:3px;border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}
.barra-s:hover .l span:first-child{color:var(--teal-2)}
.barra-s[aria-pressed=true] .l span:first-child{color:var(--teal);font-weight:600}
.barra-s .l{display:flex;justify-content:space-between;gap:8px;font-size:11.5px}
.barra-s .l span:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.barra-s .v{font-family:var(--mono);font-size:11px;color:var(--ink-2);white-space:nowrap}
.barra-s .t{height:4px;border-radius:2px;background:var(--line-2)}
.barra-s .t i{display:block;height:100%;border-radius:2px;min-width:2px}
.sis-ops{display:flex;flex-direction:column;gap:6px}
.sis-op{height:30px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;background:var(--card);padding:0 10px;font-size:12px;font-weight:500;text-align:left;color:var(--ink)}
.sis-op:hover:not([disabled]){border-color:var(--ink-3)}
.sis-op i{width:10px;height:10px;border-radius:2px;flex:none}
.sis-op span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.q2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.q2 div,.q2 button{height:28px;border-radius:5px;background:var(--campo);padding:0 8px;display:flex;align-items:center;justify-content:space-between;font-size:12px;border:0;color:var(--ink)}
.q2 button:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}
.q2 .vale{background:var(--ok-bg);box-shadow:inset 0 0 0 1.5px var(--ok);color:var(--ok)} .q2 .vale span{color:var(--ok)}
.q2 span{color:var(--ink-3);font-size:11px} .q2 b{font-weight:600}
.q2 .warn{background:var(--warn-bg);color:var(--warn)} .q2 .warn span{color:var(--warn)}
/* a bitola diferente (planta × fluxograma): a bitola à direita e, embaixo do rótulo, o cobre do trecho */
.q2.bit div,.q2.bit button{height:auto;min-height:40px;padding:5px 8px;display:grid;grid-template-columns:1fr auto;column-gap:6px;align-items:center;text-align:left}
.q2.bit b{grid-row:1 / span 2;grid-column:2;font-size:13px}
.q2.bit small{grid-column:1;font-size:11px;color:var(--ink-3)} .q2.bit .vale small{color:var(--ok)} .q2.bit .warn small{color:var(--warn)}
.oc{display:flex;align-items:center;gap:8px;height:28px;padding:0 8px;border:0;border-radius:5px;background:var(--campo);font-size:12px;color:var(--ink);text-align:left;width:100%}
.oc:hover{filter:brightness(.98)}
.oc[aria-pressed=true]{background:var(--mint);color:var(--teal)}
body.escuro .oc[aria-pressed=true]{color:var(--mint-vivo)}
.oc b{font-family:var(--mono);font-weight:600}
.oc .pos{color:var(--ink-3);font-family:var(--mono);font-size:11px}
.oc .or{margin-left:auto;font-size:11px;color:var(--ink-3)}
.b-marca{height:28px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px dashed var(--radio);border-radius:5px;background:transparent;font-size:12px;color:var(--ink-2)}
.b-marca:hover:not([disabled]){border-color:var(--teal-2);color:var(--teal-2)}
.b-marca[disabled]{opacity:.45;cursor:not-allowed}
.pp-icob{width:28px;height:28px;border:0;border-radius:5px;background:transparent;display:grid;place-items:center;color:var(--ink-2)}
.pp-icob:hover:not([disabled]){background:var(--sunk);color:var(--ink)}
.pp-icob[disabled]{opacity:.4;cursor:default}
.leg-v{font-size:12px;font-weight:500;color:var(--ink-3)} .leg-v.ok{color:var(--ok)} .leg-v.fora{color:var(--warn,#b26a00)}
/* só leitura: os campos ficam com contorno, sem fundo */
.props.ro .cp,.props.ro .cpr{background:transparent;border-color:var(--line-2);color:var(--ink-2)}
.props.ro .cp-sis i{opacity:.6}

/* barra de status */
.status{flex:none;height:28px;background:var(--card);border-top:1px solid var(--line);display:flex;align-items:center;gap:4px;padding:0 10px;font-size:11px;color:var(--ink-2);min-width:0}
.tg{display:flex;align-items:center;gap:6px;height:20px;padding:0 8px;border-radius:99px;border:1px solid var(--line);background:var(--card);color:var(--ink-2);font-size:11px;font-weight:500;white-space:nowrap}
.tg i{width:6px;height:6px;border-radius:50%;background:#d4cdc6}
.tg:hover{border-color:var(--ink-3)}
.tg[aria-pressed=true]{border-color:var(--mint-2);background:var(--mint);color:var(--teal)}
.tg[aria-pressed=true] i{background:var(--teal-2)}
body.escuro .tg[aria-pressed=true]{color:var(--mint-vivo)}
body.escuro .tg[aria-pressed=true] i{background:var(--mint-vivo)}
/* o menu Visualização: abre em cima da barra de baixo, à esquerda */
.tg-vis{gap:5px}
.tg-vis svg:last-child{transition:transform .15s}
.tg-vis[aria-expanded=false] svg:last-child{transform:rotate(180deg)}
.tg-vis[aria-expanded=true]{border-color:var(--teal-2);color:var(--ink)}
.menu-vis{position:absolute;left:12px;bottom:12px;z-index:9;width:336px;max-width:calc(100% - 24px);background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--sh-2);padding:10px 14px 12px;font-size:12.5px;color:var(--ink)}
.menu-vis[hidden]{display:none}
.mv-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.mv-cab b{font-size:13px;font-weight:600}
.menu-vis h4{margin:12px 0 6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:600}
.mv-seg{display:flex;background:var(--sunk);border-radius:7px;padding:2px;gap:2px}
.mv-seg button{flex:1 1 auto;border:0;background:transparent;padding:5px 4px;font-size:11px;border-radius:5px;color:var(--ink-2);white-space:nowrap}
.mv-seg button[aria-pressed=true]{background:var(--card);color:var(--ink);font-weight:600;box-shadow:var(--sh-seg,0 1px 2px rgba(16,24,40,.12))}
.mv-lin{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.mv-lin span{flex:1;color:var(--ink-2);white-space:nowrap}
.mv-lin input{width:128px;flex:none;accent-color:var(--teal-2)}
.mv-lin.dis{opacity:.45}
.mv-chk{display:flex;align-items:center;gap:8px;margin:6px 0;cursor:pointer;color:var(--ink-2)}
.mv-chk input{accent-color:var(--teal-2);margin:0}
.mv-chk span{flex:1}
.mv-chk kbd{font-size:10px;font-weight:600;background:var(--campo);border:1px solid var(--line);border-radius:3px;padding:0 5px}
.st-dir{margin-left:auto;display:flex;align-items:center;gap:16px;font-family:var(--mono);color:var(--ink-3);white-space:nowrap}

@media (max-width:1100px){.props{width:280px}}
@media (max-width:760px){
  .menu{display:none}.pag{padding:20px 16px 40px}.props{display:none}.login{grid-template-columns:1fr}.login-art{display:none}
  .busca input{width:150px}.etapas-seg{display:none}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* a nova obra: o diálogo largo, a área de soltar os PDFs e a tabela do que o carimbo leu */
.dlg.grande{width:min(1040px,100%)}
.on-obra{font-size:13px}
.on-solta{display:flex;align-items:center;gap:12px;padding:16px;border:1.5px dashed var(--line);border-radius:8px;background:var(--sunk);color:var(--ink-2);font-size:12.5px;cursor:pointer;position:relative}
.on-solta:hover{border-color:var(--teal-2)}
.on-solta b{color:var(--ink);font-weight:600}
.on-solta input{position:absolute;inset:0;opacity:0;cursor:pointer}
.on-solta.tem{padding:10px 16px}
.on-tab{border:1px solid var(--line);border-radius:8px;max-height:52vh;overflow:auto}
.on-tab table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
.on-tab th{position:sticky;top:0;z-index:1;background:var(--card);height:30px;padding:0 8px;text-align:left;font-size:11px;font-weight:600;color:var(--ink-3);border-bottom:1px solid var(--line)}
.on-tab th:nth-child(1){width:30%} .on-tab th:nth-child(2){width:16%} .on-tab th:nth-child(3){width:8%} .on-tab th:nth-child(4){width:8%} .on-tab th:nth-child(6){width:36px}
.on-tab td{padding:5px 8px;border-bottom:1px solid var(--line-2);vertical-align:middle}
.on-tab tr:last-child td{border-bottom:0}
.on-tab tr.aviso td{background:color-mix(in srgb, var(--warn-bg) 55%, transparent)}
.on-arq{display:flex;align-items:center;gap:8px;min-width:0}
.on-arq .ic{color:var(--ink-3);flex:none;display:flex}
.on-pag{flex:none;font-size:11px;font-weight:600;color:var(--ink-2);background:var(--sunk);border-radius:4px;padding:1px 6px;white-space:nowrap}
.on-arq .tx{font-family:var(--mono);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink-2)}
.on-tab .campo-i.sm{height:28px;font-size:12px;padding:0 8px}
.on-tit{font-size:11.5px;color:var(--ink-2);overflow:hidden}
.on-tit{white-space:nowrap;text-overflow:ellipsis}
.on-av{display:flex;align-items:center;gap:5px;margin-top:2px;color:var(--warn);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.on-av svg{flex:none}
.on-lendo{font-size:11.5px;color:var(--ink-3);animation:on-pisca 1.2s ease-in-out infinite}
@keyframes on-pisca{50%{opacity:.4}}
@media (prefers-reduced-motion:reduce){.on-lendo{animation:none}}
/* o selo do card: o carimbo para conferir */
.selo.conf{background:var(--warn-bg);color:var(--warn)}
/* o carimbo no painel da planta */
.pp-car{display:grid;grid-template-columns:64px minmax(0,1fr);gap:6px 10px;font-size:12px;align-items:baseline}
.pp-car span{color:var(--ink-3)}
.pp-car b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pp-car-av{display:flex;gap:6px;align-items:flex-start;margin-top:8px;padding:6px 8px;border-radius:6px;background:var(--warn-bg);color:var(--warn);font-size:11.5px;line-height:1.35}
.pp-car-av svg{flex:none;margin-top:1px}
.pp-car-ok{margin-top:8px}
/* a nova obra: norma e o que levantar */
.on-op{display:grid;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:8px 12px;align-items:center}
.on-op>span{color:var(--ink-2);font-size:12px;text-align:right}
.on-op .seg2{height:34px}
/* a conferência da obra: as etapas, a barra e um quadradinho por pavimento, na ordem */
.cfo{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.cfo-cab{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.cfo-t{display:flex;flex-direction:column;gap:2px}
.cfo-t b{font-size:13.5px;font-weight:600}
.cfo-t span{font-size:12px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.cfo-ets{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.cfo-et{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}
.cfo-et b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.cfo-et i{width:9px;height:9px;border-radius:3px;flex:none}
.cfo-cab .btn.pri,.cfo-fim{margin-left:auto}
.cfo-fim{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--ok)}
.cfo-fim.mut{color:var(--ink-3);font-weight:500}
.cfo-barra{height:4px;border-radius:99px;background:var(--sunk);overflow:hidden}
.cfo-barra i{display:block;height:100%;background:var(--ok);border-radius:99px;transition:width .4s}
.cfo-qs{display:flex;flex-wrap:wrap;gap:6px}
.cfo-q{min-width:38px;height:28px;padding:0 8px;border-radius:6px;border:1px solid transparent;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.cfo-q:hover{box-shadow:0 0 0 1px var(--teal-2)}
.cfo-q.carimbo,.cfo-et.carimbo i{background:var(--warn-bg);color:var(--warn)}
.cfo-et.carimbo i{background:var(--warn)}
.cfo-q.dutos{background:var(--card);border-color:var(--line);color:var(--ink)} .cfo-et.dutos i{background:var(--card);border:1.5px solid var(--ink-3)}
.cfo-q.equip,.cfo-et.equip i{background:var(--mint);color:var(--teal)} .cfo-et.equip i{background:var(--teal-mut)}
.cfo-q.ok{background:var(--ok-bg);color:var(--ok)} .cfo-et.ok i{background:var(--ok)}
.cfo+.grade,.cfo+.caixa{margin-top:2px}
/* a lista de obras: nome, quantas finalizadas (com a barra), o que falta conferir */
.obl{display:grid;grid-template-columns:minmax(0,2fr) 200px minmax(0,1fr) 110px 96px;gap:12px;align-items:center;min-height:60px;padding:8px 16px;border-bottom:1px solid var(--line-2);font-size:12.5px}
.obl:last-child{border-bottom:0}
.obl:not(.cab):hover{background:var(--nav)}
.obl.cab{min-height:36px;height:36px;border-bottom:1px solid var(--line);font-size:11px;font-weight:600;color:var(--ink-3)}
.obl-nome{display:flex;align-items:center;gap:12px;min-width:0;cursor:pointer}
.obl-nome .ic{width:34px;height:34px;border-radius:8px;background:var(--mint);color:var(--teal);display:grid;place-items:center;flex:none}
.obl-nome .tx{display:flex;flex-direction:column;min-width:0}
.obl-nome b{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obl-nome small{font-size:11px;color:var(--ink-3)}
.obl-nome:hover b{color:var(--teal-2)}
body.escuro .obl-nome:hover b{color:var(--mint-vivo)}
.obl-st{display:flex;align-items:center;gap:10px;font-variant-numeric:tabular-nums;white-space:nowrap}
.obl-bar{flex:1;max-width:110px;height:5px;border-radius:99px;background:var(--sunk);overflow:hidden}
.obl-bar i{display:block;height:100%;background:var(--ok);border-radius:99px}
.obl-n{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.obl .ll-ac{display:flex;justify-content:flex-end}
@media (max-width:1240px){.obl{grid-template-columns:minmax(0,2fr) 170px minmax(0,1fr) 96px}.obl .c-q{display:none}}
/* muitos pavimentos: a tabela rola de lado; a descrição tem largura própria e item, descrição e total ficam presos
   nas bordas enquanto os pavimentos passam por baixo */
.orc-plan.rola .aw-tab col.k-desc{width:260px}
.orc-plan.rola .aw-tab td.c-it,.orc-plan.rola .aw-tab th.c-it{position:sticky;left:0;z-index:1;background:var(--card)}
.orc-plan.rola .aw-tab td.c-desc,.orc-plan.rola .aw-tab th.c-desc{position:sticky;left:56px;z-index:1;background:var(--card);box-shadow:inset -1px 0 0 var(--line-2)}
.orc-plan.rola .aw-tab td.c-t,.orc-plan.rola .aw-tab th.c-t{position:sticky;right:0;z-index:1;background:var(--card);box-shadow:inset 1px 0 0 var(--line-2)}
.orc-plan.rola .aw-tab tr.sec td{position:static}
.orc-plan.rola .aw-tab tr.sec td.c-t{position:sticky;right:0;background:var(--sunk)}
.orc-plan.rola .aw-tab tr.editada td.c-it,.orc-plan.rola .aw-tab tr.editada td.c-desc,.orc-plan.rola .aw-tab tr.editada td.c-t{background:color-mix(in srgb,var(--mint) 45%,var(--card))}
.orc-plan.rola .orc-tw{scrollbar-width:thin}
.orc-plan.rola .aw-tab tr.sec .orc-sec-b{position:sticky;left:16px;width:auto;max-width:720px}
.orc-plan.rola .aw-tab tr.nota .nt{position:sticky;left:66px;display:inline-block}
.orc-plan.rola .aw-tab tr.nota.vazio .nt{left:16px}
.orc-plan.rola .aw-tab tr.sec td:first-child,.orc-plan.rola .aw-tab tr.nota td{overflow:visible}
/* o orçamento enxugado (13/10/2026): os avisos só quando há o que fazer, dois quadros, a planilha em 7 colunas */
.orc-avisos{display:flex;flex-direction:column;border:1px solid var(--warn-bg);border-radius:8px;background:color-mix(in srgb,var(--warn-bg) 55%,var(--card));overflow:hidden}
.orc-av{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:12.5px;color:var(--ink-2)}
.orc-av+.orc-av{border-top:1px solid var(--warn-bg)}
.orc-av svg{color:var(--warn);flex:none}
.orc-av b{color:var(--ink);font-weight:600}
.orc-av .lk-t{margin-left:auto;font-size:12px;font-weight:600}
.orc-quadros{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}
.orc-sep{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line-2);padding-top:14px}
.orc-pvs{gap:0;border-top:0;padding-top:0}
.orc-pv{display:grid;grid-template-columns:minmax(0,1fr) auto 90px 96px;gap:12px;align-items:center;width:100%;min-height:32px;padding:4px 0;border:0;border-bottom:1px solid var(--line-2);background:transparent;text-align:left;font-size:12.5px;color:var(--ink)}
.orc-pv:last-child{border-bottom:0}
button.orc-pv:hover .nm{color:var(--teal-2)}
.orc-pv .nm{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-pv .br{display:block;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.orc-pv .br i{display:block;height:100%;border-radius:3px;background:var(--teal-2)}
.orc-pv .orc-pv-v{display:block;text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
.orc-pv .orc-tag{justify-self:end}
.orc-ok{justify-self:end;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:var(--ok-bg);color:var(--ok)}
.orc-pv-sub{justify-self:end;font-size:11px;color:var(--ink-3)}
.orc-plan-cab{align-items:center}
.orc-plan .orc-ferr{padding:0;margin-left:auto;flex-wrap:nowrap}
.orc-ferr .chip .c{margin-left:6px;font-weight:600}
.orc-plan .aw-tab col.k-it{width:56px} .orc-plan .aw-tab col.k-un{width:52px} .orc-plan .aw-tab col.k-q{width:100px}
.orc-plan .aw-tab col.k-u{width:128px} .orc-plan .aw-tab col.k-t{width:140px}
.orc-plan .aw-tab th small{font-weight:500;color:var(--ink-3);font-size:10.5px}
.orc-plan .aw-tab td.c-u{padding:0 6px}
@media (max-width:1100px){.orc-plan .orc-ferr{flex-wrap:wrap;margin-left:0}}
/* o rodapé: os números nunca quebram nem cortam; quem cede espaço é o texto da esquerda */
.ar-ed{flex:1 1 auto;min-width:0}
.ar-ed .mut3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ar-pavs{flex:none;margin-left:0}
.ar-tots{flex:none}
.ar-pavs span,.ar-tots span{max-width:none;overflow:visible}
.ar-pavs b{white-space:nowrap}
.orc-quadros{align-items:start}

/* Marca Athié Wohnrath: os SVGs de /marca entram como máscara e pintam com a cor do texto (currentColor).
   .marca-aw = logo completo "athiē | wohnrath"; .mono = monograma "a | w". Basta dar a altura. */
.marca-aw{display:block;height:24px;aspect-ratio:1312.24/223;background-color:currentColor;color:#fff;
  -webkit-mask:url(/marca/athie-logo.svg) no-repeat center/contain;mask:url(/marca/athie-logo.svg) no-repeat center/contain}
.marca-aw.mono{height:16px;aspect-ratio:301.7/223;color:var(--mint-vivo);
  -webkit-mask-image:url(/marca/athie-aw.svg);mask-image:url(/marca/athie-aw.svg)}
.menu-marca .marca-aw{height:26px}
/* seções 4 e 5 do orçamento: a regra de cada linha e de onde saíram os pontos */
.orc .aw-tab .orc-regra{display:block;margin-top:2px;font-size:11px;color:var(--ink-3);white-space:normal}
.orc .aw-tab tr.nota.info td{padding-top:6px;padding-bottom:6px;color:var(--ink-2)}
/* seções 4 e 5 do orçamento: a regra de cada linha e de onde saíram os pontos */
.orc .aw-tab .orc-regra{display:block;margin-top:2px;font-size:11px;color:var(--ink-3);white-space:normal}
.orc .aw-tab tr.nota.info td{padding-top:6px;padding-bottom:6px;color:var(--ink-2)}

/* ========== o orçamento vivo (19/10/2026): a descrição abre a origem da linha; as revisões emitidas; Emitir no rodapé */
.orc .aw-tab .orc-lin{display:flex;align-items:flex-start;gap:6px;width:100%;padding:0;border:0;background:transparent;text-align:left;font:inherit;color:inherit;cursor:pointer}
.orc .aw-tab .orc-lin svg{flex:none;margin-top:2px;color:var(--ink-3);transform:rotate(-90deg);transition:transform .15s}
.orc .aw-tab .orc-lin[aria-expanded=true] svg{transform:none;color:var(--teal-2)}
.orc .aw-tab .orc-lin:hover .d1{color:var(--teal-2);text-decoration:underline}
.orc .aw-tab td.c-desc .tags,.orc .aw-tab td.c-desc .orc-regra{padding-left:18px}
.orc .aw-tab tr.aberta td{background:color-mix(in srgb,var(--mint) 35%,var(--card))}
.orc .aw-tab tr.orc-orig td{height:auto;padding:0 16px 14px 0;white-space:normal;background:color-mix(in srgb,var(--mint) 35%,var(--card))}
.orc .aw-tab tr.orc-orig:hover td{background:color-mix(in srgb,var(--mint) 35%,var(--card))}
.orc-o{display:flex;flex-direction:column;gap:12px;padding:12px 14px;margin-left:18px;border:1px solid var(--line);border-radius:8px;background:var(--card);font-size:12px;color:var(--ink-2)}
.orc-o-tx{margin:0}
.orc-o-pavs{display:flex;flex-direction:column;gap:10px}
.orc-o-pav{display:flex;flex-direction:column;gap:3px}
.orc-o-pav+.orc-o-pav{padding-top:10px;border-top:1px solid var(--line-2)}
.orc-o-pc{display:flex;align-items:baseline;gap:10px}
.orc-o-pc b{color:var(--ink);font-weight:600}
.orc-o-pc .num{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.orc-o-pc .lk-t{margin-left:auto;font-size:12px;font-weight:600}
.orc-o-l{display:flex;gap:12px;justify-content:space-between;padding-left:12px}
.orc-o-l span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}
.orc-o-l .num{flex:none;font-variant-numeric:tabular-nums}
.orc-o-qs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 12px}
.orc-o-q{display:flex;flex-direction:column;gap:3px;min-width:0}
.orc-o-q span{font-size:11px;font-weight:600;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.orc-qtd{height:28px;border:1px solid var(--line);border-radius:5px;background:var(--campo);text-align:right;padding:0 8px;font:inherit;font-variant-numeric:tabular-nums;color:var(--ink)}
.orc-qtd:focus{outline:none;border-color:var(--teal-2)}
.orc-o-tipos{display:flex;flex-direction:column;gap:6px;padding-top:10px;border-top:1px solid var(--line-2)}
.orc-o-tipo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;align-items:center}
.orc-o-tipo>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.orc-o-tipo .campo-i{height:30px;font-size:12px;min-width:0}
.orc-revs{padding:14px 18px;display:flex;flex-direction:column;gap:4px}
.orc-revs h2{margin:0}
.orc-rev{display:grid;grid-template-columns:70px 140px minmax(0,1fr) auto auto;gap:14px;align-items:center;min-height:38px;border-top:1px solid var(--line-2);font-size:12.5px}
.orc-rev b.num{font-variant-numeric:tabular-nums}
.ar-acao{display:flex;align-items:center;gap:12px;flex:none}
.ar-falta{font-size:12px;color:var(--warn);font-weight:600;max-width:260px;text-align:right;line-height:1.3}
.orc-pl-nota{margin:8px 0 0;font-size:12px;color:var(--ink-2)}
/* o rodapé com Emitir: os pavimentos, a média e o geral já estão no quadro Pavimentos, e saem antes de o preço
   editado e o botão se encavalarem */
.ar-ed-t{white-space:nowrap}
.ar-ed .btn{flex:none}
@media (max-width:1700px){.ar-pavs{display:none}}
/* a rede frigorígena na conferência da obra (19/10/2026): entre os equipamentos e a finalizada */
.cfo-q.frig{background:color-mix(in srgb,var(--sel-bg) 60%,var(--card));color:var(--teal-2);border-color:var(--teal-mut)} .cfo-et.frig i{background:var(--sel)}
.cfo-fim+.btn.pri{margin-left:12px}
/* o Novo orçamento da obra que já tem orçamento: o aviso, com o atalho para cada um */
.orc-ja{display:flex;gap:10px;align-items:flex-start;margin-top:12px;padding:10px 14px;border:1px solid var(--warn-bg);border-radius:8px;background:color-mix(in srgb,var(--warn-bg) 55%,var(--card));font-size:12.5px;color:var(--ink-2)}
.orc-ja>svg{color:var(--warn);flex:none;margin-top:2px}
.orc-ja>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.orc-ja b{color:var(--ink);font-weight:600}
.orc-ja span{display:flex;align-items:center;gap:10px}
.orc-ja .lk-t{font-size:12px;font-weight:600}
.orc-ja small{font-size:11.5px;color:var(--ink-3)}
/* o fluxograma do fabricante na página da obra (02/11/2026, fluxogramas.js) */
.flx{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s,box-shadow .15s}
.flx.solta{border-color:var(--sel);box-shadow:0 0 0 3px var(--sel-bg)}
.flx-cab{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.flx-cab .cfo-t{min-width:0;flex:1 1 320px}
.flx-ls{display:flex;flex-direction:column;border-top:1px solid var(--line-2)}
.flx-l{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line-2);min-height:46px}
.flx-l:last-child{border-bottom:0;padding-bottom:0}
.flx-l .ic{color:var(--ink-3);display:flex;flex:none}
.flx-l .tx{display:flex;flex-direction:column;min-width:0;flex:1}
.flx-l .tx a,.flx-l .tx b{font-weight:600;font-size:12.5px;color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flx-l .tx a:hover{text-decoration:underline}
.flx-l small{font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.flx-l.velho .tx,.flx-l.velho .ic{opacity:.55}
.flx-l.lendo small{color:var(--teal-2)}
/* o pé-direito da obra e a conferência da cobertura × fluxograma (03/11/2026) */
.flx-pd{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-2)}
.flx-pd input{width:64px;height:30px;text-align:right;font-variant-numeric:tabular-nums}
.flx-pd b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.flx-cob{border-top:1px solid var(--line-2);padding-top:10px;display:flex;flex-direction:column;gap:8px}
.flx-cob-cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.flx-cob-cab b{font-size:12.5px;font-weight:600}
.flx-cob-cab span{font-size:11.5px;color:var(--ink-2);flex:1 1 280px;min-width:0}
.flx-cob-res{margin:0;font-size:12px;color:var(--ink-2)}
.flx-cob-tw{overflow-x:auto;max-width:100%}
.flx-cob-t{border-collapse:collapse;width:100%;font-size:12px}
.flx-cob-t th{font-size:11px;font-weight:600;color:var(--ink-3);text-align:left;padding:5px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.flx-cob-t td{padding:6px 8px;border-bottom:1px solid var(--line-2);vertical-align:top}
.flx-cob-t .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.flx-cob-t td small{display:block;font-size:11px;color:var(--ink-2);margin-top:3px;max-width:420px}
/* o sistema do fluxograma no painel da etapa Frigorígena: um trecho por linha */
.flx-t{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--line-2)}
.flx-t:last-child{border-bottom:0}
.flx-t .tx{display:flex;flex-direction:column;min-width:0;flex:1}
.flx-t .tx b{font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flx-t .tx small{font-size:10.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flx-t em{font-style:normal;color:var(--warn)}
.flx-t .n{font-size:11.5px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.flx-t .n.warn{color:var(--warn)}
.flx-t.falta .tx b,.flx-t.falta .n{color:var(--ink-3)}
.flx-t span.pp-icob{visibility:hidden}
/* rede frigorígena: Editar pontos (04/11/2026), as alças da caneta do Figma */
.fp-pt{fill:#fff;stroke:#0d99ff;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.fp-pt.der{stroke:#3f4a50}
.fp-pt.on{stroke-width:2.6}
.fp-pt.sel{fill:#0d99ff;stroke:#fff;stroke-width:1.5}
.fp-meio{fill:#fff;stroke:#0d99ff;stroke-width:1.2;vector-effect:non-scaling-stroke;opacity:.85;pointer-events:none}
.fp-meio.on{fill:#0d99ff;opacity:1}
.fp-sel{stroke:#0d99ff;stroke-width:5;opacity:.45;vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:none}
.fp-hover{stroke:#0d99ff;stroke-width:2.4;opacity:.8;vector-effect:non-scaling-stroke;stroke-linecap:round;pointer-events:none}
.fp-cota rect{fill:#0d99ff}
.cp-cor{display:flex;align-items:center;gap:8px}
.cp-cor input[type=color]{width:38px;height:26px;padding:0 2px;border:1px solid var(--line);border-radius:6px;background:var(--card);cursor:pointer}
/* fluxograma × planta (04/11/2026): a folha do relatório ao lado da planta */
.flx-pane{flex:0 0 42%;min-width:320px;display:flex;flex-direction:column;border-left:1px solid var(--line);background:var(--card);min-height:0}
.flx-pane[hidden]{display:none}
.fxp-cab{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-bottom:1px solid var(--line);min-height:46px}
.fxp-t{display:flex;flex-direction:column;min-width:0;flex:1}
.fxp-t b{font-size:13px;line-height:1.2}
.fxp-t small{font-size:11px;color:var(--mut,#6b7378);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxp-sis{height:30px;border:1px solid var(--line);border-radius:7px;background:var(--card);color:var(--ink);font:500 12.5px Poppins,sans-serif;padding:0 6px;max-width:170px}
.fxp-vista{flex:1;position:relative;min-height:0;overflow:hidden;background:#dfe4e2;cursor:grab;touch-action:none}
.fxp-vista.pan{cursor:grabbing}
.fxp-vista.sobre:not(.pan){cursor:pointer}
.fxp-cv{position:absolute;inset:0;width:100%;height:100%;display:block}
.fxp-msg{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:13px;color:#4a5458;text-align:center;max-width:80%;pointer-events:none}
.fxp-msg:empty{display:none}
.fxp-leg{position:absolute;left:10px;bottom:10px;display:flex;gap:10px;padding:5px 10px;border-radius:8px;background:rgba(255,255,255,.92);box-shadow:0 1px 4px rgba(0,0,0,.12);font-size:11.5px;color:#30393d;pointer-events:none}
.fxp-leg:empty{display:none}
.fxp-leg span{display:flex;align-items:center;gap:5px}
.fxp-leg i{display:inline-block;width:16px;height:4px;border-radius:2px}
.fxp-leg i.tr{height:0;border-top:2.5px dashed;border-radius:0}
.cz-abre{width:100%;justify-content:center;margin-bottom:8px}
.cz-it{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:2px 8px;width:100%;text-align:left;padding:8px 9px;margin:0 0 6px;border:1px solid var(--line);border-radius:8px;background:var(--card);cursor:pointer;font:inherit;color:inherit}
.cz-it:hover{border-color:#f0a54a}
.cz-it.on{border-color:#f08c00;box-shadow:0 0 0 2px rgba(240,140,0,.18)}
.cz-ti{display:flex;flex-direction:column;min-width:0}
.cz-ti b{font-size:12.5px}
.cz-ti small{font-size:11.5px;color:var(--mut,#6b7378);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cz-v{grid-column:1/2;display:flex;gap:10px;font-size:11.5px;color:var(--mut,#6b7378)}
.cz-v b{color:var(--ink);font-weight:600}
.cz-it .orc-tag{grid-column:2;grid-row:1/3;align-self:center}
.q2.bit small.de{grid-column:1 / 3;display:block;font-size:10.5px;color:var(--mut,#6b7378);margin-top:3px;line-height:1.3;font-weight:400}
/* o fluxograma montado pela planta (04/11/2026) */
.flx-monta{display:flex;align-items:center;gap:14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.flx-monta .cfo-t{flex:1}
.fg-veu{position:fixed;inset:0;z-index:300;background:rgba(14,22,24,.55);display:flex;align-items:center;justify-content:center;padding:24px}
.fg-caixa{width:min(1280px,100%);height:100%;background:var(--card,#fff);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 18px 50px rgba(0,0,0,.3)}
.fg-cab{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}
.fg-t{flex:1;display:flex;flex-direction:column;min-width:0}
.fg-t b{font-size:15px}
.fg-t small{font-size:12px;color:var(--mut,#6b7378)}
.fg-folhas{flex:1;overflow:auto;padding:18px;background:#dfe4e2;display:flex;flex-direction:column;gap:18px;align-items:center}
.fg-folha{position:relative;width:100%;max-width:1200px;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.15);flex:none}
.fg-folha svg{display:block;width:100%;height:100%}
.fg-folha span{position:absolute;right:10px;top:-16px;font-size:11px;color:#4a5458}
.fg-folha .fg-ver{position:absolute;right:15%;top:12px}
/* as divisórias entre a planta, a folha do fluxograma e o painel (04/11/2026): arrastar muda o tamanho */
.divisor{flex:none;width:7px;margin:0 -3px;position:relative;z-index:8;cursor:col-resize;touch-action:none}
.divisor[hidden]{display:none}
.divisor::after{content:"";position:absolute;left:2.5px;top:0;bottom:0;width:2px;border-radius:2px;background:transparent;transition:background .12s}
.divisor:hover::after,.divisor.ativo::after{background:var(--teal-2,#0b6f6f)}
body.arrastando-div,body.arrastando-div *{cursor:col-resize !important;user-select:none !important}
.ed-meio.fxp-max .stage,.ed-meio.fxp-max .divisor[data-div=flx]{flex:0 0 0 !important;min-width:0 !important;width:0;overflow:hidden;border:0}
.ed-meio.fxp-max .flx-pane{flex:1 1 auto !important}
.fxp-cab .icobtn[aria-pressed=true]{background:var(--sunk);color:var(--teal-2)}
/* a barra de ferramentas na planta estreita (o fluxograma aberto ao lado): botões menores, sem o atalho embaixo */
.stage{container-type:inline-size}
@container (max-width:620px){.ferramentas{gap:1px;padding:4px}.ferramentas button{width:36px;height:38px}.ferramentas button small{display:none}.ferramentas .sep{margin:0 2px;height:24px}}
/* o bloco do fluxograma na página da obra, refeito (04/11/2026): recolhe, as ferramentas lado a lado e a cobertura que fecha */
.flx.recolhido{padding-top:10px;padding-bottom:10px}
.flx-cab{gap:12px}
.flx-rec{width:28px;height:28px;flex:none;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--ink-2);cursor:pointer;margin-left:-6px}
.flx-rec:hover{background:var(--sunk)}
.flx-rec svg{transform:rotate(90deg);transition:transform .15s}
.flx-rec[aria-expanded=false] svg{transform:rotate(0deg)}
.flx-acoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px}
.flx-acao{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line-2);border-radius:8px;background:var(--sunk,#f6f7f6)}
.flx-acao .cfo-t{flex:1;min-width:0}
.flx-acao .cfo-t b{font-size:12.5px}
.flx-acao .cfo-t span{font-size:11.5px}
.flx-acao .btn{flex:none}
.flx-cob{border:1px solid var(--line);border-radius:8px;padding:10px 12px 12px;gap:10px;background:var(--card)}
.cob-cab{display:flex;align-items:center;gap:10px}
.cob-cab b{font-size:13px;font-weight:600}
.cob-cab small{font-size:11.5px;color:var(--ink-3);flex:1;min-width:0}
.cob-cab small .lk-t{margin:0;font-size:11.5px}
.cob-chips{display:flex;flex-wrap:wrap;gap:6px}
.cob-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:14px;border:1px solid var(--line);background:var(--card);font:500 12px Poppins,sans-serif;color:var(--ink-2);cursor:pointer}
.cob-chip b{font-size:13px;font-weight:700;font-variant-numeric:tabular-nums}
.cob-chip.ok b{color:var(--ok)}.cob-chip.warn b{color:var(--warn)}.cob-chip.neu b{color:var(--ink-2)}
.cob-chip:hover{border-color:var(--ink-3)}
.cob-chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:#fff}
.cob-chip[aria-pressed=true] b{color:#fff}
.flx-cob-t td{vertical-align:middle}
.flx-cob-t td > small{display:block;font-size:10.5px;color:var(--ink-3);margin-top:1px}
.flx-cob-t tbody tr:hover td{background:var(--sunk,#f6f7f6)}
.cob-cond{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;white-space:nowrap}
.cob-cond svg{color:var(--ok)}
.cob-cond.dif{color:var(--warn);font-weight:600;flex-wrap:wrap}
.cob-cond.dif svg{color:var(--warn)}
.cob-cond.dif small{flex-basis:100%;font-weight:400;color:var(--ink-3);font-size:10.5px;margin:0}
.cob-dif{display:inline-flex;flex-direction:column;align-items:flex-end;font-weight:600}
.cob-dif.ok{color:var(--ok)}.cob-dif.warn{color:var(--warn)}
.cob-dif small{font-weight:400;font-size:10.5px;color:var(--ink-3)}
.cob-falta summary{cursor:pointer;font-size:12px;color:var(--ink-2);padding:4px 0;user-select:none}
.cob-falta summary:hover{color:var(--ink)}
.cob-falta .flx-cob-t td{color:var(--ink-2)}
.cob-fora{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:12px;padding-top:8px;border-top:1px solid var(--line-2)}
.cob-fora b{font-weight:600;font-size:12px}
.cob-fora span{padding:2px 8px;border-radius:5px;background:var(--sunk-2);font-variant-numeric:tabular-nums}
.cob-fora small{color:var(--ink-3);font-size:11px}
.cob-aviso{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--warn);background:var(--warn-bg);padding:7px 10px;border-radius:6px}
.cz-leg{display:flex;flex-wrap:wrap;gap:6px 12px;margin-top:10px;font-size:11.5px;color:var(--ink-2)}
.cz-leg span{display:flex;align-items:center;gap:5px}
.cz-leg i{display:inline-block;width:16px;height:4px;border-radius:2px}
.cz-leg i.tr{height:0;border-top:2.5px dashed;border-radius:0}
/* a folha do fluxograma estreita: o cabeçalho fica só com o sistema e os botões */
.flx-pane{container-type:inline-size}
@container (max-width:430px){.fxp-t small,.fxp-cab .orc-tag{display:none}.fxp-sis{max-width:120px}.fxp-leg{font-size:10.5px;gap:6px;padding:4px 8px}}
