/* ===========================================================
   EVALUACIÓN REISA · estilos.css
   =========================================================== */
:root{
  --azul:#2E5395;          /* azul corporativo del documento REISA */
  --azul2:#3B5BFF;
  --azul-d:#1F3864;
  --sol:#F5A623;           /* acento solar */
  --sol-d:#D97706;
  --ok:#16A34A; --ok-bg:#DCFCE7;
  --warn:#D97706; --warn-bg:#FEF3C7;
  --err:#DC2626; --err-bg:#FEE2E2;
  --crit:#B91C1C;
  --bg:#EEF2F8; --card:#FFFFFF;
  --text:#111827; --t2:#475569; --t3:#64748B;
  --border:#E2E8F0; --s2:#F1F5F9;
  --shadow:0 10px 30px rgba(31,56,100,.10);
  --shadow-sm:0 2px 8px rgba(31,56,100,.08);
  --rad:16px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Segoe UI',system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(1200px 600px at 100% -10%, rgba(245,166,35,.10), transparent 60%),
    radial-gradient(1000px 500px at -10% 110%, rgba(46,83,149,.12), transparent 55%),
    var(--bg);
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:880px;margin:0 auto;padding:24px 18px 60px}

/* ---- Encabezado ---- */
.topbar{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.logo{
  width:52px;height:52px;border-radius:14px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--azul),var(--azul2));
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm);
}
.logo svg{width:30px;height:30px}
.logo-img{height:50px;width:auto;display:block;flex:0 0 auto}
.brand{padding-left:14px;border-left:2px solid var(--border)}
.brand h1{font-size:16px;margin:0;letter-spacing:.2px;color:var(--azul-d);font-weight:800}
.brand p{font-size:12.5px;color:var(--t3);margin:2px 0 0}
@media(max-width:560px){ .logo-img{height:40px} .brand h1{font-size:14px} .brand p{font-size:11.5px} }

/* ---- Tarjetas ---- */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--rad);box-shadow:var(--shadow);padding:26px}
.card+.card{margin-top:18px}
.screen{display:none;animation:fade .35s ease}
.screen.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ---- Hero inicio ---- */
.hero{
  background:linear-gradient(135deg,var(--azul-d),var(--azul));color:#fff;
  border:none;position:relative;overflow:hidden
}
.hero::after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%, rgba(245,166,35,.55), rgba(245,166,35,0) 70%)}
.hero h2{margin:0 0 6px;font-size:26px;position:relative}
.hero p{margin:0;color:#dbe6ff;font-size:14.5px;max-width:560px;position:relative}
.hero .chips{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap;position:relative}
.chip{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.22);color:#fff;
  padding:7px 12px;border-radius:999px;font-size:12.5px;display:flex;align-items:center;gap:6px}
.hero-logo{position:absolute;top:20px;right:24px;width:140px;opacity:.95;z-index:1;pointer-events:none}
@media(max-width:600px){ .hero-logo{display:none} }

/* ---- Formularios ---- */
.field{margin-bottom:16px}
.field label{display:block;font-size:13px;font-weight:600;color:var(--t2);margin-bottom:7px}
.field .hint{font-weight:400;color:var(--t3);font-size:12px}
input[type=text],input[type=password],select{
  width:100%;padding:13px 14px;border:1.5px solid var(--border);border-radius:12px;font-size:15px;
  background:#fff;color:var(--text);transition:border-color .15s, box-shadow .15s;font-family:inherit
}
input:focus,select:focus{outline:none;border-color:var(--azul2);box-shadow:0 0 0 4px rgba(59,91,255,.12)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.row2{grid-template-columns:1fr}}

/* ---- Botones ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;border:none;
  font-size:15px;font-weight:600;padding:13px 22px;border-radius:12px;font-family:inherit;transition:transform .08s, filter .15s, background .15s}
.btn:active{transform:translateY(1px)}
.btn-pri{background:linear-gradient(135deg,var(--azul),var(--azul2));color:#fff;box-shadow:var(--shadow-sm)}
.btn-pri:hover{filter:brightness(1.06)}
.btn-sol{background:linear-gradient(135deg,var(--sol),var(--sol-d));color:#fff}
.btn-ghost{background:var(--s2);color:var(--t2)}
.btn-ghost:hover{background:#e7edf5}
.btn-block{width:100%}
.btn-lg{padding:16px 26px;font-size:16px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.linkbtns{display:flex;gap:18px;justify-content:center;margin-top:18px;flex-wrap:wrap}
.linkbtn{background:none;border:none;color:var(--azul2);font-size:13.5px;cursor:pointer;text-decoration:underline;font-family:inherit}
.linkbtn:hover{color:var(--azul-d)}

/* ---- Examen ---- */
.exam-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:10px;flex-wrap:wrap}
.badge{font-size:11.5px;font-weight:700;padding:5px 11px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}
.badge-eje{background:var(--s2);color:var(--azul)}
.badge-crit{background:var(--err-bg);color:var(--crit);display:inline-flex;gap:5px;align-items:center}
.counter{font-size:13px;color:var(--t3);font-weight:600}
.progress{height:9px;background:var(--s2);border-radius:999px;overflow:hidden;margin-bottom:22px}
.progress>span{display:block;height:100%;background:linear-gradient(90deg,var(--azul2),var(--sol));border-radius:999px;transition:width .35s ease;width:0}
.q-text{font-size:19px;font-weight:600;line-height:1.4;margin:4px 0 14px}
.q-ej{background:linear-gradient(0deg,#fffaf0,#fffaf0);border:1px solid #fde9c2;border-left:4px solid var(--sol);
  padding:11px 14px;border-radius:10px;font-size:14px;color:#7c5a14;margin-bottom:18px;display:flex;gap:9px}
.q-ej svg{flex:0 0 auto;margin-top:1px}
.opts{display:flex;flex-direction:column;gap:11px}
.opt{display:flex;align-items:flex-start;gap:13px;border:1.5px solid var(--border);border-radius:13px;padding:15px 16px;
  cursor:pointer;transition:border-color .12s, background .12s, box-shadow .12s;background:#fff}
.opt:hover{border-color:var(--azul2);background:#f8faff}
.opt.sel{border-color:var(--azul2);background:#eef3ff;box-shadow:0 0 0 3px rgba(59,91,255,.10)}
.opt .mk{width:26px;height:26px;border-radius:50%;border:2px solid var(--border);flex:0 0 auto;display:flex;
  align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--t3);transition:all .12s}
.opt.sel .mk{background:var(--azul2);border-color:var(--azul2);color:#fff}
.opt .txt{font-size:15px;line-height:1.4;padding-top:2px}
/* revisión de respuestas */
.opt.good{border-color:var(--ok);background:var(--ok-bg)}
.opt.good .mk{background:var(--ok);border-color:var(--ok);color:#fff}
.opt.bad{border-color:var(--err);background:var(--err-bg)}
.opt.bad .mk{background:var(--err);border-color:var(--err);color:#fff}
.fb{margin-top:12px;font-size:13.5px;color:var(--t2);background:var(--s2);border-radius:10px;padding:11px 13px}
.fb b{color:var(--text)}

/* ---- Rúbrica ---- */
.rub-comp{border:1px solid var(--border);border-radius:13px;padding:16px;margin-bottom:14px}
.rub-comp h4{margin:0 0 3px;font-size:15.5px}
.rub-comp .obs{font-size:13px;color:var(--t3);margin:0 0 12px}
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media(max-width:560px){.levels{grid-template-columns:repeat(2,1fr)}}
.lvl{border:1.5px solid var(--border);border-radius:10px;padding:10px 8px;text-align:center;cursor:pointer;transition:all .12s;background:#fff}
.lvl:hover{border-color:var(--azul2)}
.lvl.sel{border-color:var(--azul2);background:#eef3ff}
.lvl .n{font-size:20px;font-weight:800;color:var(--azul)}
.lvl .t{font-size:11.5px;color:var(--t2);font-weight:600;margin-top:2px}
.lvl .d{font-size:10.5px;color:var(--t3);margin-top:3px;line-height:1.25}

/* ---- Resultado ---- */
.result-head{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.ring{position:relative;width:150px;height:150px;flex:0 0 auto}
.ring svg{transform:rotate(-90deg)}
.ring .val{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .val b{font-size:34px;line-height:1}
.ring .val span{font-size:11px;color:var(--t3);margin-top:3px;text-transform:uppercase;letter-spacing:.5px}
.verdict{flex:1;min-width:220px}
.verdict .tag{display:inline-flex;align-items:center;gap:8px;font-size:15px;font-weight:800;padding:9px 16px;border-radius:999px}
.tag-ok{background:var(--ok-bg);color:var(--ok)}
.tag-no{background:var(--err-bg);color:var(--err)}
.verdict h2{margin:12px 0 4px;font-size:22px}
.verdict p{margin:0;color:var(--t2);font-size:14px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}
@media(max-width:560px){.kpis{grid-template-columns:1fr}}
.kpi{background:var(--s2);border-radius:12px;padding:14px}
.kpi .l{font-size:11.5px;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;font-weight:600}
.kpi .v{font-size:23px;font-weight:800;margin-top:3px}
.section-lbl{font-size:12px;font-weight:700;color:var(--t2);text-transform:uppercase;letter-spacing:.6px;margin:24px 0 12px}
.ejebar{margin-bottom:12px}
.ejebar .top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.ejebar .top .nm{color:var(--t2);font-weight:600}
.ejebar .top .sc{color:var(--t3);font-weight:600}
.ejebar .track{height:8px;background:var(--s2);border-radius:999px;overflow:hidden}
.ejebar .fill{height:100%;border-radius:999px;transition:width .5s}
.crit-note{border-radius:12px;padding:14px 16px;margin-top:18px;font-size:14px;display:flex;gap:10px;align-items:flex-start}
.crit-note.ok{background:var(--ok-bg);color:#14532d}
.crit-note.no{background:var(--err-bg);color:#7f1d1d}
.banner{border-radius:12px;padding:13px 16px;font-size:13.5px;margin-top:16px}
.banner-info{background:#eff6ff;color:#1e40af;border:1px solid #dbeafe}
.banner-warn{background:var(--warn-bg);color:#7c2d12;border:1px solid #fde9c2}

/* ---- Tabla admin ---- */
.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px;margin-top:14px}
table{border-collapse:collapse;width:100%;min-width:680px;font-size:13px}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
th{background:var(--s2);color:var(--t2);font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.3px}
tr:last-child td{border-bottom:none}
.pill{font-size:11px;font-weight:700;padding:3px 9px;border-radius:999px}
.pill-ok{background:var(--ok-bg);color:var(--ok)}
.pill-no{background:var(--err-bg);color:var(--err)}
.pill-wait{background:var(--warn-bg);color:var(--warn)}
.muted{color:var(--t3);font-size:13px}

/* ---- Toast ---- */
#toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;
  background:#0f172a;color:#fff;padding:13px 20px;border-radius:12px;font-size:14px;box-shadow:0 12px 30px rgba(0,0,0,.25);
  transition:all .25s;z-index:9999;max-width:90vw}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---- Misc ---- */
.center{text-align:center}
.mt{margin-top:18px}
.divider{height:1px;background:var(--border);margin:22px 0}
.foot{text-align:center;color:var(--t3);font-size:12px;margin-top:30px;line-height:1.6}

/* ---- Impresión (PDF) ---- */
@media print{
  body{background:#fff}
  .wrap{max-width:100%}
  .no-print,.linkbtns,.btn-row,#toast{display:none!important}
  .card{box-shadow:none;border:1px solid #ccc;break-inside:avoid}
  .screen{display:none!important}
  .screen.print-on{display:block!important}
}
