.confirm-dialog{gap:1.25rem;display:grid}.confirm-dialog__body{color:var(--text-secondary);font-size:.9375rem;line-height:1.55}.confirm-dialog__body p{margin:0 0 .5rem}.confirm-dialog__body p:last-child{margin-bottom:0}.confirm-dialog__body code{overflow-wrap:anywhere}.confirm-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}.confirm-dialog__confirm--danger{background:var(--status-danger);color:var(--text-inverse);box-shadow:var(--shadow-sm);border-color:#0000}.confirm-dialog__confirm--danger:hover:not(:disabled){filter:brightness(1.05);box-shadow:var(--shadow-md)}.logout-overlay{z-index:10000;isolation:isolate;box-sizing:border-box;min-height:100svh;padding:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-right,0px)) max(1rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));pointer-events:all;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.logout-overlay--exit{animation:logout-overlay-exit .5s var(--ease-smooth) forwards}.logout-overlay--exit .logout-overlay__icon-wrap{animation:logout-icon-exit .5s var(--ease-smooth) forwards}.logout-overlay__backdrop{z-index:0;background:var(--surface-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:logout-backdrop-enter .45s var(--ease-smooth) both;position:absolute;inset:0}.logout-overlay--exit .logout-overlay__backdrop{animation:logout-backdrop-exit .5s var(--ease-smooth) forwards}.logout-overlay__content{z-index:1;border:1px solid var(--border-default);background:var(--surface);width:min(100%,20rem);box-shadow:var(--shadow-lg);text-align:center;animation:logout-card-enter .5s var(--ease-smooth) both;border-radius:clamp(.875rem,2vw,1.25rem);flex-direction:column;align-items:center;gap:clamp(.5rem,2dvh,.875rem);padding:clamp(1.5rem,5dvh,2.25rem) clamp(1.25rem,4vw,1.75rem);display:flex;position:relative}.logout-overlay--exit .logout-overlay__content{animation:logout-card-exit .45s var(--ease-smooth) forwards}.logout-overlay__icon-wrap{width:clamp(3rem,10vw,3.75rem);height:clamp(3rem,10vw,3.75rem);color:var(--brand-primary);background:var(--status-info-subtle);animation:logout-icon-pulse 1.4s var(--ease-smooth) infinite;border-radius:50%;justify-content:center;align-items:center;display:flex}.logout-overlay__title{letter-spacing:-.02em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(1rem,2.5vw + .5rem,1.25rem);font-weight:700;line-height:1.3}.logout-overlay__subtitle{color:var(--text-secondary);text-wrap:balance;margin:0;font-size:clamp(.8125rem,2vw + .375rem,.9375rem);font-weight:500;line-height:1.45}body.logout-active .app-content{pointer-events:none}@keyframes logout-overlay-exit{0%{opacity:1}to{opacity:0}}@keyframes logout-backdrop-enter{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}@keyframes logout-backdrop-exit{0%{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}to{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}}@keyframes logout-card-enter{0%{opacity:0;transform:translateY(1rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes logout-card-exit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-.75rem)scale(.96)}}@keyframes logout-icon-pulse{0%,to{transform:scale(1);box-shadow:0 0 #06f3}50%{transform:scale(1.04);box-shadow:0 0 0 .625rem #06f0}}@keyframes logout-icon-exit{0%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(1.25rem)scale(.85)}}@media (width<=359px){.logout-overlay__content{width:100%}}@media (height<=32rem){.logout-overlay__content{gap:.375rem;padding-block:1.25rem}.logout-overlay__subtitle{display:none}}@media (prefers-reduced-motion:reduce){.logout-overlay__backdrop,.logout-overlay__content,.logout-overlay__icon-wrap{animation:none}.logout-overlay--exit{opacity:0}}.teacher-workspace-switch-overlay{z-index:10000;isolation:isolate;box-sizing:border-box;min-height:100svh;padding:max(1rem, env(safe-area-inset-top,0px)) max(1rem, env(safe-area-inset-right,0px)) max(1rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));pointer-events:all;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.teacher-workspace-switch-overlay--exit{animation:teacher-workspace-switch-overlay-exit .4s var(--ease-smooth) forwards}.teacher-workspace-switch-overlay__backdrop{z-index:0;background:var(--surface-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:teacher-workspace-switch-backdrop-enter .35s var(--ease-smooth) both;position:absolute;inset:0}.teacher-workspace-switch-overlay--exit .teacher-workspace-switch-overlay__backdrop{animation:teacher-workspace-switch-backdrop-exit .4s var(--ease-smooth) forwards}.teacher-workspace-switch-overlay__content{z-index:1;border:1px solid var(--border-default);background:var(--surface);width:min(100%,20rem);box-shadow:var(--shadow-lg);text-align:center;animation:teacher-workspace-switch-card-enter .4s var(--ease-smooth) both;border-radius:clamp(.875rem,2vw,1.25rem);flex-direction:column;align-items:center;gap:clamp(.5rem,2dvh,.875rem);padding:clamp(1.5rem,5dvh,2.25rem) clamp(1.25rem,4vw,1.75rem);display:flex;position:relative}.teacher-workspace-switch-overlay--exit .teacher-workspace-switch-overlay__content{animation:teacher-workspace-switch-card-exit .35s var(--ease-smooth) forwards}.teacher-workspace-switch-overlay__spinner{border:3px solid color-mix(in srgb, var(--brand-primary) 12%, var(--surface-muted));border-top-color:var(--brand-primary);border-radius:50%;width:clamp(2.75rem,10vw,3.25rem);height:clamp(2.75rem,10vw,3.25rem);animation:.75s linear infinite teacher-workspace-switch-spin}.teacher-workspace-switch-overlay__title{letter-spacing:-.02em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(1rem,2.5vw + .5rem,1.25rem);font-weight:700;line-height:1.3}.teacher-workspace-switch-overlay__subtitle{color:var(--text-secondary);text-wrap:balance;margin:0;font-size:clamp(.8125rem,2vw + .375rem,.9375rem);font-weight:500;line-height:1.45}body.workspace-switch-active .app-content{pointer-events:none}@keyframes teacher-workspace-switch-overlay-exit{0%{opacity:1}to{opacity:0}}@keyframes teacher-workspace-switch-backdrop-enter{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}}@keyframes teacher-workspace-switch-backdrop-exit{0%{opacity:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}to{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}}@keyframes teacher-workspace-switch-card-enter{0%{opacity:0;transform:translateY(1rem)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes teacher-workspace-switch-card-exit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-.75rem)scale(.96)}}@keyframes teacher-workspace-switch-spin{to{transform:rotate(360deg)}}@media (width<=359px){.teacher-workspace-switch-overlay__content{width:100%}}@media (height<=32rem){.teacher-workspace-switch-overlay__content{gap:.375rem;padding-block:1.25rem}.teacher-workspace-switch-overlay__subtitle{display:none}}@media (prefers-reduced-motion:reduce){.teacher-workspace-switch-overlay__backdrop,.teacher-workspace-switch-overlay__content,.teacher-workspace-switch-overlay__spinner{animation:none}.teacher-workspace-switch-overlay--exit{opacity:0}.teacher-workspace-switch-overlay__spinner{border-top-color:var(--brand-primary);opacity:.85}}select,.portal-select{--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%23475569' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--select-focus-ring:rgb(from var(--brand-primary) r g b / .22);border:1px solid var(--border-default);background-color:var(--surface);background-image:var(--select-chevron);width:100%;min-width:0;min-height:2.75rem;color:var(--text-primary);font:inherit;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-smooth), background-color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth), color var(--duration-fast) var(--ease-smooth);appearance:none;background-position:right .4375rem center;background-repeat:no-repeat;background-size:.875rem;border-radius:.75rem;padding:.625rem 2.125rem .625rem .875rem;font-size:clamp(.875rem,1.8vw,.9375rem);line-height:1.35;display:block}[data-theme=dark] select,[data-theme=dark] .portal-select{--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme]) select,:root:not([data-theme]) .portal-select{--select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6L8 10L12 6' stroke='%2394a3b8' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}select::-ms-expand{display:none}.portal-select::-ms-expand{display:none}select:hover:not(:disabled),.portal-select:hover:not(:disabled){border-color:var(--border-strong);background-color:var(--surface-muted)}select:active:not(:disabled),.portal-select:active:not(:disabled){border-color:var(--border-focus);background-color:color-mix(in srgb, var(--surface-muted) 70%, var(--surface))}select:focus,.portal-select:focus{outline:none}select:focus-visible,.portal-select:focus-visible{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--select-focus-ring)}select:disabled,.portal-select:disabled{opacity:.62;cursor:not-allowed;background-color:var(--surface-muted);color:var(--text-muted)}select:required:invalid,.portal-select:required:invalid{color:var(--text-muted)}select:required:valid,.portal-select:required:valid{color:var(--text-primary)}select option,.portal-select option{background-color:var(--surface);color:var(--text-primary);font:inherit;padding:.5rem}select option:checked,.portal-select option:checked{background-color:color-mix(in srgb, var(--brand-primary) 18%, var(--surface));color:var(--text-primary);font-weight:600}select option:disabled,.portal-select option:disabled{color:var(--text-muted)}select optgroup,.portal-select optgroup{color:var(--text-secondary);font-weight:600}@media (prefers-reduced-motion:reduce){select,.portal-select{transition:none}}@media (width<=359px){select,.portal-select:not(.portal-select__trigger){background-position:right .375rem center;min-height:2.625rem;padding-inline:.75rem 1.875rem}}.portal-checkbox{--checkbox-size:1.25rem;--checkbox-radius:.4375rem;--checkbox-focus-ring:rgb(from var(--brand-primary) r g b / .22);--checkbox-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.25L6.75 11.5L12.5 4.75' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");min-height:2.75rem;color:var(--text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:.75rem;padding-block:.375rem;font-size:clamp(.875rem,1.8vw,.9375rem);line-height:1.4;display:inline-flex}.portal-checkbox__text{flex:1;min-width:0;padding-top:.0625rem}.portal-checkbox input[type=checkbox],input[type=checkbox].portal-checkbox__input{appearance:none;width:var(--checkbox-size);height:var(--checkbox-size);border:1.5px solid var(--border-strong);border-radius:var(--checkbox-radius);background-color:var(--surface);cursor:pointer;transition:border-color var(--duration-fast) var(--ease-smooth), background-color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth), transform var(--duration-fast) var(--ease-smooth);background-position:50%;background-repeat:no-repeat;background-size:.875rem;flex-shrink:0;place-content:center;margin:0;display:grid}.portal-checkbox:hover input[type=checkbox]:not(:disabled),.portal-checkbox input[type=checkbox]:not(:disabled):hover{border-color:var(--border-focus);background-color:var(--surface-muted)}.portal-checkbox input[type=checkbox]:active:not(:disabled){transform:scale(.94)}.portal-checkbox input[type=checkbox]:checked{border-color:var(--brand-primary);background-color:var(--brand-primary);background-image:var(--checkbox-check)}.portal-checkbox input[type=checkbox]:checked:hover:not(:disabled){border-color:var(--brand-primary-hover);background-color:var(--brand-primary-hover)}.portal-checkbox input[type=checkbox]:focus{outline:none}.portal-checkbox input[type=checkbox]:focus-visible{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--checkbox-focus-ring)}.portal-checkbox input[type=checkbox]:checked:focus-visible{border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--checkbox-focus-ring), inset 0 0 0 1px color-mix(in srgb, var(--brand-on-primary) 20%, transparent)}.portal-checkbox input[type=checkbox]:disabled{opacity:.58;cursor:not-allowed}.portal-checkbox:has(input[type=checkbox]:disabled){color:var(--text-muted);cursor:not-allowed}[data-theme=dark] .portal-checkbox{--checkbox-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.25L6.75 11.5L12.5 4.75' stroke='%230a0e17' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}@media (prefers-color-scheme:dark){:root:not([data-theme]) .portal-checkbox{--checkbox-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M3.5 8.25L6.75 11.5L12.5 4.75' stroke='%230a0e17' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}}@media (prefers-reduced-motion:reduce){.portal-checkbox input[type=checkbox]{transition:none}}@media (width<=359px){.portal-checkbox{gap:.625rem}}
