/* Ordinary screens only; the shared chat/player and Studio media styles are not changed. */
.ordinary-pages{margin:0;min-height:100vh;font:16px/1.55 -apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif}
.ordinary-pages *{box-sizing:border-box}.ordinary-pages [hidden]{display:none!important}
.os-shell{max-width:1120px;padding:32px 24px 56px;margin:auto;min-height:calc(100vh - 185px);display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
.os-shell.os-narrow{max-width:590px}.os-work{min-width:0}.os-page-heading{margin-bottom:24px}.os-eyebrow{color:var(--work-accent);font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;margin:0 0 8px}
.ordinary-pages h1{font:400 clamp(29px,4vw,38px)/1.17 var(--work-display);letter-spacing:-.025em;margin:0 0 12px;overflow-wrap:anywhere}.ordinary-pages h2{font-size:20px;line-height:1.3;margin:0 0 14px}.ordinary-pages h3{font-size:17px;margin:0 0 10px}.ordinary-pages p{margin:0 0 16px}.ordinary-pages p:last-child{margin-bottom:0}
.os-page-heading>p:last-child,.os-muted{color:var(--work-muted)}.os-two{display:grid;grid-template-columns:1fr;gap:18px;margin-bottom:18px}.os-card{min-width:0;background:var(--work-paper);border:1px solid var(--work-line);border-radius:var(--work-radius);padding:24px;box-shadow:var(--work-shadow);margin-bottom:18px}.os-two>.os-card{margin-bottom:0}.os-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px;align-items:center}
.os-button,.os-link{font:inherit;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border-radius:12px;border:1px solid var(--work-line);background:var(--work-paper);color:var(--work-ink);text-align:center;line-height:1.4;overflow-wrap:anywhere}
.os-button.primary{background:var(--work-accent);border-color:var(--work-accent);color:white}.os-link{border:0;padding:10px 2px;color:var(--work-accent);background:transparent;justify-content:flex-start}.os-button:disabled,.os-button[aria-disabled=true]{opacity:.6;cursor:default}.os-button[aria-disabled=true]{pointer-events:none}.ordinary-pages :is(.os-shell,.os-footer) a:not(.os-button){color:inherit}.ordinary-pages :focus-visible{outline:3px solid var(--work-accent);outline-offset:3px}
.os-facts{margin:0}.os-facts>div{padding:12px 0;border-bottom:1px solid var(--work-line)}.os-facts dt{font-size:13px;color:var(--work-muted)}.os-facts dd{margin:4px 0 0;overflow-wrap:anywhere}.os-facts+p{margin-top:18px}.os-faq{border-top:1px solid var(--work-line);padding:4px 0}.os-faq summary{cursor:pointer;min-height:52px;padding:14px 0;font-weight:600;overflow-wrap:anywhere}.os-faq>div{padding:0 0 18px}.os-help .os-faq:last-child>div{padding-bottom:0}.os-contact{font-size:20px;overflow-wrap:anywhere;user-select:all}.os-contact-select{outline:2px solid var(--work-accent);outline-offset:4px}
.os-footer{max-width:1120px;margin:0 auto;padding:20px 24px 30px;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;color:var(--work-muted);font-size:13px}.os-footer a{min-height:44px;display:inline-flex;align-items:center;text-decoration:none}
.os-form{display:grid;gap:16px}.os-form label{display:grid;gap:6px;font-size:14px;font-weight:600}.os-form input:not([type=checkbox]){width:100%;min-width:0;font:inherit;font-size:16px;color:var(--work-ink);background:var(--work-bg);border:1px solid var(--work-line);border-radius:10px;min-height:48px;padding:10px 12px}.os-form .os-check{display:flex;align-items:center;gap:10px;font-weight:400;min-height:44px}.os-check input{width:19px;height:19px;flex-shrink:0}.os-form [type=submit]{width:100%}.os-error{padding:12px 14px;background:#fff3f2;color:#8e302c;border:1px solid #ecc5c2;border-radius:12px;overflow-wrap:anywhere;margin-bottom:18px}.os-success{padding:14px;border-radius:12px;background:var(--work-soft);margin-bottom:16px}.os-access-links{display:flex;gap:4px 18px;flex-wrap:wrap;margin-top:14px}.os-access-links a{min-height:44px;display:inline-flex;align-items:center}.os-password-row{display:flex;gap:8px;align-items:center}.os-password-row>input{flex:1}.os-password-row button{flex-shrink:0;padding:10px;font-size:13px}.os-form fieldset{border:0;padding:0;margin:0;min-width:0;display:grid;gap:16px}.os-form fieldset:disabled{opacity:.65}.os-toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);z-index:150;max-width:min(520px,calc(100vw - 24px));background:var(--work-ink);color:#fff;padding:12px 18px;border-radius:14px;box-shadow:var(--work-shadow)}
.os-chat{position:sticky;top:calc(var(--ac-header-h,76px) + 16px);height:calc(100dvh - var(--ac-header-h,76px) - 38px);min-height:340px;border:1px solid var(--work-line);border-radius:var(--work-radius);overflow:hidden;background:var(--work-paper);min-width:0}.os-chat #os-chat-stage{height:100%;min-height:0;display:flex;flex-direction:column}.os-chat #os-chat-stage>.ac-chat{flex:1;min-height:0}.os-chat-mobile{overflow:hidden}.os-file{display:block;padding:12px 0;border-bottom:1px solid var(--work-line);overflow-wrap:anywhere;min-height:44px}.os-lesson-date{font-size:22px;font-weight:600}.os-lesson-status{display:inline-block;background:var(--work-soft);border-radius:8px;padding:4px 9px}.os-assignment-body{white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:750px){.os-two{grid-template-columns:repeat(2,minmax(0,1fr))}.os-shell.has-chat{max-width:1360px;grid-template-columns:minmax(0,1fr) 380px}.os-shell.has-chat .os-two{grid-template-columns:1fr}}
@media(max-width:749px){.os-shell{padding:24px 16px 32px;gap:0}.os-card{padding:20px}.os-page-heading{margin-bottom:20px}.os-chat{position:fixed;inset:0;top:0;height:100dvh;min-height:0;width:100%;z-index:120;border-radius:0;border:0}.os-footer{padding:8px 16px 24px}.os-actions>.os-button{flex:1 1 auto}.os-password-row button{font-size:12px}.os-shell.os-narrow{width:100%}.os-form .os-check{font-size:14px}}
@media(prefers-reduced-motion:reduce){.ordinary-pages *{scroll-behavior:auto!important}}

/* Whole rows are meaningful destinations; no extra Open button inside a navigation card. */
.os-tool-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;text-decoration:none;border-top:1px solid var(--work-line);min-height:64px}
.os-tool-row>span:first-child{min-width:0}.os-tool-row strong{font-size:15px;font-weight:600}.os-tool-row small{display:block;font-size:13px;color:var(--work-muted);line-height:1.45;margin-top:4px}.os-tool-row:hover strong{color:var(--work-accent)}.os-tool-row:focus-visible{outline-offset:1px}.os-settings .os-two{align-items:start}.os-settings .os-card h2{font-size:18px;margin-bottom:10px}

/* Password workflow is embedded in the role-owned profile, not a second auth flow. */
.os-profile .os-two{align-items:start}.os-profile-access{min-width:0}.os-profile-access #os-access{max-width:100%}.os-profile-access .os-form input{min-width:0}.os-profile-access .os-access-links{flex-wrap:wrap}.os-profile-access .os-password-row{display:flex;gap:8px}.os-profile-access .os-password-row input{flex:1;width:0}.os-profile-access .os-password-row button{flex:none;min-height:42px}.os-profile-access fieldset{min-width:0}.os-profile-access .os-form label{font-size:14px}.os-profile-access .os-button{font-size:14px}
@media(max-width:749px){.os-profile-access .os-password-row{gap:6px}.os-profile-access .os-password-row button{padding-inline:10px}.os-profile-access .os-form input{font-size:16px}}

/* Password label changes without moving the input. */
.os-profile-access .os-password-row button{width:92px;min-width:92px;justify-content:center}
/* Ordinary light chat is fixed to the viewport below the measured header. */
@media(min-width:750px){
 .os-shell.has-chat .os-chat{position:fixed;top:calc(var(--ac-header-height,76px) + 18px);right:max(18px,calc((100vw - 1360px)/2 + 24px));bottom:18px;left:auto;width:380px;height:auto;min-height:0;max-height:none;z-index:60}
}

/* Pupil profile identity and crop editor. */
.os-profile-identity{display:flex;align-items:center;gap:18px;margin-bottom:20px}
.os-profile-avatar{width:112px;height:112px;border-radius:50%;overflow:hidden;display:grid;place-items:center;flex:none;background:var(--work-soft);color:var(--work-accent);font:600 42px/1 var(--work-display);border:1px solid var(--work-line);box-shadow:0 8px 26px rgba(45,32,58,.10)}
.os-profile-avatar img{display:block;width:100%;height:100%;object-fit:cover}
.os-profile-photo-actions{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.os-profile-name{padding:18px 0;border-top:1px solid var(--work-line);border-bottom:1px solid var(--work-line);margin-bottom:12px}
.os-profile-name .os-button{width:auto}
.os-avatar-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:0;border:1px solid var(--work-line);border-radius:20px;background:var(--work-paper);color:var(--work-ink);box-shadow:0 24px 90px rgba(32,20,42,.28);overflow:auto}
.os-avatar-dialog::backdrop{background:rgba(27,20,34,.58);backdrop-filter:blur(4px)}
.os-avatar-dialog>header{position:sticky;top:0;z-index:2;background:var(--work-paper);border-bottom:1px solid var(--work-line);display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px}
.os-avatar-dialog>header h2{margin:0}.os-avatar-dialog>header .os-eyebrow{margin-bottom:4px}
.os-avatar-close{width:42px;height:42px;border:0;border-radius:12px;background:transparent;color:var(--work-ink);font-size:27px;cursor:pointer}
.os-avatar-crop{width:min(520px,calc(100% - 32px));aspect-ratio:1;margin:20px auto 14px;border-radius:18px;overflow:hidden;background:#25222b;touch-action:none}
.os-avatar-crop canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.os-avatar-crop canvas:active{cursor:grabbing}
.os-avatar-dialog>p,.os-avatar-dialog>.os-avatar-range,.os-avatar-dialog>.os-actions,.os-avatar-dialog>[data-avatar-error]{margin-left:20px;margin-right:20px}
.os-avatar-range{display:grid;gap:7px;font-size:13px;font-weight:600;margin-top:14px}.os-avatar-range input{width:100%}
.os-avatar-dialog>.os-actions{padding-bottom:20px}
@media(max-width:749px){
 .os-profile-identity{align-items:flex-start}.os-profile-avatar{width:92px;height:92px;font-size:34px}.os-profile-photo-actions .os-button{padding-inline:12px}
 .os-avatar-dialog{width:100%;height:100dvh;max-height:100dvh;border-radius:0;border:0}.os-avatar-crop{width:min(520px,calc(100% - 20px));margin-top:12px}
}


button.os-profile-avatar{padding:0;border:0;cursor:pointer;font-family:inherit}button.os-profile-avatar:focus-visible{outline:3px solid var(--work-accent);outline-offset:4px}


.os-avatar-dialog [hidden]{display:none}.os-avatar-dialog>.os-avatar-source{margin-top:16px;padding-bottom:0}

/* Readable role-selected help: short visible steps, optional details below. */
.os-guide .os-shell:not(.has-chat){max-width:850px}
.os-guide .os-help{font-size:17px;line-height:1.65}
.os-guide .os-help-steps{margin:0;padding-left:24px}
.os-guide .os-help-steps li{padding-left:4px;margin:0 0 14px}
.os-guide .os-help-steps li:last-child{margin-bottom:0}
.os-guide .os-faq summary{font-size:17px;line-height:1.5}
.os-guide .os-muted,.os-guide .os-footer{font-size:16px}
.os-guide .os-eyebrow{font-size:14px;letter-spacing:.03em;text-transform:none}
.os-guide .os-help a:not(.os-button){text-decoration:underline;text-underline-offset:3px}
@media(max-width:420px){.os-guide .os-card{padding:18px}.os-guide .os-shell{padding-left:14px;padding-right:14px}}
