:root{--navy:#12233f;--navy2:#1d3557;--gold:#c8a45d;--paper:#f5f6f8;--ink:#202a35;--muted:#6b7280;--line:#e3e6eb;--ok:#176b45;--danger:#9d2b2b;--warn:#946200;--info:#245c8a}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}a{color:var(--navy2);text-decoration:none}a:hover{text-decoration:underline}.topbar{height:68px;background:linear-gradient(110deg,var(--navy),#223f67);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:3px solid var(--gold);position:sticky;top:0;z-index:10}.topbar .brand{font-weight:800;letter-spacing:.04em;color:white}.topbar small{display:block;color:#d9e2ef;margin-top:3px}.topbar a{color:white}.userbox{font-size:14px}.shell{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 102px)}.nav{background:white;border-right:1px solid var(--line);padding:18px 12px}.nav a{display:block;padding:11px 12px;border-radius:10px;margin:3px 0;color:#334155;font-weight:600}.nav a:hover{background:#f0f3f7;text-decoration:none}.main{padding:26px;max-width:1480px;width:100%}.page-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.page-title h1{font-size:27px;margin:0;color:var(--navy)}footer{text-align:center;padding:12px;color:#7b8491;font-size:12px;background:white;border-top:1px solid var(--line)}.card{background:white;border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 7px 22px rgba(31,41,55,.045);margin-bottom:18px}.grid{display:grid;gap:16px}.grid.kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi{background:white;border:1px solid var(--line);border-radius:15px;padding:18px}.kpi .num{font-size:28px;font-weight:800;color:var(--navy)}.kpi .label{color:var(--muted);font-size:13px;margin-top:3px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:9px 13px;font-weight:700;cursor:pointer;background:var(--navy2);color:white;font-size:14px}.btn:hover{text-decoration:none;filter:brightness(1.05)}.btn.secondary{background:#e7ebf0;color:#243447}.btn.gold{background:#a57b2f}.btn.danger{background:#8f2f2f}.btn.ok{background:#1d704c}.btn.small{padding:6px 9px;font-size:12px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;background:white}th,td{padding:10px 11px;border-bottom:1px solid #edf0f3;text-align:left;vertical-align:top;font-size:14px}th{background:#f7f8fa;color:#526173;font-size:12px;text-transform:uppercase;letter-spacing:.03em;position:sticky;top:0}tr:last-child td{border-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}label{font-weight:700;font-size:13px;color:#445166}input,select,textarea{width:100%;border:1px solid #cfd6df;border-radius:9px;padding:10px 11px;background:white;color:#1f2937;font:inherit}textarea{min-height:130px;resize:vertical}input:focus,select:focus,textarea:focus{outline:2px solid rgba(200,164,93,.25);border-color:#b58c41}.hint{color:var(--muted);font-size:12px}.flash{padding:11px 14px;border-radius:10px;margin-bottom:14px;border:1px solid}.flash.ok{background:#eef9f3;border-color:#b7e1c8;color:#155b3c}.flash.danger{background:#fff1f1;border-color:#edc1c1;color:#832525}.flash.warn{background:#fff9e8;border-color:#e8d39a;color:#785900}.badge{display:inline-block;padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800;background:#eef1f5}.badge.ok{background:#e5f5ec;color:var(--ok)}.badge.danger{background:#fce8e8;color:var(--danger)}.badge.warn{background:#fff2cc;color:var(--warn)}.badge.info{background:#e7f1fb;color:var(--info)}.login-main{min-height:calc(100vh - 38px);display:flex;justify-content:center;align-items:center;padding:30px;background:radial-gradient(circle at 20% 20%,#eef2f7 0,#f8f9fb 45%,#eef1f5 100%)}.login-card{width:min(430px,100%);background:white;border:1px solid #dfe3e9;border-radius:22px;padding:30px;box-shadow:0 24px 55px rgba(28,38,55,.13);border-top:4px solid var(--gold)}.login-card h1{margin:0;color:var(--navy)}.login-card .subtitle{color:var(--muted);margin:7px 0 22px}.searchbar{display:grid;grid-template-columns:1fr 220px auto;gap:10px;margin-bottom:14px}.split{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.note{background:#f8f3e8;border-left:4px solid var(--gold);padding:11px 13px;border-radius:8px}.empty{text-align:center;color:var(--muted);padding:28px}.invalid-email{color:#9d2b2b;font-weight:700}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.concept-box{white-space:pre-wrap;max-width:720px}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:15px}.tabs a{padding:8px 11px;border-radius:9px;background:white;border:1px solid var(--line);font-weight:700}.tabs a.active{background:var(--navy);color:white}.checkline{display:flex;gap:8px;align-items:center}.checkline input{width:auto}@media(max-width:980px){.shell{grid-template-columns:1fr}.nav{display:flex;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:8px;position:sticky;top:68px;z-index:9}.nav a{white-space:nowrap}.grid.kpis{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.main{padding:18px}.topbar{padding:0 16px}.userbox{font-size:12px}.searchbar{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}}@media(max-width:520px){.grid.kpis{grid-template-columns:1fr}.topbar{height:auto;min-height:68px;padding:10px 14px}.topbar .brand{font-size:14px}.page-title h1{font-size:23px}.main{padding:13px}.card{padding:14px}}

/* ==========================================================
   LOGIN PRIMARIA DON BOSCO · V3
   Paleta propia Primaria: vino / terracota / marfil / oro.
   No depende de :has() y fuerza cache-busting desde layout.php.
   ========================================================== */
.auth-body{margin:0;min-height:100vh;background:#eef1f3;color:#25252a}
.auth-body>footer{display:none}
.auth-body .login-main{min-height:100vh;width:100%;display:flex;align-items:center;justify-content:center;padding:32px;background:
  radial-gradient(circle at 8% 12%,rgba(139,78,65,.12),transparent 29%),
  radial-gradient(circle at 94% 88%,rgba(100,46,58,.09),transparent 30%),
  linear-gradient(145deg,#f6f7f6 0%,#edf0f2 55%,#e8ecee 100%)}
.auth-body .login-main>.page-title{display:none!important}
.auth-body .login-main>.flash{width:min(1180px,calc(100% - 40px));position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:100}

.primary-login{width:min(1180px,100%);min-height:720px;display:grid;grid-template-columns:46% 54%;overflow:hidden;border-radius:30px;background:#fbfaf7;border:1px solid rgba(82,42,46,.12);box-shadow:0 34px 90px rgba(48,38,40,.19),0 4px 16px rgba(48,38,40,.06)}
.primary-login__visual{position:relative;min-height:720px;overflow:hidden;background:#532b35;color:#fff}
.primary-login__photo{position:absolute;inset:-16px;background-image:url('primaria_ingreso.jpg');background-size:cover;background-position:center;filter:blur(2.2px) saturate(.82);transform:scale(1.055)}
.primary-login__veil{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(69,24,36,.74) 0%,rgba(83,35,44,.82) 52%,rgba(48,24,31,.94) 100%),
  radial-gradient(circle at 72% 16%,rgba(218,169,104,.22),transparent 28%)}
.primary-login__visual:after{content:"";position:absolute;inset:18px;border:1px solid rgba(238,203,151,.26);border-radius:24px;pointer-events:none}
.primary-login__visual-content{position:relative;z-index:2;min-height:720px;padding:42px 50px 34px;display:flex;flex-direction:column;align-items:center;text-align:center}
.primary-login__topline{align-self:flex-start;font-size:11px;font-weight:900;letter-spacing:.16em;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 14px;color:#fff6e9;background:rgba(255,255,255,.06);backdrop-filter:blur(6px)}
.primary-login__seal{width:96px;height:96px;border-radius:50%;display:grid;place-items:center;margin:44px 0 16px;border:3px solid #e0b56d;background:rgba(60,28,35,.62);box-shadow:0 0 0 5px rgba(255,255,255,.12),0 14px 34px rgba(0,0,0,.26);backdrop-filter:blur(4px)}
.primary-login__seal span{font-family:Georgia,"Times New Roman",serif;font-size:32px;font-weight:700;color:#f8e5be;letter-spacing:.05em}
.primary-login__rule{width:74px;height:4px;border-radius:99px;background:linear-gradient(90deg,#c68162,#e8b65f);margin:2px 0 17px}
.primary-login__eyebrow{font-size:11px;font-weight:900;letter-spacing:.2em;color:#f1c789}
.primary-login__visual h2{font-size:48px;line-height:1.02;margin:9px 0 12px;font-weight:850;letter-spacing:-.03em;color:#fff}
.primary-login__lead{max-width:390px;margin:0;color:#f3e7e2;font-size:15px;line-height:1.65}
.primary-login__features{width:100%;margin-top:38px;display:grid;gap:11px;text-align:left}
.primary-login__feature{display:grid;grid-template-columns:42px 1fr;gap:12px;align-items:center;padding:14px 16px;border:1px solid rgba(255,255,255,.13);border-radius:15px;background:rgba(58,25,34,.37);backdrop-filter:blur(8px)}
.primary-login__feature-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;color:#f3c67e;border:1px solid rgba(240,190,112,.42);background:rgba(198,126,98,.12);font-weight:900}
.primary-login__feature strong{display:block;color:#fff;font-size:14px;margin-bottom:3px}
.primary-login__feature small{display:block;color:#e2d5d3;font-size:12px;line-height:1.35}
.primary-login__school{margin-top:auto;padding-top:25px;color:#d7c9c8;font-size:10px;font-weight:800;letter-spacing:.18em}

.primary-login__form-side{display:flex;align-items:center;justify-content:center;padding:46px 48px;background:
  radial-gradient(circle at 96% 4%,rgba(186,114,86,.08),transparent 24%),
  linear-gradient(160deg,#fffdf9 0%,#fbfaf7 100%)}
.primary-login__form-card{width:min(470px,100%);padding:38px 34px 30px;border:1px solid #eadac4;border-radius:26px;background:rgba(255,255,255,.84);box-shadow:0 18px 42px rgba(79,53,45,.08);position:relative}
.primary-login__form-card:before{content:"";position:absolute;inset:11px;border:1px solid rgba(213,167,103,.42);border-radius:19px;pointer-events:none}
.primary-login__badge{display:inline-flex;position:relative;z-index:1;padding:7px 12px;border-radius:999px;background:#fff4de;border:1px solid #e4bd72;color:#87592e;font-size:10px;font-weight:900;letter-spacing:.14em}
.primary-login__mobile-brand{display:none}
.primary-login__form-card h1{position:relative;z-index:1;margin:17px 0 8px;color:#4c2731;font-size:36px;line-height:1.05;letter-spacing:-.025em}
.primary-login__intro{position:relative;z-index:1;margin:0 0 26px;color:#746d70;font-size:13.5px;line-height:1.55}
.primary-login__alert{position:relative;z-index:1;margin:0 0 18px}
.primary-login__form{position:relative;z-index:1;display:grid;gap:18px}
.primary-login__field{display:grid;gap:8px}
.primary-login__field label{font-size:13px;font-weight:800;color:#3f3740}
.primary-login__label-row{display:flex;justify-content:space-between;align-items:center;gap:14px}
.primary-login__label-row a{font-size:12px;font-weight:800;color:#8b4f42}
.primary-login__label-row a:hover{color:#6e342e;text-decoration:none}
.primary-login__input{position:relative}
.primary-login__input input{height:52px;border:1px solid #d8d0ca;border-radius:13px;background:#fff;padding:0 58px 0 45px;color:#28252a;font-size:14px;box-shadow:inset 0 1px 2px rgba(64,46,45,.03);transition:border-color .18s,box-shadow .18s,background .18s}
.primary-login__input input::placeholder{color:#a4a0a1}
.primary-login__input input:focus{outline:none;border-color:#b9785f;background:#fff;box-shadow:0 0 0 4px rgba(185,120,95,.12)}
.primary-login__input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);z-index:2;color:#9a8b88;font-size:15px}
.primary-login__toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);z-index:2;border:0;background:transparent;color:#7c5e5a;font-size:11px;font-weight:900;cursor:pointer;padding:8px}
.primary-login__toggle:hover{color:#562e35}
.primary-login__submit{height:52px;width:100%;border:0;border-radius:13px;margin-top:3px;padding:0 18px;display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;font-size:14px;font-weight:900;cursor:pointer;background:linear-gradient(115deg,#5a2734 0%,#7b3e43 52%,#b5634e 100%);box-shadow:0 13px 25px rgba(105,48,57,.22);transition:transform .18s,filter .18s,box-shadow .18s}
.primary-login__submit:hover{transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 16px 29px rgba(105,48,57,.27)}
.primary-login__security{position:relative;z-index:1;margin-top:22px;padding:11px 13px;border-radius:12px;background:#f7f2ee;color:#8a7b78;font-size:11px;text-align:center;border:1px solid #eee3dc}
.primary-login__security span{color:#9a594b;font-weight:900;margin-right:5px}
.primary-login__footer{position:relative;z-index:1;margin-top:22px;padding-top:18px;border-top:1px solid #eee8e3;display:grid;gap:4px;text-align:center;color:#a09593;font-size:10px}

/* Recuperación: misma identidad visual, sin interferir con panel interno */
.auth-body .auth-card{width:min(560px,100%);background:#fffdf9;border:1px solid #eadac4;border-radius:26px;padding:42px 46px;box-shadow:0 28px 75px rgba(70,45,45,.16);border-top:4px solid #b5634e}
.auth-body .auth-mark{background:linear-gradient(145deg,#542832,#8c4d45);color:#f4d49b}
.auth-body .login-kicker{color:#9a594b}
.auth-body .auth-card h1{color:#4c2731}
.auth-body .auth-card .login-submit{background:linear-gradient(115deg,#5a2734,#8a4743,#b5634e)}
.auth-body .auth-card input:focus{border-color:#b9785f;box-shadow:0 0 0 4px rgba(185,120,95,.12)}

@media(max-width:930px){
  .auth-body .login-main{padding:18px}
  .primary-login{grid-template-columns:1fr;max-width:560px;min-height:auto}
  .primary-login__visual{display:none}
  .primary-login__form-side{padding:28px;background:linear-gradient(160deg,#fffdf9,#f7f1ed)}
  .primary-login__form-card{padding:36px 30px 28px}
  .primary-login__mobile-brand{display:block;position:relative;z-index:1;margin:0 0 18px;color:#805149;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}
}
@media(max-width:520px){
  .auth-body .login-main{padding:0;align-items:stretch;background:#fffdf9}
  .primary-login{min-height:100vh;border:0;border-radius:0;box-shadow:none}
  .primary-login__form-side{min-height:100vh;padding:18px}
  .primary-login__form-card{padding:34px 22px 26px;border-radius:22px;box-shadow:none}
  .primary-login__form-card h1{font-size:32px}
  .primary-login__label-row{align-items:flex-end}
  .primary-login__label-row a{max-width:150px;text-align:right}
  .auth-body .auth-card{min-height:100vh;border-radius:0;border:0;box-shadow:none;padding:32px 22px}
}
