
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --dark:#0E1117;--dark2:#1A1D24;--dark3:#252A33;
  --sage:#1568DB;--sage-lt:#EAF1FC;--sage-dk:#0F4FB0;
  --cream:#EAF1FC;--cream-lt:#F7F8FA;--gold:#1568DB;
  --ok:#1A8245;--ok-lt:#E7F6EC;
  --warn:#E0A93B;--warn-lt:#FBF3E2;
  --danger:#E24B4A;--danger-lt:#FCEBEB;
  --sb:220px;
  --fn:'Poppins',system-ui,sans-serif;--mo:'DM Mono','Courier New',monospace;
  --s1:#FFFFFF;--s2:#F7F8FA;--s3:#EAF1FC;
  --bd:#E7EBF0;--bds:#D7DDE6;
  --t1:#0E1117;--t2:#2C3340;--t3:#6E7681;--t4:#9AA1AB;
  --r:10px;--rl:12px;
  /* alias guia de diseno InviertePro */
  --bg:#FFFFFF;--ink:#0E1117;--ink-soft:#2C3340;--muted:#6E7681;
  --line:#E7EBF0;--surface:#F7F8FA;
  --celeste:#1568DB;--celeste-br:#3D86F0;--tint:#EAF1FC;
  --btn:#0E1117;--btn-hover:#000000;--slate:#22303F;
  --ok-bg:#E7F6EC;--err:#E24B4A;
  --r-input:12px;--r-btn:12px;--r-card:16px;--r-card-lg:18px;--r-modal:22px;--r-pill:999px;
}
body{font-family:var(--fn);color:var(--t1);background:var(--s2);min-height:100vh;font-size:13px;line-height:1.5;overflow-x:hidden}

/* ══ LOGIN — full page, no sidebar ══ */
#pg-login{display:flex;min-height:100vh;align-items:center;justify-content:center;background:var(--dark)}
.login-wrap{display:flex;width:820px;min-height:500px;border-radius:16px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,0.5)}
.login-left{width:340px;background:var(--dark2);padding:40px 36px;display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0}
.ll-logo-wrap{margin-bottom:8px}
.ll-logo{font-size:34px;font-weight:800;letter-spacing:-0.02em;color:#fff;line-height:1;font-family:"Poppins",sans-serif}
.ll-logo-sub{font-size:10px;font-weight:500;letter-spacing:.08em;color:rgba(255,255,255,.55);margin-top:4px;text-transform:lowercase}
.ll-tagline{font-size:22px;font-weight:600;color:#fff;line-height:1.3;margin-bottom:12px}
.ll-sub{font-size:13px;color:rgba(255,255,255,.4);line-height:1.6}
.ll-footer{font-size:11px;color:rgba(255,255,255,.2)}
.login-right{flex:1;background:var(--s1);padding:40px 36px;display:flex;flex-direction:column;justify-content:center}
.login-title{font-size:18px;font-weight:600;color:var(--t1);margin-bottom:4px}
.login-sub{font-size:13px;color:var(--t3);margin-bottom:24px}
.fld-login{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}
.fld-login label{font-size:11px;font-weight:500;color:var(--t3)}
.fld-login .inp-wrap{position:relative}
.fld-login input{font-family:var(--fn);font-size:13px;width:100%;padding:9px 38px 9px 12px;border:1px solid var(--bd);border-radius:var(--r-input);background:var(--s2);color:var(--t1);outline:none;transition:border-color .15s,box-shadow .15s}
.fld-login input:focus{border-color:var(--sage);background:#fff;box-shadow:0 0 0 3px rgba(61,134,240,.15)}
.eye-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--t4);font-size:16px;line-height:1;padding:2px}
.eye-btn:hover{color:var(--t2)}
.login-err{font-size:12px;color:var(--danger);margin-bottom:10px;display:none}
.login-btn{font-family:var(--fn);font-size:13px;font-weight:500;width:100%;padding:11px;border-radius:var(--r-btn);border:none;background:var(--dark);color:#fff;cursor:pointer;transition:opacity .15s}
.login-btn:hover{opacity:.85}

/* ══ APP SHELL ══ */
#pg-app{display:none;min-height:100vh}
.shell{display:flex;min-height:100vh}

/* SIDEBAR */
.sidebar{width:var(--sb);background:var(--dark);display:flex;flex-direction:column;padding:20px 12px;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:200;flex-shrink:0}
.sb-logo-wrap{padding:0 8px;margin-bottom:18px}
.sb-logo{font-size:24px;font-weight:800;letter-spacing:-0.02em;color:#fff;line-height:1;font-family:"Poppins",sans-serif}
.sb-logo-sub{font-size:9px;font-weight:500;letter-spacing:.08em;color:rgba(255,255,255,.45);margin-top:3px;text-transform:lowercase}
.sb-user{font-size:11px;color:rgba(255,255,255,.35);padding:0 8px;margin-bottom:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-section{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.25);padding:0 8px;margin:10px 0 4px}
.sb-item{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r);color:rgba(255,255,255,.55);font-size:12px;cursor:pointer;transition:all .15s;user-select:none;margin-bottom:1px}
.sb-item:hover{background:rgba(255,255,255,.06);color:#fff}
.sb-item.active{background:rgba(255,255,255,.12);color:#fff}
.sb-item i{font-size:15px;flex-shrink:0;width:18px}
.sb-item .chev{margin-left:auto;font-size:12px;transition:transform .2s}
.sb-item .chev.open{transform:rotate(180deg)}
.sb-sub{padding-left:30px;display:none;flex-direction:column;gap:1px;margin-bottom:2px}
.sb-sub.open{display:flex}
.sb-sub-item{font-size:12px;color:rgba(255,255,255,.4);padding:6px 10px;border-radius:var(--r);cursor:pointer;transition:all .15s}
.sb-sub-item:hover{background:rgba(255,255,255,.05);color:#fff}
.sb-sub-item.active{color:#fff;font-weight:500}
.sb-sep{height:1px;background:rgba(255,255,255,.07);margin:8px 0}
.sb-bottom{margin-top:auto}
.sb-logout{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r);color:rgba(255,255,255,.35);font-size:12px;cursor:pointer;transition:all .15s}
.sb-logout:hover{color:#fff;background:rgba(255,255,255,.06)}
.sb-admin{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:var(--r);color:rgba(255,255,255,.4);font-size:12px;cursor:pointer;transition:all .15s;margin-bottom:2px}
.sb-admin:hover{color:#fff;background:rgba(255,255,255,.06)}

/* SIDEBAR MODE ASESOR — locked items show only icon + tooltip on hover */
.sb-item.sb-asesor-locked{justify-content:flex-start;padding:7px 10px;color:rgba(255,255,255,.4);cursor:default;position:relative;gap:8px}
.sb-item.sb-asesor-locked i:first-child{font-size:15px;width:18px;flex-shrink:0;margin:0}
.sb-item.sb-asesor-locked .sb-text,
.sb-item.sb-asesor-locked .chev{display:none !important}
.sb-item.sb-asesor-locked .sb-lock{display:inline !important;margin-left:auto !important;font-size:12px !important;color:rgba(255,255,255,.3) !important;flex-shrink:0}
.sb-item.sb-asesor-locked:hover{background:rgba(255,255,255,.06);color:rgba(255,255,255,.6)}
.sb-item.sb-asesor-locked:hover .sb-lock{color:rgba(255,255,255,.5) !important}
.sb-item.sb-asesor-locked::after{content:attr(data-tooltip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);background:#0F172A;border:1px solid rgba(255,255,255,.12);color:#E2E8F0;padding:5px 9px;border-radius:6px;font-size:11px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;z-index:1000;font-family:var(--fn)}
.sb-item.sb-asesor-locked:hover::after{opacity:1}

/* MAIN */
.main{margin-left:var(--sb);flex:1;min-width:0;display:flex;flex-direction:column}
.main-inner{flex:1;padding:22px 24px;width:100%}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}
.topbar-title{font-size:16px;font-weight:600}
.topbar-sub{font-size:11px;color:var(--t3);margin-top:1px}
.pills{display:flex;gap:6px}
.pill{font-size:11px;font-weight:500;padding:3px 10px;border-radius:99px;border:1px solid var(--bds);color:var(--t3);background:var(--s3)}

/* SECTION LABELS */
.slbl{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--t4);margin:14px 0 6px;display:flex;align-items:center;gap:8px}
.slbl::after{content:'';flex:1;height:1px;background:var(--bd)}

/* CARDS */
.card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rl);padding:12px 14px;margin-bottom:10px}

/* GRIDS */
.g2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.g5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}

/* FIELDS */
.fld{display:flex;flex-direction:column;gap:3px}
.fld label{font-size:10px;color:var(--t3);font-weight:500}
.fld select,.fld input[type=number],.fld input[type=text]{font-family:var(--fn);font-size:12px;font-weight:500;color:var(--t1);background:var(--s2);border:1px solid var(--bd);border-radius:var(--r-input);padding:7px 9px;outline:none;width:100%;transition:border-color .15s,box-shadow .15s}
.fld select:focus,.fld input:focus{border-color:var(--sage);background:#fff;box-shadow:0 0 0 3px rgba(61,134,240,.15)}
.fld input[readonly]{color:var(--t3);background:transparent;border-color:transparent;font-family:var(--mo);font-size:11px}

/* INVESTOR BAR */
.inv-bar{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rl);padding:11px 13px;margin-bottom:10px}
.inv-bar-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.inv-bar-title{font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--t4)}
.clear-btn{font-family:var(--fn);font-size:11px;font-weight:500;padding:3px 10px;border-radius:var(--r);border:1px solid var(--bd);background:transparent;color:var(--t3);cursor:pointer;display:inline-flex;align-items:center;gap:4px;transition:all .15s}
.clear-btn:hover{background:var(--danger-lt);color:var(--danger);border-color:var(--danger)}

/* METRICS */
.met{display:flex;flex-direction:column;gap:2px;background:var(--s2);border-radius:var(--r);padding:9px 11px}
.met-l{font-size:10px;color:var(--t3)}
.met-v{font-size:14px;font-weight:600;font-family:var(--mo);line-height:1.2}
.met-s{font-size:10px;color:var(--t4);margin-top:1px}
.met.sage{background:var(--sage-lt)}.met.sage .met-v{color:#1D4ED8}
.met.warn{background:var(--warn-lt)}.met.warn .met-v{color:var(--warn)}
.met.cream{background:var(--cream-lt)}.met.cream .met-v{color:#1D4ED8}

.dvd{height:1px;background:var(--bd);margin:10px 0}
.sub-head{font-size:9px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--t4);margin-bottom:7px}

/* DEPTO CARD */
.depto-card{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px;margin-bottom:7px;position:relative}
.di{display:flex;flex-direction:column;gap:1px}
.di-l{font-size:9px;color:var(--t4)}
.di-v{font-size:11px;font-weight:600;font-family:var(--mo);color:var(--t1)}
.tag{font-size:10px;padding:2px 7px;border-radius:99px;font-weight:500;display:inline-block}
.tag.sage{background:var(--sage-lt);color:var(--sage-dk)}
.tag.warn{background:var(--warn-lt);color:var(--warn)}
.tag.gray{background:var(--s3);color:var(--t3);border:1px solid var(--bd)}
.tag.cream{background:var(--cream-lt);color:var(--sage-dk)}

/* FIN BLOCKS */
.fun-blk{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:9px 11px;margin-bottom:6px}
.fun-head{font-size:10px;font-weight:600;color:var(--sage-dk);margin-bottom:7px}

/* TABS */
.tabs{display:flex;gap:5px;margin-bottom:10px}
.tab-btn{font-family:var(--fn);font-size:11px;font-weight:500;padding:6px 14px;border-radius:var(--r-btn);border:1px solid var(--bd);cursor:pointer;background:var(--s2);color:var(--t3);transition:all .15s}
.tab-btn.active{background:var(--dark);color:#fff;border-color:var(--dark)}

/* PIE */
.pie-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pb{background:var(--s2);border:1px solid var(--bd);border-radius:var(--r);padding:10px 12px}
.pb-l{font-size:10px;color:var(--t3);margin-bottom:5px;font-weight:500}
.pb-v{font-size:18px;font-weight:600;font-family:var(--mo);color:var(--t1)}
.pb-s{font-size:10px;color:var(--t3);margin-top:4px}
.pb.sage{background:var(--sage-lt);border-color:rgba(37,99,235,.4)}.pb.sage .pb-v{color:#1D4ED8}
.pb.cream{background:var(--cream-lt);border-color:rgba(201,169,110,.3)}.pb.cream .pb-v{color:#1D4ED8}
.pb.warn{background:var(--warn-lt);border-color:rgba(217,119,6,.3)}.pb.warn .pb-v{color:var(--warn)}
.pb.err{background:var(--danger-lt);border-color:rgba(220,38,38,.3)}.pb.err .pb-v{color:var(--danger)}
.pie-inp{font-family:var(--mo);font-size:22px;font-weight:600;color:var(--t1);background:transparent;border:none;border-bottom:2px solid var(--bds);width:100%;padding:2px 0;outline:none}
.pie-inp.err{border-color:var(--danger);color:var(--danger)}

/* PIE SUMMARY */
.pie-summary{background:var(--dark);border-radius:var(--rl);padding:0;margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:hidden}
.ps-item{padding:12px 14px;background:var(--dark2);display:flex;flex-direction:column;gap:3px;border-right:1px solid rgba(255,255,255,.06)}
.ps-item:last-child{border-right:none}
.ps-l{font-size:9px;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.ps-v{font-size:16px;font-weight:600;font-family:var(--mo);color:var(--sage)}
.ps-s{font-size:10px;color:rgba(255,255,255,.25);margin-top:1px}

/* FLUJOS TABLE */
.ftbl{width:100%;border-collapse:collapse;font-size:12px}
.ftbl th{font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--t4);text-align:left;padding:6px 9px;background:var(--s2);border-bottom:1px solid var(--bd)}
.ftbl td{padding:8px 9px;border-bottom:1px solid var(--bd);color:var(--t2);font-size:12px}
.ftbl tbody tr:hover{background:var(--s2)}
.ftbl tfoot td{font-weight:500;background:var(--sage-lt);color:var(--sage-dk)}
.num{font-family:var(--mo);text-align:right}
.pos{color:var(--t1)}.neg{color:var(--t1)}
.mini-sel{font-family:var(--fn);font-size:11px;padding:3px 6px;border:1px solid var(--bd);border-radius:6px;background:var(--s1);color:var(--t1);outline:none;cursor:pointer}
.mini-inp{font-family:var(--mo);font-size:11px;width:85px;text-align:right;padding:4px 6px;border:1px solid var(--bd);border-radius:6px;background:var(--s1);color:var(--t1);outline:none}

/* BARS */
.bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.bar-yr{font-size:11px;color:var(--t4);width:42px;flex-shrink:0}
.bar-yr.sel{color:#1D4ED8;font-weight:600}
.bar-trk{flex:1;height:6px;background:var(--s3);border-radius:99px;overflow:hidden;border:1px solid var(--bd)}
.bar-fill{height:100%;background:var(--bds);border-radius:99px;transition:width .35s}
.bar-fill.sel{background:#2563EB}
.bar-val{font-size:11px;font-family:var(--mo);color:var(--t3);width:105px;text-align:right;flex-shrink:0}
.bar-val.sel{color:#1D4ED8;font-weight:600}

/* RESULT */
.res{border-radius:var(--rl);padding:14px 18px;background:var(--sage-lt);border:1px solid rgba(37,99,235,.4);display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.ri{display:flex;flex-direction:column;gap:2px}
.ri-l{font-size:10px;color:var(--sage-dk);opacity:.75}
.ri-v{font-size:17px;font-weight:600;font-family:var(--mo);color:#1D4ED8}
.ri-v.big{font-size:22px}
.ri-s{font-size:10px;color:var(--sage-dk);opacity:.55;margin-top:1px}
.rdiv{width:1px;height:36px;background:rgba(61,107,56,.2);flex-shrink:0}

/* CTA */
.cta-row{display:flex;gap:8px;margin-top:14px;justify-content:flex-end;flex-wrap:wrap}
.cta-btn{font-family:var(--fn);font-size:12px;font-weight:500;padding:10px 20px;border-radius:var(--r-btn);border:none;cursor:pointer;display:inline-flex;align-items:center;gap:7px;text-decoration:none;transition:all .15s}
.cta-primary{background:var(--btn);color:#fff}
.cta-primary:hover{background:var(--btn-hover);transform:translateY(-1px)}
.cta-secondary{background:var(--sage-lt);color:var(--sage-dk);border:1px solid var(--bds)}
.cta-secondary:hover{background:var(--sage);color:#fff}
.cta-outline{background:transparent;color:var(--t2);border:1px solid var(--bds)}
.cta-outline:hover{background:var(--s3)}

/* SELECT COLOURS */
select option.opt-g{background:#ECFDF5;color:#065F46}
select option.opt-y{background:#EFF6FF;color:#92400E}

/* ══ ADMIN ══ */
#pg-admin{display:none;min-height:100vh}
.admin-main{margin-left:var(--sb);flex:1;padding:22px 24px}
.admin-card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rl);padding:16px 18px;margin-bottom:12px}
.admin-title{font-size:14px;font-weight:600;margin-bottom:3px}
.admin-sub{font-size:12px;color:var(--t3);margin-bottom:14px}
.form-row{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;margin-bottom:10px}
.fld-sm label{font-size:10px;color:var(--t3);font-weight:500;display:block;margin-bottom:3px}
.fld-sm input,.fld-sm select{font-family:var(--fn);font-size:12px;color:var(--t1);background:var(--s2);border:1px solid var(--bd);border-radius:var(--r-input);padding:7px 9px;outline:none;width:100%;transition:border-color .15s,box-shadow .15s}
.fld-sm input:focus,.fld-sm select:focus{border-color:var(--sage);background:#fff;box-shadow:0 0 0 3px rgba(61,134,240,.15)}
.btn-primary{font-family:var(--fn);font-size:12px;font-weight:500;padding:7px 16px;border-radius:var(--r-btn);border:none;background:var(--dark);color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.btn-primary:hover{opacity:.85}
.asesor-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--bd)}
.asesor-row:last-child{border-bottom:none}
.asesor-avatar{width:32px;height:32px;border-radius:50%;background:var(--sage-lt);color:var(--sage-dk);font-weight:600;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.asesor-info{flex:1}
.asesor-name{font-size:12px;font-weight:500}
.asesor-email{font-size:10px;color:var(--t3)}
.asesor-area{font-size:10px;color:var(--t3);min-width:100px}
.badge-ok{font-size:10px;padding:2px 7px;border-radius:99px;background:var(--ok-lt);color:var(--ok);font-weight:500}
.badge-off{font-size:10px;padding:2px 7px;border-radius:99px;background:var(--s3);color:var(--t4);font-weight:500}
.icon-btn{background:transparent;border:1px solid var(--bd);border-radius:6px;padding:4px 8px;cursor:pointer;font-size:12px;color:var(--t3);transition:all .15s;font-family:var(--fn)}
.icon-btn:hover{background:var(--s3);color:var(--t1)}
.icon-btn.danger:hover{background:var(--danger-lt);color:var(--danger);border-color:var(--danger)}

.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--bds);background:transparent;transition:all .15s;display:inline-block}
.pin-dot.filled{background:var(--dark);border-color:var(--dark)}
.pin-dot.error{background:var(--danger);border-color:var(--danger)}
.pin-key{font-family:var(--fn);font-size:18px;font-weight:500;padding:11px;border-radius:var(--r);border:1px solid var(--bd);background:var(--s2);color:var(--t1);cursor:pointer;transition:all .15s}
.pin-key:hover{background:var(--s3);border-color:var(--bds)}
.pin-key:active{transform:scale(.95)}

input[type="date"], input[type="time"]{font-family:var(--fn);font-size:12px;padding:7px 10px;border:1px solid var(--bd);border-radius:var(--r-input);outline:none;background:#fff;color:var(--t1);width:100%;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s}
input[type="date"]:focus, input[type="time"]:focus{border-color:var(--sage);box-shadow:0 0 0 3px rgba(61,134,240,.15)}
/* ── BOTÓN HAMBURGUESA (oculto en desktop, visible en mobile) ── */
.sb-toggle{display:none;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r);border:1px solid var(--bd);background:var(--s1);cursor:pointer;color:var(--t2);flex-shrink:0;line-height:1;user-select:none}
.sb-toggle:hover{background:var(--s2)}

/* ── OVERLAY DEL SIDEBAR EN MOBILE (oscurecido detrás del menú abierto) ── */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:299}
.sb-overlay.open{display:block}

/* RESPONSIVE — Tablet y mobile (<=900px) */
@media(max-width:900px){
  :root{--sb:0px}
  .sidebar{transform:translateX(-220px);transition:transform .25s ease;width:220px!important;z-index:300}
  .sidebar.open{transform:translateX(0)}
  .main{margin-left:0!important}
  .main-inner{padding:14px 14px 32px!important}

  /* Botón hamburguesa: visible en todas las páginas */
  .sb-toggle{display:flex!important}

  /* Topbars y headers más compactos */
  .topbar{flex-wrap:wrap;gap:8px;padding:10px 14px!important}
  .topbar-title{font-size:13px!important}
  .topbar-sub{font-size:10px!important}
  .pg-h{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}
  .pg-h .sb-toggle{margin-top:2px}
  .pg-t{font-size:18px!important;line-height:1.2}
  .pg-s{font-size:12px!important}

  /* Cotizador: grids apilados en 2x2 */
  .inv-bar .g5{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .card .g4{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .card .g3{grid-template-columns:1fr 1fr!important;gap:8px!important}
  .card .g2{grid-template-columns:1fr!important;gap:8px!important}

  /* Login */
  .login-wrap{width:calc(100vw - 32px);max-width:600px}
  .login-left{width:200px!important;padding:28px 20px}

  /* Botones y filas */
  .cta-row{flex-wrap:wrap}
  .cta-btn{font-size:11px;padding:9px 10px;flex:1 1 auto}
  .asesor-row{flex-wrap:wrap;gap:6px}
  .py-res-grid{grid-template-columns:1fr 1fr!important}

  /* Modal de comuna del Mapa de Proyectos: header reorganizado */
  #dh-comuna-modal > div{margin:10px auto!important;width:calc(100vw - 20px)!important;max-width:none!important}
  .dh-modal-uf{align-self:flex-start;margin-top:8px}
}

/* RESPONSIVE — Mobile (<=600px) */
@media(max-width:600px){
  /* Login: stack vertical */
  #pg-login{padding:20px 12px;box-sizing:border-box}
  .login-wrap{width:100%;flex-direction:column;min-height:auto;border-radius:16px;overflow:visible}
  .login-left{width:100%!important;padding:28px 24px;min-height:auto;border-radius:16px 16px 0 0;flex-shrink:0}
  .login-right{padding:28px 24px;border-radius:0 0 16px 16px}

  /* Cotizador y otros: todo a 1 columna */
  .inv-bar .g5{grid-template-columns:1fr!important}
  .card .g4{grid-template-columns:1fr!important}
  .card .g3{grid-template-columns:1fr!important}

  /* Pills se ocultan para liberar espacio */
  .pills{display:none}
  .py-res-grid{grid-template-columns:1fr!important}

  /* Botones CTA en columna */
  .cta-row{flex-direction:column}
  .cta-btn{width:100%}

  /* Modal de comuna: proyectos 1 columna */
  #dh-comuna-modal .dh-modal-proyectos{grid-template-columns:1fr!important}
}

/* ── KPI DASHBOARD ── */
.kpi-item{display:flex;align-items:center;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--bd)}
.kpi-item:last-child{border-bottom:none}
.kpi-label{font-size:10px;color:var(--t3);flex:1}
.kpi-value{font-size:12px;font-weight:600;font-family:var(--mo);color:var(--t1);text-align:right}
.kpi-value.editing{background:var(--s2);border:1px solid var(--sage);border-radius:4px;padding:1px 5px;font-size:11px;outline:none;width:90px;text-align:right;font-family:var(--mo)}
.kpi-area-card{transition:box-shadow .15s}
.kpi-area-card:hover{box-shadow:0 2px 12px rgba(37,99,235,.08)}
@media(max-width:900px){
  #kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:600px){
  #kpi-grid{grid-template-columns:1fr 1fr!important}
}
@keyframes spin{to{transform:rotate(360deg)}}



.py-cycle-card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rl);margin-bottom:8px;overflow:hidden}
.py-cycle-hd{padding:11px 14px;background:var(--s2);border-bottom:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}
.py-met{background:var(--s2);border-radius:var(--r);padding:9px 11px}
.py-met.sage{background:var(--sage-lt)}.py-met.sage .py-val{color:#1D4ED8}
.py-met.ok{background:var(--sage-lt)}.py-met.ok .py-val{color:var(--sage-dk)}
.py-met.warn{background:var(--sage-lt)}.py-met.warn .py-val{color:var(--sage-dk)}
.py-lbl{font-size:9px;color:var(--t4);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:3px}
.py-val{font-size:13px;font-weight:600;font-family:var(--mo);color:var(--t1)}
.py-sub{font-size:10px;color:var(--t4);margin-top:2px}
.py-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:5px}
.py-bar-lbl{font-size:11px;color:var(--t3);width:110px;flex-shrink:0}
.py-bar-trk{flex:1;height:7px;background:var(--s3);border-radius:99px;overflow:hidden}
.py-bar-fill{height:100%;border-radius:99px;transition:width .4s}
.py-bar-val{font-size:11px;font-family:var(--mo);color:var(--t2);width:110px;text-align:right;flex-shrink:0}
.py-res-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.py-res-card{background:var(--s1);border:1px solid var(--bd);border-radius:var(--rl);padding:14px 16px}
.py-res-card.sage{color:#1D4ED8;background:var(--sage-lt);border-color:rgba(37,99,235,.4)}
.py-res-card.ok{background:var(--sage-lt);border-color:rgba(37,99,235,.3)}



.tm-col{width:310px;min-width:310px;flex-shrink:0;display:flex;flex-direction:column;max-height:calc(100vh - 90px)}
.tm-col-hd{background:#fff;border:1px solid var(--bd);border-radius:var(--rl);padding:12px 14px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}
.tm-col-title{font-size:13px;font-weight:600;color:var(--t1);line-height:1.3}
.tm-col-count{font-size:12px;font-weight:600;background:var(--s2);color:var(--t3);border-radius:99px;padding:2px 10px;min-width:26px;text-align:center}
.tm-cards{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:10px;min-height:80px}
.tm-card{background:#fff;border:1px solid var(--bd);border-radius:var(--rl);padding:16px;cursor:pointer;transition:box-shadow .15s;user-select:none}
.tm-card:hover{box-shadow:0 4px 18px rgba(37,99,235,.13);border-color:var(--sage)}
.tm-card.dragging{opacity:.5;box-shadow:0 8px 24px rgba(0,0,0,.15)}
.tm-card-name{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:6px}
.tm-card-correo{font-size:12px;color:var(--t3);margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tm-card-cel{font-size:13px;color:var(--sage-dk);font-weight:600;margin-bottom:2px}
.tm-cards.drag-over{background:var(--sage-lt);border-radius:var(--rl)}


/* ── PIPE ASESORES ─────────────────────────────────────────────── */
.pa-cards.drag-over { background: rgba(37,99,235,.08); border-radius: 8px; }
.pa-card.dragging { opacity: 0.5; }
.pa-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,.06); transform: translateY(-1px); }


/* ── PIPE ASESORES — ESTADO DE SITUACIÓN ─────────────────────── */
.pa-es-section { background:#fff; border:1px solid var(--bd); border-radius:12px; padding:16px 18px; margin-bottom:14px; }
.pa-es-section-title { font-size:13px; font-weight:700; color:var(--t1); margin-bottom:14px; display:flex; align-items:center; gap:8px; padding-bottom:10px; border-bottom:1px solid var(--bd); }
.pa-es-section-title i { font-size:16px; color:var(--sage); }
.pa-es-grid-1 { display:grid; grid-template-columns:1fr; gap:12px; margin-bottom:10px; }
.pa-es-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:10px; }
.pa-es-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px; margin-bottom:10px; }
.pa-es-fld { display:flex; flex-direction:column; }
.pa-es-fld label { font-size:10px; color:var(--t4); font-weight:600; margin-bottom:4px; }
.pa-es-fld input, .pa-es-fld select { font-family:var(--fn); font-size:12px; padding:8px 10px; border:1px solid var(--bd); border-radius:var(--r-input); background:#fff; box-sizing:border-box; width:100%; outline:none; transition:border-color .15s,box-shadow .15s; }
.pa-es-fld input:focus, .pa-es-fld select:focus { border-color:var(--sage); box-shadow:0 0 0 3px rgba(61,134,240,.15); }
.pa-banco-chip { transition:all .15s; }
.pa-banco-chip:hover { background:#F8FAFC; border-color:var(--sage); }


/* Alarm blinking animation for overdue contacts */
@keyframes paBlink { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(.95)} }
