:root{
  --ink:#1F2320;
  --ink-soft:#4A5049;
  --paper:#F2F0E9;
  --panel:#FFFDF8;
  --line:#DAD5C7;
  --mezcal:#A6572C;
  --mezcal-soft:#F1E1D3;
  --software:#1F6F78;
  --software-soft:#DCEAE9;
  --prolocal:#55642F;
  --prolocal-soft:#E5E8D6;
  --pronidus:#3E5C76;
  --pronidus-soft:#DCE4EC;
  --fundacion:#7A4A6B;
  --fundacion-soft:#EDDEE7;
  --sunni:#7A4A6B;
  --sunni-soft:#EDDEE7;
  --cuentas:#8A6E2F;
  --cuentas-soft:#EFE6D3;
  --diagnostico:#7A3B3B;
  --diagnostico-soft:#EDDBD8;
  --administracion:#4A5568;
  --administracion-soft:#E3E5EA;
  --escuela:#4A6670;
  --escuela-soft:#DEE6E8;
  --magnahaus:#6B6259;
  --magnahaus-soft:#E8E4DE;
  --bienesraices:#7A5B3F;
  --bienesraices-soft:#EDE2D6;
  --pill-done-bg:#DCEBDA; --pill-done-fg:#2E5C33;
  --pill-progress-bg:#FBEBCF; --pill-progress-fg:#8A5A17;
  --pill-pending-bg:#EDEAE2; --pill-pending-fg:#6B6659;
  --pill-fixed-bg:#F3DCE4; --pill-fixed-fg:#8C2E4C;
  --page-accent:var(--ink);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EDE9E1; --ink-soft:#B7B2A6; --paper:#181A17; --panel:#20221E; --line:#3A3C34;
    --mezcal:#D68A54; --mezcal-soft:#3A2A1E;
    --software:#5CB4BC; --software-soft:#1C3336;
    --prolocal:#9CB06E; --prolocal-soft:#2B3220;
    --pronidus:#8CAFCB; --pronidus-soft:#22303C;
    --fundacion:#C98FB6; --fundacion-soft:#33222E;
    --sunni:#C98FB6; --sunni-soft:#33222E;
    --cuentas:#D6B871; --cuentas-soft:#332B18;
    --diagnostico:#D89B96; --diagnostico-soft:#332220;
    --administracion:#A9B2C3; --administracion-soft:#282C33;
    --escuela:#9BB4BD; --escuela-soft:#222E33;
    --magnahaus:#B5AA9C; --magnahaus-soft:#2E2B26;
    --bienesraices:#C9A882; --bienesraices-soft:#332A20;
    --pill-done-bg:#22331F; --pill-done-fg:#8FCB8F;
    --pill-progress-bg:#3A2F17; --pill-progress-fg:#E3B85E;
    --pill-pending-bg:#2A2C26; --pill-pending-fg:#A6A192;
    --pill-fixed-bg:#3A222C; --pill-fixed-fg:#E38FAE;
  }
}
:root[data-theme="dark"]{
  --ink:#EDE9E1; --ink-soft:#B7B2A6; --paper:#181A17; --panel:#20221E; --line:#3A3C34;
  --mezcal:#D68A54; --mezcal-soft:#3A2A1E;
  --software:#5CB4BC; --software-soft:#1C3336;
  --prolocal:#9CB06E; --prolocal-soft:#2B3220;
  --fundacion:#C98FB6; --fundacion-soft:#33222E;
  --diagnostico:#D89B96; --diagnostico-soft:#332220;
  --administracion:#A9B2C3; --administracion-soft:#282C33;
  --escuela:#9BB4BD; --escuela-soft:#222E33;
  --magnahaus:#B5AA9C; --magnahaus-soft:#2E2B26;
  --bienesraices:#C9A882; --bienesraices-soft:#332A20;
  --pill-done-bg:#22331F; --pill-done-fg:#8FCB8F;
  --pill-progress-bg:#3A2F17; --pill-progress-fg:#E3B85E;
  --pill-pending-bg:#2A2C26; --pill-pending-fg:#A6A192;
  --pill-fixed-bg:#3A222C; --pill-fixed-fg:#E38FAE;
}
*{box-sizing:border-box;}
html,body{margin:0; padding:0;}
body{
  background:var(--paper); color:var(--ink);
  font-family:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;
  line-height:1.5; padding:32px 24px 64px;
}
h1,h2,h3{font-family:"Fraunces", Georgia, serif; font-weight:600; text-wrap:balance; margin:0;}
.mono{font-family:"IBM Plex Mono", ui-monospace, monospace; font-variant-numeric:tabular-nums;}
img{max-width:100%;}
a{color:inherit;}
.wrap{max-width:1180px; margin:0 auto;}

/* ---- Top nav ---- */
body[data-t="mezcal"]{--page-accent:var(--mezcal);}
body[data-t="umbraland"]{--page-accent:var(--software);}
body[data-t="prolocal"]{--page-accent:var(--prolocal);}
body[data-t="pronidus"]{--page-accent:var(--pronidus);}
body[data-t="fundacion"]{--page-accent:var(--fundacion);}
body[data-t="sunni"]{--page-accent:var(--sunni);}
body[data-t="cuentas"]{--page-accent:var(--cuentas);}
body[data-t="talp"]{--page-accent:var(--cuentas);}
body[data-t="deuda"]{--page-accent:var(--cuentas);}
body[data-t="escuela"]{--page-accent:var(--escuela);}
body[data-t="magnahaus"]{--page-accent:var(--magnahaus);}
body[data-t="bienesraices"]{--page-accent:var(--bienesraices);}
body[data-t="diagnostico"]{--page-accent:var(--diagnostico);}
body[data-t="administracion"]{--page-accent:var(--administracion);}
.topnav{display:flex; flex-wrap:wrap; gap:6px 22px; margin-bottom:28px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.topnav a{font-size:.8rem; font-weight:600; letter-spacing:.01em; color:var(--ink-soft); text-decoration:none; padding:6px 1px; border-bottom:2px solid transparent; white-space:nowrap;}
.topnav a:hover{color:var(--ink);}
.topnav a.active{color:var(--ink); border-bottom-color:var(--page-accent);}

/* ---- Site nav (global) + sub nav (per section) ---- */
.sitenav{display:flex; flex-wrap:wrap; align-items:center; gap:6px 26px; margin-bottom:6px;}
.sitenav a{font-size:.86rem; font-weight:700; letter-spacing:.01em; color:var(--ink-soft); text-decoration:none; padding:5px 1px; border-bottom:2px solid transparent; white-space:nowrap;}
.sitenav a:hover{color:var(--ink);}
.sitenav a.active{color:var(--ink); border-bottom-color:var(--page-accent);}
.subnav{display:flex; flex-wrap:wrap; gap:6px 20px; margin:14px 0 28px; padding-bottom:14px; border-bottom:1px solid var(--line);}
.subnav a{font-size:.78rem; font-weight:600; color:var(--ink-soft); text-decoration:none; padding:4px 1px; border-bottom:2px solid transparent; white-space:nowrap;}
.subnav a:hover{color:var(--ink);}
.subnav a.active{color:var(--ink); border-bottom-color:var(--page-accent);}

/* ---- Personal mark (home) ---- */
.mark{width:56px; height:56px; border-radius:50%; border:1.5px solid var(--ink); display:flex; align-items:center; justify-content:center; font-family:"Fraunces", Georgia, serif; font-size:1.15rem; font-weight:600; letter-spacing:.02em; flex-shrink:0;}

/* ---- Header / hero ---- */
header.site-header{
  display:flex; flex-wrap:wrap; gap:28px 40px; align-items:flex-end; justify-content:space-between;
  border-bottom:1px solid var(--line); padding-bottom:26px; margin-bottom:36px;
}
.headline{max-width:560px;}
.eyebrow{font-size:.72rem; letter-spacing:.11em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px; display:block;}
h1{font-size:2.15rem; letter-spacing:-.01em;}
.headline p{margin:10px 0 0; color:var(--ink-soft); font-size:.95rem; max-width:48ch;}
.daycount{text-align:right; flex-shrink:0;}
.daycount .big{font-family:"IBM Plex Mono"; font-size:2.6rem; font-weight:600; line-height:1;}
.daycount .lbl{font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); margin-top:6px;}
.daycount .range{font-size:.82rem; color:var(--ink-soft); margin-top:10px;}

/* ---- Track grid (home) ---- */
.tracks{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:22px; align-items:start;}
@media (max-width: 700px){ .tracks{grid-template-columns:1fr;} }
.track{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:22px 22px 20px; display:flex; flex-direction:column; gap:16px;}
.track-head{border-left:4px solid var(--accent); padding-left:14px;}
.track[data-t="mezcal"]{--accent:var(--mezcal);}
.track[data-t="umbraland"]{--accent:var(--software);}
.track[data-t="prolocal"]{--accent:var(--prolocal);}
.track[data-t="fundacion"]{--accent:var(--fundacion);}
.track-eyebrow{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.track h2{font-size:1.32rem; margin-top:4px;}
.track h2 a{text-decoration:none; color:inherit;}
.track h2 a:hover{text-decoration:underline;}
.track .goal{font-size:.88rem; color:var(--ink-soft); margin-top:8px;}
.detail-link{font-size:.78rem; font-weight:600; color:var(--accent); text-decoration:none;}
.detail-link:hover{text-decoration:underline;}

/* ---- Single-track page hero ---- */
.page-hero .track-eyebrow{color:var(--page-accent);}
.page-hero{border-left:4px solid var(--page-accent); padding-left:18px; margin-bottom:8px;}
.back-link{display:inline-block; font-size:.8rem; color:var(--ink-soft); text-decoration:none; margin-bottom:18px;}
.back-link:hover{color:var(--ink);}

/* ---- Chips / hours ---- */
.meta-row{display:flex; flex-wrap:wrap; gap:8px;}
.chip{font-size:.74rem; padding:4px 10px; border-radius:999px; color:var(--ink); border:1px solid var(--line); white-space:nowrap;}
.track[data-t="mezcal"] .chip{background:var(--mezcal-soft);}
.track[data-t="umbraland"] .chip{background:var(--software-soft);}
.track[data-t="prolocal"] .chip{background:var(--prolocal-soft);}
.track[data-t="fundacion"] .chip{background:var(--fundacion-soft);}
body[data-t="mezcal"] .chip{background:var(--mezcal-soft);}
body[data-t="umbraland"] .chip{background:var(--software-soft);}
body[data-t="prolocal"] .chip{background:var(--prolocal-soft);}
body[data-t="fundacion"] .chip{background:var(--fundacion-soft);}
body[data-t="diagnostico"] .chip{background:var(--diagnostico-soft);}
body[data-t="administracion"] .chip{background:var(--administracion-soft);}
body[data-t="escuela"] .chip{background:var(--escuela-soft);}
body[data-t="magnahaus"] .chip{background:var(--magnahaus-soft);}
body[data-t="bienesraices"] .chip{background:var(--bienesraices-soft);}
.hours{display:flex; align-items:baseline; gap:8px; font-size:.85rem; color:var(--ink-soft); border-top:1px dashed var(--line); border-bottom:1px dashed var(--line); padding:10px 0; margin:16px 0;}
.hours .mono{font-size:1rem; color:var(--ink); font-weight:600;}

/* ---- Milestones ---- */
.milestones{display:flex; flex-direction:column; gap:0;}
.ms{display:grid; grid-template-columns:64px 1fr auto; gap:12px; align-items:start; padding:12px 0; border-top:1px solid var(--line);}
.ms:first-child{border-top:none;}
.ms .days{font-size:.72rem; color:var(--ink-soft); padding-top:2px;}
.ms .desc{font-size:.86rem;}
.ms .who{display:block; font-size:.74rem; color:var(--ink-soft); margin-top:3px;}
.pill{font-size:.7rem; font-weight:600; padding:3px 9px; border-radius:999px; white-space:nowrap; height:fit-content;}
.pill.pending{background:var(--pill-pending-bg); color:var(--pill-pending-fg);}
.pill.progress{background:var(--pill-progress-bg); color:var(--pill-progress-fg);}
.pill.done{background:var(--pill-done-bg); color:var(--pill-done-fg);}
.pill.fixed{background:var(--pill-fixed-bg); color:var(--pill-fixed-fg);}

/* ---- Panel wrapper for single-track pages ---- */
.panel{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:8px 24px 6px; max-width:820px;}

/* ---- Section headings + note callout + plain lists (diagnóstico) ---- */
.section-h{font-size:1.05rem; margin:34px 0 12px; padding-top:2px;}
.section-h:first-of-type{margin-top:0;}
.note{background:var(--diagnostico-soft); border-left:4px solid var(--diagnostico); border-radius:6px; padding:14px 18px; max-width:820px; font-size:.86rem;}
.note strong{display:block; margin-bottom:4px; color:var(--diagnostico);}
.plain-list{max-width:820px; display:flex; flex-direction:column; gap:0;}
.plain-list li{list-style:none; font-size:.86rem; padding:10px 0; border-top:1px solid var(--line);}
.plain-list li:first-child{border-top:none;}
.plain-list{padding:0; margin:0;}
.semaforo{display:flex; flex-direction:column; gap:0;}
.sem-row{display:grid; grid-template-columns:150px 1fr; align-items:baseline; gap:6px 16px; padding:11px 0; border-top:1px solid var(--line);}
.sem-row:first-child{border-top:none;}
.sem-row .proj{font-weight:600; font-size:.88rem;}
.sem-row .dec{font-size:.82rem; color:var(--ink-soft); text-align:right;}
@media (max-width:560px){
  .sem-row{grid-template-columns:1fr;}
  .sem-row .dec{text-align:left;}
}

/* ---- Project cards (roster con calificación de diagnóstico, ej. Umbraland) ---- */
.proj-cards{display:flex; flex-direction:column; gap:0;}
.proj-card{padding:14px 0; border-top:1px solid var(--line);}
.proj-card:first-child{border-top:none;}
.proj-card-head{display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-bottom:7px;}
.proj-card-head .proj-name{font-weight:600; font-size:.92rem;}
.score-badge{font-size:.76rem; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap;}
.score-badge.score-high{background:var(--pill-done-bg); color:var(--pill-done-fg);}
.score-badge.score-mid{background:var(--pill-progress-bg); color:var(--pill-progress-fg);}
.score-badge.score-low{background:var(--diagnostico-soft); color:var(--diagnostico);}
.proj-axes{font-size:.72rem; color:var(--ink-soft); margin-bottom:9px;}
.proj-block{font-size:.83rem; line-height:1.5; margin-top:5px;}
.proj-block .proj-label{font-weight:600; margin-right:5px;}

/* ---- Tabla de cifras (comparativos numéricos) ---- */
.tabla-cifras{width:100%; border-collapse:collapse; font-size:.83rem;}
.tabla-cifras th{text-align:left; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; padding:10px 12px 8px 0; border-bottom:1px solid var(--line);}
.tabla-cifras td{padding:11px 12px 11px 0; border-bottom:1px solid var(--line); vertical-align:top; line-height:1.45;}
.tabla-cifras tr:last-child td{border-bottom:none;}
.tabla-cifras th.num, .tabla-cifras td.num{text-align:right; padding-right:0; white-space:nowrap;}
.tabla-cifras td.num{font-family:"IBM Plex Mono", ui-monospace, monospace; font-variant-numeric:tabular-nums;}
.tabla-cifras tr.destacado td{font-weight:600;}
.tabla-cifras tr.destacado td.num{color:var(--pill-done-fg);}
@media (max-width:560px){
  .tabla-cifras{font-size:.78rem;}
  .tabla-cifras th, .tabla-cifras td{padding-right:8px;}
}

/* ---- Hub grid (proyectos/, cuentas/) ---- */
.hub-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:20px; margin-top:8px;}
@media (max-width: 700px){ .hub-grid{grid-template-columns:1fr;} }
.hub-card{background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:20px 20px 18px; display:flex; flex-direction:column; gap:10px; text-decoration:none; color:inherit; border-left:4px solid var(--accent);}
.hub-card:hover{border-color:var(--accent); box-shadow:0 1px 0 var(--accent);}
.hub-card .hub-eyebrow{font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:var(--accent); font-weight:700;}
.hub-card h3{font-size:1.15rem;}
.hub-card p{margin:0; font-size:.85rem; color:var(--ink-soft);}
.hub-card .go{font-size:.78rem; font-weight:600; color:var(--accent);}
.hub-card[data-t="mezcal"]{--accent:var(--mezcal);}
.hub-card[data-t="umbraland"]{--accent:var(--software);}
.hub-card[data-t="prolocal"]{--accent:var(--prolocal);}
.hub-card[data-t="pronidus"]{--accent:var(--pronidus);}
.hub-card[data-t="sunni"]{--accent:var(--sunni);}
.hub-card[data-t="talp"]{--accent:var(--cuentas);}
.hub-card[data-t="deuda"]{--accent:var(--cuentas);}
.hub-card[data-t="escuela"]{--accent:var(--escuela);}
.hub-card[data-t="magnahaus"]{--accent:var(--magnahaus);}
.hub-card[data-t="bienesraices"]{--accent:var(--bienesraices);}
.hub-card[data-t="100dias"]{--accent:var(--ink-soft);}

/* ---- Home (personal) ---- */
.home-hero{display:flex; align-items:center; gap:22px; padding:48px 0 40px;}
.home-hero .who h1{font-size:1.9rem;}
.home-hero .who p{margin:8px 0 0; color:var(--ink-soft); font-size:.95rem;}
.home-actions{display:flex; flex-wrap:wrap; gap:16px; margin-top:8px;}
.home-actions a{display:flex; flex-direction:column; gap:4px; background:var(--panel); border:1px solid var(--line); border-radius:10px; padding:18px 22px; min-width:180px; text-decoration:none; color:inherit;}
.home-actions a:hover{border-color:var(--ink-soft);}
.home-actions .lbl{font-family:"Fraunces", Georgia, serif; font-size:1.15rem; font-weight:600;}
.home-actions .sub{font-size:.8rem; color:var(--ink-soft);}

footer{margin-top:40px; padding-top:20px; border-top:1px solid var(--line); font-size:.82rem; color:var(--ink-soft); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}

/* ---- Forms (administración) ---- */
.form{max-width:420px; display:flex; flex-direction:column; gap:16px;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:.78rem; font-weight:600; color:var(--ink-soft);}
.field input{font:inherit; font-size:.92rem; padding:10px 12px; border:1px solid var(--line); border-radius:7px; background:var(--paper); color:var(--ink); width:100%;}
.field input:focus{outline:none; border-color:var(--page-accent);}
.field .hint{font-size:.74rem; color:var(--ink-soft);}
.btn{align-self:flex-start; font:inherit; font-size:.86rem; font-weight:700; padding:10px 22px; border-radius:8px; border:none; background:var(--page-accent); color:var(--panel); cursor:pointer;}
.btn:hover{opacity:.9;}
.msg{border-radius:7px; padding:12px 16px; font-size:.85rem; max-width:420px;}
.msg.success{background:var(--pill-done-bg); color:var(--pill-done-fg);}
.msg.error{background:var(--pill-fixed-bg); color:var(--pill-fixed-fg);}
.form-note{font-size:.82rem; color:var(--ink-soft); max-width:420px;}

/* ---- Mostrar/ocultar contraseña (administración) ---- */
.pwd-wrap{position:relative; display:flex;}
.pwd-wrap input{padding-right:44px;}
.pwd-toggle{
  position:absolute; right:4px; top:50%; transform:translateY(-50%);
  width:34px; height:34px; display:flex; align-items:center; justify-content:center;
  background:none; border:none; border-radius:6px; padding:0; margin:0;
  color:var(--ink-soft); cursor:pointer;
}
.pwd-toggle:hover{color:var(--ink); background:var(--line);}
.pwd-toggle:focus-visible{outline:2px solid var(--page-accent); outline-offset:1px;}
.pwd-toggle svg{width:19px; height:19px; display:block; pointer-events:none;}
.pwd-toggle .icon-show{display:none;}
.pwd-toggle.is-showing .icon-hide{display:none;}
.pwd-toggle.is-showing .icon-show{display:block;}
