:root{
  --bg:#0f0f0f;--surface:#181818;--s2:#202020;--s3:#252525;
  --b:#2e2e2e;--b2:#3a3a3a;
  --text:#f0ede8;--muted:#a8a39c;--dim:#9e9994;
  --accent:#e8c547;--accent-dim:#3a3010;--accent-fill:#e8c547;--on-accent:#000;
  --green:#4ade80;--gbg:#081a10;--gb:rgba(74,222,128,.15);
  --amber:#fbbf24;--abg:#1a1200;--ab:rgba(251,191,36,.2);
  --red:#f87171;--rbg:#1a0808;--rb:rgba(248,113,113,.2);
  --blue:#60a5fa;--bbg:#071525;--bbl:rgba(96,165,250,.2);
  --r:10px;--fd:'Syne',sans-serif;--fm:'IBM Plex Sans',sans-serif;--fn:'IBM Plex Mono',monospace;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--fm);font-size:14px;min-height:100vh;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}

/* Segun seo-audit + web-design-guidelines: focus rings visibles para accesibilidad */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* LAYOUT: sidebar + main */
.shell{display:grid;grid-template-columns:260px 1fr;height:100vh;overflow:hidden}

/* ══ SIDEBAR ══ */
.sidebar{background:var(--surface);border-right:1px solid var(--b);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.logo-area{padding:18px 16px 14px;border-bottom:1px solid var(--b);display:flex;align-items:center;gap:10px}
.logo-img{width:40px;height:40px;object-fit:contain;border-radius:6px;flex-shrink:0}
.logo-text{}
.logo-tag{font-size:8px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;font-family:var(--fd);font-weight:600;line-height:1}
.logo-title{font-family:var(--fd);font-size:14px;font-weight:700;line-height:1.1;margin-top:2px}
.logo-title span{color:var(--accent)}

/* Accordion sections in sidebar */
.acc-section{border-bottom:1px solid var(--b)}
.acc-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;user-select:none;transition:background .15s}
.acc-header:hover{background:var(--s2)}
.acc-header-label{font-size:10px;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;font-family:var(--fd);font-weight:700}
.acc-chevron{font-size:10px;color:var(--dim);transition:transform .2s}
.acc-body{overflow:hidden;max-height:0;transition:max-height .25s ease}
.acc-body.open{max-height:500px}
.acc-inner{padding:6px 14px 12px}
.pr{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;gap:6px}
.pn{color:var(--muted);font-size:11px;flex:1}
.pi{background:var(--s2);border:1px solid var(--b2);border-radius:6px;color:var(--accent);font-family:var(--fn);font-size:13px;font-weight:500;padding:5px 8px;width:90px;text-align:right;outline:none;transition:border-color .15s;font-variant-numeric:tabular-nums}
.pi:focus{border-color:var(--accent)}
.field-prefix{color:var(--muted);font-family:var(--fn);font-size:13px;font-weight:500;margin-right:-2px;user-select:none}
.pu{font-size:9px;color:var(--dim);min-width:26px}
.cf-box{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);padding:9px 11px;margin-top:4px}
.cf-lbl{font-size:9px;color:var(--dim);letter-spacing:.1em;text-transform:uppercase;margin-bottom:2px}
.cf-val{font-size:14px;font-weight:600;color:var(--accent);font-family:var(--fd)}
.cf-sub{font-size:10px;color:var(--muted);margin-top:1px}

/* ══ MAIN ══ */
.main{overflow-y:auto;height:100vh}

.topbar-title{font-family:var(--fd);font-size:14px;font-weight:700;flex:1}
.sw{position:relative}
.search{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--text);font-family:var(--fm);font-size:12px;padding:6px 11px 6px 30px;outline:none;width:170px;transition:border-color .15s}
.search:focus{border-color:var(--accent)}
.si{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--dim);font-size:13px;pointer-events:none}
.content{padding:18px 22px;width:100%;box-sizing:border-box;position:relative}

/* ══ MAIN ACCORDION (panels) ══ */
.panel{background:var(--surface);border:1px solid var(--b);border-radius:12px;margin-bottom:10px;overflow:hidden}
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;cursor:pointer;user-select:none;transition:background .15s}
.panel-header:hover{background:var(--s2)}
.panel-title{font-family:var(--fd);font-size:13px;font-weight:700;display:flex;align-items:center;gap:8px}
.panel-badge{font-size:9px;background:var(--s2);border:1px solid var(--b2);border-radius:5px;padding:2px 7px;color:var(--muted);font-family:var(--fm);font-weight:400}
.panel-badge.active{background:var(--accent-dim);border-color:rgba(232,197,71,.3);color:var(--accent)}
.panel-chevron{font-size:11px;color:var(--dim);transition:transform .2s}
.panel-body{overflow:hidden;max-height:0;transition:max-height .4s ease}
/* ── Views override panel collapse ── */
.view .panel-body{max-height:none !important;overflow:visible !important;transition:none !important}
.view .panel-header{display:none !important}
.panel-body.open{max-height:9000px}
.panel-inner{padding:16px 18px 18px}

/* CLIENT BAR */
.client-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.cb-lbl{font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-family:var(--fd);font-weight:600;white-space:nowrap}
.cs{background:var(--s2);border:1px solid var(--b2);border-radius:8px;color:var(--text);font-family:var(--fm);font-size:13px;padding:7px 11px;outline:none;flex:1;min-width:170px;cursor:pointer;transition:border-color .15s}
.cs:focus{border-color:var(--accent)}
.cs option{background:var(--s2)}
.badge{display:flex;align-items:center;gap:7px;border-radius:8px;padding:6px 11px;font-size:13px;font-weight:500;white-space:nowrap}
.badge.exist{background:var(--accent-dim);border:1px solid rgba(232,197,71,.2);color:var(--accent)}
.badge.isnew{background:var(--bbg);border:1px solid var(--bbl);color:var(--blue)}
.badge.saved{background:var(--gbg);border:1px solid var(--gb);color:var(--green)}
.bcnt{font-size:10px;color:var(--muted);font-weight:400;margin-left:2px}

/* NEW CLIENT FORM */
.ncp{background:var(--s2);border:1px solid var(--bbl);border-radius:10px;padding:16px 18px;margin-bottom:14px;display:none}
.ncp.open{display:block}
.ncp-title{font-family:var(--fd);font-size:13px;font-weight:700;color:var(--blue);margin-bottom:3px}
.ncp-sub{font-size:11px;color:var(--muted);margin-bottom:12px}
.ncp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:12px}
.ng{display:flex;flex-direction:column;gap:4px}
.nl{font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:var(--fd);font-weight:600}
.ni{background:var(--surface);border:1px solid var(--b2);border-radius:7px;color:var(--text);font-family:var(--fm);font-size:12px;padding:7px 10px;outline:none;transition:border-color .15s;width:100%}
.ni:focus{border-color:var(--blue)}
.ni option{background:var(--s2)}
.ncp-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.btn{border-radius:8px;padding:7px 14px;font-family:var(--fm);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;border:1px solid transparent}
.btn-save{background:var(--blue);color:#000;border-color:var(--blue)}
.btn-save:hover{background:#93c5fd}
.btn-quote{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent)}
.btn-quote:hover{background:#f5d76e}
.pen-card-prueba{border:1.5px dashed rgba(251,191,36,.4) !important;background:repeating-linear-gradient(135deg,var(--surface),var(--surface) 10px,rgba(251,191,36,.03) 10px,rgba(251,191,36,.03) 20px) !important;position:relative;overflow:hidden}
.pen-card-prueba::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--amber);border-radius:2px 0 0 2px}
.pen-badge-prueba{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.08em;background:rgba(251,191,36,.15);color:var(--amber);border:1px solid rgba(251,191,36,.3);border-radius:4px;padding:2px 8px;margin-left:8px;vertical-align:middle}
.pen-badge-asig{display:inline-block;font-size:9px;font-weight:600;color:var(--blue);background:var(--bbg);border:1px solid var(--bbl);border-radius:4px;padding:2px 8px;margin-left:6px;vertical-align:middle}
.btn-reset{background:transparent;color:var(--dim);border:1px solid var(--b2);font-size:11px;padding:7px 14px;margin-left:auto;letter-spacing:.02em;transition:all .15s}
.btn-reset:hover{color:var(--red);border-color:var(--red);background:var(--rbg)}
.btn-ghost{background:transparent;color:var(--muted);border-color:var(--b2)}
.btn-ghost:hover{color:var(--text);border-color:var(--b2)}
.save-note{font-size:10px}

/* PRODUCT TABLE */
.legend{display:flex;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}
.li{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted)}
.ld{width:7px;height:7px;border-radius:50%}
.hint{margin-left:auto;font-size:10px;color:var(--dim)}
.th-row{display:grid;grid-template-columns:200px 75px 70px 80px 70px 100px 80px 80px 95px;padding:0 0 6px;margin-bottom:3px}
.th{padding:0 10px;font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:var(--fd);font-weight:600}
.gh{font-size:9px;letter-spacing:.14em;color:var(--accent);text-transform:uppercase;font-family:var(--fd);font-weight:700;padding:10px 12px;border-bottom:none;margin-bottom:2px;margin-top:14px;display:flex;align-items:center;gap:8px;background:var(--accent-dim);border-left:3px solid var(--accent);border-radius:0 6px 6px 0}
.gh:first-child{margin-top:0}
.gc{background:rgba(232,197,71,.15);border-radius:4px;padding:2px 7px;font-size:9px;color:var(--accent);font-weight:500}
.pr-row{background:var(--surface);border:1px solid var(--b);border-radius:var(--r);display:grid;grid-template-columns:220px 85px 75px 90px 80px 110px 90px 90px 100px;align-items:stretch;overflow:hidden;transition:all .2s;margin-bottom:6px}
.pr-row:hover{border-color:var(--b2);box-shadow:0 2px 12px rgba(0,0,0,.2)}
/* Detalle expandible en lista de precios */
.pr-detail{grid-column:1/-1;padding:14px 16px;background:var(--s2);border-top:1px solid var(--b);animation:gestSlideIn .15s ease}
.pr-det-card{background:var(--bg);border:1px solid var(--b);border-radius:8px;padding:12px}
.pr-det-lbl{font-size:10px;letter-spacing:.1em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;margin-bottom:8px}
.pr-det-row{display:flex;justify-content:space-between;padding:4px 0;font-size:13px;color:var(--muted);font-family:var(--fn);font-variant-numeric:tabular-nums}
.pr-row.loss{border-color:var(--rb);background:linear-gradient(90deg,rgba(26,8,8,.4) 0%,var(--surface) 25%)}
.pr-row.warn{border-color:var(--ab);background:linear-gradient(90deg,rgba(26,18,0,.2) 0%,var(--surface) 25%)}
.pr-row.good{border-color:var(--gb);background:linear-gradient(90deg,rgba(8,26,16,.2) 0%,var(--surface) 25%)}
.pr-row.newp{border-style:dashed;border-color:var(--bbl)}
.cell{padding:12px 10px;border-right:1px solid rgba(46,46,46,.4);height:100%;display:flex;align-items:center;justify-content:flex-end}
.cell:first-child{justify-content:flex-start}
.cell:last-child{border-right:none}
.cell-name{flex-direction:column;align-items:flex-start;justify-content:center;gap:1px}
.cell-num{flex-direction:column;align-items:flex-end;justify-content:center;gap:1px}
.cell-price .vv{font-size:16px}
.pname{font-size:14px;font-weight:600;font-family:var(--fd)}
.pspec{font-size:11px;color:var(--dim);margin-top:2px;letter-spacing:.02em}
.ntag{font-size:9px;background:var(--bbg);color:var(--blue);border:1px solid var(--bbl);border-radius:4px;padding:1px 5px;margin-left:5px;vertical-align:middle}
.stag{font-size:9px;background:var(--gbg);color:var(--green);border:1px solid var(--gb);border-radius:4px;padding:1px 5px;margin-left:5px;vertical-align:middle}
.vl{font-size:10px;color:var(--muted);margin-bottom:1px;font-family:var(--fd);letter-spacing:.04em;text-align:right}
.vv{font-size:15px;font-weight:600;font-family:var(--fn);color:var(--text);font-variant-numeric:tabular-nums;text-align:right}
.pcell{padding:8px 10px;display:flex;flex-direction:column;justify-content:center;gap:2px}
.pinp{background:transparent;border:none;border-bottom:1px solid var(--b2);color:var(--accent);font-family:var(--fn);font-size:15px;font-weight:500;width:100%;outline:none;padding:3px 0;text-align:right;transition:all .2s;font-variant-numeric:tabular-nums}
.pinp:focus{border-bottom-color:var(--accent);box-shadow:0 2px 8px rgba(232,197,71,.15)}
.mcell{padding:10px 10px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:3px}
.mb{font-size:15px;font-weight:700;font-family:var(--fn);padding:5px 12px;border-radius:6px;transition:box-shadow .2s;font-variant-numeric:tabular-nums}
.mb.loss{background:var(--rbg);color:var(--red);border:1px solid var(--rb)}
.mb.loss:hover{box-shadow:0 0 12px rgba(248,113,113,.2)}
.mb.warn{background:var(--abg);color:var(--amber);border:1px solid var(--ab)}
.mb.warn:hover{box-shadow:0 0 12px rgba(251,191,36,.2)}
.mb.good{background:var(--gbg);color:var(--green);border:1px solid var(--gb)}
.mb.good:hover{box-shadow:0 0 12px rgba(74,222,128,.2)}
.ms{font-size:9px;color:var(--muted)}
.empty{text-align:center;padding:40px 20px;color:var(--dim);font-size:12px}

/* PRODUCT SELECTOR in new client form */
.prod-selector{margin:12px 0;border:1px solid var(--bbl);border-radius:8px;overflow:hidden}
.prod-selector-head{padding:8px 12px;background:var(--bbg);font-size:10px;color:var(--blue);font-family:var(--fd);font-weight:600;letter-spacing:.08em;display:flex;align-items:center;justify-content:space-between}
.prod-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0}
.prod-check{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--b);cursor:pointer;transition:background .15s}
.prod-check:hover{background:var(--s2)}
.prod-check:last-child,.prod-check:nth-last-child(2):not(:nth-child(odd)){border-bottom:none}
.prod-check input[type=checkbox]{accent-color:var(--blue);width:14px;height:14px;cursor:pointer;flex-shrink:0}
.prod-check-label{font-size:11px;color:var(--text);line-height:1.3}
.prod-check-sub{font-size:10px;color:var(--muted)}

/* CUSTOM PRODUCT FORM */
.custom-prod-form{border:1px solid var(--bbl);border-radius:8px;padding:12px;margin-top:10px;background:var(--bbg)}
.cpf-title{font-size:10px;color:var(--blue);font-family:var(--fd);font-weight:600;letter-spacing:.08em;margin-bottom:10px}
.cpf-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:8px}
.cpf-group{display:flex;flex-direction:column;gap:3px}
.cpf-label{font-size:9px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:var(--fd);font-weight:600}
.cpf-input{background:var(--surface);border:1px solid var(--b2);border-radius:6px;color:var(--text);font-family:var(--fm);font-size:12px;padding:6px 9px;outline:none;transition:border-color .15s;width:100%}
.cpf-input:focus{border-color:var(--blue)}
.cpf-input option{background:var(--s2)}

/* Quote bar */
.quote-bar{display:none;align-items:center;gap:10px;margin-bottom:14px;padding:9px 14px;background:var(--s2);border-radius:10px;border:1px solid var(--b2)}
.quote-bar.visible{display:flex}
.qb-info{font-size:11px;color:var(--muted);flex:1}
.qb-info strong{color:var(--text)}

/* PE */
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}
.mc{background:var(--s2);border:1px solid var(--b);border-radius:var(--r);padding:13px 15px}
.ml{font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-family:var(--fd);font-weight:600;margin-bottom:5px}
.mv{font-size:15px;font-weight:600;font-family:var(--fd);line-height:1}
.msb{font-size:11px;color:var(--muted);margin-top:3px}
.tbl-wrap{background:var(--surface);border:1px solid var(--b);border-radius:var(--r);overflow-x:auto}
.tbl-head{padding:12px 16px;border-bottom:1px solid var(--b);font-family:var(--fd);font-weight:600;font-size:14px}
.pe-table{width:100%;table-layout:fixed;border-collapse:collapse}
.pe-table th:first-child{width:28%}
.pe-table th{width:12%}
table{width:100%;border-collapse:collapse}
th{font-size:10px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;font-family:var(--fm);font-weight:600;padding:8px 10px;text-align:right;border-bottom:1px solid var(--b)}
th:first-child{text-align:left}
td{padding:8px 10px;border-bottom:1px solid var(--b);font-size:14px;font-family:var(--fn);font-variant-numeric:tabular-nums;text-align:right}
td:first-child{text-align:left;font-family:var(--fm)}
/* PDF table cells: override dark theme */
.modal-body td{border-bottom:1px solid #eee;color:#1a1a1a;font-size:12px}
.modal-body th{color:#888;border-bottom:2px solid #e8c547;background:#f5f5f0}
tr:last-child td{border-bottom:none}
tr:hover td{background:var(--s2)}
td:not(:first-child){text-align:right}
.lr td{color:var(--red)}

/* CALC */
.fr{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.fg{display:flex;flex-direction:column;gap:5px}
.flbl{font-size:11px;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-family:var(--fm);font-weight:600}
.fc{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--text);font-family:var(--fm);font-size:13px;padding:8px 11px;outline:none;transition:border-color .15s;width:100%}
.fc:focus{border-color:var(--accent)}
.fc option{background:var(--s2)}
.rbox{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r);padding:16px;margin-top:14px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.rl{font-size:9px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-family:var(--fd);font-weight:600;margin-bottom:3px}
.rv{font-size:15px;font-weight:600;font-family:var(--fn);font-variant-numeric:tabular-nums}
.rv.green{color:var(--green)}.rv.red{color:var(--red)}.rv.amber{color:var(--amber)}
.bwrap{margin-top:12px}.blbl{font-size:10px;color:var(--muted);margin-bottom:5px}
.btrack{height:5px;background:var(--b2);border-radius:3px;overflow:hidden}
.bfill{height:100%;border-radius:3px;transition:width .35s,background .35s}

/* MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:100;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--surface);border:1px solid var(--b2);border-radius:16px;width:760px;max-width:96vw;max-height:92vh;overflow-y:auto;display:flex;flex-direction:column;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.6),0 0 0 1px rgba(232,197,71,.08)}
/* Logo watermark in modal */
.modal-watermark{display:none}
.modal-content{position:relative;z-index:1;display:flex;flex-direction:column;flex:1}
.modal-head{padding:18px 22px 14px;border-bottom:1px solid #e8c547;display:flex;align-items:flex-start;gap:12px;background:#1a1a1a;border-radius:14px 14px 0 0}
.modal-logo{width:36px;height:36px;object-fit:contain;border-radius:6px;flex-shrink:0}
.modal-title{font-family:var(--fd);font-size:14px;font-weight:700;flex:1}
.modal-sub{font-size:12px;color:var(--muted);margin-top:2px}
.modal-close{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--muted);font-size:16px;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s}
.modal-close:hover{color:var(--text)}
.modal-body{padding:18px 22px;flex:1;background:#fff;border-radius:0 0 14px 14px}
.modal-footer{padding:14px 22px;border-top:1px solid #ddd;display:flex;gap:8px;justify-content:flex-end;background:#f5f5f0;border-radius:0 0 14px 14px}

/* QUOTE DOC */
.q-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid var(--accent)}
.q-company-wrap{display:flex;align-items:center;gap:12px}
.q-logo{width:44px;height:44px;object-fit:contain;border-radius:6px}
.q-company{font-family:var(--fd);font-size:15px;font-weight:700}
.q-company span{color:var(--accent)}
.q-meta{text-align:right;font-size:11px;color:var(--muted);line-height:1.9}
.q-meta strong{color:var(--text);font-weight:600}
.q-divider{height:1px;background:var(--b2);margin:14px 0}
.q-client-box{background:linear-gradient(135deg,var(--s2) 0%,var(--surface) 100%);border:1px solid var(--b);border-radius:10px;padding:14px 18px;margin-bottom:18px}
.q-client-label{font-size:9px;color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-family:var(--fd);font-weight:700;margin-bottom:4px}
.q-client-name{font-size:14px;font-weight:600;font-family:var(--fd)}
.q-client-meta{font-size:11px;color:var(--muted);margin-top:3px}
.q-table{width:100%;border-collapse:collapse;margin-bottom:18px}
.q-table th{font-size:9px;color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-family:var(--fd);font-weight:700;padding:8px 10px;text-align:left;border-bottom:2px solid var(--b2);background:var(--s2)}
.q-table td{padding:10px 10px;border-bottom:1px solid var(--b);font-size:12px;font-family:var(--fm)}
.q-table td:not(:first-child){text-align:right}
.q-table tr:last-child td{border-bottom:none}
.q-table tr:nth-child(even) td{background:rgba(32,32,32,.5)}
.q-table tr:hover td{background:rgba(232,197,71,.04)}
.q-totals{background:var(--s2);border:1px solid var(--b);border-radius:10px;padding:14px 18px}
.q-total-row{display:flex;justify-content:space-between;font-size:12px;font-family:var(--fm);margin-bottom:6px;color:var(--muted)}
.q-total-row:last-child{margin-bottom:0;color:var(--accent);font-size:13px;font-weight:600;font-family:var(--fd);padding-top:10px;border-top:1px solid var(--accent);margin-top:8px}
.q-note{font-size:10px;color:var(--dim);margin-top:16px;line-height:1.8;padding-top:12px;border-top:1px solid var(--b)}

::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:var(--b2);border-radius:2px}
/* margin:0 hace que el navegador NO inyecte fecha/hora/título/URL en el pie al imprimir.
   El espacio del borde se compensa con padding propio en el contenido (ver .modal-body en print). */
@page{margin:0}
@media print{
  body{background:#fff!important;color:#1a1a1a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .hamburger,.sidebar-overlay,.sidebar,.toast,.login-screen{display:none!important}
  /* If modal is open: hide everything else, only print modal */
  .modal-overlay.open~*,.modal-overlay.open+*{display:none!important}
  .modal-overlay.open{display:block!important;position:static;background:none}
  .modal-overlay:not(.open){display:none!important}
  .modal-head,.modal-footer{display:none!important}
  .modal{width:100%;max-width:none;border:none;border-radius:0;max-height:none;box-shadow:none;background:#fff!important}
  .modal-body{background:#fff!important;border-radius:0!important;padding:12mm 12mm!important}
  /* When modal is open, hide the app shell */
  body:has(.modal-overlay.open) .shell{display:none!important}
  /* When modal is NOT open, print the current view */
  .shell{display:block!important;grid-template-columns:1fr!important}
  .main{height:auto!important;overflow:visible!important}
  .content{padding:0!important}
  .view.active{display:block!important;position:static!important}
  .pr-row{break-inside:avoid;animation:none!important;background:#fff!important;border-color:#ddd!important;color:#1a1a1a!important}
  .pr-row .cell,.pr-row .pcell,.pr-row .mcell{border-color:#eee!important}
  .pname,.vv,.pinp{color:#1a1a1a!important}
  .gh{background:#f0f0f0!important;color:#333!important;border-left-color:#b8960a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .mb.good{background:#e8f5e9!important;color:#2e7d32!important;border-color:#c8e6c9!important}
  .mb.warn{background:#fff8e1!important;color:#f57f17!important;border-color:#ffecb3!important}
  .mb.loss{background:#fce4ec!important;color:#c62828!important;border-color:#f8bbd0!important}
  /* Quote styles */
  .q-header{border-bottom-color:#b8960a!important}
  .q-company span{color:#b8960a!important}
  .q-client-label{color:#b8960a!important}
  .q-table th{background:#f0f0f0!important;color:#1a1a1a!important}
  .q-table td{color:#1a1a1a!important}
  .q-table tr:nth-child(even) td{background:#f8f8f8!important}
  .q-totals{background:#f0f0f0!important;border-color:#ddd!important}
  .q-total-row:last-child{color:#b8960a!important;border-top-color:#b8960a!important}
}

/* ── View navigation ──────────────────────────────────────────── */
.nav-label{font-size:10px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;font-family:var(--fm);font-weight:600;padding:12px 16px 4px;display:block}
.nav-item{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;cursor:pointer;user-select:none;transition:background .15s;border-left:3px solid transparent;gap:8px}
.nav-item:hover{background:var(--s2)}
.nav-item.active{background:rgba(232,197,71,.08);border-left-color:var(--accent)}
.nav-item-label{font-size:15px;font-family:var(--fd);font-weight:600;display:flex;align-items:center;gap:8px;color:var(--text)}
.nav-item.active .nav-item-label{color:var(--accent)}
.nav-chevron{font-size:11px;color:var(--dim);margin-left:auto}
.nav-divider{height:1px;background:var(--b);margin:6px 0}
.view{display:none !important;position:absolute;pointer-events:none}
.view.active{display:block !important;position:relative;pointer-events:auto;animation:viewFadeIn .15s ease-out}
@keyframes viewFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.view-title{font-family:var(--fd);font-size:16px;font-weight:700;margin-bottom:4px}
.view-sub{font-size:13px;color:var(--muted);margin-bottom:24px}
.cards-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.card-btn{background:var(--surface);border:1px solid var(--b);border-radius:12px;padding:20px 22px;cursor:pointer;transition:all .25s;min-width:160px;text-align:left;position:relative;overflow:hidden}
.card-btn::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 30%,rgba(232,197,71,.06),transparent 70%);opacity:0;transition:opacity .25s}
.card-btn:hover::before,.card-btn.active::before{opacity:1}
.card-btn:hover,.card-btn.active{border-color:var(--accent);box-shadow:0 4px 20px rgba(232,197,71,.08)}
.card-btn-icon{font-size:20px;margin-bottom:8px}
.card-btn-title{font-family:var(--fd);font-size:13px;font-weight:600;margin-bottom:4px}
.card-btn-sub{font-size:11px;color:var(--muted)}
.detail-panel{display:none;background:var(--surface);border:1px solid var(--b);border-radius:12px;padding:22px 24px;margin-top:4px}
.detail-panel.open{display:block}
.detail-title{font-family:var(--fd);font-size:14px;font-weight:600;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.back-btn{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:5px 11px;font-size:11px;color:var(--muted);cursor:pointer;font-family:var(--fm)}
.back-btn:hover{color:var(--text)}
.fields-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px}
.field-box{display:flex;flex-direction:column;gap:5px;min-width:160px}
.field-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-family:var(--fd);font-weight:600}
.field-inp{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--text);font-family:var(--fm);font-size:13px;padding:8px 11px;outline:none;width:100%;transition:all .2s}
.field-inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,197,71,.1)}
.field-row{display:flex;align-items:center;gap:7px}
.field-row .field-inp{flex:1}
.field-row .field-unit{font-size:11px;color:var(--muted);white-space:nowrap}
.field-sel{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--text);font-family:var(--fm);font-size:12px;padding:7px 10px;outline:none}
.papel-card{background:var(--s2);border:1px solid var(--b2);border-radius:10px;padding:14px 16px;margin-bottom:10px;max-width:460px}
.papel-name{font-size:13px;font-weight:600;font-family:var(--fd);margin-bottom:2px}
.papel-prov{font-size:11px;color:var(--muted);margin-bottom:11px}


/* ── Force views to start at top ── */
.view.active > *:first-child { margin-top: 0 !important; padding-top: 0 !important; }
.shell { align-items: start; }

/* ── Mejora 3: filas clickeables ── */
.pr-row{cursor:pointer}
.pr-row:hover{border-color:var(--accent) !important;box-shadow:0 0 0 1px rgba(232,197,71,.15)}
.pr-row .pinp{transition:background .2s}
.pr-row:hover .pinp{background:rgba(232,197,71,.08)}

/* ── Mejora 4: desglose visual (mini chart) ── */
.cost-breakdown{display:flex;align-items:center;gap:10px;margin-top:14px;padding:14px 16px;background:var(--surface);border:1px solid var(--b);border-radius:var(--r)}
.cost-pie{width:80px;height:80px;border-radius:50%;position:relative;flex-shrink:0}
.cost-legend{display:flex;flex-direction:column;gap:6px;flex:1}
.cost-leg-item{display:flex;align-items:center;gap:7px;font-size:11px}
.cost-leg-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.cost-leg-val{margin-left:auto;font-family:var(--fn);font-weight:500;color:var(--text);font-variant-numeric:tabular-nums}

/* ── Mejora 6: nav animation ── */
.nav-item{transition:background .2s,border-left-color .3s,transform .15s}
.nav-item.active{background:rgba(232,197,71,.1);border-left-color:var(--accent);border-left-width:3px}
.nav-item.active .nav-item-label{color:var(--accent);transition:color .2s}
.nav-item:active{transform:scale(.98)}

/* ── Mejora 8: keyboard hint ── */
.nav-kbd{font-size:8px;color:var(--dim);font-family:var(--fm);background:var(--s2);border:1px solid var(--b2);border-radius:3px;padding:1px 5px;margin-left:auto;opacity:0;transition:opacity .2s}
.nav-item:hover .nav-kbd{opacity:1}

/* ── Mejora 10: toast ── */
.toast{position:fixed;bottom:24px;right:24px;background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:12px 20px;font-family:var(--fm);font-size:12px;color:var(--accent);z-index:200;transform:translateY(100px);opacity:0;transition:all .35s cubic-bezier(.4,0,.2,1);pointer-events:none;box-shadow:0 8px 32px rgba(0,0,0,.4)}
.toast.show{transform:translateY(0);opacity:1}
.toast-icon{margin-right:8px}

/* ── Mejora 5: equivalente pesos ── */
.field-equiv{font-size:10px;color:var(--dim);margin-top:2px;font-family:var(--fm);transition:color .2s}

/* ── Tooltips ── */
.tip{position:relative;cursor:help;display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--s2);border:1px solid var(--b2);font-size:9px;color:var(--dim);font-family:var(--fm);margin-left:5px;flex-shrink:0;vertical-align:middle}
.tip:hover{color:var(--accent);border-color:var(--accent)}
.tip::after{content:attr(data-tip);position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:var(--surface);border:1px solid var(--accent);border-radius:7px;padding:7px 10px;font-size:10px;color:var(--text);white-space:normal;width:220px;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .15s;z-index:30;box-shadow:0 4px 16px rgba(0,0,0,.4);font-weight:400;text-align:left}
.tip:hover::after{opacity:1}

/* ── Hamburger menu ── */
.hamburger{display:none;position:fixed;top:12px;left:12px;z-index:60;background:var(--surface);border:1px solid var(--b2);border-radius:8px;width:40px;height:40px;cursor:pointer;align-items:center;justify-content:center;flex-direction:column;gap:4px;padding:0}
.hamburger span{display:block;width:18px;height:2px;background:var(--accent);border-radius:1px;transition:all .25s}
.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:49}

/* ── Mobile responsive ── */
@media(max-width:768px){
  .hamburger{display:flex}
  .shell{grid-template-columns:1fr;position:relative}
  .sidebar{position:fixed;left:-280px;top:0;width:270px;z-index:50;transition:left .3s cubic-bezier(.4,0,.2,1);box-shadow:none}
  .sidebar.mobile-open{left:0;box-shadow:8px 0 32px rgba(0,0,0,.5)}
  .sidebar-overlay.show{display:block}
  .main{height:100vh;padding-top:56px}
  .content{padding:14px 12px}

  /* Touch targets */
  .nav-item{padding:14px 16px;min-height:48px}
  .pi,.field-inp,.fc,.ni,.cpf-input,.search{font-size:16px !important;padding:12px !important;min-height:44px}
  .btn{padding:12px 18px;min-height:44px;font-size:13px}
  .pinp{font-size:16px !important;padding:6px 4px !important;min-height:44px}

  /* Table scroll */
  .th-row,.pr-row{min-width:850px}
  #product_list{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .legend{flex-wrap:wrap;gap:6px}

  /* Cards stack */
  .cards-row{flex-direction:column}
  .fr{grid-template-columns:1fr}
  .rbox{grid-template-columns:1fr 1fr}
  .sg{grid-template-columns:1fr}
  .ncp-grid{grid-template-columns:1fr 1fr}

  /* Modal full screen */
  .modal{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0}

  /* Toast bottom-center */
  .toast{right:12px;left:12px;bottom:16px;text-align:center}

  /* View title smaller */
  .view-title{font-size:15px}
  .view-sub{margin-bottom:16px}

  /* Nav keyboard hints hidden on mobile */
  .nav-kbd{display:none}

  /* Cost breakdown stack */
  .cost-breakdown{flex-direction:column;align-items:stretch}
  .cost-pie{width:100%;height:24px;border-radius:6px}
}

@media(max-width:400px){
  .content{padding:10px 8px}
  .rbox{grid-template-columns:1fr;gap:8px}
  .ncp-grid{grid-template-columns:1fr}
  .cpf-grid{grid-template-columns:1fr 1fr}
}
/* ── Utility classes (extracted from inline styles) ── */
.u-hide{display:none}
.u-flex1{flex:1}
.u-mb8{margin-bottom:8px}
.u-mt14{margin-top:14px}
.u-txt-muted-sm{font-size:11px;color:var(--muted)}
.u-txt-dim-xs{font-size:9px;color:var(--dim)}
.u-txt-muted-xs{font-size:10px;color:var(--muted)}
.u-lbl-dim{font-size:9px;color:var(--dim);letter-spacing:.08em;text-transform:uppercase;font-family:var(--fd);font-weight:600}
.u-flex-center{display:flex;align-items:center;gap:6px}
.u-param-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px 20px}
.u-cf-box-sm{max-width:260px;margin-top:8px}
.u-btn-recalc{margin-top:14px;background:var(--accent-fill);color:var(--on-accent);border:none;border-radius:8px;padding:9px 22px;font-family:var(--fm);font-size:13px;font-weight:600;cursor:pointer}
.u-btn-recalc:hover{background:#f5d76e}
.excel-date{font-size:9px;color:var(--dim);margin-top:4px;font-family:var(--fm)}
.sidebar-footer{margin-top:auto;padding:12px 16px;border-top:1px solid var(--b);text-align:center}
.sidebar-footer-brand{font-size:8px;color:var(--dim);letter-spacing:.08em}
.sidebar-footer-name{font-family:var(--fd);font-size:10px;font-weight:700;color:var(--muted);margin-top:1px}
.sidebar-footer-name span{color:var(--accent)}
.dolar-hero{grid-column:1/-1;background:linear-gradient(135deg,var(--surface) 0%,var(--accent-dim) 100%);border:1px solid rgba(232,197,71,.25);border-radius:14px;padding:24px 26px}
.dolar-hero .field-lbl{margin-bottom:4px;color:var(--accent);font-size:11px}
.dolar-hero .field-inp{font-size:18px;font-family:var(--fd);font-weight:600;padding:8px 12px;color:var(--accent)}
.dolar-hero .field-unit{font-size:12px}
.cambio-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:520px}
.metricas-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}

/* ═══ Centro de Control — Métricas dashboard ═══ */

/* Hero salud */
.met-hero{display:flex;align-items:center;gap:20px;padding:20px 24px;border-radius:12px;margin-bottom:16px;border:1px solid var(--b);background:var(--surface)}
.met-hero-green{border-left:4px solid var(--green);background:linear-gradient(135deg,rgba(74,222,128,.04),var(--surface))}
.met-hero-amber{border-left:4px solid var(--amber);background:linear-gradient(135deg,rgba(251,191,36,.04),var(--surface))}
.met-hero-red{border-left:4px solid var(--red);background:linear-gradient(135deg,rgba(248,113,113,.04),var(--surface))}
.met-hero-score{display:flex;align-items:baseline;gap:6px;flex-shrink:0}
.met-hero-icon{font-size:28px}
.met-hero-num{font-family:var(--fn);font-size:36px;font-weight:700;color:var(--text)}
.met-hero-label{font-family:var(--fm);font-size:14px;color:var(--dim)}
.met-hero-info{flex:1}
.met-hero-title{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--text)}
.met-hero-detail{font-family:var(--fm);font-size:12px;color:var(--muted);margin-top:4px}

/* Revenue cards */
.met-revenue{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
.met-rev-card{padding:16px;background:var(--surface);border:1px solid var(--b);border-radius:10px}
.met-rev-card-accent{border-color:rgba(232,197,71,.2)}
.met-rev-label{font-family:var(--fm);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.met-rev-val{font-family:var(--fn);font-size:20px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.met-rev-sub{font-family:var(--fm);font-size:11px;color:var(--dim);margin-top:4px}

/* PE bar */
.met-pe{padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;margin-bottom:16px}
.met-pe-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.met-pe-units{font-family:var(--fn);font-size:13px;color:var(--accent);font-weight:600}
.met-pe-bar-wrap{position:relative;height:10px;background:var(--s2);border-radius:5px;overflow:visible;margin-bottom:8px}
.met-pe-bar{height:100%;border-radius:5px;transition:width .8s ease}
.met-pe-marker{position:absolute;top:-18px;font-family:var(--fn);font-size:10px;color:var(--text);font-weight:600;transform:translateX(-50%)}
.met-pe-sub{font-family:var(--fm);font-size:11px;color:var(--dim)}

/* Dolar impact */
.met-dolar{padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;margin-bottom:16px}
.met-dolar-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:10px}
.met-dolar-card{padding:12px;background:var(--s2);border-radius:8px;text-align:center}
.met-dolar-current{border:1px solid rgba(232,197,71,.2);background:rgba(232,197,71,.04)}
.met-dolar-scenario{font-family:var(--fm);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.met-dolar-val{font-family:var(--fn);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}
.met-dolar-sub{font-family:var(--fm);font-size:10px;color:var(--dim);margin-top:4px}

/* Sections */
.met-section{padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;margin-bottom:12px}
.met-section-title{font-family:var(--fm);font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:10px}

/* Product ranking rows */
.met-prod-header{display:grid;grid-template-columns:1fr 100px 70px 80px 90px;gap:8px;padding:4px 0 8px;border-bottom:1px solid var(--b);font-family:var(--fm);font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em}
.met-prod-row{display:grid;grid-template-columns:1fr 100px 70px 80px 90px;gap:8px;padding:8px 0;border-bottom:1px solid var(--b);align-items:center}
.met-prod-row:last-child{border-bottom:none}
.met-prod-name{font-family:var(--fm);font-size:12px;color:var(--text);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.met-prod-client{display:block;font-size:10px;color:var(--dim)}
.met-prod-bar-wrap{height:6px;background:var(--s2);border-radius:3px;overflow:hidden}
.met-prod-bar{height:100%;border-radius:3px;transition:width .6s ease}
.met-prod-margin{font-family:var(--fn);font-size:13px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}
.met-prod-gain{font-family:var(--fn);font-size:11px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.met-prod-action{font-family:var(--fm);font-size:10px;font-weight:600;text-align:right}

/* Client rows */
.met-client-row{display:grid;grid-template-columns:1fr 80px 50px 120px 70px;gap:8px;padding:8px 0;border-bottom:1px solid var(--b);align-items:center}
.met-client-row:last-child{border-bottom:none}
.met-client-name{font-family:var(--fm);font-size:12px;color:var(--text)}
.met-client-bar-wrap{height:6px;background:var(--s2);border-radius:3px;overflow:hidden}
.met-client-bar{height:100%;background:var(--accent);border-radius:3px}
.met-client-pct{font-family:var(--fn);font-size:11px;color:var(--accent);text-align:right;font-variant-numeric:tabular-nums}
.met-client-ingreso{font-family:var(--fn);font-size:11px;color:var(--text);text-align:right;font-variant-numeric:tabular-nums}
.met-client-margin{font-family:var(--fn);font-size:12px;font-weight:600;text-align:right;font-variant-numeric:tabular-nums}

/* Alertas */
.met-alert{display:flex;gap:8px;align-items:center;padding:8px 10px;border-radius:6px;font-family:var(--fm);font-size:11px;margin-bottom:6px}
.met-alert:last-child{margin-bottom:0}
.met-alert-red{background:var(--rbg);border:1px solid var(--rb);color:var(--red)}
.met-alert-amber{background:var(--abg);border:1px solid var(--ab);color:var(--amber)}

/* Animación entrada escalonada */
.met-hero,.met-rev-card,.met-pe,.met-dolar,.met-section{opacity:0;transform:translateY(12px);animation:rptFadeIn .4s ease forwards}
.met-hero{animation-delay:.05s}
.met-rev-card:nth-child(1){animation-delay:.1s}
.met-rev-card:nth-child(2){animation-delay:.15s}
.met-rev-card:nth-child(3){animation-delay:.2s}
.met-pe{animation-delay:.25s}
.met-dolar{animation-delay:.3s}

@media(max-width:700px){
  .met-revenue{grid-template-columns:1fr}
  .met-dolar-grid{grid-template-columns:1fr}
  .met-hero{flex-direction:column;text-align:center}
  .met-prod-header,.met-prod-row{grid-template-columns:1fr 60px 60px}
  .met-prod-gain,.met-prod-action,.met-prod-bar-wrap{display:none}
  .met-client-row{grid-template-columns:1fr 60px 70px}
  .met-client-bar-wrap,.met-client-pct{display:none}
}

/* ── Login screen ── */
.login-screen{position:fixed;inset:0;background:var(--bg);z-index:1000;display:flex;align-items:center;justify-content:center}
.login-box{background:var(--surface);border:1px solid var(--b);border-radius:14px;padding:36px 32px;width:320px;max-width:90vw;text-align:center}
.login-title{font-family:var(--fd);font-size:16px;font-weight:700;margin-top:14px}
.login-sub{font-size:11px;color:var(--muted);margin:6px 0 20px}
.login-inp{display:block;width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:8px;color:var(--text);font-family:var(--fm);font-size:14px;padding:11px 14px;outline:none;margin-bottom:10px;transition:border-color .2s}
.login-inp:focus{border-color:var(--accent)}
.login-btn{display:block;width:100%;background:var(--accent-fill);color:var(--on-accent);border:none;border-radius:8px;padding:11px;font-family:var(--fm);font-size:13px;font-weight:600;cursor:pointer;margin-top:6px;transition:background .15s}
.login-btn:hover{background:#f5d76e}
.login-error{font-size:11px;color:var(--red);margin-top:10px;min-height:16px}

/* ── Role-based visibility ── */
.admin-only{display:none !important}
body.role-admin .admin-only:not(.view){display:block !important}
body.role-admin .fg.admin-only{display:flex !important}
body.role-admin .vendor-only{display:none !important}
body.role-vendedor .admin-only{display:none !important}
/* Hide costs/margins for vendedor via CSS - instant, no flash */
body.role-vendedor .cost-data{display:none !important}

/* ── Delivery method (entrega) ── */
.delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
@media(max-width:600px){.delivery-grid{grid-template-columns:1fr}}
.delivery-toggle{display:flex;border:1px solid var(--b2);border-radius:6px;overflow:hidden;background:var(--s2)}
.dt-btn{flex:1;padding:8px 10px;font-family:var(--fm);font-size:11px;color:var(--muted);background:transparent;border:none;cursor:pointer;transition:all .15s;touch-action:manipulation}
.dt-btn:hover{color:var(--text)}
.dt-btn.active{background:rgba(232,197,71,.1);color:var(--accent);border-bottom:2px solid var(--accent);font-weight:600}
.delivery-select{background:var(--s2);border:1px solid var(--b2);border-radius:6px;color:var(--text);font-family:var(--fm);font-size:12px;padding:8px 10px;width:100%;outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}
.delivery-select:focus{border-color:var(--accent)}
.delivery-fields{animation:rptFadeIn .2s ease forwards}

/* ── CQ Breakdown (flete/palet desglose) ── */
.cq-break-row{display:flex;justify-content:space-between;padding:4px 0;font-family:var(--fm);font-size:11px;color:var(--muted)}
.cq-break-row span:last-child{font-variant-numeric:tabular-nums}
.cq-break-total{display:flex;justify-content:space-between;padding:6px 0 10px;margin-bottom:10px;border-top:1px solid var(--b2);font-family:var(--fm);font-size:12px;font-weight:600;color:var(--accent)}
.cq-break-total span:last-child{font-variant-numeric:tabular-nums}
body.role-vendedor .vendor-only{display:block !important}
body.role-vendedor .view.vendor-only:not(.active){display:none !important}

/* Nav items for admin-only in sidebar */
body.role-vendedor .admin-only.nav-item{display:none !important}
body.role-admin .admin-only.nav-item{display:flex !important}

/* ── Pending cotizaciones ── */
.pen-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:16px 18px;margin-bottom:10px}
.pen-card.pendiente{border-left:3px solid var(--amber)}
.pen-card.aprobada{border-left:3px solid var(--green)}
.pen-card.rechazada{border-left:3px solid var(--red)}
.pen-card.modificada{border-left:3px solid var(--blue)}
.pen-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pen-client{font-family:var(--fd);font-size:13px;font-weight:600}
.pen-status{font-size:10px;font-weight:600;padding:3px 8px;border-radius:4px}
.pen-status.pendiente{background:var(--abg);color:var(--amber);border:1px solid var(--ab)}
.pen-status.aprobada{background:var(--gbg);color:var(--green);border:1px solid var(--gb)}
.pen-status.rechazada{background:var(--rbg);color:var(--red);border:1px solid var(--rb)}
.pen-status.modificada{background:var(--bbg);color:var(--blue);border:1px solid var(--bbl)}
.pen-meta{font-size:10px;color:var(--muted);margin-bottom:8px}
.pen-products{font-size:11px;color:var(--text);margin-bottom:8px}
.pen-actions{display:flex;gap:6px;flex-wrap:wrap}

/* ── Calendar picker ── */
.cal-wrap{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:10px;max-width:280px}
.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cal-month{font-family:var(--fd);font-size:12px;font-weight:600;color:var(--text)}
.cal-nav{background:none;border:1px solid var(--b2);border-radius:4px;color:var(--muted);font-size:14px;width:26px;height:26px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.cal-nav:hover{color:var(--accent);border-color:var(--accent)}
.cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-size:9px;color:var(--dim);font-family:var(--fd);font-weight:600;margin-bottom:4px}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-day{background:none;border:1px solid transparent;border-radius:4px;color:var(--text);font-family:var(--fm);font-size:11px;padding:6px 0;text-align:center;cursor:pointer;transition:all .15s}
.cal-day:hover{background:var(--s3);border-color:var(--b2)}
.cal-day.selected{background:var(--accent-fill);color:var(--on-accent);font-weight:600;border-color:var(--accent)}
.cal-day.other{color:var(--dim)}
.cal-day.past{color:var(--dim);opacity:.4;cursor:default}
.cal-selected{font-size:10px;color:var(--accent);margin-top:6px;text-align:center;font-family:var(--fm)}

/* ── Auditoría: Top 1 — Resultado cotización protagonista ── */
.rbox .rv[id="r_precio"]{font-size:18px;font-weight:700;transition:all .3s}
.rbox > div:has(#r_total){background:var(--surface);border:1px solid var(--accent);border-radius:8px;padding:14px 16px}
.rbox #r_total{font-size:18px;color:var(--accent);font-weight:700}

/* ── Auditoría: Top 2 — Skeleton loading ── */
@keyframes shimmer{0%{background-position:-200px 0}100%{background-position:200px 0}}
.skeleton{background:linear-gradient(90deg,var(--s2) 25%,var(--s3) 50%,var(--s2) 75%);background-size:400px 100%;animation:shimmer 1.5s infinite;border-radius:6px;height:14px;margin-bottom:8px}
.skeleton.h{height:22px;width:60%;margin-bottom:12px}
.skeleton.row{height:44px;margin-bottom:6px;border-radius:var(--r)}

/* ── Auditoría: Top 3 — Pulso rojo en margen negativo ── */
@keyframes pulseLoss{0%,100%{border-color:var(--rb)}50%{border-color:var(--red)}}
.pr-row.loss{animation:pulseLoss 2s ease infinite}

/* ── Auditoría: Top 5 — Contraste WCAG AA ── */
/* --dim:#8a8580 sobre --bg:#0f0f0f = 3.2:1 (no pasa AA)
   Subir a #8a8580 = 4.6:1 (pasa AA para texto normal) */

/* ── #6: WhatsApp button solid green ── */
.btn-wa{background:#25D366;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-family:var(--fm);font-size:12px;font-weight:600;cursor:pointer;transition:background .15s}
.btn-wa:hover{background:#1ebe5d}
@media(max-width:768px){
  .btn-wa{flex:1;padding:12px;font-size:13px;min-height:48px}
  .modal-footer{flex-wrap:wrap}
  .modal-footer .btn{flex:1;min-width:120px}
}

/* web-design-guidelines: tabular nums for aligned columns */
.vv,.pinp,.rv,.cf-val,.mv,td{font-variant-numeric:tabular-nums}
html{color-scheme:dark}

/* ── Pipeline estados cotización ── */
.pen-card.enviada{border-left:3px solid var(--accent)}
.pen-card.ganada{border-left:3px solid #22c55e}
.pen-card.perdida{border-left:3px solid #991b1b}
.pen-card.revision{border-left:3px solid #f59e0b}
.pen-status.revision{background:rgba(245,158,11,.1);color:#f59e0b;border:1px solid rgba(245,158,11,.3)}
.pipe-badge.badge-revision{background:#f59e0b;color:#000}
.pen-status.enviada{background:var(--accent-dim);color:var(--accent);border:1px solid rgba(232,197,71,.3)}
.pen-status.ganada{background:#052e16;color:#22c55e;border:1px solid rgba(34,197,94,.3)}
.pen-status.perdida{background:#1a0505;color:#991b1b;border:1px solid rgba(153,27,27,.3)}

/* ── Badge notificaciones ── */
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border-radius:9px;background:var(--red);color:#fff;font-size:10px;font-weight:700;font-family:var(--fm);padding:0 5px;margin-left:auto}
.pipe-badge{background:var(--amber);color:#000}
.pipe-badge.badge-green{background:#22c55e;color:#000}
.pipe-badge.badge-muted{background:var(--s2);color:var(--muted);border:1px solid var(--b2)}

/* ── Pipeline empty state ── */
.pipe-empty{text-align:center;padding:48px 20px;color:var(--dim)}
.pipe-empty-icon{font-size:36px;margin-bottom:12px;opacity:.5}
.pipe-empty-text{font-size:13px;font-family:var(--fm)}

/* ── Filtros de estado (legacy, kept for compat) ── */
.state-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.state-filter{font-size:11px;font-family:var(--fm);padding:5px 12px;border-radius:6px;border:1px solid var(--b2);background:var(--s2);color:var(--muted);cursor:pointer;transition:all .15s}
.state-filter:hover{border-color:var(--accent);color:var(--text)}
.state-filter.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent);font-weight:600}
.state-filter .filter-count{font-size:9px;margin-left:4px;opacity:.7}

/* ── Motivo perdida ── */
.perdida-input{background:var(--s2);border:1px solid var(--rb);border-radius:6px;color:var(--text);font-family:var(--fm);font-size:12px;padding:8px;width:100%;outline:none;margin-top:6px}
.perdida-input:focus{border-color:var(--red)}

/* ── Pipeline: contexto de decisión (admin) ── */
.pen-ctx{margin-top:10px;padding:10px 12px;background:rgba(232,197,71,.03);border:1px solid rgba(232,197,71,.1);border-radius:8px}
.pen-ctx-title{font-family:var(--fm);font-size:9px;color:var(--accent);text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;font-weight:600}
.ctx-row{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:11px;font-family:var(--fm)}
.ctx-lbl{color:var(--muted)}
.ctx-val{color:var(--text);font-variant-numeric:tabular-nums;text-align:right}
.ctx-alert{font-size:10px;padding:5px 8px;border-radius:5px;margin-top:6px;font-family:var(--fm)}
.ctx-alert-warn{background:var(--rbg);border:1px solid var(--rb);color:var(--red)}
.ctx-alert-info{background:rgba(96,165,250,.08);border:1px solid rgba(96,165,250,.2);color:var(--blue)}

/* ── Pipeline: búsqueda ── */
.pen-search-wrap{margin-bottom:12px}
.pen-search{width:100%;padding:8px 12px;background:var(--s2);border:1px solid var(--b2);border-radius:8px;color:var(--text);font-family:var(--fm);font-size:12px;outline:none;transition:border-color .15s}
.pen-search:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(232,197,71,.12)}
.pen-search::placeholder{color:var(--dim)}

/* ── Pipeline: precio editable inline ── */
.pen-price-input{width:72px;padding:3px 6px;background:var(--s2);border:1px solid var(--b2);border-radius:4px;color:var(--accent);font-family:var(--fd);font-size:11px;text-align:right;outline:none;font-variant-numeric:tabular-nums}
.pen-price-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(232,197,71,.12)}
.pen-price-input:disabled{opacity:.5}
.pen-edit-input{padding:2px 6px;background:var(--s2);border:1px solid var(--b2);border-radius:4px;color:var(--accent);font-family:var(--fn);font-size:11px;text-align:right;outline:none}
.pen-edit-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px rgba(232,197,71,.12)}
.pen-edit-input:disabled{opacity:.5}

/* ── Pipeline: historial transiciones ── */
.pen-hist{margin-top:8px}
.pen-hist-toggle{font-family:var(--fm);font-size:10px;color:var(--dim);cursor:pointer;padding:4px 0;list-style:none}
.pen-hist-toggle::-webkit-details-marker{display:none}
.pen-hist-toggle::before{content:'▸ ';transition:transform .15s}
.pen-hist[open] .pen-hist-toggle::before{content:'▾ '}
.pen-hist-list{padding:6px 0 0 8px;border-left:1px solid var(--b2);margin-left:4px;margin-top:4px}
.pen-hist-step{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:10px;font-family:var(--fm)}
.pen-hist-dot{width:5px;height:5px;border-radius:50%;background:var(--dim);flex-shrink:0;margin-left:-11px}
.pen-hist-text{color:var(--muted);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pen-hist-ts{color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0}

/* ═══════════════════════════════════════════════════════════════
   REPORTE MENSUAL — Dashboard estilo Power BI
   ═══════════════════════════════════════════════════════════════ */

.rpt-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;flex-wrap:wrap}
.rpt-controls{display:flex;align-items:center;gap:4px}
.rpt-nav-btn{font-size:16px!important;padding:4px 10px!important;min-width:32px}
.rpt-month-label{font-family:var(--fm);font-size:12px;color:var(--text);min-width:100px;text-align:center;font-weight:600}

/* ── Hero: anillo tasa de cierre ── */
.rpt-hero{display:flex;align-items:center;gap:32px;padding:24px;background:linear-gradient(135deg,rgba(232,197,71,.04),rgba(232,197,71,.01));border:1px solid rgba(232,197,71,.12);border-radius:14px;margin-bottom:16px;flex-wrap:wrap}
.rpt-ring-wrap{position:relative;width:140px;height:140px;flex-shrink:0}
.rpt-ring{width:100%;height:100%;transform:rotate(-90deg)}
.rpt-ring-bg{fill:none;stroke:var(--s2);stroke-width:8}
.rpt-ring-fill{fill:none;stroke:var(--accent);stroke-width:8;stroke-linecap:round;transition:stroke-dashoffset 1.2s cubic-bezier(.4,0,.2,1);filter:drop-shadow(0 0 6px rgba(232,197,71,.4))}
.rpt-ring-value{position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);font-family:var(--fd);font-size:28px;font-weight:700;color:var(--accent)}
.rpt-ring-label{position:absolute;top:50%;left:50%;transform:translate(-50%,60%);font-family:var(--fm);font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}

.rpt-hero-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1;min-width:200px}
.rpt-kpi{padding:14px 16px;background:var(--surface);border:1px solid var(--b);border-radius:10px}
.rpt-kpi-value{font-family:var(--fd);font-size:22px;font-weight:700;color:var(--text)}
.rpt-kpi-label{font-family:var(--fm);font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.rpt-kpi-won .rpt-kpi-value{color:#22c55e}
.rpt-kpi-lost .rpt-kpi-value{color:var(--red)}

/* ── Montos cards ── */
.rpt-montos{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.rpt-monto-card{display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;position:relative;overflow:hidden}
.rpt-monto-won{border-left:3px solid #22c55e}
.rpt-monto-lost{border-left:3px solid var(--red)}
.rpt-monto-icon{font-size:24px;opacity:.7;flex-shrink:0}
.rpt-monto-data{flex:1;min-width:0}
.rpt-monto-value{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--text)}
.rpt-monto-ars{font-family:var(--fd);font-size:11px;color:var(--muted);margin-top:1px}
.rpt-monto-label{font-family:var(--fm);font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.rpt-monto-delta{font-family:var(--fd);font-size:11px;font-weight:600;padding:3px 8px;border-radius:4px;white-space:nowrap}
.rpt-monto-delta.up{color:#22c55e;background:rgba(34,197,94,.1)}
.rpt-monto-delta.down{color:var(--red);background:rgba(239,68,68,.1)}

/* ── Detail grid ── */
.rpt-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}
.rpt-detail-card{padding:16px;background:var(--surface);border:1px solid var(--b);border-radius:10px}
.rpt-detail-title{font-family:var(--fm);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px}
.rpt-detail-value{font-family:var(--fd);font-size:14px;font-weight:600;color:var(--text);word-break:break-word}
.rpt-detail-sub{font-family:var(--fm);font-size:10px;color:var(--dim);margin-top:4px}

/* ── Comparación mes anterior ── */
.rpt-compare{padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;margin-bottom:16px}
.rpt-compare-title{font-family:var(--fm);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.rpt-compare-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--b)}
.rpt-compare-row:last-child{border-bottom:none}
.rpt-compare-label{font-family:var(--fm);font-size:11px;color:var(--text)}
.rpt-compare-values{display:flex;gap:16px;align-items:center}
.rpt-compare-prev{font-family:var(--fd);font-size:11px;color:var(--dim)}
.rpt-compare-curr{font-family:var(--fd);font-size:11px;font-weight:600;color:var(--text)}
.rpt-compare-arrow{font-size:10px;font-weight:700}
.rpt-compare-arrow.up{color:#22c55e}
.rpt-compare-arrow.down{color:var(--red)}

/* ── Motivos de pérdida ── */
.rpt-section{padding:16px 18px;background:var(--surface);border:1px solid var(--b);border-radius:10px;margin-bottom:16px}
.rpt-section-title{font-family:var(--fm);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:10px}
.rpt-motivo-row{display:flex;align-items:center;gap:10px;padding:5px 0}
.rpt-motivo-label{font-family:var(--fm);font-size:11px;color:var(--text);min-width:120px;flex-shrink:0}
.rpt-motivo-bar{flex:1;height:6px;background:var(--s2);border-radius:3px;overflow:hidden}
.rpt-motivo-fill{height:100%;background:var(--red);border-radius:3px;transition:width .6s ease}
.rpt-motivo-count{font-family:var(--fd);font-size:11px;color:var(--dim);min-width:20px;text-align:right}

/* ── Animación entrada dashboard ── */
.rpt-hero,.rpt-monto-card,.rpt-detail-card,.rpt-compare,.rpt-section{opacity:0;transform:translateY(12px);animation:rptFadeIn .4s ease forwards}
.rpt-hero{animation-delay:.05s}
.rpt-monto-card:nth-child(1){animation-delay:.1s}
.rpt-monto-card:nth-child(2){animation-delay:.15s}
.rpt-monto-card:nth-child(3){animation-delay:.2s}
.rpt-detail-card:nth-child(1){animation-delay:.25s}
.rpt-detail-card:nth-child(2){animation-delay:.3s}
.rpt-detail-card:nth-child(3){animation-delay:.35s}
.rpt-detail-card:nth-child(4){animation-delay:.4s}
.rpt-compare{animation-delay:.45s}
.rpt-section{animation-delay:.5s}
@keyframes rptFadeIn{to{opacity:1;transform:translateY(0)}}

/* ═══ GESTIÓN DE PRODUCTOS (admin panel ERP) ═══ */
/* Segun frontend-design: industrial/utilitarian, precision, dark ERP */
/* Segun web-design-guidelines: semantic table, tabular-nums, focus-visible */
.gest-toolbar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.gest-search{flex:1;min-width:200px;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:9px 14px;color:var(--text);font-family:var(--fm);font-size:13px;outline:none;transition:border-color .15s}
.gest-search:focus{border-color:var(--accent)}
.gest-filter{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:9px 14px;color:var(--text);font-family:var(--fm);font-size:12px;outline:none;min-width:160px}
.gest-count{font-size:11px;color:var(--dim);font-family:var(--fn);white-space:nowrap}

.gest-table-wrap{overflow-x:auto;border:1px solid var(--b);border-radius:10px;background:var(--surface)}
.gest-table{width:100%;border-collapse:collapse;font-size:12px}
.gest-th{padding:10px 12px;text-align:left;font-size:9px;letter-spacing:.1em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;border-bottom:2px solid var(--b);background:var(--s2);white-space:nowrap;position:sticky;top:0;z-index:1}
.gest-th-num{text-align:right}
.gest-th-acc{text-align:center;width:100px}
.gest-th-id{width:55px}
.gest-th-canal{width:120px}
.gest-th-dim{width:130px}
.gest-th-receta{width:70px;text-align:center}
.gest-td{padding:8px 12px;border-bottom:1px solid var(--b);vertical-align:middle;transition:background .1s}
.gest-tr:hover .gest-td{background:var(--s2)}
.gest-td-id{font-family:var(--fn);font-size:10px;color:var(--dim);font-variant-numeric:tabular-nums}
.gest-td-canal{font-size:11px;color:var(--muted)}
.gest-td-nombre{font-weight:600;color:var(--text);max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gest-td-dim{font-family:var(--fn);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.gest-td-num{text-align:right;font-family:var(--fn);font-variant-numeric:tabular-nums;font-size:12px}
.gest-td-receta{text-align:center}
.gest-td-acc{text-align:center}
.gest-sinprecio{color:var(--amber);font-style:italic;font-size:11px}
.gest-badge-capas{display:inline-block;background:var(--s2);border:1px solid var(--b2);border-radius:4px;padding:1px 7px;font-size:10px;color:var(--muted);font-family:var(--fn)}
.gest-btn-edit{background:none;border:1px solid var(--b2);border-radius:6px;padding:4px 10px;font-size:10px;color:var(--muted);cursor:pointer;font-family:var(--fm);transition:all .15s;margin:0 2px}
.gest-btn-edit:hover{color:var(--accent);border-color:var(--accent)}
.gest-btn-del{background:none;border:1px solid var(--rb);border-radius:6px;padding:4px 10px;font-size:10px;color:var(--dim);cursor:pointer;font-family:var(--fm);transition:all .15s;margin:0 2px}
.gest-btn-del:hover{color:var(--red);border-color:var(--red);background:var(--rbg)}
.gest-empty{text-align:center;padding:40px 20px;color:var(--dim);font-size:13px}
.gest-empty-icon{font-size:32px;margin-bottom:8px}

/* Editor panel */
.gest-editor{background:var(--surface);border:1px solid var(--accent);border-radius:12px;margin-top:20px;overflow:hidden;animation:gestSlideIn .2s ease}
@keyframes gestSlideIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.gest-editor-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:var(--s2);border-bottom:2px solid var(--accent)}
.gest-editor-title{font-family:var(--fd);font-size:15px;font-weight:700;color:var(--text)}
.gest-editor-close{background:none;border:none;color:var(--dim);font-size:18px;cursor:pointer;padding:4px 8px;transition:color .15s}
.gest-editor-close:hover{color:var(--red)}
.gest-editor-body{padding:20px}
.gest-editor-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:14px;margin-bottom:18px}
.gest-editor-dims{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px}
.gest-fg{display:flex;flex-direction:column;gap:5px}
.gest-lbl{font-size:9px;letter-spacing:.1em;color:var(--dim);text-transform:uppercase;font-family:var(--fd);font-weight:600}
.gest-inp{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:8px 10px;color:var(--text);font-family:var(--fm);font-size:13px;outline:none;transition:border-color .15s}
.gest-inp:focus{border-color:var(--accent)}
.gest-num{font-family:var(--fn);font-variant-numeric:tabular-nums;text-align:right}

/* Receta section */
.gest-receta-section{border:1px solid var(--b);border-radius:10px;padding:16px;margin-bottom:18px;background:var(--s2)}
.gest-receta-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.gest-section-label{font-size:9px;letter-spacing:.12em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase}
/* Capa card — inspector de costo industrial */
.gest-capa{background:var(--bg);border:1px solid var(--b);border-radius:8px;padding:14px;margin-bottom:10px;transition:border-color .15s}
.gest-capa:hover{border-color:var(--b2)}
.gest-capa-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.gest-capa-num{font-size:9px;letter-spacing:.12em;color:var(--accent);font-family:var(--fd);font-weight:700}
.gest-capa-del{background:none;border:none;color:var(--dim);font-size:14px;cursor:pointer;padding:4px 6px;transition:color .15s;border-radius:4px}
.gest-capa-del:hover{color:var(--red);background:var(--rbg)}
.gest-capa-inputs{margin-bottom:10px}
.gest-fg-papel{margin-bottom:8px}
.gest-fg-papel select{font-size:11px;padding:7px 8px;width:100%}
.gest-capa-dims{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
/* Formula inspector — legible */
.gest-capa-formula{background:var(--s2);border-radius:8px;padding:12px 14px;margin-bottom:10px;font-family:var(--fn);font-size:12px;line-height:2;border-left:3px solid var(--accent)}
.gcf-line{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:1px 0}
.gcf-label{color:var(--muted);min-width:100px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;font-family:var(--fd);font-weight:600}
.gcf-calc{color:var(--text);font-variant-numeric:tabular-nums}
.gcf-calc strong{color:var(--text);font-weight:700;font-size:13px}
.gcf-accent{color:var(--accent) !important}
.gcf-dim{opacity:.7}
/* Capa result */
.gest-capa-result{display:flex;justify-content:space-between;align-items:center;padding-top:8px;border-top:1px solid var(--b)}
.gest-capa-result-lbl{font-size:10px;color:var(--muted);font-family:var(--fd);font-weight:600;letter-spacing:.05em}
.gest-capa-costo{font-family:var(--fn);font-size:14px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
/* Total breakdown grid */
.gcf-total-grid{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gcf-total-item{display:flex;flex-direction:column;align-items:center;gap:2px}
.gcf-total-lbl{font-size:8px;letter-spacing:.1em;color:var(--dim);font-family:var(--fd);font-weight:600;text-transform:uppercase}
.gcf-total-num{font-family:var(--fn);font-size:13px;font-variant-numeric:tabular-nums;color:var(--text)}
.gcf-total-sep{color:var(--dim);font-family:var(--fn);font-size:14px;padding:0 2px}
.gcf-total-cv .gcf-total-num{color:var(--accent);font-weight:700;font-size:14px}
.gcf-total-ct .gcf-total-num{color:var(--green);font-weight:700;font-size:15px}
.gest-receta-total{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid var(--b)}
.gest-receta-total-lbl{font-size:11px;color:var(--muted)}
.gest-receta-total-val{font-family:var(--fn);font-size:14px;font-weight:700;color:var(--accent)}

/* Zona flete row — 2 filas: inputs arriba, equivalente abajo */
.zona-flete-row{display:grid;grid-template-columns:150px 180px auto;gap:4px 10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--b)}
.zona-flete-row .field-row{gap:4px}
.zona-flete-row .gest-capa-del{justify-self:end}
.zona-flete-equiv{grid-column:1/-1;font-size:10px;color:var(--dim);font-family:var(--fn);padding:2px 0 0}
@media(max-width:600px){
  .zona-flete-row{grid-template-columns:1fr auto;gap:6px 8px}
  .zona-flete-row .field-row{grid-column:1}
}

/* Adhesivo section */
.gest-adh-row{display:grid;grid-template-columns:140px 1fr auto;gap:14px;align-items:end}
.gest-adh-formula{font-family:var(--fn);font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;padding:8px 0;line-height:1.6}
.gest-adh-costo{font-family:var(--fn);font-size:15px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;padding:8px 0}

/* ═══ GESTIÓN DE CLIENTES ═══ */
.cli-datos-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.cli-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px;margin-bottom:12px;transition:border-color .15s}
.cli-card:hover{border-color:var(--b2)}
.cli-card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px}
.cli-card-name{font-family:var(--fd);font-size:16px;font-weight:700;color:var(--text)}
.cli-card-canal{font-size:10px;color:var(--accent);font-family:var(--fd);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.cli-card-meta{font-size:11px;color:var(--dim);margin-top:4px}
.cli-card-actions{display:flex;gap:4px}
.cli-card-prods{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.cli-prod-tag{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:4px 10px;font-size:10px;color:var(--muted);font-family:var(--fn);display:flex;align-items:center;gap:6px}
.cli-prod-tag-price{color:var(--accent);font-weight:600}
.cli-prod-tag-nopr{color:var(--amber);font-style:italic}
/* Producto asignado en editor — card style */
.cli-prod-row{background:var(--bg);border:1px solid var(--b);border-radius:8px;padding:14px;margin-bottom:8px;display:grid;grid-template-columns:1fr 140px auto;gap:12px;align-items:center;transition:border-color .15s}
.cli-prod-row:hover{border-color:var(--b2)}
.cli-prod-info{display:flex;flex-direction:column;gap:3px}
.cli-prod-name{font-size:13px;font-weight:600;color:var(--text)}
.cli-prod-cv{font-size:11px;color:var(--dim);font-family:var(--fn)}
.cli-prod-dims{font-size:10px;color:var(--muted)}
.cli-prod-precio-wrap label{font-size:9px;letter-spacing:.1em;color:var(--dim);font-family:var(--fd);font-weight:600;text-transform:uppercase;display:block;margin-bottom:4px}
.cli-prod-precio{font-family:var(--fn);font-variant-numeric:tabular-nums;width:100%}
.cli-prod-del{background:none;border:1px solid var(--rb);border-radius:6px;color:var(--dim);font-size:12px;cursor:pointer;padding:6px 10px;transition:all .15s;white-space:nowrap}
.cli-prod-del:hover{color:var(--red);border-color:var(--red);background:var(--rbg)}
/* Selector de productos — modal con búsqueda */
.cli-prod-picker{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);z-index:9998;display:flex;align-items:center;justify-content:center}
.cli-prod-picker-box{background:var(--surface);border:1px solid var(--b2);border-radius:14px;max-width:600px;width:92%;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.6)}
.cli-prod-picker-header{padding:18px 20px;border-bottom:1px solid var(--b);display:flex;justify-content:space-between;align-items:center}
.cli-prod-picker-title{font-family:var(--fd);font-size:15px;font-weight:700}
.cli-prod-picker-search{margin:12px 16px;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:10px 14px;color:var(--text);font-family:var(--fm);font-size:13px;outline:none;width:calc(100% - 32px)}
.cli-prod-picker-search:focus{border-color:var(--accent)}
.cli-prod-picker-list{overflow-y:auto;flex:1;padding:0 16px 16px}
.cli-prod-picker-item{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border:1px solid var(--b);border-radius:8px;margin-bottom:6px;cursor:pointer;transition:all .12s}
.cli-prod-picker-item:hover{border-color:var(--accent);background:rgba(232,197,71,.05)}
.cli-prod-picker-item-name{font-size:13px;font-weight:600;color:var(--text)}
.cli-prod-picker-item-meta{font-size:11px;color:var(--muted);margin-top:2px}
.cli-prod-picker-item-cv{font-family:var(--fn);font-size:12px;color:var(--accent);font-variant-numeric:tabular-nums}
.cli-prod-picker-item.disabled{opacity:.4;pointer-events:none}
@media(max-width:900px){.cli-prod-row{grid-template-columns:1fr;gap:8px}}
.cli-card-inactive{opacity:.5;border-style:dashed}
@media(max-width:900px){.cli-datos-grid{grid-template-columns:1fr 1fr}.cli-prod-row{grid-template-columns:1fr 1fr}}

/* ═══ VENDEDORES ═══ */
.vnd-tabs{display:flex;gap:4px;background:var(--s2);border-radius:9px;padding:4px;width:fit-content;margin-bottom:20px}
.vnd-tab{padding:7px 18px;border-radius:7px;border:none;font-family:var(--fm);font-size:12px;font-weight:500;cursor:pointer;background:transparent;color:var(--muted);transition:all .15s}
.vnd-tab.active{background:var(--accent-fill);color:var(--on-accent)}
.vnd-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px;margin-bottom:12px;transition:border-color .15s}
.vnd-card:hover{border-color:var(--b2)}
.vnd-card-head{display:flex;justify-content:space-between;align-items:flex-start}
.vnd-card-name{font-family:var(--fd);font-size:16px;font-weight:700}
.vnd-card-role{font-size:10px;color:var(--accent);font-family:var(--fd);font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-top:2px}
.vnd-card-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.vnd-stat{background:var(--s2);border-radius:8px;padding:10px 12px;text-align:center}
.vnd-stat-val{font-family:var(--fn);font-size:16px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.vnd-stat-lbl{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.08em;font-family:var(--fd);margin-top:2px}
.vnd-clients{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vnd-client-tag{background:var(--s2);border:1px solid var(--b2);border-radius:6px;padding:3px 10px;font-size:10px;color:var(--muted);font-family:var(--fn)}
.vnd-client-tag-pct{color:var(--accent);font-weight:600;margin-left:4px}
/* Comisiones tab */
.vnd-com-card{background:var(--surface);border:1px solid var(--b);border-radius:8px;padding:14px;margin-bottom:8px;display:grid;grid-template-columns:1fr 120px 100px 100px auto;gap:10px;align-items:center}
.vnd-com-info{font-size:12px}
.vnd-com-monto{font-family:var(--fn);font-size:14px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}
.vnd-com-pct{font-family:var(--fn);font-size:12px;color:var(--muted);text-align:right}
.vnd-com-estado{text-align:center}
.vnd-com-badge{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.06em;border-radius:4px;padding:3px 8px}
.vnd-com-pendiente{background:rgba(251,191,36,.12);color:var(--amber);border:1px solid rgba(251,191,36,.25)}
.vnd-com-pagada{background:rgba(74,222,128,.1);color:var(--green);border:1px solid rgba(74,222,128,.2)}
.vnd-com-btn-pagar{background:none;border:1px solid var(--gb);border-radius:6px;padding:4px 10px;font-size:10px;color:var(--green);cursor:pointer;transition:all .15s}
.vnd-com-btn-pagar:hover{background:var(--gbg)}
/* Performance */
.vnd-perf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.vnd-perf-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px}
.vnd-rank-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--b)}
.vnd-rank-pos{font-family:var(--fd);font-size:18px;font-weight:800;color:var(--accent);width:30px}
.vnd-rank-name{font-size:13px;font-weight:600;flex:1}
.vnd-rank-val{font-family:var(--fn);font-size:14px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
/* Comisiones por cliente en editor */
.vnd-cli-com{display:grid;grid-template-columns:1fr 100px;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--b)}
.vnd-cli-com:last-child{border-bottom:none}
.vnd-cli-com-name{font-size:12px;color:var(--text)}
.vnd-cli-com-input{font-family:var(--fn);text-align:right}
@media(max-width:900px){.vnd-card-stats{grid-template-columns:1fr 1fr}.vnd-com-card{grid-template-columns:1fr 1fr}.vnd-perf-grid{grid-template-columns:1fr}.vnd-an-charts{grid-template-columns:1fr !important}.vnd-an-filters{flex-wrap:wrap}}

/* ═══ ANÁLISIS VENDEDOR ═══ */
.vnd-an-filters{display:flex;gap:10px;margin-bottom:18px;align-items:center}
.vnd-an-filters select{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:9px 14px;color:var(--text);font-family:var(--fm);font-size:12px;outline:none;min-width:160px}
.vnd-an-filters select:focus{border-color:var(--accent)}
.vnd-an-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}
.vnd-an-kpi{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:16px;text-align:center}
.vnd-an-kpi-val{font-family:var(--fn);font-size:20px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums;margin-bottom:4px}
.vnd-an-kpi-lbl{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--fd);font-weight:600}
.vnd-an-kpi-sub{font-size:11px;color:var(--muted);margin-top:4px}
.vnd-an-charts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
.vnd-an-chart{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px;min-height:250px}
.vnd-an-chart-title{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--text);margin-bottom:14px;letter-spacing:.03em}
.vnd-an-chart-full{grid-column:1/-1}
/* Donut */
.vnd-donut-wrap{display:flex;align-items:center;gap:20px}
.vnd-donut-legend{flex:1}
.vnd-donut-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:11px}
.vnd-donut-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.vnd-donut-name{flex:1;color:var(--muted)}
.vnd-donut-val{font-family:var(--fn);color:var(--text);font-variant-numeric:tabular-nums}
/* Bars */
.vnd-bar-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.vnd-bar-name{font-size:10px;color:var(--muted);min-width:120px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vnd-bar-track{flex:1;height:22px;background:var(--s2);border-radius:4px;overflow:hidden;position:relative}
.vnd-bar-fill{height:100%;border-radius:4px;transition:width .4s ease}
.vnd-bar-val{font-family:var(--fn);font-size:10px;color:var(--text);min-width:60px;text-align:right;font-variant-numeric:tabular-nums}
/* Line chart */
.vnd-line-svg{width:100%;height:200px}
/* Client health table */
.vnd-health-table{width:100%;border-collapse:collapse;margin-top:10px}
.vnd-health-th{padding:8px 10px;text-align:left;font-size:9px;letter-spacing:.1em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;border-bottom:2px solid var(--b)}
.vnd-health-th-r{text-align:right}
.vnd-health-td{padding:10px;border-bottom:1px solid var(--b);font-size:12px;vertical-align:middle}
.vnd-health-status{font-size:11px;font-weight:600}
.vnd-health-days{font-family:var(--fn);font-variant-numeric:tabular-nums}

/* ═══ MIS CLIENTES (vendedor) ═══ */
.mc-urgent{background:rgba(248,113,113,.06);border:1px solid var(--rb);border-radius:10px;padding:16px;margin-bottom:18px}
.mc-urgent-title{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--red);margin-bottom:10px}
.mc-card{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:16px;margin-bottom:10px;cursor:pointer;transition:border-color .15s}
.mc-card:hover{border-color:var(--accent)}
.mc-card-head{display:flex;justify-content:space-between;align-items:center}
.mc-card-name{font-family:var(--fd);font-size:15px;font-weight:700}
.mc-card-days{font-family:var(--fn);font-size:12px;font-variant-numeric:tabular-nums}
.mc-card-total{font-size:11px;color:var(--muted);margin-top:4px}
/* Client detail modal */
.mc-detail{background:var(--surface);border:1px solid var(--accent);border-radius:12px;margin-top:16px;overflow:hidden;animation:gestSlideIn .2s ease}
.mc-detail-header{padding:16px 20px;background:var(--s2);border-bottom:2px solid var(--accent);display:flex;justify-content:space-between;align-items:center}
.mc-detail-body{padding:20px}
.mc-detail-section{margin-bottom:18px}
.mc-detail-section-title{font-size:9px;letter-spacing:.12em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;margin-bottom:10px}
.mc-hist-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--b);font-size:12px}
.mc-hist-row:last-child{border-bottom:none}
.mc-nota-textarea{width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:10px;color:var(--text);font-family:var(--fm);font-size:13px;min-height:60px;resize:vertical;outline:none}
.mc-nota-textarea:focus{border-color:var(--accent)}
.mc-nota-status{font-size:10px;color:var(--dim);margin-top:4px}
.mc-sugerencia{background:rgba(232,197,71,.06);border:1px solid rgba(232,197,71,.2);border-radius:8px;padding:12px;font-size:12px;color:var(--accent)}

/* ═══ REPORTE VENDEDORES ═══ */
.rptv-alertas{margin-bottom:20px}
.rptv-alerta{background:rgba(248,113,113,.06);border:1px solid var(--rb);border-radius:8px;padding:12px 16px;margin-bottom:8px;font-size:12px;display:flex;align-items:center;gap:10px}
.rptv-alerta-pagar{background:rgba(251,191,36,.06);border-color:rgba(251,191,36,.25)}
.rptv-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}
.rptv-kpi{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:16px;text-align:center}
.rptv-kpi-val{font-family:var(--fn);font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:4px}
.rptv-kpi-lbl{font-size:9px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em;font-family:var(--fd);font-weight:600}
.rptv-table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:10px;overflow:hidden;border:1px solid var(--b);margin-bottom:20px}
.rptv-th{padding:10px 14px;text-align:left;font-size:9px;letter-spacing:.1em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;border-bottom:2px solid var(--b);background:var(--s2)}
.rptv-th-r{text-align:right}
.rptv-td{padding:10px 14px;border-bottom:1px solid var(--b);font-size:12px}
.rptv-td-num{text-align:right;font-family:var(--fn);font-variant-numeric:tabular-nums}
.rptv-td-name{font-weight:600}
.rptv-section{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:18px;margin-bottom:16px}
.rptv-section-title{font-family:var(--fd);font-size:12px;font-weight:700;color:var(--accent);letter-spacing:.05em;margin-bottom:12px}
.rptv-cli-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--b);font-size:12px}
.rptv-cli-row:last-child{border-bottom:none}
@media(max-width:900px){.rptv-kpis{grid-template-columns:1fr 1fr}}

.gest-editor-actions{display:flex;gap:10px;justify-content:flex-end;padding-top:14px;border-top:1px solid var(--b)}

@media(max-width:900px){
  .gest-editor-grid{grid-template-columns:1fr 1fr}
  .gest-capa-dims{grid-template-columns:1fr 1fr}
  .gcf-line{flex-direction:column;gap:2px}
  .gcf-total-grid{flex-direction:column;align-items:stretch}
  .gcf-total-item{flex-direction:row;justify-content:space-between}
  .gcf-total-sep{text-align:center}
}

/* ── Export bar ── */
.rpt-export-bar{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding-top:4px}

/* ── Validation errors ── */
.field-error{color:var(--red);font-size:11px;margin-top:4px;font-family:var(--fm);animation:fadeErr .2s ease}
@keyframes fadeErr{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ── Confirm modal ── */
.confirm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;animation:fadeIn .15s ease}
.confirm-box{background:var(--surface);border:1px solid var(--b2);border-radius:14px;max-width:540px;width:92%;box-shadow:0 24px 80px rgba(0,0,0,.6);max-height:90vh;overflow-y:auto}
.confirm-header{padding:24px 24px 16px;border-bottom:1px solid var(--b)}
.confirm-title{font-family:var(--fd);font-size:18px;font-weight:700;color:var(--text)}
.confirm-subtitle{font-size:11px;color:var(--dim);margin-top:4px}
.confirm-section-label{font-size:9px;letter-spacing:.12em;color:var(--accent);font-family:var(--fd);font-weight:700;text-transform:uppercase;margin-bottom:10px}
.confirm-detail{padding:16px 24px;border-bottom:1px solid var(--b)}
.confirm-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0}
.confirm-lbl{font-size:12px;color:var(--muted)}
.confirm-val{font-size:13px;color:var(--text);font-family:var(--fm)}
.confirm-val-bold{font-weight:700;font-size:14px}
.confirm-warn{color:var(--amber);font-style:italic;font-size:12px}
.confirm-products{padding:16px 24px;border-bottom:1px solid var(--b)}
.confirm-prod-table{width:100%;border-collapse:collapse;margin-top:8px}
.confirm-prod-th{font-size:10px;color:var(--dim);text-align:left;padding:6px 4px;border-bottom:1px solid var(--b);font-family:var(--fd);font-weight:600;letter-spacing:.05em}
.confirm-prod-th-r{text-align:right}
.confirm-prod-row td{padding:7px 4px;border-bottom:1px solid var(--b);font-size:12px}
.confirm-prod-name{color:var(--text);font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.confirm-prod-num{text-align:right;font-family:var(--fn);font-variant-numeric:tabular-nums;color:var(--muted)}
.confirm-prod-sub{color:var(--text);font-weight:600}
.confirm-totals{padding:16px 24px;background:var(--s2);border-bottom:1px solid var(--b)}
.confirm-totals-row{display:flex;justify-content:space-between;padding:4px 0}
.confirm-totals-lbl{font-size:12px;color:var(--muted)}
.confirm-totals-val{font-size:13px;font-family:var(--fn);font-variant-numeric:tabular-nums;color:var(--text)}
.confirm-totals-final{padding-top:10px;margin-top:6px;border-top:1px solid var(--b)}
.confirm-totals-final .confirm-totals-lbl{font-weight:700;color:var(--text);font-size:13px}
.confirm-totals-final .confirm-totals-val{font-weight:700}
.confirm-total{color:var(--accent);font-size:17px;font-weight:700}
.confirm-totals-ars .confirm-totals-val{color:var(--muted);font-size:12px}
.confirm-dolar-ref{font-size:10px;color:var(--dim);text-align:right;margin-top:6px;font-family:var(--fn)}
.confirm-alerts{padding:12px 24px;border-bottom:1px solid var(--b)}
.confirm-alert-item{font-size:11px;color:var(--amber);padding:3px 0;display:flex;align-items:center;gap:6px}
.confirm-alert-item::before{content:"⚠";font-size:12px}
.confirm-actions{display:flex;gap:10px;justify-content:flex-end;padding:18px 24px}
.confirm-cancel{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:10px 20px;color:var(--muted);font-size:13px;cursor:pointer;font-family:var(--fm);transition:background .15s}
.confirm-cancel:hover{background:var(--s3)}
.confirm-ok{background:var(--accent);border:none;border-radius:8px;padding:10px 24px;color:#0f0f0f;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--fd);transition:opacity .15s;letter-spacing:.02em}
.confirm-ok:hover{opacity:.9}
.confirm-ok:disabled{opacity:.5;cursor:not-allowed}

/* ── Tabla Tango ── */
.tango-tbl{width:100%;border-collapse:collapse;font-size:13px;font-family:var(--fn)}
.tango-tbl th{padding:10px 12px;background:var(--s2);color:var(--muted);font-size:10px;letter-spacing:.06em;text-transform:uppercase;font-family:var(--fd);font-weight:600;border-bottom:1px solid var(--b);text-align:right}
.tango-tbl th:first-child{text-align:left}
.tango-tbl td{padding:10px 12px;border-bottom:1px solid var(--b);font-variant-numeric:tabular-nums}
.tango-tbl td.r{text-align:right}
.tango-tbl tbody tr:hover td{background:var(--s2)}
.tango-tbl tfoot td{padding:12px;background:var(--s2)}

/* ── Responsive ── */
@media(max-width:600px){
  .rpt-hero{flex-direction:column;align-items:center;text-align:center}
  .rpt-hero-kpis{grid-template-columns:1fr 1fr;width:100%}
  .rpt-ring-wrap{width:120px;height:120px}
  .rpt-export-bar{justify-content:center}
  .confirm-box{padding:20px}
}

/* ── Buscador unificado (según web-design-guidelines: icono, limpiar con un click, Esc) ── */
.ct-search{position:relative;display:flex;align-items:center;flex:1;min-width:220px;max-width:560px}
.ct-search .cs-icon{position:absolute;left:13px;font-size:13px;opacity:.55;pointer-events:none}
.ct-search input{width:100%;background:var(--s2);border:1px solid var(--b2);border-radius:10px;color:var(--text);font-family:var(--fm);font-size:13.5px;padding:10px 36px 10px 36px;outline:none;transition:border-color .15s,box-shadow .15s}
.ct-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(232,197,71,.12)}
.ct-search input::placeholder{color:var(--dim)}
.ct-search .cs-clear{position:absolute;right:6px;background:none;border:none;color:var(--dim);font-size:15px;cursor:pointer;padding:5px 8px;border-radius:6px;display:none}
.ct-search .cs-clear:hover{color:var(--text);background:var(--s2)}
.ct-search input:not(:placeholder-shown)~.cs-clear{display:block}

/* Sugerencias del combo (PE): prefijo primero, click agrega chip */
.pe-sug-box{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--b2);border-radius:10px;z-index:40;max-height:280px;overflow-y:auto;box-shadow:0 8px 24px rgba(0,0,0,.45)}
.pe-sug{padding:9px 13px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--b)}
.pe-sug:last-child{border-bottom:none}
.pe-sug:hover{background:var(--s2);color:var(--accent)}
.pe-chip{display:inline-flex;align-items:center;gap:7px;background:var(--s2);border:1px solid var(--accent);border-radius:16px;padding:4px 11px;font-size:12px;color:var(--text)}
.pe-chip button{background:none;border:none;color:var(--dim);cursor:pointer;font-size:12px;padding:0}
.pe-chip button:hover{color:var(--red)}

/* ── Cuentas a cobrar: legibilidad (chips de montos, cebra, casillas grandes) ── */
.cc-table{width:100%;border-collapse:collapse;font-size:13.5px}
.cc-table th{text-align:right;padding:10px 14px;font-size:11px;letter-spacing:.08em;color:var(--muted);background:var(--s2);border-bottom:1px solid var(--b2);white-space:nowrap;font-weight:700}
.cc-table th.l,.cc-table td.l{text-align:left !important}
.cc-table th{position:sticky;top:0;z-index:2}
.cc-table td{padding:9px 14px;border-bottom:1px solid var(--b);text-align:right;white-space:nowrap !important;font-variant-numeric:tabular-nums}
.cc-table tbody tr:nth-child(odd){background:rgba(255,255,255,.025)}
.cc-table tbody tr:hover{background:rgba(232,197,71,.07)}
.cc-table tfoot td{background:var(--s2);font-weight:800;padding:10px 14px;text-align:right;border-top:1px solid var(--b2)}
.cc-table tfoot td.l{text-align:left}
.ccn{display:inline-block;background:rgba(255,255,255,.06);border:1px solid var(--b2);border-radius:8px;padding:3px 10px;font-family:var(--fn);font-size:13.5px;font-weight:700;letter-spacing:.02em;min-width:96px;text-align:right}
.ccn.rojo{color:#ff8a80;background:rgba(229,89,75,.12);border-color:rgba(229,89,75,.35)}
.ccn.ambar{color:#ffd54f;background:rgba(231,174,60,.12);border-color:rgba(231,174,60,.35)}
.ccn.verde{color:#9ccc65;background:rgba(111,192,106,.12);border-color:rgba(111,192,106,.35)}
.ccn.oro{color:var(--accent);background:rgba(232,197,71,.10);border-color:rgba(232,197,71,.35)}
.cc-drop-item{display:flex;align-items:center;gap:12px;padding:12px 15px;font-size:14.5px;cursor:pointer;border-bottom:1px solid var(--b)}
.cc-drop-item:hover{background:var(--s2)}
.cc-drop-item input{width:19px;height:19px;accent-color:var(--accent);flex:none;cursor:pointer}

/* ── Componentes base del plan de reorganización (Paso 1) ── */
:root{--ok:#30A46C;--warn:#F5A524;--bad:#E5484D}
.fb-bar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;background:var(--surface);border:1px solid var(--b2);border-radius:12px;padding:11px 13px}
.fb-quick{display:flex;gap:4px}
.fb-quick button{background:var(--s2);border:1px solid var(--b2);border-radius:7px;color:var(--muted);font-size:11px;padding:7px 10px;cursor:pointer;font-family:var(--fm)}
.fb-quick button:hover{color:var(--accent);border-color:var(--accent)}
/* Botón Actualizar con estado */
@keyframes upd-spin{to{transform:rotate(360deg)}}
.btn-upd .upd-ico{display:inline-block}
.btn-upd.loading{opacity:.75;cursor:progress}
.btn-upd.loading .upd-ico{animation:upd-spin 1s linear infinite}
.upd-status{margin-left:8px;font-size:11.5px;font-family:var(--fm)}
.upd-status.ok{color:var(--t-green)}
.upd-status.err{color:var(--t-red)}
/* Selector de período (año → meses con casillas) */
.fb-per-wrap{position:relative}
.fb-per-btn{background:var(--s2);border:1px solid var(--b2);border-radius:8px;color:var(--text);font-size:12.5px;padding:8px 12px;cursor:pointer;font-family:var(--fm);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.fb-per-btn.on{border-color:var(--accent);color:var(--accent)}
.fb-per-btn:hover{border-color:var(--accent)}
.fb-per-caret{font-size:10px;color:var(--dim)}
.fb-per-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:60;background:var(--surface);border:1px solid var(--b2);border-radius:10px;padding:8px;min-width:270px;box-shadow:0 10px 30px rgba(0,0,0,.45)}
.fb-per-tree{max-height:340px;overflow:auto}
.fb-per-y{display:flex;align-items:center;gap:6px;padding:5px 4px;font-size:13px;font-weight:600}
.fb-per-y label{display:flex;align-items:center;gap:6px;cursor:pointer}
.fb-per-exp{cursor:pointer;color:var(--dim);width:14px;text-align:center;user-select:none}
.fb-per-n{margin-left:auto;font-family:var(--fm);font-size:10.5px;color:var(--accent);font-weight:400}
.fb-per-m{display:grid;grid-template-columns:repeat(3,1fr);gap:2px 8px;padding:2px 0 8px 26px}
.fb-per-m label{display:flex;align-items:center;gap:5px;font-size:12.5px;padding:3px 4px;border-radius:5px;cursor:pointer}
.fb-per-m label:hover{background:var(--s2)}
.fb-per-m label.fut{color:var(--dim)}
.fb-per-panel input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}
.fb-per-foot{display:flex;justify-content:space-between;gap:8px;border-top:1px solid var(--b);padding-top:8px;margin-top:4px}
.fb-per-foot button{border-radius:7px;padding:6px 12px;font-size:12px;cursor:pointer;border:1px solid var(--b2);background:var(--s2);color:var(--muted)}
.fb-per-foot .fb-per-ok{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent);font-weight:700}
.fb-chips{display:flex;gap:7px;flex-wrap:wrap;margin-top:8px;min-height:4px}
.tb-card{background:var(--surface);border:1px solid var(--b2);border-radius:14px;overflow:hidden;margin-top:12px}
.tb-titulo{background:var(--s2);padding:10px 14px;font-weight:800;font-size:12.5px;color:var(--accent)}
.tb-titulo span{color:var(--dim);font-weight:400}
.tb-vacio{background:var(--surface);border:1px dashed var(--b2);border-radius:14px;padding:30px;text-align:center;color:var(--dim);margin-top:12px;font-size:13.5px}
#panel_lateral .pl-fondo{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90}
#panel_lateral .pl-caja{position:fixed;top:0;right:0;bottom:0;width:min(520px,92vw);background:var(--surface);border-left:1px solid var(--b2);z-index:91;display:flex;flex-direction:column;box-shadow:-12px 0 40px rgba(0,0,0,.5)}
#panel_lateral .pl-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--b2);font-size:15px}
#panel_lateral .pl-head button{background:none;border:none;color:var(--dim);font-size:16px;cursor:pointer;padding:4px 8px}
#panel_lateral .pl-body{flex:1;overflow-y:auto;padding:16px 18px}
#panel_lateral .pl-pie{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--b2)}
@media (prefers-reduced-motion: no-preference){#panel_lateral .pl-caja{animation:plIn .18s ease-out}}
@keyframes plIn{from{transform:translateX(30px);opacity:.4}to{transform:none;opacity:1}}

/* Cta cte compacta: todo en una pantalla */
.cc-strip{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}
.cc-strip>div{flex:1;min-width:150px;background:var(--surface);border:1px solid var(--b2);border-radius:11px;padding:9px 14px;display:flex;flex-direction:column;gap:2px}
.cc-strip .k{font-size:10px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase}
.cc-strip b{font-size:17px;font-family:var(--fn);font-variant-numeric:tabular-nums}
.cc-table td{padding:6px 11px}
.cc-table th{padding:8px 11px}
.ccn{padding:2px 8px;min-width:86px;font-size:12.5px}
#view_ctacte .fb-bar,#view_ctacte #cc_filtros{padding:9px 12px}
#cc_novedades>div{padding:8px 13px !important}

/* Prueba tipográfica (pedido de Lucas): tipo Segoe/system en vistas de datos, números tabulares */
:root{--fsans:'Inter','Segoe UI',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif}
.cc-table,.cc-strip,.fb-bar,.tb-titulo,.pe-chip,.cc-drop-item,#panel_lateral{font-family:var(--fsans)}
.cc-table{font-size:14px}
.cc-table td,.cc-strip b,.ccn{font-variant-numeric:tabular-nums}
.ccn{font-family:var(--fsans);font-weight:600;font-size:13px}
.cc-strip b{font-family:var(--fsans);font-weight:700}

/* ════════════════════════════════════════════════════════════════
   TEMA CLARO (ESPECIFICACION-TEMA-CLARO.md) — PRUEBA REVERSIBLE
   Se activa con html.theme-light. El botón del sidebar alterna y
   guarda la preferencia en localStorage('tema'). Sidebar queda oscuro.
   ════════════════════════════════════════════════════════════════ */
:root{--t-red:#ff8a80;--t-amber:#ffd54f;--t-green:#9ccc65}
html.theme-light{
  color-scheme:light;
  --bg:#F2F1EC; --surface:#FFFFFF; --s2:#F7F6F1;
  --b:#E3E2DB; --b2:#D6D4CA;
  --text:#1F1E1A; --muted:#55544E; --dim:#7E7D75;
  --accent:#8A6D00;            /* dorado oscuro para TEXTO sobre claro */
  --accent-fill:#F2C300; --on-accent:#231B00;  /* dorado pleno solo como RELLENO con texto oscuro */
  --t-red:#B42318; --t-amber:#8A5A00; --t-green:#2E7D32;
  --red:#B42318; --amber:#8A5A00; --green:#2E7D32; --blue:#1D4ED8;
  --gbg:#EAF3DE; --abg:#FAEEDA; --rbg:#FCEBEB;
}
html.theme-light body{background:var(--bg);color:var(--text);font-family:'Inter','Segoe UI',system-ui,-apple-system,sans-serif}
/* Sidebar SIEMPRE oscuro (según spec §3) */
html.theme-light .sidebar{background:#1C1C1E;border-right:1px solid #2B2B2C}
html.theme-light .sidebar .nav-item{color:#D8D8D2}
html.theme-light .sidebar .nav-item:hover{background:#2B2B2C}
html.theme-light .sidebar .nav-item.active{background:#2B2B2C;color:#F2C300}
html.theme-light .sidebar .nav-label{color:#9A9A94}
html.theme-light .sidebar .nav-divider{background:#2B2B2C}
html.theme-light .sidebar .logo-tag,html.theme-light .sidebar .excel-date{color:#9A9A94}
html.theme-light .sidebar .logo-title{color:#ECECE8}
html.theme-light .sidebar .cf-lbl{color:#9A9A94}
html.theme-light .sidebar .cf-val{color:#F2C300}
html.theme-light .sidebar .sidebar-footer,html.theme-light .sidebar #user_display{color:#9A9A94}
html.theme-light .sidebar .nav-kbd{color:#6E6E6A;border-color:#3A3A3E}
/* Zebra y hover sobre claro */
html.theme-light .cc-table tbody tr:nth-child(odd){background:rgba(0,0,0,.022)}
html.theme-light .cc-table tbody tr:hover{background:#FBF3D2}
html.theme-light .cc-table th{background:var(--s2);color:var(--muted)}
html.theme-light .cc-table tfoot td{background:var(--s2)}
/* Chips de importe con fondo suave + texto oscuro (spec §6) */
html.theme-light .ccn{background:#F1F1EE;border-color:var(--b2);color:var(--text)}
html.theme-light .ccn.rojo{background:#FCEBEB;border-color:#E24B4A;color:#791F1F}
html.theme-light .ccn.ambar{background:#FAEEDA;border-color:#EF9F27;color:#633806}
html.theme-light .ccn.verde{background:#EAF3DE;border-color:#639922;color:#27500A}
html.theme-light .ccn.oro{background:#FBF3D2;border-color:#F2C300;color:#6B5400}
/* Botones */
html.theme-light .btn-quote{background:#F2C300;color:#1C1C1E;box-shadow:none}
html.theme-light .btn-ghost{background:var(--surface);border-color:var(--b2);color:var(--text)}
/* Buscadores, inputs, selects */
html.theme-light .ct-search input,html.theme-light .gest-inp,html.theme-light .field-inp,html.theme-light .field-sel,html.theme-light .cs{background:#FFFFFF;border-color:var(--b2);color:var(--text)}
html.theme-light .ct-search input:focus{border-color:#F2C300;box-shadow:0 0 0 3px rgba(242,195,0,.18)}
html.theme-light .fb-quick button{background:var(--s2);border-color:var(--b2);color:var(--muted)}
html.theme-light .pe-chip{background:var(--s2);border-color:#F2C300;color:var(--text)}
html.theme-light .pe-sug-box{background:#FFFFFF;border-color:var(--b2);box-shadow:0 8px 24px rgba(0,0,0,.12)}
html.theme-light .pe-sug:hover,html.theme-light .cc-drop-item:hover{background:var(--s2);color:var(--accent)}
html.theme-light .tb-titulo{background:var(--s2)}
html.theme-light #panel_lateral .pl-caja{box-shadow:-12px 0 40px rgba(0,0,0,.14)}
/* Tarjetas KPI con borde lateral de estado (spec §5) los colores llegan por chips/vars */
html.theme-light .cc-strip>div{background:#FFFFFF;border-color:var(--b)}
html.theme-light .gest-empty,html.theme-light .tb-vacio{color:var(--muted);border-color:var(--b2);background:var(--surface)}

/* Letra Inter global (a Lucas le gustó — se mantiene también en tema oscuro) */
body,.view,.gest-inp,.field-inp,.btn,.pe-chip,select,input,textarea{font-family:var(--fsans)}
/* Fix para futuros intentos de tema claro: las etiquetas del sidebar heredan color (bug 9/9) */
html.theme-light .sidebar .nav-item-label,html.theme-light .sidebar .nav-item span{color:inherit}


/* ── Tablero Finanzas ── */
.tab-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.kpi-card{background:var(--surface);border:1px solid var(--b);border-radius:14px;padding:14px 16px;transition:border-color .15s}
.kpi-card:hover{border-color:var(--accent)}
.kpi-t{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi-nota{font-size:10px;letter-spacing:0;text-transform:none;color:var(--dim);border:1px solid var(--b);border-radius:8px;padding:1px 6px;margin-left:4px}
.kpi-v{font-size:24px;font-weight:800;font-family:var(--fm);font-variant-numeric:tabular-nums;margin:6px 0 2px;color:var(--text)}
.kpi-l{font-size:12px;color:var(--muted);line-height:1.5}
.tchip{display:inline-block;border-radius:10px;padding:2px 9px;font-size:10.5px;font-weight:800;letter-spacing:.03em}
.tchip-ok{color:var(--t-green);background:rgba(76,175,80,.12);border:1px solid var(--t-green)}
.tchip-atencion{color:var(--t-amber);background:rgba(255,193,7,.12);border:1px solid var(--t-amber)}
.tchip-critico{color:var(--t-red);background:rgba(233,69,96,.12);border:1px solid var(--t-red)}
.tab-emp{cursor:pointer;border-radius:16px;padding:5px 13px;font-size:12px;font-weight:700;border:1px solid var(--b);background:transparent;color:var(--text)}
.tab-emp.on{background:var(--accent-fill);color:var(--on-accent);border-color:var(--accent)}
.tab-alerta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--b);border-left:4px solid var(--amber);border-radius:10px;margin-top:6px;font-size:13px}
.aging-row{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:12px}
.aging-bar{height:14px;border-radius:4px;background:var(--accent);opacity:.85;min-width:2px}
.tab-2col{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
@media(max-width:980px){.tab-2col{grid-template-columns:1fr}}
.circ-strip{display:flex;align-items:stretch;gap:8px;flex-wrap:wrap;margin-top:10px}
.circ-et{flex:1;min-width:150px;background:var(--surface);border:1px solid var(--b);border-radius:12px;padding:10px 12px;cursor:pointer}
.circ-et:hover{border-color:var(--accent)}


/* ── Tema claro v2: menos fatiga, más jerarquía (frontend-design: precisión; WDG: estados interactivos con más contraste) ── */
html{color-scheme:dark}
html.theme-light .card,html.theme-light .kpi-card,html.theme-light .circ-et{box-shadow:0 1px 2px rgba(35,30,10,.06)}
html.theme-light .cc-table th{background:#ECEBE3;letter-spacing:.04em}
html.theme-light .cc-table tbody tr:hover{background:#F7EFC9}
html.theme-light .view-title{color:#1F1E1A}
html.theme-light .view-sub{color:var(--muted)}
html.theme-light .tb-vacio{color:var(--dim)}
html.theme-light select,html.theme-light input,html.theme-light textarea{background:#FFFFFF;color:var(--text);border-color:var(--b2)}
html.theme-light .gest-inp{background:#FFFFFF;color:var(--text);border-color:var(--b2)}
html.theme-light .fb-bar .gest-inp,html.theme-light .ct-search input{background:#FFFFFF}
html.theme-light .tab-alerta{background:#FDF8EA}
html.theme-light .kpi-v{color:#1F1E1A}
html.theme-light .kpi-t{color:#6B6A62}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}

/* Ficha técnica: salto de página del polímero al imprimir */
@media print{ .ft-pagina2{page-break-before:always;break-before:page} }

/* ── Logística V3 (palet / flete: zonas, tarifas, explicación en cotización) ── */
.logi-zona{background:var(--surface);border:1px solid var(--b);border-radius:10px;padding:12px 14px;margin-bottom:10px}
.logi-zona-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.logi-zona-name{font-weight:700;font-size:14px}
.logi-badge{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid;white-space:nowrap}
.logi-ok{color:var(--green);border-color:var(--gb);background:var(--gbg)}
.logi-warn{color:var(--amber);border-color:var(--amber);background:var(--abg)}
.logi-bad{color:var(--red);border-color:var(--red);background:var(--rbg)}
.logi-tarifa{font-family:var(--fn);font-size:12.5px;margin-top:4px}
.logi-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px;padding:10px;background:var(--s2);border-radius:8px}
.logi-form .gest-fg{min-width:110px}
.logi-hist{font-size:11px;color:var(--dim);margin-top:6px;font-family:var(--fn)}
.logi-hist div{padding:2px 0;border-bottom:1px dashed var(--b)}
.logi-mini{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:6px;margin-top:8px}
.logi-mini div{background:var(--s2);border:1px solid var(--b);border-radius:8px;padding:6px 8px;font-size:11px;text-align:center}
.logi-mini b{display:block;font-family:var(--fn);font-size:13px}
.logi-explica{margin-top:10px;background:var(--surface);border:1px solid var(--b2);border-radius:10px;padding:11px 14px;font-size:12.5px;line-height:1.5}
.logi-btn{background:var(--s2);border:1px solid var(--b2);border-radius:6px;color:var(--text);font-size:11.5px;padding:4px 10px;cursor:pointer;font-family:var(--fm)}
.logi-btn:hover{border-color:var(--accent);color:var(--accent)}
.logi-btn:disabled{opacity:.6;cursor:wait}
@media(max-width:700px){.logi-zona-head>span:last-child{margin-left:0;width:100%}}
