.login-shell{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top,#eef3ff,#f7f9fc 55%)}
.login-card{width:min(440px,100%);padding:32px}
.login-brand{display:flex;width:max-content;margin-bottom:30px;color:var(--navy)}
.login-brand small{color:var(--muted)}
.login-card h1{margin:0 0 8px;color:var(--navy)}
.login-card>p:not(.eyebrow){color:var(--muted);line-height:1.55}
.login-card form{display:grid;gap:15px;margin-top:24px}
.login-card label{display:grid;gap:7px;font-weight:750}
.login-card input{padding:12px;border:1px solid #cfd7e5;border-radius:11px;font:inherit}
.login-card button{padding:12px;border-radius:11px;text-align:center}
.login-card #login-status{min-height:1.4em;margin:0;color:#9b2635;font-size:.82rem}
.password-control{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.password-control input{min-width:0}
.login-card .password-toggle{padding:8px 12px;border:1px solid #aebbd0;background:#fff;color:var(--navy);font-weight:750}
.password-rules{margin:-4px 0 0;padding:12px 14px;border:1px solid #d8dfeb;border-radius:11px;background:#f8faff}
.password-rules strong{display:block;margin-bottom:7px;color:var(--navy);font-size:.9rem}
.password-rules ul{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.password-rules li,.password-match{margin:0;font-size:.85rem;font-weight:650}
.password-rules li::before,.password-match::before{display:inline-block;width:1.35em;font-weight:900}
.password-rules .met,.password-match.met{color:#17613a}
.password-rules .met::before,.password-match.met::before{content:"✓"}
.password-rules .unmet,.password-match.unmet{color:#9b2635}
.password-rules .unmet::before,.password-match.unmet::before{content:"○"}
.password-rules .pending,.password-match.pending{color:#667085}
.password-rules .pending::before,.password-match.pending::before{content:"·"}
.login-card #register-status{min-height:1.4em;margin:0;color:#9b2635;font-size:.85rem}
.field-rule{color:#667085;font-weight:550;line-height:1.4}
.field-error{min-height:1.2em;color:#9b2635;font-weight:700;line-height:1.35}
#profile-status{min-height:1.4em;margin:0;color:#334155;font-size:.88rem;line-height:1.45}
.student-dashboard{overflow-x:hidden;background:#f4f7fc}.student-shell{width:min(1120px,100%);margin:auto;padding:clamp(16px,4vw,48px)}.student-panel{padding:clamp(20px,4vw,42px)}.student-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.student-heading .login-brand{margin:0}.student-heading .quiet-button{background:var(--navy);white-space:nowrap}.student-panel>h1{margin:42px 0 6px;font-size:clamp(1.8rem,4vw,2.65rem);color:var(--navy)}.access-copy{margin:0;color:var(--muted)}.lessons-section{margin-top:42px}.lessons-section h2{margin:0 0 18px;color:var(--navy);font-size:1.35rem}.lesson-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;padding:clamp(20px,3vw,30px);border:1px solid #dce4f1;border-radius:18px;background:#fff;box-shadow:0 12px 32px rgba(19,35,63,.07)}.lesson-card h3{grid-column:1;margin:0;color:var(--navy);font-size:clamp(1.25rem,3vw,1.65rem)}.lesson-meta{grid-column:1;margin:0;color:#53627a;font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.lesson-state{grid-column:2;grid-row:1/3;align-self:center;padding:6px 11px;border-radius:999px;background:#e6f6f1;color:#126b56;font-size:.78rem;font-weight:800}.lesson-copy{grid-column:1;margin:4px 0 10px;max-width:650px;color:var(--muted)}.lesson-cta{grid-column:1/3;width:max-content;min-width:170px;padding:12px 20px;border-radius:12px;text-align:center;font-weight:800}.lesson-skeleton span{display:block;height:16px;border-radius:7px;background:#e9edf5}.lesson-skeleton span:nth-child(2){width:65%}.catalog-notice{padding:22px;border:1px solid #dce4f1;border-radius:14px;background:#fff;color:var(--muted)}.profile-details{margin-top:34px;border-top:1px solid #e2e7ef;padding-top:22px}.profile-details summary{width:max-content;color:var(--blue);cursor:pointer;font-weight:800}.profile-details form{max-width:600px}.profile-details label{display:grid;gap:6px;margin:14px 0;font-weight:700}.profile-details input,.profile-details select{width:100%;padding:11px;border:1px solid #cfd7e5;border-radius:10px;font:inherit}@media(max-width:620px){.student-shell{padding:10px}.student-panel{padding:18px;border-radius:16px}.student-heading{align-items:flex-start}.student-heading .brand small{display:none}.student-heading .quiet-button{padding:8px 10px}.student-panel>h1{margin-top:30px}.lessons-section{margin-top:30px}.lesson-card{grid-template-columns:1fr}.lesson-card h3,.lesson-meta,.lesson-state,.lesson-copy,.lesson-cta{grid-column:1;grid-row:auto}.lesson-state{justify-self:start}.lesson-cta{width:100%;min-height:50px}}@media(prefers-reduced-motion:reduce){.lesson-card,*{animation:none!important;transition:none!important}}
