/* Diagnóstico RM · Villamedic — misma paleta del portal de Simulacros Nacionales */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;700&display=swap');

:root{
  --bg:#fbf8f3; --panel:#ffffff; --line:#ebe4da; --ink:#1b1717; --muted:#6b6560;
  --fenix:#f0521f; --fenix2:#f9861f; --negro:#1a1518; --negro2:#2a2229;
  --verde:#1d9a55; --rojo:#d93b4a; --ambar:#e0a100; --label:#e0405a;
  --chip:#f4efe7; --radio:16px;
  --sombra:0 1px 2px rgba(50,30,20,.05),0 8px 24px rgba(50,30,20,.06);
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Poppins",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.55}
h1,h2,h3,h4{margin:0 0 .35em;line-height:1.15;font-weight:800;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(26px,4vw,34px)} h2{font-size:22px} h3{font-size:17px}
p{margin:.3em 0}
a{color:var(--fenix)}
button,input,select{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.mono{font-family:var(--mono)}
.label{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--label)}
.muted{color:var(--muted)}
.small{font-size:13px}
.center{text-align:center}

/* ---- barra superior ---- */
.top{background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top .in{max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:14px}
.marca{display:flex;align-items:center;gap:8px;font-weight:800;font-size:20px;color:var(--fenix);text-decoration:none;letter-spacing:-.02em}
.marca img{height:34px;width:auto;display:block}
.marca span b{color:var(--ink)}
.top .tag{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-left:6px}
.top .quien{margin-left:auto;font-size:14px;color:var(--ink)}
@media (max-width:600px){
  .top .in{padding:10px 14px}
  .top .tag{display:none}
  .top .quien{font-size:12.5px;max-width:45%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .examtop{top:54px}
}
.wrap{max-width:1080px;margin:0 auto;padding:26px 20px 80px}

/* ---- tarjetas ---- */
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radio);padding:22px 24px;box-shadow:var(--sombra)}
.card.dark{background:var(--negro);color:#fff;border-color:transparent}
.card.dark .label{color:var(--fenix2)}
.card.dark .muted{color:#cfc6c9}
.card.dark .inner{background:var(--negro2);border-radius:12px;padding:16px 18px}
.card.dark .inner b{color:#fff}
.card.mono-num{font-family:var(--mono)}
.grid2{display:grid;grid-template-columns:1.2fr 1fr;gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:820px){.grid2,.grid3{grid-template-columns:1fr}}

/* ---- botones ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:13px 22px;font-weight:700;letter-spacing:.01em;text-decoration:none;transition:transform .08s,box-shadow .12s,filter .12s}
.btn.primary{background:linear-gradient(90deg,var(--fenix),var(--fenix2));color:#fff;box-shadow:0 8px 20px rgba(240,82,31,.25)}
.btn.primary:hover{filter:brightness(1.04);transform:translateY(-1px)}
.btn.primary:disabled{filter:grayscale(.7) opacity(.55);cursor:not-allowed;box-shadow:none;transform:none}
.btn.ghost{background:transparent;border:1.5px solid var(--line);color:var(--ink);padding:10px 16px}
.btn.ghost:hover{border-color:var(--fenix)}
.btn.ghost.act{border-color:var(--fenix);color:var(--fenix);background:rgba(240,82,31,.06)}
.btn.block{width:100%}
.btn.sm{padding:8px 12px;font-size:13px;border-radius:10px}
.btn.danger{border-color:rgba(217,59,74,.4);color:var(--rojo)}

/* ---- badges ---- */
.badge{display:inline-block;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:var(--chip);color:var(--muted)}
.badge.verde{background:var(--verde);color:#fff}
.badge.naranja{background:var(--fenix);color:#fff}
.badge.ambar{background:var(--ambar);color:#fff}
.badge.rojo{background:var(--rojo);color:#fff}
.badge.gris{background:var(--chip);color:var(--muted)}

/* ---- formularios ---- */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label{font-weight:700;font-size:13px}
.field input,.field select{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--panel);color:var(--ink);outline:none;font-size:16px;width:100%}
.field input:focus,.field select:focus{border-color:var(--fenix);box-shadow:0 0 0 3px rgba(240,82,31,.12)}
.field .ayuda{font-size:12px;color:var(--muted)}
.err{background:rgba(217,59,74,.08);border:1px solid rgba(217,59,74,.35);color:var(--rojo);border-radius:12px;padding:12px 14px;font-size:14px;margin:10px 0}
.ok-box{background:rgba(29,154,85,.08);border:1px solid rgba(29,154,85,.35);color:var(--verde);border-radius:12px;padding:12px 14px;font-size:14px;margin:10px 0}

/* ---- READY ---- */
.ready .big{font-family:var(--mono);font-size:clamp(44px,8vw,64px);font-weight:700;line-height:1;margin:6px 0 4px}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}
.fact{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
.fact .label{margin-bottom:6px}
.fact b{font-family:var(--mono);font-size:22px;display:block}
.fact span{font-size:12.5px;color:var(--muted)}
.reglas{margin:8px 0 0;padding-left:20px}
.reglas li{margin:6px 0}

/* ---- EXAMEN ---- */
.examtop{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px 16px;box-shadow:var(--sombra);position:sticky;top:62px;z-index:10}
.timer{font-family:var(--mono);font-weight:700;font-size:22px;letter-spacing:.02em}
.timer.low{color:var(--rojo);animation:pulso 1s infinite}
@keyframes pulso{50%{opacity:.55}}
.prog{font-family:var(--mono);font-size:13px;color:var(--muted)}
.saved{font-size:12px;color:var(--verde);opacity:0;transition:opacity .3s}
.saved.on{opacity:1}
.grow{flex:1}
.q{background:var(--panel);border:1px solid var(--line);border-radius:var(--radio);padding:22px 24px;box-shadow:var(--sombra);margin:16px 0}
.qhead{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.qnum{font-family:var(--mono);font-weight:700;color:var(--fenix);font-size:13px;letter-spacing:.08em}
.enun{font-size:16.5px;margin:6px 0 16px;font-weight:500}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;background:var(--bg);border:1.5px solid var(--line);border-radius:12px;padding:13px 15px;color:inherit;font-size:15px;transition:border-color .1s,background .1s}
.opt:hover{border-color:var(--fenix2)}
.opt .let{font-family:var(--mono);font-weight:700;color:var(--muted);flex:0 0 auto}
.opt.sel{border-color:var(--fenix);background:rgba(240,82,31,.07)}
.opt.sel .let{color:var(--fenix)}
.opt.ok{border-color:var(--verde);background:rgba(29,154,85,.09)}
.opt.ok .let{color:var(--verde)}
.opt.err{border-color:var(--rojo);background:rgba(217,59,74,.09)}
.opt.err .let{color:var(--rojo)}
.navrow{display:flex;gap:10px;align-items:center;margin-top:14px}
.pal{display:grid;grid-template-columns:repeat(auto-fill,minmax(36px,1fr));gap:6px;margin-top:16px}
.pcell{aspect-ratio:1;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);display:flex;align-items:center;justify-content:center}
.pcell.answered{background:rgba(249,134,31,.2);color:var(--fenix);border-color:var(--fenix2)}
.pcell.current{outline:2px solid var(--fenix);outline-offset:1px}
.pcell.pok{background:rgba(29,154,85,.2);color:var(--verde);border-color:var(--verde)}
.pcell.pbad{background:rgba(217,59,74,.2);color:var(--rojo);border-color:var(--rojo)}

/* ---- INFORME ---- */
.informe .cab{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}
.informe .datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px 18px;margin-top:10px}
.informe .datos div{font-size:13.5px}
.informe .datos .label{display:block;margin-bottom:2px}
.score{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center}
.score .num{font-family:var(--mono);font-size:clamp(56px,9vw,84px);font-weight:700;line-height:1}
.score .num small{font-size:.38em;color:var(--muted);font-weight:700}
.score .nivel{font-size:26px;font-weight:800;margin:0 0 4px}
.nivel.verde{color:var(--verde)} .nivel.naranja{color:var(--fenix)} .nivel.ambar{color:var(--ambar)} .nivel.rojo{color:var(--rojo)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:16px}
.kpi{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.kpi b{font-family:var(--mono);font-size:20px;display:block}
.kpi span{font-size:12px;color:var(--muted)}
.card.dark .kpi{background:var(--negro2);border-color:transparent}
.card.dark .kpi b{color:#fff}
.card.dark .kpi span{color:#cfc6c9}
.areas{display:grid;gap:12px;margin-top:6px}
.arow{display:grid;grid-template-columns:170px 1fr 120px;gap:12px;align-items:center;font-size:14px}
.arow .nom{font-weight:600}
.arow .nom small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}
.bar{height:12px;background:var(--chip);border-radius:999px;overflow:hidden}
.bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--fenix),var(--fenix2));transition:width .6s ease}
.bar.verde>span{background:var(--verde)} .bar.rojo>span{background:var(--rojo)} .bar.ambar>span{background:var(--ambar)}
.arow .val{font-family:var(--mono);font-size:13px;text-align:right;white-space:nowrap}
@media (max-width:640px){.arow{grid-template-columns:1fr;gap:6px}.arow .val{text-align:left}}
.lista{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.lista li{display:flex;justify-content:space-between;gap:12px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px}
.lista li b{font-family:var(--mono);font-weight:700}
.lista.deb li b{color:var(--rojo)} .lista.fue li b{color:var(--verde)}
.plan{margin:8px 0 0;padding-left:0;list-style:none;counter-reset:p}
.plan li{position:relative;padding:10px 0 10px 40px;border-top:1px dashed var(--line);counter-increment:p;font-size:14.5px}
.plan li:first-child{border-top:0}
.plan li::before{content:counter(p);position:absolute;left:0;top:9px;width:28px;height:28px;border-radius:50%;background:var(--negro);color:#fff;font-family:var(--mono);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.cursos{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px;margin-top:8px}
.curso{display:flex;justify-content:space-between;align-items:center;gap:8px;border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:13px;background:var(--panel)}
.curso b{font-family:var(--mono)}
.curso.bajo{border-color:rgba(217,59,74,.4);background:rgba(217,59,74,.05)}
.curso.alto{border-color:rgba(29,154,85,.4);background:rgba(29,154,85,.05)}
.sec{margin-top:18px}
.acciones{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.expl{margin-top:14px;border-top:1px dashed var(--line);padding-top:12px;font-size:14.5px}
.expl h4{margin:0 0 4px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--fenix)}
.pepa{background:rgba(29,154,85,.1);border-radius:10px;padding:10px 12px;font-size:14px;margin-top:10px}
.chip{font-family:var(--mono);font-size:11px;background:var(--chip);color:var(--muted);border-radius:999px;padding:3px 9px;font-weight:700}

/* ---- PANEL ---- */
table.tabla{width:100%;border-collapse:collapse;font-size:13.5px}
.tabla th,.tabla td{padding:10px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
.tabla th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);cursor:pointer;white-space:nowrap}
.tabla tr:hover td{background:rgba(240,82,31,.04)}
.tabla td.n{font-family:var(--mono);font-weight:700}
.tabla tr.fila{cursor:pointer}.tabla tr.fila.cargando td{opacity:.5}
.tabla th:first-child,.tabla td:first-child{position:sticky;left:0;background:var(--panel);z-index:1;box-shadow:2px 0 0 var(--line)}
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0}
.tools input{border:1.5px solid var(--line);border-radius:12px;padding:10px 14px;min-width:0;flex:1 1 220px;font-size:16px;outline:none}
.tools input:focus{border-color:var(--fenix)}
.scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---- impresión del informe ---- */
@media print{
  body{background:#fff;font-size:11px}
  .top,.no-print,.acciones,.filters,.sol-nav{display:none!important}
  .wrap{padding:0;max-width:none}
  .card{box-shadow:none;break-inside:avoid;page-break-inside:avoid}
  .q{display:block!important;break-inside:auto;page-break-inside:auto;box-shadow:none;border:1px solid #ddd;padding:8px 10px;margin:0 0 8px}
  .q[hidden]{display:block!important}
  .q .opt{padding:3px 8px;margin:2px 0;font-size:10.5px}
  .q .enun{font-size:11px}.q .expl p{font-size:10.5px;line-height:1.35}.q .qhead{margin-bottom:4px}
  *{animation:none!important;transition:none!important;text-shadow:none!important}
  .card.dark{background:#1a1518!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .badge,.bar>span,.plan li::before,.opt.ok,.opt.err,.pepa{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* ---- ENTRADA (nuevo / ya tengo ficha) ---- */
.tabs{display:flex;gap:6px;background:var(--chip);border-radius:12px;padding:4px;margin-bottom:16px}
.tabs button{flex:1;border:0;background:transparent;border-radius:9px;padding:9px 10px;font-weight:700;color:var(--muted)}
.tabs button.act{background:var(--panel);color:var(--ink);box-shadow:var(--sombra)}

/* ---- PORTAL DEL ALUMNO ---- */
.portal-cab{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}
.cta{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center}
@media (max-width:640px){.cta,.portal-cab{grid-template-columns:1fr}}
.cta .btn{white-space:nowrap}
.cortes{display:grid;gap:10px;margin-top:10px}
.corte{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--bg)}
.corte .n{font-family:var(--mono);font-weight:700;font-size:22px;width:44px;height:44px;border-radius:50%;background:var(--negro);color:#fff;display:flex;align-items:center;justify-content:center}
.corte.bloq .n{background:var(--chip);color:var(--muted)}
.corte .meta{font-size:13px;color:var(--muted)}
.corte .pct{font-family:var(--mono);font-weight:700;font-size:18px;text-align:right}
.delta{font-family:var(--mono);font-size:12px;font-weight:700;padding:2px 6px;border-radius:6px}
.delta.up{color:var(--verde);background:rgba(29,154,85,.12)} .delta.down{color:var(--rojo);background:rgba(217,59,74,.12)} .delta.flat{color:var(--muted);background:var(--chip)}

/* ---- gráfica de progreso ---- */
.gwrap{width:100%;overflow-x:auto;margin-top:6px}
.gprog{width:100%;height:auto;min-width:420px;display:block;font-family:var(--mono)}
.gprog .gtxt{font-size:11px;fill:var(--muted);font-weight:700}
.gprog .gsub{font-size:10px;font-weight:500}
.gprog .gfut{fill:#c9c0b6}
.gprog .gband{font-size:10px;fill:#a39a90;font-weight:500}
.gprog .gval{font-size:13px;font-weight:700;fill:var(--ink)}
.tabla-areas{display:grid;gap:10px;margin-top:6px}
.trow{display:grid;grid-template-columns:170px 1fr 150px;gap:12px;align-items:center;font-size:14px}
.trow .nom{font-weight:600}.trow .nom small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}
.trow .val{font-family:var(--mono);font-size:13px;text-align:right;white-space:nowrap}
@media (max-width:640px){.trow{grid-template-columns:1fr 1fr}.trow .nom{grid-column:1/-1}.trow .val{text-align:right}}
.spark{display:flex;gap:6px;align-items:flex-end;height:44px}
.spark i{flex:1;max-width:48px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--fenix2),var(--fenix));display:block}
.spark i.verde{background:var(--verde)} .spark i.rojo{background:var(--rojo)} .spark i.ambar{background:var(--ambar)}
.spark i.fut{height:100%;background:repeating-linear-gradient(135deg,#efe9e0 0 4px,transparent 4px 8px);border:1px dashed var(--line);border-radius:5px}
.vlist{display:grid;gap:9px;margin-top:8px}
.vrow{display:grid;grid-template-columns:1fr 110px 90px;gap:10px;align-items:center;font-size:13.5px}
@media (max-width:640px){.vrow{grid-template-columns:1fr 84px;gap:4px 10px}.vrow .nom{grid-column:1/-1}.corte{grid-template-columns:auto 1fr}.corte>div:last-child{grid-column:1/-1;justify-content:flex-end}}
.vrow .nom{font-weight:600;line-height:1.25}.vrow .nom small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:500}
.vrow .val{font-family:var(--mono);font-size:12.5px;text-align:right;white-space:nowrap}
.vrow .bar{height:9px}
.temas{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin-top:8px}
.tema{display:flex;align-items:center;gap:8px;border:1px solid rgba(217,59,74,.35);background:rgba(217,59,74,.05);border-radius:10px;padding:8px 12px;font-size:13px}
.tema .tnom{flex:1;font-weight:600}.tema b{font-family:var(--mono)}.tema b.rojo{color:var(--rojo)}

/* ---- estado de sincronización en el examen ---- */
.sync{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.04em;padding:5px 10px;border-radius:999px;background:var(--chip);color:var(--muted)}
.sync.nube{color:var(--verde);background:rgba(29,154,85,.12)}
.sync.pend{color:var(--ambar);background:rgba(224,161,0,.14)}
.sync.off{color:var(--rojo);background:rgba(217,59,74,.12)}
.aviso-off{background:rgba(224,161,0,.12);border:1px solid rgba(224,161,0,.45);color:#7a5a00;border-radius:12px;padding:10px 14px;font-size:13.5px;margin:12px 0}
.navrow .btn.primary{padding:10px 18px}
.tabs-cortes{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}

/* ---- currículum / proyección RM ---- */

.cvcard h2{margin:6px 0 8px}
.cvbig{font-family:var(--mono);font-size:1.6em;color:var(--fenix);font-weight:700}
.cvcard.verde .cvbig{color:var(--verde)}
.cvkpis{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:14px}
.cvkpis .kpi{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.cvkpis .kpi .v{font-family:var(--mono);font-size:22px;font-weight:700;margin:2px 0}
.cvkpis .kpi .s{font-size:11px;color:var(--muted);line-height:1.3}
@media (max-width:900px){.cvkpis{grid-template-columns:repeat(3,1fr)}}
@media (max-width:520px){.cvkpis{grid-template-columns:repeat(2,1fr)}}
.aviso-cv{margin-top:12px;background:#fff4e8;border:1px solid #f7cfae;color:#8a3d0a;border-radius:10px;padding:10px 12px;font-size:13px}
details.sedes{margin-top:12px;border:1px solid var(--line);border-radius:12px;padding:10px 14px}
details.sedes summary{cursor:pointer;font-size:14px}
.sedes-region{margin-top:10px}
.sede{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:13px}
.sede:last-child{border-bottom:0}
.sede b{font-family:var(--mono)}

/* Termómetro de especialidades */
.termo h3{margin:6px 0 4px;font-size:20px}.termo h3 b.ok{color:var(--verde)}.termo h3 b.no{color:var(--fenix)}
.termo-lista{display:flex;flex-direction:column;gap:3px;margin-top:8px}
.termo-fila,.termo-esc{display:grid;grid-template-columns:170px 1fr 92px;gap:10px;align-items:center;width:100%;text-align:left;background:none;border:0;padding:3px 6px;border-radius:8px;font:inherit;color:inherit;cursor:pointer}
.termo-fila:disabled{cursor:default}.termo-fila:not(:disabled):hover{background:var(--bg)}
.termo-fila.elegida{background:var(--bg);outline:2px solid var(--negro);outline-offset:-2px}
.termo-nom{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.termo-fila.elegida .termo-nom{font-weight:700}
.termo-bar{position:relative;display:block;height:14px;background:var(--chip);border-radius:7px}
.termo-corte{position:absolute;left:0;top:0;bottom:0;width:var(--c);border-radius:7px;background:var(--rojo);opacity:.55}
.termo-fila.ok .termo-corte{background:var(--verde);opacity:.85}.termo-fila.t5 .termo-corte{background:var(--ambar);opacity:.9}.termo-fila.t10 .termo-corte{background:var(--fenix);opacity:.85}.termo-fila.sc .termo-corte{background:var(--muted);opacity:.35}
.termo-bar em{position:absolute;left:calc(var(--c) + 6px);top:-1px;font-style:normal;font-family:var(--mono);font-size:10px;color:var(--muted)}
.termo-lista .termo-bar::after{content:"";position:absolute;left:var(--t);top:-5px;bottom:-5px;width:2px;background:var(--negro);border-radius:1px}
.termo-dif{font-family:var(--mono);font-size:12px;font-weight:700;text-align:right;white-space:nowrap}.termo-fila.ok .termo-dif{color:var(--verde)}.termo-fila.no .termo-dif{color:var(--rojo)}.termo-fila.t5 .termo-dif{color:var(--ambar)}.termo-fila.t10 .termo-dif{color:var(--fenix)}.termo-fila.sc .termo-dif{color:var(--muted)}
.termo-esc{cursor:default;margin-top:10px}.termo-esc .termo-bar{background:none;height:14px}.termo-esc .termo-bar i{position:absolute;top:0;transform:translateX(-50%);font-style:normal;font-family:var(--mono);font-size:10px;color:var(--muted)}
.termo-fila.sc .termo-dif{color:var(--verde)}
@media (max-width:640px){.termo-fila,.termo-esc{grid-template-columns:1fr auto;gap:2px 8px;padding:5px 6px}.termo-fila .termo-bar,.termo-esc .termo-bar{grid-column:1/-1;grid-row:2;height:12px}.termo-nom{grid-row:1;grid-column:1}.termo-dif{grid-row:1;grid-column:2}.termo-esc span:first-child,.termo-esc span:last-child{display:none}.termo-nom{font-size:13px;white-space:normal}.termo-dif{font-size:12px}.termo-bar em{top:-2px}.termo-lista{gap:1px}}

/* Plan para cerrar la brecha */
.plan-brecha h3{margin:6px 0 4px;font-size:19px}.plan-brecha h3 b{color:var(--fenix)}
.paso-lista{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.paso-area{display:grid;grid-template-columns:230px 1fr 110px;gap:10px;align-items:center}
.paso-nom{font-size:13px}.paso-bar{position:relative;display:block;height:14px;background:var(--chip);border-radius:7px;overflow:hidden}
.paso-bar i{position:absolute;left:0;top:0;bottom:0;width:var(--a);background:var(--fenix);opacity:.9;border-radius:7px}
.paso-bar i::before{content:"";position:absolute;left:0;top:0;bottom:0;width:calc(var(--de) / var(--a) * 100%);background:var(--verde)}
.paso-dif{font-family:var(--mono);font-size:12px;text-align:right;white-space:nowrap}.paso-dif b{color:var(--fenix);font-size:15px}
.paso-cursos{display:flex;flex-wrap:wrap;gap:6px}.paso-cursos .chip{background:var(--chip);border-radius:999px;padding:5px 10px;font-size:12px}.paso-cursos .chip b{color:var(--rojo)}
@media (max-width:640px){.paso-area{grid-template-columns:1fr auto;gap:2px 8px}.paso-area .paso-bar{grid-column:1/-1;grid-row:2}.paso-nom{grid-row:1;grid-column:1}.paso-dif{grid-row:1;grid-column:2}}

/* ---- UX: carga global, avisos, foco y áreas táctiles ---- */
body.busy{cursor:progress}
body.busy::before{content:"";position:fixed;left:0;top:0;height:3px;width:100%;z-index:100;background:linear-gradient(90deg,var(--fenix),var(--fenix2),var(--fenix));background-size:200% 100%;animation:carga 1s linear infinite}
@keyframes carga{to{background-position:-200% 0}}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);max-width:min(92vw,520px);padding:12px 16px;border-radius:12px;font-size:14px;font-weight:600;box-shadow:0 10px 30px rgba(0,0,0,.18);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:110;background:var(--negro);color:#fff}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--rojo)}.toast.ok{background:var(--verde)}.toast.aviso{background:var(--ambar);color:#1a1518}
:is(button,a,summary,[tabindex]):focus-visible{outline:3px solid var(--fenix);outline-offset:2px}
.opt:focus-visible,.pcell:focus-visible{outline:3px solid var(--fenix);outline-offset:1px}
@media (pointer:coarse){
  .btn.sm{min-height:44px;padding:10px 14px}
  .pal{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}
  .pcell{min-height:44px;font-size:13px}
  .opt{padding:14px 15px}
  .btn.primary:hover{transform:none}
}
@media (max-width:640px){
  .navrow{flex-wrap:wrap}
  .navrow #btnPend{order:3;width:100%;justify-content:center}
  .examtop{gap:8px;padding:8px 10px;flex-wrap:nowrap}
  .timer{font-size:18px}
  .examtop .prog{font-size:12px}
  .examtop .sync{font-size:11px;padding:4px 8px}
  .examtop #btnFinish{padding:8px 11px;font-size:13px;white-space:nowrap}
}
@media (min-width:641px) and (max-width:820px){.wrap{padding:20px 16px 70px}}

/* Regla del único intento, en rojo para que no pase desapercibida */
.regla-roja{color:var(--rojo);font-weight:700;background:rgba(220,53,69,.08);padding:8px 12px;margin:6px 0 6px -14px;list-style:none;border-radius:10px}
.regla-roja b{text-decoration:underline}
#btnNext.entregar{min-width:200px}

/* Solucionario: una pregunta por vez */
.sol-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0}
.sol-pos{font-family:var(--mono);font-size:13px;color:var(--muted)}.sol-pos b{color:var(--ink);font-size:16px}

.aviso-cv.verde{background:rgba(31,143,86,.1);border-color:var(--verde);color:var(--ink)}

/* Cómo rindió el Perú */
.pais-hist{display:flex;align-items:flex-end;gap:2px;height:130px;margin:14px 0 4px;padding:0 2px;border-bottom:1px solid var(--line)}
.pais-hist .b{flex:1;background:#d9d2c7;border-radius:3px 3px 0 0;min-width:3px;transition:height .4s}
.pais-hist .b.med{background:var(--negro)}.pais-hist .b.top{background:var(--fenix2)}
.pais-hist .b.yo{background:var(--fenix);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--fenix);position:relative}
.pais-hist .b.yo::after{content:"tú";position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:11px;font-weight:700;color:var(--fenix)}
.pais-ejes{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:12px}
.pais-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:6px}
.pais-bloque{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.pais-bloque h3,.pais-obj h3{font-size:14px;margin:0 0 6px}.pais-bloque p{margin:0;font-size:13.5px}
.pais-metas{width:100%;border-collapse:collapse;font-size:13.5px}.pais-metas th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:2px 0 6px}
.pais-metas td{padding:5px 0;border-top:1px solid var(--line)}.pais-metas .num{text-align:right;font-family:var(--mono)}.pais-metas tr.ok td{color:var(--verde)}
.pais-obj{margin-top:14px;background:rgba(240,82,31,.06);border-radius:12px;padding:12px 16px}
.pais-obj ul{margin:0;padding-left:18px}.pais-obj li{margin:4px 0;font-size:14px}
@media (max-width:760px){.pais-grid{grid-template-columns:1fr}.pais-hist{height:100px}.pais-hist .b.yo::after{font-size:10px}}
/* Horas de estudio */
.horas-form{display:flex;flex-wrap:wrap;align-items:end;gap:10px;margin:10px 0 14px}
.horas-form label{font-size:12px;color:var(--muted);display:block;margin-bottom:4px}
.horas-form input{padding:10px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff;width:150px}
.horas-form #hHoras{width:100px}
.horas-graf{display:flex;align-items:flex-end;gap:6px;height:110px;padding-top:16px}
.horas-graf .hb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}
.horas-graf .bar{width:100%;max-width:34px;background:var(--fenix);border-radius:6px 6px 0 0}.horas-graf .bar.vacio{background:var(--line)}
.horas-graf span{font-family:var(--mono);font-size:10px;color:var(--muted);margin-top:4px}.horas-graf b{position:absolute;top:-2px;font-family:var(--mono);font-size:11px}
.horas-res{margin-top:8px}
@media (max-width:640px){.horas-graf span{font-size:9px}.horas-form input{width:130px}}

/* El cerebro del Dr. Manolo + Pídele a Rambo */
.manolo{margin-top:14px;background:linear-gradient(135deg,rgba(240,82,31,.10),rgba(249,134,31,.14));border:1px solid rgba(240,82,31,.25);border-radius:12px;padding:12px 14px;font-size:14.5px;line-height:1.45}
.manolo-card{display:flex;align-items:center;gap:18px;background:linear-gradient(135deg,#1a1518,#2a2229);color:#fff;border:0}
.manolo-card .label{color:var(--fenix2)}.manolo-card p{margin:6px 0;font-size:15.5px;line-height:1.45}.manolo-card .muted{color:#cfc6bd}
.manolo-txt{flex:1;min-width:0}
.btn.rambo{background:linear-gradient(135deg,var(--fenix),var(--fenix2));color:#fff;font-weight:800;font-size:18px;padding:16px 24px;border-radius:14px;border:0;box-shadow:0 8px 24px rgba(240,82,31,.35);white-space:nowrap;min-height:56px}
.btn.rambo:hover{transform:translateY(-1px);box-shadow:0 10px 28px rgba(240,82,31,.45)}

.rambo-modal{position:fixed;inset:0;z-index:70;background:rgba(26,21,24,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.rambo-modal.hidden{display:none}
.rambo-box{width:100%;max-width:560px;margin:0}
.rambo-box textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid var(--line);border-radius:12px;font:inherit;font-size:15px;resize:vertical;min-height:120px}
.rambo-acc{display:flex;align-items:center;gap:10px;margin-top:10px}
@media (max-width:640px){.manolo-card{flex-direction:column;align-items:stretch}.btn.rambo{width:100%}}

/* ---- Fenixito Rambo: tutor flotante ---- */
.manolo-fenix{width:92px;height:128px;object-fit:contain;flex:none;filter:drop-shadow(0 8px 16px rgba(240,82,31,.5))}
.lnk{background:none;border:0;padding:0;color:var(--fenix2);font:inherit;font-weight:800;cursor:pointer;text-decoration:underline}
.sem-cab{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sem-cab h2{margin:0}
.sem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-top:14px}
.sem-item{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.sem-plat{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--label)}
.sem-num{margin:6px 0 8px}.sem-num b{font-family:var(--mono);font-size:26px}.sem-num span{font-size:12px;color:var(--muted);margin-left:6px}
.sem-bar{height:8px;background:var(--line);border-radius:6px;overflow:hidden;margin-bottom:8px}.sem-bar div{height:100%;border-radius:6px;background:var(--fenix)}.sem-bar .ok{background:var(--verde)}.sem-bar .medio{background:#d99a00}
.aviso-form{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:start;margin-top:14px}.aviso-form>label{padding-top:9px;font-weight:700;font-size:14px}
.aviso-form>.aviso-filtro,.aviso-form>.tools{grid-column:2}.aviso-form>.tools{margin:0}
.aviso-form input:not([type=radio]):not([type=checkbox]),.aviso-form textarea,.aviso-form select{font:inherit;font-size:14px;padding:9px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fff;width:100%;box-sizing:border-box}.aviso-form textarea{resize:vertical;min-height:110px}
.aviso-form input:focus,.aviso-form textarea:focus,.aviso-form select:focus{outline:none;border-color:var(--fenix)}
.aviso-para{display:flex;flex-wrap:wrap;gap:6px 16px;padding-top:9px}.chk{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.chk input{accent-color:var(--fenix)}
.aviso-filtro{display:grid;gap:8px}.aviso-filtro select{max-width:320px}
.aviso-lista{display:grid;gap:10px;margin-top:12px}
.aviso{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:#fff;transition:border-color .2s}.aviso+.aviso{margin-top:8px}
.aviso.nuevo{border-color:var(--fenix);box-shadow:0 0 0 3px rgba(240,82,31,.08);cursor:pointer}.aviso.nuevo h3::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--fenix);margin-right:8px;vertical-align:middle}
.aviso h3{margin:4px 0 6px;font-size:16px}.aviso p{margin:0 0 8px;line-height:1.5}.aviso-meta{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em}
.selAl{width:16px;height:16px;accent-color:var(--fenix);cursor:pointer}
.grid3-form{display:grid;grid-template-columns:repeat(3,1fr);gap:0 12px;margin-top:12px}.grid3-form .err,.grid3-form button{grid-column:1/-1;justify-self:start}
@media (max-width:700px){.grid3-form{grid-template-columns:1fr}}
.sem-form{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center;margin-top:12px}.sem-form button{grid-column:2;justify-self:start}
.sel-tutor{font:inherit;font-size:14px;padding:4px 8px;border:1px solid var(--line);border-radius:8px;background:#fff;max-width:100%}
.fenix-wrap{position:fixed;right:14px;bottom:14px;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
.fenix-acts{display:flex;flex-direction:column;gap:7px;align-items:flex-end;opacity:0;pointer-events:none;transform:translateY(8px);transition:.18s}
.fenix-wrap.abierto .fenix-acts{opacity:1;pointer-events:auto;transform:none}
.fenix-act{display:flex;align-items:center;gap:8px;font:inherit;font-size:13.5px;font-weight:800;color:var(--negro);background:#fff;border:1.5px solid var(--line);border-radius:999px;padding:10px 14px;box-shadow:0 6px 18px rgba(26,21,24,.14);cursor:pointer;white-space:nowrap}
.fenix-act:hover{border-color:var(--fenix);transform:translateX(-2px)}
.fenix-act.fuego{background:linear-gradient(135deg,var(--fenix),var(--fenix2));color:#fff;border-color:transparent}
.fenix-fab{position:relative;width:84px;height:116px;border:0;background:transparent;padding:0;cursor:pointer;animation:fenixLatido 2.6s ease-in-out infinite}
.fenix-fab img{width:100%;height:100%;object-fit:contain;display:block;filter:drop-shadow(0 8px 14px rgba(240,82,31,.45))}
.fenix-fab:hover{animation-play-state:paused;transform:scale(1.06)}
.fenix-tag{position:absolute;right:86px;top:50%;transform:translateY(-50%);background:var(--negro);color:#fff;font-weight:800;font-size:13px;line-height:1.15;padding:8px 12px;border-radius:12px;white-space:nowrap;text-align:left;display:flex;flex-direction:column;box-shadow:0 6px 18px rgba(26,21,24,.25)}
.fenix-tag small{font-weight:600;color:#f9c9a8;font-size:11px}
.fenix-tag::after{content:"";position:absolute;right:-7px;top:50%;margin-top:-6px;border:6px solid transparent;border-left-color:var(--negro);border-right:0}
.fenix-wrap.abierto .fenix-tag{display:none}
@keyframes fenixLatido{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.fenix-mini{position:fixed;right:0;bottom:22px;z-index:60;width:44px;height:44px;border-radius:50% 0 0 50%;border:2px solid var(--fenix);border-right:0;background:#fff;padding:4px;cursor:pointer;box-shadow:0 6px 18px rgba(240,82,31,.3)}
.fenix-mini img{width:100%;height:100%;object-fit:contain}
.tutor-panel{position:fixed;right:14px;bottom:104px;z-index:65;width:min(400px,calc(100vw - 28px));height:min(600px,calc(100vh - 130px));display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 18px 50px rgba(26,21,24,.28);overflow:hidden}
.tutor-panel.hidden{display:none}
.tutor-head{display:flex;align-items:center;gap:10px;padding:10px 12px;background:linear-gradient(135deg,var(--negro),var(--negro2));color:#fff}
.tutor-head img{width:46px;height:46px;object-fit:contain;flex:none;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.tutor-quien{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.2}.tutor-quien b{font-size:16px}.tutor-quien span{font-size:12px;color:#cfc6bd}
.tutor-x{background:rgba(255,255,255,.12);border:0;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:15px}
.tutor-msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#faf7f3}
.bur{max-width:88%;padding:9px 12px;border-radius:14px;font-size:14.5px;line-height:1.45;word-wrap:break-word}
.bur p{margin:0}.bur p+p,.bur ul+p,.bur p+ul{margin-top:6px}.bur ul{margin:0;padding-left:18px}
.bur.yo{align-self:flex-end;background:linear-gradient(135deg,var(--fenix),var(--fenix2));color:#fff;border-bottom-right-radius:4px}
.bur.fenix{align-self:flex-start;background:#fff;border:1px solid var(--line);border-bottom-left-radius:4px}
.bur.err{border-color:#e0a4a4;background:#fff5f5}
.bur.escribiendo{display:flex;gap:4px;padding:12px 14px}.bur.escribiendo span{width:7px;height:7px;border-radius:50%;background:var(--fenix2);animation:pt 1s infinite}.bur.escribiendo span:nth-child(2){animation-delay:.15s}.bur.escribiendo span:nth-child(3){animation-delay:.3s}
@keyframes pt{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.tutor-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 10px 0;scrollbar-width:none}.tutor-chips.hidden{display:none}
.chip{flex:none;font:inherit;font-size:12.5px;font-weight:700;background:#fff;border:1px solid var(--fenix2);color:var(--fenix);border-radius:999px;padding:6px 11px;cursor:pointer}.chip:hover{background:#fff1e8}
.tutor-form{display:flex;gap:8px;padding:10px;align-items:flex-end}
.tutor-form textarea{flex:1;resize:none;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;max-height:120px;line-height:1.35}
.tutor-env{width:46px;height:44px;padding:0;border-radius:14px;font-size:18px;flex:none}
.tutor-pie{font-size:11.5px;color:var(--muted,#7a6f68);padding:0 12px 10px;text-align:center}
@media (max-width:640px){
  .manolo-fenix{width:66px;height:92px;align-self:center}
  .fenix-tag{display:none}.fenix-fab{width:66px;height:92px}
  .tutor-panel{right:0;bottom:0;width:100vw;height:100dvh;border-radius:0;border:0}
}
