:root{--ink:#161a33;--ink-soft:#2c2c2c;--muted:#6b7280;--paper:#fff;--paper-dim:#f5f6fb;--paper-panel:#fff;--line:#e6e8f2;--brand:#3654f0;--brand-dark:#2740c2;--brand-soft:#eef1ff;--blueprint:#141a36;--blueprint-line:#141a380d;--blueprint-line-strong:#141a3824;--correct:#1a8f5c;--correct-bg:#e7f7ee;--mistake:#e03939;--mistake-bg:#fdeaea;--review:#c9861f;--review-bg:#fdf1dc;--font-display:"Plus Jakarta Sans", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace;--radius:12px;--radius-lg:20px;--shadow-panel:0 1px 2px #161a330a, 0 12px 28px #161a3312;--shadow-lg:0 24px 60px #161a3324, 0 4px 14px #161a330f;--shadow-btn:0 1px 2px #141a3614, 0 8px 20px #3654f038}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;margin:0;font-weight:700}code,.mono,.stat{font-family:var(--font-mono)}a{color:inherit}button{font-family:var(--font-body)}::selection{background:var(--brand-soft)}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app-shell{grid-template-columns:232px 1fr;min-height:100vh;display:grid}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{border-bottom:1px solid var(--line);border-right:0;gap:12px;padding:14px 16px 10px}.sidebar-brand{flex-direction:row;justify-content:space-between;align-items:baseline}.sidebar-tagline{font-size:11px}.sidebar-nav{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;gap:6px;padding-bottom:4px;overflow-x:auto}.sidebar-nav::-webkit-scrollbar{display:none}.sidebar-link{background:var(--paper-dim);white-space:nowrap;flex:none;padding:7px 10px;font-size:13px}.sidebar-stats{display:none}.app-topbar{justify-content:space-between;padding:12px 16px}.usage-pill{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100vw - 96px);overflow:hidden}}.main-col{width:100%;max-width:980px;padding:32px 40px 64px}@media (width<=640px){.main-col{padding:20px 16px 48px}.page-title{font-size:27px;line-height:1.15}.page-lede{font-size:15px}.panel-pad{padding:16px}}.sidebar{border-right:1px solid var(--line);background:var(--paper);flex-direction:column;gap:28px;padding:24px 20px;display:flex}.sidebar-brand{flex-direction:column;gap:4px;display:flex}.sidebar-logo{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:18px;font-weight:700;text-decoration:none}.sidebar-tagline{color:var(--muted);margin:0;font-size:12px}.sidebar-nav{flex-direction:column;gap:2px;display:flex}.sidebar-link{border-radius:var(--radius);color:var(--ink-soft);padding:9px 12px;font-size:14px;font-weight:500;text-decoration:none;display:block}.sidebar-link:hover{background:var(--paper-dim);color:var(--ink)}.sidebar-link.active{background:var(--brand-soft);color:var(--brand-dark);font-weight:600}.sidebar-stats{margin-top:auto}.sidebar-stat-row{color:var(--ink-soft);justify-content:space-between;align-items:center;padding:6px 0;font-size:13px;display:flex}.sidebar-stat-row .stat{color:var(--ink);font-weight:700}.sidebar-stat-row .stat.review{color:var(--review)}.dashboard-kicker{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.dashboard-kicker span{background:var(--paper-dim);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:650}.dashboard-kicker span:first-child{background:var(--brand-soft);color:var(--brand-dark);border-color:#d5dcff}.dashboard-focus{background:#f7f8fc;justify-content:space-between;align-items:center;gap:24px;margin:22px 0;padding:24px 26px;display:flex}.dashboard-focus h3{margin:5px 0;font-size:20px}.dashboard-focus p{color:var(--ink-soft);max-width:670px;margin:0}.dashboard-focus .btn{white-space:nowrap;flex:none}.onboarding-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;max-width:980px;margin-top:22px;display:grid}.onboarding-choice-grid.compact{max-width:none}.onboarding-choice{position:relative}.onboarding-choice h3{margin:8px 0}.onboarding-choice p{color:var(--ink-soft);min-height:44px;line-height:1.5}.onboarding-number{color:var(--brand);font-family:var(--font-mono);font-size:12px;font-weight:800}.official-score-form{grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;margin-top:16px;display:grid}.official-score-form label{color:var(--ink-soft);gap:5px;font-size:12px;display:grid}.official-score-form input{min-width:0}.official-score-form .btn{white-space:nowrap}.tutor-history-list{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.tutor-history-card{flex-direction:column;gap:12px;display:flex}.tutor-history-card p{white-space:pre-wrap;flex:1;margin:0;line-height:1.5}.tutor-history-page .page-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px;display:flex}.dashboard-shortcuts{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.dashboard-shortcuts a{border-bottom:1px solid var(--line);color:var(--ink-soft);background:0 0;padding:6px 0;font-size:13px;text-decoration:none}.dashboard-shortcuts a:hover{border-color:var(--brand);color:var(--brand)}.dashboard-shortcuts a+a{margin-left:12px}.tutor-history-image{background:var(--paper-dim);border:1px solid var(--line);object-fit:cover;object-position:top;border-radius:9px;width:100%;max-height:230px}@media (width<=700px){.dashboard-focus,.tutor-history-page .page-header{flex-direction:column;align-items:flex-start}.onboarding-choice-grid,.official-score-form{grid-template-columns:1fr}.official-score-form .btn{justify-self:start}}.app-main{flex-direction:column;min-width:0;display:flex}.app-topbar{border-bottom:1px solid var(--line);justify-content:flex-end;align-items:center;gap:14px;padding:16px 40px;display:flex}@media (width<=640px){.app-topbar{padding:14px 16px}}.usage-pill{font-family:var(--font-mono);color:var(--muted);background:var(--paper-dim);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;margin-right:auto;padding:6px 12px;font-size:12px;display:flex}.usage-divider{color:var(--line)}.usage-upgrade{color:var(--brand);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-mono);background:0 0;border:none;padding:0}.usage-upgrade:hover{text-decoration:underline}.text-action{color:var(--brand);cursor:pointer;font:inherit;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:600;text-decoration:none}.text-action:hover{text-decoration:underline}.upload-details-reveal{margin-top:12px}.simple-upload-form{max-width:920px}.answer-choice-list{gap:10px;margin:20px 0;display:grid}.answer-choice{background:var(--paper);border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:10px;align-items:center;gap:12px;min-height:52px;padding:10px 14px;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s;display:flex}.answer-choice:hover:not(:disabled),.answer-choice.selected{background:var(--brand-soft);border-color:var(--brand);transform:translateY(-1px);box-shadow:0 2px 8px #3654f01a}.answer-choice:disabled{cursor:default}.answer-choice.correct-choice{border-color:var(--correct);background:#e9f8ef}.answer-choice.incorrect-choice{border-color:var(--mistake);background:#fff0f0}.answer-letter{color:var(--ink-soft);border:1px solid #cfd4e3;border-radius:7px;flex:0 0 31px;justify-content:center;align-items:center;height:31px;font-size:13px;font-weight:700;display:inline-flex}.answer-choice.selected .answer-letter{background:var(--brand);border-color:var(--brand);color:#fff}.answer-choice.correct-choice .answer-letter{background:var(--correct);border-color:var(--correct);color:#fff}.answer-choice.incorrect-choice .answer-letter{background:var(--mistake);border-color:var(--mistake);color:#fff}.practice-feedback{background:var(--paper-dim);border-radius:10px;margin:16px 0;padding:14px 16px;font-size:14px}.practice-feedback p{margin:7px 0 0}.graphing-calculator{background:#f8f9ff;border:1px solid #e0e5f5;border-radius:12px;margin:16px 0;overflow:hidden}.graphing-calculator-toggle{color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:11px;width:100%;padding:12px 14px;display:flex}.graphing-calculator-toggle:hover{background:#f0f3ff}.calculator-icon{color:var(--brand-dark);background:#e6ebff;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:22px;display:inline-flex}.graphing-calculator-toggle b{font-size:13px;display:block}.graphing-calculator-toggle small{color:var(--ink-soft);margin-top:2px;font-size:11px;display:block}.calculator-chevron{color:var(--brand-dark);margin-left:auto;font-size:20px}.graphing-calculator-panel{background:#fff;border-top:1px solid #e0e5f5;padding:10px}.graphing-calculator-panel iframe{border:0;border-radius:8px;width:100%;height:420px;display:block}.graphing-calculator-panel a{color:var(--brand-dark);margin:9px 4px 1px;font-size:12px;display:inline-block}.graphing-calculator-compact .graphing-calculator-panel iframe{height:380px}.visual-guide-intro{color:var(--muted);margin:6px 0 16px;font-size:14px}.visual-guide-card{flex-direction:column;gap:10px;display:flex}.visual-guide-steps{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.visual-guide-steps i{color:var(--brand);font-style:normal}.college-board-link{margin-top:14px;display:inline-flex}.practice-page{max-width:980px}.practice-header{border-bottom:1px solid var(--line);margin-bottom:20px;padding-bottom:18px}.practice-filters{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 16px;display:flex}.filter-chip{background:var(--paper);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:7px 12px;font-size:13px;text-decoration:none}.filter-chip:hover,.filter-chip.active{background:var(--brand-soft);color:var(--brand-dark);border-color:#d9defb}.practice-topic-picker{background:#f8f9fc;border:1px solid #e4e8f6;border-radius:16px;max-width:860px;margin:2px 0 20px;padding:16px}.practice-topic-heading{color:var(--ink-soft);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;display:flex}.practice-topic-heading>div{flex-direction:column;gap:3px;display:flex}.practice-topic-heading strong{color:var(--ink);font-size:15px}.practice-topic-heading .eyebrow{font-size:10px}.practice-topic-filters{margin:0}.practice-topic-filters .filter-chip{align-items:center;gap:8px;padding:8px 11px;display:inline-flex}.practice-topic-filters .filter-chip b{color:var(--brand-dark);background:#eceffd;border-radius:999px;justify-content:center;align-items:center;min-width:20px;padding:2px 5px;font-size:11px;display:inline-flex}.practice-topic-filters .filter-chip.active b{background:#d9defb}.topic-quick-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.topic-quick-card{background:var(--paper);border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;min-height:44px;padding:9px 10px;font-size:13px;display:flex}.topic-quick-card:hover,.topic-quick-card.active{color:var(--brand-dark);border-color:#bfc9f8;box-shadow:0 3px 10px #3851d214}.topic-quick-card.active{background:var(--brand-soft)}.topic-quick-card span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topic-quick-card b{color:var(--brand-dark);background:#eef0fc;border-radius:999px;justify-content:center;align-items:center;min-width:23px;padding:3px 6px;font-size:11px;display:inline-flex}.topic-select-label{color:var(--ink-soft);align-items:center;gap:8px;margin-top:12px;font-size:12px;display:flex}.topic-select-label select{background:var(--paper);border:1px solid var(--line);color:var(--ink);font:inherit;border-radius:8px;max-width:330px;padding:7px 9px}@media (width<=700px){.topic-quick-grid{grid-template-columns:1fr}.topic-select-label{flex-direction:column;align-items:stretch}.topic-select-label select{max-width:none}}.practice-visual{border:1px solid var(--line);background:#fff;border-radius:12px;margin:16px 0;overflow:hidden}.practice-visual img{object-fit:contain;width:100%;height:auto;max-height:520px;display:block}.practice-visual figcaption{color:var(--ink-soft);padding:9px 12px;font-size:12px}.generated-visual{max-width:620px;margin-inline:auto}.generated-visual table{border-collapse:collapse;width:100%}.generated-visual th,.generated-visual td{border:1px solid var(--line);text-align:left;padding:10px 14px}.generated-visual th{background:var(--paper-dim);color:var(--ink)}.data-table-scroll{max-width:100%;overflow-x:auto}.data-table-scroll .generated-visual{min-width:max-content}.coordinate-visual svg{background:#fbfcff;width:100%;height:auto;display:block}.coordinate-visual .coordinate-grid line{stroke:#e7eaf2;stroke-width:1px}.coordinate-visual .coordinate-axis line{stroke:#7f8799;stroke-width:1.6px}.coordinate-visual .coordinate-line{stroke-width:3.5px}.coordinate-visual .coordinate-ticks text{fill:#697184;font-size:10px}.coordinate-visual .coordinate-label{fill:var(--ink);font-size:15px;font-style:italic}.coordinate-visual path{fill:none;stroke:var(--brand);stroke-width:4px}.coordinate-visual .coordinate-point{fill:#3659dd;stroke:#fff;stroke-width:1.5px}.coordinate-visual .coordinate-point-label{fill:#384057;font-size:11px}.geometry-visual svg{width:100%;height:auto;display:block}.geometry-segment{stroke:#3659dd;stroke-width:3px}.geometry-point{fill:#1f2740}.geometry-label{fill:#1f2740;font-size:15px;font-style:italic}.geometry-length,.geometry-annotation{fill:#4e5c83;font-size:14px}.question-task{color:var(--ink);font-weight:600}.passage-context{color:var(--ink-soft);background:#fafbfe;border-left:3px solid #bfc9f8;border-radius:0 10px 10px 0;margin:15px 0;padding:14px 16px;line-height:1.65}.passage-context .eyebrow{margin-bottom:8px}.passage-context p{margin-bottom:10px}.passage-image-context{padding:12px}.passage-image-context img{object-fit:contain;object-position:left top;background:#fff;border:1px solid #edf0f6;border-radius:8px;width:100%;height:auto;max-height:440px;display:block}.notes-context{color:var(--ink)}.notes-context ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.notes-context li{background:#fff;border:1px solid #e7ebf5;border-radius:8px;padding:9px 11px 9px 28px;position:relative}.notes-context li:before{color:var(--brand);content:"•";position:absolute;left:11px}.tutor-help-style{background:#fafbff;border:1px solid #e2e7f6;border-radius:14px;margin:18px 0;padding:14px}.tutor-help-style>div:first-child{flex-direction:column;gap:3px;display:flex}.tutor-help-style strong{font-size:15px}.tutor-help-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.tutor-help-option{background:var(--paper);border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:10px;flex-direction:column;gap:4px;padding:12px;display:flex}.tutor-help-option span{color:var(--ink-soft);font-size:12px;line-height:1.4}.tutor-help-option.active{background:var(--brand-soft);border-color:#bfc9f8}.direct-answer-confirm{color:var(--ink-soft);flex-wrap:wrap;align-items:flex-start;gap:8px;margin-top:12px;font-size:12px;line-height:1.45;display:flex}.direct-answer-confirm strong{color:var(--ink);flex-basis:100%}.direct-answer-confirm .btn{margin-top:2px}.direct-answer-ready{color:#24825f;font-weight:700}.direct-answer-session-confirm{background:#fff8e9;border:1px solid #eedaa3;border-radius:9px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.direct-answer-session-confirm span{color:#72591e;flex-basis:100%;font-size:12px}@media (width<=700px){.tutor-help-options{grid-template-columns:1fr}}.practice-card{border:1px solid #dfe3ee;max-width:900px;padding:0 32px 28px;box-shadow:0 8px 24px #161a3312}.practice-progress{border-bottom:1px solid var(--line);margin:0 -32px 24px;padding:15px 32px 14px}.practice-progress-copy{justify-content:space-between;align-items:center;margin-bottom:9px;font-size:12px;display:flex}.practice-progress-copy strong{color:var(--ink);font-size:13px}.practice-progress-copy span{color:var(--muted)}.practice-progress-track{background:#e9ecf3;border-radius:999px;height:6px;overflow:hidden}.practice-progress-track span{background:var(--brand);border-radius:inherit;height:100%;transition:width .25s;display:block}.practice-card-head{justify-content:space-between;align-items:center;margin-bottom:26px;display:flex}.practice-session-tools{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.practice-timer{color:#244e9c;background:#edf4ff;border:1px solid #d8e4fb;border-radius:999px;padding:6px 8px;font-size:12px}.practice-timer.off{background:var(--paper-dim);border-color:var(--line);color:var(--muted)}.timer-toggle{color:var(--ink-soft);cursor:pointer;font:inherit;text-underline-offset:3px;background:0 0;border:0;padding:4px;font-size:12px;text-decoration:underline}.practice-tags{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.subject-tag,.topic-tag,.domain-tag{border-radius:999px;padding:6px 9px;font-size:12px;line-height:1;display:inline-flex}.subject-tag{background:var(--brand-soft);color:var(--brand-dark);font-weight:700}.topic-tag{background:var(--paper-dim);color:var(--ink-soft)}.domain-tag{color:#78580d;background:#fff7df}.practice-counter{color:var(--muted);font-size:12px}.practice-question{font-size:18px;line-height:1.55}.practice-question .rich-text>p,.answer-choice .rich-text>p{margin:0}.answer-choice .katex{font-size:1.08em}.practice-feedback .rich-text>p{margin:7px 0 0}.correct-answer{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.correct-answer .rich-text>p{margin:0}.correct-answer .rich-text{font-weight:700}.practice-done{justify-content:space-between;align-items:center;gap:20px;margin-top:18px;display:flex}.practice-done h3{margin:6px 0}.practice-done p{color:var(--muted);margin:0}.practice-done-actions{flex-wrap:wrap;gap:8px;display:flex}@media (width<=640px){.practice-card{padding:0 18px 18px}.practice-progress{margin:0 -18px 20px;padding-inline:18px}.practice-card-head{align-items:flex-start;gap:12px}.practice-session-tools{justify-content:flex-start}}.journal-list{overflow:hidden}.journal-row{grid-template-columns:minmax(0,1fr) 190px 120px;align-items:center;gap:16px;padding:17px 20px;display:grid}.journal-topic{font-size:15px;font-weight:650}.journal-reason{color:var(--muted);margin-top:3px;font-size:13px}.journal-reason>p{margin:0}.journal-source{color:var(--muted);font-size:12px}@media (width<=760px){.journal-row{grid-template-columns:1fr auto;align-items:start}.journal-source{grid-area:2/1}.journal-row>button{grid-area:1/2/span 2}}.lesson-layout{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);gap:20px;margin-top:28px;display:grid}.lesson-stage{justify-content:center;align-items:center;min-height:380px;padding:24px;display:flex;overflow:hidden}.linear-lab{flex-direction:column;align-items:center;width:100%;max-width:500px;display:flex}.lab-equation{background:var(--brand-soft);color:var(--brand-dark);border-radius:999px;margin-bottom:8px;padding:5px 18px;font-size:20px}.lab-equation .rich-text>p{margin:0}.lab-graph{width:100%;max-width:440px;max-height:250px}.graph-grid{stroke:#e8eaf2;stroke-width:1px}.graph-axis{stroke:#8990a2;stroke-width:1.4px}.graph-slope-line{stroke:var(--brand);stroke-linecap:round;stroke-width:4px;transition:all .25s}.graph-dot{fill:var(--paper);stroke:var(--brand);stroke-width:3px;transition:all .25s}.graph-label{fill:var(--muted);font:14px var(--font-mono)}.lab-controls{grid-template-columns:1fr 1fr;gap:10px;width:100%;max-width:440px;margin-top:4px;display:grid}.lab-controls label{color:var(--ink-soft);grid-template-columns:auto 1fr auto;align-items:center;gap:4px;font-size:12px;display:grid}.lab-controls input{accent-color:var(--brand);min-width:0}.lab-controls b{color:var(--brand-dark);font-family:var(--font-mono);width:12px}.lab-caption{color:var(--muted);text-align:center;margin:15px 0 0;font-size:13px}.lesson-diagram{justify-content:center;align-items:center;width:100%;max-width:560px;height:300px;display:flex;position:relative}.math-diagram{background:#f8f9fc}.diagram-x,.diagram-y{background:var(--ink);opacity:.45;position:absolute}.diagram-x{height:1px;top:57%;left:8%;right:8%}.diagram-y{width:1px;top:8%;bottom:8%;left:33%}.diagram-line{background:var(--brand);transform-origin:0;width:60%;height:3px;animation:1.4s ease-out both draw-line;position:absolute;top:56%;left:19%;transform:rotate(-28deg)}.diagram-point{background:var(--paper);border:2px solid var(--brand);color:var(--brand-dark);border-radius:999px;padding:4px 8px;font-style:italic;position:absolute}.point-a{top:55%;left:31%}.point-b{top:31%;right:25%}.diagram-caption{color:var(--muted);text-align:center;font-size:13px;position:absolute;bottom:18px;left:0;right:0}.reading-diagram{flex-direction:column;justify-content:center;align-items:flex-start;padding:0 48px}.passage-line{color:var(--ink-soft);border-radius:4px;margin:8px 0;padding:8px 12px;font-size:18px;position:relative}.line-one{background:#e5e9ff;width:62%}.line-two{background:#f7f1dc;width:68%;margin-left:12%}.evidence-card{background:var(--paper);border:1px solid var(--brand);color:var(--brand-dark);border-radius:12px;margin:22px 0 0 30%;padding:13px 16px;animation:1.1s ease-out both card-arrive;box-shadow:0 12px 28px #4352aa1f}.writing-diagram{box-sizing:border-box;gap:10px;padding:0 24px}.sentence-chip{background:var(--paper-dim);border:1px solid var(--line);overflow-wrap:anywhere;text-align:center;border-radius:10px;min-width:0;padding:13px;font-size:14px}.sentence-chip.accent{background:var(--brand-soft);color:var(--brand-dark);border-color:#d9defb}.diagram-arrow{color:var(--brand);flex:none;font-size:22px}.lesson-steps{flex-direction:column;display:flex}.lesson-step{align-items:center;gap:11px;padding:11px 0;display:flex}.lesson-step span{background:var(--brand-soft);color:var(--brand-dark);border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:inline-flex}.lesson-step p{margin:0}.lesson-actions{flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:18px;display:flex}.lesson-topic-strip{flex-wrap:wrap;gap:8px;margin-top:28px;display:flex}.lesson-topic-strip .eyebrow{flex-basis:100%}.lesson-topic{background:var(--paper);border:1px solid var(--line);color:var(--ink);border-radius:10px;flex-direction:column;gap:4px;min-width:130px;padding:11px;text-decoration:none;display:flex}.lesson-topic small{color:var(--muted)}.lesson-topic.active{border-color:var(--brand);background:var(--brand-soft)}@keyframes draw-line{0%{transform:rotate(-28deg)scaleX(0)}to{transform:rotate(-28deg)scaleX(1)}}@keyframes card-arrive{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=760px){.lesson-layout{grid-template-columns:1fr}.lesson-stage{min-height:300px}.reading-diagram{padding:0 16px}.writing-diagram{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:7px;height:240px;padding:0;display:grid}.writing-diagram .sentence-chip{padding:10px 6px;font-size:12px}.writing-diagram .diagram-arrow{font-size:18px}.writing-diagram .diagram-caption{grid-column:1/-1;bottom:12px}}.lesson-check{max-width:760px;margin-top:20px}.lesson-check>.rich-text>p{margin:8px 0 16px;font-size:16px}.lesson-choice-list{gap:8px;margin:14px 0;display:grid}.lesson-choice{background:var(--paper);border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;text-align:left;border-radius:9px;padding:10px 12px}.lesson-choice .rich-text>p{margin:0}.lesson-choice.selected{background:var(--brand-soft);border-color:var(--brand)}.lesson-choice.correct-choice{border-color:var(--correct);background:#e9f8ef}.lesson-check-result{background:var(--paper-dim);border-radius:8px;margin-top:14px;padding:12px}.lesson-check-result .rich-text>p{margin:5px 0 0}@media (width<=640px){.practice-done{flex-direction:column;align-items:flex-start}}.panel{background:var(--paper-panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-panel)}.panel-pad{padding:24px}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px}.mark-correct,.mark-mistake,.mark-review{font-family:var(--font-mono);border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.mark-correct{color:var(--correct);background:var(--correct-bg)}.mark-mistake{color:var(--mistake);background:var(--mistake-bg)}.mark-review{color:var(--review);background:var(--review-bg)}.redpen{color:var(--mistake);font-family:"Source Serif 4",Georgia,serif;font-style:italic}.btn{border-radius:var(--radius);border:1px solid var(--brand);background:var(--brand);color:#fff;cursor:pointer;box-shadow:var(--shadow-btn);justify-content:center;align-items:center;padding:9px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:transform 80ms,opacity .15s,background .15s,box-shadow .15s;display:inline-flex}.btn:hover{background:var(--brand-dark);border-color:var(--brand-dark);opacity:1}.btn:active{transform:translateY(1px)}.btn-ghost{color:var(--ink);border:1px solid var(--line);box-shadow:none;background:0 0}.btn-ghost:hover{border-color:var(--brand);color:var(--brand);opacity:1}.btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}textarea,input[type=text],input[type=email],input[type=password],select{font-family:var(--font-body);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--ink);width:100%;padding:10px 12px;font-size:14px}textarea:focus,input:focus,select:focus{border-color:var(--brand)}.site-header{justify-content:space-between;align-items:center;max-width:1180px;margin:0 auto;padding:18px 40px;display:flex}.site-header .logo{color:var(--ink);align-items:baseline;gap:8px;text-decoration:none;display:flex}.site-header .logo h1{font-size:19px}.site-header nav{align-items:center;gap:28px;display:flex}.site-header nav a{color:var(--ink-soft);font-size:14px;font-weight:500;text-decoration:none}.site-header nav a:hover{color:var(--brand)}@media (width<=640px){.site-header{padding:16px 20px}.site-header nav a.hide-mobile{display:none}}.home-hero{background-color:var(--paper);background-image:linear-gradient(var(--blueprint-line) 1px, transparent 1px), linear-gradient(90deg, var(--blueprint-line) 1px, transparent 1px);color:var(--ink);background-size:34px 34px}.hero-inner{grid-template-columns:1.1fr .9fr;align-items:center;gap:48px;max-width:1180px;margin:0 auto;padding:64px 40px 96px;display:grid}@media (width<=900px){.hero-inner{grid-template-columns:1fr;padding:40px 20px 64px}.hero-product-shot{max-width:680px;transform:none}}.hero-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-dark);background:var(--brand-soft);border:1px solid var(--blueprint-line-strong);border-radius:999px;padding:5px 12px;font-size:11px;display:inline-block}.hero-copy h1{font-family:var(--font-display);color:var(--ink);letter-spacing:-.02em;margin-top:18px;font-size:46px;line-height:1.08}.hero-lede{color:var(--ink-soft);max-width:480px;margin-top:18px;font-size:16px;line-height:1.6}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero-preview{overflow:hidden}.hero-product-shot{background:var(--paper);transform-origin:0;margin:0;overflow:hidden;transform:perspective(1200px)rotateY(-3deg)rotateX(1deg)}.hero-product-shot img{width:100%;height:auto;display:block}.hero-product-shot figcaption{color:var(--ink-soft);font:12px var(--font-mono);align-items:center;gap:8px;padding:10px 13px;display:flex}.hero-live-dot{background:#55b983;border-radius:50%;width:7px;height:7px}.preview-header{border-bottom:1px solid var(--line);align-items:center;gap:6px;padding:10px 14px;display:flex}.preview-dot{background:var(--line);border-radius:999px;width:8px;height:8px}.preview-title{color:var(--muted);font-size:12px;font-family:var(--font-mono);margin-left:8px}.preview-body{padding:16px}.preview-stat{border-top:1px dashed var(--line);justify-content:space-between;align-items:baseline;padding:9px 0;font-size:13px;display:flex}.preview-stat:first-of-type{border-top:none}.preview-stat strong{font-family:var(--font-mono);color:var(--ink);font-size:15px;font-weight:700}.preview-stat strong.review{color:var(--review)}.home-section{max-width:1180px;margin:0 auto;padding:88px 40px}.home-section-alt{background:var(--paper-dim)}@media (width<=640px){.home-section{padding:56px 20px}}.section-inner{max-width:1180px;margin:0 auto}.section-inner h2{font-size:30px}.section-lede{color:var(--ink-soft);max-width:560px;margin-top:10px;line-height:1.6}.sat-dates-grid{flex-direction:column;gap:10px;margin-top:24px;display:flex}.sat-date-chip{color:var(--ink);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:14px 18px;font-size:14px;display:flex}.sat-date-label{font-weight:600}.sat-date-countdown{font-family:var(--font-mono);color:var(--brand-dark);background:var(--brand-soft);white-space:nowrap;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.steps-grid{grid-template-columns:repeat(3,1fr);gap:24px;margin-top:32px;display:grid}@media (width<=860px){.steps-grid{grid-template-columns:1fr}}.step-item{padding-top:8px;position:relative}.step-num{font-family:var(--font-mono);color:var(--brand);border:1px solid var(--brand);border-radius:999px;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:flex}.step-item h3{margin-top:16px;font-size:17px}.step-item p{color:var(--ink-soft);margin-top:8px;font-size:14px;line-height:1.6}.features-grid{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:32px;display:grid}@media (width<=860px){.features-grid{grid-template-columns:1fr 1fr}}@media (width<=600px){.features-grid{grid-template-columns:1fr}}.feature-item h3{font-size:16px}.feature-item p{color:var(--ink-soft);margin-top:6px;font-size:13.5px;line-height:1.55}.home-cta{background:var(--brand-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:72px 40px}.cta-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex}.cta-inner h2{font-size:26px}.cta-inner p{color:var(--ink-soft);margin-top:8px}.site-footer{max-width:1180px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 auto;padding:32px 40px 48px;font-size:13px;display:flex}.auth-shell{flex-direction:column;min-height:100vh;display:flex}.auth-center{flex:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.auth-card{border-radius:var(--radius-lg);width:100%;max-width:380px;padding:32px}.auth-card h2{font-size:22px}.auth-card p.sub{color:var(--ink-soft);margin-top:6px;font-size:14px}.auth-field{color:var(--muted);margin-top:16px;font-size:13px;display:block}.auth-field input{margin-top:5px}.auth-note{background:var(--brand-soft);border-radius:var(--radius);color:var(--brand-dark);margin-top:18px;padding:12px 14px;font-size:12.5px;line-height:1.5}.auth-switch{color:var(--ink-soft);text-align:center;margin-top:20px;font-size:13px}.auth-switch button{color:var(--brand);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.dropzone{border:1.5px dashed var(--line);border-radius:var(--radius);text-align:center;background:var(--paper-dim);cursor:pointer;padding:22px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.drag-active{border-color:var(--brand);background:var(--brand-soft)}.dropzone input[type=file]{display:none}.dropzone .dz-icon{background:var(--brand-soft);width:30px;height:30px;color:var(--brand);border-radius:999px;justify-content:center;align-items:center;margin:0 auto 10px;font-size:15px;display:flex}.dropzone .dz-main{color:var(--ink);font-size:13.5px;font-weight:600}.dropzone .dz-sub{color:var(--muted);margin-top:3px;font-size:12px}.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;margin-top:14px;display:grid}.image-preview{aspect-ratio:1;border-radius:var(--radius);border:1px solid var(--line);position:relative;overflow:hidden}.image-preview img{object-fit:cover;width:100%;height:100%;display:block}.image-preview button{color:#fff;cursor:pointer;background:#141a36bf;border:none;border-radius:999px;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;line-height:1;display:flex;position:absolute;top:4px;right:4px}.image-preview button:hover{background:var(--mistake)}.upload-page{max-width:920px}.page-title{margin-top:4px;font-size:26px}.page-lede{color:var(--ink-soft);max-width:620px;margin-top:8px;line-height:1.6}.upload-form{margin-top:20px}.upload-layout{grid-template-columns:1fr 1.1fr;align-items:start;gap:28px;display:grid}@media (width<=780px){.upload-layout{grid-template-columns:1fr}}.upload-section-label{color:var(--ink);justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.upload-optional{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--brand);background:var(--brand-soft);border-radius:999px;padding:3px 8px;font-size:10px}.sat-date-deadline{color:var(--muted);flex-basis:100%;margin-top:-5px;font-size:12px;display:block}.countdown-deadline{color:var(--muted);margin-top:3px;font-size:12px;display:block}.upload-hint{color:var(--ink-soft);margin-top:10px;font-size:12.5px;line-height:1.5}.upload-error{color:var(--mistake);background:var(--mistake-bg);border-radius:var(--radius);margin-top:10px;padding:10px 12px;font-size:12.5px}.field{color:var(--muted);margin-top:14px;font-size:13px;display:block}.field input,.field select,.field textarea{margin-top:5px}.field-row{gap:12px;display:grid}.field-row-2{grid-template-columns:1fr 1fr}.field-row-3{grid-template-columns:1fr 1fr 1fr}@media (width<=600px){.field-row-2,.field-row-3{grid-template-columns:1fr}}.btn-analyze{align-items:center;gap:8px;min-width:180px;margin-top:18px;display:inline-flex}.btn-spinner{border:2px solid #ffffff59;border-top-color:#fff;border-radius:999px;width:14px;height:14px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.upload-report{max-width:640px;margin-top:8px}.dropzone-enhanced{justify-content:center;align-items:center;min-height:168px;padding:28px 20px;display:flex;position:relative}.dropzone-enhanced.at-limit{opacity:.65;cursor:not-allowed}.dropzone-enhanced.loading{pointer-events:none}.dropzone-overlay{border-radius:var(--radius);z-index:2;pointer-events:none;background:#3654f01a;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dropzone-overlay span{color:var(--brand);border:1px solid var(--brand);box-shadow:var(--shadow-panel);background:#fff;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600}.dz-icon-ring{background:var(--brand-soft);width:48px;height:48px;color:var(--brand);border-radius:999px;justify-content:center;align-items:center;margin:0 auto 12px;display:flex}.dz-visual{z-index:1;position:relative}.image-preview-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-top:14px;display:grid}.image-preview-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.image-preview-thumb{aspect-ratio:4/3;cursor:pointer;background:var(--paper-dim);border:none;width:100%;padding:0;display:block;position:relative}.image-preview-thumb img{object-fit:cover;width:100%;height:100%;display:block}.image-preview-zoom{color:#fff;opacity:0;background:#141a3673;justify-content:center;align-items:center;font-size:12px;font-weight:600;transition:opacity .15s;display:flex;position:absolute;inset:0}.image-preview-thumb:hover .image-preview-zoom{opacity:1}.image-preview-meta{justify-content:space-between;align-items:center;gap:6px;padding:8px 10px 4px;display:flex}.image-preview-name{color:var(--ink);font-size:12px;font-weight:600}.image-preview-size{font-family:var(--font-mono);color:var(--muted);font-size:10px}.image-preview-remove{width:100%;color:var(--mistake);cursor:pointer;background:0 0;border:none;padding:6px 10px 10px;font-size:11px;font-weight:600}.image-preview-remove:hover{background:var(--mistake-bg)}.lightbox{z-index:1000;background:#141a36d1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox-inner{flex-direction:column;align-items:flex-end;gap:12px;max-width:min(900px,100%);max-height:90vh;display:flex}.lightbox-inner img{object-fit:contain;border-radius:6px;max-width:100%;max-height:calc(90vh - 48px);box-shadow:0 8px 32px #00000059}.lightbox-close{border-radius:var(--radius);cursor:pointer;color:var(--ink);background:#fff;border:none;padding:8px 16px;font-size:13px;font-weight:600}.report-image-strip{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.report-image-strip img{object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);width:64px;height:64px}.tutor-page{max-width:720px}.tutor-setup,.tutor-flow-hint{margin-top:20px}.tutor-steps{color:var(--ink-soft);margin:10px 0 0;padding-left:20px;font-size:14px;line-height:1.8}.tutor-session-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.tutor-question-images{flex-wrap:wrap;gap:10px;margin-bottom:12px;display:flex}.tutor-question-images img{border-radius:var(--radius);border:1px solid var(--line);max-height:120px}.tutor-question-text{margin-bottom:16px}.tutor-question-text p{color:var(--ink-soft);margin:6px 0 0;font-size:14px;line-height:1.6}.tutor-chat{flex-direction:column;min-height:420px;display:flex}.tutor-chat-messages{flex-direction:column;flex:1;gap:14px;max-height:480px;padding:20px;display:flex;overflow-y:auto}.chat-bubble{border-radius:14px;max-width:88%;padding:12px 14px;font-size:14px;line-height:1.6}.chat-bubble p{margin:4px 0 0}.rich-text{margin:4px 0 0;font-size:14px;line-height:1.55}.rich-text>:first-child{margin-top:0}.rich-text>:last-child{margin-bottom:0}.rich-text p,.rich-text ul,.rich-text ol{margin:.5em 0}.rich-text ul,.rich-text ol{padding-left:1.25em}.rich-text li+li{margin-top:.25em}.rich-text .katex-display{margin:.6em 0;overflow:auto hidden}.chat-bubble .katex{font-size:1.05em}.chat-tutor{background:var(--brand-soft);border:1px solid #d9defb;align-self:flex-start}.chat-student{background:var(--paper-panel);border:1px solid var(--line);align-self:flex-end}.chat-role{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:10px}.chat-tutor .chat-role{color:var(--brand)}.chat-typing{align-items:center;gap:8px;display:flex}.tutor-chat-input{border-top:1px solid var(--line);background:var(--paper-dim);padding:16px 20px}.tutor-prompt{color:var(--brand-dark);margin:0 0 10px;font-size:13px;font-weight:600}.tutor-gate-note{color:var(--muted);margin:0 0 10px;font-size:12px;line-height:1.45}.tutor-gate-note strong{color:var(--ink)}.tutor-quick-actions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.btn-sm{padding:6px 12px;font-size:12px}.tutor-input-row{gap:8px;display:flex}.tutor-input-row input{flex:1}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.lesson-main-issue{background:var(--paper-dim);border-left:3px solid var(--review);flex-direction:column;align-items:flex-start;gap:4px;max-width:760px;margin:18px 0;padding:12px 14px;display:flex}.lesson-main-issue>span:last-child{color:var(--muted);font-size:13px}.lesson-mistake{max-width:900px;margin-top:24px}.lesson-mistake h3{margin:6px 0}.lesson-mistake>.rich-text>p{margin:10px 0 18px;font-size:17px;line-height:1.55}.mistake-answer-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0;display:grid}.mistake-answer-row>div{background:var(--paper-dim);border:1px solid var(--line);border-radius:10px;padding:11px 13px}.mistake-answer-row .correct{background:#effaf2;border-color:#9edbb4}.mistake-answer-row span{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-bottom:5px;font-size:12px;font-weight:700;display:block}.mistake-answer-row .rich-text>p{margin:0}.mistake-reason{border-left:3px solid var(--brand);padding:4px 0 4px 12px}.mistake-reason p{color:var(--muted);margin:4px 0 0}.lesson-visual-intro{border-bottom:1px solid var(--line);align-self:stretch;margin-bottom:16px;padding-bottom:12px}.lesson-visual-intro p{color:var(--muted);margin:5px 0 0;font-size:14px}.lesson-stage{flex-direction:column}.similar-practice{gap:16px;max-width:900px;margin-top:24px;display:grid}.similar-practice h3{margin:4px 0}.similar-practice>div>p{color:var(--muted);margin:4px 0}@media (width<=620px){.mistake-answer-row{grid-template-columns:1fr}}.annotation-legend{flex-wrap:wrap;gap:8px;margin:8px 0 16px;display:flex}.annotation-legend span{border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700}.mark-green{color:#157348;background:#e6f7ed}.mark-amber{color:#95610c;background:#fff4db}.mark-red{color:#ba2630;background:#ffeaec}.mark-blue{color:#2943bd;background:#e8edff}.tutor-concept{background:#f8f9fc;border:1px solid #d8defa;border-radius:16px;max-width:900px;margin:16px 0;padding:20px}.tutor-concept h3{margin:4px 0 12px}.tutor-concept>p,.tutor-concept>.rich-text{color:var(--muted);margin:12px 0 0}.concept-canvas{background:#fff;border:1px solid #e2e6f6;border-radius:12px;justify-content:center;align-items:center;gap:12px;min-height:160px;padding:22px;display:flex;position:relative;overflow:hidden}.concept-box,.concept-rule{border-radius:10px;padding:13px 18px;font-size:14px;font-weight:700}.concept-box{background:#eff2ff;border:1px solid #bfcaff}.concept-rule{color:#fff;background:#3654f0}.concept-arrow{color:#3654f0;font-size:27px;font-weight:700}.concept-rung{border:1px solid var(--line);text-align:center;background:#f5f6fa;border-radius:9px;width:min(300px,82%);padding:10px 14px;font-size:14px;font-weight:650;display:block;position:relative}.concept-rung:nth-child(2){transform:translateY(-2px)}.concept-rung.active{color:#2943bd;background:#e8edff;border-color:#aebdff}.tutor-concept-evidence-ladder .concept-canvas,.tutor-concept-sentence-map .concept-canvas{flex-direction:column;gap:7px}.concept-axis{background:#8790a3;display:block;position:absolute}.axis-x{height:1px;top:70%;left:14%;right:14%}.axis-y{width:1px;top:14%;bottom:14%;left:42%}.concept-line{transform-origin:0;background:#3654f0;width:52%;height:3px;position:absolute;top:55%;left:26%;transform:rotate(-29deg)}.concept-dot{background:#3654f0;border:3px solid #fff;border-radius:50%;width:10px;height:10px;position:absolute;box-shadow:0 0 0 2px #3654f0}.dot-a{top:59%;left:36%}.dot-b{top:42%;left:60%}.concept-retry{background:#fff;border-left:3px solid #3654f0;margin-top:15px;padding:10px 12px}.concept-retry p{margin:4px 0 0}.dsat-launch{color:var(--ink);background:#f5f7ff;border:1px solid #cdd6fb;border-radius:14px;justify-content:space-between;align-items:center;max-width:900px;margin:0 0 22px;padding:15px 18px;text-decoration:none;display:flex}.dsat-launch b,.dsat-launch small{display:block}.dsat-launch small{color:var(--muted);margin-top:3px;font-size:13px}.dsat-page{max-width:1040px}.dsat-hero{justify-content:space-between;align-items:flex-start;gap:30px;margin-bottom:26px;display:flex}.dsat-hero>div:first-child{max-width:690px}.dsat-scorecard{color:#fff;background:#20294d;border-radius:14px;min-width:200px;padding:16px}.dsat-scorecard span,.dsat-scorecard small{color:#d8def8;font-size:12px;display:block}.dsat-scorecard strong{margin:5px 0;font-size:18px;display:block}.dsat-section-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px;display:grid}.dsat-section-card{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;background:#fff;border-radius:12px;padding:17px}.dsat-section-card.active{background:var(--brand-soft);border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand)}.dsat-section-card strong,.dsat-section-card span,.dsat-section-card small{display:block}.dsat-section-card span{margin:5px 0}.dsat-section-card small{color:var(--muted)}.dsat-test{max-width:980px;overflow:hidden}.dsat-test>header,.dsat-test>footer{border-bottom:1px solid var(--line);background:#f7f8fd;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.dsat-test>header strong{margin-top:2px;display:block}.dsat-test>footer{border-bottom:0;border-top:1px solid var(--line)}.dsat-test>footer>div{gap:8px;display:flex}.dsat-timer{color:#2843bd;font-family:var(--mono);background:#e8edff;border-radius:9px;padding:9px 12px;font-weight:700}.dsat-timer.urgent{color:#ba2630;background:#ffeaec}.dsat-navigator{flex-wrap:wrap;gap:6px;padding:14px 20px 0;display:flex}.dsat-navigator button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:7px;width:31px;height:31px}.dsat-navigator button.answered{color:#157348;border-color:#9edbb4}.dsat-navigator button.active{background:var(--brand);border-color:var(--brand);color:#fff}.dsat-test main{min-height:420px;padding:22px 26px}.dsat-finish{max-width:700px}@media (width<=700px){.dsat-hero{flex-direction:column}.dsat-scorecard{width:100%}.dsat-section-cards{grid-template-columns:1fr}.dsat-launch{flex-direction:column;align-items:flex-start;gap:9px}.dsat-test>header,.dsat-test>footer{flex-direction:column;align-items:flex-start;gap:12px}}.tutor-step-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:15px;display:grid}.tutor-step-card{background:#fff;border-left:3px solid;border-radius:8px;padding:10px}.tutor-step-card span{font-size:13px;font-weight:750}.tutor-step-card p{color:var(--ink);margin:4px 0 0;font-size:13px;line-height:1.4}.tutor-step-card.mark-green{color:#157348}.tutor-step-card.mark-amber{color:#95610c}.tutor-step-card.mark-red{color:#ba2630}.tutor-step-card.mark-blue{color:#2943bd}@media (width<=620px){.tutor-step-map{grid-template-columns:1fr}}.practice-status{color:var(--muted);margin:8px 0 0;font-size:13px}.weekly-schedule{margin-top:20px}.weekly-schedule h3{margin:5px 0 18px;font-size:18px}.weekly-grid{grid-template-columns:repeat(7,minmax(110px,1fr));gap:8px;padding-bottom:5px;display:grid;overflow-x:auto}.schedule-day{flex-direction:column;gap:7px;min-height:150px;display:flex}.schedule-day-label{color:var(--muted);font-family:var(--font-mono);font-size:12px}.schedule-block{border-radius:9px;flex-direction:column;gap:3px;min-width:110px;padding:10px;text-decoration:none;display:flex}.schedule-block small{opacity:.72}.schedule-block strong{color:inherit;font-size:13px}.schedule-block span{font-size:11px}.schedule-math{color:#34479d;background:#e9edff}.schedule-reading{color:#25734b;background:#e8f6ef}.schedule-writing{color:#825b16;background:#fff3df}.tutor-mode-switch{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.tutor-mode-switch button{cursor:pointer;font-family:inherit}.work-pad{border:1px solid var(--line);border-radius:10px;overflow:hidden}.work-pad-head{background:var(--paper-dim);justify-content:space-between;align-items:center;padding:9px 12px;font-size:13px;display:flex}.work-pad canvas{cursor:crosshair;touch-action:none;background:#fff;width:100%;max-width:100%;display:block}.work-pad p{color:var(--muted);margin:0;padding:9px 12px;font-size:12px}.work-pad{min-height:600px}.work-pad-head{flex-wrap:wrap;align-items:center;gap:10px}.work-pad-tools,.color-picker{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:20px;height:20px;padding:0}.color-swatch.active{border-color:var(--ink);box-shadow:0 0 0 2px var(--paper-dim)}.tool-button{background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:5px 8px;font-size:12px}.tool-button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark)}.size-control{align-items:center;gap:4px;font-size:12px;display:flex}.size-control input{accent-color:var(--brand);width:70px}.work-pad canvas{min-height:520px}.annotated-work{background:var(--paper-dim);border:1px solid var(--line);border-radius:12px;overflow:hidden}.annotated-work canvas{width:auto;max-width:100%;height:auto;max-height:620px;display:block}.workspace-mode{width:calc(100vw - 232px);max-width:none;margin-left:-40px;padding:0 40px}.workspace-mode .work-review-setup .upload-layout{grid-template-columns:minmax(0,1fr)}.workspace-mode .work-pad{min-height:calc(100vh - 255px)}.workspace-mode .work-pad canvas{min-height:calc(100vh - 365px)}.workspace-mode .tutor-flow-hint{display:none}@media (width<=860px){.workspace-mode{width:100vw;margin-left:-16px;padding:0 16px}.workspace-mode .work-pad{min-height:600px}.workspace-mode .work-pad canvas{min-height:500px}}.dna-topic-row{--dna-accent:#a0a8b8;border:1px solid var(--line);border-left:4px solid var(--dna-accent);color:inherit;cursor:pointer;font:inherit;text-align:left;background:#fff;border-radius:9px;align-items:center;width:100%;transition:background .16s,border-color .16s,transform .16s}.dna-topic-row.mastered{--dna-accent:#24825f}.dna-topic-row.developing{--dna-accent:#b98720}.dna-topic-row.weak-spot{--dna-accent:#bd5451}.dna-topic-row:hover,.dna-topic-row.expanded{background:var(--paper-dim);border-color:#cdd5ec}.dna-topic-row:hover{transform:translateY(-1px)}.dna-topic-name{flex-direction:column;gap:2px;display:flex}.dna-topic-name>span{font-size:14px}.dna-topic-name small{color:var(--muted);font-size:11px}.dna-score{background:color-mix(in srgb, var(--dna-accent) 12%, white);color:var(--ink);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:12px}.dna-expand{color:var(--muted);text-align:right;width:16px;font-size:16px}.dna-question-history{background:var(--paper-dim);border-radius:9px;margin:4px 0 8px 16px;padding:10px}.dna-question{border-top:1px solid var(--line);flex-direction:column;gap:3px;padding:8px 0;font-size:13px;display:flex}.dna-question:first-of-type{border-top:0}.dna-question small{color:var(--muted)}.skip-link{background:var(--ink);color:#fff;z-index:10000;border-radius:0 0 8px 8px;padding:9px 13px;transition:top .15s;position:fixed;top:-60px;left:16px}.skip-link:focus{top:0}.app-loading,.auth-required,.fatal-error{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.app-loading{color:var(--muted);gap:10px}.auth-required .panel,.fatal-error>div{width:100%;max-width:600px;padding:32px}.auth-required h1{margin:8px 0 12px;font-size:clamp(28px,5vw,44px)}.auth-required p,.fatal-error p{color:var(--muted);margin:0 0 20px}.fatal-error>div{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-panel)}.fatal-error strong{font-size:22px}.fatal-error button{background:var(--brand);color:#fff;cursor:pointer;border:0;border-radius:9px;padding:10px 16px}.btn-danger{color:#fff;background:#b72f36}.account-page,.saved-page{max-width:920px}.account-action{justify-content:space-between;align-items:flex-start;gap:24px;margin-top:16px;display:flex}.account-action h3{margin-bottom:5px}.account-action p{color:var(--muted);max-width:620px;margin:0}.account-action.danger{border-color:#efc9cc}.account-confirm{min-width:220px}.account-confirm p{margin-bottom:9px}.account-confirm .btn{margin:0 5px 5px 0}.status-banner{background:#f5f7ff;border:1px solid #ccd5fb;border-radius:10px;margin-top:16px;padding:12px 14px}.saved-question-list{gap:14px;margin-top:20px;display:grid}.saved-question-actions{flex-wrap:wrap;gap:12px;margin-top:16px;display:flex}.empty-state{margin-top:20px}.empty-state p{color:var(--muted)}.saved-question{gap:16px;display:grid}.saved-question .rich-text{margin:0;font-size:17px;line-height:1.65}.saved-question-actions{align-items:center}.text-button{color:var(--muted);cursor:pointer;font:600 13px var(--font-body);background:0 0;border:0;padding:9px 4px;text-decoration:none}.text-button:hover{color:var(--mistake)}.confidence-check{border:0;gap:7px;margin:14px 0;padding:0;display:flex}.confidence-check legend{color:var(--muted);float:left;margin:7px 10px 0 0;font-size:12px}.confidence-check button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:999px;padding:6px 11px}.confidence-check button.active{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-dark)}.modal-backdrop{z-index:9999;background:#1014288f;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.report-modal{width:100%;max-width:520px;padding:24px}.report-modal p{color:var(--muted)}.report-modal textarea{border:1px solid var(--line);font:inherit;resize:vertical;border-radius:9px;width:100%;margin:5px 0 14px;padding:11px}.report-modal>div{justify-content:flex-end;gap:8px;display:flex}.report-modal small{margin-top:10px;display:block}.task-check{color:#fff;cursor:pointer;background:#fff;border:2px solid #cbd1df;border-radius:50%;flex:0 0 24px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.task-check[aria-pressed=true]{background:var(--correct);border-color:var(--correct)}.task-row.completed{opacity:.65}.task-row.completed .task-label{text-decoration:line-through}.plan-tasks{margin-top:20px}.plan-task-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:8px;display:flex}.plan-task-heading h3{margin:6px 0 0;font-size:22px}.plan-completion-track{background:var(--paper-dim);border-radius:999px;width:34%;max-width:280px;height:8px;overflow:hidden}.plan-completion-track span{background:var(--brand);border-radius:inherit;height:100%;transition:width .2s;display:block}.task-list{gap:0;display:grid}.task-row{border-top:1px solid var(--line);grid-template-columns:24px auto minmax(0,1fr) auto;align-items:center;gap:12px;min-height:74px;padding:13px 0;display:grid}.task-row:first-child{border-top:0}.task-row>.mark-review,.task-row>.mark-mistake{font:600 11px var(--font-mono);text-transform:lowercase;border-radius:999px;padding:5px 8px}.task-content{flex-direction:column;gap:3px;min-width:0;display:flex}.task-label{color:var(--ink);font-size:15px;font-weight:650;line-height:1.35}.task-domain{color:var(--muted);font-size:12px;line-height:1.35}.btn-sm{white-space:nowrap;padding:7px 12px;font-size:12px}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.skipped-list{gap:8px;margin-top:12px;display:grid}.skipped-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.skipped-row .mark-correct{font:600 12px var(--font-mono);border-radius:999px;padding:5px 8px}.lesson-mastery-check{align-items:baseline;gap:8px;margin-top:8px;display:flex}.lesson-mastery-check span{color:var(--muted);font-size:13px}.lesson-complete{background:var(--correct-bg);border:1px solid #a8d8bd;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:20px;padding:16px;display:flex}.lesson-complete span{color:#2d664a}.lesson-complete .btn{margin-left:auto}.dsat-navigator button.marked{box-shadow:inset 0 -3px 0 var(--review)}.form-error{color:var(--mistake);font-size:13px}@media (width<=640px){.account-action{flex-direction:column}.account-confirm{width:100%;min-width:0}.confidence-check{flex-wrap:wrap;align-items:flex-start}.confidence-check legend{float:none;flex-basis:100%}.lesson-complete{flex-direction:column;align-items:flex-start}.lesson-complete .btn{margin-left:0}.plan-task-heading{flex-direction:column;align-items:flex-start;gap:12px}.plan-completion-track{width:100%;max-width:none}.task-row{grid-template-columns:24px minmax(0,1fr) auto;align-items:start}.task-row>.mark-review,.task-row>.mark-mistake{grid-area:1/2;justify-self:start}.task-content{grid-column:2/-1}.task-row>.btn{grid-column:2;justify-self:start}.saved-question-actions{flex-direction:column;align-items:stretch}.saved-question-actions .btn,.saved-question-actions .text-button{width:100%}}.dashboard-welcome{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.student-overview{background:var(--paper);grid-template-columns:auto minmax(0,1fr) minmax(250px,.85fr) auto;align-items:center;gap:16px;margin-bottom:20px;padding:24px 26px;display:grid}.student-avatar{color:#243574;font:800 22px var(--font-display);background:#dfe5ff;border:4px solid #fff;border-radius:16px 16px 16px 5px;justify-content:center;align-items:center;width:58px;height:58px;display:flex;box-shadow:0 4px 10px #3654f01f}.student-overview-copy .dashboard-kicker{margin-bottom:7px}.student-overview-copy .page-title{font-size:28px}.student-overview-copy .page-lede{font-size:14px}.student-overview-progress{border-left:1px solid var(--line);align-items:center;gap:17px;padding-left:20px;display:flex}.streak-mini{grid-template-columns:auto auto;align-items:center;gap:0 4px;line-height:1.05;display:grid}.streak-mini>span{color:#e69947;grid-row:span 2;font-size:18px}.streak-mini b{font:800 20px var(--font-mono)}.streak-mini small{color:var(--muted);max-width:65px;font-size:10px}.level-progress{flex:1;min-width:115px}.level-progress>div:first-child{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.level-progress b{font-size:12px}.level-progress span{color:var(--muted);white-space:nowrap;font-size:10px}.level-track{background:#e8ebf6;border-radius:999px;height:8px;margin-top:7px;overflow:hidden}.level-track>span{border-radius:inherit;background:#667bf3;min-width:8px;height:100%;transition:width .35s;display:block}.compact-upload,.text-action{color:var(--brand-dark);text-underline-offset:4px;font-size:13px;font-weight:700;text-decoration:none}.compact-upload{background:var(--paper);white-space:nowrap;border:1px solid #d7defb;border-radius:999px;padding:8px 12px}.compact-upload:hover,.text-action:hover{color:var(--brand);text-decoration:underline}.daily-command{background:var(--paper);border:1px solid var(--line);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:22px;margin:24px 0 18px;padding:26px 28px;display:grid;position:relative;overflow:hidden}.daily-command:after{display:none}.daily-command>*{z-index:1;position:relative}.daily-command h3{letter-spacing:-.03em;margin:4px 0 6px;font-size:clamp(20px,3vw,25px)}.daily-command p{color:var(--ink-soft);max-width:620px;margin:0}.daily-command-mark{background:var(--brand);box-shadow:var(--shadow-btn);color:#fff;font:700 14px var(--font-mono);border-radius:18px;justify-content:center;align-items:center;width:50px;height:50px;display:flex}.daily-command-meta{color:var(--muted);flex-wrap:wrap;gap:8px 16px;margin-top:13px;font-size:12px;display:flex}.daily-command-meta span{align-items:center;gap:6px;display:inline-flex}.daily-command-meta span:before{content:"";background:#6d87f6;border-radius:50%;width:5px;height:5px}.btn.btn-large{white-space:nowrap;align-items:center;gap:10px;padding:13px 17px;display:inline-flex}.btn.btn-large span{font-size:18px;line-height:.8}.dashboard-journey{grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0 28px;display:grid}.journey-step{background:var(--paper);border:1px solid var(--line);border-radius:14px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:12px;text-decoration:none;transition:border-color .18s,box-shadow .18s,transform .18s;display:grid}.journey-step:hover{border-color:#bfcaff;transform:translateY(-2px);box-shadow:0 8px 18px #3654f014}.journey-step span{background:var(--brand-soft);color:var(--brand-dark);font:700 11px var(--font-mono);border-radius:50%;grid-row:span 2;justify-content:center;align-items:center;width:27px;height:27px;display:inline-flex}.journey-step b{font-size:13px}.journey-step small{color:var(--muted);font-size:11px}.dashboard-snapshot{margin-top:28px}.snapshot-heading{justify-content:space-between;align-items:end;margin-bottom:13px;display:flex}.snapshot-heading h3{margin-top:3px;font-size:18px}.dashboard-stat-grid{grid-template-columns:1.1fr 1fr .9fr}.score-card{background:#fff}.accuracy-card{flex-direction:column;align-items:flex-start;display:flex}.accuracy-orbit{background:conic-gradient(var(--brand) var(--progress), #edf0f8 0);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:78px;height:78px;margin:10px 0 6px;display:flex;position:relative}.accuracy-orbit:before{background:var(--paper);border-radius:inherit;content:"";position:absolute;inset:7px}.accuracy-orbit strong,.accuracy-orbit span{z-index:1;position:relative}.accuracy-orbit strong{font:700 15px var(--font-mono)}.accuracy-orbit span{color:var(--muted);font-size:9px}.dashboard-footer-actions{align-items:center;gap:17px;margin-top:24px;display:flex}.past-result-form{gap:26px;max-width:900px;display:grid}.past-result-miss{border-top:1px solid var(--line);padding-top:24px}.past-result-score-note{max-width:900px;margin-top:20px}.past-result-score-note p{color:var(--ink-soft);margin:7px 0 0}.past-result-score-note .btn{margin-top:16px}.past-result-saved{color:#247047;background:#edf8f1;border:1px solid #bfe4cc;border-radius:10px;padding:12px 14px;font-size:14px}.past-result-next{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:18px;margin-top:18px;padding-top:18px;display:flex}.past-result-next p{color:var(--ink-soft);margin:0}.study-routes{margin-top:32px}.study-route-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.study-route{border:1px solid var(--line);background:#fff;border-radius:16px;flex-direction:column;min-height:390px;padding:18px;transition:box-shadow .2s,transform .2s;display:flex;position:relative;overflow:hidden}.study-route:before{background:var(--route-color,#7188ee);content:"";height:4px;position:absolute;top:0;left:0;right:0}.study-route:hover{transform:translateY(-3px);box-shadow:0 15px 28px #161a3314}.study-route.math{--route-color:#526de9}.study-route.reading{--route-color:#4aa680}.study-route.writing{--route-color:#bd7dcd}.study-route-head{justify-content:space-between;align-items:flex-start;display:flex}.study-route-head>div{align-items:center;gap:9px;display:flex}.study-route h4{font-size:17px}.route-icon{color:#3850d0;font:700 15px var(--font-mono);background:#edf0ff;border-radius:10px;justify-content:center;align-items:center;width:31px;height:31px;display:flex}.reading .route-icon{color:#27855e;background:#eaf7f1}.writing .route-icon{color:#984dad;background:#faeffd}.route-mastery{background:var(--paper-dim);color:var(--ink-soft);font:700 11px var(--font-mono);border-radius:999px;padding:5px 7px}.study-route>p{color:var(--muted);min-height:52px;margin:14px 0;font-size:12px;line-height:1.45}.route-topic-list{margin:2px 0 16px;padding:0;list-style:none}.route-topic-list li{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:35px;display:grid;position:relative}.route-topic-list li+li:before{content:"";background:#e6e9f3;width:2px;height:12px;position:absolute;top:-12px;left:9px}.route-topic-list li>span{color:var(--muted);font:700 9px var(--font-mono);z-index:1;background:#f0f2fa;border-radius:50%;justify-content:center;align-items:center;width:19px;height:19px;display:flex;position:relative}.route-topic-list li.steady>span{color:#18724c;background:#d9f2e4}.route-topic-list b{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.route-topic-list small{color:var(--muted);font:10px var(--font-mono)}.route-start{border-top:1px solid var(--line);color:var(--brand-dark);justify-content:space-between;align-items:center;margin-top:auto;padding-top:13px;font-size:12px;font-weight:750;text-decoration:none;display:flex}.route-start:hover{color:var(--brand)}.route-start span{font-size:16px}.home-hero{position:relative;overflow:hidden}.home-hero:after{content:"";opacity:.65;pointer-events:none;background:#f1f3fc;border:1px solid #e4e8f7;border-radius:50%;width:300px;height:280px;position:absolute;top:180px;right:-95px}.hero-inner{z-index:1;position:relative}.hero-label{align-items:center;gap:8px;display:inline-flex}.hero-label:before{content:"";background:#55b983;border-radius:50%;width:8px;height:8px}.hero-actions .btn:first-child{min-height:46px}.steps-grid .step-item{border-radius:16px;transition:background .18s,transform .18s}.steps-grid .step-item:hover{background:#f7f8ff;transform:translateY(-3px)}@media (width<=760px){.student-overview{grid-template-columns:auto 1fr;align-items:flex-start;padding:20px}.student-overview-progress{border-left:0;border-top:1px solid var(--line);grid-column:1/-1;padding:13px 0 0}.student-overview .compact-upload{grid-column:2;justify-self:end;margin-top:-54px}.dashboard-welcome{flex-direction:column;align-items:flex-start;gap:12px}.daily-command{grid-template-columns:auto 1fr;align-items:flex-start;padding:21px}.daily-command .btn{grid-column:1/-1;justify-content:center;justify-self:stretch}.dashboard-journey{grid-template-columns:1fr}.dashboard-stat-grid{grid-template-columns:repeat(2,1fr)}.study-route-grid{grid-template-columns:1fr}.study-route{min-height:auto}.snapshot-heading{flex-direction:column;align-items:flex-start;gap:7px}}@media (width<=520px){.dashboard-stat-grid{grid-template-columns:1fr}.dashboard-footer-actions{flex-direction:column;align-items:flex-start;gap:13px}.past-result-next{flex-direction:column;align-items:flex-start}.daily-command-mark{border-radius:14px;width:42px;height:42px}}
