/* SET30 · superficies y tipografía inspiradas en Puchi */
:root {
 --lg-font:-apple-system,"SF Pro Display","SF Pro Text",Inter,system-ui,sans-serif;
 --lg-bg:#eef1f6; --lg-text:#0b0d12; --lg-text-2:#454e60; --lg-text-3:#536074;
 --lg-tint:#0a84ff; --lg-action:#005fcb; --lg-glass:rgba(255,255,255,.72);
 --lg-panel:rgba(255,255,255,.88); --lg-stroke:rgba(15,23,42,.08);
 --lg-hover:rgba(10,132,255,.07); --lg-shadow:0 1px 2px #0f172a04,0 10px 30px #0f172a0d, inset 0 1px 0 #ffffffcc;
 color-scheme:light;
}
:root[data-theme="dark"] {
 --lg-bg:#05070c; --lg-text:#f5f7fb; --lg-text-2:#c0c8d8; --lg-text-3:#adb8cb;
 --lg-glass:rgba(22,26,36,.76); --lg-panel:#161a24; --lg-stroke:rgba(255,255,255,.1);
 --lg-hover:rgba(100,210,255,.09); --lg-shadow:0 12px 34px #0005,inset 0 1px 0 #ffffff14;
 color-scheme:dark;
}
*,*::before,*::after { box-sizing:border-box; }
html,body { margin:0; font-family:var(--lg-font); font-size:14px; color:var(--lg-text); background:var(--lg-bg); -webkit-font-smoothing:antialiased; }
body { background:radial-gradient(ellipse at 90% 0, #5ac8fa0c, transparent 50%),var(--lg-bg); }
button,input,textarea,select { font-family:inherit; }
:focus-visible { outline:3px solid var(--lg-tint); outline-offset:3px; }
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-thumb { background:#8ca1b666; border-radius:10px; }
.mud-typography:is(h1,h2,h3,h4,h5,h6) { letter-spacing:-.025em; }
.mud-paper,.mud-card { border:1px solid var(--lg-stroke); border-radius:22px!important; background:var(--lg-glass); box-shadow:var(--lg-shadow); }
.mud-popover,.mud-dialog { background:var(--lg-panel); }
.mud-button-root { text-transform:none; letter-spacing:-.01em; border-radius:999px; }
.mud-button-filled-primary:not(:disabled),.set30-login-submit { background:var(--lg-action)!important; color:#fff!important; box-shadow:0 6px 18px #0a84ff26!important; }
.mud-button-filled-primary:hover:not(:disabled) { filter:brightness(1.08); }
.mud-button-text-primary,.mud-link-primary { color:var(--lg-action); }
[data-theme="dark"] :is(.mud-button-text-primary,.mud-link-primary) { color:#88c4ff; }
.mud-input-outlined .mud-input-outlined-border { border-color:var(--lg-stroke); border-radius:14px; }
.mud-input-outlined:hover .mud-input-outlined-border { border-color:var(--lg-tint); }
.mud-table-head .mud-table-cell { background:var(--lg-hover); color:var(--lg-text-2); font-size:.8rem; font-weight:600; }
.mud-table-cell { border-color:var(--lg-stroke); }
.mud-table-row:hover>.mud-table-cell { background:var(--lg-hover)!important; }
.mud-chip { border-radius:999px!important; }
.set30-main { min-height:100vh; background:transparent; }
.set30-appbar { background:var(--lg-glass)!important; color:var(--lg-text)!important; border:0; backdrop-filter:blur(24px); }
.set30-drawer.mud-drawer { margin:12px; border:1px solid var(--lg-stroke); border-radius:28px; background:var(--lg-glass)!important; box-shadow:var(--lg-shadow)!important; backdrop-filter:blur(28px) saturate(180%); height:calc(100% - var(--mud-appbar-height) - 24px)!important; }
.set30-brand { display:flex; align-items:center; gap:12px; padding:22px 18px; }
/* Mismo logo que el CRM: el logo blanco y azul sobre un cuadrado negro redondeado. */
.set30-brand img { width:56px; height:56px; padding:3px; box-sizing:border-box; object-fit:contain; border-radius:16px; background:#020407; box-shadow:0 12px 28px rgba(0,0,0,.3); }
.set30-brand strong { display:block; font-size:19px; letter-spacing:-.03em; }
.set30-brand small { display:block; color:var(--lg-text-2); font-size:11px; }
.set30-drawer .mud-navmenu { padding:0 10px 18px; }
.set30-drawer .mud-nav-link { width:auto; margin:4px 0; border-radius:999px; min-height:44px; color:var(--lg-text-2); }
.set30-drawer .mud-nav-link:hover { background:var(--lg-hover); }
.set30-drawer .mud-nav-link-icon { color:#0a84ff; }
.set30-drawer a[href="/personas/estudiantes"] .mud-nav-link-icon { color:#e78b20; }
.set30-drawer a[href="/admision/matriculas"] .mud-nav-link-icon { color:#19a574; }
.set30-drawer a[href="/ofertas"] .mud-nav-link-icon { color:#e5762a; }
.set30-drawer a[href="/accesos-lms"] .mud-nav-link-icon { color:#00a4ba; }
.set30-drawer a[href="/recordatorios"] .mud-nav-link-icon { color:#df6555; }
.set30-drawer a[href="/tesoreria/pagos"] .mud-nav-link-icon { color:#2dba82; }
.set30-drawer a[href="/tesoreria/deudas"] .mud-nav-link-icon { color:#d99d1b; }
.set30-drawer a[href="/tesoreria/caja"] .mud-nav-link-icon { color:#22afc6; }
.set30-drawer a[href="/configuracion/usuarios"] .mud-nav-link-icon { color:#328ccc; }
.set30-drawer a[href="/configuracion/institucion"] .mud-nav-link-icon { color:#75879b; }
.set30-drawer .mud-nav-link.nav-item-active { background:var(--lg-tint)!important; color:#fff!important; box-shadow:0 5px 14px #0a84ff26; }
.set30-drawer .nav-item-active .mud-nav-link-icon { color:#fff!important; }
.set30-page-content { padding:30px 30px 30px 42px; max-width:1800px; margin:0 auto; }
.erp-dashboard { animation:fadeInUp .35s ease both; }
.erp-hero { position:relative; overflow:hidden; min-height:230px; padding:36px 42px; display:flex; align-items:center; justify-content:space-between; border:1px solid rgba(56,189,248,.35); border-radius:28px; background:linear-gradient(120deg,#06172A 0%,#082C49 64%,#075985 100%); box-shadow:0 24px 60px rgba(15,50,79,.18); color:#fff; }
.erp-hero::after { content:""; position:absolute; right:-8%; bottom:-65%; width:520px; height:520px; border-radius:50%; background:rgba(56,189,248,.09); }
.erp-hero-copy { position:relative; z-index:2; max-width:720px; }
.erp-eyebrow { color:#7DD3FC; font-size:12px; font-weight:800; letter-spacing:.18em; margin-bottom:14px; }
.erp-hero-title { color:#fff !important; font-weight:800 !important; letter-spacing:-.035em !important; }
.erp-hero-subtitle { color:#C7D9E8 !important; margin-top:10px !important; }
.erp-hero-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:24px; }
.erp-hero-tags span { display:inline-flex; align-items:center; gap:7px; padding:8px 13px; border-radius:999px; background:rgba(255,255,255,.08); color:#E5F5FD; border:1px solid rgba(125,211,252,.18); }
.erp-hero-tags .mud-icon-root { color:#38BDF8; font-size:18px; }
.erp-hero-visual { position:relative; z-index:2; width:160px; height:160px; display:grid; place-items:center; margin-right:5%; }
.erp-hero-visual > .mud-icon-root { position:relative; z-index:2; font-size:68px; color:#E0F2FE; filter:drop-shadow(0 10px 25px rgba(56,189,248,.35)); }
.erp-orbit { position:absolute; border-radius:50%; border:1px solid rgba(125,211,252,.28); }
.orbit-one { width:140px; height:140px; }
.orbit-two { width:96px; height:96px; background:rgba(56,189,248,.08); }
.set30-kpi-card { min-height:172px; padding:22px; position:relative; overflow:hidden; border:1px solid rgba(148,163,184,.22); border-top:3px solid var(--kpi-accent); background:var(--mud-palette-surface) !important; color:var(--mud-palette-text-primary); box-shadow:0 12px 30px rgba(15,50,79,.07) !important; }
.set30-kpi-card::after { content:""; position:absolute; right:-44px; bottom:-52px; width:130px; height:130px; border-radius:50%; background:var(--kpi-accent); opacity:.07; }
.set30-kpi-card:hover { transform:translateY(-4px); }
.set30-kpi-icon { display:flex; align-items:center; justify-content:center; width:44px; height:44px; border-radius:14px; }
.set30-kpi-trend { opacity:.82; }
.erp-stripe-alert { background:rgba(14,165,233,.05) !important; border-color:rgba(14,165,233,.35) !important; }

@media (max-width:900px) {
    .set30-page-content { padding:18px; }
    .erp-hero { padding:28px; min-height:210px; }
    .erp-hero-visual { display:none; }
}

/* ─── ALERTS ────────────────────────────────────────────── */
.mud-alert {
    border-radius: 12px !important;
    border-left: 4px solid !important;
}

/* ─── ANIMACIONES ───────────────────────────────────────── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

.mud-paper, .mud-card {
    animation: fadeInUp 0.3s ease forwards;
}

/* ─── BADGE ─────────────────────────────────────────────── */
.mud-badge-content {
    font-weight: 700 !important;
    font-size: 0.65rem !important;
}

/* ─── TEXTO TRUNCADO ────────────────────────────────────── */
.text-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ─── RECORDATORIOS ─── */
.reminders-page { max-width:1200px; margin:0 auto; animation:fadeInUp .3s ease both; }
.reminders-hero { min-height:190px; padding:34px 40px; display:flex; align-items:center; justify-content:space-between; gap:30px; color:#fff; border-radius:26px; border:1px solid rgba(56,189,248,.3); background:linear-gradient(120deg,#06172A 0%,#082C49 66%,#075985 100%); box-shadow:0 22px 55px rgba(15,50,79,.16); }
.reminders-eyebrow { color:#7DD3FC; font-size:12px; font-weight:800; letter-spacing:.18em; margin-bottom:10px; }
.reminders-title { color:#fff !important; font-weight:850 !important; letter-spacing:-.04em !important; }
.reminders-subtitle { color:#C7D9E8 !important; margin-top:8px !important; }
.reminders-summary { width:116px; height:116px; flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:50%; background:rgba(255,255,255,.08); border:1px solid rgba(125,211,252,.28); }
.reminders-summary strong { font-size:34px; line-height:1; color:#7DD3FC; }
.reminders-summary span { margin-top:8px; font-size:12px; color:#D8EEF9; }
.reminder-composer { display:grid; grid-template-columns:minmax(0,1fr) 220px auto; gap:14px; align-items:center; margin-top:22px; padding:20px; border:1px solid rgba(148,163,184,.22); border-radius:20px !important; background:var(--mud-palette-surface) !important; }
.reminder-add-button { height:56px; border-radius:12px !important; padding-inline:22px !important; color:#FFFFFF !important; }
.reminder-add-button.mud-disabled,
.reminder-add-button:disabled { color:#FFFFFF !important; opacity:.72; }
.reminder-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 4px 14px; color:var(--mud-palette-text-secondary); }
.reminder-filters { display:flex; gap:8px; flex-wrap:wrap; }
.reminder-filter { border:0; border-radius:999px; padding:9px 16px; color:var(--mud-palette-text-secondary); background:transparent; font:inherit; font-weight:700; cursor:pointer; }
.reminder-filter:hover { color:#0284C7; background:rgba(14,165,233,.08); }
.reminder-filter.active { color:#0369A1; background:rgba(14,165,233,.13); }
.reminders-list { display:flex; flex-direction:column; gap:10px; }
.reminder-row { min-height:78px; padding:13px 14px 13px 12px; display:flex; align-items:center; gap:10px; border-radius:16px !important; border:1px solid rgba(148,163,184,.2); background:var(--mud-palette-surface) !important; transition:transform .18s ease,border-color .18s ease,opacity .18s ease; }
.reminder-row:hover { transform:translateY(-2px); border-color:rgba(14,165,233,.42); }
.reminder-check { flex:none; }
.reminder-content { min-width:0; flex:1; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.reminder-name { color:var(--mud-palette-text-primary); font-size:15px; font-weight:700; }
.reminder-date,.reminder-no-date { flex:none; display:inline-flex; align-items:center; gap:7px; padding:7px 11px; border-radius:999px; color:#0369A1; background:rgba(14,165,233,.09); font-size:12px; font-weight:700; }
.reminder-date .mud-icon-root { font-size:16px; }
.reminder-date.overdue { color:#BE123C; background:rgba(244,63,94,.1); }
.reminder-no-date { color:var(--mud-palette-text-secondary); background:rgba(148,163,184,.1); }
.reminder-row.is-complete { opacity:.58; }
.reminder-row.is-complete .reminder-name { text-decoration:line-through; }
.reminder-delete { opacity:.55; }
.reminder-delete:hover { color:#E11D48 !important; opacity:1; }
.reminders-empty { min-height:260px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; border-radius:20px !important; border:1px dashed rgba(148,163,184,.36); background:rgba(148,163,184,.035) !important; color:var(--mud-palette-text-secondary); }
.reminders-empty > .mud-icon-root { font-size:52px; color:#38BDF8; }

@media (max-width:760px) {
    .reminders-hero { padding:28px; }
    .reminders-summary { display:none; }
    .reminder-composer { grid-template-columns:1fr; }
    .reminder-content { align-items:flex-start; flex-direction:column; gap:7px; }
}



/* Cabeceras y tarjetas: el mismo cristal en ambos temas. */
.erp-hero,.reminders-hero { background:linear-gradient(120deg,var(--lg-glass),var(--lg-hover)); color:var(--lg-text); border:1px solid var(--lg-stroke); box-shadow:var(--lg-shadow); }
.erp-hero-title,.reminders-title { color:var(--lg-text)!important; font-weight:600!important; }
.erp-hero-subtitle,.reminders-subtitle,.reminders-summary span { color:var(--lg-text-2)!important; }
.erp-eyebrow,.reminders-eyebrow { color:var(--lg-action); letter-spacing:.02em; font-weight:600; }
[data-theme="dark"] :is(.erp-eyebrow,.reminders-eyebrow) { color:#88c4ff; }
.erp-hero-tags span { color:var(--lg-text-2); background:var(--lg-glass); border-color:var(--lg-stroke); }
.erp-hero-visual>.mud-icon-root { color:var(--lg-tint); }
.set30-kpi-card { border-top:1px solid var(--lg-stroke); background:var(--lg-glass)!important; box-shadow:var(--lg-shadow)!important; }
.reminders-summary { background:var(--lg-hover); border-color:var(--lg-stroke); }
.reminders-summary strong { color:var(--lg-tint); }
.reminder-filter.active { color:#fff; background:var(--lg-action); }
[data-theme="dark"] .reminder-date { color:#88c4ff; }
[data-theme="dark"] .reminder-date.overdue { color:#ff9ca6; }
.set30-login-shell { min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:72px 24px 32px; background:radial-gradient(ellipse at 10% 90%,#0a84ff18,transparent 55%),radial-gradient(ellipse at 90% 10%,#5ac8fa20,transparent 50%),var(--lg-bg); }
.set30-login-theme { position:absolute; top:20px; right:24px; z-index:2; color:var(--lg-text); background:var(--lg-glass); border:1px solid var(--lg-stroke); border-radius:999px; }
.set30-login-container { width:100%; }
.set30-login-card { width:100%; max-width:460px; border-radius:28px!important; background:var(--lg-glass)!important; box-shadow:var(--lg-shadow)!important; backdrop-filter:blur(28px); }
.set30-login-logo { width:96px; height:96px; object-fit:contain; padding:8px; background:#fff; border-radius:24px; box-shadow:0 8px 24px #0f172a0c; }
.set30-login-title { color:var(--lg-text)!important; font-weight:600!important; }
.set30-login-subtitle { color:var(--lg-text-2)!important; }
.set30-login-submit { border-radius:999px!important; min-height:48px; }
.apexcharts-text { fill:var(--lg-text-2)!important; font-family:var(--lg-font)!important; }
.apexcharts-legend-text { color:var(--lg-text-2)!important; }
.apexcharts-tooltip,.apexcharts-tooltip-title,.apexcharts-menu { background:var(--lg-panel)!important; color:var(--lg-text)!important; border-color:var(--lg-stroke)!important; }
@media(max-width:960px) { .set30-page-content { padding:20px; } .set30-account-name { display:none; } }
@media(max-width:600px) { .set30-appbar .mud-typography-h6 { font-size:14px; } .set30-page-content { padding:16px; } .erp-hero-title { font-size:2rem!important; } .set30-login-shell { padding-inline:12px; } .set30-login-card { padding:24px!important; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; } .set30-kpi-card:hover,.reminder-row:hover { transform:none; } }

/* Los documentos imprimibles conservan papel blanco y texto oscuro. */
.print-container { --lg-text:#0b0d12; --lg-text-2:#454e60; --lg-text-3:#536074; --lg-hover:#f1f5f9; color:#0b0d12; }
