:root{color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,sans-serif;--primary: #2456c9;--primary-hover: #1e49ab;--primary-active: #183c8e;--border: #e3e7ee;--shadow-card: 0 1px 2px rgba(20, 30, 55, .06), 0 4px 12px rgba(20, 30, 55, .05)}*{box-sizing:border-box}body{margin:0;background:#f5f6f8;color:#1c2430;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}input,select,button{font:inherit}button{cursor:pointer;background:var(--primary);color:#fff;border:none;border-radius:7px;padding:.5rem 1rem;font-weight:600;transition:background .15s ease,box-shadow .15s ease,transform .05s ease}button:not(.link-button):not(:disabled):hover{background:var(--primary-hover);box-shadow:0 2px 8px #2456c947}button:not(.link-button):not(:disabled):active{background:var(--primary-active);transform:translateY(1px);box-shadow:none}button:disabled{opacity:.6;cursor:default}.link-button:not(:disabled):hover{text-decoration:underline}.button-danger{background:#b3261e}.link-button.button-danger{background:none;color:#b3261e}.link-button{background:none;color:#2456c9;padding:0;border-radius:0}input,select{border:1px solid #c7ccd6;border-radius:6px;padding:.4rem .6rem;transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #2456c926}label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:#46505f}.checkbox-label{flex-direction:row;align-items:center;gap:.4rem;font-size:.9rem}.field-label{font-size:.85rem;color:#46505f;margin:0 0 .4rem}.login-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem 1.5rem;background:radial-gradient(circle at 15% 15%,#3868d6 0%,transparent 45%),radial-gradient(circle at 85% 85%,#16306e 0%,transparent 55%),linear-gradient(160deg,#2456c9,#1a3f9e,#10234f)}.login-card{position:relative;background:#fff;padding:3rem 2.5rem 2.5rem;margin-top:28px;border-radius:14px;box-shadow:0 24px 60px #09143359;display:flex;flex-direction:column;gap:1rem;min-width:320px;max-width:420px}.login-card:before{content:"";position:absolute;top:-48px;left:50%;transform:translate(-50%);width:96px;height:96px;border-radius:50%;background:#fff url(/math-trainer-badge.svg) center / cover no-repeat;border:3px solid white;box-shadow:0 6px 16px #2456c973}.login-card--branded:before{content:none}.login-badge{position:absolute;top:-48px;left:50%;transform:translate(-50%);width:96px;height:96px;border-radius:50%;object-fit:cover;background:#fff;border:3px solid white;box-shadow:0 6px 16px #2456c973}.login-card h1{margin:0;font-size:1.3rem;text-align:center}.login-card>p.subtle{text-align:center;margin-top:-.5rem}.student-remember-list{display:flex;flex-direction:column;gap:.5rem;margin:.25rem 0 .5rem}.student-remember-row{display:flex;align-items:center;gap:.5rem}.student-remember-item{flex:1;text-align:left;padding:.7rem .9rem;border:1px solid #d0d5dd;border-radius:.6rem;background:#fff;font-size:1rem;font-weight:600;color:#1f2733;cursor:pointer}.student-remember-item:hover{border-color:#2456c9;background:#f5f8ff}.student-remember-forget{flex:0 0 auto;font-size:.8rem}.subtle{color:#6b7484;font-size:.9rem}.error{color:#b3261e}.practice-topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;background:#fff;border:1px solid #e2e6ee;border-radius:10px;box-shadow:0 2px 8px #0000000f}.practice-topbar-info strong{font-size:1.05rem}.practice-timer{font-variant-numeric:tabular-nums;font-weight:700;font-size:1.15rem;color:#1f2733}.practice-topbar--urgent{border-color:#b3261e;background:#fdecea}.practice-topbar--urgent .practice-timer{color:#b3261e}.practice-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;margin-bottom:1rem;border-radius:8px;font-weight:600}.practice-banner--warn{background:#fff4e5;color:#8a5300;border:1px solid #f0c374}.practice-banner--timeup{background:#fdecea;color:#b3261e;border:1px solid #e79a94}button{transition:transform .05s ease,opacity .15s ease}button:active:not(:disabled){transform:scale(.97)}.ai-summary-toggle:active:not(:disabled),.student-report-group-toggle:active:not(:disabled),.legend-item-toggle:active:not(:disabled){transform:none}.big-tap{min-height:52px;font-size:1.15rem;padding:.75rem 1.5rem;border-radius:12px}.misconception-note{background:#fff8ec;border-left:3px solid #e0a63a;border-radius:4px;padding:.4rem .6rem;font-size:.9rem;color:#5a4626;line-height:1.4}.misconception-tag{display:inline-block;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#9a6a12;margin-right:.35rem}.skill-sub{color:#6b7280}.fluency-explainer{background:#eef3ff;border-radius:8px;padding:.6rem .8rem;color:#33415c}.fluency-op-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-top:.5rem}.fluency-op-btn{display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:1rem .5rem;border:1px solid #c7ccd6;border-radius:10px;background:#fff;cursor:pointer}.fluency-op-btn:hover{border-color:var(--brand, #2456c9)}.fluency-op-symbol{font-size:1.8rem;font-weight:700;color:#2456c9}.fluency-op-label{font-weight:600;font-size:.9rem}.fluency-op-stat{font-size:.75rem;color:#6b7280}.fluency-drill{text-align:center;padding:1.5rem 1rem;border-radius:12px;transition:background .15s}.fluency-drill.flash-ok{background:#eaf7ea}.fluency-drill.flash-no{background:#fdecec}.fluency-progress-track{position:relative;height:6px;background:#eef1f6;border-radius:3px;overflow:hidden;margin:.5rem auto 1.5rem;max-width:320px}.fluency-progress-fill{height:100%;background:#2456c9;transition:width .2s}.fluency-fact{font-size:2.6rem;font-weight:700;color:#1a2b4a;margin-bottom:1rem}.fluency-input{font-size:2rem;text-align:center;width:160px;padding:.5rem;border:2px solid #c7ccd6;border-radius:10px}.fluency-flash-ok{display:block;font-size:2rem;color:#2e7d32;margin-top:.5rem}.fluency-flash-no{display:block;font-size:1.4rem;color:#c62828;margin-top:.5rem}.skills-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.streak-pill{background:#fff4e5;color:#9a3412;font-weight:700;font-size:.9rem;padding:.3rem .7rem;border-radius:999px;white-space:nowrap}.skill-legend{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.82rem;color:#46505f;margin-top:.5rem}.skills-category{margin:0 0 .6rem;font-size:.95rem;color:#1a2b4a}.skill-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.skill-node{border:1px solid #e6e9f0;border-left-width:4px;border-radius:8px;padding:.6rem .7rem;display:flex;flex-direction:column;gap:.15rem}.skill-node.skill-strong{border-left-color:#2e7d32;background:#f2f9f2}.skill-node.skill-almost{border-left-color:#7cb342;background:#f6fbef}.skill-node.skill-high{border-left-color:#2563eb;background:#f1f5ff}.skill-node.skill-getting{border-left-color:#e0a63a;background:#fffaf0}.skill-node.skill-needs{border-left-color:#c62828;background:#fdf3f3}.skill-node.skill-new{border-left-color:#c7ccd6;background:#fafbfe}.skill-node-emoji{font-size:1rem}.skill-node-name{font-weight:600;font-size:.92rem;color:#1f2937}.skill-node-status{font-size:.78rem;color:#6b7280}.skill-node-flag{font-size:.75rem;color:#9a3412;margin-top:.15rem}.skill-node-mix{font-size:.75rem;color:#5a4626;margin-top:.15rem}.skill-topic-block{margin-bottom:.85rem}.skill-topic-block:last-child{margin-bottom:0}.skill-topic-head{display:flex;align-items:center;gap:.5rem;border:1px solid #e6e9f0;border-left-width:4px;border-radius:8px;padding:.5rem .75rem;flex-wrap:wrap}.skill-topic-head.skill-strong{border-left-color:#2e7d32;background:#f2f9f2}.skill-topic-head.skill-almost{border-left-color:#7cb342;background:#f6fbef}.skill-topic-head.skill-high{border-left-color:#2563eb;background:#f1f5ff}.skill-topic-head.skill-getting{border-left-color:#e0a63a;background:#fffaf0}.skill-topic-note{flex-basis:100%;font-size:.8rem;color:#4b5563}.skill-topic-head.skill-needs{border-left-color:#c62828;background:#fdf3f3}.skill-topic-head.skill-new{border-left-color:#c7ccd6;background:#fafbfe}.skill-topic-name{font-weight:700;font-size:1rem;color:#1f2937}.skill-topic-status{font-size:.8rem;color:#6b7280}.skill-subskill-list{list-style:none;padding:0 0 0 1.5rem;border-left:2px solid #eceef2;margin:.25rem 0 0 .9rem}.skill-subskill-row{display:flex;align-items:baseline;gap:.5rem;padding:.28rem 0}.skill-subskill-emoji{font-size:.85rem}.skill-subskill-name{font-size:.9rem;color:#33404f}.skill-subskill-meta{font-size:.78rem;margin-left:auto;white-space:nowrap}.subskill-rollup{margin:.5rem 0 1rem}.subskill-rollup-heading{margin:0 0 .25rem;font-size:.9rem;color:#46505f}.trophy-row{display:flex;flex-wrap:wrap;gap:.6rem}.trophy{display:flex;align-items:center;gap:.35rem;background:#f4f6fb;border:1px solid #e6e9f0;border-radius:999px;padding:.3rem .75rem;font-size:.85rem;color:#1f2937}.trophy-icon{font-size:1rem}.sub-skill-list{list-style:none;margin:0;padding:0}.sub-skill-list li{padding:.3rem 0;font-size:.9rem;border-bottom:1px solid #eef1f6}.review-card{border-left:4px solid #2456c9}.review-list{list-style:none;margin:.5rem 0 1rem;padding:0}.review-list li{padding:.3rem 0;font-size:.92rem;color:#1f2937;border-bottom:1px solid #eef1f6}.activity-feed{list-style:none;margin:0;padding:0}.activity-feed--scroll{max-height:28rem;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.activity-item{display:flex;align-items:flex-start;gap:.6rem;padding:.55rem 0;border-bottom:1px solid #eef1f6}.activity-item--clickable{cursor:pointer;border-radius:6px;margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem;transition:background .12s ease}.activity-item--clickable:hover,.activity-item--clickable:focus-visible{background:#f2f6ff;outline:none}.activity-icon{font-size:1rem;line-height:1.4;flex:0 0 auto}.activity-body{display:flex;flex-direction:column;gap:.1rem;min-width:0}.activity-summary{font-size:.92rem;color:#1f2937}.activity-meta{font-size:.78rem}.misconception-row{display:flex;align-items:baseline;gap:.5rem;padding:.35rem 0;border-bottom:1px solid #eef1f6}.misconception-count{font-size:.8rem;color:#6b7280;white-space:nowrap}.practice-actions{margin-top:1.5rem}.practice-actions .big-tap{width:100%}.practice-actions-exit{margin-top:2rem;padding-top:1.25rem;border-top:1px solid #e2e6ee;display:flex;flex-direction:column;align-items:center;gap:.35rem;text-align:center}.practice-actions-exit .subtle{font-size:.8rem}.skeleton{border-radius:8px;background:linear-gradient(90deg,#eef1f6 25%,#e2e6ee 37%,#eef1f6 63%);background-size:400% 100%;animation:skeleton-shimmer 1.2s ease-in-out infinite}.skeleton-line{height:.9rem;margin:.5rem 0}@keyframes skeleton-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.skeleton-stack{display:flex;flex-direction:column;gap:.5rem}.skeleton-card{margin-top:.75rem}.skeleton-table{display:flex;flex-direction:column;gap:.6rem;margin-top:.75rem}.skeleton-table-row{display:flex;gap:1.5rem;align-items:center}.skeleton-table-head{opacity:.75;margin-bottom:.15rem}.skeleton-table-row>.skeleton{flex:1}.practice-progress-track{height:8px;border-radius:999px;background:#e2e6ee;overflow:hidden;margin:.25rem 0 .75rem}.practice-progress-fill{height:100%;border-radius:999px;background:#2f7d3a;transition:width .3s ease}.improve-badge{display:inline-block;margin-top:.4rem;padding:.2rem .6rem;border-radius:999px;font-size:.85rem;font-weight:700}.improve-badge--comeback{background:#e7f6ea;color:#1f7a34;border:1px solid #a6dcb2}.improve-badge--faster{background:#fff4e5;color:#8a5300;border:1px solid #f0c374}.saved-indicator{font-size:.85rem;color:#1f7a34;font-weight:600}.goal-ring{display:flex;align-items:center;gap:1rem}.goal-ring-text{font-weight:700;font-size:1.05rem}.celebrate-score{animation:celebrate-pop .5s ease}@keyframes celebrate-pop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.15)}to{transform:scale(1);opacity:1}}.number-line{display:block;margin:.4rem 0;-webkit-user-select:none;user-select:none}.nl-axis{stroke:#64748b;stroke-width:2}.nl-tick{stroke:#94a3b8;stroke-width:2}.nl-label{fill:#475569;font-size:13px}.nl-marker{fill:#2456c9}.nl-target{fill:none;stroke:#1f7a34;stroke-width:3}.fraction-bar{display:flex;max-width:420px;margin:.4rem 0;border:2px solid #64748b;border-radius:6px;overflow:hidden}.fb-cell{flex:1;height:44px;border:none;border-right:1px solid #cbd5e1;background:#fff;cursor:pointer;padding:0}.fraction-bar .fb-cell:last-child{border-right:none}.fb-cell.fb-shaded{background:#2456c9}.fb-cell.fb-correct{background:#1f7a34}.fb-cell:disabled{cursor:default}.am-steppers{display:flex;gap:1.2rem;margin:.3rem 0;flex-wrap:wrap}.am-steppers span{display:inline-flex;align-items:center;gap:.4rem}.am-steppers button{width:30px;height:30px;font-size:1.1rem;line-height:1;padding:0}.am-grid{display:grid;gap:2px;margin:.4rem 0}.am-cell{width:18px;height:18px;background:#2456c9;border-radius:2px}.am-cell.am-correct{background:#1f7a34}.scaffold{margin:.5rem 0;padding:.6rem .8rem;background:#eef3fb;border:1px solid #cfe0f5;border-radius:8px}.scaffold-done{margin:.5rem 0;padding:.6rem .8rem;background:#e7f6ea;color:#1f7a34;border:1px solid #a6dcb2;border-radius:8px;font-weight:700}.celebrate-banner{background:#e7f6ea;color:#1f7a34;border:1px solid #a6dcb2;border-radius:10px;padding:.75rem 1rem;font-weight:700;margin:.5rem 0}.celebrate-mastered{background:#fff6da;color:#8a5a00;border-color:#f0d488;font-size:1.05rem;animation:mastered-pop .5s ease-out}@keyframes mastered-pop{0%{transform:scale(.94);opacity:0}60%{transform:scale(1.03)}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.celebrate-mastered{animation:none}}.app-shell{max-width:1600px;margin:0 auto;padding:1.5rem}.app-main{overflow-x:auto}.impersonation-banner{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:center;gap:1rem;background:#fff4d6;color:#6b4e00;border-bottom:2px solid #e0ac00;padding:.5rem 1rem;font-size:.9rem}.impersonation-banner button{background:#e0ac00;color:#fff;border:none;border-radius:6px;padding:.3rem .9rem;cursor:pointer;font-weight:600}.impersonation-banner button:hover{background:#c99600}.app-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.app-header h1{font-size:1.75rem;margin:0}.school-badge{width:77px;height:77px;border-radius:50%;object-fit:contain;background:#fff;border:2px solid #2456c9;box-shadow:0 1px 4px #2456c94d}.dropdown{position:relative}.dropdown>button,.dropdown-menu button{user-select:none;-webkit-user-select:none}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:.35rem;background:#fff;border-radius:8px;box-shadow:0 2px 10px #00000026;display:flex;flex-direction:column;min-width:160px;z-index:10;overflow:hidden}.dropdown-menu button{background:none;border:none;text-align:left;padding:.6rem .9rem;cursor:pointer;color:#1f2937;font-size:.9rem}.dropdown-menu button:hover{background:#f2f4f8}.profile-info-list{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1rem;margin:0}.profile-info-list dt{font-weight:600;color:#46505f}.profile-info-list dd{margin:0}.plain-list{margin:0;padding:0;list-style:none}.capitalize{text-transform:capitalize}.row-between{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.row-gap{display:flex;align-items:center;gap:.75rem}.header-actions{display:flex;align-items:center;gap:.9rem}.header-actions>*+*{padding-left:.9rem;border-left:1px solid #d8dce3}.student-search{position:relative}.student-search-input{width:12rem;padding:.35rem .7rem;border:1px solid #d0d5dd;border-radius:999px;font-size:.85rem;background:#fff}.student-search-input:focus{outline:none;border-color:#2456c9;box-shadow:0 0 0 2px #2456c926}.student-search-results{position:absolute;top:calc(100% + .35rem);right:0;z-index:50;min-width:16rem;max-width:22rem;background:#fff;border:1px solid #e2e6ee;border-radius:.6rem;box-shadow:0 8px 24px #141e3724;padding:.3rem;max-height:22rem;overflow-y:auto}.student-search-empty{margin:0;padding:.4rem .6rem}.student-search-result{display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;text-align:left;background:transparent;border:none;border-radius:.4rem;padding:.4rem .6rem;cursor:pointer}.student-search-result.is-highlighted{background:#eef1f6}.student-search-name{font-weight:600;color:#1f2733}.tabs{display:flex;gap:.5rem;border-bottom:1px solid #d8dce3;margin-bottom:1.5rem}.tabs button{background:none;color:#46505f;border-radius:0;padding:.6rem .9rem;border-bottom:2px solid transparent}.tabs button.tab-active{color:#2456c9;border-bottom-color:#2456c9;font-weight:600}.tabs button:not(.link-button):not(:disabled):hover,.subtabs button:not(.link-button):not(:disabled):hover{background:#eef2fb;box-shadow:none}.tabs button:not(.link-button):not(:disabled):active,.subtabs button:not(.link-button):not(:disabled):active{background:#e3eaf9;box-shadow:none}.tabs button:not(:first-child),.header-nav>button:not(:first-child),.header-actions>button:not(:first-child){border-left:1px solid #d3d8e0;padding-left:1.15rem;margin-left:.25rem}.subtabs{display:flex;gap:.4rem;margin:-1rem 0 1.5rem}.subtabs button{background:#eef1f6;color:#46505f;border-radius:999px;padding:.3rem .85rem;font-size:.85rem}.subtabs button.subtab-active{background:#2456c9;color:#fff;font-weight:600}.detail-tabs{margin:.75rem 0 1.25rem;border-bottom:1px solid #e2e6ee;padding-bottom:.75rem}table{width:100%;table-layout:fixed;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;margin-bottom:1rem}th,td{text-align:left;padding:.55rem .75rem;border-bottom:1px solid #eceef2;font-size:.9rem;min-width:50px;overflow-wrap:break-word}th{position:relative}.col-resize-handle{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none}.col-resize-handle:hover,.col-resize-handle:active{background:#2456c959}th{background:#eef1f6;font-weight:600;color:#46505f}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:normal;overflow-wrap:break-word;vertical-align:bottom}.sortable-th:hover{background:#e2e7f0}.sort-indicator{color:#2456c9;font-size:.7rem}.draggable-th{cursor:grab;-webkit-user-select:none;user-select:none;white-space:normal;overflow-wrap:break-word}.draggable-th:active{cursor:grabbing}.draggable-th.sortable-th:hover{background:#e2e7f0}.prompt-cell{max-width:360px}.wrong-answers-cell{max-width:240px;color:#6b7484;font-size:.85rem}.correct-answer-cell{max-width:160px;color:#1e6b3c;font-weight:600;font-size:.85rem}.heatmap-scroll{overflow-x:auto;margin-bottom:1.25rem}.heatmap{width:auto;table-layout:auto;border-collapse:separate;border-spacing:3px;background:transparent;box-shadow:none;border-radius:0}.heatmap th,.heatmap td{min-width:unset;border-bottom:none}.heatmap-name-col{position:sticky;left:0;background:#fff;white-space:nowrap;text-align:left;padding:.4rem 1rem .4rem .2rem;font-weight:600;z-index:1}.heatmap-team-average{background:#d7e0f7;color:#2456c9}.heatmap-row-average .heatmap-cell{box-shadow:0 0 0 2px #2456c9 inset}.heatmap-topic-th{font-size:.72rem;font-weight:600;color:#46505f;text-align:center;padding:.4rem .35rem;width:92px;max-width:92px;min-width:92px;cursor:pointer;line-height:1.25;vertical-align:bottom;background:#eef1f6;border-radius:6px 6px 0 0;-webkit-user-select:none;user-select:none;white-space:normal;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:none;hyphens:none}.heatmap-topic-th:hover{background:#e2e7f0}.heatmap-topic-th.active{background:#d7e0f7;color:#2456c9}.heatmap-sort-indicator{font-size:.7rem}.heatmap-cell{text-align:center;width:92px;min-width:92px;padding:.35rem .2rem;border-radius:6px}.heatmap-cell.has-data{cursor:pointer}.heatmap-cell.selected{outline:2px solid #2456c9;outline-offset:-2px}.heatmap-pct{display:block;font-weight:600;font-size:.85rem;color:#1c2430}.heatmap-attempts{display:block;font-size:.63rem;color:#6b7484}.heatmap-empty{color:#c7ccd6}.heatmap-drilldown{margin-top:1rem}.row-flagged{background:#fff4e5}.row-severe{background:#ffdcdc}.row-suspect{background:#f0e6ff}.row-clickable{cursor:pointer;user-select:none;-webkit-user-select:none}.row-clickable:hover,.sortable-th:hover{background:#2456c90f}.row-clickable:focus-visible,.sortable-th:focus-visible{outline:2px solid #2456c9;outline-offset:-2px}.legend{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem 1.25rem;font-size:.85rem}.legend-item{display:inline-flex;align-items:center;gap:.4rem}.legend-item-toggle{background:none;border:none;padding:0;margin:0;font:inherit;color:inherit;cursor:pointer;user-select:none;-webkit-user-select:none}.legend-swatch{display:inline-block;width:14px;height:14px;border:1px solid #d5dae2;border-radius:3px}.topic-drilldown{padding:.75rem .5rem 1rem}.topic-outliers{display:flex;flex-direction:column;gap:.3rem;font-size:.85rem;margin:0 0 .75rem}.outlier-group.outlier-low{color:#b3261e}.outlier-group.outlier-high{color:#1e6b3c}.card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.35rem;margin-bottom:1.25rem;box-shadow:var(--shadow-card)}.card .card{box-shadow:none;background:#fbfcfe}.bulk-progress{margin-top:.5rem;max-width:320px}.bulk-progress-bar{width:100%;height:8px;border-radius:4px;overflow:hidden;border:none}.bulk-progress-bar::-webkit-progress-bar{background:#e5e9f2;border-radius:4px}.bulk-progress-bar::-webkit-progress-value{background:#2456c9;border-radius:4px}.bulk-progress-bar::-moz-progress-bar{background:#2456c9;border-radius:4px}.ai-summary-card{border-left:4px solid #2456c9}.welcome-mission{line-height:1.6;margin-bottom:1.5rem}.welcome-standing{line-height:1.6;margin-top:-1rem;margin-bottom:1.5rem}.welcome-tasks-heading{margin-bottom:.75rem}.welcome-tasks{padding-left:1.25rem}.welcome-tasks li{margin-bottom:.6rem;line-height:1.55}.help-page{max-width:860px}.help-toc ul{columns:2;margin:.4rem 0 0;padding-left:1.25rem}.help-toc li{margin-bottom:.3rem;break-inside:avoid}.help-section{scroll-margin-top:1rem}.help-section h3{margin-top:0}.help-section h4{margin:1.1rem 0 .3rem}.help-section h4:first-of-type{margin-top:.5rem}.help-section p,.help-section li{line-height:1.55}.help-section ul,.help-section ol{padding-left:1.4rem}.help-section li{margin-bottom:.4rem}.flagged-questions-banner{border-left:4px solid #b3261e}.flagged-questions-banner h3{margin-top:0;color:#b3261e}.flagged-questions-banner-empty{border-left:4px solid #b7bcc7}.flagged-questions-banner-empty h3{margin-top:0;color:inherit}.flagged-page{max-width:860px}.flagged-topic-group{margin-bottom:1rem}.flagged-topic-toggle{font-weight:600;font-size:1rem;user-select:none;-webkit-user-select:none}.flagged-resolved-note{color:#1e6b3c}.flagged-question-row{border-top:1px solid #eef1f6;padding:.75rem 0}.flagged-question-row:first-of-type{border-top:none}.flagged-question-topic{font-weight:600}.flagged-question-prompt{margin:.4rem 0}.flagged-question-choices{margin:.4rem 0;padding-left:1.25rem;font-size:.9rem}.flagged-choice-correct{color:#1e6b3c;font-weight:600}.flagged-answer-explanation{margin:.15rem 0 .4rem}.topic-question-detail{display:flex;flex-direction:column;gap:.75rem;padding:.5rem 0}.topic-question-row{border-left:3px solid #1e6b3c;padding:.25rem 0 .25rem .75rem}.topic-question-row.topic-question-wrong{border-left-color:#b3392b}.topic-question-row.topic-question-skipped{border-left-color:#6b6b6b}.topic-question-prompt{margin:0 0 .3rem;font-weight:600}.ai-summary-card h3{margin-top:0}.ai-summary-card p{margin:.5rem 0;line-height:1.5}.ai-summary-card p:first-of-type{margin-top:0}.ai-summary-toggle{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;background:none;border:none;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit;user-select:none;-webkit-user-select:none}.ai-summary-toggle h3{margin:0}.ai-summary-preview{display:block;width:100%;margin-top:.5rem;padding:0;background:none;border:none;text-align:left;font:inherit;color:#46505f;cursor:pointer;line-height:1.4}.ai-summary-preview:hover{color:#1f2733}.coach-tips{margin-bottom:.75rem}.coach-tips-card{border-left:4px solid #2456c9;margin-top:.5rem;margin-bottom:0}.coach-tips-card>.row-between h4{margin:0}.structured-text{margin-top:.75rem}.structured-text h4{margin:1.1rem 0 .4rem;font-size:1rem}.structured-text h4:first-child{margin-top:0}.structured-text h5{margin:.85rem 0 .3rem;font-size:.92rem;color:#2456c9}.structured-text p{margin:.4rem 0;line-height:1.5}.structured-text-list{margin:.3rem 0 .6rem;padding-left:1.4rem}.structured-text-list li{margin-bottom:.3rem;line-height:1.5}.structured-text-sublist{margin:.3rem 0 .4rem;padding-left:1.25rem;list-style-type:circle}.structured-text-sublist li{margin-bottom:.2rem;font-size:.92rem;color:#46505f}.reference-examples{margin-bottom:.75rem}.reference-examples-list{margin:.5rem 0 0;padding-left:1.25rem;font-size:.85rem}.reference-examples-list li{margin-bottom:.35rem}.reference-answer{color:#1e6b3c;font-weight:600}.form-inline{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:.75rem}.checkbox-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.4rem;margin:.5rem 0 1rem}.mono{font-family:ui-monospace,monospace}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;background:#eceef2;color:#46505f}.badge-active{background:#e3f5e6;color:#1c7a34}.badge-pending_activation{background:#fff4e0;color:#8a5a00}.badge-test-data{margin-left:.4rem;background:#efe4fb;color:#6b3fa0;font-weight:600;letter-spacing:.02em}.badge-inactive,.badge-locked{background:#f2f2f2;color:#767e8c}.badge-rejected{background:#fbe6e6;color:#b3261e}.badge-sent,.badge-approved{background:#e3f5e6;color:#1c7a34}.badge-pending_review{background:#fff4e0;color:#8a5a00}.badge-progress_report{background:#e6effb;color:#1a56a8}.badge-broadcast{background:#f0e6fb;color:#6b2ba8}.badge-role-coach{background:#eceef2;color:#46505f}.badge-role-school_admin{background:#fff4e0;color:#8a5a00}.badge-role-super_admin{background:#e3f5e6;color:#1c7a34}.recipient-list{list-style:none;padding:0;margin:0 0 .75rem}.recipient-list li{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.9rem;border-bottom:1px solid #eceef2}textarea{border:1px solid #c7ccd6;border-radius:6px;padding:.5rem;font-family:inherit}.report-status-section{margin-bottom:1.75rem}.student-report-group{margin-bottom:.5rem}.student-report-group-toggle{background:none;border:none;padding:.5rem 0;font-size:1rem;font-weight:600;color:#1f2937;cursor:pointer;display:flex;align-items:center;gap:.4rem;user-select:none;-webkit-user-select:none}.student-report-group-body{padding-left:1.1rem;display:flex;flex-direction:column;gap:.6rem}.report-status-section h3{margin-bottom:.15rem}.report-status-section>p.subtle{margin-top:0;margin-bottom:.75rem}.report-textarea{width:100%;min-height:420px;font-size:.95rem;line-height:1.5;resize:vertical}.report-history-row{padding:.75rem 0;border-bottom:1px solid #eceef2}.report-history-row:last-child{border-bottom:none}.score-trend-chart{width:100%;height:auto;max-height:550px}.team-rating-chart{max-height:700px}.chart-gridline{stroke:#eceef2;stroke-width:1}.chart-axis-label{font-size:10px;fill:#767e8c}.chart-line{stroke:#2456c9;stroke-width:2}.chart-point{fill:#2456c9}.student-bar-chart{width:100%;height:auto;max-height:1000px}.chart-bar-track{fill:#eceef2}.chart-bar-fill{fill:#2456c9}.attempt-row{padding:.5rem 0;border-bottom:1px solid #eceef2}.attempt-row:last-child{border-bottom:none}.answer-correct{color:#1c7a34;font-weight:600}.answer-wrong{color:#b3261e;font-weight:600}.answer-skipped{color:#6b6b6b;font-weight:600}.difficulty-cell{font-weight:600;white-space:nowrap}.difficulty-easy{color:#1c7a34}.difficulty-medium{color:#8a6d00}.difficulty-hard{color:#b3261e}.skill-high{color:#1c7a34}.skill-medium{color:#8a6d00}.skill-low{color:#b3261e}@media (max-width: 720px){.app-shell{padding:.75rem}.app-header{flex-wrap:wrap;gap:.6rem}.app-header h1{font-size:1.3rem}.school-badge{width:46px;height:46px}.header-actions{width:100%;flex-wrap:wrap;gap:.5rem}.header-actions>*+*{padding-left:.5rem}.tabs,.subtabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.tabs button,.subtabs button{flex:0 0 auto}table{display:block;overflow:visible;overflow-x:auto;table-layout:auto;-webkit-overflow-scrolling:touch}th,td{overflow-wrap:normal;word-break:normal}th{white-space:nowrap}td{min-width:4.5rem}td .link-button{white-space:nowrap}.col-resize-handle{display:none}.row-between,.row-gap{flex-wrap:wrap}h2{font-size:1.25rem}.card{padding:1rem}}.practice-choices{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.practice-choice{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border:1.5px solid #d5dae2;border-radius:12px;cursor:pointer;font-size:1.1rem;line-height:1.3;user-select:none;-webkit-user-select:none}.practice-choice:hover{background:#f2f4f8}.practice-choice:has(input:checked){border-color:#2456c9;background:#eef3ff}.practice-choice input[type=radio]{width:1.6rem;height:1.6rem;flex:none;accent-color:#2456c9;cursor:pointer}.practice-text-answer{font-size:1.1rem;padding:.7rem .8rem;width:100%;max-width:22rem;margin-top:.5rem}.notification-banner{border-left:4px solid #2f7d3a;background:#e7f6ea}.notification-banner p{margin:0 0 .4rem;font-weight:600;color:#1f7a34}.table-total-row td{font-weight:700;border-top:2px solid #c7ccd6;background:#f5f6f8}.print-only{display:none}@media print{html,body{background:#fff!important}body *{visibility:hidden}.print-only,.print-only *{visibility:visible}.print-only{display:block;position:absolute;left:0;top:0;width:100%;padding:1rem;background:#fff;color:#000}}.sortable-card{position:relative}.sortable-card--dragover{outline:2px dashed #2456c9;outline-offset:4px;border-radius:12px}.sortable-card-handle{cursor:grab;-webkit-user-select:none;user-select:none;font-size:.8rem;color:#8a93a3;letter-spacing:.05em;padding:.15rem 0}.sortable-card-handle:active{cursor:grabbing}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:8px;grid-auto-flow:row dense;column-gap:1rem;align-items:start}.dash-grid>.sortable-card{grid-column:span var(--card-span, 6);min-width:0;box-sizing:border-box;container-type:inline-size}@container (max-width: 640px){table{display:block;overflow:visible;overflow-x:auto;table-layout:auto;-webkit-overflow-scrolling:touch}th,td{overflow-wrap:normal;word-break:normal;white-space:nowrap}}@media (max-width: 720px){.dash-grid>.sortable-card{grid-column:1 / -1}}.dash-customize{margin:0 0 .75rem}.dash-customize-panel{margin-top:.5rem}.dash-customize-list{list-style:none;padding:0;margin:0 0 .75rem;display:flex;flex-direction:column;gap:.4rem}.dash-customize-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem}.dash-customize-show{display:flex;align-items:center;gap:.5rem}.sortable-card-controls{display:flex;align-items:center;gap:.25rem}.sortable-card-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sortable-card-width-toggle{background:none;border:none;padding:.15rem .25rem;font-size:.75rem;color:#8a93a3;cursor:pointer}.sortable-card-width-toggle:hover{color:#2456c9}.attn-list{display:flex;flex-direction:column;gap:.4rem}.attn-row{display:block;width:100%;text-align:left;cursor:pointer;background:#fff;color:#1c2430;font-weight:400;border:1px solid #e2e6ee;border-radius:8px;padding:.5rem .6rem;font-family:inherit;font-size:inherit}.attn-row:not(.link-button):not(:disabled):hover{background:#f2f6ff;border-color:#2456c9;box-shadow:none}.attn-row:not(.link-button):not(:disabled):active{background:#e8effc;transform:none;box-shadow:none}.attn-reasons{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.25rem}.attn-tag{font-size:.72rem;padding:.1rem .45rem;border-radius:999px;background:#eef1f6;color:#33415c}.attn-tag--overdue,.attn-tag--down{background:#fde2e1;color:#a12b22}.attn-tag--inactive{background:#fdeed0;color:#8a5a00}.attn-tag--up{background:#dff3e4;color:#1f7a3d}.attn-tag--report{background:#eef2fb;color:#2456c9}.clickable-row{cursor:pointer}.clickable-row:hover{background:#f2f6ff}.length-choices{display:flex;flex-wrap:wrap;gap:.5rem}.length-choice{padding:.45rem .9rem;border-radius:999px;border:1px solid #c7ccd6;background:#fff;color:#1c2430;font-size:.95rem;cursor:pointer}.length-choice:active:not(:disabled){transform:scale(.97)}.length-choice--active{background:#2456c9;color:#fff;border-color:#2456c9}.chart-tooltip-bg{fill:#1c2430;opacity:.92}.chart-tooltip-title{fill:#cbd2dd;font-size:11px}.chart-tooltip-value{fill:#fff;font-size:11px;font-weight:700}.chart-point{cursor:pointer}.needs-attention--active{border-left:4px solid #b3261e}.needs-attention-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.needs-attention-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .75rem;border-radius:8px;background:#f5f6f8}.needs-attention-item--urgent{background:#fdecea}.needs-attention-text{font-weight:600}.dash-drag-tip{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.at-a-glance{display:flex;flex-wrap:wrap;gap:.75rem;margin:.75rem 0 .25rem}.glance-tile{flex:1 1 140px;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .85rem;background:#fff;border:1px solid #e2e6ee;border-radius:10px}.glance-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:#6b7484}.glance-value{font-size:1.1rem;font-weight:700;color:#1c2430}.glance-sub{font-size:.8rem;color:#6b7484}.action-badge{display:inline-block;margin-left:.35rem;background:#c9432a;color:#fff;border-radius:999px;padding:0 .4rem;font-size:.72rem;font-weight:700;min-width:1.1rem;text-align:center;line-height:1.4}.action-count{font-weight:700}.welcome-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#1016268c;display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto}.welcome-dialog{width:100%;max-width:520px;max-height:calc(100vh - 2rem);overflow-y:auto;margin:0}.welcome-art{display:block;width:200px;height:133px;margin:.5rem auto 1rem;color:#2456c9}.welcome-step-how{font-size:1rem;line-height:1.5;color:#46505f}.welcome-dots{display:flex;gap:6px;justify-content:center;margin:1rem 0 .35rem}.welcome-dot{width:7px;height:7px;border-radius:50%;background:#d3d8e0}.welcome-dot.is-active{background:#2456c9}.welcome-progress{text-align:center;margin:0 0 .5rem;font-size:.85rem}.welcome-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:.75rem}@media (max-width: 700px){.welcome-art{width:160px;height:106px}}.countdown-card{border-left:4px solid #b45309;background:linear-gradient(180deg,#fff8ed,#fff 60%)}.countdown-headline{font-size:1.35rem;margin:0 0 .5rem}.countdown-confirm{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.team-goal-card{border-left:4px solid #2f7d3a}.team-goal-track{height:16px;background:#e6ebe7;border-radius:999px;overflow:hidden;margin:.5rem 0}.team-goal-fill{height:100%;background:linear-gradient(90deg,#58b368,#2f7d3a);border-radius:999px;transition:width .6s ease-out}.team-goal-fill.team-goal-reached{background:linear-gradient(90deg,#f6c343,#e0a100)}.streak-line{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:.75rem 0 0}.streak-pill.streak-weeks{background:#eaf1ff;color:#1e40af}.streak-saver{flex-basis:100%;font-size:.85rem}.daily-problem-card{border-left:4px solid #7c3aed}.daily-problem-topic{text-transform:uppercase;letter-spacing:.04em;font-size:.75rem;margin:0}.daily-problem-result{border-radius:10px;padding:.75rem 1rem;margin-top:.5rem}.daily-problem-result.is-right{background:#e7f6ea}.daily-problem-result.is-wrong{background:#fdf3f3}.daily-problem-verdict{font-weight:700;margin-top:0}.daily-problem-team{font-weight:600}.fluency-ghost{position:absolute;top:0;width:4px;height:100%;background:#7c3aed;border-radius:2px;transition:left .2s linear}.fluency-ghost-label{font-size:.8rem}.fluency-best{font-size:.8rem;font-weight:600;color:#7c3aed}.cheer{position:relative;display:inline-flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.25rem}.cheer-button{font-size:.85rem}.cheer-menu{display:flex;flex-wrap:wrap;gap:.35rem}.cheer-menu button{font-size:.8rem;padding:.25rem .6rem;border-radius:999px;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;cursor:pointer}.cheer-sent{display:inline-block;font-size:.85rem;margin-top:.25rem}.cheer-error{font-size:.8rem}.getting-started-card{border-left:4px solid #2456c9}.getting-started-head{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem}.getting-started-head h3{margin:0}.getting-started-track{height:8px;background:#e6e9f0;border-radius:999px;overflow:hidden;margin:.75rem 0}.getting-started-fill{height:100%;background:#2456c9;border-radius:999px}.getting-started-steps{list-style:none;padding:0;margin:0}.getting-started-steps li{display:grid;grid-template-columns:1.75rem 1fr auto;gap:.5rem;align-items:start;padding:.5rem 0;border-top:1px solid #eef0f5}.getting-started-steps li.is-done strong{color:#6b7280;text-decoration:line-through}.getting-started-foot{margin-bottom:0}.getting-started-collapsed{margin:0 0 1rem}.getting-started-teams{list-style:none;padding:0;margin:.5rem 0 0}.getting-started-teams li{display:flex;justify-content:space-between;gap:.75rem;padding:.4rem 0;border-top:1px solid #eef0f5}
