:root{
  --marino:#123c6e; --medio:#1f6fb2; --dorado:#b8860b;
  --bg:#f5f7fa; --card:#fff; --border:#dce3ec;
  --verde:#2e8b57; --verde-bg:#e6f5ea;
  --rojo:#c0392b; --rojo-bg:#fdeaea;
  --temario-bg:#eef4fb;
}
*{box-sizing:border-box;}
body{font-family:"Segoe UI",Calibri,Arial,sans-serif;margin:0;background:var(--bg);color:#1a1a1a;line-height:1.4;}
.topbar{display:flex;justify-content:space-between;align-items:center;background:var(--marino);color:#fff;padding:12px 20px;flex-wrap:wrap;gap:8px;}
.topbar .brand{color:#fff;font-weight:700;text-decoration:none;font-size:1.1em;}
.topbar nav a{color:#dce8f7;text-decoration:none;margin-left:18px;font-size:.95em;}
.topbar nav a:hover{color:#fff;text-decoration:underline;}
.wrap{max-width:900px;margin:0 auto;padding:20px 16px 60px;}
h1{color:var(--marino);font-size:1.5em;margin-top:0;}
h2{color:var(--marino);font-size:1.2em;}
.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:16px 20px;margin-bottom:16px;}
.subject-list a{display:block;background:var(--card);border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin-bottom:10px;text-decoration:none;color:var(--marino);font-weight:600;}
.subject-list a:hover{border-color:var(--medio);}
.subject-list .count{color:#666;font-weight:400;font-size:.85em;}
.temas-form fieldset{border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:14px;}
.temas-form legend{padding:0 6px;color:var(--marino);font-weight:700;}
.tema-row{display:flex;align-items:center;gap:8px;padding:4px 0;}
.tema-row label{flex:1;}
.tema-row.disabled{opacity:.5;}
.tema-row .badge{font-size:.8em;color:#777;}
.opts-row{display:flex;gap:20px;flex-wrap:wrap;margin:14px 0;}
.opts-row label{display:block;font-weight:600;margin-bottom:4px;font-size:.9em;}
input[type=number]{width:80px;padding:5px;border:1px solid var(--border);border-radius:5px;}
button, .btn{background:var(--medio);color:#fff;border:none;padding:10px 18px;border-radius:6px;font-size:1em;cursor:pointer;text-decoration:none;display:inline-block;}
button:hover, .btn:hover{background:var(--marino);}
.btn-secondary{background:#889;}
.pregunta{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:14px 18px;margin-bottom:16px;}
.pregunta .enun{font-weight:600;margin-bottom:8px;}
.pregunta .meta{color:#777;font-size:.82em;margin-bottom:6px;}
.opciones label{display:block;padding:6px 8px;border-radius:5px;cursor:pointer;}
.opciones label:hover{background:#f0f4f9;}
.ayuda-btn{background:none;border:1px solid var(--dorado);color:var(--dorado);padding:4px 10px;border-radius:14px;font-size:.85em;cursor:pointer;margin:6px 0;}
.ayuda-btn:hover{background:#fff8e6;}
.temario-box{display:none;background:var(--temario-bg);border:1px solid #cfdcea;border-radius:6px;padding:10px 14px;margin:8px 0;font-size:.92em;}
.temario-box.show{display:block;}
.temario-box .ref{font-weight:700;color:#3d5a7a;font-size:.85em;margin-bottom:4px;}
.temario-box table{border-collapse:collapse;width:100%;font-size:.9em;margin:6px 0;}
.temario-box th{background:var(--marino);color:#fff;padding:4px 6px;text-align:left;}
.temario-box td{padding:4px 6px;border:1px solid #b9c7d6;}
.box{padding:6px 10px;margin:7px 0;font-size:.92em;border-left:4px solid;}
.box.azul{background:#e3f0fb;border-color:#1f6fb2;}
.box.verde{background:#e6f5ea;border-color:#2e8b57;}
.box.rojo{background:#fdeaea;border-color:#c0392b;}
.correcta-si{background:var(--verde-bg);border:1px solid var(--verde);}
.correcta-no{background:var(--rojo-bg);border:1px solid var(--rojo);}
.marca{font-weight:700;font-size:.8em;padding:1px 8px;border-radius:10px;margin-left:6px;}
.marca.ok{background:var(--verde);color:#fff;}
.marca.fail{background:var(--rojo);color:#fff;}
.solucion{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);}
.score-banner{background:var(--marino);color:#fff;border-radius:8px;padding:16px 20px;margin-bottom:20px;font-size:1.1em;}
.score-banner b{font-size:1.4em;}
table.historial{width:100%;border-collapse:collapse;background:var(--card);}
table.historial th, table.historial td{padding:8px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:.92em;}
table.historial th{background:#eef2f7;}
.pill{display:inline-block;background:#eef2f7;border-radius:10px;padding:2px 10px;font-size:.8em;}
textarea{width:100%;min-height:90px;padding:8px;border:1px solid var(--border);border-radius:6px;font-family:inherit;}
.footer{text-align:center;color:#999;font-size:.8em;padding:20px;}
.flash{background:#e6f5ea;border:1px solid var(--verde);padding:8px 12px;border-radius:6px;margin-bottom:14px;}
