.tool-dock{position:-webkit-sticky;position:sticky;top:0;z-index:30;display:flex;gap:9px;padding:10px 26px;overflow-x:auto;scrollbar-width:none;background:color-mix(in srgb,var(--theme-canvas,#fffaf0) 90%,white);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--theme-line,#ebe8df)}.tool-dock::-webkit-scrollbar{display:none}.tool-dock-btn{flex:1 0 auto;min-width:94px;display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 10px 7px;border:2px solid transparent;border-radius:16px;background:#fff;color:#33445c;font:inherit;font-size:12px;font-weight:800;line-height:1.15;cursor:pointer;box-shadow:0 3px 0 #e9e4d6;transition:transform .12s,box-shadow .12s,border-color .12s}.tool-dock-btn:hover{transform:translateY(-2px)}.tool-dock-btn:active{transform:translateY(2px);box-shadow:0 1px 0 #e9e4d6}.tool-dock-btn:focus-visible{outline:3px solid var(--theme-accent,#168f83);outline-offset:2px}.tool-dock-btn.is-active{border-color:var(--theme-accent,#168f83);box-shadow:0 3px 0 var(--theme-accent,#168f83)}.tool-dock-icon{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;color:#fff}.tone-checkin .tool-dock-icon,.tool-dock-icon{background:#218c79}.tone-picker .tool-dock-icon{background:#7057c9}.tone-timer .tool-dock-icon{background:#35a6d0}.tone-lesson .tool-dock-icon{background:#ee7259}.tone-draw .tool-dock-icon{background:#e5588a}.tone-book .tool-dock-icon{background:#d99a18}.tone-badges .tool-dock-icon{background:#c4507b}.tone-parade .tool-dock-icon{background:#8b5de0}.tool-dock-btn.is-live{border-color:#ee7259}.tool-dock-btn.is-live .tool-dock-icon{animation:dockPulse 1.4s ease-in-out infinite}@keyframes dockPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.tool-dock-label{white-space:nowrap}@media (max-width:760px){.tool-dock{position:fixed;top:auto;bottom:0;left:0;right:0;gap:6px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-bottom:0;border-top:1px solid var(--theme-line,#ebe8df);box-shadow:0 -10px 26px #0000001a;background:#fffffff2}.tool-dock-btn{min-width:68px;padding:6px 6px 5px;font-size:10.5px;background:transparent}.tool-dock-btn,.tool-dock-btn:active{box-shadow:none}.tool-dock-btn.is-active{background:#fff}.tool-dock-icon{width:34px;height:34px;border-radius:12px}.main-area{padding-bottom:92px}}.page-wrap.today-layout{display:flex;flex-direction:column;padding-top:18px}.today-layout>*{order:6}.today-layout>.welcome-row{order:1}.today-layout>.toolbar{order:2}.today-layout>.lesson-start-card{order:3}.today-layout>.section-heading{order:4}.today-layout>.roster-card{order:5}.today-layout>.fun-goal-strip{order:6}.today-layout>.stats-grid{order:7}.today-layout>.champion-section{order:8}.today-layout>.page-footer{order:10}.today-layout .welcome-row{min-height:0;padding-bottom:4px}.today-layout .welcome-row h1{font-size:clamp(24px,3.4vw,32px);line-height:1.12}.today-layout .hero-art,.today-layout .welcome-row h1 .desktop-break{display:none}.today-layout .toolbar{padding:10px 0 12px}.tool-launcher{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));grid-gap:10px;margin:0 0 16px}.tool-tile{display:flex;align-items:center;gap:10px;padding:10px 12px;border:2px solid var(--theme-line,#ebe8df);border-radius:16px;background:#fff;color:#33445c;font:inherit;font-size:13px;font-weight:800;text-align:left;cursor:pointer;box-shadow:0 3px 0 #e9e4d6;transition:transform .12s,border-color .12s}.tool-tile:hover{transform:translateY(-2px)}.tool-tile:focus-visible{outline:3px solid var(--theme-accent,#168f83);outline-offset:2px}.tool-tile.is-active{border-color:var(--theme-accent,#168f83);background:color-mix(in srgb,var(--theme-soft,#e6f5ff) 70%,white);box-shadow:0 3px 0 var(--theme-accent,#168f83)}.tool-tile-icon{flex:none;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;color:#fff;background:var(--theme-accent,#168f83)}.classroom-fun-page .tool-pane{display:none}.classroom-fun-page .tool-pane.is-active{display:block;animation:toolIn .22s ease-out}.classroom-fun-page .fun-feature-grid{display:block;max-width:780px;margin-inline:auto}.classroom-fun-page .fun-goal-card.tool-pane.is-active,.classroom-fun-page .timer-panel.tool-pane.is-active{max-width:780px;margin-inline:auto}@keyframes toolIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.classroom-fun-page .tool-pane.is-active,.tool-dock-btn,.tool-dock-btn.is-live .tool-dock-icon,.tool-tile{animation:none;transition:none}}@media (max-width:620px){.criteria-head .criterion-label{font-size:0;display:flex;justify-content:center}.criteria-head .criterion-index{font-size:12px}}.tool-dock{padding:12px 26px;gap:10px}.tool-dock-btn{min-width:98px;padding:9px 10px 8px;border-radius:20px;border-width:3px;font-size:13px}.tool-dock-icon{width:44px;height:44px;border-radius:16px;font-size:24px;line-height:1;color:inherit;background:#eef3fb}.tone-checkin .tool-dock-icon{background:#fff0b8}.tone-picker .tool-dock-icon{background:#e6defa}.tone-timer .tool-dock-icon{background:#d4eefa}.tone-lesson .tool-dock-icon{background:#ffe0d6}.tone-draw .tool-dock-icon{background:#ffdbe8}.tone-book .tool-dock-icon{background:#ffe9b5}.tone-badges .tool-dock-icon{background:#ffd9ea}.tone-parade .tool-dock-icon{background:#eadfff}@media (max-width:760px){.tool-dock-btn{min-width:68px;padding:6px 6px 5px;font-size:10.5px;border-width:2px}.tool-dock-icon{width:36px;height:36px;border-radius:13px;font-size:20px}}.tool-launcher{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}.tool-tile{flex-direction:column;justify-content:center;text-align:center;gap:6px;min-height:92px;padding:12px 8px;border-radius:20px;border-width:3px;font-size:14px}.tool-tile-icon{width:48px;height:48px;border-radius:16px;font-size:27px;line-height:1;color:inherit;background:#fff3cf}.tool-tile-label{line-height:1.15}@media (max-width:1100px){.tool-launcher{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width:760px){.tool-launcher{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tool-tile{min-height:84px;font-size:12.5px}}.classroom-fun-page .fun-preferences{margin-top:18px}.recent-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.seg{display:inline-flex;gap:2px;padding:3px;background:#f1ede2;border-radius:999px}.seg button{border:0;background:transparent;border-radius:999px;padding:6px 12px;font:inherit;font-size:12px;font-weight:800;color:#5d6a7d;cursor:pointer}.seg button.on{background:#fff;color:#27364b;box-shadow:0 1px 3px #0002}.seg button:focus-visible{outline:2px solid var(--theme-accent,#168f83);outline-offset:1px}.reward-rows{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-gap:8px;gap:8px}.reward-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;grid-gap:12px;gap:12px;padding:10px 12px;background:#fffdf7;border:2px solid #f3ead2;border-radius:16px}.reward-who{min-width:0;display:flex;flex-direction:column;gap:2px}.reward-who strong{font-size:15px}.reward-who small{font-size:12px;color:#657487;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reward-row .history-time{font-size:12px;color:#8b95a3}.book-pill{border:2px solid #ead7d2;background:#fff;border-radius:999px;padding:7px 12px;font:inherit;font-size:12.5px;font-weight:800;color:#8a4a3f;cursor:pointer;white-space:nowrap}.book-pill.on{border-color:#2e9e6d;background:#e3f6ec;color:#17744d}.recent-closed{margin:8px 0 0;padding:12px 14px;background:#f7f3e8;border-radius:14px;font-size:13px;color:#5d6a7d}@media (max-width:620px){.reward-row{grid-template-columns:44px minmax(0,1fr) auto}.reward-row .book-pill{grid-column:2/-1;justify-self:start}}.readers-card{padding:20px}.readers-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}.readers-emoji{flex:none;width:56px;height:56px;border-radius:18px;background:#ffe9b5;display:grid;place-items:center;font-size:31px}.readers-head h2{margin:0;font-size:24px;letter-spacing:.05em}.readers-head p{margin:3px 0 0;font-size:13px;color:#5d6a7d}.readers-pick{display:grid;grid-gap:8px;gap:8px;padding:14px;margin-bottom:14px;border-radius:18px;background:linear-gradient(120deg,#fff6d8,#f1ecff)}.readers-shuffle{justify-content:center;min-height:50px;font-size:16px}.readers-rule{margin:0;text-align:center;font-size:12px;color:#657487}.readers-last{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px}.readers-give{border:0;border-radius:999px;background:#7057c9;color:#fff;font:inherit;font-size:13px;font-weight:800;padding:8px 14px;cursor:pointer}.readers-note{margin:0 0 10px;padding:9px 12px;border-radius:12px;background:#e3f6ec;color:#17744d;font-size:13px;font-weight:700}.readers-stats{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.readers-stats .seg{margin-left:auto}.chip-stat{padding:6px 12px;border-radius:999px;background:#f5f1e6;font-size:13px;font-weight:700}.lost-stat{background:#fff0e9;color:#a44836}.readers-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;max-height:min(46vh,420px);overflow:auto}.reader-row{display:grid;grid-template-columns:40px minmax(0,1fr) auto auto 28px;align-items:center;grid-gap:10px;gap:10px;padding:8px 10px;border:2px solid #f0e6cc;border-radius:16px;background:#fff}.reader-row.is-back{background:#f6fcf8;border-color:#cfeadb}.reader-row.is-lost{background:#fff8f4;border-color:#f2c7b9}.reader-avatar{width:40px;height:40px;border-radius:14px;background:#fff1d6;display:grid;place-items:center;font-size:22px}.reader-who{min-width:0;display:flex;flex-direction:column}.reader-who strong{font-size:14.5px}.reader-who small{font-size:12px;color:#5d6a7d;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-toggle{border:2px solid #ead7d2;background:#fff;border-radius:999px;padding:7px 11px;font:inherit;font-size:12px;font-weight:800;color:#8a4a3f;cursor:pointer;white-space:nowrap}.reader-toggle.project{border-color:#e4dcf6;color:#5b45b0}.reader-toggle.on{border-color:#2e9e6d;background:#e3f6ec;color:#17744d}.reader-toggle.project.on{border-color:#e0b53b;background:#fff3c4;color:#8a5b00}.reader-status-options{display:flex;align-items:center;gap:4px;padding:3px;border:1px solid #e8e5ef;border-radius:13px;background:#f7f6fb}.reader-status-option{min-height:34px;padding:5px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:#617087;font:inherit;font-size:10px;font-weight:800;white-space:nowrap}.reader-status-option:hover{background:#fff}.reader-status-option.selected{border-color:#bde3ce;background:#e4f7ec;color:#176949;box-shadow:0 2px 0 #c8e8d5}.reader-status-option.lost.selected{border-color:#edc5b7;background:#fff0e9;color:#a44836;box-shadow:0 2px 0 #f3d5cb}.reader-status-option:disabled{opacity:.65;cursor:wait}.reader-x{border:0;background:transparent;font-size:20px;line-height:1;color:#9aa4b2;cursor:pointer}.reader-x:hover{color:#c0392b}.readers-empty{margin:8px 0;padding:12px;text-align:center;color:#657487;font-size:13px;list-style:none}.readers-give-one{margin-top:12px;font-size:13px}.readers-give-one summary{cursor:pointer;font-weight:800}.readers-give-form{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.readers-give-form select{flex:1 1 140px;min-width:0;padding:9px;border:2px solid #eadfc8;border-radius:12px;font:inherit}@media (max-width:640px){.reader-row{display:flex;flex-wrap:wrap;gap:8px}.reader-who{flex-grow:1;flex-shrink:1;flex-basis:calc(100% - 100px)}.reader-x{order:2}.reader-toggle{flex-grow:1;flex-shrink:1;flex-basis:calc(50% - 4px);order:3}.reader-status-options{order:3;flex:1 1 100%;justify-content:stretch}.reader-status-option{flex:1 1;padding-inline:4px;font-size:9px}.readers-stats .seg{margin-left:0}}.reader-return-celebration{position:fixed;inset:0;z-index:1300;display:grid;place-items:center;padding:20px;overflow:hidden;background:radial-gradient(circle at 50% 42%,#fff 0 15%,#fff2be 56%,#e4f8ff 100%)}.reader-return-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}.reader-return-confetti i{position:absolute;top:-20px;width:10px;height:17px;border-radius:3px;background:hsl(calc(var(--i,1)*41) 82% 58%);animation:champion-confetti 3.4s ease-in forwards}.reader-return-confetti i:nth-child(6n){background:#ff6f61}.reader-return-confetti i:nth-child(6n+1){background:#7254ca}.reader-return-confetti i:nth-child(6n+2){background:#30a7d1}.reader-return-confetti i:nth-child(6n+3){background:#40af7d}.reader-return-confetti i:nth-child(6n+4){background:#ffca45}.reader-return-card{position:relative;z-index:1;width:min(100%,510px);padding:34px 28px;text-align:center;border:4px solid #fff;border-radius:32px;background:#fffdf4;box-shadow:0 8px 0 #f0dfa7,0 22px 60px #23465b26;animation:champion-entrance .45s cubic-bezier(.2,1.35,.4,1) both}.reader-return-emoji{display:block;font-size:64px;animation:champion-bounce .8s ease-in-out infinite alternate}.reader-return-kicker{display:inline-block;margin:9px 0;padding:8px 13px;border-radius:999px;background:#e5f7ed;color:#25805a;font:800 11px var(--display);letter-spacing:.06em}.reader-return-card h2{margin:6px 0;color:#293652;font:900 clamp(32px,8vw,50px)/1.1 var(--display)}.reader-return-card>p{color:#66768a;font-size:15px}.reader-return-reward{display:flex;justify-content:center;align-items:center;gap:14px;margin:18px auto;padding:12px;border-radius:18px;background:#fff4c9;color:#825d00;font:900 20px var(--display)}.reader-return-reward span{font-size:23px}.reader-return-card .fun-action{min-width:160px;justify-content:center}.tool-tile{min-height:80px;padding:10px 8px;gap:4px}.tool-tile-icon{width:42px;height:42px;font-size:24px;border-radius:14px}.tool-launcher{gap:10px;margin-bottom:14px}@media (max-width:1100px) and (min-width:901px){.tool-launcher{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:760px){.tool-tile{min-height:72px;font-size:12px}.tool-tile-icon{width:36px;height:36px;font-size:21px;border-radius:12px}}.rc-overlay{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:16px;background:rgba(15,12,38,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.rc-card{position:relative;width:min(1000px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border-radius:26px;background:#fff;color:#27364b;box-shadow:0 30px 80px #0007}.rc-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border:0;border-radius:50%;background:#f1ede2;color:#27364b;display:grid;place-items:center;cursor:pointer}.rc-head{display:flex;gap:14px;align-items:center;margin-bottom:16px;padding-right:44px}.rc-emoji{flex:none;width:56px;height:56px;border-radius:18px;background:#d8f3e8;display:grid;place-items:center;font-size:30px}.rc-head h2{margin:0;font-size:24px}.rc-head p{margin:3px 0 0;font-size:13px;color:#5d6a7d}.rc-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:14px;padding:12px 14px;border-radius:16px;background:#f7f3e8}.rc-count{font-size:15px;font-weight:700}.rc-actions{display:flex;gap:8px;flex-wrap:wrap}.rc-btn{border:2px solid #e3dac0;background:#fff;border-radius:999px;padding:9px 16px;font:inherit;font-size:14px;font-weight:800;color:#33445c;cursor:pointer}.rc-btn.good{border-color:#2e9e6d;background:#e3f6ec;color:#17744d}.rc-btn.primary{border-color:transparent;background:#7057c9;color:#fff;padding:11px 28px}.rc-btn.quiet{border-color:transparent;background:transparent;color:#7a8696;text-decoration:underline}.rc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(172px,1fr));grid-gap:10px;gap:10px}.rc-student{width:100%;display:grid;grid-template-columns:44px 1fr;grid-template-areas:"a n" "a s";align-items:center;grid-column-gap:10px;column-gap:10px;padding:10px 12px;border:3px solid #cfeadb;border-radius:18px;background:#f4fbf7;font:inherit;text-align:left;cursor:pointer;transition:transform .1s}.rc-student:active{transform:scale(.98)}.rc-student.away{border-color:#e9dede;background:#f4f1f1;opacity:.75}.rc-avatar{grid-area:a;width:44px;height:44px;border-radius:15px;background:#fff;display:grid;place-items:center;font-size:25px}.rc-name{grid-area:n;font-size:15px;font-weight:800;color:#27364b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rc-state{grid-area:s;font-size:12.5px;font-weight:800;color:#17744d}.rc-student.away .rc-state{color:#8a6b6b}.rc-empty{padding:24px;text-align:center;color:#5d6a7d}.rc-foot{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:16px;font-size:13px;color:#5d6a7d}.roll-call-button{border-color:#2e9e6d;color:#17744d;font-weight:800}.present-chip,.present-toggle{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0;padding:9px 12px;border-radius:14px;background:#e9f7ef;font-size:13px;font-weight:700;color:#17744d}.present-toggle input{width:18px;height:18px;accent-color:#2e9e6d}.present-chip .text-link,.present-toggle .text-link{margin-left:auto}.roll-hint{display:block;width:100%;margin:10px 0;padding:10px 12px;border:2px dashed #cfd8c8;border-radius:14px;background:#fbfdf9;font:inherit;font-size:13px;font-weight:800;color:#3d6b52;text-align:left;cursor:pointer}.student-row.is-absent{opacity:.45}.student-row.is-absent .student-name strong:after{content:" · away";font-weight:700;font-size:11px;color:#8a6b6b}.fun-presence{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 12px;padding:10px 14px;border-radius:16px;background:#fff;border:2px solid var(--theme-line,#ebe8df);font-size:14px;font-weight:700;color:#33445c}.fun-presence-btn{border:2px solid #2e9e6d;background:#e3f6ec;color:#17744d;border-radius:999px;padding:8px 16px;font:inherit;font-weight:800;cursor:pointer}.classroom-fun-page .fun-feature-grid{max-width:none}.classroom-fun-page .tool-pane.is-active{max-width:1120px;margin-inline:auto}.classroom-fun-page .fun-goal-card.tool-pane.is-active,.classroom-fun-page .timer-panel.tool-pane.is-active{max-width:1120px}.classroom-fun-page.timer-dedicated{display:flex;min-height:calc(100vh - 150px);flex-direction:column}.classroom-fun-page.timer-dedicated .timer-panel{display:flex;width:100%;max-width:none!important;min-height:calc(100vh - 165px);flex:1 1;flex-direction:column;margin:0;padding:clamp(22px,4vw,52px);border-radius:26px}.classroom-fun-page.timer-dedicated .fun-timer-head{margin-bottom:22px}.classroom-fun-page.timer-dedicated .fun-timer-head h2{font-size:clamp(22px,2.5vw,32px)}.classroom-fun-page.timer-dedicated .fun-timer-head p{font-size:13px}.classroom-fun-page.timer-dedicated .fun-timer-clock{min-height:300px;flex:1 1;align-items:center;padding:30px 0}.classroom-fun-page.timer-dedicated .fun-clock-ring{width:clamp(230px,25vw,320px);height:clamp(230px,25vw,320px)}.classroom-fun-page.timer-dedicated .fun-clock-ring strong{font-size:clamp(48px,5vw,68px)}@media(max-width:700px){.classroom-fun-page.timer-dedicated{min-height:calc(100vh - 110px)}.classroom-fun-page.timer-dedicated .timer-panel{min-height:calc(100vh - 125px);padding:18px 14px}.classroom-fun-page.timer-dedicated .fun-timer-clock{min-height:245px}}.readers-body{display:grid;grid-gap:18px;gap:18px;align-items:start}.readers-give-box{display:grid;grid-gap:10px;gap:10px;padding:14px;border:2px solid #eadfc8;border-radius:18px;background:#fffdf7}.readers-give-box h3{margin:0;font-size:17px}.readers-give-box label{display:grid;grid-gap:5px;gap:5px;font-size:13px;font-weight:800;color:#47566b}.readers-give-box select{padding:11px;border:2px solid #eadfc8;border-radius:12px;background:#fff;font:inherit;font-weight:600}.readers-give-box .fun-action{justify-content:center;min-height:46px}.readers-give-box .present-toggle,.readers-give-box .roll-hint{margin:0}@media (min-width:1000px){.readers-body{grid-template-columns:minmax(300px,380px) minmax(0,1fr)}.readers-list{max-height:min(60vh,560px)}}@media (max-width:760px){.rc-card{padding:18px;border-radius:22px}.rc-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.readers-give-box .present-toggle{display:flex}.readers-give-box .present-toggle span{flex:1 1 140px}@media (max-width:760px){.rc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-student{grid-template-columns:38px 1fr;padding:9px 10px}.rc-avatar{width:38px;height:38px;font-size:22px}.rc-name{font-size:14px}}.timer-effects{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:12px 0}.timer-effect-chips{display:flex;gap:8px;flex-wrap:wrap}.timer-effect-chip,.timer-sound-btn{border:2px solid #e4dcc6;background:#fff;border-radius:999px;padding:8px 14px;font:inherit;font-size:13px;font-weight:800;color:#33445c;cursor:pointer}.timer-effect-chip.on{border-color:#7057c9;background:#efe9ff;color:#4b36a6}.timer-sound-btn{color:#5d6a7d}.timer-sound-btn.on{border-color:#2e9e6d;background:#e3f6ec;color:#17744d}.fun-timer-clock.has-effect .fun-clock-ring,.timer-full-ring.has-effect{display:none}.timer-full-effects{display:flex;justify-content:center;margin:10px 0}.timer-full-effects .timer-effects{justify-content:center;margin:0}.timer-full-effects .timer-effect-chip,.timer-full-effects .timer-sound-btn{background:#ffffff1c;border-color:#ffffff44;color:#fff}.timer-full-effects .timer-effect-chip.on{background:#fff;border-color:#fff;color:#2c1f73}.timer-full-effects .timer-sound-btn.on{background:#2e9e6d;border-color:#2e9e6d;color:#fff}.timer-stage{position:relative;overflow:hidden;width:100%;aspect-ratio:16/9;border-radius:22px;background:#07031a}.timer-stage.full{width:min(94vw,calc((100dvh - 380px) * 16 / 9));min-width:min(94vw,300px);margin-inline:auto;border-radius:26px}.timer-stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%}.neon-stage{display:grid;place-items:center}.neon-bg{position:absolute;inset:-35%;border-radius:50%;pointer-events:none}.neon-bg.a{background:repeating-conic-gradient(from 0deg,hsl(var(--h) 100% 58%/.8) 0 5deg,transparent 5deg 16deg);-webkit-mask-image:radial-gradient(circle,transparent 10%,#000 30%,#000 58%,transparent 72%);mask-image:radial-gradient(circle,transparent 10%,#000 30%,#000 58%,transparent 72%);animation:neonSpin 24s linear infinite}.neon-bg.b{background:repeating-conic-gradient(from 8deg,hsl(calc(var(--h) + 70) 100% 62%/.65) 0 3deg,transparent 3deg 12deg);-webkit-mask-image:radial-gradient(circle,transparent 18%,#000 38%,#000 54%,transparent 68%);mask-image:radial-gradient(circle,transparent 18%,#000 38%,#000 54%,transparent 68%);animation:neonSpin 34s linear infinite reverse;mix-blend-mode:screen}.neon-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,hsl(var(--h) 100% 55%/.38),transparent 62%);transition:background .8s}.neon-stage.paused .neon-bg{animation-play-state:paused}@keyframes neonSpin{to{transform:rotate(1turn)}}.neon-digits{position:relative;height:62%;max-width:94%;perspective:900px;filter:drop-shadow(0 0 16px hsl(var(--h) 100% 70%/.85)) drop-shadow(0 10px 18px #0009)}.neon-digits,.neon-tumble{display:flex;align-items:center;justify-content:center;gap:2.4%}.neon-tumble{height:100%;animation:neonTumble .75s cubic-bezier(.2,.8,.25,1)}.neon-digit{height:100%;width:auto;aspect-ratio:3/5}.neon-colon{align-self:stretch;display:flex;flex-direction:column;justify-content:space-around;padding:14% 0;width:3.5%;min-width:6px}.neon-colon:after,.neon-colon:before{content:"";display:block;width:100%;aspect-ratio:1;border-radius:3px;background:#e5e1ff}@keyframes neonTumble{0%{transform:rotateX(-100deg) rotateY(60deg) scale(.55);opacity:0}45%{transform:rotateX(18deg) rotateY(-14deg) scale(1.08);opacity:1}70%{transform:rotateX(-6deg) rotateY(5deg) scale(.98)}to{transform:none}}.neon-stage.done .neon-digits{animation:neonBlink .6s steps(2) infinite}@keyframes neonBlink{50%{opacity:.25}}.bomb-stage{background:#0b1030}.bomb-clock{position:absolute;left:50%;bottom:4%;transform:translateX(-50%);padding:.15em .7em;border-radius:999px;background:#05081fb8;border:2px solid #ffffff33;color:#fff;font-family:var(--font-playful),sans-serif;font-weight:700;font-size:clamp(18px,4.4vw,34px);letter-spacing:.06em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bomb-stage.full .bomb-clock{font-size:clamp(28px,5vw,64px)}.bomb-stage.done .bomb-clock{background:#c0392b;animation:neonBlink .5s steps(2) infinite}@media (prefers-reduced-motion:reduce){.bomb-stage.done .bomb-clock,.neon-bg,.neon-stage.done .neon-digits,.neon-tumble{animation:none}}.traffic-stage{justify-content:center;gap:6%;background:#0c0f18}.traffic-box,.traffic-stage{display:flex;align-items:center}.traffic-box{height:86%;aspect-ratio:1/2.6;flex-direction:column;justify-content:space-evenly;padding:3% 0;border:4px solid #2a3042;border-radius:28px;background:#171b27;box-shadow:inset 0 0 30px #000a}.lamp{display:block;width:70%;aspect-ratio:1;border-radius:50%;background:#2a2f40;transition:background .4s,box-shadow .4s}.lamp.red.on{background:#ff4040;box-shadow:0 0 40px 10px #ff404088}.lamp.yellow.on{background:#ffcf33;box-shadow:0 0 40px 10px #ffcf3388}.lamp.green.on{background:#37e06b;box-shadow:0 0 40px 10px #37e06b88}.traffic-words{max-width:36%;font-family:var(--font-playful),sans-serif;font-weight:700;font-size:clamp(16px,3.2vw,40px);line-height:1.15;color:#fff}.traffic-words[data-phase=green]{color:#6ff09a}.traffic-words[data-phase=yellow]{color:#ffd75a}.traffic-words[data-phase=red]{color:#ff8484}.traffic-stage.done .traffic-box{animation:neonBlink .7s steps(2) infinite}.theme-swatch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));grid-gap:10px;gap:10px;margin:14px 0}.theme-swatch{aspect-ratio:1;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #e4dcc6;cursor:pointer;transition:transform .1s}.theme-swatch:hover{transform:scale(1.12)}.theme-swatch.on{box-shadow:0 0 0 4px #27364b}.student-link{border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.student-link:hover strong{text-decoration:underline}button.student-avatar{border:0;padding:0;font-size:inherit;cursor:pointer}button.student-avatar:hover{transform:scale(1.06)}.sp-overlay{position:fixed;inset:0;z-index:96;display:grid;place-items:center;padding:16px;background:rgba(15,12,38,.62);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.sp-card{position:relative;width:min(760px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border-radius:26px;background:#fff;color:#27364b;box-shadow:0 30px 80px #0007}.sp-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border:0;border-radius:50%;background:#f1ede2;color:#27364b;display:grid;place-items:center;cursor:pointer}.sp-head{display:flex;align-items:center;gap:16px;margin-bottom:14px;padding-right:44px}.sp-avatar{flex:none;width:72px;height:72px;border-radius:24px;background:#fff1d6;display:grid;place-items:center;font-size:42px}.sp-head h2{margin:0;font-size:26px}.sp-head p{margin:2px 0 0;color:#5d6a7d}.sp-stats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:6px}.sp-title{margin:18px 0 8px;font-size:17px}.sp-empty{margin:0;padding:12px 14px;border-radius:14px;background:#f7f3e8;color:#5d6a7d;font-size:13px}.sp-certs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));grid-gap:12px;gap:12px}.sp-cert{display:grid;grid-gap:4px;gap:4px;justify-items:center;text-align:center;padding:16px;border:3px double #e0b53b;border-radius:18px;background:linear-gradient(135deg,#fffaf0,#fff3c4)}.sp-cert-stars{color:#e0a21a;letter-spacing:.3em}.sp-cert small{font-size:10px;letter-spacing:.14em;color:#8a6b2a}.sp-cert strong{font-family:var(--font-playful),sans-serif;font-size:20px}.sp-cert p{margin:2px 0;font-size:13px;color:#47566b}.sp-cert footer{display:flex;width:100%;justify-content:space-between;align-items:center;margin-top:6px;font-size:12px;color:#8a6b2a}.sp-print{border:2px solid #e0b53b;background:#fff;border-radius:999px;padding:5px 12px;font:inherit;font-size:12px;font-weight:800;cursor:pointer}.sp-badges{list-style:none;margin:0;padding:0;display:flex;gap:8px;flex-wrap:wrap}.sp-badges li{padding:7px 12px;border-radius:999px;background:#ffe9f1;font-size:13px;font-weight:700}@media print{body.printing-cert *{visibility:hidden!important}body.printing-cert .print-cert,body.printing-cert .print-cert *{visibility:visible!important}body.printing-cert .print-cert{position:fixed;left:50%;top:8%;transform:translateX(-50%);width:min(720px,92vw);padding:40px}body.printing-cert .print-cert .sp-print{display:none!important}}.bottom-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.shelf{display:flex;gap:26px;overflow-x:auto;padding:30px 24px 22px;margin:0 0 16px;perspective:1100px;border:2px solid #eadfc8;border-radius:22px;background:linear-gradient(180deg,#f2edff,#fff6dc);scroll-snap-type:x proximity}.shelf-item{flex:none;display:grid;justify-items:center;grid-gap:6px;gap:6px;width:calc(var(--w,120) * 1px);min-width:130px;scroll-snap-align:center}.shelf-book{position:relative;display:block;width:calc(var(--w) * 1px);height:calc(var(--h) * 1px);margin:6px 0 10px;padding:0;border:0;background:none;cursor:pointer;transform-style:preserve-3d;transform:rotateY(-24deg);animation:shelfSway 6s ease-in-out infinite;transition:transform .3s}.shelf-book:focus-visible,.shelf-book:hover{animation:none;transform:rotateY(-4deg) translateY(-10px) scale(1.07);outline:none}.shelf-book:focus-visible .bk-front{box-shadow:0 0 0 4px #7057c9}.shelf-book.is-selected{animation:none;transform:rotateY(-12deg) translateY(-3px) scale(1.025)}.shelf-book.is-selected .bk-front{filter:brightness(.78);box-shadow:0 8px 18px #23304d55}.shelf-book .bk-face{display:block}@keyframes shelfSway{0%,to{transform:rotateY(-26deg)}50%{transform:rotateY(-12deg)}}.shelf-title{max-width:150px;border:0;padding:2px 4px;background:transparent;text-align:center;font-size:12.5px;font-weight:800;line-height:1.2;color:#33445c;cursor:pointer;transition:color .18s ease,transform .18s ease}.shelf-title:focus-visible,.shelf-title:hover{color:#26344f;transform:translateY(-1px);outline:none}.shelf-title:focus-visible{box-shadow:0 0 0 2px #7057c9;border-radius:5px}.shelf-title.is-selected{color:#17243d;text-decoration:underline;-webkit-text-decoration-color:#7057c9;text-decoration-color:#7057c9;text-decoration-thickness:2px;text-underline-offset:3px}.shelf-count{font-size:11px;font-weight:700;color:#17744d}.shelf-count.out{color:#8a4a3f}@media (prefers-reduced-motion:reduce){.shelf-book{animation:none}}.wk-track{margin:0 0 18px;padding:16px 18px 14px;border:2px solid #f0e2b8;border-radius:22px;background:linear-gradient(120deg,#fff8dc,#fff 55%,#f1ecff);box-shadow:0 4px 0 #f1e6c9}.wk-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:34px}.wk-head strong{font-family:var(--font-playful),sans-serif;font-size:18px}.wk-head span{font-size:13px;font-weight:700;color:#5d6a7d}.wk-rail{position:relative;height:16px;background:#eee7d3;margin:0 18px}.wk-fill,.wk-rail{border-radius:999px}.wk-fill{height:100%;background:linear-gradient(90deg,#ffb347,#ff5d8f 60%,#9b6bff);transition:width 1.4s cubic-bezier(.25,.9,.3,1)}.wk-knob{top:50%;width:34px;height:34px;margin:-17px 0 0 -17px;place-items:center;background:#fff;box-shadow:0 3px 10px #0003;font-size:20px;transition:left 1.4s cubic-bezier(.25,.9,.3,1)}.wk-flag,.wk-knob{position:absolute;display:grid;border-radius:50%}.wk-flag{top:-30px;width:30px;height:30px;margin-left:-15px;place-items:center;background:#fff;border:2px solid #e4dcc6;font-size:16px;transition:transform .4s,background .4s}.wk-flag.reached{background:#e3f6ec;border-color:#2e9e6d;transform:scale(1.15)}.wk-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;padding:0}.wk-list li{padding:5px 12px;border-radius:999px;background:#f5f1e6;font-size:12.5px;font-weight:700;color:#47566b}.wk-list li.reached{background:#e3f6ec;color:#17744d}.weekly-card{display:grid;grid-gap:6px;gap:6px;margin-bottom:16px}.wk-editor h3{margin:0 0 4px;font-size:18px}.wk-editor p{margin:0 0 12px;font-size:13px;color:#5d6a7d}.wk-edit-list{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-gap:8px;gap:8px}.wk-edit-list li{display:grid;grid-template-columns:28px minmax(0,1fr) 96px 32px;grid-gap:8px;gap:8px;align-items:center}.wk-editor input{padding:10px 12px;border:2px solid #eadfc8;border-radius:12px;background:#fff;font:inherit;min-width:0}.wk-edit-list button{border:0;background:none;font-size:22px;color:#9aa4b2;cursor:pointer}.wk-add{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;grid-gap:8px}.wk-add,.wk-ideas{gap:8px;align-items:center}.wk-ideas{display:flex;flex-wrap:wrap;margin-top:12px;font-size:12.5px;font-weight:700;color:#5d6a7d}.wk-ideas button{border:2px solid #e4dcc6;background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:12.5px;font-weight:800;cursor:pointer}.wk-celebrate{position:fixed;inset:0;z-index:98;display:grid;place-items:center;padding:16px;background:rgba(20,12,50,.72);overflow:hidden}.wk-celebrate-card{position:relative;z-index:1;width:min(460px,100%);padding:30px 24px;text-align:center;border-radius:28px;background:#fff;color:#27364b;box-shadow:0 30px 80px #0008;animation:wkPop .6s cubic-bezier(.2,.9,.25,1.2)}.wk-big{display:block;font-size:72px;line-height:1;margin-bottom:6px}.wk-celebrate-card small{font-size:12px;font-weight:800;letter-spacing:.16em;color:#9a6c00}.wk-celebrate-card h2{margin:6px 0 8px;font-size:30px}.wk-celebrate-card p{margin:0 0 18px;color:#5d6a7d}.wk-confetti i{position:absolute;top:-20px;width:12px;height:18px;background:var(--c);border-radius:3px;animation:wkFall 3.2s linear infinite}@keyframes wkFall{to{transform:translateY(110vh) rotate(2turn)}}@keyframes wkPop{0%{opacity:0;transform:scale(.6) rotate(-4deg)}to{opacity:1;transform:none}}@media (max-width:640px){.wk-add{grid-template-columns:1fr 90px}.wk-add .fun-action{grid-column:1/-1}.wk-edit-list li{grid-template-columns:24px minmax(0,1fr) 80px 28px}}@media (prefers-reduced-motion:reduce){.wk-fill,.wk-knob{transition:none}.wk-celebrate-card,.wk-confetti i{animation:none}}.ballot-head{display:flex;gap:14px;align-items:center;margin-bottom:14px}.ballot-emoji{flex:none;width:56px;height:56px;border-radius:18px;background:#e6defa;display:grid;place-items:center;font-size:30px}.ballot-head h2{margin:0;font-size:24px}.ballot-head p{margin:3px 0 0;font-size:13px;color:#5d6a7d}.ballot-step{margin:6px 0 10px;font-size:18px}.ballot-note{margin:0 0 12px;font-size:13px;color:#5d6a7d}.ballot-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}.ballot-person{width:100%;display:grid;justify-items:center;grid-gap:4px;gap:4px;padding:12px 8px;border:3px solid #e4dcc6;border-radius:20px;background:#fff;font:inherit;cursor:pointer;transition:transform .1s,border-color .1s}.ballot-person span{font-size:34px;line-height:1}.ballot-person b{font-size:14px;color:#27364b;text-align:center}.ballot-person:hover:not(:disabled){transform:translateY(-3px);border-color:#9b86e6}.ballot-person.picked{border-color:#7057c9;background:#efe9ff;box-shadow:0 0 0 3px #d8cdfb}.ballot-person.used{opacity:.45;background:#f4f1ea}.ballot-person small{font-size:11px;font-weight:700;color:#7a8696}.ballot-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}.ballot-thanks{display:grid;justify-items:center;grid-gap:6px;gap:6px;padding:34px 16px;text-align:center}.ballot-thanks span{font-size:64px}.ballot-thanks h3{margin:0;font-size:24px}.ballot-thanks p{margin:0;color:#5d6a7d}.ballot-teacher{margin-top:20px;padding-top:12px;border-top:2px dashed #eadfc8}.ballot-results{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.ballot-results ul{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.ballot-results li{display:flex;justify-content:space-between;gap:10px;padding:8px 12px;border-radius:12px;background:#f7f3e8;font-size:14px}.ballot-results .fun-action{justify-self:start}.ft-card{position:fixed;z-index:900;width:min(320px,calc(100vw - 24px));background:var(--white,#fff);color:var(--ink,#2b2350);border:2px solid var(--purple,#8566d6);border-radius:20px;box-shadow:0 14px 40px rgba(40,20,90,.28);overflow:hidden;font-family:var(--font,inherit)}.ft-card.mini{width:auto;border-radius:999px}.ft-card.ft-pip{position:static;width:auto;border:0;border-radius:0;box-shadow:none;min-height:100vh}.ft-handle{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--purple,#8566d6);color:#fff;cursor:-webkit-grab;cursor:grab;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ft-handle:active{cursor:-webkit-grabbing;cursor:grabbing}.ft-handle b{font-size:14px;letter-spacing:.02em}.ft-spacer{flex:1 1}.ft-handle button{border:0;background:rgba(255,255,255,.22);color:#fff;border-radius:8px;min-width:28px;height:28px;font-size:15px;line-height:1;cursor:pointer}.ft-handle button:hover{background:rgba(255,255,255,.38)}.ft-lesson,.ft-timer{padding:10px 12px;border-top:1px solid rgba(133,102,214,.18)}.ft-handle+.ft-lesson,.ft-handle+.ft-timer,.ft-timer:first-of-type{border-top:0}.ft-row{display:flex;align-items:baseline;gap:10px}.ft-clock{font-family:var(--display,inherit);font-size:34px;line-height:1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.ft-label{font-size:13px;font-weight:700;opacity:.8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-bar{height:8px;border-radius:99px;background:rgba(133,102,214,.18);margin:8px 0}.ft-bar i{display:block;height:100%;border-radius:inherit;background:var(--purple,#8566d6);transition:width .4s linear}.ft-stage{margin:6px 0}.ft-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.ft-actions button{border:0;border-radius:10px;padding:6px 10px;font:inherit;font-size:13px;font-weight:800;background:rgba(133,102,214,.14);color:inherit;cursor:pointer}.ft-actions button:first-child{background:var(--purple,#8566d6);color:#fff}.ft-timer.done .ft-clock{color:#d6452f;animation:neonBlink .8s steps(2) infinite}.ft-lesson.ended{background:#fff6d6}.lesson-auto{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:13px;font-weight:700}@media (prefers-reduced-motion:reduce){.ft-timer.done .ft-clock{animation:none}}.today-layout>.dojo-grid{order:5}.today-layout .hero-art,.today-layout .welcome-row .subhead{display:none}.today-layout .section-heading{margin:14px 0 4px}.dojo-view{margin-left:auto}.roster-card.roster-hidden{display:none}.dojo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));grid-gap:16px;gap:16px;padding:6px 0 12px}.dojo-tile{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 10px 16px;background:#fff;border:0;border-radius:24px;box-shadow:0 4px 0 rgba(60,40,110,.1),0 10px 24px rgba(60,40,110,.08);cursor:pointer;font:inherit;color:#27364b;transition:transform .15s ease,box-shadow .15s ease}.dojo-tile:hover{transform:translateY(-4px);box-shadow:0 8px 0 rgba(60,40,110,.1),0 16px 30px rgba(60,40,110,.14)}.dojo-tile:active{transform:scale(.97)}.dojo-criterion:focus-visible,.dojo-tile:focus-visible{outline:3px solid var(--purple,#8566d6);outline-offset:2px}.dojo-avatar.student-avatar{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;font-size:40px;line-height:1}.dojo-tile strong{font-size:15px;font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dojo-pts{position:absolute;top:10px;right:10px;min-width:30px;height:30px;padding:0 8px;border-radius:99px;background:#eceaf6;color:#5a4a8a;display:grid;place-items:center;font-weight:900;font-size:15px}.dojo-tile.is-full .dojo-pts{background:#ffce4d;color:#5a3d00}.dojo-tile.is-absent{opacity:.45;filter:grayscale(.7)}.dojo-pop-backdrop{position:fixed;inset:0;z-index:950;display:grid;place-items:center;padding:16px;background:rgba(30,18,70,.5)}.dojo-pop{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;color:#27364b;border-radius:28px;padding:26px 22px 20px;text-align:center;box-shadow:0 24px 70px rgba(20,10,60,.4)}.dojo-pop-close{position:absolute;top:12px;right:12px;width:36px;height:36px;border:0;border-radius:50%;background:#eceaf6;cursor:pointer;display:grid;place-items:center}.dojo-pop-avatar.student-avatar{width:88px;height:88px;border-radius:50%;display:inline-grid;place-items:center;font-size:48px}.dojo-pop h2{margin:8px 0 0;font-family:var(--display,inherit);font-size:26px}.dojo-pop p{margin:2px 0 14px;color:#6b6585;font-weight:700}.dojo-criteria{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.dojo-criterion{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:2px solid #e6e1f5;border-radius:20px;background:#faf8ff;font:inherit;color:inherit;cursor:pointer;transition:transform .12s,background .12s,border-color .12s}.dojo-criterion:hover{transform:translateY(-2px)}.dojo-criterion.on{background:#e4f8ec;border-color:#4caf7d}.dojo-criterion .dojo-crit-icon{font-size:34px;line-height:1}.dojo-criterion b{font-size:13px;line-height:1.2}.dojo-criterion svg{position:absolute;top:8px;right:8px;color:#fff;background:#4caf7d;border-radius:50%;padding:3px;width:22px;height:22px}.dojo-criterion small{color:#62758a;font-size:11px;font-weight:700}.criterion-award-label{padding:5px 10px;border-radius:999px;background:#e1f6ed;color:#1c795e;font-size:11px;font-weight:900}.award-count-button:disabled,.dojo-criterion:disabled{opacity:.65;cursor:wait}.manual-award-amount{margin:10px 0 14px}.award-count-button{width:auto;min-width:34px;padding:0 5px;background:#e7f8ef;color:#23775e;border-color:#a8ddc6;font-size:11px;font-weight:900}.award-count-button:hover{background:#d5f2e3;border-color:#55b887}.points-cell span{white-space:nowrap}.dojo-pop-actions{display:flex;justify-content:center;gap:10px;margin-top:18px}@media (max-width:560px){.dojo-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px}.dojo-avatar.student-avatar{width:60px;height:60px;font-size:32px}.dojo-criteria{grid-template-columns:1fr 1fr}.award-count-button{min-width:27px;padding:0 3px;font-size:10px}}.today-layout .section-heading h2,.today-layout .section-heading p{color:#fff;text-shadow:0 2px 14px rgba(20,10,60,.35)}.today-layout .section-heading .live-badge{text-shadow:none}.today-layout{gap:6px}.tool-launcher{gap:14px}.tool-tile{border-radius:22px;padding-block:16px}.tool-tile-icon{font-size:30px}.tool-tile-label{font-size:14px;font-weight:800}.fun-feature-grid{gap:20px}.fun-card{padding:22px}.lesson-start-card{padding:14px 18px}.lesson-start-copy p{display:none}.classrooms-page{display:flex;flex-direction:column;gap:20px;padding-top:22px}.classes-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.classes-head h1{margin:0;font-family:var(--display);font-size:clamp(26px,3.4vw,34px);color:#fff;text-shadow:0 2px 16px rgba(20,10,60,.35)}.classes-head p{margin:4px 0 0;color:#fff;opacity:.9;font-weight:700;text-shadow:0 2px 12px rgba(20,10,60,.35)}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:20px;gap:20px}.class-card{display:flex;flex-direction:column;gap:16px;padding:20px;background:#fff;color:#27364b;border:0;border-radius:26px;box-shadow:0 5px 0 rgba(60,40,110,.1),0 14px 30px rgba(60,40,110,.1);text-align:left;font:inherit}.class-card-top{display:flex;align-items:center;gap:14px}.class-emoji{flex:none;width:64px;height:64px;border-radius:20px;display:grid;place-items:center;font-size:34px;background:#fff0bf}.class-card:nth-child(3n+2) .class-emoji{background:#dff2ff}.class-card:nth-child(3n+3) .class-emoji{background:#dcf7e6}.class-title{min-width:0;flex:1 1}.class-title h3{margin:0;font-family:var(--display);font-size:24px;line-height:1.1}.class-title p{margin:3px 0 0;color:#6b6585;font-weight:700;font-size:14px}.class-archive{flex:none}.class-faces{display:flex;align-items:center;min-height:38px}.class-faces span{width:38px;height:38px;margin-right:-8px;border-radius:50%;display:grid;place-items:center;font-size:21px;background:#f3f0fb;border:2px solid #fff}.class-faces b{margin-left:16px;font-size:14px;color:#6b6585}.class-faces small{color:#8a84a3;font-weight:700}.class-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto}.class-actions .primary-btn{flex:1 1 150px;justify-content:center}.today-layout>.lesson-panel{order:3}.today-layout>.champion-section{order:4}.today-layout>.section-heading{order:5}.today-layout>.dojo-grid{order:6}.today-layout>.roster-card{order:7}.today-layout>.stats-grid{order:8}.today-layout>.bottom-grid{order:9}.lesson-panel{position:relative;margin:10px 0 12px;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 5px 0 rgba(60,40,110,.1),0 14px 30px rgba(60,40,110,.1)}.lesson-panel .lesson-start-card{margin:0;border:0;border-radius:0;box-shadow:none;background:linear-gradient(110deg,#fff,#fff4df 60%,#ffedf5);padding:26px 18px 12px}.lesson-goal-part{position:relative;padding:26px 18px 12px;background:linear-gradient(110deg,#eefaf3,#f4f0ff);border-top:3px dashed #d9d2ee}.lesson-panel .lesson-start-card{position:relative}.lesson-goal-part .fun-goal-strip,.lesson-goal-part .wk-track{margin:0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}.today-layout>.champion-section{display:flex;align-items:center;gap:14px;margin:0 0 6px;padding:8px 14px;border-radius:20px;box-shadow:0 3px 0 #f1e6c9}.champion-section .champion-heading{margin:0;flex:none}.champion-section .champion-heading .eyebrow,.champion-section .champion-heading .subhead,.champion-section .champion-hint{display:none}.champion-section .champion-heading h2{font-size:16px;white-space:nowrap}.champion-section .champion-bubbles{flex:1 1;min-height:0;gap:8px}.champion-section .champion-bubble{width:68px;height:68px;flex:0 1 68px;border-width:2px;gap:0}.champion-section .champion-avatar{font-size:20px}.champion-section .champion-bubble strong{max-width:56px;font-size:9px}.champion-section .champion-bubble small{display:none}.champion-section .champion-rank{top:3px;left:6px;width:16px;height:16px;font-size:8px}.champion-section .champion-empty{padding:6px}@media (max-width:700px){.today-layout>.champion-section{flex-direction:column;align-items:flex-start;gap:6px}.champion-section .champion-bubbles{width:100%;justify-content:space-between}.champion-section .champion-bubble{width:56px;height:56px;flex:0 1 56px}.champion-section .champion-bubble strong{max-width:46px;font-size:8px}}.nav-tools{margin-top:6px;border:2px dashed rgba(255,255,255,.35)}.nav-tools-icon{font-size:17px;line-height:1;width:18px;text-align:center}.tool-drawer-scrim{position:fixed;inset:0;z-index:955;border:0;background:rgba(30,18,70,.35);cursor:default}.tool-drawer{position:fixed;top:0;bottom:0;left:0;z-index:960;width:min(300px,86vw);display:flex;flex-direction:column;background:#fff;color:#27364b;box-shadow:12px 0 40px rgba(20,10,60,.35);transform:translateX(-105%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}.tool-drawer.open{transform:none;visibility:visible;transition:transform .22s ease}.tool-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 10px;font-size:17px}.tool-drawer-close{width:34px;height:34px;border:0;border-radius:50%;background:#eceaf6;cursor:pointer}.tool-drawer-list{display:flex;flex-direction:column;gap:8px;padding:6px 14px 18px;overflow:auto}.tool-drawer-btn{display:flex;align-items:center;gap:12px;padding:8px 12px;border:2px solid transparent;border-radius:16px;background:#faf8ff;font:inherit;font-size:15px;font-weight:800;color:inherit;text-align:left;cursor:pointer;box-shadow:0 3px 0 #e6e1f5}.tool-drawer-btn:hover{transform:translateX(3px)}.tool-drawer-btn.is-active{border-color:var(--purple,#8566d6)}.tool-drawer-btn.is-live{border-color:#ee7259}.tool-drawer-btn:focus-visible,.tool-drawer-close:focus-visible{outline:3px solid var(--purple,#8566d6);outline-offset:2px}.tool-drawer .tool-dock-icon{width:40px;height:40px;border-radius:14px;font-size:22px}@media (prefers-reduced-motion:reduce){.tool-drawer{transition:none}}.lesson-panel .lesson-start-card{flex-wrap:wrap;row-gap:6px}.lesson-panel .lesson-start-copy{flex:1 1 220px;min-width:0}.lesson-panel .lesson-start-copy .eyebrow{display:none}.lesson-panel .lesson-auto{flex:1 0 100%;margin:0;font-size:12px}.pyp-chip{display:inline-flex;align-items:center;gap:10px;padding:6px 14px 6px 10px;border:2px solid #e6e1f5;border-radius:16px;background:#fff;color:#27364b;font:inherit;cursor:pointer;box-shadow:0 3px 0 #e6e1f5;text-align:left;max-width:100%}.pyp-chip>span:first-child{font-size:24px;line-height:1}.pyp-chip-text{display:flex;flex-direction:column;min-width:0}.pyp-chip-text small{font-size:10px;font-weight:900;letter-spacing:.1em;color:#7a6aa8}.pyp-chip-text b{font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px}.pyp-chip:focus-visible,.pyp-option:focus-visible{outline:3px solid var(--purple,#8566d6);outline-offset:2px}.pyp-backdrop{position:fixed;inset:0;z-index:950;display:grid;place-items:center;padding:16px;background:rgba(30,18,70,.5)}.pyp-pop{position:relative;width:min(560px,100%);max-height:calc(100dvh - 32px);overflow:auto;background:#fff;color:#27364b;border-radius:26px;padding:24px 22px 20px;box-shadow:0 24px 70px rgba(20,10,60,.4)}.pyp-pop h2{margin:0;font-family:var(--display,inherit);font-size:24px}.pyp-pop>p{margin:4px 0 14px;color:#6b6585;font-weight:700}.pyp-close{position:absolute;top:12px;right:12px;width:34px;height:34px;border:0;border-radius:50%;background:#eceaf6;cursor:pointer}.pyp-pick-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:10px;gap:10px}.pyp-option{display:flex;align-items:center;gap:10px;padding:10px 12px;border:2px solid #e6e1f5;border-radius:16px;background:#faf8ff;font:inherit;color:inherit;text-align:left;cursor:pointer}.pyp-option span{font-size:26px;line-height:1}.pyp-option b{font-size:13px;line-height:1.2}.pyp-option.on{background:#e9e2ff;border-color:var(--purple,#8566d6)}.pyp-label{display:block;margin:16px 0 6px;font-weight:800;font-size:13px}.pyp-label small{font-weight:600;color:#8a84a3}.pyp-own{display:flex;gap:8px}.pyp-own input,.pyp-pop textarea{flex:1 1;width:100%;padding:10px 12px;border:2px solid #e6e1f5;border-radius:12px;font:inherit;color:inherit;background:#fff}.pyp-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.pyp-rows{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}.pyp-row{display:flex;align-items:flex-start;gap:14px;padding:12px 14px;border:2px solid #efeaf9;border-radius:16px;background:#faf8ff}.pyp-row>strong{flex:none;min-width:48px;font-family:var(--display,inherit);font-size:20px;padding-top:6px}.pyp-idea{margin:6px 2px 0;font-size:13px;color:#6b6585;font-weight:700}.pyp-tools-input{width:100%;padding:10px 12px;border:2px solid #e6e1f5;border-radius:12px;font:inherit;color:inherit;background:#fff;resize:vertical}.pyp-list-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 0 8px}.pyp-search{padding:6px 10px;border:2px solid #e6e1f5;border-radius:10px;font:inherit}.pyp-tool-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.pyp-tool-list li{display:inline-flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:99px;background:#efe9ff;color:#41336f;font-weight:800;font-size:13px}.pyp-tool-list li button{border:0;width:22px;height:22px;border-radius:50%;background:#fff;color:#6b6585;cursor:pointer;line-height:1}.pyp-tool-list .pyp-none{background:transparent;color:#8a84a3}.pyp-custom{padding:0;gap:0;align-items:stretch}.pyp-custom .pyp-custom-pick{flex:1 1;display:flex;align-items:center;gap:10px;padding:10px 6px 10px 12px;border:0;background:transparent;font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0}.pyp-custom .pyp-custom-pick span{font-size:22px;line-height:1}.pyp-custom-edit,.pyp-custom-remove{flex:none;align-self:center;width:28px;height:28px;margin-right:4px;border:0;border-radius:50%;background:#efe9ff;color:#41336f;cursor:pointer;line-height:1}.pyp-tool-list li .pyp-custom-edit,.pyp-tool-list li .pyp-custom-remove{margin:0;background:#fff;color:#6b6585;width:22px;height:22px}.pyp-editing{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px}.pyp-edit-input{flex:1 1 120px;min-width:0;padding:7px 10px;border:2px solid var(--purple,#8566d6);border-radius:10px;font:inherit}.pyp-edit-input[aria-invalid=true]{border-color:#d6452f}.pyp-edit-save{border:0;border-radius:10px;padding:7px 12px;background:var(--purple,#8566d6);color:#fff;font:inherit;font-weight:800;cursor:pointer}.pyp-edit-save:disabled{opacity:.5}.pyp-bad{flex:1 0 100%;color:#d6452f;font-weight:700}.pyp-tool-list li.pyp-editing{background:#efe9ff;border-radius:16px}.sa-petition{margin-top:18px;padding-top:14px;border-top:2px dashed #e6e1f5}.sa-petition-box{margin-top:12px;display:flex;flex-direction:column;gap:12px}.sa-petition-text{width:100%;font-family:Georgia,Times New Roman,serif;line-height:1.5;white-space:pre-wrap}.petition-sheet{display:none}@media print{body.printing-petition *{visibility:hidden!important}body.printing-petition .petition-sheet,body.printing-petition .petition-sheet *{visibility:visible!important}body.printing-petition .petition-sheet{display:block;position:absolute;left:0;top:0;width:100%;padding:24mm 20mm;box-sizing:border-box;font:12pt/1.55 Times New Roman,Georgia,serif;color:#000;background:#fff;white-space:pre-wrap}}.pyp-edit{display:inline-flex;align-items:center;gap:4px;margin:2px 0 8px;font-size:12px}.pyp-desc-edit textarea{width:100%}.pyp-buttons{display:flex;flex-wrap:wrap;gap:8px}.pyp-form{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:12px;border-radius:14px;background:#faf8ff;border:2px solid #efeaf9}.pyp-mine{margin-top:14px;padding-top:10px;border-top:2px dashed #e6e1f5}.pyp-mine ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.pyp-mine li{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:#fff;border:2px solid #efeaf9}.pyp-mine li p{margin:4px 0 0;font-size:13px;color:#4b4666;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.pyp-card h3 .pyp-custom-edit{width:24px;height:24px;margin:0 0 0 4px;vertical-align:middle;font-size:13px}.pyp-title-edit{margin-bottom:8px}.pyp-restore{margin:6px 0 0;font-size:13px}.pyp-none{color:#8a84a3;font-weight:700}.ballot-announce{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:4px 0 14px;padding:10px 12px;border-radius:14px;background:#fff7e6;border:2px dashed #f0cf8a}.ballot-announce label{font-size:13px;font-weight:700;display:flex;align-items:center;gap:6px}.ballot-announce small{flex:1 0 100%;color:#7a6a45;font-weight:700}.ballot-alert{position:fixed;inset:0;z-index:3000;display:grid;place-items:center;cursor:pointer;background:rgba(24,8,8,.82);animation:ballotWash 1.2s step-end infinite}.ballot-alert-card{position:relative;z-index:2;max-width:min(860px,90vw);padding:28px 24px;text-align:center;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.6)}.ballot-alert-card h1{margin:6px 0 10px;font-family:var(--display,inherit);font-size:clamp(34px,8vw,92px);line-height:1.05;letter-spacing:.02em}.ballot-alert-card p{margin:0 0 14px;font-size:clamp(16px,2.4vw,26px);font-weight:800}.ballot-alert-card small{display:inline-block;padding:8px 16px;border-radius:99px;background:rgba(255,255,255,.18);font-size:clamp(13px,1.6vw,18px);font-weight:800}.ballot-alert-emoji{display:block;font-size:clamp(54px,10vw,120px);line-height:1}.ballot-lights{position:absolute;z-index:1;display:flex;justify-content:space-around;align-items:center;pointer-events:none}.ballot-lights-bottom,.ballot-lights-top{left:0;right:0;height:64px}.ballot-lights-top{top:6px}.ballot-lights-bottom{bottom:6px}.ballot-lights-left,.ballot-lights-right{top:70px;bottom:70px;width:64px;flex-direction:column}.ballot-lights-left{left:6px}.ballot-lights-right{right:6px}.ballot-lights i{display:block;width:34px;height:34px;border-radius:50%;animation:ballotBlink 1.2s step-end infinite}.ballot-lights i.red{background:#ff2a2a;box-shadow:0 0 22px 8px rgba(255,42,42,.75);--on-a:1;--on-b:.12}.ballot-lights i.amber{background:#ffb000;box-shadow:0 0 22px 8px rgba(255,176,0,.75);animation-delay:-.6s}@keyframes ballotBlink{0%{opacity:1}50%{opacity:.12}to{opacity:1}}@keyframes ballotWash{0%{background:rgba(70,10,10,.86)}50%{background:rgba(70,40,0,.86)}to{background:rgba(70,10,10,.86)}}@media (prefers-reduced-motion:reduce){.ballot-alert{animation:none}.ballot-lights i{animation-duration:2.4s}}.app-shell[data-theme]{--key-edge:color-mix(in srgb,var(--theme-dark,#805900) 78%,#000);--key-soft:#d9d3ec}.app-shell[data-theme] .sidebar{box-shadow:inset -12px 0 26px rgba(0,0,0,.2),8px 0 24px rgba(20,10,50,.28)}.app-shell[data-theme] .sidebar .group-list,.app-shell[data-theme] .sidebar nav{display:flex;flex-direction:column;gap:9px;padding-bottom:6px}.app-shell[data-theme] .sidebar .group-item,.app-shell[data-theme] .sidebar .nav-item{position:relative;color:#fff;font-weight:800;border:1px solid rgba(255,255,255,.3);background:linear-gradient(180deg,rgba(255,255,255,.3),rgba(255,255,255,.12) 55%,rgba(0,0,0,.1));box-shadow:inset 0 1.5px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(0,0,0,.14),0 5px 0 rgba(10,6,30,.55),0 9px 14px rgba(10,6,30,.3);text-shadow:0 1px 0 rgba(0,0,0,.28);transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.app-shell[data-theme] .sidebar .group-item:hover,.app-shell[data-theme] .sidebar .nav-item:hover{transform:translateY(-2px);background:linear-gradient(180deg,rgba(255,255,255,.42),rgba(255,255,255,.18) 55%,rgba(0,0,0,.08));box-shadow:inset 0 1.5px 0 rgba(255,255,255,.65),inset 0 -2px 0 rgba(0,0,0,.14),0 7px 0 rgba(10,6,30,.55),0 13px 18px rgba(10,6,30,.34)}.app-shell[data-theme] .sidebar .group-item:active,.app-shell[data-theme] .sidebar .nav-item:active{transform:translateY(4px);box-shadow:inset 0 3px 6px rgba(0,0,0,.28),0 1px 0 rgba(10,6,30,.55),0 2px 4px rgba(10,6,30,.3)}.app-shell[data-theme] .sidebar .nav-item svg{filter:drop-shadow(0 1px 0 rgba(0,0,0,.3))}.app-shell[data-theme] .sidebar .group-item.selected,.app-shell[data-theme] .sidebar .nav-item.active{color:#2a2147;text-shadow:0 1px 0 rgba(255,255,255,.7);border-color:#fff;background:linear-gradient(180deg,#fffef6,#fbeec6 60%,#f4d98d);box-shadow:inset 0 2px 0 #fff,inset 0 -3px 0 rgba(160,110,20,.25),0 6px 0 var(--key-edge),0 12px 18px rgba(10,6,30,.38),0 0 0 3px rgba(255,255,255,.18)}.app-shell[data-theme] .sidebar .group-item.selected:hover,.app-shell[data-theme] .sidebar .nav-item.active:hover{transform:translateY(-2px)}.app-shell[data-theme] .sidebar .group-item.selected:active,.app-shell[data-theme] .sidebar .nav-item.active:active{transform:translateY(4px);box-shadow:inset 0 3px 6px rgba(120,80,10,.3),0 2px 0 var(--key-edge)}.app-shell[data-theme] .sidebar .nav-tools{border:1px solid rgba(255,255,255,.55);color:#3b2600;text-shadow:0 1px 0 rgba(255,255,255,.55);background:linear-gradient(180deg,#ffe7a0,#ffc24d 70%,#f2a62a);box-shadow:inset 0 2px 0 rgba(255,255,255,.8),inset 0 -2px 0 rgba(150,90,0,.25),0 5px 0 #a8650a,0 10px 14px rgba(10,6,30,.3)}.app-shell[data-theme] .sidebar .nav-tools:hover{background:linear-gradient(180deg,#ffedb4,#ffcb61 70%,#f7b13a)}.app-shell[data-theme] .sidebar .collapse-btn{box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 3px 0 rgba(10,6,30,.5);border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.2);color:#fff;transition:transform .1s,box-shadow .1s}.app-shell[data-theme] .sidebar .collapse-btn:active{transform:translateY(3px);box-shadow:inset 0 2px 4px rgba(0,0,0,.3)}.app-shell[data-theme] .fun-action.primary,.app-shell[data-theme] .lesson-start-button,.app-shell[data-theme] .primary-btn{border:0;box-shadow:inset 0 2px 0 rgba(255,255,255,.5),inset 0 -3px 0 rgba(0,0,0,.14),0 5px 0 var(--key-edge),0 10px 16px rgba(40,20,80,.22);text-shadow:0 1px 0 rgba(0,0,0,.18);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.app-shell[data-theme] .fun-action.primary:hover,.app-shell[data-theme] .lesson-start-button:hover,.app-shell[data-theme] .primary-btn:hover{transform:translateY(-2px);filter:brightness(1.05);box-shadow:inset 0 2px 0 rgba(255,255,255,.55),inset 0 -3px 0 rgba(0,0,0,.14),0 7px 0 var(--key-edge),0 14px 20px rgba(40,20,80,.26)}.app-shell[data-theme] .fun-action.primary:active,.app-shell[data-theme] .lesson-start-button:active,.app-shell[data-theme] .primary-btn:active{transform:translateY(4px);filter:none;box-shadow:inset 0 3px 6px rgba(0,0,0,.25),0 1px 0 var(--key-edge)}.app-shell[data-theme] .fun-action.primary:disabled,.app-shell[data-theme] .primary-btn:disabled{transform:none;box-shadow:inset 0 2px 0 rgba(255,255,255,.3),0 3px 0 rgba(0,0,0,.12)}.app-shell[data-theme] .fun-action.secondary,.app-shell[data-theme] .lesson-stop-button,.app-shell[data-theme] .outline-btn{background:linear-gradient(180deg,#fff,#f6f2ff);box-shadow:inset 0 2px 0 #fff,0 4px 0 var(--key-soft),0 8px 12px rgba(40,20,80,.1);transition:transform .12s ease,box-shadow .12s ease}.app-shell[data-theme] .fun-action.secondary:hover,.app-shell[data-theme] .outline-btn:hover{transform:translateY(-2px);box-shadow:inset 0 2px 0 #fff,0 6px 0 var(--key-soft),0 12px 16px rgba(40,20,80,.14)}.app-shell[data-theme] .fun-action.secondary:active,.app-shell[data-theme] .outline-btn:active{transform:translateY(3px);box-shadow:inset 0 2px 4px rgba(40,20,80,.18),0 1px 0 var(--key-soft)}.app-shell[data-theme] .hub-tile,.app-shell[data-theme] .tool-tile{box-shadow:inset 0 2px 0 #fff,0 5px 0 var(--key-soft),0 10px 14px rgba(40,20,80,.1);transition:transform .12s ease,box-shadow .12s ease}.app-shell[data-theme] .hub-tile:hover,.app-shell[data-theme] .tool-tile:hover{transform:translateY(-3px);box-shadow:inset 0 2px 0 #fff,0 8px 0 var(--key-soft),0 16px 20px rgba(40,20,80,.14)}.app-shell[data-theme] .hub-tile:active,.app-shell[data-theme] .tool-tile:active{transform:translateY(3px);box-shadow:inset 0 2px 5px rgba(40,20,80,.16),0 1px 0 var(--key-soft)}.app-shell[data-theme] .hub-tile.active,.app-shell[data-theme] .tool-tile.is-active{box-shadow:inset 0 2px 0 #fff,0 5px 0 var(--key-edge),0 10px 16px rgba(40,20,80,.18)}.app-shell[data-theme] .seg button,.app-shell[data-theme] .segmented button,.app-shell[data-theme] .ti-pill{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.8),0 3px 0 var(--key-soft);transition:transform .1s,box-shadow .1s}.app-shell[data-theme] .seg button:active,.app-shell[data-theme] .segmented button:active,.app-shell[data-theme] .ti-pill:active{transform:translateY(2px);box-shadow:inset 0 2px 3px rgba(40,20,80,.18),0 1px 0 var(--key-soft)}.app-shell[data-theme] .seg button.on,.app-shell[data-theme] .segmented button.selected,.app-shell[data-theme] .ti-pill.active{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.5),0 3px 0 var(--key-edge)}.app-shell[data-theme] .dojo-criterion,.app-shell[data-theme] .pyp-option,.app-shell[data-theme] .tool-drawer-btn{box-shadow:inset 0 2px 0 #fff,0 4px 0 var(--key-soft);transition:transform .1s,box-shadow .1s}.app-shell[data-theme] .dojo-criterion:active,.app-shell[data-theme] .pyp-option:active,.app-shell[data-theme] .tool-drawer-btn:active{transform:translateY(3px);box-shadow:inset 0 2px 4px rgba(40,20,80,.16),0 1px 0 var(--key-soft)}.app-shell[data-theme] .icon-btn{box-shadow:inset 0 1.5px 0 rgba(255,255,255,.7),0 3px 0 var(--key-soft);transition:transform .1s,box-shadow .1s}.app-shell[data-theme] .icon-btn:active{transform:translateY(2px);box-shadow:inset 0 2px 3px rgba(40,20,80,.16),0 1px 0 var(--key-soft)}@media (prefers-reduced-motion:reduce){.app-shell[data-theme] .outline-btn,.app-shell[data-theme] .primary-btn,.app-shell[data-theme] .sidebar .group-item,.app-shell[data-theme] .sidebar .nav-item{transition:none}}.app-shell[data-theme] .sidebar .group-list,.app-shell[data-theme] .sidebar nav{gap:16px;padding-bottom:10px}.app-shell[data-theme] .sidebar .nav-label{margin-top:8px}.app-shell[data-theme] .sidebar{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.app-shell[data-theme] .sidebar .group-item:hover,.app-shell[data-theme] .sidebar .nav-item:hover{color:#fff;border-color:rgba(255,255,255,.7);text-shadow:0 1px 0 rgba(0,0,0,.4);background:linear-gradient(180deg,color-mix(in srgb,var(--theme-accent,#d99a18) 88%,#fff) 0,var(--theme-accent,#d99a18) 45%,color-mix(in srgb,var(--theme-accent,#d99a18) 72%,#000) 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.6),inset 0 -2px 0 rgba(0,0,0,.18),0 7px 0 var(--key-edge),0 13px 18px rgba(10,6,30,.36)}.app-shell[data-theme] .sidebar .group-item.selected:hover,.app-shell[data-theme] .sidebar .nav-item.active:hover{color:#fff;border-color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.4);background:linear-gradient(180deg,color-mix(in srgb,var(--theme-pop,#f06691) 85%,#fff) 0,var(--theme-pop,#f06691) 50%,color-mix(in srgb,var(--theme-pop,#f06691) 72%,#000) 100%);box-shadow:inset 0 2px 0 rgba(255,255,255,.6),inset 0 -2px 0 rgba(0,0,0,.18),0 7px 0 color-mix(in srgb,var(--theme-pop,#f06691) 55%,#000),0 13px 18px rgba(10,6,30,.36)}.app-shell[data-theme] .sidebar .nav-tools:hover{color:#fff;text-shadow:0 1px 0 rgba(0,0,0,.4);background:linear-gradient(180deg,#ff9bb8,#f06691 55%,#c93f6e);box-shadow:inset 0 2px 0 rgba(255,255,255,.6),inset 0 -2px 0 rgba(0,0,0,.18),0 7px 0 #8c1f47,0 13px 18px rgba(10,6,30,.36)}.app-shell[data-theme] .sidebar .nav-item:hover svg{filter:drop-shadow(0 1px 0 rgba(0,0,0,.4))}.app-shell[data-theme] .sidebar .nav-group{display:flex;flex-direction:column;gap:16px;padding-bottom:10px}@media (min-width:821px){.app-shell[data-theme] .sidebar{position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;padding-inline:14px}}.app-shell[data-theme] .sidebar .group-list,.app-shell[data-theme] .sidebar .nav-group,.app-shell[data-theme] .sidebar nav{gap:14px}.getting-started-card{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px;padding:16px 18px;border:1px solid #e7defd;border-radius:18px;background:linear-gradient(115deg,#fff,#f7f3ff 58%,#fff6e9);box-shadow:0 5px 16px #31225b0a}.getting-started-card>div{display:grid;grid-gap:3px;gap:3px;flex:1 1 250px}.getting-started-card .eyebrow{margin:0;color:#7855ca;font-size:10px;font-weight:900;letter-spacing:.12em}.getting-started-card strong{font-size:15px}.getting-started-card small{color:#708093;font-size:12px}.getting-started-card .outline-btn{min-height:38px;white-space:nowrap}.award-mode-switch{display:flex;gap:6px;margin:12px 0;padding:5px;border-radius:14px;background:#f0ecfa}.award-mode-switch button{flex:1 1;min-height:40px;border:1px solid transparent;border-radius:10px;background:transparent;color:#5b6476;font-weight:800}.award-mode-switch button.selected{border-color:#e1d8fb;background:#fff;color:#5140a2;box-shadow:0 2px 7px #39266d14}.award-wheel-panel{justify-items:center;grid-gap:10px;gap:10px;padding:10px 0 2px}.award-wheel-panel>p:first-child{margin:0;color:#69788c;text-align:center;font-size:12px}.award-wheel-pointer{position:relative;z-index:2;margin-bottom:-12px;border-left:12px solid transparent;border-right:12px solid transparent;border-top:23px solid #283c62;filter:drop-shadow(0 2px 2px #0002)}.award-wheel{position:relative;display:grid;place-items:center;width:230px;height:230px;border:7px solid white;border-radius:50%;box-shadow:0 6px 20px #26385a2a;transition:transform 3.5s cubic-bezier(.13,.78,.17,1)}.award-wheel-label{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:36px;height:36px;margin:-18px;border:2px solid #fff9;border-radius:50%;background:#ffffff65;font-size:20px;line-height:1}.award-wheel-hub{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border:4px solid #fff;border-radius:50%;background:#fff;color:#edaa2c;font-size:19px;box-shadow:0 2px 7px #26385a35}.award-spin-button{min-width:190px}.award-wheel-result{min-height:18px}.award-applause-toggle{display:flex;align-items:center;gap:9px;margin-top:12px;padding:10px 12px;border-radius:12px;background:#fff8e8;color:#4b5362;font-size:12px;font-weight:700}.award-applause-toggle input{width:17px;height:17px;accent-color:#7457ca}.dojo-pop{max-height:min(90vh,800px);overflow-y:auto}.sa-modalities{display:grid;grid-gap:12px;gap:12px;margin:16px 0;padding:16px;border:1px solid #e7defd;border-radius:16px;background:linear-gradient(130deg,#faf8ff,#fff)}.sa-modalities>div:first-child h3{margin:0 0 4px;font-size:15px}.sa-modalities>div:first-child p{margin:0;color:#788497;font-size:12px}.sa-modalities-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.sa-modalities-groups fieldset{min-width:0;margin:0;padding:10px;border:1px solid #e9e6f1;border-radius:12px;background:white}.sa-modalities-groups legend{padding:0 5px;color:#6551ad;font-size:12px;font-weight:800}.sa-modalities-groups fieldset>div{display:flex;flex-wrap:wrap;gap:7px}.sa-modalities-groups label{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #e6e9ed;border-radius:999px;background:#fff;color:#435064;font-size:12px;cursor:pointer}.sa-modalities-groups input{accent-color:#7058c6}.pdf-page-controls{display:flex;align-items:center;gap:5px;flex-wrap:nowrap}.pdf-page-controls .outline-btn{min-height:34px;padding:6px 10px}.pdf-page-controls label{display:flex;align-items:center;gap:5px;color:#647187;font-size:11px;font-weight:700}.pdf-page-controls input{width:54px;min-height:34px;padding:5px;border:1px solid #dedfe5;border-radius:9px;text-align:center}.classroom-site-viewer-head{flex-wrap:wrap}.dojo-pop.dojo-pop-wheel{width:min(980px,100%);padding:28px 32px}.award-wheel-panel{display:grid;justify-items:stretch;grid-gap:14px;gap:14px;padding:8px 0 4px}.award-wheel-heading{text-align:center}.award-wheel-heading h3{margin:0 0 4px}.award-wheel-heading p{margin:0;color:#69788c;font-size:13px}.award-wheel-layout{display:grid;grid-template-columns:minmax(300px,1fr) minmax(240px,300px);align-items:center;grid-gap:28px;gap:28px;max-width:800px;width:100%;margin:0 auto}.award-wheel-stage{position:relative;width:min(100%,460px);aspect-ratio:1;justify-self:center;padding:8px}.award-wheel-disk{display:block;width:100%;height:100%;border:5px solid white;border-radius:50%;background:#f6f2ff;box-shadow:0 10px 28px #22375a30,0 0 0 1px #ddd8ea;transition:transform 3.6s cubic-bezier(.13,.78,.17,1)}.award-wheel-disk text{font-family:inherit;-webkit-user-select:none;-moz-user-select:none;user-select:none}.award-wheel-pointer{position:absolute;top:50%;right:-5px;z-index:3;width:0;height:0;margin:0;transform:translateY(-50%);border-top:15px solid transparent;border-bottom:15px solid transparent;border-right:30px solid #ffd34e;filter:drop-shadow(0 2px 3px #25344b55)}.award-wheel-center{position:absolute;top:50%;left:50%;z-index:4;display:grid;place-items:center;width:104px;height:104px;transform:translate(-50%,-50%);border:8px solid white;border-radius:50%;background:linear-gradient(145deg,#fff,#f7f3ff);color:#30234e;font-size:18px;font-weight:1000;letter-spacing:.08em;box-shadow:0 4px 16px #26385a35;cursor:pointer;transition:transform .15s,box-shadow .15s}.award-wheel-center:hover:not(:disabled){transform:translate(-50%,-50%) scale(1.06);box-shadow:0 7px 20px #26385a4a}.award-wheel-center:active:not(:disabled){transform:translate(-50%,-50%) scale(.96)}.award-wheel-center:disabled{cursor:wait;opacity:.8}.award-wheel-editor{display:grid;grid-gap:9px;gap:9px;align-content:center;padding:18px;border:1px solid #dfd5ff;border-radius:18px;background:linear-gradient(145deg,#fff,#f8f5ff);box-shadow:0 5px 18px #3825680c}.award-wheel-editor h4{margin:0;color:#302d50;font-size:17px}.award-wheel-editor p{margin:0;color:#69788c;font-size:12px;line-height:1.5}.award-wheel-editor label{margin-top:4px;color:#48536a;font-size:12px;font-weight:800}.award-wheel-editor textarea{width:100%;min-height:270px;resize:vertical;padding:12px;border:1px solid #d8d1e8;border-radius:12px;background:white;color:#17243b;font:700 16px/1.75 ui-monospace,SFMono-Regular,Menlo,monospace;outline:none}.award-wheel-editor textarea:focus{border-color:#7059d2;box-shadow:0 0 0 3px #7059d226}.award-wheel-editor small{color:#79869a;font-size:11px}.award-wheel-result{min-height:20px;margin:0;color:#375942;font-size:13px;font-weight:800;text-align:center}.award-wheel-panel .award-wheel-result[role=status]:empty{display:none}@media(max-width:720px){.getting-started-card{align-items:stretch}.getting-started-card>div{flex-basis:100%}.getting-started-card .outline-btn{flex:1 1}.sa-modalities-groups{grid-template-columns:1fr}.pdf-page-controls{order:3;width:100%;justify-content:center}.award-wheel{width:210px;height:210px}}@media(max-width:760px){.dojo-pop.dojo-pop-wheel{padding:24px 18px}.award-wheel-layout{grid-template-columns:1fr;gap:14px}.award-wheel-stage{width:min(78vw,360px)}.award-wheel-center{width:82px;height:82px;font-size:15px}.award-wheel-editor{padding:14px}.award-wheel-editor textarea{min-height:112px;max-height:190px}}:root{--ch-ink:#20264b;--ch-muted:#69748f;--ch-purple:#7253df;--ch-coral:#f15d7d;--ch-sun:#ffcd58;--ch-mint:#39c8b2;--ch-shadow:0 18px 48px #28264d12,0 3px 10px #28264d08}body{color:var(--ch-ink);background:#f4f6ff}.app-shell{min-height:100vh;background:radial-gradient(ellipse at 80% 2%,color-mix(in srgb,var(--theme-accent,#7658e8) 13%,transparent),transparent 30rem),radial-gradient(ellipse at 48% 76%,#ffe5bd48,transparent 33rem),linear-gradient(135deg,#f7f8ff 0,color-mix(in srgb,var(--theme-canvas,#fffaf0) 76%,#edf2ff) 100%)}.sidebar{width:264px;padding:22px 15px 16px;color:#f8f7ff;background:radial-gradient(circle at 10% 4%,#7863eb55,transparent 15rem),linear-gradient(165deg,#20244f,#252451 54%,#163d5a);border:0;box-shadow:8px 0 34px #18234b18}.sidebar.collapsed{width:76px;padding-inline:11px}.brand{color:#fff;font-size:21px;padding:2px 9px 25px}.brand-mark{background:linear-gradient(135deg,#ffe17b,#ff9e72);color:#34316e;box-shadow:0 5px 14px #0002}.collapse-btn,.sidebar .icon-btn{color:#d2d7ff}.sidebar .icon-btn:hover{background:#ffffff18;color:#fff}.nav-label,.workspace-label{color:#a9b4df}.class-switch{height:62px;border:1px solid #ffffff26;border-radius:17px;background:#ffffff10;color:white;box-shadow:inset 0 1px #ffffff18}.class-switch strong{color:#fff;font-size:12px}.class-switch small,.class-switch>svg:last-child{color:#c1c9ea}.switch-icon{background:linear-gradient(140deg,#54d6c2,#55aef3);color:white;border-radius:12px}nav{gap:6px}.nav-item{height:45px;border-radius:14px;color:#d2d8f2;font-size:13px;transition:background .18s,color .18s,transform .18s}.nav-item:hover{background:#ffffff14;color:#fff;transform:translateX(2px)}.nav-item.active{color:#292650;background:linear-gradient(100deg,#ffe17b,#ffd08a);box-shadow:0 5px 16px #10123935;font-weight:900}.nav-item.active:before{display:none}.group-item{color:#c4cceb}.group-item.selected,.group-item:hover{color:#fff;background:#ffffff16}.teacher-card{border-color:#ffffff24}.teacher-card strong{color:#fff}.teacher-card small{color:#c2cae5}.teacher-avatar{background:#ffdfb3;color:#4d3973}.topbar{height:68px;padding-inline:clamp(18px,3.5vw,48px);background:#ffffffdb;border-color:#e8e9f5;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.crumb{color:#8b92aa}.crumb strong{color:#34385d}.top-actions .icon-btn{color:#555d85;border-radius:12px}.top-actions .icon-btn:hover{background:#f1edff;color:#694dd4}.top-divider{background:#e5e7f2}.page-wrap{max-width:1440px;padding:32px clamp(18px,3.5vw,48px) 36px}.welcome-row{min-height:140px;align-items:flex-start}.eyebrow,.kicker{color:#795ed0;letter-spacing:1.6px;font-size:10px}.alternate>h1,.welcome-row h1{font-size:clamp(32px,4vw,46px);line-height:1.08;letter-spacing:-1.6px;color:#23284d}.alternate h1 em,.draw-copy h3 em,.welcome-row h1 em{color:#f05f7d;font-weight:800}.subhead{font-size:15px;color:#75809a}.hero-art{right:9%;top:-7px;transform:scale(1.12)}.toolbar{gap:11px;padding:13px 0 20px;border-color:#e3e6f2}.date-picker,.group-picker,.outline-btn,.searchbox,.subtle{border-radius:13px;border-color:#e1e4f1;background:#fff;color:#505a7b;box-shadow:0 2px 7px #26305b08;transition:border-color .18s,box-shadow .18s,transform .18s}.date-picker:focus-within,.group-picker:focus-within,.searchbox:focus-within{border-color:#917be9;box-shadow:0 0 0 4px #8c70ee20}.date-picker,.group-picker,.outline-btn{height:42px}.outline-btn{font-size:12px;font-weight:800}.outline-btn:hover{border-color:#a893ef;background:#f8f6ff;transform:translateY(-1px)}.landing-signin,.primary-btn{border:0;color:#fff!important;background:linear-gradient(105deg,#7454df,#b352d2 52%,#f05f88);box-shadow:0 5px 0 #58369b55,0 12px 24px #8057d53a;border-radius:15px;font-weight:900;transition:transform .18s,box-shadow .18s,filter .18s}.landing-signin:hover,.primary-btn:hover{transform:translateY(-2px);filter:saturate(1.12);box-shadow:0 7px 0 #58369b55,0 16px 28px #8057d547}.landing-signin:active,.primary-btn:active{transform:translateY(2px);box-shadow:0 2px 0 #58369b55}.icon-btn:focus-visible,.outline-btn:focus-visible,.primary-btn:focus-visible{outline:3px solid #5cccb9;outline-offset:3px}.stats-grid{gap:16px}.basket-panel,.champion-section,.class-card,.draw-setup,.fun-card,.getting-started-card,.insight-card,.lesson-start-card,.panel,.recent-panel,.report-hero,.report-stat,.report-summary,.report-table,.roster-card,.settings-panel,.stat-card,.theme-settings,.ti-panel,.timer-panel{border:1px solid #e5e8f4!important;border-radius:21px!important;background:#fff!important;box-shadow:var(--ch-shadow)!important}.stat-card{min-height:145px;padding:20px 21px}.stat-top{font-size:12px;color:#78819a}.stat-icon{width:38px;height:38px;border-radius:14px!important}.stat-icon.teal{color:#087d82;background:#d9fbf2}.stat-icon.purple{color:#7251d7;background:#eee8ff}.stat-main{font-size:clamp(26px,3vw,34px);font-weight:900;color:#252b51}.stat-caption{color:#8992a8}.bottom-grid{gap:17px;margin-top:19px}.insight-card{padding:21px}.card-heading{color:#292e55;font-size:15px}.chart-wrap{border-radius:16px;background:linear-gradient(180deg,#faf9ff,#fff)}.roster-card{overflow:hidden}.roster-head{padding:17px 20px;background:linear-gradient(100deg,#fff,#fbfaff);border-bottom:1px solid #edeef7}.roster-title{color:#282d53;font-weight:900}.roster-tools{gap:9px}.roster-collapsed-summary,.roster-foot{background:#fafaff;color:#697492}.criteria-head{background:#f7f6ff;color:#717b99}.student-cell{transition:background .15s}.student-cell:hover{background:#faf8ff}.student-name{color:#2b3156;font-weight:900}.student-actions .icon-btn,.student-options-button{border-radius:11px;color:#737b9b}.student-options-button:hover{background:#eee9ff;color:#674bd1}.check-button{border-radius:10px!important;border-color:#dce2ef!important;background:#fff!important}.check-button:hover{border-color:#46cbb4!important;background:#e8fff9!important}.check-button.checked{background:#35cbb0!important;border-color:#35cbb0!important;box-shadow:0 3px 0 #1a927f!important}.points-cell{font-weight:900;color:#30365f}.champion-section{padding:19px 21px}.champion-heading{color:#2a3055;font-weight:900}.champion-bubble{border:2px solid #fff!important;box-shadow:0 9px 18px #31326020!important}.modal h2,.reveal-card h2,.section-heading h2{color:#292e55}.modal{border-radius:25px!important;border:1px solid #e6e8f4;box-shadow:0 28px 80px #20244f35!important}.modal-backdrop,.reveal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.alternate{min-height:70vh}.alternate>h1{margin-bottom:20px}.draw-page-grid,.fun-feature-grid,.settings-grid{gap:18px}.fun-card-title,.panel-title{color:#292e55;font-weight:900}.field-select,.fun-input,.sa-form input,.sa-form textarea{min-height:44px;border-radius:13px!important;border:1px solid #dfe3f1!important;background:#fff;color:#38415f}.field-select:focus,.fun-input:focus,.sa-form input:focus,.sa-form textarea:focus{outline:0;border-color:#8d73e7!important;box-shadow:0 0 0 4px #8d73e71f}.field-label,.sa-form label{color:#596482;font-weight:800}.tool-drawer{background:linear-gradient(180deg,#fff,#f8f7ff)!important;border-left:1px solid #e4e4f2!important;box-shadow:-18px 0 55px #23234f20!important}.tool-drawer-head{color:#292e55}.tool-dock-btn,.tool-drawer-btn,.tool-tile{border-radius:17px!important}.site-home-button{border-radius:13px;box-shadow:0 6px 18px #3434641f}.landing-page{background:radial-gradient(ellipse at 15% 15%,#fff29f 0 5%,transparent 25%),radial-gradient(ellipse at 83% 85%,#82f1df 0 6%,transparent 29%),linear-gradient(132deg,#ffb34f,#ff7585 32%,#c365dc 67%,#656fe5)}.landing-page:before{background:linear-gradient(135deg,#fff2a880,#fff9);box-shadow:inset 0 0 0 1px #ffffff65}.landing-page:after{background:linear-gradient(135deg,#68e4e1aa,#ffffff70)}.landing-header{padding:8px 0}.landing-brand{font-size:19px}.landing-header-note{font-size:13px}.landing-hero{min-height:min(72vh,760px);width:min(100%,1160px)}.landing-hero-card{width:min(100%,700px);padding:clamp(34px,5vw,58px) clamp(24px,6vw,66px) 37px;border-radius:42px;border:3px solid #ffffffd9;box-shadow:0 13px 0 #55368e38,0 36px 90px #38307655;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.landing-pill{font-size:11px;background:#fff5d8}.landing-logo{width:clamp(180px,25vw,280px);height:auto;max-height:280px;object-fit:contain;filter:drop-shadow(0 14px 12px #40306a35);animation:champsBob 4.5s ease-in-out infinite}@keyframes champsBob{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)}}.landing-hero-card h1{font-size:clamp(31px,4vw,42px);letter-spacing:-1.3px}.landing-hero-card>p{font-size:16px;color:#69748f}.landing-signin{min-width:210px;padding:17px 26px;font-size:18px}.landing-cheer{font-size:12px;color:#69748f}.landing-sticker{padding:14px 18px;border-radius:21px;box-shadow:0 8px 0 #593c8f28,0 17px 30px #4427522b}.landing-floating{filter:drop-shadow(0 5px 12px #26265222)}.login-page{padding:clamp(20px,4vw,56px);background:radial-gradient(circle at 13% 10%,#ffde7c 0 6%,transparent 23%),radial-gradient(circle at 90% 90%,#7fe8dd 0 7%,transparent 27%),linear-gradient(135deg,#fff4ce,#fde7f2 48%,#e7e3ff)}.login-card{width:min(100%,1100px);min-height:610px;display:grid;grid-template-columns:1fr 1fr;grid-gap:0;gap:0;padding:0;border:1px solid #ffffffd9;border-radius:34px;overflow:hidden;background:#fff;box-shadow:0 24px 80px #3731682c}.login-welcome-panel{position:relative;display:flex;flex-direction:column;justify-content:center;padding:clamp(36px,6vw,76px);overflow:hidden;color:#fff;background:radial-gradient(circle at 80% 12%,#ffd46075 0 10%,transparent 25%),radial-gradient(circle at 4% 93%,#45d0c375 0 12%,transparent 30%),linear-gradient(145deg,#5547c6,#8050d4 48%,#ed658e)}.login-welcome-panel:after{content:"";position:absolute;width:340px;height:340px;right:-170px;bottom:-160px;border:2px solid #ffffff40;border-radius:50%;box-shadow:0 0 0 25px #ffffff13,0 0 0 50px #ffffff10}.login-welcome-brand{position:absolute;left:clamp(36px,6vw,76px);top:34px;color:#fff;text-decoration:none;font:800 20px var(--display);z-index:1}.login-welcome-brand span{color:#ffe07c}.login-rainbow{font-size:78px;filter:drop-shadow(0 8px 12px #291d5f22);margin-bottom:8px}.login-welcome-eyebrow{font-size:11px;font-weight:900;letter-spacing:1.7px;color:#fff5c5;margin:4px 0 14px}.login-welcome-panel h1{font:800 clamp(40px,5vw,60px)/1.02 var(--display);letter-spacing:-2px;margin:0;color:#fff}.login-welcome-panel h1 em{font-style:normal;color:#ffe17b}.login-welcome-panel>p:last-of-type{max-width:370px;color:#f4efff;font-size:15px;line-height:1.7;margin:18px 0 0}.login-welcome-bubbles{display:flex;gap:12px;margin-top:28px}.login-welcome-bubbles span{width:48px;height:48px;display:grid;place-items:center;border-radius:17px;background:#ffffff20;border:1px solid #ffffff40;font-size:23px;box-shadow:0 6px 16px #231b5030}.login-form-panel{display:flex;flex-direction:column;justify-content:center;padding:clamp(34px,6vw,78px)}.login-brand{display:flex;align-items:center;gap:10px;padding:0 0 30px;font:900 20px var(--display);color:#2b3159}.login-brand img{border-radius:14px;box-shadow:0 6px 14px #2f305522}.login-form-panel .eyebrow{margin-top:8px}.login-form-panel h2{font:900 clamp(29px,3.2vw,38px)/1.1 var(--display);letter-spacing:-1px;color:#292e55;margin:0}.login-intro{color:#77819b;font-size:14px;line-height:1.6;margin:12px 0 25px}.login-card form label{font-size:12px;color:#535f7d;margin:17px 0 7px}.login-card form input{height:49px;border:1px solid #dfe3f1;border-radius:13px;padding:0 14px;background:#fcfcff;font-size:14px}.login-card form input:focus{outline:0;border-color:#8c72e7;box-shadow:0 0 0 4px #8b70e720}.login-card form .primary-btn{height:50px;margin-top:20px}.login-foot{font-size:11px;color:#9299ae}.login-home-button{position:absolute;top:24px;left:24px;z-index:10}.login-home-link{color:#6653c2;font-weight:800;margin-top:18px}.login-error{padding:11px 13px;border-radius:12px}.landing-footer{color:#fff;font-size:12px;font-weight:800;text-shadow:0 2px 8px #57317e55}.landing-footer i{color:#ffe37a;font-style:normal;margin:0 4px}.public-home-button{background:#fff;color:#474094;border:0}@media(max-width:900px){.sidebar{width:230px}.login-card{width:min(100%,760px);grid-template-columns:.9fr 1.1fr}.login-welcome-panel{padding:36px}.login-welcome-brand{left:36px}}@media(max-width:700px){.sidebar{position:fixed;inset:0 auto 0 -275px;width:260px!important;padding:21px 15px;transition:transform .24s ease;box-shadow:14px 0 40px #1b1e4835}.sidebar.open{transform:translateX(275px)}.sidebar.collapsed{width:260px!important}.main-area{width:100%;padding-bottom:78px}.topbar{height:58px;padding-inline:14px}.page-wrap{padding:20px 14px 26px}.welcome-row{min-height:110px}.welcome-row h1{font-size:32px}.hero-art{right:-35px;transform:scale(.7);transform-origin:top right;opacity:.52}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{min-height:120px;padding:14px}.bottom-grid{grid-template-columns:1fr}.login-page{padding:14px;align-items:start}.login-home-button{top:17px;left:17px}.login-card{width:min(100%,480px);min-height:0;grid-template-columns:1fr;border-radius:26px;margin:42px 0 18px}.login-welcome-panel{min-height:300px;padding:72px 24px 26px}.login-welcome-brand{left:24px;top:23px}.login-rainbow{font-size:56px;margin-bottom:2px}.login-welcome-panel h1{font-size:40px}.login-welcome-panel>p:last-of-type{font-size:13px;margin-top:10px}.login-welcome-bubbles{margin-top:15px}.login-form-panel{padding:28px 24px}.login-brand{padding-bottom:20px}.landing-page{padding:14px 15px 12px}.landing-header-note{display:none}.landing-hero{min-height:calc(100svh - 112px)}.landing-hero-card{padding:30px 20px 26px;border-radius:29px}.landing-logo{width:210px;max-height:205px}.landing-sticker{display:none}.landing-footer{font-size:10px}}@media(prefers-reduced-motion:reduce){.landing-logo{animation:none}}.daily-checkin-heading{align-items:center;gap:16px;flex-wrap:wrap}.checkin-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.checkin-heading-actions .toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.checkin-heading-actions .outline-btn{white-space:nowrap}@media(max-width:760px){.daily-checkin-heading{align-items:flex-start}.checkin-heading-actions{width:100%;justify-content:space-between;gap:8px}.checkin-heading-actions .toolbar-actions{flex-wrap:wrap}}.back-page-button{flex:none;color:#555d85;border-radius:12px}.back-page-button:hover{background:#f1edff;color:#694dd4}.app-shell[data-theme] .back-page-button{color:#fff}.app-shell[data-theme] .back-page-button:hover{background:#ffffff1d;color:#fff}