:root{color:var(--colors-text, #eef7ff);background:var(--colors-bg, #08111f);font-family:SF Pro Text,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;background:radial-gradient(circle at 15% 20%,rgba(136,216,255,.18),transparent 24%),radial-gradient(circle at 84% 14%,rgba(91,148,255,.22),transparent 22%),linear-gradient(180deg,#08111f,#06101d 42%,#04080f)}body{min-height:100vh;color:var(--colors-text, #eef7ff)}button,input,textarea,select{font:inherit}button{border:0;cursor:pointer}.app-shell{position:relative;display:grid;grid-template-columns:320px minmax(0,1fr);min-height:100vh;overflow:hidden}.ambient{position:fixed;pointer-events:none;filter:blur(48px);opacity:.6}.ambient-a{top:6vh;right:10vw;width:26vw;height:26vw;background:radial-gradient(circle,rgba(92,180,255,.36),transparent 70%)}.ambient-b{bottom:10vh;left:20vw;width:30vw;height:30vw;background:radial-gradient(circle,rgba(111,224,184,.16),transparent 70%)}.app-main{position:relative;display:flex;flex-direction:column;gap:18px;padding:22px 24px 24px 0;min-width:0;z-index:1}.glass-panel{position:relative;border:1px solid var(--border-secondary, rgba(193, 229, 255, .14));background:linear-gradient(180deg,rgba(255,255,255,.05) 0%,var(--surface-chrome, rgba(255, 255, 255, .03)) 100%);box-shadow:var(--shadows-soft, 0 24px 80px rgba(0, 0, 0, .28));-webkit-backdrop-filter:blur(28px);backdrop-filter:blur(28px);border-radius:var(--radii-lg, 28px)}.glass-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 24%),linear-gradient(135deg,rgba(255,255,255,.05),transparent 45%);pointer-events:none}.sidebar-rail{margin:18px;padding:22px 18px;display:flex;flex-direction:column;gap:20px;z-index:1}.sidebar-header h2,.top-bar h1,.reading-stage h2,.code-console h2,.review-view h2,.syllabus-view h2,.library-view h2{margin:4px 0 0;font-size:28px;letter-spacing:-.04em}.sidebar-copy,.muted-text,.question-chip-meta,.library-card p{color:var(--colors-muted, #9fb7cb)}.eyebrow{margin:0;color:var(--colors-accent, #88d8ff);font-size:11px;letter-spacing:.18em;text-transform:uppercase}.sidebar-groups{display:flex;flex-direction:column;gap:18px;overflow:auto}.sidebar-group{display:flex;flex-direction:column;gap:10px}.sidebar-year{color:#eef7ffd6;font-size:13px;letter-spacing:.16em;text-transform:uppercase}.question-chip{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:14px 14px 12px;border-radius:var(--radii-md, 20px);background:#ffffff08;color:inherit;border:1px solid transparent;text-align:left;transition:transform .16s ease,border-color .16s ease,background .16s ease}.question-chip:hover,.question-chip.active{transform:translateY(-1px);border-color:#88d8ff52;background:#88d8ff14}.question-chip-label{font-size:12px;color:var(--colors-accent, #88d8ff)}.question-chip-title{font-size:16px;font-weight:600}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px}.top-actions{display:flex;align-items:center;gap:12px}.view-tabs{display:flex;gap:10px}.view-tab,.secondary-button,.primary-button{padding:10px 14px;border-radius:999px;transition:all .16s ease}.view-tab,.secondary-button{background:#ffffff0a;color:var(--colors-text, #eef7ff);border:1px solid rgba(255,255,255,.08)}.view-tab.active,.secondary-button:hover{border-color:#88d8ff66;background:#88d8ff1f}.action-runtime{border-color:var(--border-primary, rgba(136, 216, 255, .34));background:#88d8ff1a}.primary-button{background:linear-gradient(135deg,#88d8ffe6,#5cb4ffeb);color:#04101d;font-weight:700;box-shadow:var(--shadows-focus, 0 0 0 1px rgba(136, 216, 255, .4), 0 18px 60px rgba(22, 112, 168, .18))}.primary-button:hover{transform:translateY(-1px)}.workspace-grid{min-height:0;display:grid;gap:18px;align-items:start}.practice-grid{padding-bottom:8px}.reading-stage,.review-view,.syllabus-view,.library-view,.insight-panel{padding:20px;min-width:0}.code-console{border-color:var(--border-primary, rgba(136, 216, 255, .34));background:radial-gradient(circle at top right,rgba(136,216,255,.14),transparent 28%),linear-gradient(180deg,rgba(17,39,71,.3) 0%,var(--surface-primary, rgba(11, 24, 46, .84)) 100%);box-shadow:var(--shadows-primary, 0 28px 90px rgba(7, 27, 52, .38))}.reading-stage,.insight-panel,.library-view,.syllabus-view{border-color:var(--border-secondary, rgba(168, 191, 218, .16));background:linear-gradient(180deg,rgba(255,255,255,.035) 0%,var(--surface-secondary, rgba(9, 17, 31, .72)) 100%);box-shadow:var(--shadows-secondary, 0 18px 52px rgba(0, 0, 0, .22))}.review-view{border-color:var(--border-reference, rgba(255, 201, 110, .2));background:radial-gradient(circle at top right,rgba(255,201,110,.08),transparent 24%),linear-gradient(180deg,rgba(255,255,255,.03) 0%,var(--surface-reference, rgba(33, 25, 18, .66)) 100%)}.reading-stage,.review-view,.syllabus-view,.library-view{grid-column:1 / span 2}.insight-panel{display:flex;flex-direction:column;gap:14px;min-height:0}.reading-stage-header,.console-header,.card-title-row,.library-card-header,.reading-actions,.modal-header,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.reading-grid,.review-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:18px}.reading-card,.syllabus-card,.library-card{padding:18px;border-radius:var(--radii-md, 20px);background:#070e1a85;border:1px solid var(--border-secondary, rgba(193, 229, 255, .12));box-shadow:inset 0 1px #ffffff09}.library-card{text-align:left;color:inherit}.library-grid,.syllabus-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:18px}.reading-card h3,.syllabus-card h3,.library-card h3{margin:0 0 8px;font-size:18px}.info-tag,.mini-badge,.status-pill,.summary-chip{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;letter-spacing:.02em}.info-tag,.mini-badge{background:#88d8ff14;border:1px solid rgba(136,216,255,.16);color:var(--colors-accent, #88d8ff)}.status-pill{background:#ffc96e1f;border:1px solid rgba(255,201,110,.22);color:var(--colors-warning, #ffc96e)}.status-pill-ready{background:#6fe0b824;border-color:#6fe0b83d;color:var(--colors-success, #6fe0b8)}.status-pill-warning{background:#ffc96e1f;border-color:#ffc96e38;color:var(--colors-warning, #ffc96e)}.badge-student{background:var(--badge-student, rgba(136, 216, 255, .14));border-color:#88d8ff3d;color:var(--text-primary-label, #eff8ff)}.badge-reference{background:var(--badge-reference, rgba(255, 201, 110, .14));border-color:#ffc96e3d;color:var(--colors-warning, #ffc96e)}.badge-runtime{background:var(--badge-runtime, rgba(111, 224, 184, .14));border-color:#6fe0b838;color:var(--colors-success, #6fe0b8)}.tag-list{display:flex;flex-wrap:wrap;gap:8px}.tag-list.compact{gap:6px}.bullet-list,.step-list,.score-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:10px}.parts-list{display:flex;flex-direction:column;gap:12px}.part-item{display:grid;grid-template-columns:36px minmax(0,1fr);gap:12px}.part-item h4{margin:0 0 4px}.part-item p{margin:0;color:var(--colors-muted, #9fb7cb)}.part-label{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:#88d8ff1f;color:var(--colors-accent, #88d8ff);font-weight:700}.pretext-line{display:block;margin-bottom:4px;white-space:pre-wrap}.divider{height:1px;background:#c1e5ff1f;margin:14px 0}.insight-section{padding:16px;border-radius:var(--radii-md, 20px);background:#08101e8f;border:1px solid var(--border-secondary, rgba(193, 229, 255, .12))}.insight-section h3{margin:6px 0 8px;font-size:18px}.step-list{padding-left:18px}.code-console{padding:18px 20px 20px;min-height:48vh}.console-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.self-check-strip{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.self-check-chip{display:inline-flex;align-items:center;padding:7px 12px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(193,229,255,.1);color:var(--text-secondary-label, #cfdeea);font-size:12px;letter-spacing:.02em}.console-body{display:grid;gap:14px;margin-top:16px}.console-editor-grid{display:grid;gap:14px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.console-column{display:flex;flex-direction:column;gap:10px}.console-column-primary .runtime-meta-large{padding:8px 10px 12px;border-radius:18px;background:#88d8ff14;border:1px solid rgba(136,216,255,.16)}.console-column-secondary .runtime-meta-large{padding:8px 10px 12px;border-radius:18px;background:#ffffff08;border:1px solid rgba(193,229,255,.08)}.editor-shell,.runtime-shell{min-height:460px;border-radius:22px;overflow:hidden;border:1px solid rgba(193,229,255,.1)}.editor-shell{background:#050a12d9}.editor-shell-primary{border-color:var(--border-primary, rgba(136, 216, 255, .34));box-shadow:inset 0 0 0 1px #88d8ff14,0 18px 60px #071b3438}.preview-shell{background:radial-gradient(circle at top right,rgba(136,216,255,.05),transparent 34%),#050a12c7;border-color:var(--border-secondary, rgba(168, 191, 218, .16))}.runtime-shell{display:flex;flex-direction:column;gap:8px;padding:10px;background:#050a12bd}.runtime-shell-primary{border-color:var(--border-primary, rgba(136, 216, 255, .34));background:radial-gradient(circle at top right,rgba(136,216,255,.08),transparent 26%),#050a12d1}.runtime-shell-wide{min-height:560px}.runtime-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 6px}.runtime-meta-large{padding:4px 0 10px}.preview-status-stack{display:flex;align-items:center}.preview-support-list{display:flex;flex-wrap:wrap;gap:8px}.info-tag-secondary{background:#ffffff0b;border-color:#c1e5ff1a;color:var(--text-secondary-label, #cfdeea)}.preview-warning-box{padding:12px 14px;border-radius:16px;background:#ffc96e14;border:1px solid rgba(255,201,110,.16)}.preview-warning-box p{margin:0}.preview-warning-box p+p{margin-top:8px}.runtime-frame{border:0;width:100%;flex:1;min-height:420px;border-radius:16px;background:#0d1117}.console-summary{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.summary-chip{background:#ffffff0f;border:1px solid rgba(255,255,255,.08)}.summary-chip-score{background:var(--badge-score, rgba(92, 180, 255, .18));border-color:#5cb4ff47;color:var(--text-primary-label, #eff8ff)}.score-list{list-style:none;padding:0}.score-list li{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;background:#ffffff08}.score-list li.earned{border:1px solid rgba(111,224,184,.24)}.score-list li.missed{border:1px solid rgba(255,140,146,.16)}.reference-code{margin:0;padding:16px;background:#040a12e0;border-radius:18px;overflow:auto;font-family:SF Mono,Menlo,monospace;font-size:13px;line-height:1.55}.full-width{grid-column:1 / -1}.primary-card{background:#0a172bb8;border-color:var(--border-primary, rgba(136, 216, 255, .34))}.secondary-card{background:#08101e8f;border-color:var(--border-secondary, rgba(168, 191, 218, .16))}.reference-card{background:#231a1285;border-color:var(--border-reference, rgba(255, 201, 110, .2))}.reference-code-student{border:1px solid rgba(136,216,255,.18)}.reference-code-reference{border:1px solid rgba(255,201,110,.16);background:#1e1610db}.original-question-copy{margin:0;color:var(--colors-text, #eef7ff);line-height:1.75;white-space:pre-wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:24px;background:#02060e8f;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.modal-shell{width:min(1400px,calc(100vw - 48px));max-height:calc(100vh - 48px);padding:20px;overflow:hidden;display:flex;flex-direction:column;gap:16px}.original-modal{min-height:min(82vh,960px)}.ide-modal{min-height:min(88vh,1040px)}.modal-content{min-height:0;overflow:auto}.original-text-content{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.original-block{min-width:0}.original-block-heading h3{margin:0;font-size:24px}.original-block-note{border-color:#ffc96e33}.pdf-content{display:flex;flex-direction:column;gap:12px}.pdf-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.external-link-button{text-decoration:none}.pdf-frame{border:1px solid rgba(193,229,255,.12);border-radius:20px;background:#070e1ac2;width:100%;min-height:70vh}.empty-state{display:grid;place-items:center;min-height:40vh;border-radius:20px;border:1px dashed rgba(193,229,255,.18);color:var(--colors-muted, #9fb7cb)}.ide-modal-body{min-height:0;display:flex;flex-direction:column;gap:10px}.ide-modal-frame{min-height:74vh}.review-output-block{max-height:260px}.logic-diagram-shell{border-radius:20px;overflow:hidden;border:1px solid rgba(255,201,110,.16);background:#1e1610d6}.logic-diagram-shell svg{display:block;width:100%;height:auto}.review-stack{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.review-stack-section{min-width:0}.onboarding-overlay,.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:24px;background:#02060eb3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.onboarding-modal,.help-panel{width:min(600px,calc(100vw - 48px));max-height:calc(100vh - 48px);padding:32px;display:flex;flex-direction:column;gap:24px}.help-panel{width:min(800px,calc(100vw - 48px));padding:24px 32px 32px}.onboarding-header{display:flex;flex-direction:column;align-items:center;gap:16px}.help-header{display:flex;justify-content:space-between;align-items:center}.help-header h2{margin:0;font-size:24px}.help-close{background:transparent;color:var(--colors-muted, #9fb7cb);font-size:20px;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;transition:all .2s}.help-close:hover{background:#ffffff1a;color:var(--colors-text, #eef7ff)}.language-toggle{display:flex;background:#ffffff0d;border-radius:999px;padding:4px}.lang-btn{background:transparent;color:var(--colors-muted, #9fb7cb);border-radius:999px;padding:6px 16px;font-size:14px;transition:all .2s}.lang-btn.active{background:#88d8ff26;color:var(--colors-accent, #88d8ff)}.onboarding-progress{display:flex;gap:8px}.progress-dot{width:8px;height:8px;border-radius:50%;background:#fff3;transition:all .3s;padding:0}.progress-dot.active{width:24px;border-radius:4px;background:var(--colors-accent, #88d8ff)}.progress-dot.done{background:#88d8ff80}.onboarding-body{text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px;min-height:220px}.onboarding-icon{font-size:64px;margin-bottom:8px}.onboarding-title{margin:0;font-size:28px;color:var(--colors-text, #eef7ff)}.onboarding-subtitle{margin:0;font-size:16px;color:var(--colors-accent, #88d8ff);text-transform:uppercase;letter-spacing:.1em}.onboarding-content{margin:0;font-size:16px;line-height:1.6;color:var(--colors-muted, #9fb7cb);max-width:480px}.help-content{overflow-y:auto;display:flex;flex-direction:column;gap:24px;padding-right:12px}.help-section h3{margin:0 0 16px;color:var(--colors-accent, #88d8ff);font-size:18px;border-bottom:1px solid rgba(136,216,255,.2);padding-bottom:8px}.help-items{display:grid;gap:16px}.help-item h4{margin:0 0 8px;color:var(--colors-text, #eef7ff);font-size:16px}.help-item p{margin:0;color:var(--colors-muted, #9fb7cb);line-height:1.5;font-size:14px}.onboarding-footer,.help-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid rgba(193,229,255,.1)}.help-footer{justify-content:flex-end}.reload-prompt-container{position:fixed;bottom:24px;right:24px;z-index:100;padding:16px;background:#0a172be6;border:1px solid rgba(136,216,255,.3);box-shadow:0 8px 32px #0006;border-radius:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.reload-prompt-content{display:flex;align-items:center;gap:12px}.reload-prompt-message{color:var(--colors-text, #eef7ff);font-size:14px}@media (max-width: 1280px){.app-shell{grid-template-columns:1fr}.sidebar-rail{margin:18px 18px 0}.app-main{padding:0 18px 18px}.workspace-grid{grid-template-columns:1fr!important}.reading-stage,.review-view,.syllabus-view,.library-view,.insight-panel{grid-column:auto}.console-editor-grid,.reading-grid,.review-grid,.review-stack,.original-text-content{grid-template-columns:1fr}.top-bar,.modal-header{flex-direction:column;align-items:flex-start}.top-actions,.modal-actions,.reading-actions{width:100%;flex-wrap:wrap}}
