.sparkle-dashboard{--spark-ink:#20274b;--spark-muted:#7b829c;--spark-paper:#fbfaff;--spark-line:#eceaf5;--spark-purple:#6e4de6;--spark-mint:#39c7ad;--spark-sun:#ffca45;--spark-coral:#ff7f73;color:var(--spark-ink);background:radial-gradient(ellipse at 91% 0,#eee8ff 0,transparent 34rem),linear-gradient(135deg,#fbfaff,#f8f7ff 60%,#fffaf0)}.sparkle-dashboard .sidebar{width:246px;padding:22px 15px 16px;background:#fff;color:var(--spark-ink);border-right:1px solid var(--spark-line);box-shadow:8px 0 30px #30245d0b}.sparkle-dashboard .sidebar.collapsed{width:76px}.sparkle-dashboard .brand{padding:2px 8px 22px;color:var(--spark-ink)}.sparkle-dashboard .brand-mark{background:linear-gradient(145deg,#ffda58,#ffab35);color:#fff;box-shadow:0 7px 16px #ffd76a80}.sparkle-dashboard .collapse-btn,.sparkle-dashboard .sidebar .icon-btn{color:#717891}.sparkle-dashboard .nav-label,.sparkle-dashboard .workspace-label{color:#a3a7b8}.sparkle-dashboard .class-switch{height:62px;border:1px solid #e8e0ff;border-radius:16px;background:#f6f3ff;color:var(--spark-ink);box-shadow:none}.sparkle-dashboard .class-switch strong{color:var(--spark-purple)}.sparkle-dashboard .class-switch small,.sparkle-dashboard .class-switch>svg:last-child{color:var(--spark-muted)}.sparkle-dashboard .switch-icon{background:#e6fbf6;color:#278a7a;border-radius:12px}.sparkle-dashboard .nav-item{height:44px;border-radius:13px;color:#717891;font-weight:800}.sparkle-dashboard .nav-item:hover{background:#f5f2ff;color:#5d3cd4;transform:translateX(2px)}.sparkle-dashboard .nav-item.active{color:#5d3cd4;background:#eee9ff;box-shadow:none;font-weight:900}.sparkle-dashboard .nav-item.active:before{display:none}.sparkle-dashboard .group-item{color:#717891}.sparkle-dashboard .group-item.selected,.sparkle-dashboard .group-item:hover{color:#5d3cd4;background:#f5f2ff}.sparkle-dashboard .teacher-card{border-color:var(--spark-line);background:#fff}.sparkle-dashboard .teacher-card strong{color:var(--spark-ink)}.sparkle-dashboard .teacher-card small{color:var(--spark-muted)}.sparkle-dashboard .teacher-avatar{background:#e6fbf6;color:#267a68}.sparkle-dashboard .topbar{background:#ffffffd9;border-color:var(--spark-line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sparkle-dashboard .crumb{color:#898da2}.sparkle-dashboard .crumb strong{color:#5740bb}.sparkle-dashboard .top-actions .icon-btn{color:#717891;border-radius:12px}.sparkle-dashboard .top-actions .icon-btn:hover{background:#f5f2ff;color:#5d3cd4}.sparkle-dashboard .page-wrap{max-width:1510px;padding:26px clamp(18px,3vw,42px) 40px}.sparkle-dashboard .today-layout{gap:0}.sparkle-dashboard .sparkle-today .welcome-row{position:relative;min-height:112px;align-items:center;margin:0 0 17px;padding:8px 8px 14px;overflow:hidden}.sparkle-dashboard .sparkle-today .welcome-row:after{content:"✦";position:absolute;right:105px;top:2px;color:#ffcc52;font-size:24px;opacity:.8;transform:rotate(12deg)}.sparkle-dashboard .sparkle-today .welcome-row h1{font-size:clamp(27px,3vw,36px);line-height:1.08;letter-spacing:-1px;color:var(--spark-ink)}.sparkle-dashboard .sparkle-today .welcome-row h1 em{color:var(--spark-purple);font-style:normal}.sparkle-dashboard .sparkle-today .welcome-row .eyebrow{font-weight:900;color:#7658d9}.sparkle-dashboard .sparkle-today .welcome-row .subhead{font-size:14px;color:var(--spark-muted);margin-top:7px}.sparkle-mascot{width:84px;height:84px;flex:none;display:grid;place-items:center;border-radius:26px;background:linear-gradient(145deg,#fff0b3,#ffd95d);box-shadow:0 9px 20px #f8d35c55;transform:rotate(4deg)}.sparkle-mascot img{width:78px;height:78px;object-fit:contain;filter:drop-shadow(0 4px 3px #80622a23)}.sparkle-dashboard .sparkle-toolbar{padding:12px 14px;margin:0 0 18px;border:1px solid var(--spark-line);border-radius:18px;background:#ffffffd9;box-shadow:0 5px 18px #34235b08;gap:10px}.sparkle-dashboard .sparkle-toolbar .toolbar-actions{gap:8px}.sparkle-dashboard .sparkle-toolbar .outline-btn{height:40px;border:1px solid #e8e0ff;border-radius:12px;background:#fff;color:#5c4d91;font-weight:900}.sparkle-dashboard .sparkle-toolbar .outline-btn:hover{background:#f7f4ff;border-color:#c9bcff}.sparkle-dashboard .sparkle-toolbar .group-picker{height:40px;border:1px solid #e8e0ff;border-radius:12px;background:#f6f3ff;color:#5d3cd4;box-shadow:none}.sparkle-dashboard .sparkle-quick-section{margin:3px 0 18px;padding:18px 20px 20px;border:1px solid var(--spark-line);border-radius:22px;background:#ffffffd9;box-shadow:0 14px 38px #3c2b7510}.sparkle-section-head{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:13px}.sparkle-section-head h2{margin:0;color:var(--spark-ink);font:800 21px/1.1 var(--font-playful),sans-serif;letter-spacing:-.3px}.sparkle-section-head h2 span{color:#f4b820}.sparkle-section-head p{margin:5px 0 0;color:var(--spark-muted);font-size:12px;font-weight:700}.sparkle-text-link{display:flex;align-items:center;gap:5px;border:0;background:none;color:var(--spark-purple);font:900 12px var(--font-rounded),sans-serif;cursor:pointer;white-space:nowrap}.sparkle-text-link:hover{text-decoration:underline}.sparkle-quick-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px;gap:10px}.sparkle-quick{display:flex;align-items:center;gap:11px;min-width:0;padding:12px;border:1px solid var(--spark-line);border-radius:17px;background:#fff;text-align:left;box-shadow:0 4px 12px #34235b08;cursor:pointer;transition:transform .18s,box-shadow .18s,border-color .18s}.sparkle-quick:hover{transform:translateY(-2px);box-shadow:0 14px 30px #3c2b7514;border-color:#dcd3fa}.sparkle-quick:focus-visible{outline:3px solid #39c7ad;outline-offset:3px}.sparkle-quick-icon{width:40px;height:40px;display:grid;place-items:center;flex:none;border-radius:14px;font-size:22px}.sparkle-quick strong{display:block;color:#292e55;font-size:12px;font-weight:900}.sparkle-quick small{display:block;margin-top:3px;color:var(--spark-muted);font-size:10px;font-weight:700}.sparkle-quick.qi1 .sparkle-quick-icon{background:#fff0c5}.sparkle-quick.qi2 .sparkle-quick-icon{background:#e4f8f2}.sparkle-quick.qi3 .sparkle-quick-icon{background:#ffe7e2}.sparkle-quick.qi4 .sparkle-quick-icon{background:#e9efff}.sparkle-dashboard .lesson-panel{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.9fr);grid-gap:12px;gap:12px;margin:0 0 18px}.sparkle-dashboard .lesson-start-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-column-gap:14px;column-gap:14px;grid-row-gap:8px;row-gap:8px;padding:16px 18px;border:1px solid #e8e0ff!important;border-radius:20px!important;background:linear-gradient(115deg,#6847dc,#8c62ee)!important;color:#fff;box-shadow:0 12px 24px #7958dc35!important}.sparkle-dashboard .lesson-start-icon{grid-row:span 2;width:46px;height:46px;display:grid;place-items:center;border-radius:16px;background:#ffffff20;color:#fff}.sparkle-dashboard .lesson-start-copy .eyebrow{color:#ffe79d}.sparkle-dashboard .lesson-start-copy h2{margin:4px 0;color:#fff;font:800 17px var(--font-playful),sans-serif}.sparkle-dashboard .lesson-start-copy p{margin:0;color:#f3eeff;font-size:11px;line-height:1.45}.sparkle-dashboard .lesson-start-button,.sparkle-dashboard .lesson-stop-button{grid-column:3;grid-row:1/span 2;align-self:center;white-space:nowrap;border:0;border-radius:13px;padding:11px 14px;background:#ffda58;color:#302657;font:900 12px var(--font-rounded),sans-serif;box-shadow:0 4px 0 #c48b2e;cursor:pointer}.sparkle-dashboard .lesson-start-button:hover,.sparkle-dashboard .lesson-stop-button:hover{transform:translateY(-1px)}.sparkle-dashboard .lesson-countdown{grid-column:3;grid-row:1/span 2;color:#fff;font-size:23px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sparkle-dashboard .lesson-auto{grid-column:2/4;color:#f3eeff;font-size:10px}.sparkle-dashboard .lesson-goal-part{padding:15px 17px;border:1px solid var(--spark-line);border-radius:20px;background:#fff;box-shadow:0 10px 24px #3c2b750c}.sparkle-dashboard .section-heading{margin:8px 2px 12px}.sparkle-dashboard .section-heading h2{color:var(--spark-ink);font:800 21px var(--font-playful),sans-serif}.sparkle-dashboard .section-heading p{color:var(--spark-muted)}.sparkle-dashboard .dojo-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:11px;margin-bottom:18px}.sparkle-dashboard .dojo-tile{min-height:102px;border:1px solid var(--spark-line);border-radius:18px;background:#fff;box-shadow:0 5px 14px #34235b09;transition:transform .16s,box-shadow .16s,border-color .16s}.sparkle-dashboard .dojo-tile:hover{transform:translateY(-2px);border-color:#cfc3ff;box-shadow:0 12px 24px #3c2b7515}.sparkle-dashboard .dojo-tile strong{color:#292e55}.sparkle-dashboard .dojo-tile.is-top-champ{--champ-color-a:#baf4ff;--champ-color-b:#ffe889;--champ-color-c:#d9c4ff;--champ-border-a:#19a9c0;--champ-border-b:#e29b00;--champ-border-c:#8051db;animation:top-champ-float 3.8s ease-in-out infinite,top-champ-color 6s ease-in-out infinite;will-change:transform,background-color,border-color}.sparkle-dashboard .dojo-tile.top-champ-0{--champ-color-a:#a9f0ff;--champ-color-b:#70dff0;--champ-color-c:#e4fbff;--champ-border-a:#109bb6;--champ-border-b:#168ea8;--champ-border-c:#6bc6d8;animation-delay:0s,-1.4s}.sparkle-dashboard .dojo-tile.top-champ-1{--champ-color-a:#ffe274;--champ-color-b:#ffc940;--champ-color-c:#fff3b5;--champ-border-a:#d18a00;--champ-border-b:#c27a00;--champ-border-c:#e8af24;animation-delay:-.55s,-2.5s}.sparkle-dashboard .dojo-tile.top-champ-2{--champ-color-a:#cbb1ff;--champ-color-b:#ad8cf5;--champ-color-c:#e7dcff;--champ-border-a:#7344d2;--champ-border-b:#6237c2;--champ-border-c:#a889e9;animation-delay:-1.1s,-3.3s}.sparkle-dashboard .dojo-tile.top-champ-3{--champ-color-a:#a4efbd;--champ-color-b:#70dfa3;--champ-color-c:#d9f8df;--champ-border-a:#168748;--champ-border-b:#08783f;--champ-border-c:#65ba78;animation-delay:-1.65s,-4.2s}.sparkle-dashboard .dojo-tile.top-champ-4{--champ-color-a:#ffad83;--champ-color-b:#ff806f;--champ-color-c:#ffd6a5;--champ-border-a:#dc5637;--champ-border-b:#cc4639;--champ-border-c:#ed8758;animation-delay:-2.2s,-5.1s}.sparkle-dashboard .dojo-tile.top-champ-5{--champ-color-a:#ffa9d1;--champ-color-b:#f780bb;--champ-color-c:#ffd2e8;--champ-border-a:#c83a80;--champ-border-b:#b92b71;--champ-border-c:#e674aa;animation-delay:-2.75s,-6s}@keyframes top-champ-float{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes top-champ-color{0%,to{background-color:var(--champ-color-a);border-color:var(--champ-border-a);box-shadow:0 5px 15px color-mix(in srgb,var(--champ-border-a) 24%,transparent)}50%{background-color:var(--champ-color-b);border-color:var(--champ-border-b);box-shadow:0 7px 20px color-mix(in srgb,var(--champ-border-b) 25%,transparent)}75%{background-color:var(--champ-color-c);border-color:var(--champ-border-c);box-shadow:0 6px 18px color-mix(in srgb,var(--champ-border-c) 24%,transparent)}}.sparkle-dashboard .dojo-tile.is-top-champ{border-width:2px;box-shadow:0 8px 22px color-mix(in srgb,var(--champ-border-a) 30%,transparent)}.sparkle-dashboard .dojo-tile.is-top-champ:hover{filter:saturate(1.14) brightness(1.02)}.sparkle-dashboard .top-champ-trophy{position:absolute;z-index:2;top:8px;left:8px;width:29px;height:29px;display:grid;place-items:center;border:2px solid #fff;border-radius:50%;background:linear-gradient(145deg,#fff3a6,#ffbf24);box-shadow:0 3px 8px #82540055;font-size:16px;line-height:1}.sparkle-dashboard .dojo-pts{background:#f2efff;color:#6850ce}.sparkle-dashboard .checkin-display-actions{display:flex;align-items:center;gap:8px}.sparkle-dashboard .points-visibility-toggle{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;border:1px solid #ded5f6;border-radius:12px;background:#fff;color:#55427f;font-size:11px;font-weight:900;white-space:nowrap}.sparkle-dashboard .points-visibility-toggle:hover{border-color:#b7a4ec;background:#f8f5ff}.sparkle-dashboard .dojo-points-hidden .dojo-pts{min-width:38px;background:#e7e4ef;color:#746e83;font-size:10px;letter-spacing:2px}.book-return-reminder-backdrop{position:fixed;z-index:250;inset:0;display:grid;place-items:center;padding:20px;background:rgba(32,27,58,.48);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.book-return-reminder{position:relative;width:min(100%,440px);display:flex;flex-direction:column;align-items:center;padding:32px 30px 25px;border:1px solid #e5dcfa;border-radius:26px;background:linear-gradient(150deg,#fff 20%,#fff9e8);box-shadow:0 28px 90px #201b3a55;text-align:center;animation:book-reminder-in .24s cubic-bezier(.2,1.2,.3,1)}.book-return-reminder-icon{display:grid;place-items:center;width:68px;height:68px;margin-bottom:16px;border:3px solid white;border-radius:22px;background:linear-gradient(145deg,#ffefad,#ffe1b8);box-shadow:0 7px 16px #ce9e3550;font-size:36px}.book-return-reminder-kicker{color:#7955cb;font-size:10px;font-weight:900;letter-spacing:1.4px}.book-return-reminder h2{margin:8px 0;color:#2b2c54;font:900 clamp(22px,4vw,29px)/1.12 var(--font-playful),var(--font-rounded),sans-serif}.book-return-reminder p{max-width:340px;margin:0;color:#68728b;font-size:13px;line-height:1.55}.book-return-confirm{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin:22px 0 8px;padding:14px;border:2px solid #b6e5ce;border-radius:16px;background:#edfff5;color:#176b4a;font-size:14px;font-weight:900;cursor:pointer}.book-return-confirm input{width:21px;height:21px;margin:0;accent-color:#19875e}.book-return-later{margin-top:8px;padding:9px 12px;border:0;background:transparent;color:#766c8d;font-size:12px;font-weight:800;text-decoration:underline;text-underline-offset:3px}.book-return-later:hover{color:#594082}@keyframes book-reminder-in{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(prefers-reduced-motion:reduce){.book-return-reminder{animation:none}}.sparkle-dashboard .champion-section,.sparkle-dashboard .insight-card,.sparkle-dashboard .roster-card,.sparkle-dashboard .stat-card{border:1px solid var(--spark-line)!important;border-radius:21px!important;background:#fff!important;box-shadow:0 14px 38px #3c2b7510!important}.sparkle-dashboard .roster-head{background:linear-gradient(100deg,#fff,#fbfaff);border-color:var(--spark-line)}.sparkle-dashboard .roster-title{color:#292e55}.sparkle-dashboard .criteria-head{background:#f7f6ff;color:#717891}.sparkle-dashboard .student-row:hover{background:#faf8ff}.sparkle-dashboard .student-name{color:#292e55}.sparkle-dashboard .check-button.checked{background:#39c7ad!important;border-color:#39c7ad!important;box-shadow:0 3px 0 #1b9583!important}.sparkle-dashboard .roster-collapsed-summary,.sparkle-dashboard .roster-foot{background:#fafaff;color:#697492}.sparkle-dashboard .card-heading h3,.sparkle-dashboard .champion-heading h2{color:#292e55}.sparkle-dashboard .champion-bubble{box-shadow:0 9px 18px #31326020!important}.sparkle-dashboard .stats-grid{gap:14px}.sparkle-dashboard .stat-main{color:#292e55}.sparkle-dashboard .bottom-grid{gap:15px}.sparkle-dashboard .award-wheel-amount{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;color:#69788c;font-size:13px;font-weight:800}.sparkle-dashboard .award-wheel-title{margin:0;color:#292e55;font:800 20px var(--font-playful),sans-serif}.sparkle-dashboard .award-wheel-amount input{width:92px;height:42px;padding:0 10px;border:2px solid #ded5fa;border-radius:12px;background:#fff;color:#4c36ad;font:900 18px var(--font-rounded),sans-serif;text-align:center}.sparkle-dashboard .award-wheel-amount input:focus{outline:3px solid #6e4de633;border-color:#6e4de6}.sparkle-dashboard .award-wheel-amount input:disabled{opacity:.6}.sparkle-dashboard .award-wheel-panel>p{margin:0;color:var(--spark-muted);font-size:12px;text-align:center}@media(max-width:1050px){.sparkle-dashboard .sparkle-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sparkle-dashboard .lesson-panel{grid-template-columns:1fr}.sparkle-dashboard .lesson-goal-part{min-height:90px}}@media(max-width:700px){.sparkle-dashboard .sparkle-today .welcome-row{min-height:90px;padding:6px 2px 12px}.sparkle-dashboard .sparkle-today .welcome-row h1{font-size:28px}.sparkle-dashboard .sparkle-mascot{width:62px;height:62px;border-radius:19px}.sparkle-dashboard .sparkle-mascot img{width:58px;height:58px}.sparkle-dashboard .sparkle-today .welcome-row:after{right:70px}.sparkle-dashboard .sparkle-toolbar{padding:10px;margin-bottom:14px}.sparkle-dashboard .sparkle-quick-section{padding:14px;margin-bottom:14px}.sparkle-section-head h2{font-size:19px}.sparkle-dashboard .sparkle-quick{padding:10px 8px;gap:8px}.sparkle-quick-icon{width:34px;height:34px;font-size:19px}.sparkle-quick strong{font-size:11px}.sparkle-quick small{font-size:9px}.sparkle-dashboard .lesson-start-card{grid-template-columns:auto minmax(0,1fr);padding:14px}.sparkle-dashboard .lesson-countdown,.sparkle-dashboard .lesson-start-button,.sparkle-dashboard .lesson-stop-button{grid-column:2;grid-row:auto;justify-self:start}.sparkle-dashboard .lesson-auto{grid-column:1/-1}.sparkle-dashboard .dojo-grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr))}}@media(max-width:420px){.sparkle-dashboard .sparkle-section-head{align-items:start}.sparkle-dashboard .sparkle-text-link{font-size:10px}.sparkle-dashboard .sparkle-quick-grid{gap:7px}.sparkle-dashboard .sparkle-quick{align-items:flex-start;flex-direction:column}.sparkle-dashboard .sparkle-quick small{min-height:12px}}@media(prefers-reduced-motion:reduce){.sparkle-dashboard .dojo-tile,.sparkle-dashboard .sparkle-quick{transition:none}.sparkle-dashboard .dojo-tile.is-top-champ{animation:none;background:var(--champ-color-a);border-color:var(--champ-border-a)}}.annual-program-form{display:grid;grid-template-columns:minmax(130px,.5fr) minmax(220px,1fr) auto auto;align-items:end;grid-gap:10px;gap:10px;margin:17px 0 8px;padding:16px;border:1px solid #eeeaf8;border-radius:18px;background:linear-gradient(120deg,#fbfaff,#fffdf7)}.annual-program-form>label:not(.outline-btn){display:grid;grid-gap:6px;gap:6px}.annual-program-title-field{min-width:0}.annual-program-file{max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.annual-program-status{margin:8px 2px;color:#21856d;font-size:12px;font-weight:800}.annual-programs-list{display:grid;grid-gap:16px;gap:16px;margin-top:18px}.annual-program-card{overflow:hidden;border:1px solid #eae6f4;border-radius:18px;background:#fff;box-shadow:0 8px 22px #30245d0c}.annual-program-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 11px}.annual-program-year{display:inline-block;padding:4px 8px;border-radius:999px;background:#fff1c7;color:#76520a;font-size:10px;font-weight:900;letter-spacing:.04em}.annual-program-card h3{margin:8px 0 0;color:#292e55;font:800 14px/1.25 var(--font-playful),var(--font-rounded),sans-serif}.annual-program-card-head small{display:block;margin-top:4px;color:#858ba1;font-size:10px}.annual-program-table-scroll{overflow-x:auto;border-top:1px solid #f0edf6}.annual-program-table{width:100%;min-width:760px;border-collapse:collapse;text-align:left}.annual-program-table th{padding:10px 13px;background:#f7f5fc;color:#675d83;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.annual-program-table td{padding:11px 13px;border-top:1px solid #f1eef7;color:#3d4560;font-size:12px;line-height:1.45;vertical-align:top}.annual-program-table td:first-child{width:115px;color:#58439f;font-weight:900;white-space:nowrap}.annual-program-table td:nth-child(2){width:24%;font-weight:700}.annual-program-table td:nth-child(3){width:24%;font-weight:800}.annual-program-source-link{display:inline-flex;align-items:center;gap:6px;margin:11px 14px 13px;color:#5c43be;font-size:11px;font-weight:800;overflow-wrap:anywhere}.annual-program-add{margin-top:17px;padding:13px 15px;border:1px solid #e6e0f2;border-radius:16px;background:#fcfbff}.annual-program-add>summary{display:flex;align-items:center;gap:7px;color:#5d43bd;font-size:12px;font-weight:900;cursor:pointer;list-style:none}.annual-program-add>summary::-webkit-details-marker{display:none}.annual-program-editor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:17px 0 10px}.annual-program-editor-head h3{margin:0;color:#292e55;font-size:13px}.annual-program-editor-head p{margin:4px 0 0;color:#858ba1;font-size:10px}.annual-program-event-editor{overflow-x:auto;border:1px solid #ebe7f3;border-radius:13px;background:#fff}.annual-program-event-labels,.annual-program-event-row{display:grid;grid-template-columns:minmax(125px,.8fr) minmax(160px,1fr) minmax(160px,1fr) minmax(200px,1.2fr) 38px;align-items:center;grid-gap:8px;gap:8px;min-width:760px;padding:9px 10px}.annual-program-event-labels{background:#f7f5fc;color:#675d83;font-size:10px;font-weight:900}.annual-program-event-row{border-top:1px solid #f1eef7}.annual-program-event-row .field-select{min-width:0;margin:0;padding:8px;font-size:11px}@media(max-width:760px){.annual-program-form{grid-template-columns:1fr 1fr}.annual-program-title-field{grid-column:1/-1}.annual-program-file{max-width:none}.annual-program-table{min-width:740px}}@media(max-width:460px){.annual-program-form{grid-template-columns:1fr}.annual-program-title-field{grid-column:auto}.annual-program-file{width:100%;justify-content:center}.annual-program-editor-head{align-items:flex-start;flex-direction:column}}.app-shell.sparkle-dashboard[data-theme]{--kidza-ink:#24274b;--kidza-muted:#767e9a;--kidza-violet:#7048df;--kidza-coral:#ff6f76;--kidza-sun:#ffc83d;--kidza-mint:#38c6a6;--kidza-sky:#53b9e9;background:radial-gradient(ellipse at 88% 3%,#ffe08c65 0 8%,transparent 28rem),radial-gradient(ellipse at 3% 38%,#71ded138 0 7%,transparent 29rem),linear-gradient(145deg,#f8f6ff,#f1faff 48%,#fff7ee)}.app-shell.sparkle-dashboard[data-theme] .sidebar{background:radial-gradient(circle at 90% 7%,#ffcc5540 0 4px,transparent 5px),radial-gradient(circle at 12% 24%,#48d5bb38 0 5px,transparent 6px),linear-gradient(165deg,#29224e,#352a68 48%,#174c60);box-shadow:9px 0 32px #26214c20}.app-shell.sparkle-dashboard[data-theme] .brand-home{color:#fff}.app-shell.sparkle-dashboard[data-theme] .brand-mark{background:linear-gradient(145deg,#ffe36e,#ff9e6b);color:#523a91;box-shadow:0 5px 0 #ce775644,0 8px 17px #100c2c45}.app-shell.sparkle-dashboard[data-theme] .class-switch{border-color:#ffffff35;background:linear-gradient(110deg,#ffffff1b,#ffffff0c);box-shadow:inset 0 1px #ffffff20,0 5px 13px #15113124}.app-shell.sparkle-dashboard[data-theme] .class-switch strong{color:#fff3b0}.app-shell.sparkle-dashboard[data-theme] .class-switch small,.app-shell.sparkle-dashboard[data-theme] .class-switch>svg:last-child{color:#d7d5f2}.app-shell.sparkle-dashboard[data-theme] .switch-icon{color:#fff;background:linear-gradient(145deg,#41ceb5,#49a8e9);box-shadow:0 3px 9px #11123836}.app-shell.sparkle-dashboard[data-theme] .nav-item{color:#e0def3}.app-shell.sparkle-dashboard[data-theme] .nav-item:hover{color:#fff;background:#ffffff19}.app-shell.sparkle-dashboard[data-theme] .nav-item.active{color:#38295e;background:linear-gradient(100deg,#ffe16a,#ffc979 56%,#ff9c89);box-shadow:0 4px 0 #d8846655,0 8px 18px #17123038}.app-shell.sparkle-dashboard[data-theme] .nav-group-label,.app-shell.sparkle-dashboard[data-theme] .nav-label,.app-shell.sparkle-dashboard[data-theme] .workspace-label{color:#bcb9de}.app-shell.sparkle-dashboard[data-theme] .group-item{color:#e0def3}.app-shell.sparkle-dashboard[data-theme] .group-item.selected,.app-shell.sparkle-dashboard[data-theme] .group-item:hover{color:#fff;background:#ffffff19}.app-shell.sparkle-dashboard[data-theme] .teacher-card{border-color:#ffffff2b;background:transparent}.app-shell.sparkle-dashboard[data-theme] .teacher-card strong{color:#fff}.app-shell.sparkle-dashboard[data-theme] .teacher-card small{color:#cbc9e4}.app-shell.sparkle-dashboard[data-theme] .teacher-avatar{color:#45336e;background:linear-gradient(145deg,#ffe37e,#ffb28d);box-shadow:0 3px 9px #10112f55}.app-shell.sparkle-dashboard[data-theme] .sidebar .icon-btn{color:#e4e0ff}.app-shell.sparkle-dashboard[data-theme] .sidebar .icon-btn:hover{color:#fff;background:#ffffff1c}.app-shell.sparkle-dashboard[data-theme] .main-area{background:radial-gradient(ellipse at 89% 2%,color-mix(in srgb,var(--theme-accent,#8d70ed) 17%,transparent),transparent 31rem),radial-gradient(ellipse at 2% 31%,#4ed1b51c,transparent 27rem),linear-gradient(145deg,#f8f6ff 0,#f2f9ff 53%,#fff9f0 100%)}.app-shell.sparkle-dashboard[data-theme] .topbar{border-bottom:2px solid #e8e0ff;box-shadow:0 5px 18px #3329690a}.app-shell.sparkle-dashboard[data-theme] .crumb strong{color:var(--kidza-violet)}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting{display:flex;align-items:center;gap:8px;flex:1 1;min-width:0;max-width:540px;margin-inline:clamp(12px,2vw,28px);padding:6px 10px 6px 13px;border:1px solid color-mix(in srgb,var(--theme-accent,#8066b7) 32%,white);border-radius:15px;background:linear-gradient(100deg,color-mix(in srgb,var(--theme-accent,#8066b7) 17%,white),#fff 76%);color:var(--theme-dark,#34304f);box-shadow:0 3px 0 color-mix(in srgb,var(--theme-accent,#8066b7) 12%,white)}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting strong{overflow:hidden;color:var(--theme-dark,#34304f);font:900 14px/1.2 var(--display);text-overflow:ellipsis;white-space:nowrap}.app-shell.sparkle-dashboard[data-theme] .topbar-greeting-copy{color:var(--theme-dark,#34304f);font-size:11px;font-weight:700;opacity:.82;white-space:nowrap}.app-shell.sparkle-dashboard[data-theme] .topbar-greeting-spark{flex:none;color:var(--theme-accent,#8066b7);font-size:15px}.app-shell.sparkle-dashboard[data-theme] .topbar-greeting-mascot{width:32px;height:32px;flex:none;margin-left:auto;object-fit:contain;filter:drop-shadow(0 2px 2px #26274b22)}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip{flex:0 0 238px;min-width:188px;margin:0;padding:5px 9px;gap:7px;border-color:color-mix(in srgb,var(--theme-accent,#8066b7) 30%,white);border-radius:13px;background:linear-gradient(105deg,color-mix(in srgb,var(--theme-accent,#8066b7) 13%,white),#fff);box-shadow:0 2px 0 color-mix(in srgb,var(--theme-accent,#8066b7) 12%,white)}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-icon{width:29px;height:29px;border-radius:10px;font-size:16px}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-copy{gap:1px}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-copy strong{color:var(--theme-dark,#34304f);font:900 9px/1.1 var(--display)}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-copy>span{overflow:hidden;color:var(--theme-dark,#34304f);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-track{height:4px;background:color-mix(in srgb,var(--theme-accent,#8066b7) 14%,white)}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-track i{background:linear-gradient(90deg,var(--theme-accent,#8066b7),color-mix(in srgb,var(--theme-accent,#8066b7) 53%,#ff8c77))}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-percent{color:var(--theme-dark,#34304f);font-size:10px}.app-shell.sparkle-dashboard[data-theme] .page-wrap{position:relative}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row{isolation:isolate;border-radius:24px;background:radial-gradient(circle at 95% 15%,#fff 0 3px,transparent 4px),radial-gradient(circle at 88% 78%,#ffcd5755 0 6px,transparent 7px),linear-gradient(105deg,#ffffffd9,#fffdf7d9 70%,#f7f3ffdd);border:1px solid #fff;box-shadow:0 7px 0 #7b61cf15,0 14px 30px #30295f0a;padding:17px 21px}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row:before{content:"";position:absolute;z-index:-1;width:8px;height:8px;left:46%;top:19px;border-radius:50%;background:var(--kidza-coral);box-shadow:28px 28px 0 var(--kidza-sun),56px 5px 0 var(--kidza-mint);opacity:.8}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row h1{color:var(--kidza-ink)}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row h1 em{background:linear-gradient(95deg,var(--kidza-violet),var(--kidza-coral),#f0a51c);background-clip:text;-webkit-background-clip:text;color:transparent}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row .eyebrow{color:var(--kidza-violet)}.app-shell.sparkle-dashboard[data-theme] .sparkle-mascot{background:linear-gradient(145deg,#fff08b,#ffba77 57%,#ff8f9f);box-shadow:0 5px 0 #d76f5d44,0 12px 20px #e9a54d48}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick-section{border:1px solid #e8e0ff;background:linear-gradient(145deg,#fff,#fffdf8 68%,#f8f5ff);box-shadow:0 6px 0 #7b61cf12,0 16px 34px #30295f0b}.app-shell.sparkle-dashboard[data-theme] .sparkle-section-head h2{color:var(--kidza-ink)}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick{border-color:#e9e5f3;box-shadow:0 4px 0 #443b7110,0 7px 14px #34235b08}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:nth-child(4n+1){border-bottom:3px solid #ffc83d}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:nth-child(4n+2){border-bottom:3px solid #38c6a6}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:nth-child(4n+3){border-bottom:3px solid #ff7c7b}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:nth-child(4n+4){border-bottom:3px solid #65b8eb}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:hover{transform:translateY(-3px) rotate(-.35deg);box-shadow:0 7px 0 #7048df20,0 15px 26px #3c2b7518}.app-shell.sparkle-dashboard[data-theme] .sparkle-quick-icon{box-shadow:inset 0 -3px #28234a0d}.app-shell.sparkle-dashboard[data-theme] .lesson-start-card{border:2px solid #ffffff!important;background:linear-gradient(112deg,#5b48ce,#8a4fd5 57%,#dc589c)!important;box-shadow:0 6px 0 #43328850,0 15px 25px #724cc538!important}.app-shell.sparkle-dashboard[data-theme] .lesson-start-button,.app-shell.sparkle-dashboard[data-theme] .lesson-stop-button{background:linear-gradient(145deg,#ffe879,#ffbe50);box-shadow:0 4px 0 #d8873a}.app-shell.sparkle-dashboard[data-theme] .champion-section,.app-shell.sparkle-dashboard[data-theme] .fun-card,.app-shell.sparkle-dashboard[data-theme] .insight-card,.app-shell.sparkle-dashboard[data-theme] .panel,.app-shell.sparkle-dashboard[data-theme] .recent-panel,.app-shell.sparkle-dashboard[data-theme] .report-table,.app-shell.sparkle-dashboard[data-theme] .roster-card,.app-shell.sparkle-dashboard[data-theme] .settings-panel,.app-shell.sparkle-dashboard[data-theme] .stat-card,.app-shell.sparkle-dashboard[data-theme] .timer-panel{border-color:#e5e0f3!important;box-shadow:0 5px 0 #574b8f12,0 13px 28px #2c27500b!important}.app-shell.sparkle-dashboard[data-theme] .primary-btn{background:linear-gradient(105deg,#6e4de6,#a348d0 58%,#f06686);box-shadow:0 4px 0 #52379666,0 10px 18px #8057d533}.app-shell.sparkle-dashboard[data-theme] .primary-btn:hover{filter:saturate(1.15) brightness(1.04)}.app-shell.sparkle-dashboard[data-theme] .check-button.checked{background:linear-gradient(145deg,#40cfb0,#189b91)!important;border-color:#19998c!important;box-shadow:0 3px 0 #08766d!important}.app-shell.sparkle-dashboard[data-theme] :is(button,a,input,select):focus-visible{outline:3px solid #ffbd43;outline-offset:3px}.landing-page{background:radial-gradient(circle at 12% 21%,#fff6a8 0 5px,transparent 6px),radial-gradient(circle at 91% 19%,#fff 0 4px,transparent 5px),radial-gradient(circle at 82% 81%,#7ce8e5 0 7%,transparent 29%),radial-gradient(circle at 15% 14%,#fff29f 0 5%,transparent 25%),linear-gradient(132deg,#ffb34f,#ff7585 32%,#c365dc 67%,#656fe5)}.landing-hero-card{background:linear-gradient(155deg,#fffffffa,#fffdf7f7 75%,#f6f2fffa)}.landing-pill{box-shadow:0 3px 0 #efcf7840}.landing-hero-card h1{color:#29284d}.landing-signin{background:linear-gradient(105deg,#5f4bd6,#a347d0 55%,#ef5d83)}.landing-footer span:first-child{letter-spacing:1.5px}.student-bubbles-toggle{position:fixed;z-index:30;top:82px;right:20px;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border:2px solid #fff;border-radius:999px;background:linear-gradient(110deg,#fff,#fff9e9);box-shadow:0 4px 0 #593c8f35,0 9px 22px #38307628;color:#4c3b8f;font:800 12px var(--font-rounded),sans-serif;cursor:pointer;pointer-events:auto}.student-bubbles-toggle:hover{transform:translateY(-1px)}.student-bubbles-toggle:focus-visible{outline:3px solid #39c7ad;outline-offset:3px}.toast{z-index:1250;max-width:min(640px,calc(100vw - 24px));flex-wrap:wrap;justify-content:center}.toast-undo{display:inline-flex;align-items:center;gap:5px;min-height:30px;margin-left:4px;padding:0 11px;border:1px solid #ffffff80;border-radius:999px;background:#ffffff1c;color:#fff;font-weight:900}.toast-undo:hover{background:#ffffff33}.toast-undo:disabled{opacity:.7;cursor:wait}@media (max-width:700px){.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row{padding:13px 14px}.app-shell.sparkle-dashboard[data-theme] .sparkle-today .welcome-row:before{display:none}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting{gap:5px;margin-inline:7px;padding-inline:8px}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting strong{font-size:11px}.app-shell.sparkle-dashboard[data-theme] .topbar-greeting-copy,.app-shell.sparkle-dashboard[data-theme] .topbar-greeting-mascot{display:none}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip{flex-basis:170px;min-width:150px}.student-bubbles-toggle{top:68px;right:12px;min-height:36px;padding-inline:11px;font-size:11px}}@media (max-width:560px){.app-shell.sparkle-dashboard[data-theme] .topbar{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto;grid-template-areas:"menu crumb . actions" "greeting greeting goal goal";height:auto;min-height:54px;grid-gap:6px 8px;gap:6px 8px;padding:7px 10px 8px}.app-shell.sparkle-dashboard[data-theme] .mobile-menu-btn{grid-area:menu}.app-shell.sparkle-dashboard[data-theme] .crumb{grid-area:crumb}.app-shell.sparkle-dashboard[data-theme] .top-actions{grid-area:actions}.app-shell.sparkle-dashboard[data-theme] .crumb{flex:none;min-width:auto}.app-shell.sparkle-dashboard[data-theme] .crumb strong,.app-shell.sparkle-dashboard[data-theme] .crumb svg{display:none}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting{grid-area:greeting;min-width:0;max-width:none;margin:0}.app-shell.sparkle-dashboard[data-theme] .topbar-classroom-greeting strong{font-size:10px}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip{grid-area:goal;flex:none;min-width:0;padding:4px 6px;gap:5px}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-icon{display:none}.app-shell.sparkle-dashboard[data-theme] .topbar>.fun-goal-strip .fun-goal-percent{font-size:9px}}@media (prefers-reduced-motion:reduce){.app-shell.sparkle-dashboard[data-theme] .sparkle-quick:hover{transform:none}}.app-shell.sparkle-dashboard[data-theme] .teacher-card{position:relative;display:block;padding:12px 0 0}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-toggle{display:flex;align-items:center;gap:9px;width:100%;padding:0;border:0;background:transparent;color:inherit;text-align:left}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-toggle>span{display:flex;flex:1 1;min-width:0;flex-direction:column;gap:3px}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-toggle strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-toggle>svg{flex:none;color:#ffffffad}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-toggle:hover strong{color:#ffe49b}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-menu{position:absolute;z-index:25;right:0;bottom:calc(100% + 11px);left:0;display:grid;grid-gap:8px;gap:8px;padding:2px 0}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-menu button{display:flex;align-items:center;gap:11px;min-height:44px;padding:0 12px;border:1px solid #ffffff6b;border-radius:14px;background:linear-gradient(180deg,#94a9bd,#52718b 54%,#263f5c);box-shadow:inset 0 1px 2px #ffffff70,0 4px 0 #152d48,0 7px 13px #071a2a50;color:#fff;font-size:12px;font-weight:800;text-align:left;cursor:pointer;transition:transform .12s,filter .12s}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-menu button:hover{filter:brightness(1.13);transform:translateY(-1px)}.app-shell.sparkle-dashboard[data-theme] .teacher-profile-menu button:active{transform:translateY(3px);box-shadow:inset 0 2px 4px #14294080,0 1px 0 #152d48}.app-shell.sparkle-dashboard[data-theme] .sidebar.collapsed .teacher-profile-toggle{justify-content:center}.app-shell.sparkle-dashboard[data-theme] .sidebar.collapsed .teacher-profile-toggle>span{display:none}.app-shell.sparkle-dashboard[data-theme] .sidebar.collapsed .teacher-profile-menu{position:fixed;right:auto;bottom:18px;left:82px;width:195px}