/* Adaptation of Doctorados Shell, Heading, cards, forms and responsive navigation. */
.skip-link{position:fixed;top:-80px;left:8px;z-index:1000;background:white;padding:12px}.skip-link:focus{top:8px}:focus-visible{outline:3px solid #9b6200;outline-offset:3px}
.side-brand{padding:22px;color:white}.side-brand strong{display:block;font-size:1.1rem}.side-brand span{display:block;margin-top:8px}.side-footer{padding:20px}.sidebar button.nav-link{width:100%;text-align:left;border:0;background:transparent;color:inherit}.sidebar button.active{background:var(--blue)}
.page{max-width:1500px}.panel{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:20px}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:22px}.metric{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.metric strong{display:block;font-size:1.7rem;margin-top:8px}.metric small{display:block;margin-top:5px}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}.toolbar label,form label{display:grid;gap:6px}input,select,textarea{padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}form{display:grid;gap:16px;max-width:620px}form .btn{justify-self:start}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}td .btn{margin:3px}.badge{display:inline-block;padding:4px 8px;border-radius:6px;background:var(--blue-soft);color:var(--ink);font-size:.8rem}.alert{padding:16px;margin-bottom:16px;border:1px solid var(--line);border-radius:8px}.danger{color:#8b1620;background:#fff0f1}.success{background:var(--teal-soft);color:var(--ink)}.guardian,.login{max-width:720px;margin:30px auto;padding:20px}.guardian .panel{margin-top:20px}.consent-body{white-space:pre-wrap;line-height:1.7}.invite-link{width:100%}.menu-toggle{display:none}.criteria{line-height:1.8}progress{width:100%;height:18px;accent-color:var(--teal)}.section-title{font-size:.8rem;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}button:disabled{opacity:.55;cursor:wait}.topbar{gap:12px}.topbar small{display:block}h1{overflow-wrap:anywhere}
@media(max-width:880px){.sidebar{display:none}.app-shell.open .sidebar{display:block;position:fixed;inset:0 auto 0 0;z-index:40;width:268px;transform:translateX(0)}.main-frame{margin-left:0!important}.menu-toggle{display:inline-block}.page{padding:16px}.topbar{padding:12px}.guardian,.login{margin:0}.panel{padding:18px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell{display:block}}
html.dark{--surface:#15283b;--bg:#0d1c2b;--ink:#eef4fa;--muted:#bccada;--line:#38516c;--blue-soft:#244669;--teal-soft:#1f4645}.dark .topbar,.dark .panel,.dark .metric{background:var(--surface);color:var(--ink)}.dark .danger{color:#ffb8be;background:#492c37}.dark .badge{color:var(--ink)}
.guardian label{display:flex;align-items:flex-start;gap:10px;margin:20px 0}.guardian label input[type=checkbox]{order:-1;width:20px;min-width:20px}.guardian small{display:block}.guardian .btn{margin:4px}.dark h1,.dark h2,.dark h3,.dark strong{color:var(--ink)}.dark .btn{background:#244669;color:var(--ink)}
/* Campus login: visual identity adapted from Admic, without third-party assets. */
.campus-login{min-height:100svh;display:grid;grid-template-columns:minmax(420px,1.1fr) minmax(420px,1fr);background:#f5f8fc;color:#142c43}
.campus-login-story{position:relative;isolation:isolate;overflow:hidden;display:flex;flex-direction:column;padding:48px clamp(32px,5vw,80px) 30px;background:radial-gradient(ellipse at 80% 55%,#176674 0,transparent 54%),linear-gradient(145deg,#082a46,#103d5d 60%,#123d55);color:#fff}
.campus-login-story:before{content:'';position:absolute;z-index:-1;inset:0;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:32px 32px;opacity:.055;mask-image:linear-gradient(transparent,#000)}
.campus-login-brand{display:flex;align-items:center;gap:14px}.campus-login-mark{display:grid;place-items:center;flex:0 0 50px;height:50px;border:1px solid #ffffff40;border-radius:14px;background:#ffffff0d;color:#fff;font-weight:800;font-size:20px;letter-spacing:-1px}.campus-login-brand strong{display:block;color:#fff;font-size:14px;letter-spacing:.08em;line-height:1.5}.campus-login-brand div>span{display:block;color:#c3d8e8;font-size:12px;margin-top:3px}
.campus-login-intro{margin-top:clamp(45px,7vh,80px)}.campus-login-eyebrow{font-size:10px;letter-spacing:.15em;font-weight:700;color:#9ce0d9}.campus-login-intro h2{white-space:pre-line;font-size:clamp(32px,3.3vw,49px);line-height:1.16;font-weight:750;letter-spacing:-.035em;color:white;margin:20px 0}.campus-login-intro p{max-width:440px;font-size:15px;line-height:1.8;color:#c7dce9;margin:0}
.campus-login-scene{position:relative;min-height:180px;margin:25px 0 18px;overflow:hidden}.campus-login-orbit{position:absolute;width:330px;height:330px;left:50%;top:20px;transform:translateX(-50%) rotate(-22deg);border:1px solid #ffffff16;border-radius:50%;box-shadow:0 0 0 38px #ffffff04,0 0 0 76px #ffffff03}.campus-login-road{position:absolute;width:270px;height:150px;left:50%;top:35px;transform:translateX(-50%) perspective(400px) rotateX(53deg) rotateZ(-18deg);display:flex;gap:10px;align-items:center;justify-content:center;background:#071f354d;border:1px solid #9bd6df30;border-radius:24px;box-shadow:0 20px 40px #051b3230}.campus-login-road i{width:20px;height:78px;border-radius:3px;background:linear-gradient(#9ce7decc,#c7e9f57a)}.campus-login-scene-card{position:absolute;bottom:8px;right:8px;background:#163c52f2;border:1px solid #9ddad43b;border-radius:14px;padding:15px 20px;box-shadow:0 15px 35px #051a3330}.campus-login-scene-card span{display:block;color:#95e6d8;font-size:20px;font-weight:750;letter-spacing:.08em}.campus-login-scene-card strong{display:block;color:#e1eff6;font-size:11px;font-weight:500;margin-top:5px}
.campus-login-features{display:grid;gap:18px;margin-top:auto;padding-top:14px}.campus-login-features>div{display:flex;gap:14px;align-items:flex-start}.campus-login-features>div>span{color:#86c5c5;flex:0 0 30px;padding-top:2px;font-size:11px;font-weight:700;letter-spacing:.1em}.campus-login-features strong{font-size:13px;color:#fff;font-weight:600}.campus-login-features p{font-size:12px;color:#b7d0e1;margin:5px 0 0;line-height:1.5}.campus-login-story footer{margin-top:38px;padding-top:20px;border-top:1px solid #ffffff16;font-size:11px;color:#abc8d9}
.campus-login-access{display:flex;align-items:center;justify-content:center;padding:60px 40px;background:#f8fafd}.campus-login-content{width:100%;max-width:390px}.campus-login-demo{display:inline-flex;align-items:center;gap:8px;padding:7px 11px;border:1px solid #d2e4e0;border-radius:30px;background:#eef7f4;color:#287268;font-size:10px;font-weight:650;letter-spacing:.02em}.campus-login-demo:before{content:'';width:6px;height:6px;border-radius:50%;background:#328779}.campus-login-content h1{font-size:30px;font-weight:750;line-height:1.25;letter-spacing:-.035em;margin:22px 0 12px;color:#142e46}.campus-login-content header p{font-size:14px;color:#63798b;line-height:1.75;margin:0;max-width:340px}
.campus-login-form{margin-top:32px;gap:22px;max-width:none}.campus-login-form label{font-size:12px;color:#2e475c;font-weight:650;gap:9px}.campus-login-form input,.campus-login-form select{width:100%;height:50px;border:1px solid #cfdae5;border-radius:10px;background:#fff;color:#243e52;font-size:14px;font-weight:400;padding:0 14px;box-shadow:0 2px 3px #12385c03}.campus-login-form select{padding-right:28px}.campus-login-form input:focus,.campus-login-form select:focus{border-color:#147f87;outline:3px solid #147f871c;outline-offset:1px}.campus-login-help{color:#748799;font-size:10px;font-weight:400;margin-top:1px}.campus-login-form .campus-login-submit{width:100%;justify-content:center;min-height:50px;background:#0d527e;border-color:#0d527e;color:#fff;border-radius:10px;font-size:13px;font-weight:650;box-shadow:0 7px 15px #0d527e19;transition:background .15s,transform .15s}.campus-login-form .campus-login-submit:hover{background:#0a4267;transform:translateY(-1px)}.campus-login-form .campus-login-submit:disabled{transform:none}.campus-login-form #message:empty{display:none}.campus-login-family{margin-top:30px;padding:18px 19px;border:1px solid #e0e8f0;border-radius:12px;background:#f0f5fa}.campus-login-family strong{color:#2c4d67;font-size:12px}.campus-login-family p{font-size:12px;color:#657c8f;line-height:1.75;margin:7px 0 0}.campus-login-local{text-align:center;color:#7e909e;font-size:10px;margin:22px 0 0}
html.dark .campus-login{color:#142c43}.dark .campus-login-content h1{color:#142e46}.dark .campus-login-family strong{color:#2c4d67}.dark .campus-login-mark,.dark .campus-login-brand strong,.dark .campus-login-intro h2,.dark .campus-login-features strong{color:#fff}
.campus-login-mobile-footer{display:none}.campus-login-help{display:block;margin-top:9px}
@media(min-width:1600px){.campus-login-story{padding-left:max(60px,calc((100vw - 1350px)/2));padding-right:75px}.campus-login-access{padding-right:max(60px,calc((100vw - 1350px)/2))}}
@media(max-width:880px){.campus-login{grid-template-columns:1fr}.campus-login-story{padding:28px 30px 25px}.campus-login-intro{margin-top:30px}.campus-login-intro h2{font-size:32px;margin:15px 0 12px}.campus-login-intro p{font-size:13px;line-height:1.7}.campus-login-scene,.campus-login-features{display:none}.campus-login-story footer{display:none}.campus-login-access{padding:36px 30px 32px;align-items:flex-start}.campus-login-content{max-width:480px}.campus-login-content h1{font-size:27px;margin-top:18px}.campus-login-brand strong{font-size:12px}.campus-login-brand div>span{font-size:10px}.campus-login-mark{flex-basis:43px;height:43px;font-size:18px}.campus-login-form{margin-top:25px}}
@media(prefers-reduced-motion:reduce){.campus-login-submit{transition:none!important;transform:none!important}}
@media(max-width:880px){.campus-login-mobile-footer{display:block;margin-top:26px;text-align:center;font-size:10px;color:#7e909e}}
/* Login photo (Tarea 491): the simulator's real scene behind the story panel (texts blurred in the image pixels).
   Same dark gradient as the first version on the text side; the shade is thinned only over the bus (left, middle
   height) so the red bus stays visible; the framing keeps the bus and the school entrance. */
.campus-login-story{background:#082a46}
.campus-login-photo{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:30% 52%;filter:saturate(1.05)}
.campus-login-shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,rgba(6,30,52,.94) 0%,rgba(8,42,70,.86) 38%,rgba(10,52,82,.45) 70%,rgba(10,52,82,.12) 100%),linear-gradient(0deg,rgba(6,30,52,.88) 0%,rgba(6,30,52,0) 38%);
  -webkit-mask-image:radial-gradient(ellipse 42% 15% at 16% 62%,rgba(0,0,0,.38) 0%,rgba(0,0,0,.38) 45%,#000 100%);mask-image:radial-gradient(ellipse 42% 15% at 16% 62%,rgba(0,0,0,.38) 0%,rgba(0,0,0,.38) 45%,#000 100%)}
.campus-login-story:before{z-index:0;pointer-events:none}
.campus-login-story>*:not(.campus-login-photo):not(.campus-login-shade){position:relative;z-index:1}
.campus-login-scene{min-height:150px}.campus-login-scene-card{background:rgba(9,40,62,.72);backdrop-filter:blur(6px)}
@media(max-width:880px){.campus-login-story{min-height:330px}.campus-login-photo{object-position:0% 62%}.campus-login-shade{background:linear-gradient(180deg,rgba(6,30,52,.9) 0%,rgba(8,42,70,.72) 55%,rgba(8,42,70,.25) 100%);-webkit-mask-image:none;mask-image:none}}
@media(prefers-reduced-transparency:reduce){.campus-login-scene-card{backdrop-filter:none;background:#0b3352}}
