.access-exit { border:0; border-radius:12px; background:transparent; color:#796d67; padding:10px; font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }
.access-exit:focus-visible { outline:2px solid #b4577e; outline-offset:3px; }
.site-header:has(.access-exit),.topbar:has(.access-exit) { flex-wrap:wrap; }
.student-access-dialog { box-sizing:border-box; width:min(440px,calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:34px 28px; border:1px solid #e7dcd5; border-radius:26px; background:#fffdfa; color:#50453f; font:inherit; }
.student-access-dialog::backdrop { background:rgba(66,49,44,.25); }
.student-access-dialog h2 { margin:0 28px 20px 0; font-size:23px; line-height:1.5; }
.student-access-dialog h2 small { display:block; margin-top:4px; font-size:15px; font-weight:400; color:#82756d; }
.student-access-dialog p { margin:0; font-size:14px; line-height:1.7; color:#82756d; }
.student-access-dialog form { margin-top:28px; }
.student-access-dialog label { display:block; margin:0; font-size:13px; }
.student-access-dialog input { display:block; box-sizing:border-box; width:100%; min-width:0; margin-top:8px; padding:14px; border:1px solid #dfd4cc; border-radius:13px; background:white; color:#50453f; font:inherit; font-size:16px; }
.student-access-dialog .student-enter { display:block; width:100%; min-height:48px; margin-top:20px; padding:12px 8px; border:1px solid #deb0c2; border-radius:14px; background:#f7e7ed; color:#9f4169; font:inherit; cursor:pointer; }
.student-dialog-close { float:right; width:40px; height:40px; margin:-12px -12px 0 0; border:0; border-radius:50%; background:transparent; color:#796d67; font-size:27px; cursor:pointer; }
.student-access-dialog #access-code-error { white-space:pre-line; color:#a04562; }
.student-access-dialog #access-code-error:not(:empty) { margin-top:12px; }
.student-access-dialog :focus-visible { outline:2px solid #b4577e; outline-offset:3px; }
@media(max-width:480px){.student-access-dialog{padding:28px 20px;}.access-exit{min-height:44px;}}
.student-access-state { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:2px 12px; }
.student-access-active { color:#2a7163; font-size:12px; }
.student-code-help { margin-top:20px; font-size:12px; color:#796d67; }
.student-code-help summary { cursor:pointer; padding:10px 0; min-height:24px; }
.student-code-help summary span { margin-left:4px; }
.student-code-help p { margin-top:8px; font-size:13px; }
@media(max-width:600px){.student-access-state{margin-left:auto;}.student-access-active{font-size:11px;}}

.student-access-dialog #access-code-error[data-pending="true"] { color:var(--muted,#82756d); }
.student-enter[aria-busy="true"] { cursor:wait; }
.student-enter[aria-busy="true"]::before { content:""; display:inline-block; width:12px; height:12px; margin-right:8px; vertical-align:-2px; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:student-entry-spin .8s linear infinite; }
@keyframes student-entry-spin { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .student-enter[aria-busy="true"]::before { animation:none; } }
