:root{
  /* Paleta Maura Capital — Brand Book */
  --anthracite:#1C1C1A;
  --anthracite-deep:#0E0E0D;
  --anthracite-soft:#2A2A27;
  --bone:#EFEBE3;
  --bone-light:#F6F3EC;
  --bone-dark:#D4CEC0;
  --paper:#F9F6EF;
  --ink:#2A2A28;
  --muted:#7A7870;
  --line:#BFBAA9;
  --line-soft:#DDD7C5;

  /* Aliases semánticos reutilizados por el JS/estilos antiguos */
  --navy:var(--anthracite);
  --navy-l:var(--anthracite-soft);
  --navy-d:var(--anthracite-deep);
  --slate:var(--muted);
  --slate-l:var(--ink);
  --slate-d:var(--anthracite);
  --bg:var(--paper);
  --bg2:var(--bone-light);
  --bg3:var(--bone);
  --text:var(--anthracite);
  --light:var(--muted);
  --border:rgba(28,28,26,0.10);

  /* Semánticos (positivo/negativo) pulidos a la paleta cálida */
  --green:#3A6B4E;
  --green-bg:#E8EEE8;
  --red:#8A3A2E;
  --red-bg:#F1E4E0;

  --sh:0 2px 16px rgba(28,28,26,0.06);
  --sh-lg:0 8px 40px rgba(28,28,26,0.12);
}
*{margin:0;padding:0;box-sizing:border-box;}
body{font-family:'Inter Tight',sans-serif;background:var(--paper);color:var(--ink);font-weight:300;font-feature-settings:"ss01";}

/* ============================================== */
/* THE MARKER — sello del sistema Maura Capital    */
/* ============================================== */
.marker{display:inline-flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;}
.marker-dot{background:currentColor;border-radius:50%;position:relative;}
.marker-dot::before{content:"";position:absolute;inset:calc(var(--ring-offset, 4px) * -1);border:1px solid currentColor;border-radius:50%;}
.marker-dot::after{content:"";position:absolute;inset:calc(var(--ring-offset-outer, 10px) * -1);border:1px solid currentColor;border-radius:50%;opacity:0.4;}
.marker.xs .marker-dot{width:4px;height:4px;--ring-offset:3px;--ring-offset-outer:7px;}
.marker.sm .marker-dot{width:6px;height:6px;--ring-offset:4px;--ring-offset-outer:10px;}
.marker.md .marker-dot{width:9px;height:9px;--ring-offset:5px;--ring-offset-outer:12px;}
.marker.lg .marker-dot{width:14px;height:14px;--ring-offset:8px;--ring-offset-outer:20px;}
.marker.xl .marker-dot{width:20px;height:20px;--ring-offset:12px;--ring-offset-outer:28px;}

/* ============================================== */
/* LOADING                                          */
/* ============================================== */
#loading-screen{position:fixed;inset:0;background:var(--anthracite);display:flex;align-items:center;justify-content:center;z-index:999;transition:opacity .4s;}
#loading-screen.hide{opacity:0;pointer-events:none;}
.ls-inner{text-align:center;color:var(--bone);}
.ls-marker{display:flex;justify-content:center;margin-bottom:26px;color:var(--bone);}
.ls-brand{font-family:'Fraunces',serif;font-size:26px;font-weight:300;color:var(--bone);letter-spacing:-0.01em;font-variation-settings:"opsz" 144;}
.ls-brand em{font-style:italic;color:var(--bone-dark);}
.ls-inner p{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--bone-dark);opacity:.6;letter-spacing:.3em;text-transform:uppercase;margin-top:10px;}
.spinner{width:22px;height:22px;border:1px solid rgba(239,235,227,.15);border-top-color:var(--bone);border-radius:50%;animation:spin .7s linear infinite;margin:28px auto 0;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ============================================== */
/* LOGIN                                            */
/* ============================================== */
#login-screen{min-height:100vh;display:none;align-items:center;justify-content:center;background:var(--anthracite);position:relative;overflow:hidden;}
#login-screen.show{display:flex;}
#login-screen::before{content:'';position:absolute;width:640px;height:640px;border-radius:50%;background:radial-gradient(circle,rgba(239,235,227,.04) 0%,transparent 70%);top:-140px;right:-140px;}
#login-screen::after{content:'';position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(239,235,227,.03) 0%,transparent 70%);bottom:-80px;left:-80px;}
.lc{background:rgba(239,235,227,.03);border:1px solid rgba(239,235,227,.12);border-radius:4px;padding:56px 44px;width:420px;backdrop-filter:blur(20px);position:relative;z-index:10;box-shadow:0 24px 80px rgba(0,0,0,.5);}
.llogo{text-align:center;margin-bottom:40px;}
.llogo-marker{display:flex;justify-content:center;margin-bottom:22px;color:var(--bone);}
.llogo h1{font-family:'Fraunces',serif;font-size:28px;font-weight:300;color:var(--bone);letter-spacing:-0.015em;font-variation-settings:"opsz" 144;}
.llogo h1 em{font-style:italic;color:var(--bone-dark);}
.llogo p{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--bone-dark);opacity:.55;letter-spacing:.35em;text-transform:uppercase;margin-top:10px;}
.lf label{display:block;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--bone-dark);opacity:.55;margin-bottom:10px;margin-top:22px;}
.lf input{width:100%;padding:13px 15px;background:rgba(239,235,227,.04);border:1px solid rgba(239,235,227,.1);border-radius:3px;color:var(--bone);font-family:'Inter Tight',sans-serif;font-size:14px;font-weight:300;outline:none;transition:border-color .2s,background .2s;}
.lf input:focus{border-color:rgba(239,235,227,.4);background:rgba(239,235,227,.06);}
.lf input::placeholder{color:rgba(239,235,227,.25);}
.lbtn{width:100%;margin-top:32px;padding:14px;background:var(--bone);border:none;border-radius:3px;color:var(--anthracite);font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:500;letter-spacing:.25em;text-transform:uppercase;cursor:pointer;transition:opacity .2s,transform .05s;}
.lbtn:hover{opacity:.92;}
.lbtn:active{transform:translateY(1px);}
.lbtn:disabled{opacity:.5;cursor:not-allowed;}
.lerr{margin-top:16px;padding:11px;background:rgba(138,58,46,.15);border:1px solid rgba(138,58,46,.3);border-radius:3px;color:#D9A99E;font-family:'Inter Tight',sans-serif;font-size:12px;text-align:center;display:none;font-weight:300;}

/* ============================================== */
/* APP SHELL                                        */
/* ============================================== */
#app{display:none;}

.sidebar{position:fixed;left:0;top:0;bottom:0;width:250px;background:var(--anthracite);display:flex;flex-direction:column;z-index:100;border-right:1px solid rgba(239,235,227,.08);}
.sblogo{padding:26px 24px;border-bottom:1px solid rgba(239,235,227,.08);}
.sblogo-row{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--bone);}
.sblogo h2{font-family:'Fraunces',serif;font-size:19px;font-weight:300;color:var(--bone);letter-spacing:-0.01em;line-height:1;font-variation-settings:"opsz" 144;}
.sblogo h2 em{font-style:italic;}
.sblogo span{display:block;font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--bone-dark);opacity:.6;letter-spacing:.3em;text-transform:uppercase;margin-top:14px;}
.sbnav{flex:1;padding:22px 14px;overflow-y:auto;}
.nlbl{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:rgba(239,235,227,.3);padding:0 10px;margin-bottom:8px;margin-top:18px;}
.ni{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:3px;cursor:pointer;color:rgba(239,235,227,.5);font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:300;transition:all .15s;margin-bottom:2px;border:none;background:none;width:100%;text-align:left;letter-spacing:.01em;}
.ni:hover{background:rgba(239,235,227,.04);color:rgba(239,235,227,.85);}
.ni.active{background:rgba(239,235,227,.06);color:var(--bone);}
.ni.active::before{content:"";position:absolute;}
.ni{position:relative;}
.ni.active{padding-left:14px;}
.ni.active::after{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:3px;border-radius:50%;background:var(--bone);}
.sbfoot{padding:18px 14px;border-top:1px solid rgba(239,235,227,.08);}
.upill{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:3px;background:rgba(239,235,227,.03);}
.uav{width:30px;height:30px;border-radius:3px;background:var(--anthracite-soft);border:1px solid rgba(239,235,227,.12);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:12px;font-weight:400;font-style:italic;color:var(--bone-dark);flex-shrink:0;}
.uinfo{flex:1;min-width:0;}
.uinfo .un{font-family:'Inter Tight',sans-serif;font-size:12px;color:rgba(239,235,227,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:300;}
.uinfo .ur{font-family:'IBM Plex Mono',monospace;font-size:8px;color:rgba(239,235,227,.35);letter-spacing:.22em;text-transform:uppercase;margin-top:2px;}
.lout{background:none;border:none;color:rgba(239,235,227,.3);cursor:pointer;padding:3px;transition:color .15s;}
.lout:hover{color:rgba(239,235,227,.7);}

.main{margin-left:250px;min-height:100vh;background:var(--paper);}

.topbar{background:var(--paper);border-bottom:1px solid var(--line-soft);padding:20px 40px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:110;}
.tbt h1{font-family:'Fraunces',serif;font-size:26px;font-weight:300;color:var(--anthracite);letter-spacing:-0.02em;line-height:1.05;font-variation-settings:"opsz" 144;}
.tbt h1 em{font-style:italic;color:var(--muted);}
.tbt p{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin-top:6px;}
.tbr{display:flex;align-items:center;gap:14px;}
.dbadge{background:transparent;border:1px solid var(--line);border-radius:3px;padding:7px 14px;font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;}
.invsel select{padding:8px 13px;border:1px solid var(--line);border-radius:3px;font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:300;color:var(--anthracite);background:var(--paper);outline:none;cursor:pointer;}

/* ============================================== */
/* PAGES / CARDS                                    */
/* ============================================== */
.page{display:none;padding:36px 40px;max-width:1400px;}
.page.active{display:block;}

.card{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden;margin-bottom:22px;box-shadow:var(--sh);}
.ch{padding:22px 26px 18px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;background:var(--bone-light);gap:16px;}
.ch h3{font-family:'Fraunces',serif;font-size:20px;font-weight:300;color:var(--anthracite);letter-spacing:-0.015em;line-height:1.1;font-variation-settings:"opsz" 144;}
.ch h3 em{font-style:italic;color:var(--muted);}
.ch p{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;margin-top:6px;}
.cb{padding:24px 26px;}

/* KPIs — más cercanos a la estética brand book */
.krow{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:22px;}
.kpi{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;padding:24px 22px;position:relative;overflow:hidden;box-shadow:var(--sh);}
.kpi::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:var(--line);}
.kpi.bl::after{background:var(--anthracite);height:2px;}
.klbl{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.kval{font-family:'Fraunces',serif;font-size:32px;font-weight:300;color:var(--anthracite);line-height:1;letter-spacing:-0.02em;font-variation-settings:"opsz" 144;}
.kval em{font-style:italic;color:var(--muted);}
.ksub{font-family:'Inter Tight',sans-serif;font-size:11px;color:var(--muted);margin-top:10px;display:flex;align-items:center;gap:6px;font-weight:300;}

.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:2px;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;}
.pos{background:var(--green-bg);color:var(--green);}
.neg{background:var(--red-bg);color:var(--red);}
.sub{background:var(--bone);color:var(--anthracite);border:1px solid var(--line);}
.rdb{background:var(--red-bg);color:var(--red);border:1px solid rgba(138,58,46,.2);}
.dis{background:var(--bone-light);color:var(--anthracite);border:1px solid var(--line-soft);}

.dr{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid var(--line-soft);}
.dr:last-child{border-bottom:none;}
.dr .dl{font-family:'Inter Tight',sans-serif;font-size:13px;color:var(--muted);font-weight:300;}
.dr .dv{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--anthracite);letter-spacing:.04em;}
.dr .dvp{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--green);letter-spacing:.04em;}

.tbl{width:100%;border-collapse:collapse;}
.tbl th{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--muted);font-weight:500;padding:12px 14px;background:var(--bone-light);text-align:left;border-bottom:1px solid var(--line);}
.tbl td{padding:13px 14px;font-family:'Inter Tight',sans-serif;font-size:13px;border-bottom:1px solid var(--line-soft);color:var(--anthracite);font-weight:300;}
.tbl tr:last-child td{border-bottom:none;}
.tbl td.mn{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.04em;}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;}

/* ============================================== */
/* BOTONES                                          */
/* ============================================== */
.btn{padding:10px 20px;border-radius:3px;font-family:'IBM Plex Mono',monospace;font-size:10px;font-weight:500;cursor:pointer;border:none;transition:all .15s;letter-spacing:.2em;text-transform:uppercase;}
.bnavy{background:var(--anthracite);color:var(--bone);}
.bnavy:hover{background:var(--anthracite-deep);}
.bsec{background:transparent;color:var(--anthracite);border:1px solid var(--line);}
.bsec:hover{background:var(--bone-light);}
.bdel{background:transparent;color:var(--red);border:1px solid rgba(138,58,46,.3);}
.bdel:hover{background:var(--red-bg);}
.bgold{background:var(--anthracite);color:var(--bone);}
.bgold:hover{background:var(--anthracite-deep);}
.bsm{padding:7px 13px;font-size:9px;letter-spacing:.18em;}
.bxs{padding:5px 10px;font-size:9px;letter-spacing:.15em;}

/* ============================================== */
/* FORMS                                            */
/* ============================================== */
.fg{display:flex;flex-direction:column;gap:6px;}
.fg label{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);}
.fg input,.fg select,.fg textarea{padding:10px 13px;border:1px solid var(--line);border-radius:3px;font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:300;color:var(--anthracite);background:var(--paper);outline:none;transition:border-color .15s,background .15s;}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--anthracite);background:var(--bone-light);}
.fg textarea{resize:vertical;min-height:72px;line-height:1.55;}
.fg.full{grid-column:1/-1;}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.fgrid.g4c{grid-template-columns:1fr 1fr 1fr 1fr;}

.sdiv{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);margin:26px 0 14px;padding-bottom:8px;border-bottom:1px solid var(--line-soft);display:flex;align-items:center;gap:10px;}
.sdiv::before{content:"§";color:var(--anthracite);opacity:.55;font-family:'Fraunces',serif;font-style:italic;font-size:14px;letter-spacing:0;}

/* ============================================== */
/* FONDO BANNER (resumen)                           */
/* ============================================== */
.fbanner{background:var(--anthracite);color:var(--bone);border-radius:4px;padding:34px 36px;margin-bottom:24px;display:flex;align-items:center;gap:30px;position:relative;overflow:hidden;}
.fbanner::before{content:'';position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(239,235,227,.04) 0%,transparent 70%);right:-100px;top:-120px;}
.fbanner-left{display:flex;align-items:center;gap:18px;position:relative;z-index:1;}
.fbanner-left .marker{color:var(--bone);}
.fbn{font-family:'Fraunces',serif;font-size:24px;font-weight:300;color:var(--bone);letter-spacing:-0.015em;font-variation-settings:"opsz" 144;line-height:1.05;}
.fbn em{font-style:italic;color:var(--bone-dark);}
.fbt{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--bone-dark);opacity:.65;letter-spacing:.25em;text-transform:uppercase;margin-top:6px;}
.fbstats{display:flex;gap:28px;margin-left:auto;position:relative;z-index:1;}
.fbstat{text-align:center;}
.fbv{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--bone);letter-spacing:.04em;}
.fbl{font-family:'IBM Plex Mono',monospace;font-size:8px;color:var(--bone-dark);opacity:.55;letter-spacing:.22em;text-transform:uppercase;margin-top:4px;}
.dvl{width:1px;height:36px;background:rgba(239,235,227,.1);}

/* ============================================== */
/* PROGRESS                                         */
/* ============================================== */
.progw{margin-bottom:16px;}
.progh{display:flex;justify-content:space-between;margin-bottom:8px;}
.progh span{font-family:'Inter Tight',sans-serif;font-size:12px;color:var(--muted);font-weight:300;}
.progh .pv{font-family:'IBM Plex Mono',monospace;color:var(--anthracite);font-size:11px;letter-spacing:.04em;}
.progt{height:3px;background:var(--bone);border-radius:2px;overflow:hidden;}
.progf{height:100%;border-radius:2px;background:var(--anthracite);transition:width .6s;}
.progf.gold{background:var(--anthracite-soft);}

/* ============================================== */
/* INVESTOR / SPV CARDS (admin)                     */
/* ============================================== */
.icard{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden;margin-bottom:14px;box-shadow:var(--sh);}
.ict{padding:18px 22px;display:flex;align-items:center;gap:16px;cursor:pointer;border-bottom:1px solid transparent;}
.ict.expanded{border-bottom:1px solid var(--line-soft);}
.iav{width:44px;height:44px;border-radius:3px;background:var(--anthracite);display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;font-size:17px;font-weight:400;font-style:italic;color:var(--bone);flex-shrink:0;letter-spacing:-0.01em;}
.imeta{flex:1;min-width:0;}
.imeta .iname{font-family:'Fraunces',serif;font-size:16px;font-weight:400;color:var(--anthracite);letter-spacing:-0.01em;font-variation-settings:"opsz" 144;}
.imeta .istats{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:.08em;}
.iacts{display:flex;gap:8px;}
.itog{font-size:14px;color:var(--muted);transition:transform .25s;flex-shrink:0;font-family:'IBM Plex Mono',monospace;}
.itog.open{transform:rotate(180deg);}
.ibody{padding:0 22px;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .2s;}
.ibody.open{max-height:900px;padding:20px 22px;}

.mrow{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line-soft);}
.mrow:last-child{border-bottom:none;}
.mdate{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);width:84px;flex-shrink:0;letter-spacing:.05em;}
.mtype{width:110px;flex-shrink:0;}
.mamt{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--anthracite);flex:1;letter-spacing:.04em;}
.mdel{flex-shrink:0;}

/* ============================================== */
/* MODALS                                           */
/* ============================================== */
.mo{position:fixed;inset:0;background:rgba(14,14,13,.55);backdrop-filter:blur(6px);z-index:200;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;}
.mo.open{opacity:1;pointer-events:all;}
.mobox{background:var(--paper);border-radius:4px;border:1px solid var(--line-soft);width:600px;max-height:88vh;overflow-y:auto;box-shadow:var(--sh-lg);transform:translateY(10px);transition:transform .2s;}
.mo.open .mobox{transform:translateY(0);}
.moh{padding:24px 28px 20px;border-bottom:1px solid var(--line-soft);display:flex;align-items:flex-start;justify-content:space-between;position:sticky;top:0;background:var(--paper);z-index:10;}
.moh h3{font-family:'Fraunces',serif;font-size:22px;font-weight:300;color:var(--anthracite);letter-spacing:-0.015em;line-height:1.1;font-variation-settings:"opsz" 144;}
.moh h3 em{font-style:italic;color:var(--muted);}
.mox{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:18px;font-family:'Inter Tight',sans-serif;transition:all .15s;}
.mox:hover{color:var(--anthracite);border-color:var(--anthracite);}
.mob{padding:26px 28px;}
.mof{padding:20px 28px;border-top:1px solid var(--line-soft);display:flex;gap:10px;justify-content:flex-end;background:var(--bone-light);}

/* Toast */
.toast{position:fixed;bottom:30px;right:30px;background:var(--anthracite);color:var(--bone);padding:14px 20px;border-radius:3px;font-family:'Inter Tight',sans-serif;font-size:13px;font-weight:300;z-index:300;box-shadow:var(--sh-lg);transform:translateY(80px);transition:transform .3s;display:flex;align-items:center;gap:10px;pointer-events:none;}
.toast.show{transform:translateY(0);}
.tok{background:var(--anthracite);}
.terr{background:var(--red);color:var(--bone);}

.ibox{padding:14px 16px;background:var(--bone-light);border-radius:3px;border:1px solid var(--line-soft);font-family:'Inter Tight',sans-serif;font-size:12px;color:var(--muted);line-height:1.65;margin-top:16px;font-weight:300;}
.ibox strong{font-weight:500;color:var(--anthracite);}
.spvempty{text-align:center;padding:48px 24px;color:var(--muted);}
.spvempty p{font-family:'Fraunces',serif;font-style:italic;font-size:16px;font-weight:300;}

/* ============================================== */
/* SPV CARDS (portfolio)                            */
/* ============================================== */
.spv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:26px;}
.spv-card{background:var(--paper);border:1px solid var(--line-soft);border-radius:4px;overflow:hidden;cursor:pointer;box-shadow:var(--sh);transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;flex-direction:column;}
.spv-card:hover{transform:translateY(-2px);box-shadow:var(--sh-lg);border-color:var(--line);}
.spv-img{width:100%;height:190px;object-fit:cover;background:var(--bone-light);display:block;}
.spv-img-placeholder{width:100%;height:190px;background:var(--anthracite);display:flex;align-items:center;justify-content:center;color:var(--bone);}
.spv-card-body{padding:18px;flex:1;}
.spv-card-title{font-family:'Fraunces',serif;font-size:19px;font-weight:400;color:var(--anthracite);margin-bottom:6px;letter-spacing:-0.01em;line-height:1.15;font-variation-settings:"opsz" 144;}
.spv-card-title em{font-style:italic;}
.spv-card-meta{font-family:'IBM Plex Mono',monospace;font-size:10px;color:var(--muted);margin-bottom:14px;letter-spacing:.1em;}
.spv-card-row{display:flex;justify-content:space-between;font-size:12px;padding:6px 0;border-bottom:1px solid var(--line-soft);}
.spv-card-row:last-child{border-bottom:none;}
.spv-card-row .lbl{font-family:'Inter Tight',sans-serif;color:var(--muted);font-weight:300;}
.spv-card-row .val{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--anthracite);letter-spacing:.04em;}
.spv-card-foot{padding:13px 18px;border-top:1px solid var(--line-soft);display:flex;align-items:center;justify-content:space-between;background:var(--bone-light);}

/* Badges específicos del SPV */
.spv-reforma{background:var(--bone);color:var(--anthracite);border:1px solid var(--line);}

/* ============================================== */
/* DOCUMENTOS                                       */
/* ============================================== */
.doc-row{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line-soft);}
.doc-row:last-child{border-bottom:none;}
.doc-icon{width:38px;height:38px;border-radius:3px;background:var(--bone-light);border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted);}
.doc-info{flex:1;min-width:0;}
.doc-name{font-family:'Fraunces',serif;font-size:15px;font-weight:400;color:var(--anthracite);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-0.005em;}
.doc-meta{font-family:'IBM Plex Mono',monospace;font-size:9px;color:var(--muted);margin-top:4px;letter-spacing:.1em;text-transform:uppercase;}
.doc-dl{background:var(--anthracite);color:var(--bone);border:none;border-radius:3px;padding:8px 14px;font-family:'IBM Plex Mono',monospace;font-size:9px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;cursor:pointer;flex-shrink:0;transition:background .15s;}
.doc-dl:hover{background:var(--anthracite-deep);}
.doc-del{background:transparent;color:var(--red);border:1px solid rgba(138,58,46,.3);border-radius:3px;padding:7px 11px;font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.15em;cursor:pointer;flex-shrink:0;text-transform:uppercase;font-weight:500;transition:background .15s;}
.doc-del:hover{background:var(--red-bg);}

/* ============================================== */
/* MOBILE                                           */
/* ============================================== */
@media(max-width:768px){
  .spv-grid{grid-template-columns:1fr;padding:16px;}
  .spv-img,.spv-img-placeholder{height:170px;}
}

.mob-topbar{display:none;position:fixed;top:0;left:0;right:0;height:60px;background:var(--anthracite);z-index:150;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid rgba(239,235,227,.08);}
.mob-title-row{display:flex;align-items:center;gap:10px;color:var(--bone);}
.mob-title{font-family:'Fraunces',serif;font-size:18px;color:var(--bone);font-weight:300;letter-spacing:-0.01em;}
.mob-title em{font-style:italic;color:var(--bone-dark);}
.mob-ham{display:none;background:none;border:none;cursor:pointer;padding:6px;flex-direction:column;gap:4px;}
.mob-ham span{display:block;width:20px;height:1px;background:rgba(239,235,227,.7);border-radius:1px;transition:all .25s;}
.mob-ham.open span:nth-child(1){transform:translateY(5px) rotate(45deg);}
.mob-ham.open span:nth-child(2){opacity:0;}
.mob-ham.open span:nth-child(3){transform:translateY(-5px) rotate(-45deg);}
.mob-overlay{display:none;position:fixed;inset:0;background:rgba(14,14,13,.5);z-index:120;}
.mob-overlay.show{display:block;}

.bot-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--paper);border-top:1px solid var(--line);z-index:110;padding:8px 0 max(8px,env(safe-area-inset-bottom));}
.bot-nav-inner{display:flex;justify-content:space-around;}
.bot-ni{display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px 12px;border:none;background:none;cursor:pointer;color:var(--muted);font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:.15em;text-transform:uppercase;transition:color .15s;min-width:56px;}
.bot-ni.active{color:var(--anthracite);}
.bot-ni svg{opacity:.5;}
.bot-ni.active svg{opacity:1;}

@media(max-width:768px){
  .mob-topbar{display:flex;}
  .mob-ham{display:flex;}
  .sidebar{transform:translateX(-100%);transition:transform .28s ease;z-index:130;}
  .sidebar.open{transform:translateX(0);}
  .main{margin-left:0;padding-top:60px;padding-bottom:20px;}
  .topbar{padding:16px 18px;flex-direction:column;align-items:flex-start;gap:10px;position:static;}
  .topbar .tbt h1{font-size:22px;}
  .topbar .tbr{width:100%;justify-content:space-between;}
  .dbadge{font-size:9px;padding:6px 10px;}
  .page{padding:18px 14px;}
  #login-screen ~ .mob-topbar{display:none!important;}
  .lc{width:calc(100vw - 32px);padding:40px 26px;}
  .krow{grid-template-columns:1fr;gap:12px;margin-bottom:16px;}
  .kval{font-size:26px;}
  .klbl{font-size:8px;}
  .ksub{font-size:10px;}
  .g2,.g3{grid-template-columns:1fr;gap:14px;}
  .fgrid{grid-template-columns:1fr;}
  .fgrid.g4c{grid-template-columns:1fr 1fr;}
  .fg.full{grid-column:1/-1;}
  .fbanner{flex-direction:column;align-items:flex-start;gap:18px;padding:20px;}
  .fbstats{margin-left:0;gap:18px;flex-wrap:wrap;}
  .fbn{font-size:19px;}
  .card{border-radius:4px;margin-bottom:16px;}
  .ch{padding:16px 18px 12px;}
  .ch h3{font-size:17px;}
  .cb{padding:16px 18px;}
  .mobox{width:100%;max-height:92vh;border-radius:4px 4px 0 0;position:fixed;bottom:0;left:0;right:0;}
  .mo{align-items:flex-end;}
  .toast{bottom:auto;top:74px;left:16px;right:16px;width:auto;transform:translateY(-20px);}
  .toast.show{transform:translateY(0);}
  .iacts{flex-wrap:wrap;}
  .ict{flex-wrap:wrap;gap:12px;}
  .spv-grid{grid-template-columns:1fr;padding:12px;gap:14px;}
  .spv-img,.spv-img-placeholder{height:190px;}
  .spv-card-body{padding:16px;}
  .spv-card-title{font-size:17px;}
  .doc-row{flex-wrap:wrap;gap:10px;}
  .doc-info{width:calc(100% - 52px);}
  .doc-dl,.doc-del{padding:9px 14px;font-size:9px;}
  #page-resumen svg[width="130"]{width:100px;height:100px;}
  .bot-nav{padding-bottom:max(12px,env(safe-area-inset-bottom));}
}
