.env-banner{bottom:max(.75rem, env(safe-area-inset-bottom,0px));left:max(.75rem, env(safe-area-inset-left,0px));z-index:9999;letter-spacing:.08em;text-transform:uppercase;pointer-events:none;box-shadow:var(--shadow-md);border-radius:999px;padding:.25rem .625rem;font-size:.6875rem;font-weight:700;position:fixed}.env-banner--dev{background:color-mix(in srgb, var(--status-info) 18%, var(--surface));color:var(--status-info);border:1px solid color-mix(in srgb, var(--status-info) 35%, var(--border-default))}.env-banner--hmg{background:color-mix(in srgb, var(--status-warning) 22%, var(--surface));color:color-mix(in srgb, var(--status-warning) 85%, var(--text-primary));border:1px solid color-mix(in srgb, var(--status-warning) 45%, var(--border-default))}.loading-screen{z-index:9999;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));background:var(--surface-background);color:var(--text-primary);opacity:1;transition:opacity .6s var(--ease-smooth);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.loading-screen--exit{opacity:0;pointer-events:none}.loading-screen__content{text-align:center;flex-direction:column;align-items:center;gap:clamp(1.25rem,4dvh,2.5rem);width:min(100%,22rem);max-height:100%;display:flex}.loading-screen__header{flex-direction:column;gap:.375rem;width:100%;display:flex}.loading-screen__brand{letter-spacing:-.03em;color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(1.125rem,3.5vw + .5rem,1.875rem);font-weight:700;line-height:1.25}.loading-screen__tagline{color:var(--text-secondary);text-wrap:balance;margin:0;font-size:clamp(.8125rem,2vw + .5rem,1.0625rem);font-weight:500;line-height:1.45}.loading-screen__progress{border:1px solid var(--border-default);background:var(--surface);width:100%;box-shadow:var(--shadow-sm);border-radius:clamp(.875rem,2vw,1.25rem);flex-direction:column;justify-content:center;align-items:center;gap:clamp(.875rem,2.5dvh,1.5rem);padding:clamp(1.25rem,4dvh,2rem) clamp(1rem,4vw,1.5rem);display:flex}.loading-screen__spinner{border:clamp(3px, .5vw, 4px) solid var(--surface-muted);border-top-color:var(--brand-primary);border-radius:50%;flex-shrink:0;width:clamp(2.75rem,8vw,4rem);height:clamp(2.75rem,8vw,4rem);animation:.9s linear infinite loading-screen-spin}@keyframes loading-screen-spin{to{transform:rotate(360deg)}}.loading-screen__percent{justify-content:center;align-items:flex-start;gap:.125rem;margin:0;line-height:1;display:flex}.loading-screen__percent-value{font-variant-numeric:tabular-nums;letter-spacing:-.04em;color:var(--brand-primary);font-size:clamp(2.5rem,10vw + .5rem,4.25rem);font-weight:700}.loading-screen__percent-symbol{color:var(--text-muted);margin-top:clamp(.25rem,1dvh,.375rem);font-size:clamp(1rem,3vw + .25rem,1.75rem);font-weight:600}.loading-screen__label{letter-spacing:.02em;color:var(--text-muted);text-wrap:balance;margin:0;font-size:clamp(.8125rem,2vw + .375rem,.9375rem);font-weight:500}@media (width<=359px){.loading-screen__content{width:100%}.loading-screen__progress{padding-inline:.875rem}}@media (height<=32rem){.loading-screen__content{gap:.875rem}.loading-screen__header{gap:.25rem}.loading-screen__progress{gap:.75rem;padding-block:1rem}.loading-screen__label{display:none}}@media (width>=768px){.loading-screen__content{gap:clamp(2rem,5dvh,3rem);width:min(100%,26rem)}.loading-screen__progress{gap:clamp(1.25rem,3dvh,1.75rem);padding:clamp(2rem,5dvh,2.5rem) clamp(1.5rem,4vw,2rem)}}@media (width>=1280px){.loading-screen__content{width:min(100%,28rem)}}@media (prefers-reduced-motion:reduce){.loading-screen,.app-content{transition:none}.loading-screen__spinner{border-top-color:var(--brand-primary);opacity:.85;animation:none}}.button{cursor:pointer;transition:background-color var(--duration-normal) var(--ease-smooth), border-color var(--duration-normal) var(--ease-smooth), color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-smooth), transform var(--duration-normal) var(--ease-spring);white-space:nowrap;border:1px solid #0000;border-radius:.625rem;justify-content:center;align-items:center;gap:.5rem;font-family:inherit;font-weight:600;line-height:1.25;text-decoration:none;display:inline-flex}.button:disabled{opacity:.55;cursor:not-allowed}.button:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.button--sm{padding:.375rem .75rem;font-size:.875rem}.button--md{padding:.625rem 1.125rem;font-size:.9375rem}.button--lg{padding:.75rem 1.5rem;font-size:1rem}.button--full-width{width:100%}.button--primary{background:var(--brand-primary);color:var(--brand-on-primary);box-shadow:var(--shadow-sm)}a.button--primary,a.button--primary:visited,a.button--primary:hover,a.button--primary:visited:hover{color:var(--brand-on-primary)}.button--primary:hover:not(:disabled){background:var(--brand-primary-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.button--primary:active:not(:disabled){background:var(--brand-primary-active);box-shadow:var(--shadow-sm);transform:translateY(0)}.button--secondary{background:var(--surface-muted);color:var(--text-primary)}a.button--secondary,a.button--secondary:visited,a.button--secondary:hover,a.button--secondary:visited:hover{color:var(--text-primary)}.button--secondary:hover:not(:disabled){background:var(--border-default);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.button--outline{color:var(--brand-primary);border-color:var(--brand-primary);background:0 0}a.button--outline,a.button--outline:visited,a.button--outline:hover,a.button--outline:visited:hover{color:var(--brand-primary)}.button--outline:hover:not(:disabled){background:var(--surface-muted);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.button--ghost{color:var(--text-primary);background:0 0}a.button--ghost,a.button--ghost:visited,a.button--ghost:hover,a.button--ghost:visited:hover{color:var(--text-primary)}.button--ghost:hover:not(:disabled){background:var(--surface-muted)}.button__icon{transition:transform var(--duration-normal) var(--ease-spring);flex-shrink:0;display:inline-flex}.button:hover:not(:disabled) .button__icon{transform:scale(1.1)}.modal-overlay{z-index:10000;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));background:var(--surface-overlay);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay:not(.modal-overlay--closing){animation:modal-fade-in var(--duration-fast) var(--ease-smooth)}.modal-overlay--closing{animation:modal-fade-out var(--duration-fast) var(--ease-smooth) forwards;pointer-events:none}.modal{border:1px solid var(--border-default);background:var(--surface-elevated);width:min(100%,36rem);max-height:min(90dvh,100%);box-shadow:var(--shadow-lg);border-radius:.75rem;flex-direction:column;display:flex;overflow:hidden}.modal:not(.modal--schedule):not(.modal--report):not(.modal--calendar):not(.modal--wide):not(.modal--insights):not(.modal--shop) .modal__header{flex-shrink:0}.modal:not(.modal--schedule):not(.modal--report):not(.modal--calendar):not(.modal--wide):not(.modal--insights):not(.modal--shop) .modal__body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow:hidden auto}.modal--wide{width:min(100%,52rem);max-height:min(92dvh,100%)}.modal--wide .modal__header{flex-shrink:0}.modal--wide .modal__body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow:hidden auto}.modal--shop{width:min(100%,44rem);height:auto;max-height:min(90dvh,100%)}.modal--shop .modal__header{flex-shrink:0}.modal--shop .modal__body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:auto;min-height:0;display:flex;overflow:hidden auto}.modal--insights{width:min(100%,52rem);height:min(92dvh,44rem);max-height:min(92dvh,100%)}.modal--insights .modal__header{flex-shrink:0}.modal--insights .modal__body{flex-direction:column;flex:auto;min-height:0;padding:1.25rem 1.5rem;display:flex;overflow:hidden}.modal--schedule{width:min(100%,58rem);max-height:min(92dvh,100%)}.modal--schedule .modal__header{flex-shrink:0;padding:1.25rem 1.75rem}.modal--schedule .modal__title{font-size:1.25rem}.modal--report{width:min(100%,60rem);max-height:min(92dvh,100%);animation:modal-calendar-in var(--duration-normal) var(--ease-spring)}.modal--report .modal__header{background:var(--surface);flex-shrink:0;padding:1.25rem 1.75rem}.modal--report .modal__title{font-family:var(--font-display);letter-spacing:-.02em;font-size:1.25rem;font-weight:800}.modal--report .modal__close{width:2.25rem;height:2.25rem;transition:background-color var(--duration-fast) var(--ease-smooth), color var(--duration-fast) var(--ease-smooth), transform var(--duration-fast) var(--ease-spring)}.modal--report .modal__close:hover{transform:scale(1.06)}.modal--report .modal__body{-webkit-overflow-scrolling:touch;background:color-mix(in srgb, var(--brand-primary) 4%, var(--surface-background));flex:auto;min-height:0;padding:0;overflow:hidden auto}.modal--calendar{width:min(100%,52rem);max-height:min(92dvh,100%);animation:modal-calendar-in var(--duration-normal) var(--ease-spring);overflow:visible}.modal--calendar .modal__header{flex-shrink:0;padding:1.25rem 1.75rem}.modal--calendar .modal__title{font-size:1.25rem}.modal--calendar .modal__close{width:2.25rem;height:2.25rem;transition:background-color var(--duration-fast) var(--ease-smooth), color var(--duration-fast) var(--ease-smooth), transform var(--duration-fast) var(--ease-spring)}.modal--calendar .modal__close:hover{transform:scale(1.06)}.modal--calendar .modal__body{flex:auto;min-height:0;padding:0;overflow:visible}.modal__header-actions{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.modal--schedule .modal__body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding:0;overflow:hidden auto}.modal__header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:flex-start;gap:1rem;padding:1.25rem 1.5rem;display:flex}.modal__title{color:var(--text-primary);margin:0;font-size:1.0625rem;font-weight:600;line-height:1.4}.modal__close{width:2rem;height:2rem;color:var(--text-muted);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-smooth);background:0 0;border:none;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:1.5rem;line-height:1;display:inline-flex}.modal__close:hover{background:var(--surface-muted);color:var(--text-primary)}.modal__body{color:var(--text-secondary);padding:1.25rem 1.5rem;font-size:.9375rem;line-height:1.6;overflow-y:auto}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}@keyframes modal-calendar-in{0%{opacity:0;transform:translateY(.75rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.modal-overlay:not(.modal-overlay--closing){animation:none}.modal-overlay--closing{opacity:0;animation:none}.modal--calendar,.modal--report{animation:none}.modal-loading__spinner{border-top-color:var(--brand-primary);opacity:.85;animation:none}}.modal-loading{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:.875rem;width:100%;padding:2.5rem 1.5rem;display:flex}.modal-loading__spinner{border:3px solid color-mix(in srgb, var(--brand-primary) 12%, var(--surface-muted));border-top-color:var(--brand-primary);border-radius:50%;flex-shrink:0;width:2.5rem;height:2.5rem;animation:.75s linear infinite modal-loading-spin}.modal-loading__label{font-family:var(--font-body);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.875rem;font-weight:500}.modal-loading--report{min-height:28rem}.modal-loading--calendar{min-height:min(92dvh - 5.25rem,38rem)}.modal-loading--schedule{min-height:min(92dvh - 5.25rem,34rem)}.modal--report .modal-loading,.modal--calendar .modal-loading,.modal--schedule .modal-loading{padding-inline:1.75rem}@keyframes modal-loading-spin{to{transform:rotate(360deg)}}.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}}.login-return-overlay{--login-return-duration:1s;--login-return-ease:var(--ease-spring);z-index:9000;pointer-events:none;position:fixed;inset:0;overflow:visible}.login-return-overlay.login-page{overflow:visible}.login-return-overlay .login-page__content.login-return-overlay__content{opacity:1;filter:blur();animation:none;transform:translate(0,0)scale(1)}.login-return-overlay__shell{width:100%;min-width:0}.login-return-overlay .login-page__main{overflow:visible}.login-return-overlay.login-page--exit{animation:login-return-overlay-release var(--login-return-duration) var(--ease-smooth) forwards}.login-return-overlay.login-page--exit .login-page__bg{animation:login-return-bg-exit var(--login-return-duration) var(--login-return-ease) forwards}.login-return-overlay.login-page--exit .login-page__overlay{animation:login-return-veil-exit var(--login-return-duration) var(--login-return-ease) forwards}.login-return-overlay.login-page--exit .login-page__overlay:before,.login-return-overlay.login-page--exit .login-page__overlay:after{animation:none}.login-return-overlay.login-page--exit .login-return-overlay__card-track{will-change:transform, opacity, filter;animation:login-return-card-exit var(--login-return-duration) var(--login-return-ease) forwards}body.login-return-active{--login-return-duration:1s;--login-return-ease:var(--ease-spring)}body.login-return-active .app-content{animation:login-return-home-enter var(--login-return-duration) var(--login-return-ease) both;will-change:filter, opacity}body.login-return-active .page-enter__item{opacity:1;transform:none;animation:none!important}@keyframes login-return-card-exit{0%{opacity:1;filter:blur();transform:translate(0,0)scale(1)}22%{opacity:1;transform:translate(-.35rem)scale(1.008)}45%{opacity:1;filter:blur()}75%{opacity:1;filter:blur(2px);transform:translate(calc(72vw + .5rem))scale(.99)}to{opacity:0;filter:blur(6px);transform:translate(calc(100vw + 1.5rem))scale(.98)}}@keyframes login-return-veil-exit{0%,18%{opacity:1}to{opacity:0}}@keyframes login-return-bg-exit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}@keyframes login-return-home-enter{0%{opacity:.12;filter:blur(16px)}45%{opacity:.72;filter:blur(6px)}55%{filter:blur()}to{opacity:1;filter:blur()}}@keyframes login-return-overlay-release{0%,94%{opacity:1;visibility:visible}to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){body.login-return-active .app-content{animation:none}.login-return-overlay.login-page--exit,.login-return-overlay.login-page--exit .login-page__bg,.login-return-overlay.login-page--exit .login-page__overlay,.login-return-overlay.login-page--exit .login-return-overlay__card-track{opacity:0;visibility:hidden;animation:none}}.login-page{background-color:var(--surface-background);flex-direction:column;min-height:100svh;display:flex;position:relative;overflow-x:clip}.login-page__bg{z-index:0;transform-origin:50%;will-change:transform;background-image:url(/images/login-background.png);background-position:50%;background-repeat:no-repeat;background-size:cover;animation:32s ease-in-out infinite alternate login-ken-burns;position:fixed;inset:-4%}.login-page__overlay{z-index:0;background:rgb(from var(--surface-background) r g b / .58);pointer-events:none;position:fixed;inset:0;overflow:hidden}.login-page__overlay:before,.login-page__overlay:after{content:"";filter:blur(72px);opacity:.28;pointer-events:none;border-radius:50%;animation:18s ease-in-out infinite login-orb-float;position:absolute}.login-page__overlay:before{background:color-mix(in srgb, var(--brand-primary) 55%, var(--surface-background));width:min(42vw,18rem);height:min(42vw,18rem);top:12%;left:-8%}.login-page__overlay:after{background:color-mix(in srgb, var(--brand-accent) 50%, var(--surface-background));width:min(36vw,14rem);height:min(36vw,14rem);animation-delay:-9s;bottom:8%;right:-6%}[data-theme=dark] .login-page__overlay{background:rgb(from var(--surface-background) r g b / .74)}.login-page__top{top:max(1rem, env(safe-area-inset-top,0px));right:max(1rem, env(safe-area-inset-right,0px));left:max(1rem, env(safe-area-inset-left,0px));z-index:3;pointer-events:none;justify-content:flex-end;display:flex;position:fixed}.login-page__top>*{pointer-events:auto}.login-page__content{z-index:1;opacity:0;will-change:transform, opacity;min-height:100svh;animation:login-launch 1s var(--ease-spring) forwards;flex-direction:column;flex:1;display:flex;position:relative}.login-page__main{z-index:1;padding:max(4.5rem, calc(env(safe-area-inset-top,0px) + 3.5rem)) max(1rem, env(safe-area-inset-right,0px)) max(1.5rem, env(safe-area-inset-bottom,0px)) max(1rem, env(safe-area-inset-left,0px));flex:1;justify-content:center;align-items:center;display:flex;position:relative}.login-page__stack{width:min(100%,26rem)}.login-page__stack>.page-enter__item{width:100%;min-width:0}.login-shell{border:1px solid color-mix(in srgb, var(--border-default) 72%, transparent);background:linear-gradient(168deg, var(--surface) 0%, color-mix(in srgb, var(--surface-muted) 88%, var(--surface)) 100%);width:100%;box-shadow:var(--shadow-lg), inset 0 1px 0 #ffffffa6;border-radius:1rem;flex-direction:column;display:flex;overflow:hidden}[data-theme=dark] .login-shell{background:linear-gradient(168deg, color-mix(in srgb, var(--surface) 92%, var(--brand-primary) 8%) 0%, var(--surface-muted) 100%);box-shadow:var(--shadow-lg), inset 0 1px 0 #ffffff0a}.login-shell__brand{border-bottom:1px solid var(--border-default);background:color-mix(in srgb, var(--surface-muted) 88%, var(--surface));justify-content:center;align-items:center;padding:clamp(.875rem,2.5vw,1.125rem) clamp(1rem,4vw,1.5rem);display:flex}.login-shell__brand-logo{object-fit:contain;width:min(100%,16.5rem);height:auto;display:block}[data-theme=dark] .login-shell__brand-logo{filter:saturate(.72)brightness(.92)}.login-shell__body{flex-direction:column;gap:clamp(1.125rem,3dvh,1.5rem);padding:clamp(1.25rem,4vw,1.75rem);display:flex}.login-shell__identity{text-align:center;flex-direction:column;align-items:center;gap:clamp(.75rem,2dvh,1rem);display:flex}.login-shell__intro{flex-direction:column;gap:.375rem;max-width:22rem;display:flex}.login-shell__title{color:var(--text-primary);text-wrap:balance;margin:0;font-size:clamp(1.0625rem,2.5vw + .5rem,1.3125rem);font-weight:500;line-height:1.4}.login-shell__title strong{background:linear-gradient(90deg, var(--brand-primary) 0%, var(--brand-accent) 50%, var(--brand-primary) 100%);color:#0000;background-size:200%;-webkit-background-clip:text;background-clip:text;font-weight:700;animation:8s linear infinite login-gradient-shift}.login-shell__subtitle{color:var(--text-secondary);text-wrap:balance;margin:0;font-size:clamp(.8125rem,1.5vw + .5rem,.9375rem);line-height:1.5}.login-shell__form{flex-direction:column;gap:.875rem;display:flex}.login-shell__actions{flex-direction:column;gap:.375rem;margin-top:.25rem;display:flex}.login-shell__error{color:var(--status-danger-text,#991b1b);background:color-mix(in srgb, var(--status-danger,#ef4444) 12%, var(--surface));border:1px solid color-mix(in srgb, var(--status-danger,#ef4444) 24%, var(--border-default));border-radius:.5rem;margin:0;padding:.75rem .875rem;font-size:.875rem}.login-shell__switch-account{font:inherit;color:var(--brand-primary);cursor:pointer;text-align:center;min-height:2.75rem;transition:background-color var(--duration-fast) var(--ease-smooth);background:0 0;border:0;border-radius:.5rem;margin:0;padding:.5rem .75rem;font-size:.875rem;font-weight:600}.login-shell__switch-account:hover:not(:disabled){background:color-mix(in srgb, var(--brand-primary) 8%, transparent)}.login-shell__switch-account:disabled{opacity:.6;cursor:not-allowed}.login-shell__form .button--primary{isolation:isolate;box-shadow:var(--shadow-sm), 0 0 0 1px rgb(from var(--brand-primary) r g b / .08)}.login-shell__form .button--primary:hover:not(:disabled){box-shadow:var(--shadow-md), 0 0 0 1px rgb(from var(--brand-primary) r g b / .14), 0 8px 20px rgb(from var(--brand-primary) r g b / .22)}.login-shell__form .input-field{transition:transform var(--duration-normal) var(--ease-spring)}.login-shell__form .input-field:focus-within{transform:translateY(-2px)}.login-shell__form .input-field__input{transition:border-color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth)}.login-shell__form .input-field:focus-within .input-field__input{box-shadow:0 0 0 3px rgb(from var(--brand-primary) r g b / .2), 0 8px 20px rgb(from var(--brand-primary) r g b / .08)}.login-shell__footer{flex-direction:column;gap:.75rem;padding-top:.25rem;display:flex}.login-shell__divider{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.75rem;margin:0;font-size:.75rem;font-weight:600;display:flex}.login-shell__divider:before,.login-shell__divider:after{content:"";background:var(--border-default);flex:1;height:1px}.login-shell__home-link{border:1px solid var(--border-default);background:var(--surface-muted)}.login-shell__home-link:hover:not(:disabled){background:var(--surface);border-color:var(--border-strong)}.login-shell__home-link svg{transition:transform var(--duration-normal) var(--ease-spring)}.login-shell__home-link:hover svg{transform:translate(-3px)}.login-shell__privacy{text-align:center;color:var(--text-muted);margin:0;font-size:.75rem;line-height:1.45}@media (width<=359px){.login-shell__brand{padding-inline:.875rem}.login-shell__brand-logo{width:100%}.login-shell__body{padding-inline:1rem}}@media (height<=640px){.login-page__main{padding-top:max(4rem, env(safe-area-inset-top,0px));align-items:flex-start}.login-shell__body{gap:1rem;padding-block:1rem}.login-saved-account-avatar{--login-avatar-size:5.5rem;margin-bottom:0}}@keyframes login-launch{0%{opacity:0;filter:blur(6px);transform:translate(calc(-100vw - 1.5rem))scale(.98)}55%{filter:blur()}78%{transform:translate(.35rem)scale(1.008)}to{opacity:1;filter:blur();transform:translate(0,0)scale(1)}}@keyframes login-ken-burns{0%{transform:scale(1)translate(0,0)}to{transform:scale(1.05)translate(-1.2%,-.6%)}}@keyframes login-orb-float{0%,to{transform:translate(0,0)scale(1)}50%{transform:translate(2%,-3%)scale(1.06)}}@keyframes login-gradient-shift{to{background-position:200%}}@media (prefers-reduced-motion:reduce){.login-page__bg,.login-page__overlay:before,.login-page__overlay:after,.login-shell__title strong{animation:none}.login-page__content{opacity:1;filter:none;animation:none;transform:none}.login-shell__form .input-field:focus-within{transform:none}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .login-shell{background:linear-gradient(168deg, color-mix(in srgb, var(--surface) 92%, var(--brand-primary) 8%) 0%, var(--surface-muted) 100%);box-shadow:var(--shadow-lg), inset 0 1px 0 #ffffff0a}:root:not([data-theme=light]) .login-shell__brand-logo{filter:saturate(.72)brightness(.92)}}:root,[data-theme=light]{--brand-primary:#06f;--brand-primary-hover:#0052cc;--brand-primary-active:#003d99;--brand-on-primary:#fff;--brand-accent:#8b5cf6;--brand-accent-hover:#7040d9;--brand-on-accent:#fff;--surface-background:#f8fafc;--surface:#fff;--surface-muted:#f1f5f9;--surface-elevated:#fff;--surface-overlay:#0a0e1780;--border-default:#cbd5e1;--border-strong:#94a3b8;--border-focus:#06f;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#475569;--text-inverse:#fff;--text-link:#0052cc;--text-link-hover:#004099;--status-success:#10b981;--status-success-subtle:#d1fae5;--status-warning:#f59e0b;--status-warning-subtle:#fef3c7;--status-danger:#ef4444;--status-danger-subtle:#fee2e2;--status-info:#3b82f6;--status-info-subtle:#dbeafe;--shadow-sm:0 1px 3px #0f172a14;--shadow-md:0 8px 24px #0f172a1a;--shadow-lg:0 16px 40px #0f172a1f;--shadow-glow:0 4px 16px #06f3;--gradient-hero:none;--gradient-brand:var(--brand-primary);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-normal:.28s;--scrollbar-size:.375rem;--scrollbar-thumb:color-mix(in srgb, var(--brand-accent) 45%, var(--border-default));--scrollbar-track:transparent;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=dark]{--brand-primary:#66a3ff;--brand-primary-hover:#99c2ff;--brand-primary-active:#cce0ff;--brand-on-primary:#0a0e17;--brand-accent:#be9aff;--brand-accent-hover:#d4bcff;--brand-on-accent:#0a0e17;--surface-background:#0a0e17;--surface:#111827;--surface-muted:#1a2332;--surface-elevated:#1e293b;--surface-overlay:#000000a6;--border-default:#243044;--border-strong:#2d3748;--border-focus:#66a3ff;--text-primary:#f8fafc;--text-secondary:#e2e8f0;--text-muted:#94a3b8;--text-inverse:#0a0e17;--text-link:#99c2ff;--text-link-hover:#cce0ff;--status-success:#6ee7b7;--status-success-subtle:#10b98126;--status-warning:#fcd34d;--status-warning-subtle:#f59e0b26;--status-danger:#fca5a5;--status-danger-subtle:#ef444426;--status-info:#93c5fd;--status-info-subtle:#3b82f626;--shadow-sm:0 1px 3px #0006;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 16px 48px #00000080;--shadow-glow:0 0 28px #66a3ff66;--gradient-hero:linear-gradient(135deg, #0066ff26 0%, #8b5cf61f 50%, #0066ff0f 100%);--gradient-brand:linear-gradient(135deg, #3385ff 0%, #a978ff 100%);--scrollbar-thumb:color-mix(in srgb, var(--brand-accent) 45%, var(--border-default));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme]){--brand-primary:#66a3ff;--brand-primary-hover:#99c2ff;--brand-primary-active:#cce0ff;--brand-on-primary:#0a0e17;--brand-accent:#be9aff;--brand-accent-hover:#d4bcff;--brand-on-accent:#0a0e17;--surface-background:#0a0e17;--surface:#111827;--surface-muted:#1a2332;--surface-elevated:#1e293b;--surface-overlay:#000000a6;--border-default:#243044;--border-strong:#2d3748;--border-focus:#66a3ff;--text-primary:#f8fafc;--text-secondary:#e2e8f0;--text-muted:#94a3b8;--text-inverse:#0a0e17;--text-link:#99c2ff;--text-link-hover:#cce0ff;--status-success:#6ee7b7;--status-success-subtle:#10b98126;--status-warning:#fcd34d;--status-warning-subtle:#f59e0b26;--status-danger:#fca5a5;--status-danger-subtle:#ef444426;--status-info:#93c5fd;--status-info-subtle:#3b82f626;--shadow-sm:0 1px 3px #0006;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 16px 48px #00000080;--shadow-glow:0 0 28px #66a3ff66;--gradient-hero:linear-gradient(135deg, #0066ff26 0%, #8b5cf61f 50%, #0066ff0f 100%);--gradient-brand:linear-gradient(135deg, #3385ff 0%, #a978ff 100%);--scrollbar-thumb:color-mix(in srgb, var(--brand-accent) 45%, var(--border-default));--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:999px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}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}}:root{--font-display:"Bricolage Grotesque", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", system-ui, sans-serif}body{font-family:var(--font-body)}h1,h2,h3,h4,.font-display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.15}h1{font-weight:800}h2{font-weight:700}h3{font-weight:600}@media print{html,body{width:100%!important;height:auto!important;margin:0!important;padding:0!important;overflow:visible!important}body.printing{--print-page-bg:#fff;--print-text:#000;--print-text-muted:#334155;--print-border:#212121;--print-cell-bg:#f7f7f7;--print-header-bg:#fff;--print-grade-ok:#1d4ed8;--print-grade-low:#b91c1c;--print-danger:#b91c1c;--print-font:"Segoe UI", "Trebuchet MS", Arial, sans-serif;--brand-primary:#06f;--text-primary:#0f172a;--text-secondary:#334155;--text-muted:#475569;--surface:#fff;--surface-muted:#f1f5f9;--surface-elevated:#fff;--surface-background:#fff;--border-default:#cbd5e1;--lightningcss-light:initial!important;--lightningcss-dark: !important;color-scheme:light!important;background:var(--print-page-bg)!important;color:var(--print-text)!important}body.printing *{visibility:hidden}body.printing .modal-overlay,body.printing .modal,body.printing .modal__body,body.printing .report-card,body.printing .schedule-grid,body.printing [id$=-printable],body.printing [id$=-printable] *{visibility:visible}body.printing .env-banner,body.printing .student-home__header,body.printing .student-home__main{display:none!important}body.printing .student-home,body.printing .app-content{background:var(--print-page-bg)!important;min-height:0!important;margin:0!important;padding:0!important;overflow:visible!important}body.printing .modal-overlay{background:0 0!important;margin:0!important;padding:0!important;animation:none!important;display:block!important;position:static!important;inset:auto!important}body.printing .modal{width:100%!important;max-width:none!important;max-height:none!important;box-shadow:none!important;background:var(--print-page-bg)!important;border:none!important;border-radius:0!important;margin:0!important;display:block!important;position:static!important;overflow:visible!important}body.printing .modal__header{display:none!important}body.printing .modal__body{color:var(--print-text)!important;background:var(--print-page-bg)!important;margin:0!important;padding:0!important;overflow:visible!important}body.printing .report-card,body.printing .schedule-grid{display:block!important}body.printing .report-card__table-wrap,body.printing .schedule-grid__table-wrap{box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;overflow:visible!important}body.printing [id$=-printable]{box-sizing:border-box;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:var(--print-page-bg)!important;width:100%!important;max-width:100%!important;color:var(--print-text)!important;font-family:var(--print-font)!important;margin:0!important;padding:0!important;display:block!important;position:relative!important;inset:auto!important}body.printing [id$=-printable] th,body.printing [id$=-printable] td{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:1px solid var(--print-border)!important;background:var(--print-cell-bg)!important;color:var(--print-text)!important}body.printing [id$=-printable] thead th{background:var(--print-header-bg)!important}body.printing [id$=-printable] tbody tr{page-break-inside:avoid;break-inside:avoid}}@keyframes page-enter-rise{0%{opacity:0;transform:translateY(1.75rem)}to{opacity:1;transform:none}}.page-enter{--page-enter-duration:.76s;--page-enter-stagger:80ms;--page-enter-ease:cubic-bezier(.22, 1, .36, 1)}.page-enter__item{animation:page-enter-rise var(--page-enter-duration) var(--page-enter-ease) both;animation-delay:var(--page-enter-delay,0s)}@media (prefers-reduced-motion:reduce){.page-enter__item{animation:none}}.page-enter__item--scroll-driven{animation:none}.page-enter__item--chrome{z-index:20;position:relative;overflow:visible}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}@media (hover:none) and (pointer:coarse){html{scroll-behavior:auto}}body{width:100%;font-family:var(--font-body);color:var(--text-primary);background:var(--surface-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth);margin:0;font-size:16px;line-height:1.55;overflow-x:clip}body.loading-active{overflow:hidden}html.scroll-locked,body.scroll-locked{overscroll-behavior:none}#root{width:100%;min-height:100svh;overflow-x:clip}a{color:var(--text-link);transition:color var(--duration-fast) var(--ease-smooth)}a:hover{color:var(--text-link-hover)}.route-guard{min-height:100svh;color:var(--text-secondary);place-items:center;padding:2rem;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}html{scroll-behavior:auto}}
