/* =====================================================
   COTIZADOR SOLARIS — UI v3 Rediseño
   ===================================================== */

:root {
  --primary:       #1a3a8f;
  --primary-dk:    #0d1f54;
  --primary-lt:    #2d5be3;
  --accent:        #16a34a;
  --accent-lt:     #22c55e;
  --warning:       #f59e0b;
  --danger:        #dc2626;
  --surface:       #ffffff;
  --surface-2:     #f8fafc;
  --surface-3:     #f1f5f9;
  --border:        #e2e8f0;
  --txt:           #0f172a;
  --txt-2:         #475569;
  --txt-3:         #94a3b8;
  --shadow-sm:     0 1px 4px rgba(0,0,0,.06);
  --shadow-md:     0 4px 20px rgba(0,0,0,.08);
  --shadow-lg:     0 12px 40px rgba(0,0,0,.12);
  --shadow-xl:     0 24px 64px rgba(0,0,0,.18);
  --r-sm: 8px; --r-md: 12px; --r-lg: 16px; --r-xl: 20px;
  --ease: cubic-bezier(.4,0,.2,1);
  --trans: all .2s var(--ease);
  /* legacy compat */
  --bd:#1a3a8f; --bm:#1e4db7; --bl:#2d5be3;
  --bp:#eef4ff; --br:#dce8ff;
  --grn:#16a34a; --red:#dc2626; --org:#f59e0b;
  --gray:#f8fafc; --bdr:#e2e8f0;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:'Barlow',sans-serif;
  background:#0f172a;
  min-height:100vh;
  color:var(--txt);
  line-height:1.5;
  overflow-x:hidden;
}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:#94a3b8}

/* ══════════════════════════════════════
   TOP NAVBAR
══════════════════════════════════════ */
.topbar{
  position:sticky;top:0;z-index:100;
  background:rgba(13,31,84,.97);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(255,255,255,.07);
  display:flex;align-items:center;justify-content:space-between;
  padding:0 24px;height:58px;gap:16px;
}
.topbar-logo{display:flex;align-items:center;gap:12px;text-decoration:none;flex-shrink:0}
.topbar-logo .logo-icon{
  width:34px;height:34px;
  background:linear-gradient(135deg,#1e4db7,#16a34a);
  border-radius:9px;display:flex;align-items:center;justify-content:center;
  font-size:17px;flex-shrink:0;box-shadow:0 2px 8px rgba(30,77,183,.4);
}
.topbar-logo .logo-text{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:900;font-size:1.1rem;color:#fff;
  letter-spacing:.8px;text-transform:uppercase;line-height:1.1;
}
.topbar-logo .logo-sub{
  font-size:.62rem;color:rgba(255,255,255,.4);
  font-weight:400;letter-spacing:.2px;display:block;margin-top:1px;
}

/* ── Firebase status (in topbar) ── */
.firebase-status{
  display:flex;align-items:center;gap:6px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;padding:5px 12px;
  font-size:.7rem;font-weight:600;
  transition:var(--trans);flex-shrink:0;
}
.firebase-status.connecting{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.12)}
.firebase-status.connected{border-color:rgba(22,163,74,.35);background:rgba(22,163,74,.12)}
.firebase-status.disconnected{border-color:rgba(220,38,38,.35);background:rgba(220,38,38,.12)}
.firebase-status .status-dot{width:7px;height:7px;border-radius:50%;animation:pulse 2s infinite}
.firebase-status.connecting .status-dot{background:#f59e0b}
.firebase-status.connected   .status-dot{background:#22c55e}
.firebase-status.disconnected .status-dot{background:#ef4444}
.firebase-status .status-text{color:rgba(255,255,255,.8)}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.25)}}

/* ══════════════════════════════════════
   TAB BAR (desktop horizontal)
══════════════════════════════════════ */
.tab-bar{
  background:#fff;
  border-bottom:1.5px solid var(--border);
  display:flex;align-items:stretch;
  padding:0 20px;gap:0;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  position:sticky;top:58px;z-index:90;
  box-shadow:0 2px 8px rgba(0,0,0,.04);
}
.tab-bar::-webkit-scrollbar{display:none}

.tab-btn{
  display:flex;align-items:center;gap:7px;
  padding:13px 18px;
  background:transparent;
  color:var(--txt-2);
  border:none;border-bottom:3px solid transparent;
  font-family:'Barlow Condensed',sans-serif;
  font-size:.9rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.3px;
  cursor:pointer;transition:var(--trans);
  white-space:nowrap;flex-shrink:0;
  margin-bottom:-1.5px;
}
.tab-btn:hover{color:var(--primary);background:var(--surface-2)}
.tab-btn.active{
  color:var(--primary);
  border-bottom-color:var(--primary-lt);
  font-weight:800;background:transparent;
}
.tab-btn .tab-close{
  display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;border-radius:50%;
  font-size:.68rem;opacity:.45;
  transition:var(--trans);background:transparent;
  border:none;cursor:pointer;color:inherit;padding:0;
}
.tab-btn .tab-close:hover{background:rgba(0,0,0,.1);opacity:1}
.tab-btn.active .tab-close{color:var(--primary);opacity:.5}
.tab-btn.active .tab-close:hover{background:#e2e8f0;opacity:1}

.tab-content{display:none}
.tab-content.active{display:block}

/* ══════════════════════════════════════
   MAIN CONTENT AREA
══════════════════════════════════════ */
.main-content{
  background:#f1f5f9;
  min-height:calc(100vh - 112px);
  padding:24px 20px 40px;
}

/* ══════════════════════════════════════
   CARD
══════════════════════════════════════ */
.card{
  background:var(--surface);
  border-radius:var(--r-lg);
  max-width:860px;margin:0 auto;
  box-shadow:var(--shadow-md);
  overflow:hidden;
  animation:fadeUp .22s var(--ease);
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(10px)}
  to{opacity:1;transform:translateY(0)}
}

.hist-wrap{
  background:var(--surface);
  border-radius:var(--r-lg);
  max-width:860px;margin:0 auto;
  padding:24px 28px;
  box-shadow:var(--shadow-md);
  animation:fadeUp .22s var(--ease);
}

/* ══════════════════════════════════════
   SECTIONS (collapsible)
══════════════════════════════════════ */
.sec{
  font-family:'Barlow Condensed',sans-serif;
  font-size:.88rem;font-weight:800;
  color:var(--primary);
  text-transform:uppercase;letter-spacing:.5px;
  padding:13px 20px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
  cursor:pointer;
  display:flex;justify-content:space-between;align-items:center;
  user-select:none;transition:background .15s;
  gap:8px;
}
.sec:hover{background:#f8faff}
.sec::before{
  content:'';display:inline-block;
  width:3px;height:15px;
  background:var(--primary-lt);
  border-radius:2px;margin-right:8px;flex-shrink:0;
}
.sec .sec-arrow{
  font-size:.62rem;color:var(--txt-3);
  transition:transform .28s var(--ease);
  display:inline-block;flex-shrink:0;margin-left:auto;
}
.sec.collapsed .sec-arrow{transform:rotate(-90deg)}

.sec-body{
  overflow:hidden;
  transition:max-height .35s var(--ease), opacity .25s ease, padding .3s var(--ease);
  max-height:5000px;opacity:1;
  padding:18px 20px;
  background:var(--surface);
  border-bottom:1px solid var(--border);
}
.sec-body.collapsed{
  max-height:0;opacity:0;
  pointer-events:none;padding:0 20px;
}

/* ══════════════════════════════════════
   GRID / LAYOUT HELPERS
══════════════════════════════════════ */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.s2{grid-column:span 2}

/* ══════════════════════════════════════
   FORM ELEMENTS
══════════════════════════════════════ */
label{
  display:block;font-size:.7rem;font-weight:700;
  color:var(--txt-2);margin-bottom:5px;
  text-transform:uppercase;letter-spacing:.4px;
}
input,select,textarea{
  width:100%;
  border:1.5px solid var(--border);
  border-radius:var(--r-sm);
  padding:9px 12px;
  font-family:'Barlow',sans-serif;
  font-size:.88rem;color:var(--txt);
  background:var(--surface);
  transition:var(--trans);
  -webkit-appearance:none;appearance:none;
}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='11' height='11' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;
  padding-right:30px;
}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--primary-lt);
  box-shadow:0 0 0 3px rgba(45,91,227,.1);
}
input[readonly]{background:var(--surface-2);color:var(--txt-2)}
/* Restore native appearance for checkboxes and radios */
input[type=checkbox],input[type=radio]{
  -webkit-appearance:auto;appearance:auto;
  width:auto;height:auto;border:none;border-radius:0;
  padding:0;background:none;box-shadow:none;
  accent-color:var(--primary);
}
input[type=checkbox]:focus,input[type=radio]:focus{box-shadow:none;border-color:transparent}
textarea{resize:vertical;min-height:66px}

/* ══════════════════════════════════════
   RECEIPTS TABLE
══════════════════════════════════════ */
.rtbl{
  width:100%;border-collapse:collapse;
  margin-top:8px;font-size:.83rem;
  border-radius:var(--r-md);overflow:hidden;
  box-shadow:var(--shadow-sm);
}
.rtbl thead tr{background:var(--primary);color:#fff}
.rtbl thead th{padding:10px 8px;font-weight:700;text-align:center;font-size:.73rem;text-transform:uppercase;letter-spacing:.3px}
.rtbl tbody tr{transition:background .1s}
.rtbl tbody tr:nth-child(even) td{background:var(--surface-2)}
.rtbl tbody td{padding:5px 4px;vertical-align:middle}
.rtbl tfoot td{background:var(--primary);color:#fff;font-weight:700;padding:9px 8px;text-align:center;font-size:.78rem}
.rtbl input{padding:6px 7px;font-size:.82rem}
.del-r{background:none;border:none;color:#fca5a5;cursor:pointer;font-size:.9rem;padding:4px 8px;border-radius:6px;transition:var(--trans)}
.del-r:hover{background:#fef2f2;color:var(--danger)}
.add-r{background:transparent;border:1.5px dashed #cbd5e1;color:var(--primary-lt);padding:8px 16px;border-radius:var(--r-sm);cursor:pointer;font-size:.78rem;font-weight:700;margin-top:8px;transition:var(--trans);display:inline-flex;align-items:center;gap:4px}
.add-r:hover{background:var(--bp);border-color:var(--primary-lt)}

/* ══════════════════════════════════════
   SYSTEM PREVIEW
══════════════════════════════════════ */
.preview{
  background:linear-gradient(135deg,#0d1f54 0%,#1a3a8f 55%,#1e4db7 100%);
  border-radius:var(--r-md);padding:18px;margin-top:16px;color:#fff;
  box-shadow:0 6px 24px rgba(26,58,143,.28);
}
.preview h3{font-family:'Barlow Condensed',sans-serif;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:1px;margin-bottom:14px;opacity:.6}
.pvg{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pvb{
  background:rgba(255,255,255,.09);
  border:1px solid rgba(255,255,255,.1);
  border-radius:10px;padding:10px 11px;text-align:center;
  transition:background .15s;
}
.pvb:hover{background:rgba(255,255,255,.15)}
.pvb .lbl{font-size:.61rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;opacity:.55;margin-bottom:4px}
.pvb .val{font-family:'Barlow Condensed',sans-serif;font-size:1.22rem;font-weight:900;line-height:1}
.pvb .sub{font-size:.62rem;opacity:.5;margin-top:3px}
.pvb.hl{background:rgba(22,163,74,.2);border-color:rgba(22,163,74,.35)}
.pvb.hl .val{color:#7affb2}
.pvb.warn .val{color:#ffd166}

/* ══════════════════════════════════════
   TC ROW
══════════════════════════════════════ */
.tc-row{
  display:flex;gap:12px;align-items:flex-end;
  background:var(--surface-2);border:1px solid var(--border);
  border-radius:var(--r-md);padding:14px 16px;margin-top:0;
}
.tc-row>div{flex:1}

/* ══════════════════════════════════════
   BUTTONS
══════════════════════════════════════ */
.gen-btn{
  display:block;width:100%;margin-top:14px;
  background:linear-gradient(135deg,var(--primary-dk),var(--primary-lt));
  color:#fff;border:none;border-radius:var(--r-md);
  padding:13px 20px;
  font-family:'Barlow Condensed',sans-serif;
  font-size:1.05rem;font-weight:900;
  letter-spacing:.8px;text-transform:uppercase;
  cursor:pointer;transition:var(--trans);
  box-shadow:0 4px 16px rgba(26,58,143,.3);
  position:relative;overflow:hidden;
}
.gen-btn::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,0);transition:background .15s}
.gen-btn:hover::after{background:rgba(255,255,255,.07)}
.gen-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(26,58,143,.38)}
.gen-btn:active{transform:translateY(0)}
.gen-btn:disabled{opacity:.55;cursor:wait;transform:none;box-shadow:none}

.btn-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.btn-row .gen-btn{margin-top:0}
.btn-save{background:linear-gradient(135deg,#145a32,var(--accent-lt))!important;box-shadow:0 4px 16px rgba(22,163,74,.3)!important}
.btn-save:hover{box-shadow:0 8px 24px rgba(22,163,74,.42)!important}
.btn-dl{background:linear-gradient(135deg,var(--primary-dk),var(--primary-lt))!important}

#gen-btn-wa{
  display:block;width:100%;margin-top:8px;
  background:linear-gradient(135deg,#075E54,#25D366);color:#fff;
  border:none;border-radius:var(--r-md);padding:13px 20px;
  font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:900;
  letter-spacing:.8px;text-transform:uppercase;cursor:pointer;
  box-shadow:0 4px 16px rgba(37,211,102,.28);transition:var(--trans);
}
#gen-btn-wa:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(37,211,102,.38)}

#gen-btn-nueva{
  display:block;width:100%;margin-top:8px;
  background:var(--surface-2);color:var(--txt-2);
  border:1.5px solid var(--border);border-radius:var(--r-md);
  padding:12px 20px;font-family:'Barlow Condensed',sans-serif;
  font-size:.95rem;font-weight:800;letter-spacing:.6px;
  text-transform:uppercase;cursor:pointer;transition:var(--trans);
}
#gen-btn-nueva:hover{background:var(--surface-3);color:var(--primary);border-color:#bfdbfe}

/* ══════════════════════════════════════
   COST / BREAKDOWN PANEL
══════════════════════════════════════ */
.costo-panel{background:#fffbeb;border:1.5px solid #f59e0b;border-radius:var(--r-md);padding:14px 16px;margin-top:14px}
.costo-panel h4{font-family:'Barlow Condensed',sans-serif;font-size:.88rem;font-weight:800;color:#92400e;text-transform:uppercase;margin-bottom:10px}
.cg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.cb2{background:#fff;border-radius:var(--r-sm);padding:10px 12px;border:1px solid #fde68a}
.cb2 .cl{font-size:.67rem;font-weight:700;color:#92400e;text-transform:uppercase}
.cb2 .cv{font-family:'Barlow Condensed',sans-serif;font-size:1.08rem;font-weight:900;color:#78350f}

/* ══════════════════════════════════════
   PDF (off-screen)
══════════════════════════════════════ */
#pdf-wrap{position:fixed;left:-9999px;top:0;width:794px;background:#fff;font-family:'Barlow',sans-serif}
.pp{width:794px;min-height:1123px;background:#fff;display:flex;flex-direction:column;overflow:hidden}
.ph{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 34px 12px;border-bottom:1px solid #dde8f5;margin-bottom:14px}
.ph-r{text-align:right}
.ph-r .ct{font-family:'Barlow Condensed',sans-serif;font-size:1.4rem;font-weight:900;color:var(--bd);letter-spacing:1px}
.ph-r .cn{font-size:.92rem;font-weight:700;color:var(--bm)}
.ph-r .cs{font-size:.73rem;color:var(--bl);font-style:italic}
.ph-r .cfd{font-size:.76rem;font-weight:700;color:var(--bd);margin-top:6px}
.pb{padding:0 34px;flex:1}
.pff{padding:11px 34px;border-top:1.5px solid var(--bdr);display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.pff .fc{font-size:.68rem;color:#777;line-height:1.8}
.pff .fb{font-family:'Barlow Condensed',sans-serif;font-weight:700;color:var(--bd);font-size:.8rem;text-align:right}
.pff .fp{font-size:.7rem;color:#aaa;margin-top:2px}

/* ── PDF sub-components ── */
.psh{font-family:'Barlow Condensed',sans-serif;font-size:1.2rem;font-weight:800;color:var(--bm);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;padding-bottom:3px;border-bottom:2px solid var(--bp)}
.pkv{display:flex;margin-bottom:3px;font-size:.82rem}
.pkv strong{width:195px;flex-shrink:0;font-weight:700}
.sbg{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}
.sb{background:var(--bp);border-radius:7px;padding:8px 12px}
.sb .sl{font-size:.67rem;font-weight:700;color:var(--bm);text-transform:uppercase;letter-spacing:.3px}
.sb .sv{font-size:1rem;font-weight:800;color:var(--bd);margin-top:1px}
.sb.grn .sv{color:var(--grn)}
.ptb{width:100%;border-collapse:collapse;font-size:.79rem;margin-bottom:10px}
.ptb thead tr{background:var(--bd);color:#fff}
.ptb thead th{padding:6px 8px;font-weight:700;text-align:center}
.ptb tbody tr:nth-child(even){background:var(--br)}
.ptb tbody td{padding:5px 8px;text-align:center}
.ptb tfoot tr{background:var(--bd);color:#fff;font-weight:700}
.ptb tfoot td{padding:6px 8px;text-align:center}
.etbl{width:100%;border-collapse:collapse;margin-top:6px}
.etbl thead tr{background:var(--bd);color:#fff}
.etbl thead th{padding:6px;font-size:.76rem;font-weight:700;text-align:center}
.etbl tbody tr{background:var(--bp)}
.etbl tbody td{padding:7px;text-align:center}
.etbl .bn{font-size:1.35rem;font-weight:900;color:var(--bd)}
.etbl tfoot tr{background:var(--bd);color:#fff}
.etbl tfoot td{padding:6px;text-align:center;font-size:.72rem;font-weight:700}
.cbs{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin:14px 0}
.cbb{border-radius:8px;padding:12px;background:var(--gray);text-align:center}
.cbb .cbt{font-weight:800;font-size:.8rem;color:#555;text-transform:uppercase;letter-spacing:.4px}
.cbb .cbs2{font-size:.7rem;color:#999;margin-bottom:4px}
.cbb .cbv{font-family:'Barlow Condensed',sans-serif;font-size:1.45rem;font-weight:900}
.cbb.sin .cbv{color:var(--red)}.cbb.con .cbv{color:var(--bm)}.cbb.aho .cbv{color:var(--grn)}
.a25{background:var(--gray);border-radius:9px;padding:14px 16px;margin-top:11px}
.a25t{text-align:center;font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;font-weight:900;color:var(--bd);margin-bottom:2px}
.a25s{text-align:center;font-size:.74rem;color:var(--bl);margin-bottom:9px}
.a25g{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;align-items:stretch}
.a25b{display:flex;flex-direction:column;justify-content:flex-end;text-align:center;min-height:100px}
.a25b .abt{font-weight:800;font-size:.76rem;text-transform:uppercase;color:#666;margin-bottom:6px}
.a25b .abs{font-size:.7rem;color:#999;margin-bottom:8px}
.a25b .abv{font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;font-weight:900}
.abv.red{color:var(--red)}.abv.blue{color:var(--bm)}.abv.grn{color:var(--grn)}
.alc{margin-bottom:13px}
.alch{background:var(--bd);color:#fff;font-weight:700;font-size:.8rem;padding:6px 11px;text-align:center;border-radius:4px 4px 0 0;text-transform:uppercase;letter-spacing:.5px}
.alcr{display:flex;justify-content:space-between;padding:6px 11px;font-size:.81rem;background:#fff;border:1px solid var(--bdr);border-top:none}
.alcr:nth-child(even){background:var(--bp)}
.alcr:last-child{border-radius:0 0 4px 4px}
.ptrc{width:100%;border-collapse:collapse;margin:11px 0 16px}
.ptrc tr{border-bottom:1px solid var(--bdr)}
.ptrc tr:nth-child(even){background:var(--bp)}
.ptrc td{padding:16px 13px;font-size:1rem}
.ptrc td:last-child{text-align:right;font-weight:700}
.ptrc thead th{background:var(--bd);color:#fff;padding:14px 13px;font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:700;letter-spacing:.4px}
.ptrc .ttr td{font-size:1.15rem;font-weight:900;color:var(--bd);background:var(--bp);padding:18px 13px}
.ctbl{width:58%;border-collapse:collapse;margin-bottom:14px}
.ctbl tr:nth-child(even){background:var(--bp)}
.ctbl td{padding:6px 11px;font-size:.82rem;border:1px solid var(--bdr)}
.ctbl td:first-child{font-weight:800;width:65px;text-align:center}
.excl li{list-style:none;font-size:.81rem;padding:6px 11px;border-bottom:1px solid var(--bdr)}
.excl li:nth-child(even){background:var(--bp)}
.bmt{font-family:'Barlow Condensed',sans-serif;font-size:1.35rem;font-weight:900;color:var(--bm);text-align:center;text-transform:uppercase;margin-top:16px;letter-spacing:1.2px;line-height:1.3}
.mt-box{text-align:center;color:#fff}
.mt-box .mtl{font-size:.65rem;font-weight:700;text-transform:uppercase;opacity:.7;letter-spacing:.3px}
.mt-box .mtv{font-family:'Barlow Condensed',sans-serif;font-size:1.25rem;font-weight:900;margin-top:1px}
.mt-box .mtv.grn{color:#7affb2}

/* ══════════════════════════════════════
   HISTORY
══════════════════════════════════════ */
.hist-head{font-family:'Barlow Condensed',sans-serif;font-size:1.15rem;font-weight:800;color:var(--primary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:18px;display:flex;justify-content:space-between;align-items:center}
.hist-empty{text-align:center;color:var(--txt-3);font-size:.85rem;padding:36px 0}
.hist-item{
  display:flex;align-items:center;gap:14px;
  padding:12px 16px;border-radius:var(--r-md);
  background:var(--surface);margin-bottom:8px;
  border:1px solid var(--border);cursor:pointer;
  transition:var(--trans);
}
.hist-item:hover{background:var(--surface-2);border-color:#bfdbfe;box-shadow:var(--shadow-sm);transform:translateX(2px)}
.hist-info{flex:1;min-width:0}
.hist-folio{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800;color:var(--primary)}
.hist-cliente{font-size:.82rem;color:var(--txt-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hist-meta{text-align:right;white-space:nowrap;flex-shrink:0}
.hist-price{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:700;color:var(--accent);display:block}
.hist-fecha{font-size:.7rem;color:var(--txt-3)}
.hist-dl{padding:7px 13px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);font-family:'Barlow Condensed',sans-serif;font-size:.82rem;font-weight:700;cursor:pointer;transition:var(--trans)}
.hist-dl:hover{background:var(--primary-dk)}
.hist-del{padding:6px 10px;background:none;color:var(--txt-3);border:none;cursor:pointer;font-size:.8rem;border-radius:var(--r-sm);transition:var(--trans)}
.hist-del:hover{color:var(--danger);background:#fef2f2}
.hist-nota{font-size:.73rem;color:var(--txt-3);margin-top:2px;font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:260px}

/* ══════════════════════════════════════
   IMAGES UPLOAD
══════════════════════════════════════ */
.img-upload-box{border:2px dashed var(--border);border-radius:var(--r-md);padding:16px;cursor:pointer;transition:var(--trans);text-align:center;background:var(--surface);min-height:110px;display:flex;align-items:center;justify-content:center}
.img-upload-box:hover{border-color:var(--primary-lt);background:#eef4ff}
.img-upload-box.loaded{border-style:solid;border-color:var(--accent);background:#f0fdf4}
.img-preview{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%}
.img-preview img{max-height:70px;max-width:100%;object-fit:contain;border-radius:var(--r-sm)}
.img-icon{font-size:2rem;line-height:1}
.img-label{font-size:.78rem;font-weight:700;color:var(--primary);text-align:center}
.img-hint{font-size:.67rem;color:var(--txt-3);text-align:center}
.img-change{font-size:.65rem;color:var(--primary-lt);margin-top:2px;font-weight:600}

/* ══════════════════════════════════════
   TOGGLE GROUPS
══════════════════════════════════════ */
.pago-toggle{display:flex;gap:0;border-radius:var(--r-md);overflow:hidden;border:1.5px solid var(--border);margin-bottom:12px}
.pago-btn{flex:1;padding:10px 14px;border:none;font-family:'Barlow Condensed',sans-serif;font-size:.92rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;cursor:pointer;transition:var(--trans);background:var(--surface);color:var(--txt-2)}
.pago-btn.active{background:var(--primary);color:#fff!important}
.pago-btn:first-child{border-right:1px solid var(--border)}
.pago-btn:hover:not(.active){background:var(--surface-2)}

/* ══════════════════════════════════════
   FINANCE PANEL
══════════════════════════════════════ */
.fin-panel{background:linear-gradient(135deg,#f5f0ff,#ede8fb);border:1.5px solid #c4b5fd;border-radius:var(--r-md);padding:16px 18px;margin-top:12px}
.fin-panel h4{font-family:'Barlow Condensed',sans-serif;font-size:.88rem;font-weight:800;color:#3b2f8a;text-transform:uppercase;margin-bottom:12px;letter-spacing:.5px}
.fin-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.fin-inputs label{font-size:.7rem;font-weight:700;color:#5b4db0;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px;display:block}
.fin-inputs input{border:1.5px solid #c4b8f0;border-radius:var(--r-sm);padding:7px 10px;font-size:.88rem;background:#fff;width:100%}
.fin-inputs input:focus{outline:none;border-color:#7c6fd4;box-shadow:0 0 0 3px rgba(124,111,212,.15)}
.fin-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.fin-box{border-radius:var(--r-sm);padding:12px;text-align:center}
.fin-box .fl{font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;margin-bottom:3px}
.fin-box .fv{font-family:'Barlow Condensed',sans-serif;font-size:1.22rem;font-weight:900;line-height:1}
.fin-box .fs{font-size:.64rem;margin-top:2px;opacity:.75}
.fin-box.cfe{background:#fef2f2}.fin-box.cfe .fl{color:#922b21}.fin-box.cfe .fv{color:#dc2626}
.fin-box.men{background:#eff6ff}.fin-box.men .fl{color:#1a5276}.fin-box.men .fv{color:#1a5276}
.fin-box.aho{background:#f0fdf4}.fin-box.aho .fl{color:#1d6a3a}.fin-box.aho .fv{color:#16a34a}
.fin-veredicto{margin-top:12px;padding:10px 14px;border-radius:var(--r-sm);font-size:.82rem;font-weight:600;text-align:center;display:none}
.fin-veredicto.ok{background:#f0fdf4;color:#16a34a;border:1px solid #a9dfbf;display:block}
.fin-veredicto.warn{background:#fefce8;color:#a16207;border:1px solid #fde68a;display:block}

/* ══════════════════════════════════════
   ROI PANEL
══════════════════════════════════════ */
.roi-panel{background:#fffbeb;border:1.5px solid #f59e0b;border-radius:var(--r-md);padding:14px 18px;margin-top:14px}
.roi-panel h4{font-family:'Barlow Condensed',sans-serif;font-size:.88rem;font-weight:800;color:#92400e;text-transform:uppercase;margin-bottom:10px;letter-spacing:.5px}
.roi-panel ul{list-style:none;padding:0;margin:0}
.roi-panel ul li{font-size:.82rem;color:var(--txt-2);padding:4px 0;border-bottom:1px solid #fde68a}
.roi-panel ul li:last-child{border-bottom:none}
.roi-panel ul li strong{color:var(--txt)}
.roi-ok strong{color:var(--accent)!important}
.roi-warn strong{color:var(--danger)!important}

/* ══════════════════════════════════════
   DOWNLOAD AREA
══════════════════════════════════════ */
#dl-area{max-width:860px;margin:16px auto 0;display:none}
.dl-btn{display:block;width:100%;background:linear-gradient(135deg,#145a32,var(--accent-lt));color:#fff;border:none;border-radius:var(--r-md);padding:14px;font-family:'Barlow Condensed',sans-serif;font-size:1.05rem;font-weight:900;letter-spacing:1px;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 16px rgba(22,163,74,.3);transition:var(--trans)}
.dl-btn:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(22,163,74,.38)}

/* ══════════════════════════════════════
   MODAL
══════════════════════════════════════ */
.modal-overlay{position:fixed;inset:0;background:rgba(10,20,60,.6);backdrop-filter:blur(6px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:16px}
.modal-box{background:#fff;border-radius:var(--r-xl);max-width:680px;width:100%;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl)}
.modal-hdr{background:linear-gradient(135deg,var(--primary-dk),var(--primary));color:#fff;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}
.modal-hdr h2{font-family:'Barlow Condensed',sans-serif;font-size:1.2rem;font-weight:900;text-transform:uppercase;letter-spacing:.8px;margin:0}
.modal-hdr .folio{font-size:.78rem;opacity:.7;margin-top:2px}
.modal-close{background:rgba(255,255,255,.15);border:none;color:#fff;border-radius:8px;width:32px;height:32px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--trans)}
.modal-close:hover{background:rgba(255,255,255,.28)}
.modal-body{overflow-y:auto;padding:20px 24px;flex:1}
.modal-cat{font-family:'Barlow Condensed',sans-serif;font-size:.8rem;font-weight:800;color:var(--primary-lt);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 4px;padding-bottom:3px;border-bottom:2px solid var(--bp)}
.modal-cat:first-child{margin-top:0}
.mat-row{display:grid;grid-template-columns:1fr auto auto auto;gap:0;align-items:center;font-size:.82rem;padding:6px 0;border-bottom:1px solid var(--surface-3)}
.mat-row:last-child{border-bottom:none}
.mat-row .mn{color:var(--txt)}
.mat-row .mq{color:var(--txt-3);font-size:.74rem;text-align:right;padding:0 12px;white-space:nowrap}
.mat-row .mu{color:#cbd5e1;font-size:.7rem;text-align:right;padding-right:12px;white-space:nowrap}
.mat-row .mp{font-weight:700;color:var(--primary);text-align:right;white-space:nowrap}
.mat-row .mp.modal-total{background:linear-gradient(135deg,var(--primary-dk),var(--primary));border-radius:10px;padding:14px 18px;margin-top:14px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}

/* ══════════════════════════════════════
   POPUP
══════════════════════════════════════ */
#sol-popup-overlay{position:fixed;inset:0;background:rgba(10,20,60,.52);backdrop-filter:blur(6px);z-index:99999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .2s}
#sol-popup-overlay.show{opacity:1;pointer-events:all}
#sol-popup-box{background:#fff;border-radius:var(--r-xl);max-width:440px;width:100%;box-shadow:var(--shadow-xl);transform:translateY(16px) scale(.97);transition:transform .22s cubic-bezier(.34,1.56,.64,1);overflow:hidden}
#sol-popup-overlay.show #sol-popup-box{transform:translateY(0) scale(1)}
#sol-popup-icon{font-size:2.2rem;text-align:center;padding:24px 0 4px}
#sol-popup-msg{font-size:.95rem;color:#374151;padding:12px 28px 22px;text-align:center;line-height:1.6;white-space:pre-line}
#sol-popup-btns{display:flex;border-top:1px solid var(--border)}
#sol-popup-btns button{flex:1;padding:14px;border:none;font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;transition:background .15s}
#sol-popup-btns .pop-cancel{background:var(--surface-2);color:var(--txt-2);border-right:1px solid var(--border)}
#sol-popup-btns .pop-cancel:hover{background:var(--surface-3)}
#sol-popup-btns .pop-ok{background:var(--primary);color:#fff}
#sol-popup-btns .pop-ok:hover{background:var(--primary-dk)}
#sol-popup-btns .pop-ok.danger{background:var(--danger)}
#sol-popup-btns .pop-ok.danger:hover{background:#b91c1c}

/* ══════════════════════════════════════
   WHATSAPP MODAL
══════════════════════════════════════ */
#wa-modal-overlay{display:none;position:fixed;inset:0;background:rgba(10,20,60,.52);z-index:10000;align-items:center;justify-content:center;padding:20px}
#wa-modal-overlay.show{display:flex}
#wa-modal-box{background:#fff;border-radius:var(--r-xl);width:100%;max-width:520px;box-shadow:var(--shadow-xl);overflow:hidden}
#wa-modal-header{background:linear-gradient(135deg,#075E54,#25D366);padding:16px 20px;display:flex;align-items:center;gap:10px}
#wa-modal-header span{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1.1rem;color:#fff;letter-spacing:.5px;text-transform:uppercase}
#wa-modal-body{padding:16px 20px}
#wa-modal-textarea{width:100%;height:280px;border:1.5px solid var(--border);border-radius:var(--r-md);padding:12px;font-family:'Barlow',sans-serif;font-size:.84rem;line-height:1.6;color:var(--txt);resize:none;background:var(--surface-2)}
#wa-modal-footer{padding:12px 20px 16px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--border)}
#wa-copy-btn{background:linear-gradient(135deg,#075E54,#25D366);color:#fff;border:none;border-radius:var(--r-sm);padding:10px 24px;font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:900;letter-spacing:.5px;cursor:pointer;transition:var(--trans)}
#wa-copy-btn:hover{opacity:.88}
#wa-close-btn{background:none;border:1.5px solid var(--border);border-radius:var(--r-sm);padding:10px 18px;font-family:'Barlow Condensed',sans-serif;font-size:.92rem;font-weight:700;color:var(--txt-2);cursor:pointer;transition:var(--trans)}
#wa-close-btn:hover{border-color:var(--txt-2)}

/* ══════════════════════════════════════
   PACKAGES
══════════════════════════════════════ */
.pkg-card{border:1.5px solid var(--border);border-radius:var(--r-md);padding:14px 16px;cursor:pointer;transition:var(--trans);text-align:center;background:var(--surface)}
.pkg-card:hover{border-color:var(--primary-lt);background:#eef4ff;box-shadow:var(--shadow-sm)}
.pkg-card.active{border-color:var(--primary-lt);background:var(--primary);color:#fff;box-shadow:0 4px 16px rgba(26,58,143,.28)}
.pkg-card.active .pkg-precio{color:#7affb2}
.pkg-card.active .pkg-kw{color:rgba(255,255,255,.65)}
.pkg-card.active .pkg-paneles{color:#fff}
.pkg-paneles{font-family:'Barlow Condensed',sans-serif;font-size:2.2rem;font-weight:900;color:var(--primary);line-height:1}
.pkg-kw{font-size:.78rem;color:var(--txt-3);margin:2px 0 6px}
.pkg-precio{font-family:'Barlow Condensed',sans-serif;font-size:1.08rem;font-weight:800;color:var(--accent)}
.pkg-editor-row{display:grid;grid-template-columns:auto 1fr 1fr 1fr;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:.85rem}
.pkg-editor-row:last-child{border-bottom:none}

/* ══════════════════════════════════════
   HYBRID BATTERIES
══════════════════════════════════════ */
.hib-bat2-row{display:flex;align-items:center;gap:9px;padding:8px 10px;cursor:pointer;font-size:.82rem;border-bottom:1px solid var(--surface-3);transition:background .1s}
.hib-bat2-row:last-child{border-bottom:none}
.hib-bat2-row:hover{background:#fef9ec}
.hib-bat2-row input[type=checkbox]{width:15px;height:15px;accent-color:#f59e0b;flex-shrink:0;cursor:pointer}
.hib-bat2-row span{flex:1;color:var(--txt);font-weight:500}
.hib-bat2-row em{font-style:normal;font-size:.75rem;font-weight:700;color:#f59e0b;white-space:nowrap}
.hib-bat2-row:has(input:checked){background:#fff8e8}

/* ══════════════════════════════════════
   MATERIAL BUTTON
══════════════════════════════════════ */
.mat-btn{display:inline-flex;align-items:center;gap:7px;background:var(--primary);border:none;color:#fff;border-radius:var(--r-sm);padding:8px 16px;font-family:'Barlow Condensed',sans-serif;font-size:.85rem;font-weight:700;cursor:pointer;letter-spacing:.3px;transition:var(--trans);margin-top:12px}
.mat-btn:hover{background:var(--primary-dk);transform:translateY(-1px)}
.mat-prefix{background:var(--surface-2);border:1.5px solid var(--border);border-right:none;border-radius:var(--r-sm) 0 0 var(--r-sm);padding:8px 10px;font-weight:700;color:var(--txt-2);font-size:.82rem;white-space:nowrap;user-select:none;display:inline-flex;align-items:center}
.mat-inp{border-radius:0 var(--r-sm) var(--r-sm) 0!important;width:120px!important;margin:0!important}

/* ══════════════════════════════════════
   CRM BADGES
══════════════════════════════════════ */
.crm-badge{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:800;padding:4px 10px;border-radius:20px;font-family:'Barlow Condensed',sans-serif;letter-spacing:.3px;cursor:pointer;border:none;transition:var(--trans);white-space:nowrap}
.crm-pendiente{background:#fef9e7;color:#9a7d0a;border:1.5px solid #fde68a}
.crm-enviada{background:#eff6ff;color:#1a4db7;border:1.5px solid #bfdbfe}
.crm-cerrada{background:#f0fdf4;color:var(--accent);border:1.5px solid #a9dfbf}
.crm-perdida{background:#fef2f2;color:#922b21;border:1.5px solid #fecaca}
.crm-wrap{position:relative;display:inline-block}
.crm-menu{position:absolute;left:0;top:calc(100%+4px);background:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-lg);z-index:9999;min-width:160px;overflow:hidden;border:1px solid var(--border);display:none}
.crm-wrap.open .crm-menu{display:block}
.crm-menu-item{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;font-size:.82rem;font-weight:600;transition:background .12s}
.crm-menu-item:hover{background:var(--surface-2)}

/* ══════════════════════════════════════
   MODO PRESENTACIÓN
══════════════════════════════════════ */
body.modo-presentacion .costo-panel{display:none!important}
body.modo-presentacion #pago-modo-wrap{display:none!important}
body.modo-presentacion #gen-btn-save{display:none!important}
body.modo-presentacion .presentacion-oculto{display:none!important}
#btn-presentacion.activo{background:rgba(255,220,0,.18);border-color:rgba(255,220,0,.5);color:#ffe066}

/* ══════════════════════════════════════
   COB BUTTON (legacy)
══════════════════════════════════════ */
.cob-btn{flex:1;padding:7px 4px;border:1.5px solid var(--border);border-radius:var(--r-sm);background:var(--surface);font-family:'Barlow Condensed',sans-serif;font-size:.9rem;font-weight:700;color:var(--txt-2);cursor:pointer;transition:var(--trans);text-align:center}
.cob-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}

/* ══════════════════════════════════════
   BTN HELPERS (nota modal)
══════════════════════════════════════ */
.btn-cancelar{padding:9px 18px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:var(--r-sm);font-family:'Barlow Condensed',sans-serif;font-size:.95rem;font-weight:700;color:var(--txt-2);cursor:pointer;transition:var(--trans)}
.btn-cancelar:hover{background:var(--surface-3)}
.btn-guardar{padding:9px 18px;background:var(--primary);color:#fff;border:none;border-radius:var(--r-sm);font-family:'Barlow Condensed',sans-serif;font-size:.95rem;font-weight:800;cursor:pointer;transition:var(--trans)}
.btn-guardar:hover{background:var(--primary-dk)}

/* ══════════════════════════════════════
   FORM LAYOUT — two-zone full width
══════════════════════════════════════ */
.form-layout{
  display:grid;
  grid-template-columns:1fr 300px;
  align-items:start;
  min-height:calc(100vh - 106px);
}
.form-main{
  padding:20px 20px 80px;
  min-width:0;
  background:#f1f5f9;
}
.form-main .card{
  max-width:none;
  margin:0;
  border-radius:var(--r-md);
}
/* Override main-content padding when form-layout is active */
.tab-content.active:has(.form-layout) + * { display: none; }
#tab-form.active .main-content-inner { padding:0; }

/* ── SECTION CARDS (new header style) ── */
.section-card{
  background:var(--surface);
  border-radius:var(--r-md);
  margin-bottom:14px;
  box-shadow:var(--shadow-sm);
  overflow:hidden;
  border:1px solid var(--border);
}
.sc-hdr{
  display:flex;align-items:center;gap:10px;
  padding:13px 18px;
  border-bottom:1px solid var(--border);
  cursor:default;
  background:var(--surface);
}
.sc-hdr.collapsible{cursor:pointer;transition:background .15s}
.sc-hdr.collapsible:hover{background:var(--surface-2)}
.sc-icon{
  width:30px;height:30px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-size:.95rem;flex-shrink:0;
}
.sc-icon.blue{background:#e0e9ff;color:var(--primary)}
.sc-icon.green{background:#dcfce7;color:var(--accent)}
.sc-icon.orange{background:#fff7ed;color:#ea580c}
.sc-icon.gray{background:#f1f5f9;color:#64748b}
.sc-title{
  font-family:'Barlow Condensed',sans-serif;
  font-weight:800;font-size:.95rem;
  text-transform:uppercase;letter-spacing:.5px;
  color:var(--primary);flex:1;
}
.sc-badge{
  font-size:.68rem;font-weight:700;
  background:var(--bp);color:var(--primary);
  padding:3px 9px;border-radius:20px;white-space:nowrap;
}
.sc-badge.green{background:#dcfce7;color:var(--accent)}
.sc-arrow{
  font-size:.7rem;color:var(--txt-3);
  transition:transform .25s var(--ease);margin-left:4px;
}
.section-card.sc-collapsed .sc-arrow{transform:rotate(-90deg)}
.sc-body{
  padding:18px;
  transition:max-height .35s var(--ease),opacity .25s,padding .3s var(--ease);
  max-height:5000px;opacity:1;
}
.sc-body.sc-hidden{
  max-height:0;opacity:0;padding:0 18px;pointer-events:none;overflow:hidden;
}
.sc-secondary-row{
  display:grid;grid-template-columns:1fr 1fr;gap:14px;
}

/* ── TOOLTIP ── */
.tip{
  display:inline-flex;align-items:center;justify-content:center;
  width:15px;height:15px;border-radius:50%;
  background:#dbeafe;color:#1d4ed8;
  font-size:.6rem;font-weight:900;
  cursor:help;margin-left:4px;
  position:relative;vertical-align:middle;
  flex-shrink:0;
}
.tip::before{
  content:attr(data-tip);
  position:absolute;bottom:calc(100% + 8px);left:50%;
  transform:translateX(-50%);
  background:#1e293b;color:#f1f5f9;
  font-size:.72rem;font-weight:400;font-style:normal;
  padding:8px 12px;border-radius:8px;
  white-space:normal;width:220px;text-align:left;line-height:1.55;
  pointer-events:none;opacity:0;transition:opacity .15s;
  z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.25);
  font-family:'Barlow',sans-serif;letter-spacing:0;text-transform:none;
}
.tip::after{
  content:'';position:absolute;bottom:calc(100% + 3px);left:50%;
  transform:translateX(-50%);
  border:5px solid transparent;border-top-color:#1e293b;
  opacity:0;transition:opacity .15s;pointer-events:none;
}
.tip:hover::before,.tip:hover::after{opacity:1}
/* Tip that opens downward (for items near top) */
.tip.tip-down::before{top:calc(100%+8px);bottom:auto}
.tip.tip-down::after{top:calc(100%+3px);bottom:auto;border-top-color:transparent;border-bottom-color:#1e293b}

/* ── RESULTS PANEL (sticky right) ── */
.results-panel{
  position:sticky;top:106px;
  background:linear-gradient(180deg,#0b1a3d 0%,#1a3a8f 55%,#1e4db7 100%);
  color:#fff;
  min-height:calc(100vh - 106px);
  padding:20px 16px;
  display:flex;flex-direction:column;gap:14px;
  border-left:1px solid rgba(255,255,255,.06);
}
.rp-client{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);padding:12px 14px;
}
.rp-folio{font-size:.72rem;font-weight:700;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px}
.rp-nombre{font-family:'Barlow Condensed',sans-serif;font-weight:900;font-size:1rem;color:#fff;line-height:1.2;word-break:break-word}
.rp-empty{
  flex:1;display:flex;flex-direction:column;align-items:center;
  justify-content:center;text-align:center;gap:10px;
  color:rgba(255,255,255,.35);padding:20px;
}
.rp-empty-icon{font-size:2.5rem;opacity:.3}
.rp-empty p{font-size:.78rem;line-height:1.6;max-width:200px}
.rp-system{display:flex;flex-direction:column;gap:10px}
.rp-main-kpi{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.rp-kpi{
  background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.1);
  border-radius:var(--r-md);padding:10px;text-align:center;
}
.rk-val{font-family:'Barlow Condensed',sans-serif;font-size:1.9rem;font-weight:900;line-height:1;color:#fff}
.rk-lbl{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:rgba(255,255,255,.5);margin-top:2px}
.rp-metrics{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rp-metric{
  background:rgba(255,255,255,.07);border-radius:var(--r-sm);
  padding:8px 10px;
}
.rp-metric .rl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:rgba(255,255,255,.45);margin-bottom:2px}
.rp-metric .rv{font-family:'Barlow Condensed',sans-serif;font-size:1rem;font-weight:900;color:#fff;line-height:1}
.rp-metric .rs{font-size:.58rem;color:rgba(255,255,255,.35);margin-top:1px}
.rp-metric.hl{background:rgba(22,163,74,.2);border:1px solid rgba(22,163,74,.3)}
.rp-metric.hl .rv{color:#7affb2}
.rp-metric.warn .rv{color:#ffd166}
.rp-price{
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-md);padding:14px;text-align:center;
}
.rp-price .rp-price-lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:rgba(255,255,255,.5);margin-bottom:4px}
.rp-price .rp-price-val{font-family:'Barlow Condensed',sans-serif;font-size:1.7rem;font-weight:900;color:#fff;line-height:1}
.rp-price .rp-price-sub{font-size:.62rem;color:rgba(255,255,255,.35);margin-top:3px}
/* Markup + Descuento in sidebar */
.rp-controls{display:flex;flex-direction:column;gap:6px}
.rp-ctrl{
  display:flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.07);border-radius:var(--r-sm);
  padding:8px 10px;border:1px solid rgba(255,255,255,.1);
}
.rp-ctrl .rc-label{font-size:.72rem;font-weight:700;flex:1;color:rgba(255,255,255,.7)}
.rp-ctrl .rc-input{
  display:flex;align-items:center;gap:3px;
  background:rgba(0,0,0,.25);border:1px solid rgba(255,255,255,.15);
  border-radius:6px;padding:2px 6px;
}
.rp-ctrl .rc-input input{
  width:44px;background:transparent;border:none;outline:none;
  color:#fff;font-size:.9rem;font-weight:800;text-align:right;
  font-family:'Barlow',sans-serif;padding:2px 0;
}
.rp-ctrl .rc-input span{font-size:.8rem;color:rgba(255,255,255,.6);font-weight:700}
.rp-ctrl .rc-info{font-size:.65rem;color:rgba(255,255,255,.45);margin-top:2px;display:none}
/* Sidebar action buttons */
.rp-actions{display:flex;flex-direction:column;gap:7px;margin-top:auto;padding-top:10px}
.rp-btn{
  display:flex;align-items:center;justify-content:center;gap:7px;
  border:none;border-radius:var(--r-sm);
  font-family:'Barlow Condensed',sans-serif;
  font-size:.9rem;font-weight:900;letter-spacing:.5px;
  text-transform:uppercase;cursor:pointer;
  padding:11px 14px;transition:var(--trans);
  width:100%;
}
.rp-btn:hover{transform:translateY(-1px);filter:brightness(1.1)}
.rp-btn:active{transform:translateY(0)}
.rp-btn.save{background:linear-gradient(135deg,#145a32,#22c55e);color:#fff;box-shadow:0 3px 12px rgba(22,163,74,.3)}
.rp-btn.pdf{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff}
.rp-btn.wa{background:linear-gradient(135deg,#075E54,#25D366);color:#fff;box-shadow:0 3px 12px rgba(37,211,102,.25)}
.rp-btn-row2{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.rp-btn.pres{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.75);font-size:.8rem}
.rp-btn.nueva{background:transparent;border:1.5px dashed rgba(255,255,255,.25);color:rgba(255,255,255,.55);font-size:.8rem}
.rp-btn.mat{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.5);font-size:.75rem;padding:7px}
.rp-divider{height:1px;background:rgba(255,255,255,.08);margin:4px 0}
/* descuento-info and precio-final-wrap inside sidebar */
#descuento-info{font-size:.7rem;color:#fcd34d;font-weight:700;background:rgba(252,211,77,.1);padding:3px 8px;border-radius:4px;margin-top:3px;display:none}
#precio-final-wrap{font-size:.78rem;font-weight:800;color:#7affb2;background:rgba(122,255,178,.1);padding:3px 8px;border-radius:4px;margin-top:3px;display:none}
#markup-info{font-size:.68rem;color:rgba(255,255,255,.5);margin-top:2px}

/* non-form tabs occupy full width */
#tab-hist .hist-wrap,
#tab-dash .hist-wrap,
#tab-mat .card {
  max-width:100%;margin:0;
}

/* ══════════════════════════════════════
   MOBILE — Bottom Navigation
══════════════════════════════════════ */
@media(max-width:767px){
  body{font-size:14px}

  .topbar{padding:0 14px;height:52px}
  .topbar-logo .logo-text{font-size:.95rem}
  .topbar-logo .logo-sub{display:none}

  .tab-bar{
    position:fixed;bottom:0;left:0;right:0;top:auto;
    background:#fff;border-top:1px solid var(--border);border-bottom:none;
    padding:0;z-index:90;
    box-shadow:0 -4px 20px rgba(0,0,0,.1);
    justify-content:space-around;
    height:60px;overflow:visible;
  }
  .tab-btn{
    flex:1;flex-direction:column;gap:2px;
    padding:8px 4px 6px;font-size:.6rem;
    border-bottom:none;border-top:2.5px solid transparent;
    margin-bottom:0;text-align:center;
    min-width:0;max-width:none;
  }
  .tab-btn.active{border-top-color:var(--primary-lt);border-bottom:none;background:rgba(45,91,227,.05)}
  /* show emoji only on very narrow */
  .tab-btn .tab-lbl{display:block;font-size:.58rem;margin-top:1px}

  .main-content{
    padding:12px 10px 76px;
    min-height:calc(100vh - 52px);
  }

  .card{border-radius:var(--r-md)}
  .hist-wrap{border-radius:var(--r-md);padding:16px}

  .sec{padding:12px 14px;font-size:.82rem}
  .sec-body{padding:14px}
  .sec-body.collapsed{padding:0 14px}

  .g2,.tc-row{grid-template-columns:1fr;gap:8px}
  .g3{grid-template-columns:1fr 1fr;gap:8px}
  .s2{grid-column:span 1}
  .pvg{grid-template-columns:1fr 1fr}
  .fin-grid{grid-template-columns:1fr 1fr}
  .cg{grid-template-columns:1fr 1fr}
  .btn-row{grid-template-columns:1fr 1fr;gap:8px}

  .preview{padding:14px}
  .pvb .val{font-size:1.1rem}
  .gen-btn{font-size:.95rem;padding:12px}

  /* Table horizontal scroll on mobile */
  .rtbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px}
  .rtbl{min-width:420px}

  /* Form layout → single column on mobile */
  .form-layout{grid-template-columns:1fr}
  .form-main{padding:10px 10px 76px}
  .sc-secondary-row{grid-template-columns:1fr}
  .section-card{margin-bottom:10px}
  .sc-body{padding:12px}

  /* Results panel → horizontal strip above action bar on mobile */
  .results-panel{
    position:fixed;bottom:60px;left:0;right:0;
    min-height:auto;flex-direction:row;flex-wrap:wrap;
    padding:10px 12px;gap:8px;z-index:85;
    border-left:none;border-top:1px solid rgba(255,255,255,.1);
    box-shadow:0 -6px 24px rgba(0,0,0,.3);
    align-items:center;
  }
  .rp-client{display:none}
  .rp-empty{display:none!important}
  .rp-system{flex-direction:row;flex-wrap:wrap;gap:6px;flex:1}
  .rp-main-kpi{grid-template-columns:auto auto;gap:6px}
  .rk-val{font-size:1.3rem}
  .rp-metrics{display:none}
  .rp-price{padding:6px 10px}
  .rp-price .rp-price-val{font-size:1.2rem}
  .rp-controls{display:none}
  .rp-actions{margin-top:0;padding-top:0;flex-direction:row;flex-wrap:wrap;gap:5px}
  .rp-btn{padding:8px 10px;font-size:.75rem}
  .rp-btn-row2{display:contents}
  .rp-divider{display:none}
  .main-content{padding-bottom:calc(60px + 140px + 12px)!important}
}

@media(max-width:400px){
  .g3{grid-template-columns:1fr}
  .tab-btn{font-size:.52rem}
}

/* Tablet: slightly narrower sidebar */
@media(min-width:768px) and (max-width:1100px){
  .form-layout{grid-template-columns:1fr 260px}
  .results-panel{padding:16px 12px}
}
