:root{
  --bg:#fbfaf7; --surface:#ffffff; --ink:#1c2333; --ink2:#4a5468; --muted:#7a8394;
  --navy:#1F2A44; --gold:#A67C2E; --coral:#D1495B; --blue:#2563B0; --green:#2E8B57; --amber:#C9822B;
  --line:#e6e2d8; --soft:#f3efe6; --hl:#fff1c2; --radius:14px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#14171f; --surface:#1c212c; --ink:#eef0f4; --ink2:#c3c9d4; --muted:#8e97a8;
    --navy:#cfd8ee; --gold:#d6aa55; --coral:#ef7a89; --blue:#6fa2e8; --green:#58c08a; --amber:#e3a456;
    --line:#2d3442; --soft:#232936; --hl:#4a3f17;
  }
}
:root[data-theme="dark"]{
  --bg:#14171f; --surface:#1c212c; --ink:#eef0f4; --ink2:#c3c9d4; --muted:#8e97a8;
  --navy:#cfd8ee; --gold:#d6aa55; --coral:#ef7a89; --blue:#6fa2e8; --green:#58c08a; --amber:#e3a456;
  --line:#2d3442; --soft:#232936; --hl:#4a3f17;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.6 "Segoe UI",Calibri,system-ui,-apple-system,sans-serif}
h1,h2,h3{font-family:Georgia,"Times New Roman",serif;color:var(--navy);line-height:1.25}
h1{font-size:clamp(30px,6vw,46px);margin:.1em 0 .2em}
h2{font-size:clamp(22px,4vw,30px);margin:.3em 0 .5em}
h3{font-size:20px;margin:.2em 0 .5em}
.wrap{max-width:1080px;margin:0 auto;padding:0 16px}
a{color:var(--blue)}
.muted{color:var(--muted);font-size:14px}
.top{background:linear-gradient(135deg,var(--surface),var(--soft));border-bottom:1px solid var(--line);padding-top:28px}
.kicker{color:var(--gold);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:13px}
.lead{color:var(--ink2);font-size:18px;margin:0 0 18px}
.tabs{display:flex;gap:4px;overflow-x:auto;padding:0 16px;max-width:1080px;margin:0 auto;scrollbar-width:thin}
.tabs button{flex:0 0 auto;border:0;background:none;padding:12px 14px;font:inherit;font-weight:600;color:var(--ink2);cursor:pointer;border-bottom:3px solid transparent}
.tabs button.on{color:var(--navy);border-bottom-color:var(--gold)}
.tabs button:hover{color:var(--navy)}
main{padding-top:24px;padding-bottom:40px}
.panel{display:none}
.panel.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.tag{display:inline-block;background:var(--soft);color:var(--gold);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 12px}
.tag.coral{color:var(--coral)}
.tag.mini{font-size:10px;padding:2px 8px;vertical-align:middle}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin:18px 0}
.card.note{background:var(--soft)}
.sec{margin-top:32px}
.btn{display:inline-block;border:0;background:var(--navy);color:var(--bg);padding:10px 16px;border-radius:10px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;margin:4px 6px 4px 0}
.btn.ghost{background:transparent;color:var(--navy);border:1.5px solid var(--navy)}
.btn:hover{opacity:.9}
.disparador{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:center}
.thumb{position:relative;display:block;border-radius:12px;overflow:hidden;aspect-ratio:3/4;background:#000}
.thumb img{width:100%;height:100%;object-fit:cover;display:block;opacity:.92}
.play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:44px;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.step{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;font:inherit;color:var(--ink);cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:transform .15s,border-color .15s}
.step:hover{transform:translateY(-2px);border-color:var(--gold)}
.step .n{font-family:Georgia,serif;font-size:28px;color:var(--gold);line-height:1}
.step small{color:var(--muted)}
.step span:last-child{color:var(--ink2);font-size:14px}
.step.alt{background:var(--soft)}
.fix{background:var(--surface);border-left:4px solid var(--gold);border-radius:0 10px 10px 0;padding:12px 14px;font-size:15px}
.fix.warn{border-left-color:var(--coral)}
.video{position:relative;aspect-ratio:16/9;background:var(--soft);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}
.video iframe,.video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.video .ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);text-align:center;padding:20px}
audio{width:100%;margin:8px 0 4px}
/* Salidas SPSS */
.salida{overflow-x:auto;margin:10px 0}
.spss{border-collapse:collapse;font:13px/1.35 Arial,Helvetica,sans-serif;background:#fff;color:#111;margin:10px 0 4px;min-width:420px}
.spss caption{font-weight:700;text-align:center;padding:6px;color:#111;background:#fff}
.spss th,.spss td{border:1px solid #c9ccd2;padding:4px 8px;text-align:right;white-space:nowrap}
.spss th{background:#eef0f3;font-weight:600;text-align:center}
.spss td.l{text-align:left}
.spss .fn{font-size:11px;text-align:left;border:0;padding-top:2px;white-space:normal;color:#333}
.spss td.hl,.spss th.hl{background:#ffe08a;box-shadow:inset 0 0 0 2px #C9822B}
.spss td.click{cursor:pointer}
.spss td.click:hover{background:#f6edd3}
.pasos{display:flex;flex-wrap:wrap;gap:6px}
.pasos button,.seg button{border:1.5px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 12px;border-radius:999px;font:inherit;font-size:14px;cursor:pointer}
.pasos button.on,.seg button.on{background:var(--navy);color:var(--bg);border-color:var(--navy)}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px}
.pasoTexto{background:var(--soft);border-radius:10px;padding:12px 14px;margin:10px 0;min-height:48px}
/* Preguntas con respuesta */
.qa{margin:14px 0}
.q{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:10px 0}
.q .qt{font-weight:600}
.q .qtipo{font-size:12px;color:var(--gold);font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.q .rv{display:none;margin-top:10px;padding:10px 12px;border-radius:8px;background:var(--soft);border-left:4px solid var(--green)}
.q.open .rv{display:block}
.q .rbtn{margin-top:8px;border:0;background:none;color:var(--blue);font:inherit;font-weight:600;cursor:pointer;padding:0}
.q .rbtn.prof{color:var(--gold)}
/* Publicaciones */
.mapper{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.pubtable{overflow-x:auto;margin:10px 0}
.pub{border-collapse:collapse;font:14px/1.4 Georgia,serif;color:var(--ink);min-width:460px;width:100%;background:var(--surface)}
.pub caption{text-align:left;font-weight:700;padding:8px 0;color:var(--ink)}
.pub th,.pub td{padding:3px 10px;text-align:center}
.pub thead th{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}
.pub td.l{text-align:left}
.pub tr.se td{color:var(--ink2);font-size:13px;padding-top:0}
.pub tr.sep td{border-top:1px solid var(--ink)}
.pub tr.last td{border-bottom:2px solid var(--ink)}
.pub .fn{font-size:12px;text-align:left;color:var(--ink2);padding-top:6px}
.pub .hl{background:var(--hl);box-shadow:inset 0 0 0 2px var(--amber);border-radius:4px}
.cita-ref{font-size:14px;color:var(--ink2);border-left:3px solid var(--line);padding-left:10px}
blockquote{margin:14px 0;padding:14px 18px;background:var(--surface);border-left:4px solid var(--blue);border-radius:0 10px 10px 0;font-family:Georgia,serif}
blockquote.b2{border-left-color:var(--gold)}
blockquote cite{display:block;margin-top:6px;font-style:normal;font-size:13px;color:var(--muted);font-family:inherit}
.recode{display:inline-block;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 16px;margin:6px 0 12px}
.recode div{display:flex;gap:8px;justify-content:center}
.recode span{min-width:70px;text-align:center;padding:4px 6px;border-radius:6px;background:var(--soft);font-weight:600}
.recode .arrow{color:var(--coral);font-size:20px}
.eq{border-collapse:collapse;width:100%;font-size:15px}
.eq th,.eq td{border-bottom:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}
.eq th{color:var(--gold)}
.checklist{border-left:5px solid var(--green)}
/* Laboratorio */
.labnav{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 6px}
.labnav a{font-size:14px;text-decoration:none;border:1.5px solid var(--line);border-radius:999px;padding:6px 12px;color:var(--ink);background:var(--surface)}
.sim{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin:18px 0}
.sim h3 .n{display:inline-flex;width:30px;height:30px;border-radius:50%;background:var(--gold);color:#fff;align-items:center;justify-content:center;font-size:16px;margin-right:6px}
.simgrid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:18px;align-items:start}
.simgrid.one{grid-template-columns:1fr}
.plot{width:100%;height:auto;background:var(--bg);border-radius:10px;border:1px solid var(--line);touch-action:manipulation}
.plot.clickable{cursor:crosshair}
.plot .ax{stroke:var(--muted);stroke-width:1}
.plot .grid{stroke:var(--line);stroke-width:1}
.plot text{fill:var(--ink2);font-size:12px;font-family:inherit}
.plot .pt{fill:var(--blue);fill-opacity:.85;stroke:var(--surface);stroke-width:2}
.plot .pt.new{fill:var(--amber);fill-opacity:1}
.plot .ln{stroke:var(--amber);stroke-width:3;stroke-linecap:round}
.plot .ln.ols{stroke:var(--green);stroke-dasharray:6 5;stroke-width:2}
.plot .res{stroke:var(--coral);stroke-width:2;opacity:.75}
.ctrl label{display:block;margin:8px 0;font-size:15px}
.ctrl label output{font-weight:700;color:var(--navy)}
.ctrl input[type=range]{width:100%;accent-color:var(--gold)}
.ctrl .chk{display:inline-flex;gap:6px;align-items:center;margin-right:14px}
.chks{display:flex;flex-wrap:wrap;gap:4px 10px;margin-bottom:8px}
.meter{margin:10px 0;font-size:14px}
.meter .bar{height:12px;background:var(--soft);border-radius:6px;overflow:hidden;margin:4px 0}
.meter .bar span{display:block;height:100%;background:var(--coral);border-radius:6px;transition:width .2s}
.meter .bar span.min{background:var(--green)}
.out{background:var(--soft);border-radius:10px;padding:10px 12px;font-size:15px;margin:10px 0 0}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.stats div{background:var(--soft);border-radius:10px;padding:8px;text-align:center}
.stats b{display:block;font-size:22px;font-family:Georgia,serif;color:var(--navy)}
.stats small{color:var(--muted)}
.formula{font:18px/1.6 Georgia,serif;background:var(--soft);border-radius:10px;padding:12px;margin:10px 0;overflow-x:auto}
.mtab{border-collapse:collapse;width:100%;font-size:15px;margin:6px 0}
.mtab th,.mtab td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:right}
.mtab th:first-child,.mtab td:first-child{text-align:left}
.mtab th{color:var(--gold);font-size:13px}
.ok{color:var(--green);font-weight:700}
.no{color:var(--coral);font-weight:700}
.r2bar{position:relative;height:16px;background:var(--soft);border-radius:8px;margin:8px 0 18px}
.r2bar span{display:block;height:100%;border-radius:8px;background:var(--blue);transition:width .3s}
.r2bar i{position:absolute;top:-4px;bottom:-4px;left:50%;border-left:2px dashed var(--coral)}
.r2bar em{position:absolute;top:18px;left:50%;transform:translateX(-50%);font-size:11px;color:var(--coral);font-style:normal;white-space:nowrap}
/* Ejercicios */
#ejLista .q{border-left:4px solid var(--blue)}
.code{background:#10141c;color:#e6e9ef;border-radius:12px;padding:16px;overflow-x:auto;font:13px/1.5 Consolas,"Courier New",monospace;white-space:pre}
.tip{position:fixed;pointer-events:none;background:var(--navy);color:var(--bg);font-size:13px;padding:6px 10px;border-radius:8px;opacity:0;transition:opacity .1s;z-index:9}
.foot{color:var(--muted);font-size:13px;padding-bottom:30px}
@media (max-width:760px){
  .disparador{grid-template-columns:1fr}
  .thumb{max-width:260px}
  .grid2,.grid3,.mapper,.simgrid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(3,1fr)}
}
