/* Backoffice de Aula Exergía · tema oscuro para distinguirlo del aula y del campus del alumno.
   Para cambiar el fondo base basta con tocar --bg (gris oscuro de marca #3C3C3C; alternativa: azul marino #2D2D6F). */
body.admin{
  --bg:#3C3C3C;          /* gris oscuro de marca */
  --header:#2F2F2F;
  --surface:#464646;     /* tarjetas */
  --surface-2:#4F4F4F;   /* filas, bloques internos */
  --inset:#3A3A3A;       /* campos de formulario */
  --line:#5C5C5C;
  --text:#F5F5F5;
  --muted:#C6C6C6;
  --soft:#A9A9A9;
  --link:#E2C2F4;
  --accent:#D58BEE;      /* morado claro legible sobre oscuro */
  --pink:#FF5CAB;        /* fucsia legible sobre oscuro */
  --ok:#43D18A;
  background:var(--bg);color:var(--text);color-scheme:dark;
}
.admin h1,.admin h2,.admin h3,.admin h4{font-family:'Space Grotesk',sans-serif;letter-spacing:-.5px;line-height:1.12;margin:0;color:var(--text)}
.admin h1{font-size:32px;letter-spacing:-1.2px}
.admin h2{font-size:20px;letter-spacing:-.4px}
.admin h3{font-size:16px}
.admin h4{font-size:13px}
.admin a{color:inherit}
.admin :focus-visible{outline:3px solid #fff;outline-offset:2px;border-radius:6px}

/* Cabecera */
.admin header{background:#2F2F2Fee;border-bottom:1px solid #565656;backdrop-filter:blur(10px)}
.admin header .brand{color:var(--text)}
.admin header .logo-image{background:#fff;border-radius:8px;padding:6px 10px;height:42px;box-sizing:border-box}
.admin header .actions{align-items:center}
.admin header .under{padding-bottom:2px;color:var(--text)}
.admin header .dark{background:transparent;border:1px solid #8a8a8a;color:var(--text)}
.admin header .dark:hover{background:#ffffff1a}
.a-env{font-size:11px;font-weight:700;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase}
.a-env::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ok);margin-right:8px}
.a-env.live::before{background:var(--pink)}

/* Estructura */
.a-shell{display:grid;grid-template-columns:236px minmax(0,1fr);gap:30px;max-width:1360px;margin:0 auto;padding:34px 28px 90px;align-items:start}
.a-shell[hidden],.a-auth[hidden],.admin [hidden]{display:none!important}
.a-side{position:sticky;top:112px;display:grid;gap:16px}
.a-side nav{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:grid;gap:3px}
.a-side small{font-size:10px;letter-spacing:1.3px;font-weight:700;color:var(--soft);text-transform:uppercase;padding:12px 10px 6px}
.a-side small:first-child{padding-top:4px}
.a-side a{display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:10px;border-radius:9px;font-size:13px;color:var(--text)}
.a-side a:hover{background:var(--surface-2)}
.a-side a[aria-current="page"]{background:#D58BEE2e;font-weight:700;color:#F6D9FF}
.a-side a i{font-style:normal;text-align:center;color:var(--soft)}
.a-side a[aria-current="page"] i{color:var(--accent)}
.a-side b{background:var(--pink);color:#2a0a1b;border-radius:20px;font-size:10px;padding:2px 7px;min-width:20px;text-align:center}
.a-note{background:#2D2D6F;color:#fff;border-radius:14px;padding:16px 17px;border:1px solid #4a4a9a}
.a-note strong{font:700 13px 'Space Grotesk',sans-serif;letter-spacing:.5px}
.a-note p{margin:7px 0 0;font-size:11px;line-height:1.5;color:#d3d2f0}
#main{min-width:0;outline:0}
.a-auth{max-width:440px;margin:70px auto;padding:0 20px}

/* Cabecera de página */
.a-page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:26px}
.a-kicker{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--accent);margin-bottom:9px}
.a-sub{color:var(--muted);font-size:14px;line-height:1.55;margin:9px 0 0;max-width:640px}
.a-back{display:inline-block;color:var(--link);font-weight:700;font-size:12px;border-bottom:1px solid currentColor;margin-bottom:18px;padding-bottom:1px}

/* Tarjetas */
.a-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px}
.a-card+.a-card{margin-top:18px}
.a-inset{background:var(--surface-2);border:0;border-radius:12px;padding:18px;margin-top:18px}
.a-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.a-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.a-grid-2>.a-card+.a-card{margin-top:0}
.a-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.a-metric{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px}
.a-metric small{display:block;font-size:10px;letter-spacing:1.2px;font-weight:700;color:var(--soft);text-transform:uppercase}
.a-metric strong{display:block;font:700 30px 'Space Grotesk',sans-serif;letter-spacing:-1px;margin:9px 0 4px;color:var(--text)}
.a-metric strong.pink{color:var(--pink)}
.a-metric span{font-size:12px;color:var(--muted)}
.a-empty{color:var(--muted);font-size:13px;padding:8px 0}
.a-hint{font-size:12px;color:var(--muted);line-height:1.5;margin:6px 0 0;font-weight:400}
.a-alert{display:flex;gap:11px;align-items:flex-start;background:#FFB0201f;color:#FFD98A;border:1px solid #FFB02040;border-radius:10px;padding:12px 14px;font-size:13px;line-height:1.45;margin-bottom:8px}
.a-alert.ok{background:#43D18A1f;color:#8BE8B4;border-color:#43D18A40}

/* Etiquetas y botones */
.a-tag{display:inline-block;padding:5px 10px;border-radius:20px;font-size:10px;font-weight:700;letter-spacing:.3px;background:#ffffff1f;color:#E4E4E4;white-space:nowrap}
.a-tag.ok{background:#43D18A26;color:#7BE0A8}
.a-tag.wait{background:#FFB02026;color:#FFCF70}
.a-tag.off{background:#FF5CAB26;color:#FF9AC7}
.a-tag.info{background:#8c8cff26;color:#C2C2FF}
.a-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:8px;font-weight:700;font-size:12px;background:#8A2BA1;color:#fff;white-space:nowrap}
.a-btn:hover{background:#A236BB}
.a-btn.ghost{background:transparent;color:var(--text);border:1px solid #858585}
.a-btn.ghost:hover{background:#ffffff1c}
.a-btn.danger{background:transparent;color:#FF9AC7;border:1px solid #FF5CAB66}
.a-btn.danger:hover{background:#FF5CAB22}
.a-btn.ok{background:#1f9d5c}
.a-btn.ok:hover{background:#25b36a}
.a-btn.sm{padding:7px 11px;font-size:11px}
.a-btn[disabled]{opacity:.5;cursor:default}
.a-row-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.a-link{background:none;color:var(--link);font-weight:700;text-align:left;padding:0;font-size:inherit}
.a-link:hover{color:#fff;text-decoration:underline}

/* Tablas */
.a-table-wrap{overflow-x:auto;margin:0 -8px}
.a-table{width:100%;border-collapse:collapse;font-size:13px}
.a-table th{text-align:left;font-size:10px;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.a-table td{padding:14px 8px;border-bottom:1px solid #565656;vertical-align:middle}
.a-table tr:last-child td{border-bottom:0}
.a-table td small{display:block;color:var(--muted);font-size:11px;margin-top:3px}
.a-table .num{text-align:right;white-space:nowrap}
.a-toolbar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}
.a-toolbar input,.a-toolbar select{padding:11px 13px;border:1px solid #707070;border-radius:8px;font:13px 'DM Sans',sans-serif;background:var(--inset);color:var(--text);min-width:220px}
.a-toolbar .grow{flex:1}

/* Formularios */
.a-form{display:grid;gap:16px}
.a-form.cols{grid-template-columns:1fr 1fr}
.a-form .wide{grid-column:1/-1}
.a-field{display:grid;gap:7px;font-size:12px;font-weight:700;color:var(--text)}
.a-field input,.a-field select,.a-field textarea{padding:12px 13px;border:1px solid #707070;border-radius:8px;font:14px 'DM Sans',sans-serif;background:var(--inset);color:var(--text);width:100%;font-weight:400}
.a-field input::placeholder,.a-field textarea::placeholder,.a-toolbar input::placeholder,.a-opt input::placeholder{color:#9a9a9a}
.a-field textarea{min-height:110px;line-height:1.55;resize:vertical}
.a-field textarea.tall{min-height:320px}
.a-field input:focus,.a-field select:focus,.a-field textarea:focus,.a-toolbar input:focus,.a-toolbar select:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 3px #D58BEE40}
.a-check{display:flex;gap:10px;align-items:center;font-size:13px;font-weight:500}
.a-check input{accent-color:#D58BEE;width:17px;height:17px}
.a-form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}

/* Pestañas */
.a-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:22px;overflow-x:auto}
.a-tabs a{padding:12px 16px;font-size:13px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.a-tabs a:hover{color:var(--text)}
.a-tabs a[aria-current="page"]{color:var(--accent);border-color:var(--accent)}

/* Módulos */
.a-modules{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.a-module{display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:center;background:var(--surface-2);border-radius:10px;padding:12px 14px}
.a-module .n{font:700 14px 'Space Grotesk',sans-serif;color:var(--pink);text-align:center}
.a-module strong{display:block;font-size:14px}
.a-module small{color:var(--muted);font-size:11px}
.a-move{display:flex;gap:4px}
.a-move button{width:30px;height:30px;border-radius:7px;background:transparent;border:1px solid #858585;font-size:13px;color:var(--text)}
.a-move button:hover:not([disabled]){background:#ffffff22}
.a-move button[disabled]{opacity:.35;cursor:default}

/* Examen */
.a-q{border:1px solid var(--line);border-radius:12px;padding:18px;margin-bottom:14px;background:var(--surface-2)}
.a-q-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.a-opt{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;margin-top:8px}
.a-opt input[type=radio]{accent-color:var(--ok);width:18px;height:18px}
.a-opt input[type=text]{padding:10px 12px;border:1px solid #707070;border-radius:8px;font:14px 'DM Sans',sans-serif;width:100%;background:var(--inset);color:var(--text)}

/* Progreso */
.a-bar{height:7px;background:#636363;border-radius:5px;overflow:hidden;min-width:90px}
.a-bar i{display:block;height:100%;background:var(--accent);border-radius:5px}
.a-bar.done i{background:var(--ok)}
.a-prog{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;font-size:12px;font-weight:700}
.a-kv{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:6px}
.a-kv div{background:var(--surface-2);border-radius:10px;padding:13px 14px}
.a-kv small{display:block;font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700}
.a-kv strong{display:block;font-size:13px;margin-top:6px;word-break:break-word}
.a-mod-line{display:flex;justify-content:space-between;gap:12px;font-size:12px;padding:8px 0;border-top:1px solid #565656}
.a-mod-line b{color:var(--accent)}

/* Diálogos y avisos */
#dlg{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:16px;padding:28px;max-width:460px;width:calc(100% - 32px);box-shadow:0 30px 80px #0008}
#dlg::backdrop{background:#000a}
#dlg h3{font-size:20px;margin-bottom:10px}
#dlg p{font-size:14px;line-height:1.55;color:var(--muted);margin:0 0 20px}
.a-toasts{position:fixed;right:20px;bottom:20px;display:grid;gap:10px;z-index:30}
.a-toast{background:#262626;color:#fff;border:1px solid #6a6a6a;border-radius:10px;padding:13px 17px;font-size:13px;box-shadow:0 12px 30px #0006;max-width:360px}
.a-toast.err{background:#7a0f45;border-color:#FF5CAB}
.a-toast.ok{background:#14663b;border-color:#43D18A}

/* Acceso */
.a-login{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:30px;box-shadow:0 20px 50px #0004}
.a-login h1{font-size:28px;margin-bottom:8px}
.a-login p{color:var(--muted);font-size:13px;line-height:1.55;margin:0 0 20px}
.a-login .a-form{margin-top:4px}
.admin .dev-code{background:#2b1f33;color:#F3C6FF;border:1px dashed #A236BB;border-radius:7px;padding:13px;text-align:center;font:700 22px 'Space Grotesk',sans-serif;letter-spacing:4px;margin:12px 0}

@media(max-width:1000px){
  .a-shell{grid-template-columns:1fr;padding:20px 16px 70px;gap:20px}
  .a-side{position:static}
  .a-side nav{display:flex;overflow-x:auto;gap:4px;padding:8px}
  .a-side small,.a-note{display:none}
  .a-side a{grid-template-columns:auto auto auto;white-space:nowrap}
  .a-metrics{grid-template-columns:1fr 1fr}
  .a-grid-2{grid-template-columns:1fr}
  .a-kv{grid-template-columns:1fr 1fr}
}
@media(max-width:620px){
  .admin h1{font-size:26px}
  .a-form.cols{grid-template-columns:1fr}
  .a-card{padding:18px}
  .a-metrics{grid-template-columns:1fr}
  .a-env{display:none}
  .a-module{grid-template-columns:28px 1fr}
  .a-module .a-row-actions{grid-column:1/-1;justify-content:flex-start}
}
