@font-face{font-family:Onest;src:url('/static/fonts/Onest-VariableFont.ttf')}@font-face{font-family:Involve;src:url('/static/fonts/Involve-Regular.woff2')}body{font-family:Onest,Arial,sans-serif}.secondary-font{font-family:Involve,Onest,sans-serif;text-transform:none!important}.custom-modal-overlay,.drawer-overlay{transition:opacity .22s ease,visibility .22s ease}.custom-modal-overlay:not(.is-hidden),.drawer-overlay:not(.is-hidden){animation:overlay-in .22s ease}.custom-modal-overlay:not(.is-hidden) .custom-modal-card{animation:panel-in .28s cubic-bezier(.2,.8,.2,1)}.drawer-overlay:not(.is-hidden) .drawer-aside-panel{animation:none}.settings-panel.is-hidden{opacity:0;transform:translateY(10px);pointer-events:none}.dashboard-class-card{display:flex;align-items:center;justify-content:space-between;padding:16px;border:1px solid var(--border-color,#dce1e8);border-radius:8px;margin:8px 0}.is-disabled{opacity:.45!important;pointer-events:none!important}.unsaved-notice{margin-top:14px;padding:10px 12px;border:1px solid rgba(245,158,11,.4);border-radius:8px;background:rgba(245,158,11,.1);color:#f59e0b;font-size:12px}.epic-btn.disabled,.epic-btn:disabled{opacity:.42;cursor:not-allowed;position:relative}.epic-btn.disabled:hover:after{content:attr(title);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;padding:7px 10px;border-radius:7px;background:#111827;color:#fff;font:12px Onest,sans-serif;z-index:30}@keyframes overlay-in{from{opacity:0}to{opacity:1}}@keyframes panel-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.shared-teacher-header{display:none}.toast-root{position:fixed;right:24px;top:24px;z-index:10000;display:flex;flex-direction:column;gap:10px}.toast-item{display:flex;align-items:center;gap:18px;min-width:280px;padding:14px 16px;border:1px solid var(--line-subtle,#334155);border-radius:12px;background:var(--surface-elevated,#111827);color:var(--text-head,#fff);box-shadow:0 16px 40px rgba(0,0,0,.25);animation:toast-in .25s ease}.toast-item button{border:0;background:none;color:inherit;font-size:20px;cursor:pointer}.toast-success{border-color:#10b981}@keyframes toast-in{from{opacity:0;transform:translateY(-10px) translateX(10px)}to{opacity:1;transform:none}}
.page-leaving{opacity:1}.unsaved-notice{margin-top:14px;padding:10px 12px;border:1px solid rgba(245,158,11,.4);border-radius:8px;background:rgba(245,158,11,.1);color:#f59e0b;font-size:12px;animation:toast-in .25s ease}.epic-btn.disabled,.epic-btn:disabled{opacity:.42;cursor:not-allowed;position:relative}.epic-btn.disabled:hover:after{content:attr(title);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%);white-space:nowrap;padding:7px 10px;border-radius:7px;background:#111827;color:#fff;font:12px Onest,sans-serif;z-index:30}@keyframes overlay-in{from{opacity:0}to{opacity:1}}@keyframes panel-in{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
.shared-teacher-header{display:block!important}body>header.teacher-header:not(.shared-teacher-header){display:none!important}
.task-icon-button{width:34px;height:34px;border:1px solid var(--line-subtle,#334155);border-radius:9px;background:transparent;color:var(--text-head,#fff);cursor:pointer;transition:transform .2s ease,background .2s ease}.task-icon-button:hover{transform:translateY(-2px);background:var(--surface-elevated,#1f2937)}.task-icon-button.danger{color:#ef4444}.assign-class-switch-row{display:flex;justify-content:space-between;align-items:center;width:100%;border:1px solid var(--line-subtle,#334155);background:transparent;color:var(--text-head,#fff);padding:12px;border-radius:10px;cursor:pointer}.assign-class-switch-row.is-active{border-color:#635bff;background:rgba(99,91,255,.12)}
.unsaved-notice{max-height:0;opacity:0;overflow:hidden;transform:translateY(-8px);margin-top:0;padding:0 12px;border:1px solid transparent;border-radius:8px;background:rgba(245,158,11,.1);color:#f59e0b;font-size:12px;pointer-events:none;animation:none;transition:max-height .32s ease,opacity .32s ease,transform .32s ease,margin .32s ease,padding .32s ease,border-color .32s ease}.unsaved-notice.is-visible{max-height:80px;opacity:1;transform:translateY(0);margin-top:14px;padding:10px 12px;border-color:rgba(245,158,11,.4);pointer-events:auto}
.yandex-bound-overlay{position:fixed;inset:0;z-index:12000;display:flex;align-items:center;justify-content:center;background:rgba(7,9,14,0);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s ease,background .35s ease,visibility .35s ease}
.yandex-bound-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto;background:rgba(7,9,14,.78)}
.yandex-bound-card{display:flex;flex-direction:column;align-items:center;gap:18px;text-align:center;transform:translateY(12px) scale(.96);opacity:0;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .4s ease}
.yandex-bound-overlay.is-visible .yandex-bound-card{transform:none;opacity:1}
.yandex-bound-check{width:88px;height:88px}
.yandex-bound-check svg{width:88px;height:88px}
.yandex-bound-check circle{fill:none;stroke:#22c55e;stroke-width:3;stroke-dasharray:201;stroke-dashoffset:201}
.yandex-bound-check path{fill:none;stroke:#22c55e;stroke-width:3.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:52;stroke-dashoffset:52}
.yandex-bound-overlay.is-visible .yandex-bound-check circle{animation:yandex-bound-circle .55s ease forwards}
.yandex-bound-overlay.is-visible .yandex-bound-check path{animation:yandex-bound-tick .35s ease .4s forwards}
.yandex-bound-text{margin:0;color:#fff;font:700 28px/1.2 Onest,sans-serif;opacity:0;transform:translateY(8px);transition:opacity .35s ease .45s,transform .35s ease .45s}
.yandex-bound-overlay.is-visible .yandex-bound-text{opacity:1;transform:none}
.yandex-bound-done{min-width:140px;opacity:0;transform:translateY(8px);transition:opacity .3s ease .6s,transform .3s ease .6s}
.yandex-bound-overlay.is-visible .yandex-bound-done{opacity:1;transform:none}
@keyframes yandex-bound-circle{to{stroke-dashoffset:0}}
@keyframes yandex-bound-tick{to{stroke-dashoffset:0}}
.binding-check{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#22c55e;color:#fff;font:700 16px/1 Onest,sans-serif}
.binding-item-card.is-bound{border-color:rgba(34,197,94,.45)}
.journal-cell-score{display:block;font-size:10px;color:var(--text-hint);font-weight:500}
@media (max-width:768px){
.cursor-spotlight,.spatial-grid-mesh,.ambient-glow{display:none!important}
.toast-root{right:12px;left:12px;top:12px}
.toast-item{min-width:0}
}
