/* 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{width:232px;flex:none;background:var(--teal);color:#fff;display:flex;flex-direction:column;overflow-y:auto}
.menu-marca{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{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}
.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{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}

/* ---------- 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}
#lerro:empty{display:block}

/* ---------- 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 150px 150px 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) 130px 130px 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}
.sel-campo{height:28px;width:100%;border:1px solid transparent;border-radius:5px;background:var(--campo) var(--chev) no-repeat right 9px center;appearance:none;padding:0 24px 0 9px;font-size:12px;color:var(--ink)}
.sel-campo:hover{border-color:var(--line)} .sel-campo:focus{outline:none;border-color:var(--teal-2)}
/* 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)}
.rgl-e::before{content:"";position:absolute;left:87px;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-sel{height:32px}
.usl-fixo{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:500;padding-left:10px}
.usl-fixo svg{color:var(--ink-3)}
.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:67px}
  .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)}
.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}
.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.sem-borda{border-top:0}
.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 .col{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.cfg-l .col .campo-i{height:32px;min-height:0;padding:0 10px}
.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-campos{padding:14px 20px 0;display:flex;flex-direction:column;gap:8px}
.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)}
.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)}
.ok-c{width:32px;height:32px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center}
.senha-mostra{display:flex;align-items:center;gap:8px;background:var(--campo);border-radius:6px;padding:10px 12px}
.senha-mostra span{flex:1;font:700 18px var(--mono);letter-spacing:1px;user-select:all}
.lk-c{display:flex;align-items:center;gap:5px;border:0;background:transparent;font-size:11.5px;color:var(--teal-2);font-weight:500;padding:0}
.lk-c:hover{text-decoration:underline}
.nota-p{font-size:11.5px;color:var(--ink-3)}
.dlg-corpo.junto{padding:16px 20px}
.dlg-rod.p12{padding:12px 20px 16px}
.dlg-topo.p16{padding:16px 20px 0;gap:10px}
/* editar usuário: o papel que não muda (o seu) e o Excluir à esquerda */
.form-g .papel-fixo{display:flex;align-items:center;height:34px;padding:0 10px;font-size:13px;color:var(--ink)}
.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}

/* ---------- login ---------- */
/* o login (redesenho de 13/10/2026): à esquerda a ilustração em perspectiva (o PDF vira o pavimento com a rede
   de dutos), à direita o formulário. A animação da ilustração some com prefers-reduced-motion (regra geral) */
.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}
.login-form form{width:min(380px,100%);display:flex;flex-direction:column;gap:18px}
.lf-t{display:flex;flex-direction:column;gap:6px}
.lf-sup{font-size:12px;font-weight:600;color:var(--teal-2)} body.escuro .lf-sup{color:var(--mint-vivo)}
.lf-t h1{font-size:28px;letter-spacing:-.5px;line-height:1.2}
.lf-t>span:last-child{font-size:13px;color:var(--ink-2)}
.login-form label{display:flex;flex-direction:column;gap:6px;font-size:12.5px;font-weight:500;color:var(--ink-2)}
.lf-in{position:relative;display:flex;align-items:center}
.lf-in>svg{position:absolute;left:13px;color:var(--ink-3);pointer-events:none}
.login-form input{height:46px;width:100%;padding:0 12px 0 40px;border:0;border-radius:8px;background:var(--card);box-shadow:inset 0 0 0 1px var(--line);font-size:14px;color:var(--ink)}
.login-form input::placeholder{color:var(--ink-3)}
.login-form input:hover{box-shadow:inset 0 0 0 1px var(--ink-3)}
.login-form input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--teal-2)}
.login-form form:has(#lerro:not(:empty)) input{box-shadow:inset 0 0 0 1.5px var(--bad)}
.senha-w{position:relative;display:flex;align-items:center}
.senha-w input{padding-right:46px}
.olho{position:absolute;right:4px;width:38px;height:38px;border:0;border-radius:6px;background:transparent;display:grid;place-items:center;color:var(--ink-3)}
.olho:hover{background:var(--sunk);color:var(--ink)}
.lf-erro{padding:10px 12px;border-radius:8px;background:var(--bad-bg);font-size:12.5px;min-height:0}
.btn.lf-entrar{height:46px;font-size:14px;border-radius:8px;gap:8px}
.lf-sep{height:1px;background:var(--line);margin:2px 0}
.lf-dica{display:flex;gap:10px;align-items:flex-start;font-size:12px;color:var(--ink-2)}
.lf-dica svg{flex:none;color:var(--teal-2);margin-top:2px}
.lf-dica b{font-weight:600;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}
.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}
.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}
.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)}
.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)}
.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}
.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 .lk-c,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)}
.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)}
/* 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-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}}
/* os selos do card: a fila do motor e o carimbo para conferir */
.selo.fila{background:var(--sunk);color:var(--ink-2)}
.selo.fila.lendo{background:var(--teal);color:#fff}
.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.motor,.cfo-et.motor i{background:var(--sunk);color:var(--ink-3)}
.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-et.motor i{background:var(--ink-3)}
.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 70px;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) 70px}.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}
