:root{--bg:#0f172a;--surface:#172033;--surface-strong:#1e3a5f;--text:#e5e7eb;--muted:#a8b3c7;--border:#334155;--brand:#60a5fa;--brand-dark:#93c5fd;--danger:#fecaca;--danger-bg:#7f1d1d;--shadow:0 16px 45px #00000059;--radius:8px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}html{min-width:320px}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,select,textarea{font:inherit}a{color:inherit}#root{min-height:100vh}.app-shell{width:min(1180px,100%);min-height:100vh;color:var(--text);background:var(--bg);margin:0 auto;padding:20px}.theme-dark{--bg:#0f172a;--surface:#172033;--surface-strong:#1e3a5f;--surface-soft:#111827;--text:#e5e7eb;--muted:#a8b3c7;--border:#334155;--brand:#60a5fa;--brand-dark:#93c5fd;--danger:#fecaca;--danger-bg:#7f1d1d;--shadow:0 16px 45px #00000059;--code-surface:#0b1220;--code-text:#dbeafe;--success-surface:#052e2b;--success-border:#0f766e;--warning-surface:#3b2f0a;--warning-border:#a16207;--info-surface:#10284a;--info-border:#2563eb}.theme-light{--bg:#f7f8fb;--surface:#fff;--surface-strong:#eef4ff;--surface-soft:#f8fafc;--text:#1f2937;--muted:#64748b;--border:#d8dee9;--brand:#2563eb;--brand-dark:#1d4ed8;--danger:#b42318;--danger-bg:#fee4e2;--shadow:0 12px 35px #0f172a14;--code-surface:#f8fafc;--code-text:#0f172a;--success-surface:#ecfdf5;--success-border:#a7f3d0;--warning-surface:#fffbeb;--warning-border:#fde68a;--info-surface:#eff6ff;--info-border:#bfdbfe}.site-header{z-index:5;border:1px solid var(--border);border-radius:var(--radius);background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:18px;padding:14px;display:flex;position:sticky;top:0}.brand{flex:none;align-items:center;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{border-radius:var(--radius);width:42px;height:42px;color:var(--bg);background:var(--brand);place-items:center;font-weight:800;display:grid}.brand strong,.brand small{display:block}.brand strong{line-height:1.1}.brand small{color:var(--muted);font-size:.82rem}.main-nav{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.main-nav a{border-radius:var(--radius);min-height:38px;color:var(--muted);border:1px solid #0000;padding:8px 12px;font-size:.92rem;font-weight:700;text-decoration:none}.main-nav a:hover,.main-nav a:focus-visible,.main-nav a.active{border-color:var(--info-border);color:var(--brand-dark);background:var(--surface-strong);outline:none}.nav-short{display:none}main{padding:24px 0}.page-hero{gap:6px;margin-bottom:18px;padding:26px 4px 10px;display:grid}.page-hero p,.card-label{color:var(--brand-dark);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}h1,h2,p{margin-top:0}h1{letter-spacing:0;max-width:760px;margin-bottom:0;font-size:clamp(2rem,5vw,3.8rem);line-height:1.05}h2{margin-bottom:10px;font-size:1.24rem;line-height:1.2}p{color:var(--muted)}.content-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.home-page,.about-page{gap:16px;display:grid}.about-page{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero{border:1px solid var(--info-border);border-radius:var(--radius);background:linear-gradient(135deg, var(--surface-strong), var(--surface)), var(--surface);gap:16px;padding:34px;display:grid}.home-hero h2{max-width:760px;color:var(--text);margin-bottom:0;font-size:clamp(2.2rem,6vw,4.8rem);line-height:1}.home-hero p:not(.card-label){max-width:780px;font-size:1.12rem}.hero-actions{flex-wrap:wrap;gap:10px;display:flex}.panel,.stat-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:22px}.wide{grid-column:1/-1}.quick-actions,.tag-list{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.button{border:1px solid var(--border);border-radius:var(--radius);min-height:42px;color:var(--text);background:var(--surface);cursor:pointer;justify-content:center;align-items:center;padding:9px 14px;font-weight:800;text-decoration:none;display:inline-flex}.button:hover,.button:focus-visible{border-color:var(--brand);outline:none}.button.primary{border-color:var(--brand);color:var(--bg);background:var(--brand)}.button.primary:hover,.button.primary:focus-visible{background:var(--brand-dark)}.button.danger{border-color:var(--danger-bg);color:var(--danger);background:var(--danger-bg);margin-top:18px}.button:disabled{cursor:not-allowed;opacity:.62}.segmented-control{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.segmented-control button{border:1px solid var(--border);border-radius:var(--radius);min-height:42px;color:var(--muted);background:var(--surface);cursor:pointer;padding:9px 14px;font-weight:800}.segmented-control button.active,.segmented-control button:hover,.segmented-control button:focus-visible{border-color:var(--brand);color:var(--bg);background:var(--brand);outline:none}.settings-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);gap:10px;margin-top:18px;padding:16px;display:grid}.settings-group h3,.settings-group p{margin:0}.settings-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.danger-zone{border-color:var(--danger-bg)}.status-message{border:1px solid var(--success-border);border-radius:var(--radius);color:var(--text);background:var(--success-surface);padding:10px 12px;font-weight:700}.status-message.error{border-color:var(--danger-bg);color:var(--danger);background:color-mix(in srgb, var(--danger-bg) 40%, var(--surface))}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.checklist{gap:10px;margin:18px 0 0;padding:0;list-style:none;display:grid}.checklist li{border-radius:var(--radius);background:var(--surface-soft);color:var(--text);padding:12px 14px;font-weight:650}.prompt-card{align-content:start;gap:12px;display:grid}.tag{color:var(--brand-dark);background:var(--surface-strong);border-radius:999px;padding:8px 12px;font-weight:800}.stat-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.mini-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.stat-card{gap:10px;display:grid}.stat-card span{color:var(--muted);font-weight:700}.stat-card strong{color:var(--brand-dark);font-size:2.2rem;line-height:1}.practice-engine,.question-panel,.end-lab-page{gap:16px;display:grid}.practice-topbar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.practice-topbar span{color:var(--muted);font-weight:800}.question-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:22px}.question-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.difficulty-pill{color:var(--text);background:var(--success-surface);text-transform:capitalize;border-radius:999px;flex:none;padding:6px 10px;font-size:.82rem;font-weight:800}.question-prompt{font-size:1.08rem}.starter-code,.code-answer textarea{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--code-text);background:var(--code-surface);font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.92rem;line-height:1.55}.starter-code{margin:0;padding:16px;overflow-x:auto}.code-answer{gap:8px;display:grid}.code-answer span,.choice-list legend{color:var(--text);font-weight:800}.code-answer textarea{resize:vertical;min-height:220px;padding:14px}.choice-list{border:0;gap:10px;margin:0;padding:0;display:grid}.choice-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);cursor:pointer;align-items:flex-start;gap:10px;padding:13px 14px;display:flex}.choice-option:has(input:checked){border-color:var(--brand);background:var(--surface-strong)}.choice-option input{margin-top:4px}.practice-actions{flex-wrap:wrap;gap:10px;display:flex}.hint-panel,.feedback-panel{border-radius:var(--radius);gap:8px;padding:16px;display:grid}.hint-panel{border:1px solid var(--warning-border);background:var(--warning-surface)}.hint-panel p,.feedback-panel p{margin-bottom:0}.feedback-panel.correct{border:1px solid var(--success-border);background:var(--success-surface)}.feedback-panel.incorrect{border:1px solid var(--danger-bg);background:color-mix(in srgb, var(--danger-bg) 50%, var(--surface))}.solution-panel{border:1px solid var(--info-border);border-radius:var(--radius);background:var(--info-surface);gap:12px;padding:16px;display:grid}.solution-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.solution-header h2{margin-bottom:0}.solution-panel pre{border:1px solid var(--border);border-radius:var(--radius);color:var(--code-text);background:var(--code-surface);margin:0;padding:14px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.92rem;line-height:1.55;overflow-x:auto}.solution-panel p{color:var(--brand-dark);margin-bottom:0;font-weight:800}.visualizer-panel{border:1px solid var(--info-border);border-radius:var(--radius);background:var(--info-surface);gap:12px;padding:16px;display:grid}.visualizer-panel h3{margin:0;font-size:1rem}.array-visualizer{flex-wrap:wrap;gap:8px;display:flex}.array-cell{border:1px solid var(--brand);border-radius:var(--radius);text-align:center;background:var(--surface);min-width:82px;overflow:hidden}.array-cell span,.array-cell strong{padding:8px;display:block}.array-cell span{color:var(--muted);background:var(--surface-strong);font-size:.78rem;font-weight:800}.array-cell strong{color:var(--text);font-size:1.05rem}.arraylist-flow{gap:10px;display:grid}.array-visualizer.growable .array-cell{border-color:var(--success-border)}.array-visualizer.growable .array-cell span{background:var(--success-surface)}.add-cell{opacity:.8;border-style:dashed}.add-operation{margin-bottom:0;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-weight:800}.class-visualizer{border:2px solid var(--brand);border-radius:var(--radius);background:var(--surface);max-width:520px;overflow:hidden}.class-visualizer header{color:var(--bg);background:var(--brand);text-align:center;padding:12px;font-weight:900}.class-section{border-top:1px solid var(--border);gap:8px;padding:12px;display:grid}.class-section ul{color:var(--muted);gap:6px;margin:0;padding-left:18px;display:grid}.class-section p{margin-bottom:0}.progress-summary,.cram-plan-page,.daily-summary,.mock-oa-page,.mock-oa-summary,.weak-spots-page,.weak-spot-list{gap:16px;display:grid}.mock-oa-topbar{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);justify-content:space-between;align-items:center;gap:14px;padding:16px;display:flex}.mock-oa-topbar div{gap:2px;display:grid}.mock-oa-topbar span{color:var(--muted);font-weight:800}.mock-oa-topbar time{color:var(--brand-dark);font-size:1.7rem;font-weight:900}.mock-oa-actions{flex-wrap:wrap;gap:10px;display:flex}.question-jump-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;display:grid}.question-jump-grid button{border:1px solid var(--border);border-radius:var(--radius);min-height:42px;color:var(--muted);background:var(--surface);cursor:pointer;font-weight:900}.question-jump-grid button.answered{border-color:var(--success-border);color:var(--text);background:var(--success-surface)}.question-jump-grid button.active{border-color:var(--brand);color:var(--bg);background:var(--brand)}.missed-question-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);gap:8px;padding:16px;display:grid}.mistake-lesson{border:1px solid var(--warning-border);border-radius:var(--radius);background:var(--warning-surface);gap:14px;width:100%;padding:16px;display:grid}.mistake-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.mistake-grid pre,.mistake-explanation pre{border:1px solid var(--warning-border);border-radius:var(--radius);color:var(--code-text);background:var(--code-surface);margin:8px 0 0;padding:12px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.9rem;line-height:1.5;overflow-x:auto}.mistake-explanation{gap:4px;display:grid}.mistake-explanation p,.missed-question-card h3,.missed-question-card p{margin-bottom:0}.recommendation-list{color:var(--muted);gap:8px;margin:12px 0 0;padding-left:20px;font-weight:700;display:grid}.empty-state{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface-soft);gap:10px;margin-top:14px;padding:16px;display:grid}.empty-state.compact{margin-top:16px}.empty-state h3,.empty-state p{margin-bottom:0}.mock-oa-intro{gap:8px;display:grid}.mock-oa-intro span{color:var(--brand-dark);font-weight:900}.study-path{color:var(--muted);gap:10px;margin:16px 0 0;padding-left:24px;font-weight:800;display:grid}.concepts-page{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.concept-card,.keyword-trainer{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);gap:16px;padding:22px;display:grid}.concept-card h2{margin-bottom:0}.concept-example,.concept-warning,.mini-quiz,.decision-result{border-radius:var(--radius);gap:8px;padding:14px;display:grid}.concept-example{background:var(--surface-soft)}.concept-warning{border:1px solid var(--warning-border);background:var(--warning-surface)}.mini-quiz,.decision-result{border:1px solid var(--info-border);background:var(--info-surface)}.concept-example pre,.decision-result pre{border:1px solid var(--border);border-radius:var(--radius);color:var(--code-text);background:var(--code-surface);margin:0;padding:12px;font-family:Cascadia Code,Fira Code,Consolas,monospace;font-size:.9rem;line-height:1.5;overflow-x:auto}.mini-quiz-answer{border-radius:var(--radius);color:var(--text);background:var(--success-surface);padding:10px 12px;font-weight:700}.keyword-trainer{align-content:start}.decision-steps{gap:12px;display:grid}.decision-step{border:1px solid var(--border);border-radius:var(--radius);gap:8px;margin:0;padding:14px;display:grid}.decision-step legend,.value-type-picker span{color:var(--text);font-weight:800}.decision-step label{color:var(--muted);align-items:flex-start;gap:10px;font-weight:700;display:flex}.decision-step input{margin-top:5px}.value-type-picker{gap:8px;display:grid}.value-type-picker select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:42px;padding:8px 10px}.muted-result{border-color:var(--border);background:var(--surface-soft)}.weak-spot-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:16px;display:flex}.weak-spot-card h3{margin:0 0 4px;font-size:1rem}.weak-spot-card p{margin-bottom:0}.weak-spot-card>strong{color:var(--brand-dark);flex:none}@media (width<=900px){.site-header{flex-direction:column;align-items:stretch}.main-nav{justify-content:flex-start}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-stat-grid{grid-template-columns:1fr}}@media (width<=680px){.app-shell{padding:12px}.site-header{position:static}.brand{width:100%}.main-nav{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.main-nav a{text-align:center}.nav-full{display:none}.nav-short{display:inline}.content-grid,.concepts-page,.mistake-grid,.about-page,.stat-grid,.mini-stat-grid{grid-template-columns:1fr}.home-hero{padding:22px}.panel,.stat-card,.question-panel,.concept-card,.keyword-trainer{padding:18px}.practice-topbar,.question-header,.solution-header,.weak-spot-card{flex-direction:column;align-items:stretch}.practice-actions .button{width:100%}.mock-oa-topbar,.mock-oa-actions{flex-direction:column;align-items:stretch}}
