/* VisualCalc ERP Pro — Estilos Completos */

/* ═══════════════════════════════════════════════════════════
   VISUALCALC ERP PRO — Design System
   Aesthetic: Industrial Luxury — dark, precise, premium
═══════════════════════════════════════════════════════════ */
:root {
  /* Core palette */
  --ink:     #06080f;
  --ink2:    #0c0f1a;
  --ink3:    #111828;
  --ink4:    #1a2035;
  --line:    #232b3e;
  --line2:   #2d3750;
  --gold:    #e8b84b;
  --gold2:   #f5d07a;
  --gold-d:  rgba(232,184,75,.12);
  --gold-g:  linear-gradient(135deg,#e8b84b,#f5d07a);
  --cyan:    #38c5e0;
  --green:   #2ed47a;
  --red:     #f04e4e;
  --warn:    #f0913a;
  --purple:  #8b5cf6;
  --text:    #e8eaf0;
  --text2:   #8892a8;
  --text3:   #4a5568;
  --r:       8px;
  --r-lg:    14px;
  --r-xl:    20px;
  --sh:      0 4px 32px rgba(0,0,0,.6);
  --sh-lg:   0 12px 60px rgba(0,0,0,.8);
  --sb-w:    240px;
  --hdr-h:   58px;
  /* Status colors */
  --s-orc:    var(--cyan);
  --s-apr:    var(--green);
  --s-prod:   var(--gold);
  --s-fin:    #6bcf8a;
  --s-cancel: var(--red);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--text);
  font-family:'Inter',sans-serif;
  font-size:14px;
  line-height:1.6;
  min-height:100vh;
  overflow-x:hidden;
}
/* Noise grain overlay */
body::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  opacity:.025;
}
::-webkit-scrollbar{width:4px;height:4px;}
::-webkit-scrollbar-track{background:var(--ink);}
::-webkit-scrollbar-thumb{background:var(--line2);border-radius:2px;}

/* ── NOVOS MÓDULOS v5 — Metalon · Produção · Simulador ──────────── */
.sim-bar-segment { transition: width .5s ease; }
#metalon_section { animation: pgIn .2s ease; }
#prod_resultado  { transition: all .2s; }
#simulador_lucro_box { animation: pgIn .3s ease; }
#sim_barra_custo div:hover { filter: brightness(1.2); cursor: pointer; }

/* ── CHAT IA ─────────────────────────────────────────────────────── */
#modal-chat-ia { display:none; }
#modal-chat-ia.open { display:flex; }
.ia-msg { max-width:88%;padding:10px 13px;border-radius:12px;font-size:13px;line-height:1.55; animation:pgIn .2s ease; }
.ia-msg-bot { background:var(--ink3);border:1px solid var(--line);border-radius:12px 12px 12px 4px;align-self:flex-start; }
.ia-msg-user { background:linear-gradient(135deg,rgba(139,92,246,.25),rgba(56,197,224,.15));border:1px solid rgba(139,92,246,.3);border-radius:12px 12px 4px 12px;align-self:flex-end;text-align:right; }
.ia-msg-loading { align-self:flex-start; }
.ia-typing { display:flex;gap:4px;align-items:center;padding:10px 14px;background:var(--ink3);border:1px solid var(--line);border-radius:12px 12px 12px 4px; }
.ia-typing span { width:6px;height:6px;border-radius:50%;background:var(--purple);animation:ia-bounce .8s infinite; }
.ia-typing span:nth-child(2) { animation-delay:.15s; }
.ia-typing span:nth-child(3) { animation-delay:.3s; }
@keyframes ia-bounce { 0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)} }

/* ── FLUXO STATUS ────────────────────────────────────────────────── */
.fluxo-step { display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);border:1px solid var(--line);margin-bottom:6px;font-size:13px; }
.fluxo-step.active { border-color:var(--gold);background:var(--gold-d); }
.fluxo-step.done { border-color:rgba(46,212,122,.3);background:rgba(46,212,122,.05);color:var(--text3); }
.fluxo-arrow { color:var(--text3);font-size:18px;text-align:center;margin:2px 0; }
/* ─────────────────────────────────────────────────────────────────── */
#app{display:flex;min-height:100vh;position:relative;z-index:1;}
.sidebar{
  width:var(--sb-w);background:var(--ink2);
  border-right:1px solid var(--line);
  position:fixed;top:0;left:0;bottom:0;z-index:200;
  display:flex;flex-direction:column;
  transition:transform .26s cubic-bezier(.4,0,.2,1);
}
.main-area{
  margin-left:var(--sb-w);
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:100vh;
  min-width:0;
  width:calc(100% - var(--sb-w));
  box-sizing:border-box;
  overflow-x:hidden;
}
.page-body{
  flex:1;
  padding:28px 32px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  min-width:0;
}

/* ── SIDEBAR ─────────────────────────────────────────────── */
.sb-brand{
  display:flex;align-items:center;gap:10px;
  padding:16px 18px 14px;
  border-bottom:1px solid var(--line);
  cursor:pointer;transition:opacity .15s;
}
.sb-brand:hover{opacity:.85;}
.sb-logo{
  width:34px;height:34px;
  background:var(--gold-g);
  border-radius:9px;
  display:flex;align-items:center;justify-content:center;
  font-family:'Bricolage Grotesque',sans-serif;
  font-weight:800;font-size:17px;color:#000;flex-shrink:0;
}
.sb-brand-name{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:15px;line-height:1.15;}
.sb-brand-name span{color:var(--gold);}
.sb-brand-ver{font-size:9.5px;color:var(--text3);text-transform:uppercase;letter-spacing:.1em;}
.sb-nav{flex:1;padding:10px 8px;overflow-y:auto;}
.sb-section{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.11em;color:var(--text3);padding:10px 10px 4px;margin-top:6px;}
.sb-item{
  display:flex;align-items:center;gap:9px;
  padding:9px 11px;border-radius:var(--r);
  cursor:pointer;font-size:13px;font-weight:500;color:var(--text2);
  background:none;border:none;width:100%;text-align:left;
  transition:all .14s;position:relative;
}
.sb-item:hover{background:var(--ink3);color:var(--text);}
.sb-item.active{background:var(--gold-d);color:var(--gold);font-weight:600;}
.sb-item.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:16px;background:var(--gold);border-radius:0 3px 3px 0;}
.sb-item-icon{font-size:15px;width:20px;text-align:center;flex-shrink:0;}
.sb-badge{margin-left:auto;background:var(--gold);color:#000;font-size:10px;font-weight:800;padding:1px 6px;border-radius:20px;min-width:18px;text-align:center;}
.sb-footer{padding:12px;border-top:1px solid var(--line);}
.user-chip{
  display:flex;align-items:center;gap:9px;
  padding:9px 11px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);
  cursor:pointer;transition:border-color .2s;
}
.user-chip:hover{border-color:var(--gold);}
.user-av{
  width:30px;height:30px;border-radius:50%;
  background:var(--gold-g);color:#000;
  display:flex;align-items:center;justify-content:center;
  font-weight:800;font-size:13px;flex-shrink:0;
  font-family:'Bricolage Grotesque',sans-serif;
}
.user-nm{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.user-rl{font-size:10px;color:var(--text3);}

/* ── TOPBAR ──────────────────────────────────────────────── */
.topbar{
  height:var(--hdr-h);background:rgba(6,8,15,.92);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 26px;position:sticky;top:0;z-index:100;
}
.tb-left{display:flex;align-items:center;gap:14px;}
.tb-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:17px;letter-spacing:-.2px;}
.tb-sub{font-size:11px;color:var(--text3);}
.tb-right{display:flex;align-items:center;gap:8px;}
.sb-dot{width:8px;height:8px;border-radius:50%;background:var(--warn);flex-shrink:0;}
.sb-dot.ok{background:var(--green);animation:pulse-g 2s infinite;}
@keyframes pulse-g{0%{box-shadow:0 0 0 0 rgba(46,212,122,.4)}70%{box-shadow:0 0 0 5px rgba(46,212,122,0)}100%{box-shadow:0 0 0 0 rgba(46,212,122,0)}}
.online-dot{width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse-g 2.5s infinite;flex-shrink:0;}
.online-dot.offline{background:var(--red);animation:none;}
/* ── STATUS BADGES NO TOPBAR ─── */
.tb-status-badge{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--text3);cursor:pointer;padding:5px 10px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);transition:all .15s;white-space:nowrap;}
.tb-status-badge:hover{border-color:var(--line2);color:var(--text);}
.tb-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;transition:background .3s;}
.tb-dot.ok{background:var(--green);animation:pulse-g 2.5s infinite;}
.tb-dot.warn{background:var(--warn);}
.tb-dot.error{background:var(--red);}
.tb-dot.idle{background:var(--text3);}
.sb-toggle{display:none;align-items:center;justify-content:center;width:34px;height:34px;border-radius:var(--r);border:1px solid var(--line);background:var(--ink3);cursor:pointer;font-size:17px;}
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:199;backdrop-filter:blur(4px);}

/* ── CARDS & GRID ────────────────────────────────────────── */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;}
.card{
  background:var(--ink2);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:20px;position:relative;overflow:hidden;
}
.card::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(232,184,75,.15),transparent);}
.card-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:14px;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.card-icon{width:26px;height:26px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:13px;background:var(--ink3);border:1px solid var(--line);flex-shrink:0;}

/* ── KPI CARDS ───────────────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}
.kpi-card{
  background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:18px;position:relative;overflow:hidden;transition:transform .18s,border-color .18s;
}
.kpi-card:hover{transform:translateY(-2px);border-color:var(--line2);}
.kpi-card::after{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--kc,var(--gold));opacity:.7;}
.kpi-icon{font-size:24px;margin-bottom:8px;display:block;}
.kpi-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:600;margin-bottom:4px;}
.kpi-val{font-family:'DM Mono',monospace;font-size:22px;font-weight:500;line-height:1.1;}
.kpi-val.g{color:var(--green);}
.kpi-val.y{color:var(--gold);}
.kpi-val.b{color:var(--cyan);}
.kpi-val.p{color:var(--purple);}
.kpi-sub{font-size:10px;color:var(--text3);margin-top:3px;}
.kpi-sm{background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:12px;}
.kpi-sm .kpi-lbl{margin-bottom:3px;}
.kpi-sm .kpi-val{font-size:17px;}

/* ── FORMS ───────────────────────────────────────────────── */
.form-group{margin-bottom:13px;}
label{display:block;font-size:11px;font-weight:600;color:var(--text2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em;}
input[type=text],input[type=number],input[type=email],input[type=password],
input[type=url],input[type=tel],input[type=date],select,textarea{
  width:100%;background:var(--ink3);border:1px solid var(--line);
  border-radius:var(--r);padding:9px 12px;color:var(--text);
  font-family:'Inter',sans-serif;font-size:13.5px;
  transition:border-color .15s,box-shadow .15s;outline:none;appearance:none;
}
input:focus,select:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,184,75,.08);}
input[type=range]{width:100%;accent-color:var(--gold);}
select option{background:var(--ink3);}
textarea{resize:vertical;}
.input-row{display:flex;gap:10px;align-items:flex-end;}
.input-row .form-group{flex:1;margin:0;}
.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;}

/* ── TOGGLE ──────────────────────────────────────────────── */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);margin-bottom:7px;gap:10px;}
.toggle-label{font-size:13px;color:var(--text);font-weight:500;}
.toggle-sub{font-size:11px;color:var(--text3);}
.toggle{position:relative;width:38px;height:21px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--ink4);border-radius:21px;border:1px solid var(--line);transition:.2s;}
.toggle-slider::before{content:'';position:absolute;width:15px;height:15px;left:2px;top:2px;background:var(--text3);border-radius:50%;transition:.2s;}
.toggle input:checked+.toggle-slider{background:var(--gold);border-color:var(--gold);}
.toggle input:checked+.toggle-slider::before{transform:translateX(17px);background:#000;}

/* ── BUTTONS ─────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 17px;border-radius:var(--r);font-family:'Inter',sans-serif;font-weight:600;font-size:13px;cursor:pointer;border:none;transition:all .16s;white-space:nowrap;text-decoration:none;}
.btn-primary{background:var(--gold-g);color:#000;}
.btn-primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 6px 20px rgba(232,184,75,.3);}
.btn-success{background:var(--green);color:#000;}
.btn-success:hover{filter:brightness(1.1);transform:translateY(-1px);}
.btn-danger{background:rgba(240,78,78,.12);color:var(--red);border:1px solid rgba(240,78,78,.25);}
.btn-danger:hover{background:rgba(240,78,78,.22);}
.btn-secondary{background:var(--ink3);color:var(--text);border:1px solid var(--line);}
.btn-secondary:hover{background:var(--ink4);border-color:var(--line2);}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--line);}
.btn-ghost:hover{background:var(--ink3);color:var(--text);}
.btn-warn{background:rgba(240,145,58,.12);color:var(--warn);border:1px solid rgba(240,145,58,.25);}
.btn-warn:hover{background:rgba(240,145,58,.22);}
.btn-cyan{background:rgba(56,197,224,.12);color:var(--cyan);border:1px solid rgba(56,197,224,.25);}
.btn-cyan:hover{background:rgba(56,197,224,.22);}
.btn-lg{padding:12px 24px;font-size:14px;border-radius:11px;}
.btn-sm{padding:5px 11px;font-size:12px;}
.btn-xs{padding:3px 8px;font-size:11px;}
.btn-icon{padding:7px;width:32px;height:32px;justify-content:center;font-size:14px;}

/* ── BADGES ──────────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;}
.badge-yellow{background:rgba(232,184,75,.12);color:var(--gold);border:1px solid rgba(232,184,75,.22);}
.badge-green{background:rgba(46,212,122,.12);color:var(--green);border:1px solid rgba(46,212,122,.22);}
.badge-red{background:rgba(240,78,78,.12);color:var(--red);border:1px solid rgba(240,78,78,.22);}
.badge-blue{background:rgba(56,197,224,.12);color:var(--cyan);border:1px solid rgba(56,197,224,.22);}
.badge-gray{background:rgba(72,85,105,.3);color:var(--text2);border:1px solid var(--line);}
.badge-purple{background:rgba(139,92,246,.12);color:var(--purple);border:1px solid rgba(139,92,246,.22);}

/* ── TABLE ───────────────────────────────────────────────── */
.data-table{width:100%;border-collapse:collapse;}
.data-table th{text-align:left;padding:9px 12px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);border-bottom:1px solid var(--line);}
.data-table td{padding:11px 12px;border-bottom:1px solid rgba(35,43,62,.5);font-size:13px;color:var(--text2);vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tr:hover td{background:rgba(255,255,255,.013);}
.data-table td strong{color:var(--text);font-weight:600;}

/* ── ALERTS ──────────────────────────────────────────────── */
.alert{padding:11px 14px;border-radius:var(--r);font-size:13px;margin-bottom:12px;}
.alert-info{background:rgba(56,197,224,.08);border:1px solid rgba(56,197,224,.2);color:var(--cyan);}
.alert-success{background:rgba(46,212,122,.08);border:1px solid rgba(46,212,122,.2);color:var(--green);}
.alert-warn{background:rgba(232,184,75,.08);border:1px solid rgba(232,184,75,.2);color:var(--gold);}
.alert-danger{background:rgba(240,78,78,.08);border:1px solid rgba(240,78,78,.2);color:var(--red);}

/* ── INNER TABS ──────────────────────────────────────────── */
.inner-tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;gap:0;}
.inner-tab{padding:9px 16px;cursor:pointer;font-size:13px;font-weight:500;color:var(--text3);border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .14s;background:none;border-top:none;border-left:none;border-right:none;white-space:nowrap;}
.inner-tab.active{color:var(--gold);border-bottom-color:var(--gold);}
.inner-tab:hover:not(.active){color:var(--text2);}
.inner-page{display:none;}
.inner-page.active{display:block;}

/* ── PAGES ───────────────────────────────────────────────── */
.page{display:none;width:100%;min-width:0;box-sizing:border-box;}
.page.active{display:block;width:100%;min-width:0;animation:pgIn .2s ease;}
@keyframes pgIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}

/* ── SECTION HEADER ──────────────────────────────────────── */
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:10px;}
.section-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;letter-spacing:-.2px;}
.section-sub{font-size:12px;color:var(--text3);margin-top:2px;}
.divider{height:1px;background:var(--line);margin:14px 0;}

/* ── RESULT BOX ──────────────────────────────────────────── */
.result-box{background:linear-gradient(135deg,rgba(232,184,75,.04),rgba(46,212,122,.025));border:1px solid rgba(232,184,75,.18);border-radius:var(--r-lg);padding:20px;}
.result-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid rgba(35,43,62,.6);}
.result-row:last-child{border-bottom:none;}
.result-row.total{padding-top:12px;border-top:1px solid rgba(232,184,75,.25);border-bottom:none;}
.result-label{font-size:13px;color:var(--text2);}
.result-label.main{font-family:'Bricolage Grotesque',sans-serif;font-size:15px;font-weight:700;color:var(--text);}
.result-value{font-family:'DM Mono',monospace;font-size:13.5px;color:var(--text);}
.result-value.main{font-size:20px;color:var(--gold);}
.result-value.green{color:var(--green);}

/* ── SLIDER ──────────────────────────────────────────────── */
.slider-row{display:flex;align-items:center;gap:12px;}
.slider-row input{flex:1;}
.slider-val{font-family:'DM Mono',monospace;font-size:18px;font-weight:500;color:var(--gold);min-width:50px;text-align:right;}

/* ── TAGS ────────────────────────────────────────────────── */
.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--ink3);border:1px solid var(--line);border-radius:6px;font-size:12px;color:var(--text2);cursor:pointer;transition:all .14s;}
.tag:hover,.tag.selected{background:var(--gold-d);border-color:var(--gold);color:var(--gold);}
.tags-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;}

/* ── UPLOAD ──────────────────────────────────────────────── */
.upload-area{border:2px dashed var(--line);border-radius:var(--r);padding:22px;text-align:center;cursor:pointer;transition:all .2s;margin-bottom:12px;display:block;}
.upload-area:hover,.upload-area.drag-over{border-color:var(--gold);background:var(--gold-d);}
.upload-area input[type=file]{display:none;}

/* ── MODAL ───────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .18s ease;}
.modal-box{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-xl);padding:26px;width:560px;max-width:100%;max-height:92vh;overflow-y:auto;position:relative;}
.modal-box-lg{width:800px;}
.modal-box-sm{width:420px;}
.modal-close{position:absolute;top:13px;right:13px;width:28px;height:28px;border-radius:50%;border:none;background:var(--ink3);color:var(--text2);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .14s;}
.modal-close:hover{background:var(--ink4);color:var(--text);}
.modal-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;margin-bottom:4px;}
.modal-sub{font-size:12px;color:var(--text3);margin-bottom:20px;}

/* ── KANBAN / STATUS ─────────────────────────────────────── */
.kanban-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;}
.kanban-col{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;}
.kanban-header{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between;}
.kanban-card{background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:11px;margin-bottom:8px;cursor:pointer;transition:border-color .15s;}
.kanban-card:hover{border-color:var(--gold);}
.kanban-card-title{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:4px;}
.kanban-card-meta{font-size:11px;color:var(--text3);}

/* ── PROGRESS BAR ────────────────────────────────────────── */
.progress-bar{height:4px;background:var(--ink4);border-radius:99px;overflow:hidden;}
.progress-fill{height:100%;background:var(--gold-g);border-radius:99px;transition:width .5s ease;}

/* ── TOAST ───────────────────────────────────────────────── */
#toast-container{position:fixed;bottom:22px;right:22px;z-index:9999;display:flex;flex-direction:column;gap:7px;pointer-events:none;}
.toast{display:flex;align-items:center;gap:11px;background:var(--ink2);border:1px solid var(--line);border-radius:var(--r);padding:11px 14px;min-width:260px;max-width:360px;box-shadow:var(--sh-lg);pointer-events:all;animation:toastIn .28s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden;}
.toast.removing{animation:toastOut .22s ease forwards;}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:none}}
@keyframes toastOut{to{opacity:0;transform:translateX(40px)}}
.toast-icon{font-size:17px;flex-shrink:0;}
.toast-title{font-weight:700;font-size:13px;}
.toast-msg{font-size:11.5px;color:var(--text2);margin-top:1px;}
.toast-bar{position:absolute;bottom:0;left:0;height:2px;animation:tBar 3.4s linear forwards;}
@keyframes tBar{from{width:100%}to{width:0}}
.toast.success{border-color:rgba(46,212,122,.3);} .toast.success .toast-bar{background:var(--green);}
.toast.error{border-color:rgba(240,78,78,.3);}   .toast.error .toast-bar{background:var(--red);}
.toast.warn{border-color:rgba(232,184,75,.3);}    .toast.warn .toast-bar{background:var(--gold);}
.toast.info{border-color:rgba(56,197,224,.3);}    .toast.info .toast-bar{background:var(--cyan);}

/* ── SPINNER ─────────────────────────────────────────────── */
.spinner{width:36px;height:36px;border:3px solid rgba(232,184,75,.15);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
#tela-bloqueio{display:none;position:fixed;inset:0;background:var(--ink);z-index:9998;align-items:center;justify-content:center;flex-direction:column;}
.bloq-card{background:var(--ink2);border:1px solid rgba(240,78,78,.3);border-radius:var(--r-xl);padding:36px;max-width:440px;width:90%;position:relative;z-index:1;}
.bloq-icon{font-size:52px;display:block;text-align:center;margin-bottom:12px;}
.bloq-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;text-align:center;margin-bottom:8px;color:var(--red);}
.bloq-sub{font-size:13px;color:var(--text2);text-align:center;margin-bottom:20px;line-height:1.7;}
.bloq-info{background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:20px;font-size:13px;color:var(--text2);line-height:2;}
.banner-assinatura{display:none;padding:10px 20px;font-size:13px;font-weight:500;align-items:center;gap:10px;}
.banner-warn{background:rgba(232,184,75,.1);border-bottom:1px solid rgba(232,184,75,.2);color:var(--gold);}
.banner-danger{background:rgba(240,78,78,.1);border-bottom:1px solid rgba(240,78,78,.2);color:var(--red);}

/* ── AUTH SCREEN ─────────────────────────────────────────── */
#auth-screen{display:none;position:fixed;inset:0;background:var(--ink);z-index:9997;align-items:center;justify-content:center;}
.auth-wrap{width:100%;max-width:420px;padding:20px;}
.auth-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-xl);padding:36px;}
.auth-logo-wrap{text-align:center;margin-bottom:26px;}
.auth-logo-mark{width:52px;height:52px;background:var(--gold-g);border-radius:13px;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:900;font-size:26px;color:#000;margin:0 auto 12px;}
.auth-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:21px;text-align:center;}
.auth-sub{font-size:13px;color:var(--text3);text-align:center;margin-top:4px;}
.auth-divider{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--text3);font-size:12px;}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line);}

/* ── FINANCIAL ───────────────────────────────────────────── */
.fin-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;display:flex;align-items:center;gap:14px;}
.fin-icon-wrap{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;}
.fin-icon-wrap.entrada{background:rgba(46,212,122,.12);}
.fin-icon-wrap.saida{background:rgba(240,78,78,.12);}
.fin-val{font-family:'DM Mono',monospace;font-weight:600;font-size:17px;}
.fin-val.entrada{color:var(--green);}
.fin-val.saida{color:var(--red);}

/* ── ANIMATIONS ──────────────────────────────────────────── */
@keyframes fadeIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}

/* ── RESPONSIVE ──────────────────────────────────────────── */
@media(max-width:1100px){.kanban-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:900px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:none;}
  .sb-overlay{display:block;}
  .sb-overlay.open{opacity:1;pointer-events:all;}
  .sb-toggle{display:flex;}
  .main-area{margin-left:0;width:100%;}
  .page-body{padding:14px 16px;width:100%;box-sizing:border-box;}
  .g2,.g3,.g4,.kpi-grid{grid-template-columns:1fr 1fr;}
  .kanban-grid{grid-template-columns:1fr 1fr;}
  .topbar{padding:0 14px;}
  .tb-sub{display:none;}
}
@media(max-width:560px){
  .g2,.g3,.g4,.kpi-grid{grid-template-columns:1fr;}
  .kanban-grid{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
}

/* ── PRINT ───────────────────────────────────────────────── */
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  body,html{margin:0!important;padding:0!important;background:#fff!important;}
  body::after,#app,#toast-container{display:none!important;}
  #print-sheet{display:block!important;position:static!important;}
  @page{size:A4 portrait;margin:0;}
}
#print-sheet{display:none;}
.ps-page{width:210mm;height:297mm;margin:0 auto;background:#fff;color:#1a1a1a;font-family:'Inter',sans-serif;font-size:11.5px;line-height:1.55;box-sizing:border-box;padding:0;display:flex;flex-direction:column;overflow:hidden;}
.ps-accent{height:5px;background:linear-gradient(90deg,#1a1a1a,#e8b84b 60%,#e05a2b);flex-shrink:0;}
.ps-header{display:flex;justify-content:space-between;align-items:flex-start;padding:9mm 13mm 7mm;flex-shrink:0;border-bottom:1px solid #e8e8e8;}
.ps-logo-mark{width:44px;height:44px;background:#e8b84b;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:21px;color:#000;font-family:'Bricolage Grotesque',sans-serif;flex-shrink:0;}
.ps-logo-img{max-height:50px;max-width:150px;object-fit:contain;}
.ps-company-name{font-weight:800;font-size:16px;color:#111;}
.ps-contact{font-size:9.5px;color:#666;margin-top:3px;}
.ps-badge{background:#1a1a1a;color:#fff;border-radius:9px;padding:10px 16px;text-align:right;min-width:130px;}
.ps-badge-eye{font-size:8px;text-transform:uppercase;letter-spacing:.14em;color:#e8b84b;font-weight:700;margin-bottom:3px;}
.ps-badge-num{font-family:'DM Mono',monospace;font-size:14px;font-weight:600;}
.ps-badge-date{font-size:9px;color:#aaa;margin-top:5px;}
.ps-to{padding:5mm 13mm 4mm;flex-shrink:0;}
.ps-to-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.1em;color:#aaa;font-weight:700;margin-bottom:2px;}
.ps-to-name{font-weight:800;font-size:15px;color:#1a1a1a;}
.ps-items-table{width:calc(100% - 26mm);margin:0 13mm;border-collapse:collapse;flex-shrink:0;border-radius:7px;overflow:hidden;border:1px solid #ececec;}
.ps-items-table thead tr{background:#f7f7f7;}
.ps-th{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:#999;font-weight:700;padding:8px 12px;border-bottom:1px solid #e8e8e8;}
.ps-th-r{text-align:right;}
.ps-td{padding:9px 12px;border-bottom:1px solid #f2f2f2;vertical-align:middle;font-size:11.5px;color:#555;}
.ps-td-r{text-align:right;font-family:'DM Mono',monospace;font-weight:600;color:#1a1a1a;}
.ps-item-name{font-weight:600;color:#1a1a1a;font-size:11.5px;}
.ps-item-desc{font-size:9.5px;color:#888;}
.ps-items-table tbody tr:last-child td{border-bottom:none;}
.ps-tr-alt{background:#fafafa;}
.ps-total-wrap{display:flex;justify-content:flex-end;padding:4mm 13mm 0;flex-shrink:0;}
.ps-total{background:#1a1a1a;border-radius:9px;padding:12px 18px;text-align:right;min-width:170px;}
.ps-total-lbl{font-size:8.5px;text-transform:uppercase;letter-spacing:.12em;color:#aaa;font-weight:700;margin-bottom:3px;}
.ps-total-val{font-family:'DM Mono',monospace;font-size:22px;font-weight:700;color:#e8b84b;}
.ps-obs{margin:4mm 13mm 0;background:#fffbea;border-left:3px solid #e8b84b;border-radius:0 5px 5px 0;padding:8px 12px;font-size:10px;color:#666;flex-shrink:0;}
.ps-sigs{display:flex;gap:24px;padding:0 13mm 5mm;flex-shrink:0;}
.ps-sig{flex:1;}
.ps-sig-line{border-top:1.5px solid #ccc;margin-bottom:5px;}
.ps-sig-name{font-size:10.5px;font-weight:600;color:#333;}
.ps-sig-role{font-size:9px;color:#aaa;}
.ps-footer{padding:3mm 13mm;border-top:1px solid #ececec;display:flex;justify-content:space-between;align-items:center;flex-shrink:0;background:#fafafa;}
.ps-footer-l{font-size:8.5px;color:#ccc;}
.ps-footer-r{font-size:8.5px;color:#ccc;font-family:'DM Mono',monospace;}

.spinner{width:36px;height:36px;border:3px solid rgba(232,184,75,.15);border-top-color:var(--gold);border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}
.badge-purple{background:rgba(139,92,246,.12);color:#8b5cf6;border:1px solid rgba(139,92,246,.22);}
.plan-card{background:var(--ink2);border:2px solid var(--line);border-radius:var(--r-lg);padding:24px;text-align:center;transition:all .2s;}
.plan-card:hover{border-color:var(--gold);transform:translateY(-2px);}
.plan-card.current{border-color:var(--gold);background:var(--gold-d);}
.plan-price{font-family:"DM Mono",monospace;font-size:28px;font-weight:700;color:var(--gold);margin:10px 0 4px;}

/* Módulos bloqueados */
.sb-item-locked { opacity:.6;cursor:not-allowed !important;position:relative; }
.sb-item-locked:hover { background:rgba(240,78,78,.05)!important;color:var(--red)!important; }
.sb-item-locked .sb-item-icon { filter:grayscale(1); }
/* Badge de plano necessário no item bloqueado */
.sb-lock { pointer-events:none;flex-shrink:0; }

.pix-key-box{background:var(--ink3);border:1px dashed var(--gold);border-radius:var(--r);padding:16px;cursor:pointer;transition:background .15s;margin-bottom:14px;text-align:center;}
.pix-key-box:hover{background:rgba(232,184,75,.06);}
.pix-key-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:700;margin-bottom:6px;}
.pix-key-value{font-family:'DM Mono',monospace;font-size:16px;font-weight:700;color:var(--gold);word-break:break-all;}
.pix-steps{display:flex;flex-direction:column;gap:10px;margin:14px 0;}
.pix-step{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:var(--text2);}
.pix-step-num{width:22px;height:22px;border-radius:50%;background:var(--gold);color:#000;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:1px;}

.owner-show { display: inline-flex !important; }
#cfg-tab-admin.active { display: inline-flex !important; }

/* ═══════════════════════════════════════════════════════════════
   CHECKLIST DE PRODUÇÃO
═══════════════════════════════════════════════════════════════ */
.checklist-wrap{background:var(--ink3);border:1px solid var(--line2);border-radius:var(--r-lg);padding:14px;}
.checklist-header{border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:10px;}
.checklist-item{display:flex;align-items:center;gap:8px;padding:8px 6px;border-radius:var(--r);transition:background .15s;cursor:pointer;}
.checklist-item:hover{background:rgba(255,255,255,.03);}
.checklist-item.concluido{background:rgba(46,212,122,.04);}
.checklist-item .chk-del{display:none;flex-shrink:0;}
.checklist-item:hover .chk-del{display:flex;}
.checklist-add input{background:var(--ink2);border:1px dashed var(--line2);border-radius:var(--r);padding:7px 10px;color:var(--text);font-size:12px;transition:border-color .15s;}
.checklist-add input:focus{border-color:var(--gold);border-style:solid;outline:none;}
.checklist-upgrade-notice{background:var(--ink3);border:1px dashed var(--line2);border-radius:var(--r-lg);}
.checklist-container{margin-top:4px;}

/* Print styles para checklist */
#checklist-print-sheet{display:none;}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;}
  body,html{margin:0!important;padding:0!important;background:#fff!important;}
  body::after,#app,#tela-bloqueio,#toast-container{display:none!important;}
  #checklist-print-sheet,#print-sheet{display:block!important;position:static!important;}
  @page{size:A4 portrait;margin:0;}
}
.chk-print-page{width:210mm;min-height:297mm;background:#fff;color:#1a1a1a;font-family:'Inter',sans-serif;font-size:11.5px;line-height:1.55;padding:0;display:flex;flex-direction:column;}
.chk-print-header{display:flex;align-items:center;gap:14px;padding:9mm 13mm 6mm;border-bottom:2px solid #e8b84b;flex-shrink:0;}
.chk-print-logo-wrap{flex-shrink:0;}
.chk-print-info{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4mm 13mm;background:#fafafa;border-bottom:1px solid #ececec;flex-shrink:0;}
.chk-info-row{display:flex;gap:8px;align-items:baseline;padding:2px 0;}
.chk-info-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:#aaa;min-width:70px;flex-shrink:0;}
.chk-info-val{font-size:11.5px;color:#333;}
.chk-print-table{width:calc(100% - 26mm);margin:4mm 13mm;border-collapse:collapse;flex-shrink:0;}
.chk-print-table thead tr{background:#1a1a1a;color:#fff;}
.chk-print-table th{padding:7px 10px;font-size:9px;text-transform:uppercase;letter-spacing:.06em;text-align:left;font-weight:700;}
.chk-print-table td{padding:9px 10px;border-bottom:1px solid #f0f0f0;vertical-align:middle;}
.chk-tr-alt td{background:#fafafa;}
.chk-print-sigs{display:flex;gap:22px;padding:6mm 13mm 4mm;flex-shrink:0;margin-top:auto;}
.chk-sig{flex:1;}
.chk-sig-line{border-top:1.5px solid #ccc;margin-bottom:5px;margin-top:14mm;}
.chk-sig-name{font-size:10.5px;font-weight:600;color:#333;}
.chk-sig-role{font-size:9px;color:#aaa;}
.chk-print-footer{padding:3mm 13mm;border-top:1px solid #ececec;display:flex;justify-content:space-between;font-size:8.5px;color:#ccc;background:#fafafa;flex-shrink:0;}


/* ═══════════════════════════════════════════════════════════════
   MODAL ADMIN PLANOS
═══════════════════════════════════════════════════════════════ */
#mpa-mods-list{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;padding-right:3px;}
#mpa-mods-list::-webkit-scrollbar{width:3px;}
#mpa-mods-list::-webkit-scrollbar-thumb{background:var(--line2);border-radius:2px;}
.mpa-mod-row:hover{background:var(--ink4)!important;}


/* ADM SAAS */
.adm-nav{display:flex;align-items:center;gap:4px;padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap;}.adm-nav-item{padding:7px 15px;border-radius:var(--r-lg);font-size:13px;font-weight:500;background:none;border:1px solid transparent;color:var(--text2);cursor:pointer;transition:all .15s;white-space:nowrap;}.adm-nav-item:hover{background:var(--ink2);color:var(--text);}.adm-nav-item.active{background:var(--gold-g);color:var(--gold);border-color:var(--gold-d);font-weight:700;}.adm-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px;}.adm-kpi{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;position:relative;overflow:hidden;transition:transform .15s;}.adm-kpi:hover{transform:translateY(-2px);}.adm-kpi::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--kc,var(--gold));}.adm-kpi-icon{font-size:22px;margin-bottom:8px;display:block;}.adm-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.09em;color:var(--text3);font-weight:700;margin-bottom:4px;}.adm-kpi-val{font-family:"DM Mono",monospace;font-size:22px;font-weight:600;line-height:1.1;margin-bottom:4px;}.adm-kpi-sub{font-size:11px;color:var(--text3);}.adm-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px;margin-bottom:16px;}.adm-card-hd{font-size:13px;font-weight:700;color:var(--text);margin-bottom:0;display:flex;align-items:center;gap:7px;}.adm-table{width:100%;border-collapse:collapse;}.adm-table thead tr{background:var(--ink3);}.adm-table th{padding:10px 14px;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);font-weight:700;text-align:left;white-space:nowrap;}.adm-table td{padding:11px 14px;border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle;}.adm-table tbody tr:hover{background:rgba(255,255,255,.02);}.adm-table tbody tr:last-child td{border-bottom:none;}.adm-planos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}.adm-plano-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-xl);padding:20px;display:flex;flex-direction:column;transition:border-color .2s;position:relative;overflow:hidden;}.adm-plano-card:hover{border-color:var(--pc,var(--gold));}.adm-plano-bar{position:absolute;top:0;left:0;right:0;height:4px;background:var(--pc,var(--gold));opacity:.8;}.adm-plano-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;margin-top:2px;}.adm-sec-title{font-family:Bricolage Grotesque,sans-serif;font-weight:800;font-size:18px;}.adm-sec-sub{font-size:12px;color:var(--text3);margin-top:2px;}.mono{font-family:"DM Mono",monospace;font-weight:600;}.gold{color:var(--gold);}.text-muted{color:var(--text3);font-size:12px;}.badge-purple{background:rgba(139,92,246,.12);color:#8b5cf6;border:1px solid rgba(139,92,246,.22);}.mac-info-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);}.mac-info-row:last-child{border-bottom:none;}.mac-info-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);font-weight:700;}.mac-info-val{font-size:13px;font-weight:500;}@media(max-width:768px){.adm-kpi-grid{grid-template-columns:repeat(2,1fr);}.adm-planos-grid{grid-template-columns:1fr;}}

.mat-kpi-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;}
#mat-tabela tbody tr:hover{background:rgba(255,255,255,.025);}
#mat-tabela tbody tr{cursor:pointer;transition:background .12s;}

/* ═══════════════════════════════════════════════════════
   ERP v4.0 — Insumos · Estoque · Compras · Fornecedores
═══════════════════════════════════════════════════════ */
.erp-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:18px;}

/* ── RESULT HERO CARD ──────────────────────────────────────── */
.res-hero{background:linear-gradient(135deg,rgba(232,184,75,.06),rgba(46,212,122,.03));border:1px solid rgba(232,184,75,.22);border-radius:var(--r-xl);padding:22px 24px;position:relative;margin-bottom:12px;overflow:hidden;animation:pgIn .3s ease;}
.res-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--gold-g);}
.res-hero-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--text3);font-weight:700;margin-bottom:6px;}
.res-hero-price{font-family:'DM Mono',monospace;font-size:36px;font-weight:700;color:var(--gold);line-height:1.1;margin-bottom:10px;}
.res-hero-badges{display:flex;gap:8px;flex-wrap:wrap;}
.res-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--r);font-size:12px;font-weight:600;}
.res-badge-custo{background:var(--ink3);border:1px solid var(--line);color:var(--text2);}
.res-badge-lucro{background:rgba(46,212,122,.1);border:1px solid rgba(46,212,122,.2);color:var(--green);}
.res-badge-markup{background:rgba(56,197,224,.1);border:1px solid rgba(56,197,224,.2);color:var(--cyan);}
.res-badge-margem{background:rgba(139,92,246,.1);border:1px solid rgba(139,92,246,.2);color:var(--purple);}
.margem-gauge{position:absolute;top:16px;right:18px;}
.gauge-track{fill:none;stroke:rgba(255,255,255,.06);stroke-width:5;}
.gauge-fill{fill:none;stroke-width:5;stroke-linecap:round;}
.gauge-text{font-family:'DM Mono',monospace;font-size:11px;font-weight:700;fill:var(--text);}
.gauge-label{font-size:7px;fill:var(--text3);text-transform:uppercase;letter-spacing:.08em;}
.res-number-anim{animation:resNumIn .45s cubic-bezier(.22,1,.36,1);}
@keyframes resNumIn{from{opacity:.2;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes resHeroIn{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}

/* ── DECISION SCORE ───────────────────────────────────────── */
.decision-score{display:flex;align-items:center;gap:14px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px;margin-bottom:12px;}
.score-ring{width:52px;height:52px;border-radius:50%;border:2px solid;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;flex-shrink:0;transition:all .4s;}
.score-info-title{font-weight:700;font-size:14px;margin-bottom:3px;}
.score-info-sub{font-size:12px;color:var(--text3);}

/* ── SMART ALERTS ─────────────────────────────────────────── */
.smart-alerts{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;}
.smart-alert{display:flex;align-items:flex-start;gap:10px;padding:10px 13px;border-radius:var(--r);font-size:13px;animation:pgIn .2s ease;}
.sa-ok{background:rgba(46,212,122,.07);border:1px solid rgba(46,212,122,.18);color:var(--green);}
.sa-info{background:rgba(56,197,224,.07);border:1px solid rgba(56,197,224,.18);color:var(--cyan);}
.sa-warn{background:rgba(232,184,75,.07);border:1px solid rgba(232,184,75,.18);color:var(--gold);}
.sa-danger{background:rgba(240,78,78,.07);border:1px solid rgba(240,78,78,.18);color:var(--red);}
.sa-icon{font-size:15px;flex-shrink:0;margin-top:1px;}

/* ── BREAKDOWN DE CUSTOS ──────────────────────────────────── */
.stacked-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;gap:1px;margin-bottom:10px;}
.stacked-seg{height:100%;min-width:2px;transition:width .5s ease;}
.breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;}
.breakdown-item{background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:10px;position:relative;overflow:hidden;animation:pgIn .2s ease;}
.breakdown-item::before{content:'';position:absolute;top:0;left:0;width:100%;height:2px;background:var(--bd-color,var(--gold));}
.breakdown-lbl{font-size:11px;color:var(--text3);margin-bottom:4px;display:flex;align-items:center;gap:4px;}
.breakdown-val{font-family:'DM Mono',monospace;font-size:13px;font-weight:600;color:var(--text);margin-bottom:2px;}
.breakdown-pct{font-size:10px;color:var(--text3);}
.breakdown-bar{position:absolute;bottom:0;left:0;height:2px;background:var(--bd-color,var(--gold));opacity:.4;transition:width .5s ease;}

/* ── IA ANALYSIS PANEL ────────────────────────────────────── */
.ia-analysis-panel{background:linear-gradient(135deg,rgba(139,92,246,.06),rgba(56,197,224,.03));border:1px solid rgba(139,92,246,.22);border-radius:var(--r-lg);padding:16px;margin-bottom:12px;animation:pgIn .3s ease;}
.ia-thinking{display:flex;align-items:center;gap:10px;color:var(--text3);font-size:13px;}
.ia-pulse{width:10px;height:10px;border-radius:50%;background:var(--purple);animation:ia-bounce .8s infinite;}

/* ── RES ACTIONS ──────────────────────────────────────────── */
.res-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px 0;border-top:1px solid var(--line);margin-top:4px;}

/* ═══════════════════════════════════════════════════════════
   WIZARD DE ORÇAMENTO v3.0 — CSS COMPLETO
═══════════════════════════════════════════════════════════ */

/* ── HEADER ──────────────────────────────────────────────── */
.wz-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px;flex-wrap:wrap;gap:12px;}
.wz-header-info{}
.wz-header-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:22px;letter-spacing:-.3px;display:flex;align-items:center;gap:10px;margin-bottom:3px;}
.wz-header-sub{font-size:12px;color:var(--text3);}
.wz-header-actions{display:flex;align-items:center;gap:8px;}
.wz-ref-badge{background:rgba(232,184,75,.1);border:1px solid rgba(232,184,75,.3);border-radius:99px;padding:5px 14px;font-family:'DM Mono',monospace;font-size:12px;font-weight:600;color:var(--gold);}

/* ── STEPS TRACK ─────────────────────────────────────────── */
.wz-steps-track{position:relative;margin-bottom:28px;padding:0 4px;}
.wz-steps{display:flex;justify-content:space-between;position:relative;z-index:1;}
.wz-steps-line{position:absolute;top:20px;left:20px;right:20px;height:2px;background:var(--line);z-index:0;}
.wz-steps-fill{position:absolute;top:20px;left:20px;height:2px;background:var(--gold-g);z-index:0;transition:width .5s cubic-bezier(.4,0,.2,1);}

/* ── STEP ITEM ───────────────────────────────────────────── */
.wz-step{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;position:relative;flex:1;transition:all .2s;}
.wz-step-node{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;border:2px solid var(--line);background:var(--ink2);color:var(--text3);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;}
.wz-step-label{font-size:10.5px;font-weight:600;color:var(--text3);white-space:nowrap;letter-spacing:.02em;transition:color .2s;text-align:center;}

/* Estado: ativo */
.wz-step.active .wz-step-node{background:var(--gold-g);border-color:var(--gold);color:#000;box-shadow:0 0 0 4px rgba(232,184,75,.15),0 4px 16px rgba(232,184,75,.3);}
.wz-step.active .wz-step-label{color:var(--gold);font-weight:700;}

/* Estado: concluído */
.wz-step.done .wz-step-node{background:rgba(46,212,122,.15);border-color:var(--green);color:var(--green);}
.wz-step.done .wz-step-label{color:var(--green);}

/* Estado: bloqueado */
.wz-step.locked{cursor:not-allowed;}
.wz-step.locked .wz-step-node{opacity:.35;}
.wz-step.locked .wz-step-label{opacity:.35;}

/* Hover em steps liberados */
.wz-step:not(.locked):not(.active):hover .wz-step-node{border-color:var(--line2);background:var(--ink3);color:var(--text);}
.wz-step:not(.locked):not(.active):hover .wz-step-label{color:var(--text2);}

/* ── BODY DO WIZARD ──────────────────────────────────────── */
.wz-body{position:relative;min-height:400px;}

/* ── PANE DE ETAPA ───────────────────────────────────────── */
.wz-step-pane{animation:wzSlideIn .28s cubic-bezier(.4,0,.2,1);}
@keyframes wzSlideIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes wzSlideInLeft{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}

/* ── PANE HEADER ─────────────────────────────────────────── */
.wz-pane-header{display:flex;align-items:center;gap:14px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line);}
.wz-pane-icon{width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;border:1px solid var(--line);flex-shrink:0;}
.wz-pane-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:20px;}
.wz-pane-sub{font-size:12px;color:var(--text3);margin-top:2px;}

/* ── GRIDS ───────────────────────────────────────────────── */
.wz-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.wz-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.wz-grid-4{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:12px;}
@media(max-width:768px){.wz-grid-2,.wz-grid-3,.wz-grid-4{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.wz-grid-2,.wz-grid-3,.wz-grid-4{grid-template-columns:1fr;}}

/* ── INPUTS ──────────────────────────────────────────────── */
.wz-input{width:100%;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:10px 13px;color:var(--text);font-family:'Outfit',sans-serif;font-size:13.5px;transition:border-color .15s,box-shadow .15s;outline:none;appearance:none;}
.wz-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(232,184,75,.08);}
.wz-input.wz-error{border-color:var(--red);box-shadow:0 0 0 3px rgba(240,78,78,.08);}
.wz-req-mark{color:var(--red);font-size:12px;}
.wz-field-hint{font-size:11px;color:var(--text3);margin-top:4px;line-height:1.4;}
.wz-required label{display:flex;align-items:center;gap:3px;}

/* ── SUB CARDS ───────────────────────────────────────────── */
.wz-card-sub{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:16px;}
.wz-card-sub-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:14px;display:flex;align-items:center;gap:6px;}

/* ── ÁREA DISPLAY ────────────────────────────────────────── */
.wz-area-pill{display:flex;justify-content:space-between;align-items:center;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-top:10px;}
.wz-area-label{font-size:13px;color:var(--text2);}
.wz-area-value{font-family:'DM Mono',monospace;font-size:22px;font-weight:700;color:var(--gold);}

/* ── COST ROWS ───────────────────────────────────────────── */
.wz-cost-rows{display:flex;flex-direction:column;gap:8px;}
.wz-cost-row{display:flex;justify-content:space-between;align-items:center;padding:10px 13px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);transition:border-color .15s;}
.wz-cost-row:hover{border-color:var(--line2);}
.wz-cost-info{flex:1;}
.wz-cost-name{font-size:13px;color:var(--text);font-weight:500;display:block;}
.wz-cost-hint{font-size:11px;color:var(--text3);}
.wz-cost-controls{display:flex;align-items:center;gap:8px;}
.wz-cost-input{width:96px;text-align:right;background:var(--ink4);border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:var(--text);font-family:'DM Mono',monospace;font-size:13px;outline:none;}
.wz-cost-input:focus{border-color:var(--gold);}

/* ── TRANSPORT DISPLAY ───────────────────────────────────── */
.wz-transport-display{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);margin-top:8px;}
.wz-transport-value{font-family:'DM Mono',monospace;font-size:15px;font-weight:600;color:var(--warn);}

/* ── BOTÃO CALCULAR ──────────────────────────────────────── */
.wz-calc-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:12px;background:var(--gold-g);color:#000;border:none;border-radius:var(--r-lg);padding:16px 28px;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:16px;cursor:pointer;transition:all .2s;letter-spacing:.01em;}
.wz-calc-btn:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 8px 28px rgba(232,184,75,.35);}
.wz-calc-btn:active{transform:translateY(0);filter:brightness(.95);}
.wz-calc-icon{font-size:20px;}
.wz-calc-arrow{font-size:18px;transition:transform .2s;}
.wz-calc-btn:hover .wz-calc-arrow{transform:translateX(4px);}

/* ── RESULT CTA ──────────────────────────────────────────── */
.wz-result-ctas{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:14px 0;border-top:1px solid var(--line);margin-top:10px;}

/* ── EMPTY STATE ─────────────────────────────────────────── */
.wz-empty-state{text-align:center;padding:48px 20px;background:var(--ink2);border:1px dashed var(--line);border-radius:var(--r-xl);}
.wz-empty-icon{font-size:48px;margin-bottom:12px;}
.wz-empty-title{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:18px;margin-bottom:6px;}
.wz-empty-sub{font-size:13px;color:var(--text3);}

/* ── STEP 5: CLIENTE ─────────────────────────────────────── */
.wz-client-notice{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px;}
.wz-notice-item{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:var(--r);font-size:13px;flex:1;min-width:200px;}
.wz-notice-opt{background:rgba(56,197,224,.07);border:1px solid rgba(56,197,224,.18);color:var(--cyan);}
.wz-notice-req{background:rgba(240,145,58,.07);border:1px solid rgba(240,145,58,.18);color:var(--warn);}
.wz-notice-item strong{font-weight:700;}

.wz-client-selector{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px;}
.wz-btn-new-client{display:flex;align-items:center;gap:6px;padding:10px 16px;background:rgba(46,212,122,.1);border:1px solid rgba(46,212,122,.25);border-radius:var(--r);color:var(--green);font-family:'Outfit',sans-serif;font-weight:600;font-size:13px;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0;}
.wz-btn-new-client:hover{background:rgba(46,212,122,.18);border-color:rgba(46,212,122,.4);}

.wz-divider-or{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--text3);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;}
.wz-divider-or::before,.wz-divider-or::after{content:'';flex:1;height:1px;background:var(--line);}

/* ── STEP 6: FINALIZAÇÃO ─────────────────────────────────── */
.wz-summary-card{background:linear-gradient(135deg,rgba(232,184,75,.06),rgba(46,212,122,.03));border:1px solid rgba(232,184,75,.2);border-radius:var(--r-xl);padding:20px;margin-bottom:14px;}
.wz-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px;}
.wz-summary-kpi{text-align:center;}
.wz-summary-kpi-label{font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:700;margin-bottom:4px;}
.wz-summary-kpi-value{font-family:'DM Mono',monospace;font-size:18px;font-weight:700;}

.wz-nf-status{margin-bottom:18px;border-radius:var(--r-lg);padding:13px 16px;display:flex;align-items:center;gap:12px;font-size:13px;}
.wz-nf-ok{background:rgba(46,212,122,.07);border:1px solid rgba(46,212,122,.2);color:var(--green);}
.wz-nf-warn{background:rgba(240,78,78,.07);border:1px solid rgba(240,78,78,.2);color:var(--red);}

.wz-final-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:560px){.wz-final-actions{grid-template-columns:1fr;}}
.wz-action-btn{display:flex;align-items:center;gap:14px;padding:18px 20px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--ink2);cursor:pointer;transition:all .18s;text-align:left;}
.wz-action-btn:hover{border-color:var(--line2);background:var(--ink3);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.3);}
.wz-action-icon{font-size:28px;flex-shrink:0;width:44px;text-align:center;}
.wz-action-label{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:15px;color:var(--text);display:block;}
.wz-action-desc{font-size:11px;color:var(--text3);}
.wz-action-save{border-color:rgba(46,212,122,.25);}
.wz-action-save:hover{border-color:var(--green);box-shadow:0 8px 24px rgba(46,212,122,.12);}
.wz-action-pdf{border-color:rgba(56,197,224,.25);}
.wz-action-pdf:hover{border-color:var(--cyan);box-shadow:0 8px 24px rgba(56,197,224,.12);}
.wz-action-wa{border-color:rgba(46,212,122,.2);}
.wz-action-wa:hover{border-color:var(--green);}
.wz-action-nf{border-color:rgba(139,92,246,.25);}
.wz-action-nf:hover{border-color:var(--purple);box-shadow:0 8px 24px rgba(139,92,246,.12);}
.wz-action-nf-disabled{opacity:.5;cursor:not-allowed;pointer-events:none;}

/* ── NAV BAR ─────────────────────────────────────────────── */
.wz-nav-bar{display:flex;align-items:center;justify-content:space-between;margin-top:28px;padding-top:16px;border-top:1px solid var(--line);}
.wz-nav-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 20px;border-radius:var(--r);font-family:'Outfit',sans-serif;font-weight:600;font-size:14px;cursor:pointer;border:none;transition:all .16s;}
.wz-nav-prev{background:var(--ink3);color:var(--text2);border:1px solid var(--line);}
.wz-nav-prev:hover{background:var(--ink4);color:var(--text);}
.wz-nav-next{background:var(--gold-g);color:#000;}
.wz-nav-next:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 16px rgba(232,184,75,.3);}
.wz-nav-next:disabled{opacity:.4;cursor:not-allowed;transform:none;box-shadow:none;filter:none;}
.wz-nav-progress{font-size:12px;color:var(--text3);}
.wz-nav-step-info strong{color:var(--text);}

/* ── VALIDATION FEEDBACK ─────────────────────────────────── */
.wz-validation-msg{font-size:11.5px;margin-top:4px;font-weight:500;display:flex;align-items:center;gap:4px;}
.wz-validation-msg.error{color:var(--red);}
.wz-validation-msg.ok{color:var(--green);}

/* ── TOOLTIP STEP ────────────────────────────────────────── */
.wz-step-req-badge{position:absolute;top:-4px;right:-4px;width:12px;height:12px;border-radius:50%;background:var(--gold);display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;color:#000;}

/* ═══════════════════════════════════════════════════════════
   ERP COMPLETO v2.0 — CSS DOS 4 MÓDULOS EXPANDIDOS
   Dashboard Executivo · Financeiro · Produção · Multiusuários
═══════════════════════════════════════════════════════════ */

/* ── DASHBOARD EXECUTIVO ──────────────────────────────────── */
.dash-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.dash-greeting{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:24px;letter-spacing:-.3px;}
.dash-sub{font-size:12px;color:var(--text3);margin-top:2px;}
.dash-period-selector{display:flex;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;}
.dash-period-btn{padding:6px 14px;background:none;border:none;color:var(--text3);font-size:12px;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap;}
.dash-period-btn.active{background:var(--ink4);color:var(--gold);}
.dash-period-btn:hover:not(.active){color:var(--text);}

/* KPIs principais */
.dash-kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px;}
@media(max-width:900px){.dash-kpi-row{grid-template-columns:repeat(2,1fr);}}
@media(max-width:500px){.dash-kpi-row{grid-template-columns:1fr;}}
.dash-kpi-card{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--ink2);position:relative;overflow:hidden;transition:transform .15s,box-shadow .15s;}
.dash-kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;}
.dash-kpi-gold::before{background:var(--gold-g);}
.dash-kpi-green::before{background:linear-gradient(90deg,var(--green),#4ade80);}
.dash-kpi-cyan::before{background:linear-gradient(90deg,var(--cyan),#67e8f9);}
.dash-kpi-purple::before{background:linear-gradient(90deg,var(--purple),#a78bfa);}
.dash-kpi-card:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.3);}
.dash-kpi-icon{font-size:28px;flex-shrink:0;width:44px;text-align:center;opacity:.9;}
.dash-kpi-body{flex:1;min-width:0;}
.dash-kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:700;margin-bottom:4px;}
.dash-kpi-value{font-family:'DM Mono',monospace;font-size:22px;font-weight:700;color:var(--text);line-height:1;margin-bottom:3px;}
.dash-kpi-delta{font-size:11px;color:var(--text3);}
.dash-kpi-delta.up{color:var(--green);}
.dash-kpi-delta.down{color:var(--red);}

/* KPIs secundários */
.dash-kpi-row2{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:20px;}
@media(max-width:900px){.dash-kpi-row2{grid-template-columns:repeat(3,1fr);}}
@media(max-width:500px){.dash-kpi-row2{grid-template-columns:repeat(2,1fr);}}
.kpi-sm2{display:flex;align-items:center;gap:10px;background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:11px 13px;}
.kpi-sm2-icon{font-size:18px;flex-shrink:0;}
.kpi-sm2-val{font-family:'DM Mono',monospace;font-size:16px;font-weight:700;color:var(--text);}
.kpi-sm2-lbl{font-size:10px;color:var(--text3);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-top:2px;}
.kpi-sm2-val.g{color:var(--green);}
.kpi-sm2-val.b{color:var(--cyan);}
.kpi-sm2-val.y{color:var(--gold);}

/* Gráfico de vendas */
.dash-charts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;}
@media(max-width:1100px){.dash-charts-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.dash-charts-grid{grid-template-columns:1fr;}}
.dash-chart-card{min-height:160px;}
.dash-chart-label{font-size:9px;color:var(--text3);text-align:center;font-family:'DM Mono',monospace;}

/* Ações rápidas */
.dash-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px;}
.dash-quick-btn{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .15s;text-align:left;}
.dash-quick-btn:hover{background:var(--ink4);border-color:var(--line2);color:var(--text);transform:translateX(2px);}
.dash-quick-btn span{font-size:15px;}

/* Produtos mais vendidos */
.dash-produto-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);}
.dash-produto-rank{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;flex-shrink:0;}
.dash-produto-rank.r1{background:rgba(232,184,75,.15);color:var(--gold);border:1px solid rgba(232,184,75,.3);}
.dash-produto-rank.r2{background:rgba(255,255,255,.06);color:var(--text3);border:1px solid var(--line);}
.dash-produto-rank.r3{background:rgba(240,145,58,.1);color:var(--warn);border:1px solid rgba(240,145,58,.25);}
.dash-produto-bar-wrap{flex:1;background:var(--line);border-radius:99px;height:4px;overflow:hidden;}
.dash-produto-bar{height:100%;border-radius:99px;background:var(--gold-g);transition:width .5s ease;}

/* ── FINANCEIRO EXPANDIDO ─────────────────────────────────── */
.fin-sub{font-size:10.5px;color:var(--text3);margin-top:3px;}
.fin-mes-banner{background:linear-gradient(135deg,rgba(232,184,75,.06),rgba(46,212,122,.04));border:1px solid rgba(232,184,75,.2);border-radius:var(--r-xl);padding:16px 20px;margin-bottom:16px;}
.fin-mes-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);margin-bottom:12px;display:flex;align-items:center;gap:7px;}
.fin-mes-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
@media(max-width:700px){.fin-mes-grid{grid-template-columns:repeat(2,1fr);}}
.fin-mes-kpi{text-align:center;}
.fin-mes-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);font-weight:700;margin-bottom:4px;}
.fin-mes-kpi-value{font-family:'DM Mono',monospace;font-size:18px;font-weight:700;}
.fin-mes-kpi-value.entrada{color:var(--green);}
.fin-mes-kpi-value.saida{color:var(--red);}
.fin-filtros{display:flex;align-items:flex-end;gap:12px;margin-bottom:14px;flex-wrap:wrap;}
.fin-filtro-datas{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;}

/* Origem badge */
.badge-origem{background:rgba(56,197,224,.08);border:1px solid rgba(56,197,224,.18);color:var(--cyan);font-size:9.5px;padding:2px 7px;border-radius:99px;font-weight:600;}
.badge-origem-manual{background:rgba(139,92,246,.08);border:1px solid rgba(139,92,246,.18);color:var(--purple);}

/* ── PRODUÇÃO — CAMPOS EXPANDIDOS ────────────────────────── */
.ped-card-resp{font-size:11px;color:var(--cyan);font-weight:600;margin-top:3px;display:flex;align-items:center;gap:4px;}
.ped-card-prazo{font-size:10.5px;color:var(--text3);margin-top:2px;}
.ped-card-prazo.vencido{color:var(--red);font-weight:600;}
.ped-card-prazo.hoje{color:var(--warn);font-weight:600;}
.ped-card-prazo.ok{color:var(--green);}

/* ── MODAL DE ORDEM DE PRODUÇÃO ───────────────────────────── */
.op-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}

/* ── USUÁRIOS — GESTÃO DE EQUIPE ─────────────────────────── */
.usr-card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-xl);padding:18px;display:flex;align-items:center;gap:14px;transition:border-color .15s;}
.usr-card:hover{border-color:var(--line2);}
.usr-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:18px;flex-shrink:0;}
.usr-avatar-admin{background:rgba(232,184,75,.15);color:var(--gold);border:2px solid rgba(232,184,75,.3);}
.usr-avatar-vendas{background:rgba(46,212,122,.12);color:var(--green);border:2px solid rgba(46,212,122,.25);}
.usr-avatar-producao{background:rgba(56,197,224,.12);color:var(--cyan);border:2px solid rgba(56,197,224,.25);}
.usr-avatar-financeiro{background:rgba(139,92,246,.12);color:var(--purple);border:2px solid rgba(139,92,246,.25);}
.usr-info{flex:1;min-width:0;}
.usr-nome{font-weight:700;font-size:14px;margin-bottom:3px;}
.usr-email{font-size:12px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.usr-tipo-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;padding:3px 9px;border-radius:99px;margin-top:4px;display:inline-block;}
.usr-tipo-admin{background:rgba(232,184,75,.1);color:var(--gold);border:1px solid rgba(232,184,75,.25);}
.usr-tipo-vendas{background:rgba(46,212,122,.1);color:var(--green);border:1px solid rgba(46,212,122,.25);}
.usr-tipo-producao{background:rgba(56,197,224,.1);color:var(--cyan);border:1px solid rgba(56,197,224,.25);}
.usr-tipo-financeiro{background:rgba(139,92,246,.1);color:var(--purple);border:1px solid rgba(139,92,246,.25);}
.usr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:16px;}
.usr-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.usr-status-dot.ativo{background:var(--green);box-shadow:0 0 6px var(--green);}
.usr-status-dot.inativo{background:var(--text3);}

/* ── PERMISSÕES VISUAIS ───────────────────────────────────── */
.perm-matrix{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;}
.perm-matrix table{width:100%;border-collapse:collapse;}
.perm-matrix th{background:var(--ink3);padding:10px 14px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text3);}
.perm-matrix td{padding:10px 14px;border-top:1px solid var(--line);font-size:13px;}
.perm-check{color:var(--green);font-size:16px;}
.perm-block{color:var(--text3);font-size:14px;opacity:.4;}

/* ═══════════════════════════════════════════════════════════
   AUTH SCREEN v3.0 — VisualCalc ERP Pro
   Design dark premium · responsivo · animado
═══════════════════════════════════════════════════════════ */

/* ── FUNDO ──────────────────────────────────────────────── */
#auth-screen { background: var(--ink); }

.auth-bg {
  position: absolute; inset: 0;
  overflow: hidden; pointer-events: none;
}
.auth-bg-orb {
  position: absolute; border-radius: 50%;
  filter: blur(80px); opacity: .35;
  animation: auth-orb-float 8s ease-in-out infinite;
}
.auth-bg-orb1 {
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(232,184,75,.18) 0%, transparent 70%);
  top: -200px; left: -200px;
  animation-delay: 0s;
}
.auth-bg-orb2 {
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(46,212,122,.12) 0%, transparent 70%);
  bottom: -150px; right: -100px;
  animation-delay: 3s;
}
.auth-bg-orb3 {
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(139,92,246,.1) 0%, transparent 70%);
  top: 40%; left: 40%;
  animation-delay: 5s;
}
@keyframes auth-orb-float {
  0%,100% { transform: translateY(0) scale(1); }
  50%      { transform: translateY(-24px) scale(1.04); }
}
.auth-bg-grid {
  position: absolute; inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
  background-size: 60px 60px;
}

/* ── LAYOUT SPLIT ───────────────────────────────────────── */
.auth-layout {
  position: relative; z-index: 1;
  width: 100%; max-width: 980px;
  min-height: 100vh;
  display: flex;
  margin: 0 auto;
}

/* ── PAINEL ESQUERDO ────────────────────────────────────── */
.auth-left {
  flex: 1;
  display: flex; flex-direction: column;
  justify-content: center;
  padding: 60px 52px;
  position: relative;
}
.auth-left::after {
  content: '';
  position: absolute; top: 10%; right: 0; bottom: 10%;
  width: 1px;
  background: linear-gradient(to bottom, transparent, var(--line), transparent);
}
.auth-brand-logo {
  margin-bottom: 20px;
}
.auth-brand-icon {
  width: 58px; height: 58px;
  background: var(--gold-g);
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 900; font-size: 28px; color: #000;
  box-shadow: 0 8px 32px rgba(232,184,75,.3);
}
.auth-brand-name {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800; font-size: 36px;
  color: var(--text); letter-spacing: -.5px;
  margin-bottom: 6px;
}
.auth-brand-tag {
  font-size: 14px; color: var(--text3);
  margin-bottom: 40px;
}
.auth-features {
  display: flex; flex-direction: column; gap: 14px;
  margin-bottom: 48px;
}
.auth-feature-item {
  display: flex; align-items: center; gap: 12px;
  font-size: 14px; color: var(--text2);
}
.auth-feature-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0;
  box-shadow: 0 0 8px currentColor;
}
.auth-left-footer {
  font-size: 11px; color: var(--text3);
  display: flex; align-items: center; gap: 6px;
}
.auth-left-footer::before {
  content: '🔒'; font-size: 12px;
}

/* ── PAINEL DIREITO ─────────────────────────────────────── */
.auth-right {
  width: 440px; flex-shrink: 0;
  display: flex; flex-direction: column;
  justify-content: center;
  padding: 40px 44px;
  position: relative;
}
.auth-mobile-brand {
  display: none;
  align-items: center; gap: 10px;
  justify-content: center;
  margin-bottom: 24px;
}

/* ── CARD ───────────────────────────────────────────────── */
.auth-card {
  background: var(--ink2);
  border: 1px solid var(--line);
  border-radius: 24px;
  padding: 36px 32px;
  position: relative;
  overflow: hidden;
}
.auth-card::before {
  content: '';
  position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--gold-g);
}

/* ── PANE (slides) ──────────────────────────────────────── */
.auth-pane { animation: auth-fadein .25s ease; }
.auth-pane.active {}
@keyframes auth-fadein {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

/* ── HEADER ─────────────────────────────────────────────── */
.auth-card-header { margin-bottom: 24px; }
.auth-card-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800; font-size: 22px;
  color: var(--text); margin-bottom: 4px;
}
.auth-card-sub { font-size: 13px; color: var(--text3); }

/* ── CAMPOS ─────────────────────────────────────────────── */
.auth-field-group { margin-bottom: 16px; }
.auth-label {
  display: block; font-size: 12px; font-weight: 600;
  color: var(--text2); text-transform: uppercase;
  letter-spacing: .06em; margin-bottom: 7px;
}
.auth-input-wrap {
  position: relative; display: flex; align-items: center;
}
.auth-input-icon {
  position: absolute; left: 13px;
  font-size: 14px; pointer-events: none; z-index: 1;
}
.auth-input {
  width: 100%; padding: 11px 42px 11px 38px;
  background: var(--ink3);
  border: 1.5px solid var(--line);
  border-radius: var(--r-lg);
  color: var(--text); font-family: 'Outfit', sans-serif; font-size: 14px;
  outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.auth-input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(232,184,75,.1);
  background: var(--ink4);
}
.auth-input::placeholder { color: var(--text3); }
.auth-input.error { border-color: var(--red); box-shadow: 0 0 0 3px rgba(240,78,78,.1); }
.auth-input.ok    { border-color: var(--green); }
.auth-eye-btn {
  position: absolute; right: 12px;
  background: none; border: none;
  color: var(--text3); font-size: 14px; cursor: pointer;
  padding: 4px; line-height: 1;
  transition: color .15s;
}
.auth-eye-btn:hover { color: var(--text); }

/* ── FORÇA DA SENHA ─────────────────────────────────────── */
.auth-strength-bar {
  height: 3px; background: var(--line);
  border-radius: 99px; margin-top: 8px; overflow: hidden;
}
.auth-strength-fill {
  height: 100%; width: 0; border-radius: 99px;
  transition: width .3s ease, background .3s ease;
}
.auth-strength-label {
  font-size: 10.5px; margin-top: 4px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
}

/* ── MENSAGEM DE ERRO/SUCESSO ───────────────────────────── */
.auth-msg {
  min-height: 20px; margin-bottom: 12px;
  font-size: 12.5px; font-weight: 500;
  border-radius: var(--r); padding: 0;
  transition: all .2s;
}
.auth-msg.error {
  background: rgba(240,78,78,.08);
  border: 1px solid rgba(240,78,78,.2);
  color: var(--red);
  padding: 10px 13px;
}
.auth-msg.success {
  background: rgba(46,212,122,.08);
  border: 1px solid rgba(46,212,122,.2);
  color: var(--green);
  padding: 10px 13px;
}
.auth-msg.warn {
  background: rgba(232,184,75,.08);
  border: 1px solid rgba(232,184,75,.2);
  color: var(--gold);
  padding: 10px 13px;
}

/* ── BOTÕES ─────────────────────────────────────────────── */
.auth-btn-primary {
  width: 100%; padding: 13px 24px;
  background: var(--gold-g); color: #000;
  border: none; border-radius: var(--r-lg);
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800; font-size: 15px;
  cursor: pointer; transition: all .18s;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin-bottom: 10px;
}
.auth-btn-primary:hover:not(:disabled) {
  filter: brightness(1.08);
  transform: translateY(-1px);
  box-shadow: 0 6px 22px rgba(232,184,75,.35);
}
.auth-btn-primary:active { transform: translateY(0); }
.auth-btn-primary:disabled {
  opacity: .45; cursor: not-allowed;
  transform: none; box-shadow: none; filter: none;
}
.auth-btn-secondary {
  width: 100%; padding: 11px 20px;
  background: transparent;
  border: 1.5px solid var(--line);
  border-radius: var(--r-lg);
  color: var(--text2); font-family: 'Outfit', sans-serif;
  font-weight: 600; font-size: 14px;
  cursor: pointer; transition: all .15s;
  display: block; text-align: center;
}
.auth-btn-secondary:hover {
  border-color: var(--line2); color: var(--text);
  background: var(--ink3);
}
.auth-btn-ghost {
  width: 100%; padding: 10px; background: transparent;
  border: none; color: var(--text3); font-size: 13px;
  cursor: pointer; transition: color .15s; text-align: center;
}
.auth-btn-ghost:hover { color: var(--text); }

/* ── DIVISOR ────────────────────────────────────────────── */
.auth-divider {
  display: flex; align-items: center; gap: 12px;
  margin: 14px 0; color: var(--text3); font-size: 12px;
}
.auth-divider::before, .auth-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--line);
}

/* ── LINKS ──────────────────────────────────────────────── */
.auth-link-sm {
  font-size: 12px; color: var(--cyan);
  cursor: pointer; transition: color .15s;
}
.auth-link-sm:hover { color: var(--text); }
.auth-config-link {
  text-align: center; font-size: 11.5px;
  color: var(--text3); cursor: pointer;
  margin-top: 16px; transition: color .15s;
}
.auth-config-link:hover { color: var(--cyan); }
.auth-back-btn {
  background: none; border: none;
  color: var(--text3); font-size: 12px;
  cursor: pointer; padding: 0;
  margin-bottom: 16px; transition: color .15s;
  display: flex; align-items: center; gap: 4px;
}
.auth-back-btn:hover { color: var(--text); }

/* ── STEPS DO CADASTRO ──────────────────────────────────── */
.auth-reg-steps {
  display: flex; align-items: center;
  gap: 0; margin-bottom: 24px;
}
.auth-reg-step {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
  flex: 0 0 auto;
}
.auth-reg-step-dot {
  width: 28px; height: 28px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700;
  background: var(--ink3); border: 2px solid var(--line);
  color: var(--text3); transition: all .3s;
}
.auth-reg-step.active .auth-reg-step-dot {
  background: rgba(232,184,75,.15);
  border-color: var(--gold); color: var(--gold);
  box-shadow: 0 0 0 3px rgba(232,184,75,.1);
}
.auth-reg-step.done .auth-reg-step-dot {
  background: rgba(46,212,122,.15);
  border-color: var(--green); color: var(--green);
}
.auth-reg-step-lbl { font-size: 9.5px; color: var(--text3); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.auth-reg-step.active .auth-reg-step-lbl { color: var(--gold); }
.auth-reg-step.done .auth-reg-step-lbl { color: var(--green); }
.auth-reg-step-line {
  flex: 1; height: 1.5px;
  background: var(--line); margin-bottom: 16px;
  min-width: 28px;
}

/* ── SPIN ───────────────────────────────────────────────── */
.auth-spin {
  display: inline-block;
  animation: auth-spin 1s linear infinite;
}
@keyframes auth-spin { to { transform: rotate(360deg); } }

/* ── RESPONSIVO ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .auth-layout { flex-direction: column; min-height: auto; }
  .auth-left { display: none; }
  .auth-left::after { display: none; }
  .auth-right {
    width: 100%; padding: 20px 16px;
    min-height: 100vh;
    justify-content: center;
  }
  .auth-mobile-brand { display: flex; }
  .auth-card { padding: 28px 22px; }
}
@media (max-width: 480px) {
  .auth-card { border-radius: 18px; padding: 24px 18px; }
  .auth-card-title { font-size: 20px; }
}

/* ═══════════════════════════════════════════════════════════
   MÓDULO PRODUTOS v2.0 — CSS
   Abas do modal · Fiscal · Preços · Produção
═══════════════════════════════════════════════════════════ */

/* ── ABAS DO MODAL ──────────────────────────────────────── */
.prod-tabs {
  display: flex; gap: 4px;
  background: var(--ink3);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 4px;
}
.prod-tab {
  flex: 1; padding: 8px 12px;
  background: none; border: none;
  border-radius: var(--r);
  color: var(--text3); font-size: 12px; font-weight: 600;
  cursor: pointer; transition: all .15s; white-space: nowrap;
}
.prod-tab:hover { color: var(--text); background: var(--ink4); }
.prod-tab.active {
  background: var(--ink2); color: var(--gold);
  box-shadow: 0 1px 4px rgba(0,0,0,.3);
}
.prod-tab-pane { animation: pgIn .2s ease; }

/* ── BANNER FISCAL ──────────────────────────────────────── */
.prod-fiscal-banner {
  display: flex; align-items: flex-start; gap: 12px;
  background: rgba(139,92,246,.08);
  border: 1px solid rgba(139,92,246,.2);
  border-radius: var(--r-lg);
  padding: 13px 16px;
  margin-bottom: 18px;
  font-size: 13px; color: var(--text2);
}
.prod-fiscal-banner span { font-size: 22px; flex-shrink: 0; }

/* ── RESUMO FISCAL ──────────────────────────────────────── */
.prod-fiscal-resumo {
  background: var(--ink3);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 14px 16px;
  margin-top: 16px;
}

/* ── PREVIEW DE PREÇO ───────────────────────────────────── */
.prod-preco-preview {
  background: linear-gradient(135deg, rgba(232,184,75,.06), rgba(46,212,122,.03));
  border: 1px solid rgba(232,184,75,.2);
  border-radius: var(--r-lg);
  padding: 14px 16px;
  margin-top: 16px;
}

/* ── ACABAMENTOS ────────────────────────────────────────── */
.prod-acabamentos-grid {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 8px; margin-top: 6px;
}
.prod-acab-check {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  background: var(--ink3);
  border: 1px solid var(--line);
  border-radius: var(--r);
  font-size: 12.5px; color: var(--text2);
  cursor: pointer; transition: all .15s;
}
.prod-acab-check:hover { border-color: var(--gold); color: var(--text); }
.prod-acab-check input[type="checkbox"] { accent-color: var(--gold); width: 14px; height: 14px; }
.prod-acab-check input:checked + span,
.prod-acab-check:has(input:checked) { color: var(--gold); border-color: rgba(232,184,75,.3); background: rgba(232,184,75,.06); }

/* ── NCM HINT ───────────────────────────────────────────── */
.prod-ncm-hint {
  font-size: 11px; color: var(--cyan); margin-top: 4px;
  font-style: italic; min-height: 14px;
}

/* ── PÁGINA DE PRODUTOS — TABELA ────────────────────────── */
.prod-list-table { width: 100%; border-collapse: collapse; }
.prod-list-table thead tr { background: var(--ink3); }
.prod-list-table th {
  padding: 10px 14px; font-size: 10.5px;
  text-transform: uppercase; letter-spacing: .06em;
  color: var(--text3); font-weight: 700; text-align: left;
  white-space: nowrap;
}
.prod-list-table td {
  padding: 11px 14px; border-bottom: 1px solid var(--line);
  font-size: 13px; vertical-align: middle;
}
.prod-list-table tbody tr:hover { background: rgba(255,255,255,.02); cursor: pointer; }
.prod-list-table tbody tr:last-child td { border-bottom: none; }
.prod-ncm-pill {
  display: inline-block;
  font-family: 'DM Mono', monospace; font-size: 11px; font-weight: 600;
  background: rgba(56,197,224,.08); color: var(--cyan);
  border: 1px solid rgba(56,197,224,.2);
  padding: 2px 8px; border-radius: 99px;
}
.prod-cfop-pill {
  display: inline-block;
  font-family: 'DM Mono', monospace; font-size: 11px; font-weight: 600;
  background: rgba(232,184,75,.08); color: var(--gold);
  border: 1px solid rgba(232,184,75,.2);
  padding: 2px 8px; border-radius: 99px;
}
.prod-sku-pill {
  display: inline-block;
  font-family: 'DM Mono', monospace; font-size: 10px; font-weight: 600;
  background: rgba(139,92,246,.08); color: var(--purple);
  border: 1px solid rgba(139,92,246,.2);
  padding: 1px 7px; border-radius: 99px;
}

/* ═══════════════════════════════════════════════════════
   SIMULADOR DE BOBINA + ORÇAMENTO POR PROJETO
═══════════════════════════════════════════════════════ */
.kpi-mini{background:var(--ink2);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px;position:relative;overflow:hidden;}
.kpi-mini::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--kc);}
.kpi-mini-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--text3);font-weight:700;margin-bottom:4px;}
.kpi-mini-val{font-family:'DM Mono',monospace;font-size:22px;font-weight:700;}

/* Tipo de item no projeto */
.proj-tipo-btn{padding:7px 12px;background:var(--ink3);border:1px solid var(--line);border-radius:var(--r);font-size:12px;font-weight:600;color:var(--text2);cursor:pointer;transition:all .15s;white-space:nowrap;}
.proj-tipo-btn:hover{border-color:var(--line2);color:var(--text);}
.proj-tipo-btn.active{background:rgba(232,184,75,.12);border-color:rgba(232,184,75,.3);color:var(--gold);}

/* Linha de item no projeto */
.proj-item-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 80px;gap:8px;padding:10px;border:1px solid var(--line);border-radius:var(--r);background:var(--ink2);margin-bottom:6px;align-items:center;font-size:13px;transition:border-color .15s;}
.proj-item-row:hover{border-color:var(--gold);}
.proj-item-tipo{display:inline-block;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;background:var(--ink3);border:1px solid var(--line);color:var(--text3);}
.proj-item-tipo.impressao{background:rgba(56,197,224,.1);border-color:rgba(56,197,224,.2);color:var(--cyan);}
.proj-item-tipo.arte{background:rgba(139,92,246,.1);border-color:rgba(139,92,246,.2);color:var(--purple);}
.proj-item-tipo.instalacao{background:rgba(240,145,58,.1);border-color:rgba(240,145,58,.2);color:var(--warn);}
.proj-item-tipo.unitario{background:rgba(46,212,122,.1);border-color:rgba(46,212,122,.2);color:var(--green);}
.proj-item-tipo.servico{background:rgba(232,184,75,.1);border-color:rgba(232,184,75,.2);color:var(--gold);}

/* Visualização da bobina SVG */
#sim-visual-bobina svg{max-width:100%;height:auto;}

/* ── CALCULADOR DE PRODUTOS COMPLEXOS ── */
.pi-pane { animation: pgIn .2s ease; }
.pi-pane-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-weight: 800; font-size: 15px;
  margin-bottom: 14px; padding: 10px 14px;
  background: var(--ink3); border-radius: var(--r);
  border-left: 3px solid var(--gold);
}
.pi-sub-btn {
  padding: 6px 12px; background: var(--ink3);
  border: 1px solid var(--line); border-radius: var(--r);
  font-size: 12px; font-weight: 600; color: var(--text2);
  cursor: pointer; transition: all .15s;
}
.pi-sub-btn:hover { border-color: var(--gold); color: var(--text); }
.pi-sub-btn.active {
  background: rgba(232,184,75,.12);
  border-color: rgba(232,184,75,.3); color: var(--gold);
}

' + css + '

body{font-family:Arial,sans-serif;font-size:13px;color:#222;margin:40px}'
    + 'h1{font-size:20px;color:#1a2035}h2{font-size:14px;color:#e8b84b}'
    + 'table{width:100%;border-collapse:collapse;margin-top:14px}'
    + 'th{background:#1e2335;color:#e8b84b;padding:8px 10px;text-align:left;font-size:11px;text-transform:uppercase}'
    + 'td{padding:8px 10px;border-bottom:1px solid #e8e8e8}'
    + 'tr:nth-child(even)td{background:#f8f9fa}'
    + '.total{font-size:20px;font-weight:700;color:#e8b84b;text-align:right}'
    + '