/* ============================================================
   MAGNA — Campus de Estudios Teológicos
   Identidad visual interna
   ============================================================ */
:root{
  --bg:#F7F5F9;--surface:#FFFFFF;--ink:#241C2B;--ink-soft:#5C5465;--ink-faint:#6D6575;
  --line:#E4DEE9;--accent:#6A3A87;--accent-strong:#4D2767;--accent-tint:#F0EAF4;
  --spark:#B83F73;--danger:#A94238;--danger-tint:#F8EAE8;
  --magna-shadow:0 18px 55px rgba(68,35,86,.10);
  --status-ok-bg:#ECFDF5;--status-ok-border:#A7F3D0;--status-ok-ink:#065F46;
  --status-err-bg:#FEF2F2;--status-err-border:#FECACA;--status-err-ink:#991B1B;
  --status-info-bg:#EFF6FF;--status-info-border:#BFDBFE;--status-info-ink:#1E40AF;
  --status-warn-bg:#FFFBEB;--status-warn-border:#FDE68A;--status-warn-ink:#92400E;
}
body{background:radial-gradient(circle at 92% 5%,rgba(194,29,103,.055),transparent 24rem),var(--bg);color:var(--ink)}
.magna-app-header{background:color-mix(in srgb,var(--surface) 94%,transparent)!important;border-bottom:1px solid var(--line)!important;backdrop-filter:blur(18px);box-shadow:0 1px 0 rgba(68,35,86,.02)}
.magna-app-brand{gap:12px!important;min-width:250px}
.magna-app-logo{width:42px;height:42px;object-fit:contain;transition:background .2s,padding .2s,border-radius .2s}
.magna-app-brand-copy{display:flex;flex-direction:column;line-height:1}
.magna-app-brand-copy strong{font-family:Georgia,serif;font-size:1.15rem;letter-spacing:.17em;font-weight:700;color:var(--ink)}
.magna-app-brand-copy small{font-family:Inter,system-ui,sans-serif;font-size:.64rem;letter-spacing:.04em;color:var(--ink-faint);margin-top:6px}
.magna-app-header .wordmark .tick{display:none}
.magna-app-header .nav-links{gap:20px}
.magna-app-header .nav-links a.link{padding:8px 11px;border-radius:999px;transition:.2s}
.magna-app-header .nav-links a.link:hover{background:var(--accent-tint);color:var(--accent)}
.magna-app-header .nav-user{padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface)}
.magna-app-header .btn-primary{background:linear-gradient(135deg,var(--accent),var(--spark));box-shadow:0 8px 20px rgba(91,36,122,.18);color:#fff!important}
.page{padding:54px 0 90px}
.page .container{max-width:1180px}
.page-head{position:relative;padding:30px 34px;margin-bottom:28px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(135deg,var(--surface),color-mix(in srgb,var(--accent-tint) 65%,var(--surface)));box-shadow:var(--magna-shadow);overflow:hidden;overflow:clip;max-width:100%}
.page-head:after{content:"";position:absolute;width:220px;height:220px;border-radius:50%;right:-90px;top:-120px;background:radial-gradient(circle,color-mix(in srgb,var(--spark) 16%,transparent),transparent 68%);pointer-events:none}
.page-head .eyebrow{color:var(--accent);position:relative;z-index:1}
.page-head .eyebrow:before{background:linear-gradient(var(--accent),var(--accent)) 0 100%/4px 5px no-repeat,linear-gradient(var(--accent),var(--accent)) 9px 100%/4px 9px no-repeat,linear-gradient(var(--spark),var(--spark)) 18px 100%/4px 12px no-repeat}
.page-head h1{font-family:Georgia,serif;font-size:clamp(2rem,4vw,3rem);letter-spacing:-.035em;margin-bottom:10px;position:relative;z-index:1}
.page-head p{max-width:72ch;position:relative;z-index:1}
.panel,.stat,.card,.mini-card{border-color:var(--line);border-radius:18px;background:var(--surface);box-shadow:0 8px 30px rgba(68,35,86,.045)}
.panel{padding:28px}
.panel-head{padding-bottom:14px;border-bottom:1px solid var(--line)}
.panel-head h2{font-family:Georgia,serif;font-size:1.35rem;letter-spacing:-.02em}
.stat{position:relative;overflow:hidden;padding:24px}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(var(--accent),var(--spark))}.stat .num{font-family:Georgia,serif;color:var(--accent);font-size:2.25rem}
.mini-card{transition:transform .2s,box-shadow .2s,border-color .2s}.mini-card:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--magna-shadow)}
.mini-card h3,.card h3{font-family:Georgia,serif}.badge{background:var(--accent-tint);color:var(--accent)}
.btn{border-radius:999px}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--spark));border:0;box-shadow:0 8px 18px rgba(91,36,122,.14);color:#fff!important}.btn-primary:hover{background:linear-gradient(135deg,var(--accent-strong),var(--spark));color:#fff!important}.btn-ghost{border-color:var(--line);background:var(--surface);color:var(--ink)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-tint)}
.field input,.field textarea,.field select,.language-selector select{border-color:var(--line);border-radius:12px;background:var(--surface);color:var(--ink)}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(91,36,122,.09)}
.auth{min-height:calc(100vh - 74px);background:radial-gradient(circle at 20% 30%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28rem),radial-gradient(circle at 80% 70%,color-mix(in srgb,var(--spark) 8%,transparent),transparent 24rem),var(--bg)}
.auth-card{background:var(--surface);border-color:var(--line);border-radius:24px;box-shadow:var(--magna-shadow);padding:42px}.auth-card:before{content:"MAGNA";display:block;font-family:Georgia,serif;letter-spacing:.2em;color:var(--accent);font-weight:700;font-size:.85rem;margin-bottom:22px}.auth-card h1{font-family:Georgia,serif;font-size:2rem}
.table tr:hover td{background:color-mix(in srgb,var(--accent-tint) 45%,transparent)}.chip-f-on{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
.tutor{background:linear-gradient(135deg,#35134c,#5b247a 55%,#7b3fa0);border-radius:24px;box-shadow:var(--magna-shadow)}
.admin-nav{background:var(--surface)!important;border-bottom:1px solid var(--line)!important;box-shadow:0 4px 20px rgba(68,35,86,.04)}.admin-nav a{border-radius:999px!important;color:var(--ink-soft)!important}.admin-nav a:hover,.admin-nav a.on{background:var(--accent-tint)!important;color:var(--accent)!important}.admin-nav .pill{background:var(--spark)!important;color:#fff!important}
.curso-indice{border-color:var(--line)!important;background:var(--surface)!important;border-radius:18px!important}.curso-indice a.on{background:var(--accent-tint)!important;color:var(--accent)!important}.clase-lectura,.material-item,.solicitud{border-color:var(--line)!important;background:var(--surface)!important;border-radius:18px!important}
footer{background:linear-gradient(180deg,#1b1221,#130d18);border-top:0;color:#eadff0}footer .wordmark{color:#fff}footer .foot-tag,footer .foot-col a,footer .foot-bottom{color:#c7b8cc}
@media(max-width:960px){.magna-app-brand{min-width:0}.magna-app-brand-copy small{display:none}.magna-app-header .nav-links{background:var(--surface);box-shadow:var(--magna-shadow)}}
@media(max-width:720px){.page-head{padding:24px}.panel{padding:22px}}


/* ============================================================
   MAGNA — Dashboard desktop
   Aprovechamiento real del viewport + rail lateral.
   No cambia lógica ni contenido.
   ============================================================ */

.campus-layout-alumno .page,
.admin-nav + .page,
.admin-nav ~ .page{
  margin-left:250px;
}

.campus-layout-alumno .page .container,
.admin-nav + .page .container,
.admin-nav ~ .page .container{
  max-width:none;
  width:100%;
  padding-left:34px;
  padding-right:34px;
}

.admin-nav + .page .container.container-angosto,
.admin-nav ~ .page .container.container-angosto{
  max-width:780px!important;
  margin-left:auto;
  margin-right:auto;
}

.campus-rail,
.admin-nav{
  position:fixed;
  z-index:40;
  left:0;
  top:74px;
  bottom:0;
  width:250px;
  border-right:1px solid var(--line);
  border-bottom:0!important;
  background:color-mix(in srgb,var(--surface) 96%,transparent)!important;
  backdrop-filter:blur(18px);
  box-shadow:8px 0 28px rgba(68,35,86,.035);
  overflow-y:auto;
}

.campus-rail-inner,
.admin-nav-inner{
  padding:30px 18px;
}

.campus-rail-label,
.admin-nav-label{
  padding:0 14px 12px;
  font-size:.68rem;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-faint);
}

.campus-rail nav,
.admin-nav nav{
  display:flex;
  flex-direction:column;
  gap:4px;
  overflow:visible;
}

.campus-rail-link,
.admin-nav a{
  display:flex!important;
  align-items:center;
  gap:8px;
  width:100%;
  padding:12px 14px!important;
  border:1px solid transparent!important;
  border-radius:12px!important;
  color:var(--ink-soft)!important;
  font-size:.93rem;
  font-weight:500;
  white-space:nowrap;
  transition:background .2s,color .2s,border-color .2s,transform .2s;
}

.campus-rail-link:hover,
.campus-rail-link.is-active,
.admin-nav a:hover,
.admin-nav a.on{
  background:var(--accent-tint)!important;
  border-color:var(--line)!important;
  color:var(--accent)!important;
}

.campus-rail-link.is-active,
.admin-nav a.on{
  font-weight:600;
}

.admin-nav .pill{
  margin-left:auto;
}

.campus-layout-alumno .page-head{
  margin-bottom:28px;
}

.campus-layout-alumno .panel,
.admin-nav + .page .panel,
.admin-nav ~ .page .panel{
  width:100%;
}

.campus-layout-alumno .course-list{
  grid-template-columns:repeat(auto-fill,minmax(245px,1fr));
  gap:18px;
}

.admin-nav + .page .stat-grid.stat-4,
.admin-nav ~ .page .stat-grid.stat-4{
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}

.admin-nav + .page .cols,
.admin-nav ~ .page .cols{
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);
}

@media(min-width:1500px){
  .campus-layout-alumno .page .container,
  .admin-nav + .page .container,
  .admin-nav ~ .page .container{
    padding-left:42px;
    padding-right:42px;
  }
  .campus-layout-alumno .course-list{
    grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  }
}

@media(max-width:900px){
  .campus-layout-alumno .page,
  .admin-nav + .page,
  .admin-nav ~ .page{
    margin-left:0;
  }
  .campus-rail,
  .admin-nav{
    position:static;
    width:100%;
    height:auto;
    border-right:0;
    border-bottom:1px solid var(--line)!important;
    box-shadow:none;
    overflow:visible;
  }
  .campus-rail-inner,
  .admin-nav-inner{
    padding:12px 24px;
  }
  .campus-rail-label,
  .admin-nav-label{
    display:none;
  }
  .campus-rail nav,
  .admin-nav nav{
    flex-direction:row;
    overflow-x:auto;
    gap:6px;
    padding-bottom:1px;
  }
  .campus-rail-link,
  .admin-nav a{
    width:auto!important;
    flex:0 0 auto;
  }
  .campus-layout-alumno .page .container,
  .admin-nav + .page .container,
  .admin-nav ~ .page .container{
    padding-left:24px;
    padding-right:24px;
  }
  .admin-nav + .page .cols,
  .admin-nav ~ .page .cols{
    grid-template-columns:1fr;
  }
}

@media(max-width:720px){
  .campus-layout-alumno .course-list{
    grid-template-columns:1fr;
  }
}

/* ============================================================
   MAGNA — Selector de apariencia (appearance.php)
   ============================================================ */
.appearance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; max-width:900px; }
.palette-card { position:relative; display:grid; grid-template-columns:180px 1fr; gap:18px; align-items:center; padding:16px; border:2px solid var(--line); border-radius:16px; background:var(--surface); cursor:pointer; transition:.2s ease; }
.palette-card:hover { transform:translateY(-2px); border-color:var(--accent); }
.palette-card.is-selected { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent); }
.palette-card input { position:absolute; opacity:0; pointer-events:none; }
.palette-preview { display:block; height:110px; border-radius:12px; padding:12px; background:var(--preview-bg); border:1px solid rgba(255,255,255,.12); }
.palette-preview-surface { display:flex; flex-direction:column; gap:7px; padding:10px; height:58px; border-radius:8px; background:var(--preview-surface); }
.palette-preview-surface span { display:block; height:6px; border-radius:99px; background:var(--preview-accent); width:72%; }
.palette-preview-surface span:nth-child(2) { background:var(--preview-accent2); width:48%; opacity:.85; }
.palette-preview-surface span:nth-child(3) { background:rgba(255,255,255,.35); width:84%; }
.palette-preview-actions { display:flex; gap:7px; margin-top:10px; }
.palette-preview-actions i { display:block; width:38px; height:13px; border-radius:99px; background:var(--preview-accent); }
.palette-preview-actions i:nth-child(2) { background:var(--preview-accent2); }
.palette-preview-actions i:nth-child(3) { background:rgba(255,255,255,.3); }
.palette-info strong { display:block; font-size:1.05rem; margin-bottom:6px; color:var(--ink); }
.palette-info small { display:block; color:var(--ink-soft); font-size:.78rem; }
.palette-check { position:absolute; top:12px; right:12px; width:24px; height:24px; border-radius:50%; display:grid; place-items:center; background:var(--accent); color:#fff; font-weight:700; opacity:0; transform:scale(.8); transition:.2s ease; }
.palette-card.is-selected .palette-check { opacity:1; transform:scale(1); }
.appearance-actions { display:flex; justify-content:space-between; gap:12px; max-width:900px; margin-top:24px; flex-wrap:wrap; }
@media (max-width:760px) { .appearance-grid { grid-template-columns:1fr; } .palette-card { grid-template-columns:130px 1fr; } }

/* ============================================================
   MAGNA — Componentes semánticos de estado (Aprobado / Rehacer / Alertas)
   Se adaptan automáticamente a Modo Claro y Modo Oscuro (T3, T4, T9, T11)
   ============================================================ */
.status-box {
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--surface);
  color: var(--ink);
}
.status-box-ok {
  background: var(--status-ok-bg) !important;
  border-color: var(--status-ok-border) !important;
  color: var(--status-ok-ink) !important;
}
.status-box-err {
  background: var(--status-err-bg) !important;
  border-color: var(--status-err-border) !important;
  color: var(--status-err-ink) !important;
}
.status-box-info {
  background: var(--status-info-bg) !important;
  border-color: var(--status-info-border) !important;
  color: var(--status-info-ink) !important;
}
.status-box-warn {
  background: var(--status-warn-bg) !important;
  border-color: var(--status-warn-border) !important;
  color: var(--status-warn-ink) !important;
}
.status-box strong,
.status-box p,
.status-box span,
.status-box div {
  color: inherit;
}

.badge-status-ok {
  background: var(--status-ok-bg) !important;
  color: var(--status-ok-ink) !important;
  border: 1px solid var(--status-ok-border) !important;
}
.badge-status-err {
  background: var(--status-err-bg) !important;
  color: var(--status-err-ink) !important;
  border: 1px solid var(--status-err-border) !important;
}
.badge-status-info {
  background: var(--status-info-bg) !important;
  color: var(--status-info-ink) !important;
  border: 1px solid var(--status-info-border) !important;
}
.badge-status-warn {
  background: var(--status-warn-bg) !important;
  color: var(--status-warn-ink) !important;
  border: 1px solid var(--status-warn-border) !important;
}
.badge-status-neutral {
  background: var(--accent-tint) !important;
  color: var(--ink) !important;
  border: 1px solid var(--line) !important;
}
.text-warn {
  color: var(--status-warn-ink) !important;
  font-weight: 600;
}
.panel-danger {
  border-color: var(--danger) !important;
}
.danger-title {
  color: var(--danger) !important;
}

/* ============================================================
   MAGNA — Sistema unificado de Tema (Claro/Oscuro) y Paletas (T1, T2)
   ============================================================ */

/* 1. Paleta Original — Modo Claro (por defecto) */
html[data-palette="original"],
html[data-theme="light"][data-palette="original"] {
  --bg:#F7F5F9;
  --surface:#FFFFFF;
  --ink:#241C2B;
  --ink-soft:#5C5465;
  --ink-faint:#6D6575;
  --line:#E4DEE9;
  --accent:#6A3A87;
  --accent-strong:#4D2767;
  --accent-tint:#F0EAF4;
  --spark:#B83F73;
  --danger:#A94238;
  --danger-tint:#F8EAE8;
  --status-ok-bg:#ECFDF5;
  --status-ok-border:#A7F3D0;
  --status-ok-ink:#065F46;
  --status-err-bg:#FEF2F2;
  --status-err-border:#FECACA;
  --status-err-ink:#991B1B;
  --status-info-bg:#EFF6FF;
  --status-info-border:#BFDBFE;
  --status-info-ink:#1E40AF;
  --status-warn-bg:#FFFBEB;
  --status-warn-border:#FDE68A;
  --status-warn-ink:#92400E;
  color-scheme:light;
}

/* 2. Paletas Personalizadas en Modo Claro (cuando el usuario activa Modo Claro en el header) */
html[data-theme="light"][data-palette="magenta"] {
  --bg:#FDF7FA;
  --surface:#FFFFFF;
  --ink:#281121;
  --ink-soft:#6B475E;
  --ink-faint:#7D5A70;
  --line:#EAD5E2;
  --accent:#9E1C6B;
  --accent-strong:#781250;
  --accent-tint:#F9E6F2;
  --spark:#C83784;
  --danger:#B03A2E;
  --danger-tint:#F8EAE8;
  color-scheme:light;
}

html[data-theme="light"][data-palette="ambar"] {
  --bg:#FBF8F3;
  --surface:#FFFFFF;
  --ink:#261D14;
  --ink-soft:#665646;
  --ink-faint:#7A6857;
  --line:#E6DDD0;
  --accent:#965D1B;
  --accent-strong:#734510;
  --accent-tint:#F6ECE0;
  --spark:#C48432;
  --danger:#A94238;
  --danger-tint:#F8EAE8;
  color-scheme:light;
}

html[data-theme="light"][data-palette="indigo"] {
  --bg:#F5F6FC;
  --surface:#FFFFFF;
  --ink:#161A30;
  --ink-soft:#4E5475;
  --ink-faint:#61688A;
  --line:#DCE0F2;
  --accent:#3B4FC4;
  --accent-strong:#2A3B9E;
  --accent-tint:#E8ECFA;
  --spark:#6457D6;
  --danger:#A94238;
  --danger-tint:#F8EAE8;
  color-scheme:light;
}

/* 3. Modo Oscuro General y Paleta Original en Modo Oscuro (T1) */
html[data-theme="dark"],
html[data-theme="dark"][data-palette="original"] {
  --bg:#100C14;
  --surface:#1B1520;
  --ink:#F7F2FA;
  --ink-soft:#C7BCCD;
  --ink-faint:#A89BB0;
  --line:#392D40;
  --accent:#C89CE0;
  --accent-strong:#9348BD;
  --accent-tint:#2A1E31;
  --spark:#ED5D9C;
  --danger:#F28B82;
  --danger-tint:#3B1D1D;
  --status-ok-bg:#0F2922;
  --status-ok-border:#1E5645;
  --status-ok-ink:#A7F3D0;
  --status-err-bg:#2D161B;
  --status-err-border:#692732;
  --status-err-ink:#FECACA;
  --status-info-bg:#132238;
  --status-info-border:#274978;
  --status-info-ink:#BFDBFE;
  --status-warn-bg:#2E2210;
  --status-warn-border:#6B4E23;
  --status-warn-ink:#FDE68A;
  color-scheme:dark;
}

/* 4. Paletas Personalizadas en Modo Oscuro */
html[data-palette="magenta"]:not([data-theme="light"]),
html[data-theme="dark"][data-palette="magenta"] {
  --bg:#150913;
  --surface:#21111D;
  --ink:#F9F1F6;
  --ink-soft:#D8C4D0;
  --ink-faint:#B6A1AF;
  --line:#3E2938;
  --accent:#E066B0;
  --accent-strong:#B0227A;
  --accent-tint:#3A172D;
  --spark:#D6489A;
  --danger:#F28B82;
  --danger-tint:#43221F;
  --status-ok-bg:#0F2922;
  --status-ok-border:#1E5645;
  --status-ok-ink:#A7F3D0;
  --status-err-bg:#2D161B;
  --status-err-border:#692732;
  --status-err-ink:#FECACA;
  --status-info-bg:#132238;
  --status-info-border:#274978;
  --status-info-ink:#BFDBFE;
  --status-warn-bg:#2E2210;
  --status-warn-border:#6B4E23;
  --status-warn-ink:#FDE68A;
  color-scheme:dark;
}

html[data-palette="ambar"]:not([data-theme="light"]),
html[data-theme="dark"][data-palette="ambar"] {
  --bg:#181310;
  --surface:#241C16;
  --ink:#FAF4EA;
  --ink-soft:#D8CCBD;
  --ink-faint:#B5A897;
  --line:#45382D;
  --accent:#E5AC67;
  --accent-strong:#B8792E;
  --accent-tint:#3B2B1D;
  --spark:#E0A955;
  --danger:#F28B82;
  --danger-tint:#43221F;
  --status-ok-bg:#0F2922;
  --status-ok-border:#1E5645;
  --status-ok-ink:#A7F3D0;
  --status-err-bg:#2D161B;
  --status-err-border:#692732;
  --status-err-ink:#FECACA;
  --status-info-bg:#132238;
  --status-info-border:#274978;
  --status-info-ink:#BFDBFE;
  --status-warn-bg:#2E2210;
  --status-warn-border:#6B4E23;
  --status-warn-ink:#FDE68A;
  color-scheme:dark;
}

html[data-palette="indigo"]:not([data-theme="light"]),
html[data-theme="dark"][data-palette="indigo"] {
  --bg:#0E1020;
  --surface:#171A30;
  --ink:#F1F2FB;
  --ink-soft:#C8CAE0;
  --ink-faint:#A6AAD0;
  --line:#30344F;
  --accent:#8FA0FF;
  --accent-strong:#4A5FD1;
  --accent-tint:#20264A;
  --spark:#7D6FE0;
  --danger:#F28B82;
  --danger-tint:#43221F;
  --status-ok-bg:#0F2922;
  --status-ok-border:#1E5645;
  --status-ok-ink:#A7F3D0;
  --status-err-bg:#2D161B;
  --status-err-border:#692732;
  --status-err-ink:#FECACA;
  --status-info-bg:#132238;
  --status-info-border:#274978;
  --status-info-ink:#BFDBFE;
  --status-warn-bg:#2E2210;
  --status-warn-border:#6B4E23;
  --status-warn-ink:#FDE68A;
  color-scheme:dark;
}

/* 5. Superficies dinámicas vinculadas a variables CSS (sin blancos fijos) */
body {
  background:
    radial-gradient(circle at 92% 0%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 25rem),
    radial-gradient(circle at 4% 70%,color-mix(in srgb,var(--spark) 5%,transparent),transparent 22rem),
    var(--bg) !important;
  color:var(--ink) !important;
}

.magna-app-header {
  background:color-mix(in srgb,var(--surface) 94%,transparent) !important;
  border-color:var(--line) !important;
}

.page-head {
  background:linear-gradient(135deg,var(--surface) 0%,color-mix(in srgb,var(--accent-tint) 70%,var(--surface)) 100%) !important;
  border-color:var(--line) !important;
}

.panel,
.card,
.stat,
.mini-card,
.curso-indice,
.clase-lectura,
.material-item,
.solicitud,
.auth-card {
  background:var(--surface) !important;
  border-color:var(--line) !important;
  color:var(--ink);
}

.btn-ghost {
  background:var(--surface) !important;
  color:var(--ink) !important;
  border-color:var(--line) !important;
}
.btn-ghost:hover {
  background:var(--accent-tint) !important;
  border-color:var(--accent) !important;
  color:var(--accent) !important;
}

.campus-rail,
.admin-nav {
  background:color-mix(in srgb,var(--surface) 96%,transparent) !important;
  border-color:var(--line) !important;
}

.field input:not([type="checkbox"]):not([type="radio"]),
.field textarea,
.field select,
.language-selector select,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="url"],
input[type="number"],
input[type="datetime-local"],
input[type="search"],
textarea,
select {
  background:var(--surface) !important;
  color:var(--ink) !important;
  border-color:var(--line) !important;
}

/* 6. Ajustes específicos de contraste en Modo Oscuro (T5, T6, T7, T9) */
html[data-theme="dark"] .magna-app-logo {
  background:rgba(255,255,255,.92);
  padding:4px;
  border-radius:10px;
  box-shadow:0 2px 10px rgba(0,0,0,.28);
}

html[data-theme="dark"] .btn-primary {
  background:linear-gradient(135deg,var(--accent-strong),var(--spark)) !important;
  color:#FFFFFF !important;
}

html[data-theme="dark"] .chip-f-on {
  background:var(--accent-strong) !important;
  border-color:var(--accent) !important;
  color:#FFFFFF !important;
}

html[data-theme="dark"] .campus-rail-link.is-active,
html[data-theme="dark"] .admin-nav a.on,
html[data-theme="dark"] .curso-indice a.on {
  background:var(--accent-tint) !important;
  border-color:var(--accent) !important;
  color:var(--ink) !important;
}

html[data-theme="dark"] .badge:not(.badge-status-ok):not(.badge-status-err):not(.badge-status-info):not(.badge-status-warn) {
  background:var(--accent-tint) !important;
  color:var(--ink) !important;
  border:1px solid var(--line);
}

html[data-theme="dark"] .panel,
html[data-theme="dark"] .stat,
html[data-theme="dark"] .mini-card,
html[data-theme="dark"] .auth-card {
  box-shadow:0 18px 55px rgba(0,0,0,.28);
}

