/* MarcenariaCerta · área do cliente. Camada por cima de /neg.css e /ds.css (tokens, fontes, botões). Ver ../DESIGN.md. */
[hidden]{display:none!important}
body.neg{background:var(--bg);color:var(--ink);font:16px/1.55 var(--f-txt);overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.neg::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(50% 40% at 90% -5%,color-mix(in srgb,var(--lapis) 16%,transparent),transparent 70%),
  repeating-linear-gradient(90deg,transparent 0 79px,color-mix(in srgb,var(--line) 45%,transparent) 79px 80px)}
#app{max-width:1120px;padding:0 20px 96px}
a{color:var(--brand)}
h1,h2,h3{font-family:var(--f-disp);font-weight:400;letter-spacing:-.02em;font-variation-settings:"opsz" 72}
.mut{color:var(--mut)}
.num,.moeda{font-variant-numeric:tabular-nums}
::placeholder{color:var(--mut);opacity:.7}

/* cartões, campos, botões */
.card,.resumo div,.tabela-wrap,.aba{background:var(--sup);border-color:var(--line);color:var(--ink)}
.card{border-radius:var(--r2);box-shadow:var(--sh1);padding:clamp(16px,2.2vw,26px)}
.card h3{font-size:1.45rem;margin-bottom:.4em}
input,select,textarea{background:var(--bg);color:var(--ink);border:1px solid var(--line2);border-radius:11px;font:500 16px var(--f-txt);transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:var(--mut)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-soft)}
input[type=checkbox],input[type=radio]{accent-color:var(--brand);width:20px;height:20px}
.campo label,.campo-peq label{font:500 11.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.campo small{color:var(--mut)}
.btn{font:700 15.5px/1.1 var(--f-txt);border-radius:11px}
.btn.sec{background:var(--sup);color:var(--ink);border:1px solid var(--line2);box-shadow:none}
.btn.sec:hover{background:var(--sup2)}
.btn.perigo{background:var(--sup);color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 55%,transparent);box-shadow:none}
.btn.perigo:hover{background:var(--bad-bg)}
.btn.fantasma{background:transparent;color:var(--brand);border:0;padding-inline:8px;min-height:38px;box-shadow:none}
.btn.peq{font-size:14px}
.btn:disabled{opacity:.55;transform:none;filter:none}
.tag{background:var(--sup2);color:var(--mut);font:500 11.5px var(--f-mono);letter-spacing:.03em;padding:3px 9px}
.tag.ok{background:var(--ok-bg);color:var(--ok)}.tag.aviso{background:var(--warn-bg);color:var(--warn)}.tag.nao{background:var(--bad-bg);color:var(--bad)}.tag.info{background:var(--info-bg);color:var(--info)}
.faixa-assinar{background:var(--warn-bg);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);color:var(--ink);border-radius:var(--r1);margin:14px 0 0}
th{background:var(--sup2);color:var(--mut);font:500 11px var(--f-mono);letter-spacing:.07em}th,td{border-color:var(--line)}
td.num,th.num,td[data-r]{font-variant-numeric:tabular-nums}
tbody tr{transition:background .12s}tbody tr:hover{background:color-mix(in srgb,var(--sup2) 55%,transparent)}
.tabela-wrap{border-radius:var(--r2);box-shadow:var(--sh1)}
pre.texto{background:var(--sup2);border-radius:var(--r1)}
hr.sep,.sep{height:1px;background:var(--line);margin:18px 0;border:0}

/* topo e abas */
.topo{border-bottom:0;padding:16px 0 10px}
.topo strong{font:600 1.3rem var(--f-disp);font-variation-settings:"opsz" 36;color:var(--ink);display:inline-flex;align-items:center;gap:10px}
.topo strong::before,.card.entrar h1::before{content:"";width:32px;height:32px;flex:none;background:var(--brand);border-radius:9px;-webkit-mask:var(--mk) center/contain no-repeat;mask:var(--mk) center/contain no-repeat;
  --mk:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34'%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M5 0h24a5 5 0 0 1 5 5v24a5 5 0 0 1-5 5H5a5 5 0 0 1-5-5V5a5 5 0 0 1 5-5Zm3 8v4h18V8H8Zm0 7v4h12v-4H8Zm0 7v4h15v-4H8Z'/%3E%3C/svg%3E")}
.topo .mut{font:500 12px var(--f-mono);letter-spacing:.04em}
.abas{position:sticky;top:0;z-index:20;display:flex;gap:2px;margin:0 -20px;padding:0 20px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line);scroll-snap-type:x proximity}
.aba{border:0;border-radius:0;background:transparent;color:var(--mut);font:600 14.5px var(--f-txt);padding:12px 14px;min-height:48px;position:relative;display:inline-flex;align-items:center;gap:8px;scroll-snap-align:start;transition:color .15s}
.aba:hover{color:var(--ink);background:transparent}
.aba::before{content:"";width:17px;height:17px;flex:none;background:currentColor;opacity:.8;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.aba::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--brand);border-radius:2px 2px 0 0;transform:scaleX(0);transition:transform .25s}
.aba.on{background:transparent;border:0;color:var(--ink)}.aba.on::after{transform:scaleX(1)}.aba.on::before{color:var(--brand);opacity:1}
.aba:nth-child(1){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 14a7 7 0 1 1 14 0'/%3E%3Cpath d='M10 14l3-4'/%3E%3Cpath d='M3 17h14'/%3E%3C/svg%3E")}
.aba:nth-child(2){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 2.5h7l3.5 3.5v11.5H5z'/%3E%3Cpath d='M12 2.5V6h3.5M7.5 10h5M7.5 13.5h5'/%3E%3C/svg%3E")}
.aba:nth-child(3){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 7.5L10 4l7.5 3.5L10 11z'/%3E%3Cpath d='M2.5 11L10 14.5 17.5 11M2.5 14.5L10 18l7.5-3.5'/%3E%3C/svg%3E")}
.aba:nth-child(4){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15.5 7A6 6 0 0 0 4.7 6M4.5 13a6 6 0 0 0 10.8 1'/%3E%3Cpath d='M15.5 2.5V7H11M4.5 17.5V13H9'/%3E%3C/svg%3E")}
.aba:nth-child(5){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 3.5h2.5l2 9h8l1.8-6.5H5.6'/%3E%3Ccircle cx='8' cy='16' r='1.2'/%3E%3Ccircle cx='14.5' cy='16' r='1.2'/%3E%3C/svg%3E")}
.aba:nth-child(6){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h8M15 6h2M3 14h2M9 14h8'/%3E%3Ccircle cx='13' cy='6' r='2'/%3E%3Ccircle cx='7' cy='14' r='2'/%3E%3C/svg%3E")}
.aba:nth-child(7){--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='15' height='11' rx='2'/%3E%3Cpath d='M2.5 8.5h15M5.5 12.5h3'/%3E%3C/svg%3E")}
.conteudo{padding-top:26px;animation:entra .35s cubic-bezier(.2,.7,.2,1)}
@keyframes entra{from{opacity:0;transform:translateY(8px)}}

/* título de página com cota */
.titulo-pg{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:2px 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line);position:relative}
.titulo-pg::after{content:"";position:absolute;left:0;bottom:-1px;width:56px;height:3px;background:var(--brand);border-radius:2px}
.titulo-pg h2{margin:0;font-size:clamp(1.7rem,3vw,2.3rem);font-weight:400;font-variation-settings:"opsz" 144;letter-spacing:-.03em;line-height:1.05}
.conteudo>.titulo-pg:not(:first-child){margin-top:34px}

/* KPIs */
.kpis{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0 0 22px}
.kpi{background:var(--sup);border:1px solid var(--line);border-radius:var(--r2);padding:18px 20px;box-shadow:var(--sh1);position:relative;overflow:hidden}
.kpi small{display:block;color:var(--mut);font:500 11px var(--f-mono);letter-spacing:.07em;text-transform:uppercase}
.kpi b{display:block;font:300 clamp(2rem,3.4vw,2.7rem)/1.05 var(--f-disp);font-variation-settings:"opsz" 144;letter-spacing:-.035em;margin-top:8px;font-variant-numeric:tabular-nums}
.kpi span{display:block;margin-top:6px;font-size:.86rem;color:var(--mut)}
.kpi.alerta{border-color:color-mix(in srgb,var(--warn) 55%,var(--line));background:linear-gradient(0deg,var(--warn-bg),var(--sup) 85%)}
.kpi.alerta b{color:var(--bad)}
.kpi.alerta::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--bad)}

/* listas */
.lista{display:grid;gap:10px}
.item{display:grid;gap:10px 16px;grid-template-columns:1fr auto;align-items:center;background:var(--sup);border:1px solid var(--line);border-radius:var(--r2);padding:14px 18px;box-shadow:var(--sh1);position:relative;transition:border-color .2s,box-shadow .2s,transform .2s}
.item:hover{border-color:var(--line2);box-shadow:var(--sh2);transform:translateY(-1px)}
.item h3{margin:0;font:700 1rem/1.3 var(--f-txt);letter-spacing:0}
.item .sub{color:var(--mut);font-size:.88rem;margin-top:2px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.item .lado{text-align:right;font-variant-numeric:tabular-nums}
.item .lado b{font:600 1.02rem var(--f-mono);letter-spacing:-.01em}
.item button.corpo{all:unset;cursor:pointer;display:block;min-width:0}
.item button.corpo:focus-visible{outline:3px solid var(--focus);outline-offset:4px;border-radius:6px}
.item.def{border-color:color-mix(in srgb,var(--warn) 60%,var(--line));background:linear-gradient(0deg,color-mix(in srgb,var(--warn-bg) 55%,var(--sup)),var(--sup) 80%)}
.item.def::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:0 3px 3px 0;background:var(--warn)}
.def-linha{grid-column:1/-1;display:grid;gap:12px;border-top:1px dashed var(--line2);padding-top:12px}
.def-txt{font-size:.93rem;line-height:1.55}
.def-txt b{font-variant-numeric:tabular-nums}
.ruim-txt{color:var(--bad);font-weight:700}.ok-txt{color:var(--ok);font-weight:700}.aviso-txt{color:var(--warn);font-weight:700}
.regua{position:relative;height:10px;border-radius:99px;background:var(--sup2);margin:10px 0 3px;overflow:visible}
.regua i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--ok);transition:width 1s cubic-bezier(.2,.7,.2,1)}
.regua i.ruim{background:linear-gradient(90deg,var(--warn),var(--bad))}
.regua em{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--ink);opacity:.6}
.regua-leg{display:flex;justify-content:space-between;font:500 11.5px var(--f-mono);color:var(--mut)}
.vazio{color:var(--mut);padding:10px 0}
.vazio-bonito{text-align:center;padding:clamp(28px,5vw,52px) 20px;border:1px dashed var(--line2);border-radius:var(--r3);background:color-mix(in srgb,var(--sup) 70%,transparent)}
.vazio-bonito svg{width:84px;height:84px;margin:0 auto 14px;display:block;color:var(--brand);padding:20px;border-radius:50%;background:var(--brand-soft)}
.vazio-bonito h3{margin:0 0 6px;font-size:1.7rem}
.vazio-bonito p{margin:0 auto 16px;max-width:46ch;color:var(--mut)}
.passos-ini{list-style:none;margin:20px auto 0;padding:0;display:grid;gap:10px;text-align:left;max-width:640px}
.passos-ini li{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r2);background:var(--sup)}
.passos-ini .n{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 13px var(--f-mono);background:var(--brand-soft);color:var(--brand)}
.passos-ini li.feito .n{background:var(--ok);color:#fff}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.chip{border:1px solid var(--line2);background:var(--sup);color:var(--ink);border-radius:999px;padding:8px 15px;font:600 14px var(--f-txt);cursor:pointer;min-height:44px;transition:background .15s,border-color .15s}
.chip:hover{background:var(--sup2)}
.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.busca{max-width:340px}
.grade2{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.campo-peq{display:flex;flex-direction:column;gap:4px}
.barra{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* editor de orçamento */
.editor{display:grid;gap:18px;grid-template-columns:minmax(0,1fr) 340px;align-items:start}
.movel{background:var(--sup);border:1px solid var(--line);border-radius:var(--r2);padding:16px;margin:0 0 14px;box-shadow:var(--sh1)}
.movel-topo{display:grid;grid-template-columns:1fr 84px auto;gap:8px;align-items:end;margin-bottom:12px}
.mlinha{display:grid;gap:6px;grid-template-columns:minmax(0,1fr) 92px 78px 96px 38px;align-items:center;padding:7px 0;border-top:1px dashed var(--line2)}
.mlinha .cst{text-align:right;font:600 14px var(--f-mono)}
.mlinha .x{min-height:38px;width:38px;padding:0}
.resumo-lado{position:sticky;top:70px;display:grid;gap:12px}
.total-box{background:var(--ink);color:var(--bg);border-radius:var(--r2);padding:20px;box-shadow:var(--sh2)}
.total-box .linha-t{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-variant-numeric:tabular-nums;font-size:.95rem}
.total-box .grande{font:300 2.3rem/1.05 var(--f-disp);font-variation-settings:"opsz" 144;letter-spacing:-.035em;color:var(--lapis)}
.erro-inline{background:var(--bad-bg);color:var(--bad);border-radius:var(--r1);padding:10px 12px;font-size:.92rem}
.dica{background:var(--info-bg);color:var(--info);border-radius:var(--r1);padding:10px 12px;font-size:.9rem}
.aviso-box{background:var(--warn-bg);color:var(--ink);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);border-radius:var(--r1);padding:10px 12px;font-size:.92rem}

/* revisão de preços */
.rev{display:grid;gap:10px}
.rev-item{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;background:var(--sup);border:1px solid var(--line);border-radius:var(--r2);padding:14px;box-shadow:var(--sh1)}
.rev-item.off{opacity:.55}
.rev-corpo{display:grid;gap:8px;min-width:0}
.rev-linha{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:12px;overflow:hidden;background:var(--sup);padding:3px;gap:2px}
.seg button{border:0;background:transparent;color:var(--ink);font:600 14.5px var(--f-txt);padding:9px 15px;min-height:44px;cursor:pointer;border-radius:9px;transition:background .15s}
.seg button:hover{background:var(--sup2)}
.seg button[aria-pressed=true]{background:var(--ink);color:var(--bg)}
.spark{width:100%;max-width:260px;height:48px;display:block}
.spark polyline{fill:none;stroke:var(--brand);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.spark circle{fill:var(--brand)}
.loja-grupo{margin:18px 0 8px;font:500 11.5px var(--f-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--mut);display:flex;gap:10px;align-items:center}
.loja-grupo::after{content:"";flex:1;height:1px;background:var(--line)}
.tabela-compra{width:100%}.tabela-compra td,.tabela-compra th{padding:10px 12px}
.imprimir-so{display:none}

/* carregando (esqueleto) */
.skel{display:grid;gap:12px}
.skel i{display:block;height:74px;border-radius:var(--r2);background:linear-gradient(100deg,var(--sup2) 30%,var(--sup) 50%,var(--sup2) 70%) 0 0/300% 100%;animation:brilho 1.4s linear infinite}
.skel i:first-child{height:38px;width:42%}
@keyframes brilho{to{background-position:-300% 0}}

/* aviso de toast: no topo, longe do chat no canto de baixo */
.neg-toast{background:var(--ink);color:var(--bg);border-radius:12px;box-shadow:var(--sh2);top:16px;bottom:auto;font-weight:600;padding:13px 20px}
.neg-toast.erro{background:var(--bad);color:#fff}
.atalhos-dica{margin:36px 0 0;color:var(--mut);font:500 11.5px var(--f-mono);letter-spacing:.03em}
.atalhos-dica kbd{font:inherit;border:1px solid var(--line2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;background:var(--sup);color:var(--ink)}
@media (hover:none){.atalhos-dica{display:none}}

/* entrar / esqueci / nova senha */
.card.entrar{max-width:440px;margin:clamp(24px,10vh,110px) auto 0;padding:clamp(24px,4vw,40px);border-radius:var(--r3);box-shadow:var(--sh2);position:relative;overflow:hidden}
.card.entrar::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,var(--brand),var(--lapis))}
.card.entrar h1{font-size:2.1rem;font-weight:400;font-variation-settings:"opsz" 144;letter-spacing:-.035em;display:flex;align-items:center;gap:12px;margin:0 0 10px;color:var(--ink)}
.card.entrar .btn{width:100%}
.card.entrar .campo{margin-bottom:14px}

/* responsivo */
@media (max-width:860px){.editor{grid-template-columns:1fr}.resumo-lado{position:static}}
@media (max-width:620px){
  #app{padding-inline:16px}.abas{margin-inline:-16px;padding-inline:16px}
  .aba{padding-inline:12px;font-size:14px}
  .mlinha{grid-template-columns:minmax(0,1fr) 1fr 1fr;grid-template-areas:"mat mat x" "modo qtd cst"}
  .mlinha>.mat{grid-area:mat}.mlinha>.x{grid-area:x}.mlinha>.modo{grid-area:modo}.mlinha>.qtd{grid-area:qtd}.mlinha>.cst{grid-area:cst}
  .movel-topo{grid-template-columns:1fr 80px}.movel-topo .barra{grid-column:1/-1}
  .item{grid-template-columns:1fr}.item .lado{text-align:left}
  .neg-toast{width:calc(100vw - 32px);text-align:center}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media print{
  body.neg{background:#fff;color:#000}body.neg::before{display:none}.imprimir-so{display:block}
  .topo,.abas,.faixa-assinar,.btn,.neg-toast,.chips,.seg,.nao-imprimir,.atalhos-dica{display:none!important}
  .card,.item,.movel{box-shadow:none;border-color:#bbb;background:#fff}
}
.topo>div:first-child{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.titulo-pg .barra{flex-wrap:wrap;justify-content:flex-end}
.titulo-pg .busca{flex:1 1 220px;min-width:0}

/* =====================================================================
   v2 · identidade gráfica do painel (Paulo, 02/11/2026): cabeçalho de marca com veio de madeira e régua,
   banner com foto, KPIs com ícone, gráficos SVG/CSS, listas em cartões, ilustrações de estado vazio,
   navegação inferior no celular. Só CSS + classes novas; nenhuma classe antiga mudou de função.
   ===================================================================== */
:root{--grao:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='240'%3E%3Cfilter id='w' x='0' y='0' width='100%25' height='100%25'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.004 .22' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .75 0 0 0 0 .55 0 0 0 .9 -.28'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23w)'/%3E%3C/svg%3E");
  --nav-h:0px}

/* cabeçalho de marca */
.topo{position:relative;isolation:isolate;overflow:hidden;margin:16px 0 0;padding:24px 28px 40px;border:0;border-radius:var(--r3);color:#f2e9dc;
  background:radial-gradient(60% 120% at 100% 0,rgba(226,167,46,.22),transparent 60%),linear-gradient(135deg,#2f1f13,#150e08 75%);box-shadow:var(--sh2)}
.topo::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--grao);opacity:.55;mix-blend-mode:soft-light}
.topo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:22px;z-index:-1;opacity:.55;
  background:repeating-linear-gradient(90deg,#f2e9dc 0 1px,transparent 1px 10px) 0 100%/100% 9px no-repeat,repeating-linear-gradient(90deg,#f2e9dc 0 1.5px,transparent 1.5px 50px) 0 100%/100% 18px no-repeat}
.topo strong{color:#fff7ec;font-size:1.55rem;font-variation-settings:"opsz" 72}
.topo strong::before{background:var(--lapis);width:36px;height:36px}
.topo .mut{color:rgba(242,233,220,.72);font:500 11.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase}
.topo .btn.sec{background:rgba(255,255,255,.08);color:#f2e9dc;border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.topo .btn.sec:hover{background:rgba(255,255,255,.18)}

/* abas */
.abas{margin:8px -20px 0;border-bottom:1px solid var(--line)}
.aba{border-radius:12px 12px 0 0}
.aba:hover{background:color-mix(in srgb,var(--sup2) 60%,transparent)}
.conteudo{padding-top:24px}

/* banner do painel */
.hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:flex-end;min-height:clamp(230px,28vw,300px);margin:0 0 20px;border-radius:var(--r3);color:#f2e9dc;box-shadow:var(--sh2);
  background:radial-gradient(70% 90% at 90% 0,rgba(226,167,46,.28),transparent 65%),linear-gradient(135deg,#3a2616,#170f09)}
.hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(18,11,6,.94) 10%,rgba(18,11,6,.62) 52%,rgba(18,11,6,.12))}
.hero .foto.hero-img{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:60% 50%;transform:scale(1.02);transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hero:hover .foto.hero-img{transform:scale(1.06)}
.hero-txt{padding:clamp(22px,4vw,40px);max-width:580px}
.hero .eyebrow{font:500 11.5px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lapis);margin:0 0 12px}
.hero h2{margin:0 0 10px;color:#fff7ec;font:300 clamp(1.9rem,4.2vw,3rem)/1.04 var(--f-disp);font-variation-settings:"opsz" 144;letter-spacing:-.035em}
.hero h2 em{font-style:italic;color:var(--lapis)}
.hero p{margin:0 0 20px;color:rgba(242,233,220,.82);max-width:46ch}
.hero .btn{background:var(--brand);color:#fff}
.hero .btn.sec.vidro{background:rgba(255,255,255,.1);color:#f2e9dc;border:1px solid rgba(255,255,255,.32);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.hero.alerta::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--lapis),var(--bad))}

/* KPIs com ícone */
.kpi{padding:22px 22px 20px;transition:transform .2s,box-shadow .2s}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--sh2)}
.k-mat::after,.k-neg::after,.k-def::after{content:"";position:absolute;right:16px;top:16px;width:42px;height:42px;border-radius:13px}
.kpi::before{z-index:1}
.k-mat small,.k-neg small,.k-def small{padding-right:52px}
.kpi b{font-size:clamp(2.2rem,4vw,3.3rem);margin-top:12px}
.k-def.alerta::after{background-color:var(--bad-bg)}
.kpi .ico,.kpi{--ic:none}
.k-mat::after,.k-neg::after,.k-def::after{background-color:var(--brand-soft);background-image:var(--ic);background-repeat:no-repeat;background-position:center;background-size:22px}
.k-mat{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3441a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l9-4 9 4-9 4z'/%3E%3Cpath d='M3 12l9 4 9-4M3 16l9 4 9-4'/%3E%3C/svg%3E")}
.k-neg{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3441a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3h9l4 4v14H6z'/%3E%3Cpath d='M15 3v4h4M9 12h7M9 16h7'/%3E%3C/svg%3E")}
.k-def{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ad2a1f' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 17l6-6 4 4 8-9'/%3E%3Cpath d='M15 6h6v6'/%3E%3C/svg%3E")}
:root[data-tema="escuro"] .k-mat,:root[data-tema="escuro"] .k-neg{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23e8925a' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l9-4 9 4-9 4z'/%3E%3Cpath d='M3 12l9 4 9-4M3 16l9 4 9-4'/%3E%3C/svg%3E")}

/* gráficos */
.panorama{display:grid;gap:14px;grid-template-columns:minmax(0,5fr) minmax(0,6fr);margin:0 0 8px}
.graf h3{font-size:1.35rem;margin:10px 0 14px}
.rosca-box{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.rosca-wrap{position:relative;width:148px;height:148px;flex:none}
.rosca{width:100%;height:100%;transform:rotate(-90deg)}
.rosca circle{fill:none;stroke-width:13}
.rosca-base{stroke:var(--sup2)}
.rosca-seg{stroke-linecap:butt;animation:desenha 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes desenha{from{stroke-dasharray:0 240!important}}
.s-aprovado{stroke:var(--ok);background:var(--ok)}.s-enviado{stroke:var(--info);background:var(--info)}.s-rascunho{stroke:var(--line2);background:var(--line2)}.s-perdido{stroke:var(--bad);background:var(--bad)}
.rosca-c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.rosca-c b{font:300 2.5rem/1 var(--f-disp);font-variation-settings:"opsz" 144;letter-spacing:-.03em}
.rosca-c span{font:500 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.leg{list-style:none;margin:0;padding:0;display:grid;gap:9px;flex:1;min-width:150px}
.leg li{display:flex;align-items:center;gap:10px;font-size:.93rem}
.leg b{margin-left:auto;font:600 14px var(--f-mono)}
.pt{display:inline-block;width:10px;height:10px;border-radius:3px;flex:none}
.barras{display:grid;gap:16px}
.br{display:grid;gap:6px}
.br-t{display:flex;justify-content:space-between;gap:10px;font-size:.92rem;font-weight:600}
.br-t span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.br-l{display:grid;grid-template-columns:44px 1fr 54px;align-items:center;gap:10px}
.br-l em{font:500 10.5px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);font-style:normal}
.br-l b{font:600 13px var(--f-mono);text-align:right}
.trilho{display:block;height:10px;border-radius:99px;background:var(--sup2);overflow:hidden}
.trilho i{display:block;height:100%;border-radius:99px;animation:cresce 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes cresce{from{width:0!important}}
.trilho i.env{background:var(--line2)}
.trilho i.hoje{background:linear-gradient(90deg,var(--warn),var(--bad))}
.graf-ok{display:grid;justify-items:center;text-align:center;gap:4px;color:var(--mut)}
.graf-ok .il{width:150px}.graf-ok p{margin:0;max-width:34ch;font-size:.92rem}
.vbar{display:block;width:90px;height:5px;border-radius:9px;background:var(--sup2);margin:8px 0 0 auto;overflow:hidden}
.vbar i{display:block;height:100%;border-radius:9px;animation:cresce .9s cubic-bezier(.2,.7,.2,1) both}
.vbar.up i{background:var(--bad)}.vbar.down i{background:var(--ok)}

/* listas em cartões */
.item{padding:16px 20px 16px 22px;overflow:hidden}
.item::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--line2);border-radius:0}
.item.st-rascunho::before{background:var(--line2)}.item.st-enviado::before{background:var(--info)}.item.st-aprovado::before{background:var(--ok)}.item.st-perdido::before{background:var(--bad);opacity:.7}
.item.def::before{top:0;bottom:0;background:var(--warn);border-radius:0}
.item .corpo.com-av{display:flex;align-items:center;gap:14px}
.item .cx{display:block;min-width:0}
.av{flex:none;width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font:600 14px var(--f-mono);letter-spacing:.02em;background:var(--brand-soft);color:var(--brand-deep);
  background-repeat:no-repeat;background-position:center;background-size:24px}
.st-enviado .av{background:var(--info-bg);color:var(--info)}.st-aprovado .av{background:var(--ok-bg);color:var(--ok)}.st-perdido .av{background:var(--bad-bg);color:var(--bad)}.st-rascunho .av{background:var(--sup2);color:var(--mut)}
.av[class*="cat-"]{-webkit-mask:none;position:relative}
.av[class*="cat-"]::after{content:"";width:24px;height:24px;background:var(--brand-deep);-webkit-mask:var(--g) center/contain no-repeat;mask:var(--g) center/contain no-repeat}
.cat-chapa{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8l9-4 9 4-9 4z'/%3E%3Cpath d='M3 12l9 4 9-4M3 16l9 4 9-4'/%3E%3C/svg%3E")}
.cat-fita{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='8'/%3E%3Ccircle cx='12' cy='12' r='2.5'/%3E%3Cpath d='M20 12h2v6h-6'/%3E%3C/svg%3E")}
.cat-ferragem{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 4v6l-7 4-7-4V7z'/%3E%3Ccircle cx='12' cy='10' r='2'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E")}
.cat-acabamento{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 3h10v5H7z'/%3E%3Cpath d='M12 8v5M9 13h6v8H9z'/%3E%3C/svg%3E")}
.cat-outro{--g:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 8l8-4 8 4v8l-8 4-8-4z'/%3E%3Cpath d='M4 8l8 4 8-4M12 12v8'/%3E%3C/svg%3E")}
.tag{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:3px 10px}
.tag.ok::before,.tag.aviso::before,.tag.nao::before,.tag.info::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.item .lado b{font-size:1.1rem}
.titulo-pg h2{font-size:clamp(1.8rem,3.2vw,2.5rem)}

/* estados vazios ilustrados */
.vazio-bonito{border-style:solid;border-color:var(--line);background:linear-gradient(180deg,var(--sup),color-mix(in srgb,var(--sup2) 55%,var(--sup)));box-shadow:var(--sh1);overflow:hidden;padding-inline:20px}
.vazio-bonito svg.il{width:min(240px,72%);height:auto;margin:0 auto 6px;padding:0;border-radius:0;background:none;color:inherit}
.il .ln{stroke:var(--ink);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.il .s{fill:var(--line);opacity:.9}
.il .a{fill:var(--sup)}.il .b{fill:var(--sup2)}.il .c{fill:var(--brand-soft)}.il .d{fill:var(--lapis)}.il .e{stroke:var(--brand)}
.il .ok{fill:var(--ok)}.il .ck{stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.vazio-bonito.com-foto{padding-top:0}
.faixa-img{display:block;width:calc(100% + 40px);max-width:none;height:clamp(130px,22vw,200px);margin:0 -20px 22px;object-fit:cover;object-position:50% 40%;-webkit-mask:linear-gradient(#000 70%,transparent);mask:linear-gradient(#000 70%,transparent)}
.vazio-bonito.com-foto .il{margin-top:-46px;position:relative;filter:drop-shadow(0 8px 12px rgba(40,20,5,.25))}
.passos-ini li{transition:transform .2s,box-shadow .2s}.passos-ini li:hover{transform:translateX(3px);box-shadow:var(--sh1)}
.passos-ini .n{background:var(--brand);color:var(--brand-ink)}

/* editor: móveis numerados e resumo de preço gráfico */
.moveis{counter-reset:mv}
.movel{counter-increment:mv;position:relative;padding-top:46px;border-radius:var(--r2);overflow:hidden}
.movel::before{content:"MÓVEL " counter(mv,decimal-leading-zero);position:absolute;left:0;top:0;right:0;padding:12px 16px;font:500 11px var(--f-mono);letter-spacing:.1em;color:var(--brand);background:linear-gradient(var(--sup2),transparent);border-bottom:1px dashed var(--line2)}
.total-box{background:radial-gradient(90% 70% at 100% 0,rgba(226,167,46,.2),transparent 60%),linear-gradient(160deg,#2c1d11,#150e08);color:var(--dark-band-ink);border:1px solid rgba(255,255,255,.06)}
.total-box .grande{font-size:2.9rem;margin:2px 0 12px;color:var(--lapis)}
.total-box .mut{color:rgba(242,233,220,.7)}
.total-box .linha-t{border-top:1px dashed rgba(242,233,220,.16);padding:7px 0}
.total-box .ruim-txt{color:#ff9b90}.total-box .aviso-txt{color:#f0bd62}
.total-box .aviso-box{background:rgba(240,189,98,.14);color:#f2e9dc;border-color:rgba(240,189,98,.4)}
.pilha{display:flex;gap:3px;height:12px;margin:14px 0 8px}
.pilha i{display:block;height:100%;border-radius:4px;transition:width .5s cubic-bezier(.2,.7,.2,1)}
.p-custo{background:rgba(242,233,220,.55)}.p-imp{background:var(--brand)}.p-lucro{background:#6fcf9d}
.pilha-leg{display:flex;flex-wrap:wrap;gap:6px 14px;font:500 11px var(--f-mono);color:rgba(242,233,220,.78);margin-bottom:6px}
.pilha-leg span{display:inline-flex;align-items:center;gap:6px}
.por-movel{display:grid;gap:8px;margin-top:12px;padding-top:12px;border-top:1px dashed rgba(242,233,220,.16)}
.pm{display:grid;grid-template-columns:minmax(0,1fr) 72px auto;align-items:center;gap:10px;font-size:.84rem}
.pm span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pm .trilho{background:rgba(255,255,255,.1);height:7px}.pm .trilho i{background:var(--lapis)}
.pm b{font:600 12px var(--f-mono)}
.preco-mini{display:none}
.card h3{position:relative}

/* tabela de compras */
.tabela-wrap{overflow-x:auto}
.tabela-compra th{position:sticky;top:0}
.tabela-compra td.num,.tabela-compra th.num{white-space:nowrap}
.tabela-compra td{font-size:.95rem}
.tabela-compra tbody tr:nth-child(even){background:color-mix(in srgb,var(--sup2) 35%,transparent)}
.tabela-compra td:last-child{font-weight:700}
.loja-grupo{color:var(--brand)}

/* detalhes finos */
.btn{transition:transform .15s,filter .15s,box-shadow .15s,background .15s}
.btn:active{transform:scale(.97)}
.aviso-box,.dica,.erro-inline{border-radius:var(--r1)}
.aviso-box{border-left:4px solid var(--warn)}
.dica{border-left:4px solid var(--info)}
.seg button[aria-pressed=true]{background:var(--brand);color:var(--brand-ink)}
.chip[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}
.rev-item{transition:opacity .2s,border-color .2s}
.rev-item:not(.off){border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}
.mlinha select,.mlinha input{min-height:44px}

/* entrar: foto da oficina de um lado, cartão do outro */
#app:has(.card.entrar){position:relative;max-width:none;padding:0;min-height:100vh;display:grid;place-items:center;margin-left:min(50vw,720px);width:auto;padding-right:24px}
#app:has(.card.entrar)::before{content:"";position:fixed;left:0;top:0;bottom:0;width:min(50vw,720px);z-index:0;
  background:linear-gradient(180deg,rgba(18,11,6,.15),rgba(18,11,6,.82)),url("/img/hero-oficina.webp") 50% 40%/cover,linear-gradient(135deg,#3a2616,#150e08)}
#app:has(.card.entrar)::after{content:"Cada chapa, cada ferragem, cada hora. O preço certo antes de mandar a proposta.";position:fixed;left:clamp(24px,4vw,56px);bottom:clamp(28px,6vh,64px);width:min(40vw,520px);z-index:0;
  font:300 clamp(1.5rem,2.6vw,2.4rem)/1.12 var(--f-disp);letter-spacing:-.03em;color:#fff7ec;font-variation-settings:"opsz" 144;text-wrap:balance}
.card.entrar{position:relative;z-index:1;width:min(440px,100%);margin:0 auto!important}
.card.entrar h1{font-size:2.2rem}
@media(max-width:860px){
  #app:has(.card.entrar){margin-left:0;padding:150px 16px 32px;display:block}
  #app:has(.card.entrar)::before{position:absolute;inset:0 0 auto 0;width:auto;height:230px}
  #app:has(.card.entrar)::after{position:absolute;left:20px;right:20px;bottom:auto;top:56px;width:auto;font-size:1.45rem}
  .card.entrar{margin:0 auto!important}
  .card.entrar{position:relative}
}

/* celular: navegação inferior com ícones, cartões e tabelas reorganizados */
@media(max-width:700px){
  :root{--nav-h:62px}
  #app{padding-bottom:calc(var(--nav-h) + 44px + env(safe-area-inset-bottom))}
  .topo{margin-top:12px;padding:18px 18px 34px;border-radius:var(--r2)}
  .topo strong{font-size:1.3rem}.topo strong::before{width:30px;height:30px}
  .abas{position:fixed;top:auto;bottom:0;left:0;right:84px;margin:0;padding:4px 6px calc(4px + env(safe-area-inset-bottom));gap:0;overflow-x:auto;scrollbar-width:none;
    border:0;border-top:1px solid var(--line);border-radius:18px 18px 0 0;background:color-mix(in srgb,var(--sup) 92%,transparent);box-shadow:0 -10px 30px -18px rgba(40,20,5,.45);z-index:40}
  .abas::-webkit-scrollbar{display:none}
  .aba{flex:0 0 64px;flex-direction:column;justify-content:center;gap:3px;min-height:54px;padding:6px 2px;border-radius:12px;font-size:10px;line-height:1.1;text-align:center;white-space:normal}
  .aba::before{width:22px;height:22px}
  .aba::after{left:22%;right:22%;top:-5px;bottom:auto;height:3px;border-radius:0 0 3px 3px}
  .aba.on::before{background:var(--brand)}
  .hero{min-height:260px;align-items:flex-end}
  .hero::before{background:linear-gradient(0deg,rgba(18,11,6,.94) 22%,rgba(18,11,6,.45))}
  .hero .btn{flex:1 1 auto}
  .kpis{grid-template-columns:1fr;gap:10px}
  .kpi{padding:18px 16px}.k-mat::after,.k-neg::after,.k-def::after{width:36px;height:36px;right:12px;top:12px;background-size:19px}
  .k-mat small,.k-neg small,.k-def small{padding-right:40px}
  .panorama{grid-template-columns:1fr}
  .rosca-box{justify-content:center}
  .tabela-compra thead{display:none}
  .tabela-compra,.tabela-compra tbody{display:block}
  .tabela-compra tr{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 10px;padding:12px 14px}
  .tabela-compra td{display:block;padding:0;border:0}
  .tabela-compra td:first-child{grid-column:1/-1;font-weight:700}
  .tabela-compra td[data-l]::before{content:attr(data-l);display:block;font:500 10px var(--f-mono);letter-spacing:.07em;text-transform:uppercase;color:var(--mut)}
  .tabela-compra td.num{text-align:left}
  .preco-mini{display:flex;align-items:baseline;gap:8px;position:fixed;left:12px;right:96px;bottom:calc(var(--nav-h) + 10px + env(safe-area-inset-bottom));z-index:39;padding:9px 14px;border-radius:14px;background:linear-gradient(160deg,#2c1d11,#150e08);color:#f2e9dc;box-shadow:var(--sh2);font-size:.78rem}
  .preco-mini b{font:400 1.25rem var(--f-disp);color:var(--lapis);margin-left:auto}
  .preco-mini em{font:500 10.5px var(--f-mono);font-style:normal;opacity:.8}
  .neg-toast{top:12px}
  .rosca-wrap{width:132px;height:132px}
}
@media(max-width:380px){.pm{grid-template-columns:minmax(0,1fr) 56px auto}}
@media(max-width:700px) and (prefers-reduced-motion:no-preference){.aba.on{animation:pop .25s}@keyframes pop{50%{transform:translateY(-2px)}}}
@media print{.hero,.panorama,.preco-mini{display:none!important}.topo{background:#fff;color:#000}}
.mlinha{grid-template-columns:minmax(0,1fr) 92px 104px 96px 38px}
.resumo-lado .grade2{grid-template-columns:1fr 1fr;gap:10px}
.total-box .linha-t b{white-space:nowrap}.total-box .linha-t span{min-width:0}
@media(max-width:620px){.mlinha{grid-template-columns:minmax(0,1fr) 1fr 1fr;grid-template-areas:"mat mat x" "modo qtd cst"}}
@media(max-width:700px){body.neg:has(.abas)::after{content:"";position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));background:var(--sup);border-top:1px solid var(--line);z-index:39;pointer-events:none}}
