/* Authentication only: preserve the signed-in learning workspace. */
body.portal-auth{background:#f7f4ee;color:#38332e;--accent:#76614f;--accent-light:#624e3e;--muted:#70685f;--border:#d9d0c5}
.portal-auth .topbar{background:#f7f4ee;border-bottom:1px solid #dfd7cc;box-shadow:none;backdrop-filter:none;gap:1rem}
.portal-auth .topbar a.logo,.portal-auth .topbar .exit{color:#53483e}
.portal-auth .topbar a.logo small{color:#70685f}
.portal-auth .auth-card{max-width:510px;background:#fffcf7;border-radius:16px;padding:2.2rem;box-shadow:0 12px 36px rgba(72,55,38,.045)}
.portal-auth .auth-card label{text-transform:none;letter-spacing:0;color:#53483e}
.portal-auth .auth-card input{background:#f7f4ee;border-color:#d9d0c5;color:#38332e}
.portal-auth .auth-card input:focus{background:#fff;border-color:#80634e}
.portal-auth .switch a,.auth-help a{text-decoration:underline;text-underline-offset:3px}
.portal-auth :where(a,button,input,summary):focus-visible{outline:3px solid #80634e;outline-offset:3px}
.portal-auth .password-field{position:relative;margin-bottom:1.1rem}
.portal-auth .password-field input{padding-right:6.7rem;margin-bottom:0}
.password-toggle{position:absolute;right:.3rem;top:.3rem;bottom:.3rem;min-width:5.8rem;border:0;border-radius:7px;padding:0 .5rem;background:#ece5da;color:#53483e;font:600 .78rem/1.2 var(--body);cursor:pointer}
.auth-help{margin-top:1.5rem;border-top:1px solid #dfd7cc;padding-top:1rem;font-size:.85rem;color:#70685f}
.auth-help summary{cursor:pointer;color:#53483e;padding:.3rem 0;font-weight:600}
.auth-help p{margin-top:.7rem;overflow-wrap:anywhere}
@media(max-width:540px){.portal-auth .wrap{padding:1rem .8rem 2rem}.portal-auth .auth-card{margin:.6rem auto;padding:1.4rem 1.1rem}.portal-auth .topbar{padding:.8rem 1rem;flex-wrap:wrap}.portal-auth input{font-size:16px}.portal-auth h1{font-size:1.4rem}}
@media(prefers-reduced-motion:reduce){.portal-auth *{transition:none!important}}
