/* ===== Complementos do site (navegação, projetos, modais, admin) ===== */
.top-inner{justify-content:space-between}
.brand{display:flex;align-items:center;gap:20px;flex-wrap:wrap;min-width:0}
.brand .logo-wrap img{height:48px}
.brand h1{font-size:1.35rem}
.nav{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.nav a,.nav button.navbtn{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:8px 14px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:700;border:1.5px solid transparent;background:none;cursor:pointer}
.nav a:hover,.nav button.navbtn:hover{background:var(--soft)}
.nav a[aria-current="page"]{border-color:var(--line);background:var(--soft);box-shadow:inset 0 -3px 0 var(--magenta)}
.user-menu{position:relative}
.user-menu .menu{position:absolute;right:0;top:calc(100% + 6px);min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.15);padding:6px;z-index:20}
.user-menu .menu button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:8px;border:0;background:none;cursor:pointer;font-weight:600}
.user-menu .menu button:hover{background:var(--soft)}
.user-menu .menu .who{padding:8px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px;font-size:.9rem;color:var(--muted)}
.user-menu .menu .who b{display:block;color:var(--ink);font-size:1rem}
.avatar{width:30px;height:30px;border-radius:50%;background:var(--purple);color:#fff;display:inline-grid;place-items:center;font-weight:800;font-size:.85rem}

.view[hidden]{display:none!important}
.wrap{max-width:1240px;margin:0 auto;padding:28px 24px 64px}
@media (max-width:980px){.wrap{padding:20px 14px 48px}}

/* faixa "editando projeto" */
.editing{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:color-mix(in srgb,var(--blue) 10%,var(--card));border:1.5px solid color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:14px;padding:12px 16px;margin:0 0 18px}
.editing b{overflow-wrap:anywhere}
.btn.primary{background:var(--magenta);border-color:var(--magenta);color:#fff}
.btn.primary:hover{filter:brightness(1.05)}
.btn.teal{background:var(--teal);border-color:var(--teal);color:#fff}
.save-btn{margin:0 16px 4px;width:calc(100% - 32px)}

/* ----- Projetos ----- */
.toolbar{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin:0 0 20px}
.toolbar .input,.toolbar .select{min-height:46px;width:auto}
.toolbar .search{flex:1 1 260px}
.toolbar .select{flex:0 0 auto;min-width:190px}
.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin:0 0 18px}
.page-title h2{font-family:var(--slab);font-size:1.8rem;margin:0;line-height:1.1}
.page-title p{margin:4px 0 0;color:var(--muted)}
.check{display:inline-flex;align-items:center;gap:8px;font-weight:600;cursor:pointer;min-height:46px}
.check input{width:20px;height:20px;accent-color:var(--magenta)}

.grid-proj{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s;text-align:left;padding:0;color:inherit}
.pcard:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.08);border-color:color-mix(in srgb,var(--magenta) 40%,var(--line))}
.pcard .thumb{aspect-ratio:4/3;background:var(--soft);display:grid;place-items:center;overflow:hidden}
.pcard .thumb img{width:100%;height:100%;object-fit:cover}
.pcard .thumb svg{width:56px;height:56px;opacity:.8}
.pcard .info{padding:14px 16px 16px;display:flex;flex-direction:column;gap:4px;flex:1}
.pcard .nome{font-weight:700;font-size:1.05rem;line-height:1.3;overflow-wrap:anywhere}
.pcard .valor{font-family:var(--slab);font-size:1.5rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--magenta);margin-top:4px}
.pcard .meta{color:var(--muted);font-size:.88rem;font-variant-numeric:tabular-nums}
.badge{display:inline-block;font-size:.75rem;font-weight:700;border-radius:999px;padding:2px 9px;background:var(--soft);color:var(--muted);vertical-align:middle}
.badge.calc{background:color-mix(in srgb,var(--teal) 16%,var(--card));color:color-mix(in srgb,var(--teal) 70%,var(--ink))}
.badge.admin{background:color-mix(in srgb,var(--purple) 16%,var(--card));color:color-mix(in srgb,var(--purple) 75%,var(--ink))}
.badge.off{background:var(--errbg);color:var(--error)}
.empty-state{text-align:center;padding:60px 20px;color:var(--muted);background:var(--card);border:1.5px dashed var(--line);border-radius:16px}
.empty-state svg{width:70px;height:70px;margin-bottom:10px}
.empty-state h3{color:var(--ink);font-family:var(--slab);font-size:1.3rem;margin:0 0 6px}

/* ----- Modal ----- */
dialog.modal{border:0;padding:0;border-radius:18px;background:var(--card);color:var(--ink);width:min(640px,calc(100% - 24px));max-height:calc(100% - 24px);box-shadow:0 20px 60px rgba(0,0,0,.3)}
dialog.modal.wide{width:min(900px,calc(100% - 24px))}
dialog.modal::backdrop{background:rgba(15,20,30,.55)}
.m-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--card);z-index:1}
.m-head h3{font-family:var(--slab);font-size:1.3rem;margin:0;overflow-wrap:anywhere}
.m-close{width:40px;height:40px;border-radius:10px;border:0;background:var(--soft);cursor:pointer;font-size:1.3rem;line-height:1;flex:none}
.m-body{padding:20px 22px}
.m-foot{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;padding:14px 22px 20px;border-top:1px solid var(--line)}
.m-body .field{margin-bottom:14px}
.m-err{border:1.5px solid var(--error);background:var(--errbg);border-radius:12px;padding:10px 14px;margin:0 0 14px;color:var(--error);font-weight:600}
.m-err[hidden]{display:none}

.detail{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
@media (max-width:720px){.detail{grid-template-columns:1fr}}
.detail .big-img{border-radius:14px;overflow:hidden;background:var(--soft);aspect-ratio:1/1;display:grid;place-items:center}
.detail .big-img img{width:100%;height:100%;object-fit:contain}
.detail .big-img svg{width:80px;height:80px}
.detail .price{background:var(--ink);color:var(--bg);border-radius:14px;padding:16px 18px;margin-bottom:14px}
.detail .price .lbl{font-size:.85rem;opacity:.8;font-weight:600}
.detail .price .big{font-family:var(--slab);font-size:2.2rem;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.detail .price .unit{opacity:.85;font-variant-numeric:tabular-nums}
.detail .obs{white-space:pre-wrap;background:var(--soft);border-radius:10px;padding:10px 12px;margin-top:10px;font-size:.94rem}
.warn{background:#FFF6D6;color:#6B4E00;border-radius:10px;padding:10px 14px;font-weight:600;font-size:.92rem;margin:0 0 12px}

/* ----- Toast ----- */
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:12px 20px;border-radius:12px;font-weight:700;box-shadow:0 10px 30px rgba(0,0,0,.25);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:100;max-width:calc(100% - 32px)}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--error);color:#fff}

/* ----- Tabelas admin ----- */
.tbl-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:16px}
table.list{width:100%;border-collapse:collapse;font-size:.95rem}
table.list th,table.list td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.list th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--soft)}
table.list tr:last-child td{border-bottom:0}
table.list td.n{text-align:right;font-variant-numeric:tabular-nums}
table.list .acts{display:flex;gap:8px;justify-content:flex-end}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 20px;border-bottom:1px solid var(--line)}
.tabs button{border:0;background:none;padding:12px 16px;font-weight:700;cursor:pointer;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--magenta)}
.edit-rows{display:flex;flex-direction:column;gap:10px}
.edit-row{display:grid;gap:10px;align-items:end;background:var(--soft);border-radius:12px;padding:12px}
.edit-row.mat{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto}
.edit-row.imp{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) auto}
@media (max-width:620px){.edit-row.mat,.edit-row.imp{grid-template-columns:1fr 1fr}.edit-row .wide{grid-column:1/-1}}
.edit-row .field label{font-size:.82rem;color:var(--muted)}
.edit-row .input{min-height:44px;padding:8px 10px}
.save-bar{position:sticky;bottom:0;background:var(--bg);padding:14px 0;display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);margin-top:10px}

/* ----- Login ----- */
.login-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:radial-gradient(circle at 15% 10%,color-mix(in srgb,var(--magenta) 10%,transparent),transparent 45%),radial-gradient(circle at 85% 90%,color-mix(in srgb,var(--blue) 12%,transparent),transparent 45%),var(--bg)}
.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 20px 50px rgba(0,0,0,.08)}
.login-card .stripe{height:6px}
.login-card .in{padding:28px 28px 30px}
.login-card .logo-wrap{display:flex;justify-content:center;margin:0 auto 18px;width:max-content}
.login-card .logo-wrap img{height:64px}
.login-card h1{font-family:var(--slab);text-align:center;font-size:1.5rem;margin:0 0 4px}
.login-card p.sub{text-align:center;color:var(--muted);margin:0 0 22px}
.login-card .field{margin-bottom:14px}
.login-card .btn-calc{min-height:56px;font-size:1.05rem;margin-top:6px}
.spin{display:inline-block;width:18px;height:18px;border:3px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}
.loading{padding:40px;text-align:center;color:var(--muted)}
.edit-row .prefix .input{padding-left:40px}
.edit-row .prefix span{left:12px}
@media (max-width:620px){
  .top-inner{padding:10px 14px;gap:8px}
  .brand{gap:8px}
  .brand .logo-wrap img{height:34px}
  .nav{gap:2px}
  .nav a,.nav button.navbtn{min-height:38px;padding:6px 10px;font-size:.92rem}
  .um-name{display:none}
  .grid-proj{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .pcard .info{padding:10px 12px 12px}
  .pcard .valor{font-size:1.2rem}
  .pcard .meta{font-size:.8rem}
  .toolbar .select{flex:1 1 auto}
  .m-foot .btn{flex:1 1 auto}
}

/* prévia da logo no modal "Minha logo" */
.marca-prev{position:relative;background:#5b6270;border-radius:14px;padding:18px}
.mp-sheet{background:#fff;color:#172230;border-radius:6px;padding:16px 18px 14px}
.mp-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.mp-head img{height:52px;width:auto;max-width:60%;object-fit:contain;object-position:left center}
.mp-t{text-align:right}
.mp-t b{display:block;font-family:var(--slab);font-size:1.3rem;letter-spacing:.04em;line-height:1}
.mp-t span{font-size:.75rem;color:#5A6576}
.mp-stripe{height:4px;border-radius:2px;margin-top:10px;background:linear-gradient(90deg,#F0206E 0 33.3%,#1597EE 33.3% 66.6%,#12B886 66.6%)}
.mp-tag{position:absolute;left:18px;bottom:-11px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700;color:var(--muted)}
.logo-hint{margin:0 16px 16px;font-size:.88rem;color:var(--muted);text-align:center}
.logo-hint button{border:0;background:none;padding:0;color:var(--blue);font-weight:700;cursor:pointer;text-decoration:underline}
.s-head img{max-width:80mm;object-fit:contain;object-position:left top}
.s-head .t{margin-left:auto}
.mp-head .mp-none{font-size:.8rem;color:#9AA3B2;border:1.5px dashed #D5DAE3;border-radius:6px;padding:14px 12px}

/* painel: cabeçalho da equipe e lista de empresas */
.equipe-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 12px}
.eq-emp{display:flex;align-items:center;gap:16px;min-width:0}
.eq-logo{width:120px;height:64px;border-radius:12px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;overflow:hidden;flex:none;color:#9AA3B2;font-size:.8rem}
.eq-logo img{max-width:100%;max-height:100%;object-fit:contain}
.eq-nome{font-family:var(--slab);font-size:1.4rem;margin:0;line-height:1.15}
.eq-sub{margin:2px 0 0;color:var(--muted);font-size:.92rem}
#eqEmpresa{min-width:260px;margin-bottom:6px}
.eq-acts{display:flex;gap:10px;flex-wrap:wrap}
.emp-cell{display:flex;align-items:center;gap:12px}
.emp-cell .mini{width:56px;height:32px;border-radius:6px;border:1px solid var(--line);background:#fff;display:grid;place-items:center;overflow:hidden;flex:none;font-size:.65rem;color:#9AA3B2}
.emp-cell .mini img{max-width:100%;max-height:100%;object-fit:contain}
.cred{background:var(--soft);border-radius:12px;padding:14px 16px;font-variant-numeric:tabular-nums}
.cred div{display:flex;justify-content:space-between;gap:12px;padding:4px 0}
.cred b{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:all}
@media (max-width:620px){#eqEmpresa{min-width:0;width:100%}.eq-logo{width:84px;height:48px}}
.s-cli{display:flex;align-items:baseline;gap:5mm;border:1px solid #E3E6EE;border-radius:3mm;padding:3mm 5mm;margin:-6px 0 6mm;font-size:10.5pt;break-inside:avoid}
.s-cli-lbl{font-size:8.5pt;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5A6576;flex:none}
.s-cli b{font-size:11.5pt}
.s-cli-sep{display:inline-block;width:1px;height:10pt;background:#C9CFDA;margin:0 3mm;vertical-align:-1pt}

/* ----- Estoque ----- */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
@media (max-width:720px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.stat span{display:block;font-size:.84rem;color:var(--muted);font-weight:600}
.stat b{font-family:var(--slab);font-size:1.5rem;font-variant-numeric:tabular-nums}
.stat.alerta{border-color:color-mix(in srgb,var(--error) 45%,var(--line));background:var(--errbg)}
.stat.alerta b{color:var(--error)}
.fil-list{display:flex;flex-direction:column;gap:10px}
.fil{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1.5fr) auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
@media (max-width:980px){.fil{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.fil-acts{grid-column:1/-1}}
@media (max-width:560px){.fil{grid-template-columns:1fr}}
.fil-id{display:flex;align-items:center;gap:12px;min-width:0}
.sw{width:30px;height:30px;border-radius:50%;background:var(--sw);border:2px solid var(--line);flex:none;box-shadow:inset 0 0 0 2px var(--card)}
.sw[data-vazio]{background:conic-gradient(#F0206E,#F5A623,#12B886,#1597EE,#6D3FD9,#F0206E)}
.fil-nome{font-weight:800;font-size:1.02rem;overflow-wrap:anywhere}
.fil-marca{color:var(--muted);font-size:.86rem}
.fil-preco{font-variant-numeric:tabular-nums;font-size:.92rem;color:var(--muted)}
.fil-preco b{font-family:var(--slab);font-size:1.25rem;color:var(--ink)}
.fil-preco span{display:block;font-size:.8rem}
.fil-qtd{font-variant-numeric:tabular-nums;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.fil-qtd b{font-size:1.08rem}
.fil-qtd span{color:var(--muted);font-size:.86rem}
.bar-est{height:7px;border-radius:4px;background:var(--soft);overflow:hidden;margin:6px 0 4px}
.bar-est i{display:block;height:100%;border-radius:4px;background:var(--teal)}
.bar-est.medio i{background:#E8A317}.bar-est.baixo i,.bar-est.zero i{background:var(--error)}
.fil-valor{font-size:.8rem;color:var(--muted)}
.fil-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cor-row{display:flex;gap:8px}
.cor-row input[type=color]{width:50px;min-width:50px;height:50px;border:1.5px solid var(--line);border-radius:12px;padding:4px;background:var(--field);cursor:pointer}
.badge.mov-entrada,.badge.mov-estorno{background:color-mix(in srgb,var(--teal) 16%,var(--card));color:color-mix(in srgb,var(--teal) 70%,var(--ink))}
.badge.mov-saida{background:color-mix(in srgb,var(--magenta) 14%,var(--card));color:color-mix(in srgb,var(--magenta) 75%,var(--ink))}

/* ----- Filamentos na calculadora ----- */
.fils{display:flex;flex-direction:column;gap:10px}
.filrow{display:grid;grid-template-columns:auto minmax(0,3fr) minmax(110px,1fr) minmax(90px,auto) auto;gap:10px;align-items:end;background:var(--soft);border-radius:12px;padding:12px}
.filrow .sw{margin-bottom:8px}
.filrow .field label{font-size:.82rem;font-weight:600;color:var(--muted);margin-bottom:4px}
.filrow .input,.filrow .select{min-height:44px;padding:8px 10px;font-size:.98rem}
.filrow .select{padding-right:34px}
.filrow .suffix .input{padding-right:30px}
.filrow .suffix span{right:10px;font-size:.82rem}
.filrow .custo{font-variant-numeric:tabular-nums;font-weight:700;padding-bottom:11px;text-align:right;white-space:nowrap}
.filrow .custo small{display:block;font-weight:500;color:var(--muted);font-size:.76rem}
.filrow .aviso{grid-column:2/-1;font-size:.82rem;color:#8A5A00;margin-top:-4px}
.filrow .aviso.erro{color:var(--error)}
.filrow > *{min-width:0}
.filrow .select{width:100%;text-overflow:ellipsis}
@media (max-width:720px){
  .filrow{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"sw sel sel" "peso peso custo" "av av av" "rm rm rm";align-items:end}
  .filrow .sw{grid-area:sw}
  .filrow .fsel{grid-area:sel}
  .filrow .field:not(.fsel){grid-area:peso}
  .filrow .custo{grid-area:custo;text-align:right}
  .filrow .aviso{grid-area:av;margin-top:0}
  .filrow .rm{grid-area:rm;justify-self:end}
}

.sw[data-tabela]{background:repeating-linear-gradient(45deg,var(--line) 0 4px,var(--soft) 4px 8px)}
.rows .row.sub{font-size:.85rem;padding-left:10px}
.rows .row.sub span:first-child{color:var(--muted)}
.rows .row.sub span:last-child{font-weight:500}
.baixa{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px}
.baixa h4{margin:0 0 6px;font-size:.95rem}
.baixa ul{margin:0 0 10px;padding-left:18px;font-size:.9rem;color:var(--muted)}
.baixa.feita{border-color:color-mix(in srgb,var(--teal) 50%,var(--line));background:color-mix(in srgb,var(--teal) 7%,var(--card))}
a.btn{text-decoration:none;color:inherit}

/* ===== Comunidade ===== */
.mw-hero{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin:0 0 18px;padding:22px 24px;border-radius:18px;
  background:linear-gradient(120deg,color-mix(in srgb,var(--magenta) 12%,var(--card)),color-mix(in srgb,var(--blue) 12%,var(--card)) 55%,color-mix(in srgb,var(--teal) 12%,var(--card)));border:1px solid var(--line)}
.mw-hero h2{font-family:var(--slab);font-size:2rem;margin:0;line-height:1.1}
.mw-hero p{margin:4px 0 0;color:var(--muted);max-width:60ch}
.mw-hero .mw-hero-n{font-weight:700;color:var(--ink)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 14px;scrollbar-width:thin}
.chip{flex:none;border:1.5px solid var(--line);background:var(--card);border-radius:999px;padding:7px 14px;font-weight:600;font-size:.9rem;cursor:pointer;white-space:nowrap}
.chip:hover{border-color:var(--magenta)}
.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.mw-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:18px}
@media (max-width:560px){.mw-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
.mw-card{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;color:inherit;text-decoration:none;transition:transform .12s,box-shadow .12s}
.mw-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.1)}
.mw-thumb{position:relative;aspect-ratio:1/1;background:var(--soft);display:grid;place-items:center;overflow:hidden}
.mw-thumb img{width:100%;height:100%;object-fit:cover}
.mw-sem svg{width:64px;height:64px;color:var(--muted);opacity:.6}
.mw-fmts{position:absolute;left:8px;top:8px;display:flex;gap:4px}
.mw-fmts span{background:rgba(23,34,48,.78);color:#fff;font-size:.7rem;font-weight:800;letter-spacing:.04em;border-radius:6px;padding:2px 6px}
.mw-preco{position:absolute;right:8px;bottom:8px;background:var(--magenta);color:#fff;font-weight:800;font-size:.86rem;border-radius:8px;padding:3px 8px;font-variant-numeric:tabular-nums}
.mw-info{padding:12px 14px 14px;display:flex;flex-direction:column;gap:8px;flex:1}
.mw-titulo{font-weight:800;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.mw-autor{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted);min-width:0}
.mw-autor span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-autor.big{font-size:.95rem;margin:4px 0 12px}
.mw-autor.big span:last-child{white-space:normal}
.mw-av{flex:none;width:26px;height:26px;border-radius:50%;background:var(--purple);color:#fff;display:grid;place-items:center;font-size:.7rem;font-weight:800}
.mw-autor.big .mw-av{width:38px;height:38px;font-size:.85rem}
.mw-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:auto;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums}
.mw-stats span{display:inline-flex;align-items:center;gap:4px}
.mw-stats svg,.mw-dl svg,.mw-like svg,.mw-arqs .teal svg{width:15px;height:15px}
.mw-stats svg path:first-child{fill:currentColor}
.mw-stats span:first-child svg path{fill:none;stroke:currentColor;stroke-width:2}
.mw-stats span.on{color:var(--magenta)}
.mw-stats span.on svg path{fill:currentColor}
.mw-tempo{margin-left:auto}

.mw-voltar{display:inline-block;margin:0 0 14px;font-weight:700;color:var(--muted);text-decoration:none}
.mw-voltar:hover{color:var(--ink)}
.mw-post{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:26px;align-items:start}
@media (max-width:900px){.mw-post{grid-template-columns:1fr}}
.mw-palco{position:relative;aspect-ratio:4/3;background:var(--soft);border-radius:18px;overflow:hidden;display:grid;place-items:center;border:1px solid var(--line)}
.mw-palco>img{width:100%;height:100%;object-fit:contain;background:var(--card)}
.mw-3d{position:absolute;inset:0;background:radial-gradient(circle at 50% 35%,var(--card),var(--soft))}
.mw-3d canvas{display:block;touch-action:none}
.mw-3d-dica,.mw-3d-dim{position:absolute;bottom:10px;font-size:.78rem;background:rgba(23,34,48,.7);color:#fff;padding:4px 10px;border-radius:999px;pointer-events:none}
.mw-3d-dica{left:10px}.mw-3d-dim{right:10px;font-variant-numeric:tabular-nums}
.mw-vazio,.mw-carregando{display:flex;flex-direction:column;align-items:center;gap:10px;color:var(--muted);text-align:center;padding:20px}
.mw-vazio svg{width:60px;height:60px;opacity:.6}
.mw-thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;padding-bottom:4px}
.mw-th{flex:none;width:76px;height:76px;border-radius:12px;border:2px solid transparent;padding:0;overflow:hidden;cursor:pointer;background:var(--soft)}
.mw-th.on{border-color:var(--magenta)}
.mw-th img{width:100%;height:100%;object-fit:cover}
.mw-th3d{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--blue);gap:2px}
.mw-th3d svg{width:30px;height:30px}.mw-th3d b{font-size:.75rem}
.mw-h{font-family:var(--slab);font-size:1.7rem;line-height:1.15;margin:8px 0 6px;overflow-wrap:anywhere}
.mw-acoes{display:flex;align-items:center;gap:14px;margin:0 0 14px}
.mw-like{gap:6px}
.mw-like svg path{fill:none;stroke:currentColor;stroke-width:2}
.mw-like.on{color:var(--magenta);border-color:var(--magenta);background:color-mix(in srgb,var(--magenta) 8%,var(--card))}
.mw-like.on svg path{fill:currentColor}
.mw-dl{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.9rem}
.mw-dados{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mw-dados div{background:var(--soft);border-radius:12px;padding:10px 12px;min-width:0}
.mw-dados span{display:block;font-size:.78rem;color:var(--muted);font-weight:600}
.mw-dados b{font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.mw-dados .destaque{background:color-mix(in srgb,var(--teal) 13%,var(--card))}
.mw-dados .destaque b{font-family:var(--slab);font-size:1.25rem}
.mw-dados small{display:block;font-size:.76rem;color:var(--muted)}
.mw-sub{font-family:var(--slab);font-size:1.15rem;margin:22px 0 10px}
.mw-arqs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.mw-arqs li{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 10px}
.mw-ext{flex:none;font-size:.7rem;font-weight:800;background:var(--ink);color:var(--bg);border-radius:6px;padding:4px 6px;min-width:42px;text-align:center}
.mw-arq-n{flex:1;min-width:0}
.mw-arq-n b{display:block;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mw-arq-n small{color:var(--muted);font-size:.78rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.mw-dono{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.mw-baixo{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);gap:26px;margin-top:10px}
@media (max-width:900px){.mw-baixo{grid-template-columns:1fr}}
.mw-desc{white-space:pre-wrap;line-height:1.6;overflow-wrap:anywhere}
.mw-tags{display:flex;gap:6px;flex-wrap:wrap;margin:12px 0}
.mw-tags span{background:var(--soft);border-radius:999px;padding:3px 10px;font-size:.84rem;color:var(--blue);font-weight:600}
.mw-com{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
.mw-com-h{font-size:.84rem;color:var(--muted)}
.mw-com-h b{color:var(--ink)}
.mw-com-t{white-space:pre-wrap;margin-top:2px;overflow-wrap:anywhere}
.mw-com-x{border:0;background:none;color:var(--error);font-size:.8rem;cursor:pointer;padding:0 0 0 6px}
.mw-comform{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.mw-comform .btn{align-self:flex-end}
.mw-form-h{font-family:var(--slab);font-size:1.05rem;margin:18px 0 8px}
.mw-form-h .sub{font-family:var(--sans);font-weight:400;font-size:.85rem;color:var(--muted)}
.mw-up-fotos{display:flex;gap:10px;flex-wrap:wrap}
.mw-up-foto,.mw-up-add{position:relative;width:96px;height:96px;border-radius:12px;overflow:hidden;flex:none}
.mw-up-foto img{width:100%;height:100%;object-fit:cover}
.mw-up-foto button{position:absolute;top:4px;right:4px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(23,34,48,.8);color:#fff;cursor:pointer;font-size:1rem;line-height:1}
.mw-capa{position:absolute;left:4px;bottom:4px;background:var(--magenta);color:#fff;font-size:.7rem;font-weight:800;border-radius:6px;padding:1px 6px}
.mw-up-add{border:2px dashed var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);font-size:1.6rem;cursor:pointer}
.mw-up-add span{font-size:.8rem}
.mw-up-add input{position:absolute;inset:0;opacity:0;cursor:pointer}
.mw-prog{position:relative;height:28px;border-radius:8px;background:var(--soft);overflow:hidden;margin-top:14px}
.mw-prog i{position:absolute;inset:0 auto 0 0;width:0;background:color-mix(in srgb,var(--teal) 55%,var(--card));transition:width .2s}
.mw-prog span{position:relative;display:block;text-align:center;line-height:28px;font-size:.85rem;font-weight:700}

/* ===== Página pública do orçamento ===== */
.orc-page{background:var(--soft)}
.orc{max-width:720px;margin:0 auto;padding:22px 16px 48px}
.orc-top{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#fff;border-radius:18px 18px 0 0;padding:18px 20px 14px;border:1px solid var(--line);border-bottom:0}
.orc-logo{max-height:56px;max-width:60%;object-fit:contain}
.orc-emp{font-family:var(--slab);font-size:1.4rem;color:#172230}
.orc-tit{text-align:right;color:#172230}
.orc-tit span{display:block;font-family:var(--slab);font-weight:700;font-size:1.3rem;letter-spacing:.05em}
.orc-tit small{color:#5A6576}
.orc-stripe{height:5px;background:linear-gradient(90deg,var(--magenta) 0 33.3%,var(--blue) 33.3% 66.6%,var(--teal) 66.6%);margin:0 0 14px;border-radius:0 0 4px 4px}
.orc-banner{background:var(--card);border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:12px;padding:12px 16px;margin:0 0 14px}
.orc-banner.aviso{border-left-color:#E8A317;background:#FFF6D6;color:#6B4E00}
.orc-banner.neutro{border-left-color:var(--muted)}
.orc-card{background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;margin:0 0 14px}
.orc-centro{text-align:center;padding:40px 20px}
.orc-centro svg{width:64px;height:64px}
.orc-centro h1{font-family:var(--slab);margin:10px 0 6px}
.orc-foto{background:#fff;aspect-ratio:4/3;display:grid;place-items:center;border-bottom:1px solid var(--line)}
.orc-foto img{width:100%;height:100%;object-fit:contain}
.orc-corpo{padding:18px 20px 20px}
.orc-para{margin:0 0 4px;color:var(--muted)}
.orc-nome{font-family:var(--slab);font-size:1.6rem;margin:0 0 12px;line-height:1.15;overflow-wrap:anywhere}
.orc-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:0}
.orc-kv dt{color:var(--muted)}
.orc-kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.orc-h2{font-family:var(--slab);font-size:1.15rem;margin:18px 0 8px}
.orc-msg{padding:16px 20px}
.orc-msg p{white-space:pre-wrap;margin:6px 0 0}
.orc-preco{display:grid;grid-template-columns:1fr 1.3fr;gap:10px;margin:0 0 14px}
.orc-preco div{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.orc-preco span{display:block;color:var(--muted);font-size:.88rem;font-weight:600}
.orc-preco b{font-family:var(--slab);font-size:1.5rem;font-variant-numeric:tabular-nums}
.orc-preco .total{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.orc-preco .total span{color:inherit;opacity:.8}
.orc-preco .total b{font-size:1.9rem}
.orc-aceite{padding:18px 20px 20px}
.orc-aceite .orc-h2{margin-top:0}
.orc-aceite .field{margin-bottom:12px}
.orc-recusar{display:block;margin:14px auto 0;border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer;font-weight:600}
.orc-rodape{text-align:center;color:var(--muted);font-size:.86rem;margin-top:18px}
.orc-track{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;margin:0 0 14px}
.orc-track h2{font-family:var(--slab);font-size:1.25rem;margin:0 0 4px}
.orc-prev{margin:0 0 12px;color:var(--muted)}
.orc-track ol{list-style:none;margin:10px 0 0;padding:0}
.orc-track li{display:flex;gap:12px;position:relative;padding:0 0 16px}
.orc-track li:not(:last-child)::before{content:"";position:absolute;left:10px;top:22px;bottom:0;width:2px;background:var(--line)}
.orc-track li.feito:not(:last-child)::before{background:var(--teal)}
.orc-track .pt{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line);background:var(--card);margin-top:1px}
.orc-track li.feito .pt{background:var(--teal);border-color:var(--teal)}
.orc-track li.atual .pt{border-color:var(--magenta);box-shadow:0 0 0 4px color-mix(in srgb,var(--magenta) 20%,transparent);background:var(--magenta)}
.orc-track li b{display:block}
.orc-track li small{color:var(--muted);font-size:.82rem}
.orc-track li p{margin:2px 0 0;font-size:.92rem}
.orc-track li:not(.feito):not(.atual){color:var(--muted)}
@media (max-width:520px){.orc-preco{grid-template-columns:1fr}.orc-nome{font-size:1.35rem}}

/* ===== Pedidos ===== */
.wrap.wide{max-width:1500px}
.nav-badge{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--magenta);color:#fff;font-size:.72rem;font-weight:800;margin-left:2px}
.ped-kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.stat.k-fila{border-top:4px solid var(--purple)}.stat.k-prod{border-top:4px solid var(--blue)}.stat.k-envio{border-top:4px solid #E8A317}.stat.k-ok{border-top:4px solid var(--teal)}
.ped-sec{font-family:var(--slab);font-size:1.15rem;margin:4px 0 10px}
.ped-aguard{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin:0 0 20px}
.ped-ag{display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--card);border:1px dashed color-mix(in srgb,var(--blue) 50%,var(--line));border-radius:12px;padding:10px 12px;cursor:pointer}
.ped-ag b{display:block;overflow-wrap:anywhere}
.ped-ag small{display:block;color:var(--muted);font-size:.8rem}
.ped-ag-acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.atraso{color:var(--error)!important;font-weight:700}
.ped-board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:14px;overflow-x:auto;padding-bottom:6px;align-items:start}
@media (max-width:1100px){.ped-board{grid-template-columns:repeat(4,minmax(260px,82vw));scroll-snap-type:x mandatory}.ped-col{scroll-snap-align:start}}
.ped-col{background:var(--soft);border-radius:16px;padding:10px;border-top:5px solid var(--c);min-height:200px;transition:background .15s,box-shadow .15s}
.ped-col.alvo{background:color-mix(in srgb,var(--c) 12%,var(--soft));box-shadow:inset 0 0 0 2px var(--c)}
.ped-col header{display:flex;justify-content:space-between;align-items:center;padding:4px 6px 10px}
.ped-col header span{background:var(--card);border-radius:999px;padding:1px 9px;font-weight:800;font-size:.85rem}
.st-fila{--c:var(--purple)}.st-prod{--c:var(--blue)}.st-envio{--c:#E8A317}.st-ok{--c:var(--teal)}.st-orc{--c:var(--blue)}.st-off{--c:var(--muted)}
.ped-lista{display:flex;flex-direction:column;gap:10px}
.ped-vazio{color:var(--muted);font-size:.88rem;text-align:center;padding:24px 8px;margin:0}
.ped{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;cursor:grab;display:flex;flex-direction:column;gap:8px}
.ped:hover{border-color:var(--c)}
.ped.arrastando{opacity:.45}
.ped-top{display:flex;gap:10px;align-items:center;min-width:0}
.ped-top img,.ped-sem{width:48px;height:48px;border-radius:8px;object-fit:cover;flex:none;background:var(--soft);display:grid;place-items:center}
.ped-sem svg{width:28px;height:28px}
.ped-txt{min-width:0}
.ped-txt b{display:block;line-height:1.25;overflow-wrap:anywhere}
.ped-txt small{color:var(--muted);font-size:.82rem}
.ped-pos{float:right;font-size:.75rem;font-weight:800;color:var(--purple);margin-left:6px}
.ped-meta{display:flex;justify-content:space-between;gap:8px;font-size:.82rem;color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap}
.ped-meta b{color:var(--ink)}
.ped-acts{display:flex;gap:6px}
.ped-acts .teal{flex:1}
.ped-acts:empty{display:none}
.ped-off{margin-top:18px}
.ped-off summary{cursor:pointer;font-weight:700;color:var(--muted);margin-bottom:10px}
.ped-h4{font-family:var(--slab);font-size:1.05rem;margin:16px 0 8px}
.ped-hist{list-style:none;margin:0;padding:0 0 0 14px;border-left:2px solid var(--line)}
.ped-hist li{margin:0 0 10px;position:relative}
.ped-hist li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--magenta)}
.ped-hist small{color:var(--muted)}
.ped-hist p{margin:2px 0 0;font-size:.9rem;white-space:pre-wrap}
.ped-etapas{display:flex;gap:6px;flex-wrap:wrap}
.badge.ped-st{background:color-mix(in srgb,var(--c) 16%,var(--card));color:color-mix(in srgb,var(--c) 75%,var(--ink))}
.env-resumo{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--soft);border-radius:10px;padding:10px 14px;margin:0 0 14px}
.env-share{display:flex;gap:10px;flex-wrap:wrap}

/* ===== Notificações ===== */
.notif{position:relative}
.navbtn.sino{position:relative;padding:8px 10px}
.navbtn.sino svg{width:24px;height:24px}
.navbtn.sino .nav-badge{position:absolute;top:2px;right:0;margin:0}
.notif-menu{width:min(380px,calc(100vw - 24px));padding:0!important;overflow:hidden}
.notif-h{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.notif-h button{border:0;background:none;color:var(--blue);font-weight:700;font-size:.84rem;cursor:pointer;padding:0;width:auto}
.notif-l{list-style:none;margin:0;padding:0;max-height:min(420px,60vh);overflow-y:auto}
.notif-l button{display:flex!important;gap:10px;align-items:flex-start;text-align:left;width:100%;border:0;border-bottom:1px solid var(--line)!important;border-radius:0!important;padding:12px 14px!important;background:none;cursor:pointer;font-weight:400!important}
.notif-l button.nova{background:color-mix(in srgb,var(--magenta) 6%,var(--card))}
.notif-l button:hover{background:var(--soft)}
.notif-l .ni{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--teal);color:#fff;font-weight:800;font-size:.85rem}
.notif-l .ni.neg{background:var(--muted)}
.notif-l .nt{min-width:0}
.notif-l .nt b{display:block;font-size:.92rem}
.notif-l .nt span{display:block;font-size:.88rem;color:var(--ink);overflow-wrap:anywhere}
.notif-l .nt small{color:var(--muted);font-size:.78rem}
.notif-l button.nova .nt b::after{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--magenta);margin-left:6px;vertical-align:1px}
.notif-vazio{padding:20px 16px;color:var(--muted);margin:0;font-size:.9rem}
.notif-ativar{display:block;width:100%;border:0!important;background:var(--soft)!important;padding:12px!important;font-weight:700!important;cursor:pointer;border-radius:0!important;text-align:center!important}
@media (max-width:620px){.notif-menu{position:fixed!important;left:12px;right:12px;top:64px!important;width:auto}}

/* ===== Orçamentos ===== */
.stat small{display:block;color:var(--muted);font-size:.78rem;font-weight:600}
.chip span{display:inline-block;min-width:20px;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--soft);color:var(--ink);font-size:.78rem}
.chip.on span{background:rgba(255,255,255,.2);color:inherit}
.orc-tab td small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.orc-tab tbody tr{cursor:pointer}
.orc-tab tbody tr:hover td{background:var(--soft)}
.orc-proj{display:flex;gap:10px;align-items:center;min-width:180px}
.orc-proj img,.orc-proj .ped-sem{width:44px;height:44px;border-radius:8px;object-fit:cover;flex:none}
.orc-tab .acts{flex-wrap:wrap}
.nav{row-gap:4px}
.tel-l{display:block;color:var(--muted);font-size:.8rem}

/* cabeçalho com muitos itens: menu rola na horizontal, sino e usuário ficam sempre à direita */
.top-inner{flex-wrap:nowrap}
.brand{flex:1 1 auto;min-width:0;flex-wrap:nowrap}
.brand .nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;min-width:0;mask-image:linear-gradient(90deg,#000 calc(100% - 24px),transparent)}
.brand .nav::-webkit-scrollbar{display:none}
.brand .nav a{white-space:nowrap;flex:none}
.user-menu{flex:none;flex-wrap:nowrap}
@media (max-width:1280px){.nav a,.nav button.navbtn{padding:8px 10px;font-size:.95rem}.um-name{display:none}}
@media (max-width:620px){.brand .logo-wrap{flex:none}}
/* cards da fila */
.ped-txt{flex:1}
.ped-pos{float:none;display:inline-block;margin:0 0 2px;background:color-mix(in srgb,var(--purple) 14%,var(--card));border-radius:6px;padding:0 6px}

/* ===== Produtos ===== */
.prod-list{display:flex;flex-direction:column;gap:10px}
.prod{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 16px}
.prod.inativo{opacity:.6}
@media (max-width:1100px){.prod{grid-template-columns:minmax(0,1fr) auto auto}.prod .fil-acts{grid-column:1/-1;justify-content:flex-start}}
@media (max-width:560px){.prod{grid-template-columns:1fr 1fr}.prod-id{grid-column:1/-1}}
.prod-id{display:flex;gap:12px;align-items:center;min-width:0}
.prod-id img,.prod-id .ped-sem{width:56px;height:56px;border-radius:10px;object-fit:cover;flex:none;background:var(--soft)}
.prod-id b{display:block;overflow-wrap:anywhere}
.prod-id small{color:var(--muted);font-size:.84rem}
.prod-lojas{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}
.loja{font-size:.7rem;font-weight:800;border-radius:6px;padding:1px 6px;color:#fff}
.loja.ml,.badge.canal-mercadolivre{background:#FFE600;color:#2D3277}
.loja.shp,.badge.canal-shopee{background:#EE4D2D;color:#fff}
.loja.tt,.badge.canal-tiktok{background:#111;color:#fff}
.badge.canal-whatsapp{background:#25D366;color:#fff}
.prod-preco b{font-family:var(--slab);font-size:1.25rem;font-variant-numeric:tabular-nums}
.prod-preco small{display:block;color:var(--muted);font-size:.8rem}
.prod-est{display:flex;flex-direction:column;align-items:flex-start}
.prod-est b{font-family:var(--slab);font-size:1.6rem;line-height:1;font-variant-numeric:tabular-nums}
.prod-est span{color:var(--muted);font-size:.82rem}
.prod-est small{margin-top:3px;font-size:.76rem;color:var(--muted)}
.prod-est.ok b{color:var(--teal)}.prod-est.baixo b{color:#C77800}.prod-est.zero b{color:var(--muted)}
.venda-prev{background:var(--soft);border-radius:12px;padding:12px 14px;line-height:1.5}
.venda-prev:empty{display:none}
.venda-prev b.ok{color:var(--teal);display:block}.venda-prev b.prod{color:var(--purple);display:block}
.int-passos{padding-left:20px;line-height:1.6}
.int-passos li{margin-bottom:8px}
.int-passos code,.int-ex code{background:var(--soft);border-radius:4px;padding:1px 5px;font-size:.88em}
.int-ex summary{cursor:pointer;font-weight:700;margin:6px 0}
.int-ex pre{background:#172230;color:#E6EDF7;border-radius:10px;padding:14px;overflow-x:auto;font-size:.85rem}
.ped-txt .badge{margin-top:3px;display:inline-block}

/* Valor cobrado editável no envio do orçamento */
.env-preco{border:1px solid var(--line);border-radius:12px;padding:10px 14px 4px;margin:0 0 14px}
.env-preco legend{font-weight:700;padding:0 6px;font-size:.95rem}
.env-preco .field{margin-bottom:8px}
.env-preco .prefix .input{padding-left:40px;font-weight:700}
.env-dif{margin:0 0 8px;font-size:.88rem;color:var(--muted)}
.env-dif.neg{color:var(--error);font-weight:600}
.linkbtn{background:none;border:0;padding:0;color:var(--blue);text-decoration:underline;cursor:pointer;font:inherit;font-weight:600}

/* Alerta de material no envio do orçamento */
.env-alerta{background:color-mix(in srgb,#E8A317 14%,var(--card));border:1px solid color-mix(in srgb,#E8A317 55%,var(--line));border-radius:12px;padding:10px 14px;margin:0 0 14px;font-size:.9rem}
.env-alerta ul{margin:6px 0;padding-left:18px}
.env-alerta li{margin:3px 0}
.env-alerta small{color:var(--muted);display:block}

/* Financeiro */
.fin-topo{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.fin-topo .input{width:auto;min-width:170px}
.fin-sug{background:var(--card);border:1px solid color-mix(in srgb,#E8A317 55%,var(--line));border-left:5px solid #E8A317;border-radius:14px;padding:12px 16px;margin:0 0 16px}
.fin-sug h3{margin:0 0 2px;font-size:1.05rem;display:flex;gap:8px;align-items:center}
.fin-sug .hint{margin:0 0 10px}
.fin-sug-l{display:grid;gap:8px}
.fin-sug-i{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.fin-sug-i small{display:block;color:var(--muted);font-size:.84rem}
.fin-v{font-variant-numeric:tabular-nums;white-space:nowrap}
.fin-tab td small{display:block;color:var(--muted);font-size:.82rem}
.fin-tab tr.clic{cursor:pointer}
.fin-tab tr.clic:hover td{background:var(--soft)}
#finAbas{margin-top:4px}
@media (max-width:640px){
  .fin-sug-i{grid-template-columns:1fr auto}
  .fin-sug-i .acts{grid-column:1/-1}
  .fin-topo{width:100%}.fin-topo .input{flex:1}
}

/* Pagamento online no detalhe do pedido */
.pg-ok{color:var(--teal)} .pg-wait{color:var(--blue)} .pg-bad{color:var(--error)}

/* Painel: pagamentos */
.pg-ajuda{font-size:.86rem}
.pg-h3{font-size:1rem;margin:18px 0 8px}
.pg-tx{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:0 10px}
.pg-tx .field{margin-bottom:8px}
.pg-tx .prefix .input{padding-left:40px}
.pg-ex{background:var(--soft);border-radius:10px;padding:8px 12px;font-size:.9rem;margin:4px 0 12px}
.pg-webhook{border:1px dashed var(--line);border-radius:12px;padding:10px 14px;margin:6px 0 10px}
.pg-webhook .hint{margin:4px 0 8px}
.pg-copia{display:grid;grid-template-columns:150px 1fr;gap:8px;align-items:center;margin-bottom:6px;font-size:.86rem;font-weight:600}
.pg-copia .input{font-family:ui-monospace,monospace;font-size:.82rem}
.pg-acts{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.pg-res{font-size:.9rem}
@media (max-width:640px){.pg-copia{grid-template-columns:1fr}}

/* Página pública: pagamento */
.pag-ops{display:grid;gap:10px;margin:4px 0 14px}
.pag-op{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;background:var(--card)}
.pag-op:has(input:checked){border-color:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 20%,transparent)}
.pag-op input{width:18px;height:18px;accent-color:var(--teal)}
.pag-op small{display:block;color:var(--muted);font-size:.84rem}
.pag-v{font-variant-numeric:tabular-nums;text-align:right}
.pag-juros{font-size:.86rem;margin:-4px 0 12px}
.pag-pix{text-align:center;display:grid;gap:10px;justify-items:center;padding-top:4px}
.pag-pix img{background:#fff;border-radius:12px;padding:8px;border:1px solid var(--line);max-width:100%;height:auto}
.pag-pix p{margin:0}
.pag-cc{display:flex;gap:8px;width:100%}
.pag-cc .input{font-family:ui-monospace,monospace;font-size:.8rem}
.pag-esp{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:.92rem}
.pag-esp .spin{width:16px;height:16px}
.pag-link{display:flex;align-items:center;justify-content:center;text-decoration:none;text-align:center;width:100%;padding:10px 16px;line-height:1.25}
.pag-rod{font-size:.84rem;margin:12px 0 0;text-align:center}
.tbl-wrap{position:relative}   /* o rótulo invisível (.sr) não escapa da tabela e não alarga a página */
@media (max-width:640px){
  .fin-tab thead{display:none}
  .fin-tab,.fin-tab tbody{display:block}
  .fin-tab tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:10px 12px;border-bottom:1px solid var(--line)}
  .list.fin-tab td{display:block;border:0;padding:0;background:none}
  .fin-tab .acts{justify-content:flex-start}
  .fin-tab td:nth-child(1){grid-column:1/-1;font-size:.82rem;color:var(--muted)}
  .fin-tab td:nth-child(2){grid-column:1}
  .fin-tab td:nth-child(3){grid-column:2;grid-row:2;text-align:right}
  .fin-tab td:nth-child(4){grid-column:1/-1}
  .fin-tab td:nth-child(5){grid-column:1/-1;margin-top:6px}
  .fin-tab td small{display:inline}
  .fin-tab td:nth-child(2) small,.fin-tab td:nth-child(3) small{display:block}
}
.pag-v small{display:block;font-weight:600;font-size:.74rem;color:var(--muted)}
.pag-op span{min-width:0}
.pag-esp .spin{flex:none}

/* Botão do painel (sempre visível no topo, ao lado do sino) */
.user-menu a.painel-btn{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:inherit;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;font-weight:700;white-space:nowrap}
.user-menu .painel-btn svg{width:18px;height:18px;flex:none}
.user-menu a.painel-btn:hover{border-color:var(--purple)}
.user-menu a.painel-btn[aria-current="page"]{border-color:var(--purple);background:color-mix(in srgb,var(--purple) 10%,var(--card))}
.user-menu .menu .um-link{display:block;padding:10px 12px;border-radius:8px;font-weight:600;text-decoration:none;color:inherit}
.user-menu .menu .um-link:hover{background:var(--soft)}
@media (max-width:900px){.painel-txt{display:none}.user-menu a.painel-btn{padding:7px;min-height:38px}}

/* ===== Menu lateral (substitui a barra superior) ===== */
.nav a svg{width:20px;height:20px;flex:none;opacity:.85}
.nav-grp{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800;padding:14px 12px 4px}
.menu-btn{display:none;flex:none;width:42px;height:42px;border-radius:10px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;place-items:center;padding:0}
.menu-btn svg{width:24px;height:24px}
.menu-fundo{display:none}

@media (min-width:901px){
  :root{--side:248px}
  .app{padding-left:var(--side)}
  .top{position:fixed;top:0;left:0;bottom:0;width:var(--side);border-bottom:0;border-right:1px solid var(--line);z-index:30;display:flex}
  .top .stripe{position:absolute;top:0;right:-1px;bottom:0;width:4px;height:auto;background:linear-gradient(180deg,var(--magenta) 0 25%,var(--blue) 25% 50%,var(--teal) 50% 75%,var(--purple) 75%)}
  .top-inner{flex-direction:column;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap;gap:10px;width:100%;max-width:none;margin:0;padding:16px 12px 12px 12px;height:100%}
  .brand{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:10px;flex:1 1 auto;min-height:0}
  .brand .logo-wrap{align-self:center;flex:none}
  .brand .logo-wrap img{height:52px}
  .brand .nav{flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:2px;overflow-x:hidden;overflow-y:auto;mask-image:none;flex:1 1 auto;min-height:0;scrollbar-width:thin}
  .brand .nav a{width:100%;justify-content:flex-start;min-height:40px;padding:8px 12px;font-size:.95rem;white-space:nowrap}
  .brand .nav a .nav-badge{margin-left:auto}
  .nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--magenta);border-color:transparent}
  .user-menu{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;border-top:1px solid var(--line);padding-top:10px}
  .user-menu > .navbtn#umBtn{flex:1;min-width:0;justify-content:flex-start;padding:6px 8px}
  .user-menu .um-name{display:inline-block!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .user-menu .menu{top:auto;bottom:calc(100% + 8px);left:0;right:auto}
  .user-menu .notif-menu{left:0}
  .wrap{padding-top:28px}
}

@media (max-width:900px){
  .top{position:sticky;top:0;z-index:30}
  .top-inner{flex-wrap:nowrap;gap:10px;padding:8px 12px}
  .menu-btn{display:inline-grid}
  .brand{flex:1 1 auto;min-width:0}
  .brand .logo-wrap img{height:36px}
  .brand .nav{position:fixed;top:0;left:0;bottom:0;width:min(290px,86vw);z-index:50;background:var(--card);flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:2px;
    padding:18px 10px 24px;overflow-y:auto;overflow-x:hidden;mask-image:none;transform:translateX(-105%);transition:transform .2s ease;box-shadow:8px 0 30px rgba(0,0,0,.25);border-right:1px solid var(--line)}
  .brand .nav a{width:100%;justify-content:flex-start;min-height:44px;padding:10px 12px;font-size:1rem;white-space:nowrap}
  .brand .nav a .nav-badge{margin-left:auto}
  body.menu-aberto .brand .nav{transform:none}
  .menu-fundo{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:45}
  body.menu-aberto .menu-fundo{display:block}
  body.menu-aberto{overflow:hidden}
  body.menu-aberto .top{z-index:60}
}
@media (prefers-reduced-motion:reduce){.brand .nav{transition:none}}

/* Painel master: visão geral das empresas */
.vg-emp{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px 18px;margin:0 0 14px}
.vg-emp.off{opacity:.75}
.vg-head{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.vg-head .mini{width:52px;height:52px;border-radius:12px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;font-size:.7rem;color:#888;flex:none;text-align:center}
.vg-head .mini img{max-width:100%;max-height:100%;object-fit:contain}
.vg-tit{flex:1;min-width:200px}
.vg-tit h3{margin:0;font-family:var(--slab);font-size:1.25rem}
.vg-tit small{color:var(--muted);font-size:.84rem}
.vg-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:14px 0}
.vg-nums div{background:var(--soft);border-radius:10px;padding:8px 12px}
.vg-nums b{display:block;font-family:var(--slab);font-size:1.2rem;font-variant-numeric:tabular-nums}
.vg-nums span{font-size:.78rem;color:var(--muted);font-weight:600}
.vg-grupos{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vg-grupos h4{margin:0 0 6px;font-size:.82rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.vg-grupos h4 span{background:var(--soft);border-radius:999px;padding:0 7px;margin-left:4px;color:var(--ink)}
.vg-grupos .hint{margin:4px 0;font-size:.86rem}
.vg-p{display:flex;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:10px;padding:6px 8px;cursor:pointer;color:inherit;font:inherit}
.vg-p:hover{background:var(--soft);border-color:var(--line)}
.vg-p.off{opacity:.6}
.vg-p small{display:block;color:var(--muted);font-size:.8rem}
.vg-p .avatar{flex:none}
.us-tab td small{display:block;color:var(--muted);font-size:.82rem}
.us-tab tbody tr{cursor:pointer}
@media (max-width:700px){.vg-grupos{grid-template-columns:1fr}.vg-head .acts{width:100%}}

/* ===== Dashboard geral ===== */
.d-acoes{display:flex;gap:8px;flex-wrap:wrap}
.d-alertas{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}
.d-alerta{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border-radius:999px;font-size:.88rem;font-weight:600;text-decoration:none;color:var(--ink);
  background:color-mix(in srgb,#E8A317 14%,var(--card));border:1px solid color-mix(in srgb,#E8A317 50%,var(--line))}
.d-alerta.neg{background:var(--errbg);border-color:color-mix(in srgb,var(--error) 45%,var(--line))}
.d-alerta.neg b{color:var(--error)}
.d-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 16px}
.d-kpi{display:block;text-decoration:none;color:inherit;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;position:relative;overflow:hidden;transition:transform .12s,box-shadow .12s}
a.d-kpi:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.08)}
.d-kpi::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--kc,var(--blue))}
.d-kpi.k1{--kc:var(--teal)}.d-kpi.k2{--kc:var(--blue)}.d-kpi.k3{--kc:var(--purple)}.d-kpi.k4{--kc:#E8A317}.d-kpi.k5{--kc:var(--magenta)}.d-kpi.k6{--kc:var(--muted)}
.d-kpi span{display:block;font-size:.82rem;color:var(--muted);font-weight:700}
.d-kpi b{display:block;font-family:var(--slab);font-size:1.6rem;margin:4px 0 2px;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.d-kpi b.neg{color:var(--error)}
.d-kpi small{font-size:.8rem;color:var(--muted);font-weight:600}
.d-kpi em{font-style:normal;font-weight:800}
.d-kpi em.up{color:var(--teal)} .d-kpi em.down{color:var(--error)}
.d-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.d-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;min-width:0}
.d-card header{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin:0 0 10px}
.d-card h3{margin:0;font-size:1rem}
.d-card header a,.d-card header small{font-size:.82rem;color:var(--muted);font-weight:600}
.d-card header a{color:var(--blue);text-decoration:none}
.d-span2{grid-column:span 2}
.graf{width:100%;height:auto;display:block}
.g-grade{stroke:var(--line);stroke-width:1}
.g-rot{fill:var(--muted);font-size:12px;font-weight:600}
.g-num{fill:var(--ink);font-size:24px;font-weight:800;font-family:var(--slab)}
.g-trilha{stroke:var(--soft)}
.g-legenda{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);font-weight:600;margin-top:6px}
.g-legenda i,.g-lista i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.g-esc{margin-left:auto}
.rosca{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.rosca svg{width:140px;flex:none}
.g-lista{list-style:none;margin:0;padding:0;flex:1;min-width:140px;display:grid;gap:6px;font-size:.9rem}
.g-lista li{display:flex;align-items:center;gap:4px}
.g-lista li span{flex:1}
.hbar{display:grid;gap:12px}
.hb-t{display:flex;justify-content:space-between;gap:8px;font-size:.88rem;margin-bottom:4px}
.hb-t span{color:var(--muted);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hb-trilha{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}
.hb-v{height:100%;border-radius:999px}
.d-medidor{text-align:center}
.medidor{width:min(220px,100%);height:auto}
.d-medidor p{margin:4px 0 0;color:var(--muted);font-size:.86rem}
.d-l{list-style:none;margin:0;padding:0}
.d-l li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);font-size:.9rem}
.d-l li:first-child{border-top:0}
.d-l li[data-ped]{cursor:pointer}
.d-l li[data-ped]:hover b{color:var(--blue)}
.d-l li > div{min-width:0}
.d-l b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.d-l small{color:var(--muted);font-size:.8rem}
.d-l span{flex:none;font-weight:700;font-variant-numeric:tabular-nums}
.d-l .neg,.d-l small.neg{color:var(--error)}
.d-cor{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;border:1px solid var(--line)}
.d-st{font-size:.76rem!important;padding:2px 8px;border-radius:999px;background:var(--soft)}
.d-st.st-fila{color:var(--purple)} .d-st.st-producao{color:var(--blue)} .d-st.st-concluido{color:var(--teal)} .d-st.st-recusado,.d-st.st-cancelado{color:var(--muted)}
.d-vazio{color:var(--muted);font-size:.9rem;margin:6px 0}
@media (max-width:1180px){.d-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.d-grid{grid-template-columns:1fr}.d-span2{grid-column:auto}.d-kpis{grid-template-columns:1fr 1fr}.d-kpi b{font-size:1.3rem}}
.g-rot-p{font-size:9px}
.d-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
@media (max-width:1500px){.d-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:700px){.d-kpis{grid-template-columns:1fr 1fr}}
.brand .nav a[aria-current="page"]{box-shadow:inset 3px 0 0 var(--magenta);border-color:transparent}

/* Produto: medidas da embalagem */
.grid.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:700px){.grid.g4{grid-template-columns:1fr 1fr}}
.pr-aviso{background:color-mix(in srgb,var(--blue) 10%,var(--card));border:1px solid color-mix(in srgb,var(--blue) 40%,var(--line));border-radius:12px;padding:10px 14px;margin:0 0 12px;font-size:.9rem}

/* Loja virtual (gestão) */
.lj-topo{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;margin:0 0 16px}
.lj-topo .hint{margin:10px 0 0}
.lj-topo .env-alerta{margin:10px 0 0}
.lj-url{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lj-url .input{flex:1;min-width:220px;font-family:ui-monospace,monospace;font-size:.88rem}
.lj-tab td small{display:block;color:var(--muted);font-size:.8rem}
.lj-erro{color:var(--error)!important}
.lj-serv{display:flex;gap:4px 18px;flex-wrap:wrap}
.lj-dns code{font-size:.85rem;background:var(--soft);padding:2px 6px;border-radius:6px}
#ljAbas{margin-top:0}
.lj-off{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--errbg);border:1px solid color-mix(in srgb,var(--error) 40%,var(--line));font-size:.92rem}
.d-kpi.k7{--kc:var(--teal)}
.d-kpi-est{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;margin:0 0 16px}
.d-kpi-est span{width:100%}
.d-kpi-est b{margin:0}

/* Calculadora: leitura do arquivo do fatiador */
.arq-drop{display:flex;align-items:center;gap:14px;border:2px dashed var(--line);border-radius:14px;padding:14px 16px;margin:0 0 14px;cursor:pointer;background:var(--soft);transition:border-color .15s,background .15s}
.arq-drop:hover,.arq-drop.sobre{border-color:var(--teal);background:color-mix(in srgb,var(--teal) 8%,var(--card))}
.arq-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.arq-drop svg{width:34px;height:34px;flex:none;color:var(--teal)}
.arq-drop b{display:block}
.arq-drop small{display:block;color:var(--muted);font-size:.85rem}
.arq-res{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin:0 0 14px;background:var(--card);font-size:.92rem;display:block}
.arq-res.ok{border-color:color-mix(in srgb,var(--teal) 55%,var(--line))}
.arq-res.est{border-color:color-mix(in srgb,#E8A317 60%,var(--line))}
.arq-res.erro{border-color:color-mix(in srgb,var(--error) 50%,var(--line));background:var(--errbg)}
.arq-res.erro p{margin:4px 0 0}
.arq-tit{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.arq-tit span{color:var(--muted);font-size:.84rem}
.arq-x{margin-left:auto;border:0;background:none;font-size:1.3rem;line-height:1;cursor:pointer;color:var(--muted)}
.arq-kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;margin:0}
.arq-kv dt{color:var(--muted);font-weight:600}
.arq-kv dd{margin:0}
.arq-av{margin:8px 0 0;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,#E8A317 12%,var(--card));font-size:.86rem}
.arq-falta{color:var(--error)}
@media (max-width:560px){.arq-kv{grid-template-columns:1fr}.arq-kv dt{margin-top:4px}}
.sec h2 .sub{font-size:.85rem;font-family:var(--sans);font-weight:500;color:var(--muted)}

/* IA: modelo 3D a partir de imagem */
.ia-wrap{max-width:1240px;margin:0 auto;padding:0 24px 48px}
@media (max-width:980px){.ia-wrap{padding:0 14px 40px}}
.ia-tag{font-family:var(--sans);font-size:.72rem;font-weight:800;background:linear-gradient(90deg,var(--purple),var(--magenta));color:#fff;border-radius:999px;padding:2px 9px;vertical-align:3px}
.ia-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.ia-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;border:2px dashed var(--line);border-radius:14px;padding:16px;min-height:230px;cursor:pointer;background:var(--soft)}
.ia-drop:hover,.ia-drop.sobre{border-color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,var(--card))}
.ia-drop input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ia-prev{width:150px;height:150px;border-radius:12px;display:grid;place-items:center;overflow:hidden;background:var(--card);border:1px solid var(--line)}
.ia-prev img{width:100%;height:100%;object-fit:contain}
.ia-prev svg{width:56px;height:56px;color:var(--purple)}
.ia-drop small{display:block;color:var(--muted);font-size:.84rem}
.ia-campos .btn.primary{width:100%;min-height:48px}
.ia-info{font-size:.84rem;margin:8px 0 0}
.ia-lista{display:grid;gap:10px;margin-top:16px}
.ia-item{display:grid;grid-template-columns:64px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--card)}
.ia-img{width:64px;height:64px;border-radius:10px;object-fit:cover;background:#fff}
.ia-txt{min-width:0;display:flex;flex-direction:column;gap:2px}
.ia-txt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ia-txt small{color:var(--muted);font-size:.82rem}
.ia-erro{color:var(--error)!important}
.ia-barra{height:8px;border-radius:999px;background:var(--soft);overflow:hidden;margin:4px 0 2px;max-width:340px}
.ia-barra div{height:100%;background:linear-gradient(90deg,var(--purple),var(--magenta));border-radius:999px;transition:width .6s}
.ia-item .acts{flex-wrap:wrap;justify-content:flex-end}
.ia-3d{height:min(60vh,480px);border-radius:12px;background:var(--soft);overflow:hidden}
@media (max-width:760px){.ia-form{grid-template-columns:1fr}.ia-item{grid-template-columns:52px 1fr}.ia-img{width:52px;height:52px}.ia-item .acts{grid-column:1/-1;justify-content:flex-start}}

/* ---------- Ferramentas de STL ---------- */

.stl-drop{min-height:150px;justify-content:center}
.stl-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:18px}
.stl-ver{height:min(52vh,420px);border-radius:12px;background:var(--soft);overflow:hidden;position:relative;display:grid;place-items:center}
.stl-ver canvas{display:block;width:100%!important;height:100%!important}
.stl-dica{font-size:.82rem;text-align:center;margin:6px 0 0}
.stl-arq{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-bottom:12px}
.stl-arq>div{min-width:0}
.stl-arq b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stl-arq small{color:var(--muted);font-size:.82rem;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stl-kv{margin-bottom:10px}
.stl-bom{color:var(--teal);font-weight:700}
.stl-ruim{color:var(--error);font-weight:700}
.stl-abas{margin-bottom:14px}
.stl-ops{display:grid;gap:10px;justify-items:start}
.stl-ops .check{display:block;min-height:0;padding:6px 0;line-height:1.45}
.stl-ops .check input{vertical-align:-4px;margin:0 8px 0 0}
.stl-ops .check small{font-weight:500;font-size:.82rem}
.stl-ops>.btn.primary{min-width:200px;min-height:46px;margin-top:4px}
.stl-linha{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end}
.stl-mini{margin:0;min-width:120px}
.stl-mini .input{min-width:0}
.stl-mini .suffix{max-width:150px}
.stl-mini .lbl{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px}
.stl-faixa{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.stl-faixa input[type=range]{width:200px;accent-color:var(--teal)}
.stl-faixa span{color:var(--muted);font-size:.86rem}
.stl-faixa.grande{width:100%}
.stl-faixa.grande input[type=range]{flex:1;min-width:180px}
.stl-pos-txt{margin:0;font-size:.85rem}
.seg{display:inline-flex;border:1.5px solid var(--line);border-radius:10px;overflow:hidden;flex-wrap:wrap}
.seg button{border:0;background:var(--card);padding:10px 14px;font-weight:700;cursor:pointer;color:var(--muted);min-height:42px}
.seg button+button{border-left:1.5px solid var(--line)}
.seg button[aria-checked="true"]{background:color-mix(in srgb,var(--teal) 14%,var(--card));color:var(--ink)}
.stl-acoes-topo{display:flex;gap:8px;margin:0 0 10px}
.stl-pecas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px;margin:0 0 12px}
.stl-peca{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;background:var(--card);cursor:pointer;min-width:0}
.stl-pecas.res .stl-peca{cursor:default}
.stl-peca input{width:18px;height:18px;accent-color:var(--teal);flex:none}
.stl-peca>span:last-of-type{min-width:0;flex:1}
.stl-peca b{display:block;font-size:.92rem}
.stl-peca small{display:block;color:var(--muted);font-size:.8rem}
.stl-cor{width:14px;height:14px;border-radius:4px;flex:none}
.stl-vazio{padding:8px 0}
.stl-res{border:1.5px solid color-mix(in srgb,var(--teal) 55%,var(--line));border-radius:14px;padding:14px 16px;margin-top:16px;background:color-mix(in srgb,var(--teal) 5%,var(--card))}
.stl-res-tit{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.stl-res-tit b{font-size:1.05rem}
.stl-log{margin:4px 0 10px;padding-left:20px;font-size:.9rem}
.stl-log li{margin:2px 0}
.stl-res-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
#stlMsg .arq-res{margin:12px 0 0}
@media (max-width:860px){.stl-grid{grid-template-columns:1fr}.stl-ver{height:320px}}
@media (max-width:520px){.stl-res-acts .btn{flex:1 1 100%}.seg{display:flex;width:100%}.seg button{flex:1;padding:10px 8px;font-size:.85rem}.stl-faixa input[type=range]{width:100%}}
/* IA: fotos de outros ângulos */
.ia-fotos{display:grid;gap:14px;min-width:0}
.ia-vistas-tit{margin:0 0 8px;font-size:.92rem}
.ia-vistas-tit .sub{color:var(--muted);font-weight:500}
.ia-vistas-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ia-vista{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.ia-vista small{color:var(--muted);font-size:.8rem;text-align:center}
.ia-vista-foto{width:100%;aspect-ratio:1;max-width:120px;border:2px dashed var(--line);border-radius:12px;display:grid;place-items:center;cursor:pointer;background:var(--soft);overflow:hidden;color:var(--purple);font-size:1.8rem;font-weight:300}
.ia-vista-foto:hover,.ia-vista-foto.sobre{border-color:var(--purple);background:color-mix(in srgb,var(--purple) 8%,var(--card))}
.ia-vista.tem .ia-vista-foto{border-style:solid;background:#fff}
.ia-vista-foto input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.ia-vista-foto img{width:100%;height:100%;object-fit:contain}
.ia-vista-x{position:absolute;top:-6px;right:calc(50% - 66px);width:24px;height:24px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;line-height:1;font-size:1rem}
.ia-vistas-dica{font-size:.8rem;margin:8px 0 0}
@media (max-width:760px){.ia-vista-x{right:-4px}}
/* empresa: CPF/CNPJ */
.emp-doc{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:end}
.emp-doc .field{margin-bottom:12px}
.emp-doc .lbl{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px}
.emp-doc-in{display:flex;gap:8px}
.emp-docx{display:block;color:var(--muted);font-size:.8rem;font-weight:500}
@media (max-width:520px){.emp-doc{grid-template-columns:1fr}}

/* ---------- Fiscal ---------- */
.fis-adm{display:grid;gap:18px;max-width:1100px}
.fis-adm .sec{margin:0}
.fis-adm h2 .sub{font-family:var(--sans);font-size:.85rem;font-weight:600;color:var(--muted);margin-left:6px}
.fis-acao{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 14px}
.fis-acao .hint{margin:0;flex:1;min-width:220px}
.fis-end{grid-template-columns:repeat(4,minmax(0,1fr))}
.fis-span2{grid-column:span 2}
.fis-aliq{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.fis-cnaes{margin-top:6px;font-size:.9rem}
.fis-cnaes ul{margin:6px 0 0;padding:0;list-style:none;display:grid;gap:4px}
.fis-cnaes li .badge{margin-right:6px}
.fis-amb{color:#9a6700;font-weight:600}
.fis-amb.prod{color:var(--error)}
.fis-ref{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin:10px 0;background:var(--soft)}
.fis-ref summary{cursor:pointer;font-weight:700}
.fis-ref[open] summary{margin-bottom:8px}
.fis-cert{display:grid;grid-template-columns:1fr auto;gap:2px 12px;border:1px solid color-mix(in srgb,var(--teal) 50%,var(--line));border-radius:12px;padding:12px 14px;margin:0 0 12px;background:color-mix(in srgb,var(--teal) 6%,var(--card))}
.fis-cert span,.fis-cert small{grid-column:1;color:var(--muted);font-size:.86rem}
.fis-cert .btn{grid-column:2;grid-row:1/4;align-self:center}
.fis-cert.alerta{border-color:var(--error);background:var(--errbg)}
.fis-cert.vazio{display:block;color:var(--muted);border-style:dashed;background:none}
.fis-cert-up{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto;gap:12px;align-items:end}
.fis-cert-up .field{margin:0}
.fis-docs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fis-doc{border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.fis-motor{margin:6px 0 12px;padding:10px 12px;border-radius:10px;background:color-mix(in srgb,var(--purple) 8%,var(--card))}
.fis-acts{position:sticky;bottom:0;background:var(--bg);padding:12px 0;border-top:1px solid var(--line);z-index:5}
.fis-erros{display:block;color:var(--error);margin-top:4px}
.fis-banner{border:1px solid color-mix(in srgb,#E8A317 60%,var(--line));background:color-mix(in srgb,#E8A317 12%,var(--card));border-radius:12px;padding:10px 14px;margin:0 0 14px;font-size:.92rem}
.fis-banner.erro{border-color:var(--error);background:var(--errbg)}
.fis-sub{display:block;color:var(--muted);font-size:.8rem;font-weight:500}
.fis-msg{color:var(--error);max-width:320px;white-space:normal}
.fis-det{display:grid;gap:12px}
.fis-msgbox{margin:0;padding:10px 12px;border-radius:10px;background:var(--soft);font-size:.9rem}
.fis-msgbox.erro{background:var(--errbg);color:var(--error)}
.fis-chave{font-family:ui-monospace,monospace;font-size:.85rem;word-break:break-all}
.fis-ev{margin:0;padding-left:18px;font-size:.9rem}
.fis-emit{display:grid;gap:16px}
.fis-emit .sec{margin:0}
.fis-tipos{display:flex;width:max-content;max-width:100%}
.fis-tipos button{display:flex;flex-direction:column;align-items:center;line-height:1.2;padding:10px 22px}
.fis-tipos button small{font-weight:500;font-size:.75rem}
.fis-dest{grid-template-columns:repeat(4,minmax(0,1fr))}
.fis-item{display:grid;grid-template-columns:1.4fr 1.6fr .8fr 1fr .6fr .8fr .7fr auto;gap:8px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}
.fis-item .field{margin:0}
.fis-item label{font-size:.78rem}
.fis-x{margin-bottom:6px}
.fis-totrow{margin-top:14px}
.fis-pags{display:grid;gap:8px}
.fis-pag{display:flex;gap:8px;align-items:center;max-width:520px}
.fis-pag .select{max-width:220px}
.fis-previa{border:1.5px solid color-mix(in srgb,var(--blue) 45%,var(--line));border-radius:12px;padding:12px 14px;background:color-mix(in srgb,var(--blue) 5%,var(--card));overflow-x:auto}
.fis-compra-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:14px;align-items:start;margin-bottom:12px}
.fis-sefaz{display:grid;gap:6px}
.ent-itens{display:grid;gap:10px;margin:0 0 12px}
.ent-item{display:grid;grid-template-columns:minmax(0,1.3fr) 220px minmax(0,1.4fr);gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.ent-desc small{display:block;color:var(--muted);font-size:.8rem}
.ent-fil,.ent-prod{display:flex;gap:8px;flex-wrap:wrap}
.ent-fil .select,.ent-prod .select{flex:1 1 160px;min-width:0}
.ent-fil .input{flex:1 1 90px;min-width:0}
.ent-fil .suffix,.ent-prod .suffix{flex:0 1 120px}
.fis-h3{margin:8px 0;font-family:var(--slab)}
.fis-perfis{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;margin-bottom:18px}
.fis-perfil{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card);display:grid;gap:6px}
.fis-perfil small{color:var(--muted);font-size:.84rem}
.fis-export{max-width:760px}
@media (max-width:980px){.fis-item{grid-template-columns:1fr 1fr 1fr}.fis-item .fis-ip,.fis-item .fis-id{grid-column:span 3}.ent-item{grid-template-columns:1fr}}
@media (max-width:760px){.fis-end,.fis-dest{grid-template-columns:1fr 1fr}.fis-docs,.fis-cert-up,.fis-compra-top{grid-template-columns:1fr}.fis-span2{grid-column:span 2}.fis-tipos{width:100%}.fis-tipos button{flex:1;padding:8px}}
@media (max-width:520px){.fis-item{grid-template-columns:1fr 1fr}.fis-item .fis-ip,.fis-item .fis-id{grid-column:span 2}.fis-end,.fis-dest{grid-template-columns:1fr}.fis-span2{grid-column:auto}}
.fis-doc .check{display:block;min-height:0;margin-bottom:8px;line-height:1.4}
.fis-doc .check input{vertical-align:-4px;margin-right:6px}
.fis-doc .grid,.fis-adm .grid{align-items:end}
.fis-pags .btn{justify-self:start}
.fis-lac{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px}

/* módulo fiscal inativo (empresa com CPF) */
.fis-inativo{position:relative;min-height:420px}
.fis-inativo-conteudo{opacity:.35;filter:grayscale(1);pointer-events:none;user-select:none;max-height:900px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.fis-inativo::before{content:"";position:absolute;inset:0;background:color-mix(in srgb,var(--ink) 10%,transparent);border-radius:16px;z-index:1;pointer-events:none}
.fis-inativo-aviso{position:absolute;z-index:2;left:50%;top:80px;transform:translateX(-50%);width:min(480px,calc(100% - 32px));background:var(--card);border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:16px;padding:22px 24px;box-shadow:0 20px 50px rgba(0,0,0,.18)}
.fis-inativo-aviso h3{font-family:var(--slab);font-size:1.35rem;margin:0 0 8px}
.fis-inativo-aviso p{margin:0 0 14px;color:var(--muted);line-height:1.55}
.nav-off{margin-left:auto;font-size:.7rem;font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:1px 6px}
.tabs button:disabled{opacity:.5;cursor:not-allowed}
.login-links{text-align:center;color:var(--muted);margin:18px 0 0;font-size:.95rem;line-height:1.8}
.login-links a{color:var(--ink);font-weight:700}

/* ---------- CRM: clientes ---------- */
.cli-tab td small,.cli-hist td small,#cliDetalhe table.list td small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}
.cli-tab tbody tr,.cli-hist tbody tr{cursor:pointer}
.cli-tab tbody tr:hover td,.cli-hist tbody tr:hover td,.cli-tab tbody tr:focus-visible td{background:var(--soft)}
.cli-voltar{margin:0 0 14px;font-weight:600}
.cli-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap;margin:0 0 18px}
.cli-cab h2{font-family:var(--slab);font-size:clamp(1.6rem,3vw,2.2rem);margin:0 0 4px}
.cli-cab p{margin:2px 0;color:var(--muted)}
.cli-contato a{color:var(--ink);font-weight:600}
.cli-desde{font-size:.88rem}
.cli-acoes{display:flex;gap:8px;flex-wrap:wrap}
.cli-obs{white-space:pre-wrap;background:var(--soft);border-radius:12px;padding:12px 14px;margin:0 0 18px}
.cli-h3{font-family:var(--slab);font-size:1.3rem;margin:26px 0 10px}
.cli-rodape{display:flex;gap:10px;justify-content:flex-end;margin-top:22px}
.cli-end-grid{grid-template-columns:130px minmax(0,2fr) 100px;gap:0 14px}
@media (max-width:620px){.cli-end-grid{grid-template-columns:1fr 1fr}}
.arq-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:3px 8px;margin:2px 4px 2px 0;font-size:.8rem;font-weight:800;color:var(--teal);text-decoration:none;background:var(--card);max-width:100%}
.arq-chip span{font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arq-chip:hover{border-color:var(--teal)}
.badge.arq{background:color-mix(in srgb,var(--teal) 14%,var(--card));color:color-mix(in srgb,var(--teal) 70%,var(--ink))}
.cli-junta{display:block;width:100%;text-align:left;border:1px solid var(--line);background:var(--card);border-radius:10px;padding:10px 12px;margin:0 0 8px;cursor:pointer}
.cli-junta:hover{border-color:var(--blue)}
.cli-junta small{display:block;color:var(--muted)}
/* escolher cliente cadastrado */
.cli-sel{margin:0 0 14px}
.cli-sel label{display:block;font-weight:600;font-size:.95rem;margin:0 0 6px}
.cli-sel-in{position:relative}
.cli-opcoes{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;list-style:none;margin:0;padding:6px;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 30px rgba(0,0,0,.14);max-height:280px;overflow:auto}
.cli-opcoes li{padding:8px 10px;border-radius:8px;cursor:pointer}
.cli-opcoes li:hover,.cli-opcoes li:focus{background:var(--soft);outline:none}
.cli-opcoes li small{display:block;color:var(--muted);font-size:.84rem}
.cli-opcoes .cli-nada{cursor:default;color:var(--muted);font-size:.9rem}
.cli-escolhido{margin:8px 0 0;font-size:.9rem;color:var(--muted);background:color-mix(in srgb,var(--teal) 10%,var(--card));border-radius:8px;padding:6px 10px}
/* arquivos do modelo */
.arqm{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:14px}
.arqm-cab{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px}
.arqm-cab h4{margin:0;font-size:1rem}
.arqm-lista{list-style:none;margin:0;padding:0}
.arqm-lista li{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.arqm-lista li:first-child{border-top:0}
.arqm-lista li > a:not(.btn){flex:1;min-width:120px;color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.arqm-lista small{color:var(--muted)}
.arqm-ext{font-size:.72rem;font-weight:800;color:var(--teal);border:1.5px solid currentColor;border-radius:6px;padding:2px 5px}
.arqm-vazio{margin:0;color:var(--muted);font-size:.9rem}
.file-btn.ocupado{opacity:.6;pointer-events:none}
/* categorias e revenda */
#prodCats:empty{display:none}
.badge.revenda{background:color-mix(in srgb,var(--purple) 14%,var(--card));color:color-mix(in srgb,var(--purple) 75%,var(--ink))}
.pr-tipo{border:0;padding:0;margin:0 0 6px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pr-tipo legend{padding:0;margin-bottom:6px}
.pr-tipo .check{align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.pr-tipo .check:has(input:checked){border-color:var(--magenta)}
.pr-tipo small{display:block;color:var(--muted);font-weight:400}
@media (max-width:620px){.pr-tipo{grid-template-columns:1fr}}
.pr-cat{display:flex;gap:8px}
.cat-nova{display:flex;gap:8px;margin:0 0 10px}
.cat-sug{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 12px;color:var(--muted);font-size:.9rem}
.cat-lista{list-style:none;margin:0;padding:0}
.cat-lista li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line);flex-wrap:wrap}
.cat-lista .cat-nome{flex:1;font-weight:700;min-width:120px}
.cat-lista small{color:var(--muted);margin-right:auto}
.cat-vazia{color:var(--muted)}
.login-card .marca-completa{margin:0 auto 14px}
.login-card .marca-completa img{width:min(280px,100%)}
.nav-grp:has(.ic-area){display:flex;align-items:center;gap:8px}
.nav-grp .ic-area{width:18px;height:18px;border-radius:5px}

/* WhatsApp da empresa */
.wa-aviso{border-left:5px solid #E8A317;background:color-mix(in srgb,#E8A317 12%,var(--card));border-radius:4px 12px 12px 4px;padding:12px 14px;margin:0 0 16px}
.wa-aviso b{display:block;margin-bottom:4px}
.wa-aviso p{margin:0;color:var(--muted);font-size:.92rem;line-height:1.5}
.wa-estado{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 6px}
.wa-opcoes{margin:14px 0}
.wa-teste{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin:12px 0}
.wa-acoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.wa-aceite{margin:4px 0 8px}
.wa-qr{display:grid;grid-template-columns:240px 1fr;gap:6px 22px;align-items:start;margin-top:12px}
.wa-qr img{width:240px;height:240px;background:#fff;border-radius:12px;padding:8px;border:1px solid var(--line);grid-row:span 3}
.wa-qr ol{margin:0;padding-left:20px;line-height:1.7}
@media (max-width:620px){.wa-qr{grid-template-columns:1fr}.wa-qr img{grid-row:auto;margin:0 auto}}
.wa-ok{background:color-mix(in srgb,var(--teal) 14%,var(--card));border-radius:10px;padding:10px 12px;margin:0 0 12px;font-weight:600}
.wa-falha{background:var(--errbg);color:var(--error);border-radius:10px;padding:10px 12px;margin:0 0 12px}

/* ----- Print Loop ----- */
.pl-risco{max-width:980px}
.pl-como{max-width:720px;color:var(--muted)}
.pl-como h3{font-family:var(--slab);color:var(--ink);font-size:1.15rem;margin:6px 0 8px}
.pl-como ol{margin:0;padding-left:1.3em;line-height:1.6}
.pl-como li{margin:0 0 6px}
.pl-arq{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 0 14px;border-bottom:1px solid var(--line);margin:0 0 14px}
.pl-arq b{display:block;word-break:break-all}
.pl-arq small{color:var(--muted)}
.pl-uma{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.pl-uma div,.pl-tot div{background:var(--soft);border-radius:12px;padding:10px 12px}
.pl-uma dt,.pl-tot dt{font-size:.82rem;color:var(--muted);margin:0 0 2px}
.pl-uma dd,.pl-tot dd{margin:0;font-weight:800;font-variant-numeric:tabular-nums}
.pl-uma dd small{font-weight:500;color:var(--muted)}
.pl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
.pl-form .suffix .input{padding-right:78px}
.pl-dica{margin:-6px 0 14px;font-size:.86rem}
.pl-modo{border:0;padding:0;margin:0 0 16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pl-modo legend{font-weight:700;margin:0 0 8px;padding:0}
.pl-op{display:flex;gap:10px;align-items:flex-start;border:1.5px solid var(--line);border-radius:12px;padding:12px;cursor:pointer}
.pl-op:has(input:checked){border-color:var(--purple);background:color-mix(in srgb,var(--purple) 7%,var(--card))}
.pl-op input{margin-top:3px;accent-color:var(--purple);width:18px;height:18px;flex:none}
.pl-op b{display:block}
.pl-op small{color:var(--muted);font-size:.86rem}
.pl-gcode{margin-top:14px}
.pl-gcode summary{cursor:pointer;color:var(--muted);font-weight:600}
.pl-gcode pre{max-height:260px;overflow:auto;background:var(--soft);border-radius:10px;padding:10px 12px;font-size:.8rem;line-height:1.45;margin:8px 0 0}
.pl-lado{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px}
.pl-mesa{margin:0}
.pl-mesa svg{width:100%;height:auto;display:block}
.pl-placa{fill:#2A2E35;stroke:#3A404A;stroke-width:1}
.pl-grade line{stroke:#ffffff;stroke-opacity:.07;stroke-width:1}
.pl-peca{fill:var(--magenta);fill-opacity:.85;stroke:#fff;stroke-opacity:.6;stroke-width:1}
.pl-passada{stroke:var(--teal);stroke-width:2;stroke-dasharray:5 4;stroke-opacity:.55}
.pl-passada.um{stroke-opacity:1;stroke-width:2.6}
.pl-seta{fill:var(--teal)}
.pl-desce{fill:#2A2E35;stroke:var(--teal);stroke-width:2}
.pl-frente{fill:var(--muted);font-size:12px;font-weight:600}
.pl-mesa figcaption{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.84rem;color:var(--muted);margin-top:6px}
.pl-k{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:-1px;margin-right:5px}
.pl-k.desce{border:2px solid var(--teal)}
.pl-k.passa{background:var(--teal);border-radius:2px;height:3px;width:14px;vertical-align:3px}
.pl-tot{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
.pl-avisos{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.pl-avisos:empty{display:none}
.pl-avisos li{border-left:4px solid #E8A317;background:color-mix(in srgb,#E8A317 11%,var(--card));border-radius:3px 10px 10px 3px;padding:8px 10px;font-size:.88rem}
.pl-gerar{width:100%;min-height:48px}
#loopMsg .arq-res{margin:0}
@media (max-width:980px){.pl-grid{grid-template-columns:1fr}.pl-lado{position:static}.pl-uma{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.pl-modo{grid-template-columns:1fr}}

/* ----- Estoque compartilhado ----- */
.fil-local{display:inline-block;margin-top:4px;font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:999px;background:color-mix(in srgb,var(--blue) 14%,var(--card));color:color-mix(in srgb,var(--blue) 75%,var(--ink))}
.fil-local.eu{background:var(--soft);color:var(--muted)}
.fil-parc{border-style:dashed}
.fil-parc .fil-preco span{color:var(--muted);font-size:.86rem}
.est-sep{font-family:var(--slab);font-size:1.15rem;margin:22px 0 10px}
.emp-pedidos{display:flex;flex-direction:column;gap:10px}
.emp-pedido{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--card)}
.emp-pedido small{display:block;color:var(--muted);margin-top:2px}
.emp-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.emp-tab td small.sub{display:block;color:var(--muted);font-size:.82rem}
.parc-lista{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.parc-lista li{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:var(--soft)}
.parc-lista small{display:block;color:var(--muted);font-size:.85rem}
.parc-vazio{color:var(--muted);margin:10px 0 0}
.parc-convite{margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.parc-convite h3{margin:0 0 4px;font-size:1.02rem}
.parc-links{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-direction:column;gap:8px}
.parc-links li{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.parc-links .input{flex:1 1 260px;font-size:.86rem}
.parc-links small{color:var(--muted);flex-basis:100%}
.pedir-fil{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--soft);margin:0 0 14px}
.pedir-fil small{display:block;color:var(--muted)}
.conv-lista{margin:0;padding-left:1.2em;color:var(--muted);line-height:1.55}
#estAbas .nav-badge{margin-left:6px}
.pl-frame{display:block;width:100%;height:calc(100vh - 250px);min-height:620px;border:0;border-radius:16px;background:var(--card);color-scheme:normal}
.pg-parc{color:#B7791F}
.env-entrada{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:2px 0 12px 30px}
@media (max-width:620px){.env-entrada{grid-template-columns:1fr;margin-left:0}}
.orc-sinal{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 12px}
.orc-sinal div{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--soft)}
.orc-sinal span{display:block;font-size:.85rem;color:var(--muted)}
.orc-sinal b{font-size:1.15rem;font-variant-numeric:tabular-nums}
.ped-falta{background:color-mix(in srgb,#E8A317 18%,var(--card));color:#8a5a00}

/* ----- Categorias de projetos ----- */
.pcat{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:700;color:color-mix(in srgb,var(--c) 75%,var(--ink));margin:0 0 2px}
.pcat::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--c)}
.cat-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:0}
.chip.on .cat-dot{box-shadow:0 0 0 2px var(--bg)}
.cat-nova{display:flex;gap:8px;margin-top:8px}
.cat-nova .input{flex:1}
.gcp-nova{display:flex;gap:8px;margin:0 0 10px}
.gcp-nova .input{flex:1}
.gcp-sug{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 14px}
.gcp-sug span{color:var(--muted);font-size:.86rem;margin-right:2px}
.gcp-sug .chip{padding:4px 10px;font-size:.84rem}
.gcp-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gcp-lista li{display:grid;grid-template-columns:40px minmax(0,1fr) 78px auto;gap:10px;align-items:center}
.gcp-lista input[type=color]{width:40px;height:40px;border:1px solid var(--line);border-radius:10px;padding:3px;background:var(--card);cursor:pointer}
.gcp-lista small{color:var(--muted);white-space:nowrap}

/* ----- Busca de filamento na calculadora ----- */
.fcombo{position:relative}
.fcombo .fq{padding-left:38px;text-overflow:ellipsis}
.fcombo-ic{position:absolute;left:12px;top:50%;width:18px;height:18px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.flista{position:absolute;z-index:30;left:0;right:0;top:calc(100% + 4px);max-height:min(360px,55vh);overflow:auto;margin:0;padding:6px;list-style:none;
  background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,.16)}
.fl-grp{font-size:.76rem;font-weight:700;color:var(--muted);padding:8px 10px 4px}
.fl-it{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;cursor:pointer}
.fl-it.ativo{background:var(--soft)}
.fl-it.atual b{color:var(--magenta)}
.fl-it.zerado .fl-t small{color:var(--error)}
.fl-it .sw{flex:none}
.fl-t{display:flex;flex-direction:column;min-width:0}
.fl-t b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fl-t small{color:var(--muted);font-size:.8rem}
.fl-t mark{background:color-mix(in srgb,#E8A317 30%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.fl-vazio{padding:12px 10px;color:var(--muted)}
.filrow .fl-it .sw{margin:0;width:22px;height:22px}
@media (min-width:721px){.filrow{grid-template-columns:auto minmax(0,1fr) 110px minmax(70px,auto) auto}}
.flista{min-width:min(380px,calc(100vw - 32px))}
@media (min-width:721px){.filrow .rm{width:38px;padding:0;justify-content:center}}

/* ----- Impressoras ----- */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.select-mini{min-height:34px;padding:4px 30px 4px 10px;font-size:.92rem;max-width:240px}
.stat b small{font-size:.9rem;font-weight:600;color:var(--muted);font-family:var(--sans)}
.imp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.imp-card{--st:var(--teal);background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;border-top:4px solid var(--st)}
.imp-card:hover{box-shadow:0 10px 24px rgba(0,0,0,.07)}
.imp-card.st-manut{--st:#E8A317}.imp-card.st-parada{--st:var(--error)}.imp-card.st-off{--st:var(--line);opacity:.75}
.imp-card header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.imp-card h3{margin:0;font-size:1.08rem}
.imp-card header small{color:var(--muted);font-size:.85rem}
.imp-st{flex:none;font-size:.74rem;font-weight:700;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--st) 16%,var(--card));color:color-mix(in srgb,var(--st) 70%,var(--ink))}
.imp-horas{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.imp-horas b{font-family:var(--slab);font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.imp-horas span{color:var(--muted);font-size:.86rem}
.imp-vida{height:6px;border-radius:99px;background:var(--soft);overflow:hidden}
.imp-vida i{display:block;height:100%;background:linear-gradient(90deg,var(--teal),#E8A317 75%,var(--error))}
.imp-kv{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin:0}
.imp-kv dt{font-size:.78rem;color:var(--muted)}
.imp-kv dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}
.imp-prev{font-size:.84rem;padding:7px 10px;border-radius:10px;background:var(--soft);color:var(--muted)}
.imp-prev.vencida{background:var(--errbg);color:var(--error);font-weight:600}
.imp-prev.breve{background:color-mix(in srgb,#E8A317 14%,var(--card));color:#8a5a00}
.imp-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.imp-acts .primary{margin-left:auto}
.imp-det-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-4px 0 6px;flex-wrap:wrap}
.imp-det-top small{color:var(--muted)}
.imp-st-sel select{border:0;border-radius:999px;padding:6px 30px 6px 12px;font-weight:700;font-size:.86rem;cursor:pointer;background-color:color-mix(in srgb,var(--st,var(--teal)) 16%,var(--card));color:color-mix(in srgb,var(--st,var(--teal)) 70%,var(--ink))}
.imp-st-sel.st-ok{--st:var(--teal)}.imp-st-sel.st-manut{--st:#E8A317}.imp-st-sel.st-parada{--st:var(--error)}.imp-st-sel.st-off{--st:var(--muted)}
.imp-big{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.imp-big div{background:var(--soft);border-radius:12px;padding:12px 14px}
.imp-big span{display:block;font-size:.8rem;color:var(--muted)}
.imp-big b{display:block;font-family:var(--slab);font-size:1.6rem;font-variant-numeric:tabular-nums}
.imp-big small{display:block;color:var(--muted);font-size:.8rem;line-height:1.35}
.imp-chart{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;height:140px;align-items:end;padding:6px 0 0}
.imp-chart .col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.imp-chart i{display:block;width:100%;max-width:34px;min-height:2px;background:var(--teal);border-radius:6px 6px 2px 2px}
.imp-chart small{font-size:.72rem;color:var(--muted);margin-top:4px;height:16px}
.imp-chart em{position:absolute;top:-2px;font-style:normal;font-size:.7rem;color:var(--muted)}
.imp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px}
.imp-bar .hint{margin:0;font-size:.86rem}
.imp-planos{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.imp-planos li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--soft);border-left:4px solid var(--teal)}
.imp-planos li.breve{border-left-color:#E8A317}.imp-planos li.vencida{border-left-color:var(--error);background:var(--errbg)}
.imp-planos small{display:block;color:var(--muted);font-size:.82rem}
.imp-pl-st{font-weight:700;font-size:.86rem;white-space:nowrap}
.imp-planos li.vencida .imp-pl-st{color:var(--error)}
.imp-custo-prev{margin:-4px 0 14px;font-size:.88rem}
td small.sub{display:block;color:var(--muted);font-size:.8rem}
@media (max-width:720px){.imp-big{grid-template-columns:1fr}.imp-planos li{grid-template-columns:1fr}}
.qtd-step{display:flex;gap:6px;align-items:center}
.qtd-step .input{text-align:center;min-width:0;-moz-appearance:textfield}
.qtd-step .input::-webkit-inner-spin-button{-webkit-appearance:none}
.qtd-step .btn{flex:none;width:38px;padding:0;font-size:1.1rem;justify-content:center}
.env-qtd{gap:12px}

/* ----- Menu lateral: grupos recolhíveis ----- */
button.nav-grp{display:flex;align-items:center;gap:8px;width:100%;border:0;background:none;cursor:pointer;text-align:left;border-radius:8px;font-family:inherit}
button.nav-grp:hover{color:var(--ink);background:var(--soft)}
button.nav-grp span{flex:1}
.nav-seta{width:14px;height:14px;flex:none;transition:transform .18s ease;opacity:.7}
.nav-sec.fechado .nav-seta{transform:rotate(-90deg)}
.nav-itens{display:grid;grid-template-rows:1fr;transition:grid-template-rows .2s ease}
.nav-itens > div{overflow:hidden;min-height:0;display:flex;flex-direction:column;gap:2px}
.nav-sec.fechado .nav-itens{grid-template-rows:0fr}
.nav-sec.fechado:has(.nav-badge:not([hidden])) button.nav-grp::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--magenta);flex:none}
@media (prefers-reduced-motion:reduce){.nav-itens,.nav-seta{transition:none}}
.stat b small{display:inline;margin-left:4px}
.imp-chart em{position:static;font-style:normal;font-size:.7rem;color:var(--muted);height:14px;line-height:14px}

/* ----- Orçamento com vários projetos ----- */
.page-acts{display:flex;gap:8px;flex-wrap:wrap}
.env-item{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);grid-template-areas:"nome nome nome" "q u t";gap:4px 12px;padding:10px 0;border-bottom:1px dashed var(--line)}
.env-item:last-child{border-bottom:0}
.env-item .field{margin:0}
.env-item-nome{grid-area:nome;display:flex;align-items:center;gap:10px}
.env-item-nome img{width:36px;height:36px;border-radius:8px;object-fit:cover;flex:none}
.env-item-nome span{flex:1;min-width:0}
.env-item-nome b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.env-item-nome small{color:var(--muted);font-size:.82rem}
.env-item:not(.varios) .env-item-nome{display:none}
.env-item:not(.varios){grid-template-areas:"q u t";padding-top:0}
.env-rm{flex:none;width:34px;padding:0;justify-content:center}
.env-pe{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-top:10px}
.env-soma{display:flex;align-items:baseline;gap:10px}
.env-soma span{color:var(--muted);font-size:.9rem}
.env-soma b{font-family:var(--slab);font-size:1.4rem;font-variant-numeric:tabular-nums}
@media (max-width:620px){.env-item{grid-template-columns:1fr 1fr;grid-template-areas:"nome nome" "q q" "u t"}.env-item:not(.varios){grid-template-areas:"q q" "u t"}}
.ep-lista{display:flex;flex-direction:column;gap:6px;margin-top:10px;max-height:min(60vh,520px);overflow:auto}
.ep-item{display:flex;align-items:center;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:var(--card);cursor:pointer;text-align:left;color:inherit;font:inherit}
.ep-item:hover{border-color:var(--magenta)}
.ep-thumb{width:46px;height:46px;border-radius:9px;overflow:hidden;background:var(--soft);display:grid;place-items:center;flex:none}
.ep-thumb img{width:100%;height:100%;object-fit:cover}.ep-thumb svg{width:26px;height:26px}
.ep-t{flex:1;min-width:0}.ep-t b{display:block}.ep-t small{color:var(--muted)}
.ep-add{color:var(--magenta);font-weight:700;font-size:.9rem}
.ped-itens{margin:10px 0}
.ped-it{display:flex;align-items:center;gap:8px}
.ped-it img{width:28px;height:28px;border-radius:6px;object-fit:cover}
.orc-sub{color:var(--muted);margin:2px 0 12px}
.orc-lista{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.orc-lista li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.orc-it-foto{width:64px;height:64px;border-radius:12px;overflow:hidden;background:var(--soft);display:grid;place-items:center}
.orc-it-foto img{width:100%;height:100%;object-fit:cover}.orc-it-foto svg{width:34px;height:34px}
.orc-it-t b{display:block}.orc-it-t small{display:block;color:var(--muted);font-size:.85rem}
.orc-it-v{text-align:right;font-variant-numeric:tabular-nums}
.orc-it-v small{display:block;color:var(--muted);font-size:.85rem}
.orc-it-v b{font-size:1.05rem}
