:root{--bg:#f6f7fb;--ink:#263238;--muted:#667085;--line:#d9dee8;--panel:#ffffff;--primary:#2563eb;--primary-dark:#1d4ed8;--mint:#14b8a6;--amber:#f59e0b;--rose:#f43f5e;--code:#111827;--code-ink:#e5e7eb;--console:#0b1220;--console-ink:#e5e7eb;--console-accent:#60a5fa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Noto Sans KR,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.brandButton{background:transparent;border:0;color:inherit;padding:0;text-align:left}.shell{background:var(--bg);color:var(--ink);min-height:100vh;padding:22px}.shell.darkMode{--bg:#0f172a;--ink:#f8fafc;--muted:#cbd5e1;--line:#334155;--panel:#182235;--primary:#60a5fa;--primary-dark:#3b82f6;--code:#0b1120;--code-ink:#f8fafc;--console:#050816;--console-ink:#f8fafc;--console-accent:#60a5fa}.shell.lightMode{--bg:#f6f7fb;--ink:#263238;--muted:#667085;--line:#d9dee8;--panel:#ffffff;--primary:#2563eb;--primary-dark:#1d4ed8;--code:#ffffff;--code-ink:#1f2937;--console:#ffffff;--console-ink:#1f2937;--console-accent:#2563eb}.topbar{gap:18px;justify-content:space-between;margin:0 auto 18px;max-width:1720px}.brand,.topbar{align-items:center;display:flex}.brand{gap:12px;min-width:0}.brandMark{align-items:center;background:var(--primary);border-radius:8px;color:white;display:grid;height:44px;place-items:center;width:44px}.brand span,.brand strong{display:block}.brand strong{font-size:20px}.brand span{color:var(--muted);font-size:13px;margin-top:2px}.modeSwitch{background:color-mix(in srgb,var(--panel) 86%,var(--bg));border:1px solid var(--line);border-radius:8px;display:flex;padding:4px}.ghostButton,.modeSwitch button,.primaryButton{align-items:center;border:0;border-radius:7px;display:inline-flex;gap:7px;justify-content:center;min-height:40px;padding:0 14px;white-space:nowrap}.modeSwitch button{background:transparent;color:var(--muted)}.modeSwitch button.active{background:var(--panel);color:var(--ink);box-shadow:0 2px 8px rgba(15,23,42,.12)}.modeSwitch .logoutNavButton{color:#e11d48}.primaryButton{background:var(--primary);color:white}.primaryButton:hover{background:var(--primary-dark)}.runButton{align-items:center;background:color-mix(in srgb,var(--mint) 14%,var(--panel));border:1px solid color-mix(in srgb,var(--mint) 42%,var(--line));border-radius:7px;color:color-mix(in srgb,var(--mint) 82%,var(--ink));display:inline-flex;font-weight:700;gap:7px;justify-content:center;min-height:40px;padding:0 14px;white-space:nowrap}.runButton:hover:not(:disabled){background:color-mix(in srgb,var(--mint) 23%,var(--panel))}.runButton:disabled{cursor:default;opacity:.6}.resetCodeButton{align-items:center;background:color-mix(in srgb,#f43f5e 12%,var(--panel));border:1px solid color-mix(in srgb,#f43f5e 38%,var(--line));border-radius:7px;color:#e11d48;display:inline-flex;font-weight:700;gap:7px;justify-content:center;min-height:40px;padding:0 14px;white-space:nowrap}.resetCodeButton:hover{background:color-mix(in srgb,#f43f5e 20%,var(--panel));border-color:#fb7185}.darkMode .resetCodeButton{color:#fda4af}.consoleResetButton{align-items:center;background:color-mix(in srgb,#f43f5e 9%,var(--panel));border:1px solid color-mix(in srgb,#f43f5e 32%,var(--line));border-radius:7px;color:#e11d48;display:inline-flex;font-size:13px;font-weight:700;gap:6px;justify-content:center;min-height:34px;padding:0 11px;white-space:nowrap}.consoleResetButton:hover{background:color-mix(in srgb,#f43f5e 17%,var(--panel));border-color:#fb7185}.darkMode .consoleResetButton{color:#fda4af}.primaryButton:disabled{opacity:.65}.ghostButton{background:color-mix(in srgb,var(--panel) 80%,var(--bg));color:var(--ink)}.notice{background:color-mix(in srgb,var(--primary) 16%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--line));border-radius:8px;color:var(--ink);margin:0 auto 18px;max-width:1720px;padding:12px 14px}.choiceView,.practiceView,.teacherView{margin:0 auto;max-width:1180px}.practiceView,.teacherView{max-width:1720px}.choiceView{display:grid;grid-template-rows:auto auto;justify-content:center;align-content:start;min-height:calc(100dvh - 140px);padding-top:clamp(100px,6vh,70px);padding-bottom:24px;box-sizing:border-box}.choiceHeader{text-align:center}.choiceHeader h1,.practiceIntro h1{font-size:38px;letter-spacing:0;line-height:1.2;margin:12px 0 0}.choiceGrid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(260px,420px));margin-top:28px;padding-top:15px}.choiceButton{align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:grid;grid-gap:12px;gap:12px;min-height:220px;padding:28px;text-align:left}.choiceButton:hover{border-color:#93c5fd;box-shadow:0 14px 36px rgba(37,99,235,.14);transform:translateY(-1px)}.choiceButton svg{color:var(--primary)}.choiceButton strong{font-size:28px}.choiceButton span{color:var(--muted);line-height:1.55}.choiceButton.solve{background:color-mix(in srgb,var(--primary) 12%,var(--panel))}.practiceIntro{margin-bottom:18px}.practiceGrid{align-items:stretch;display:grid;grid-gap:0;gap:0;grid-template-columns:minmax(0,var(--practice-editor-share,50fr)) 6px minmax(0,var(--practice-console-share,50fr));min-height:340px}.consolePane,.practiceSide{display:grid;grid-gap:14px;gap:14px;align-content:start}.consolePane{align-content:stretch;background:var(--panel);border:1px solid var(--line);border-radius:8px;gap:0;grid-template-rows:auto minmax(0,1fr);min-width:0;overflow:hidden}.practicePaneResizer{align-items:center;align-self:stretch;background:transparent;border:0;cursor:col-resize;display:flex;justify-content:center;min-height:340px;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.practicePaneResizer span{background:color-mix(in srgb,var(--muted) 60%,transparent);border-radius:999px;height:52px;transition:background .12s ease,height .12s ease,width .12s ease;width:2px}.practicePaneResizer:focus-visible span,.practicePaneResizer:hover span,.resizingPracticePane .practicePaneResizer span{background:var(--primary);height:72px}.practicePaneResizer:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.resizingPracticePane{cursor:col-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.consoleHeader{align-items:center;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;min-height:70px;padding:14px}.consoleHeader span,.consoleHeader strong{display:block}.consoleHeader span{color:var(--muted);font-size:12px}.consoleActions{align-items:center;display:flex;gap:12px}.fontSizeControl{align-items:center;background:color-mix(in srgb,var(--panel) 78%,var(--bg));border:1px solid var(--line);border-radius:7px;display:inline-flex;overflow:hidden}.fontSizeControl button{align-items:center;background:transparent;border:0;color:var(--ink);display:inline-flex;font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;height:32px;justify-content:center;padding:0;width:40px}.fontSizeControl button:hover:not(:disabled){filter:brightness(.96)}.fontSizeControl button:disabled{cursor:default;opacity:.35}.fontSizeControl .fontSizeStepButton{background:color-mix(in srgb,var(--primary) 10%,var(--panel));color:var(--primary)}.fontSizeControl .fontSizeFineButton{background:color-mix(in srgb,var(--muted) 7%,var(--panel));color:var(--ink)}.consoleHeader .fontSizeControl span,.fontSizeControl span{color:var(--muted);font-size:12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:45px;padding:0 6px;text-align:center}.terminal{background:var(--console);color:var(--console-ink);font-family:Consolas,Courier New,monospace;min-height:170px;padding:18px}.terminalScroll{min-height:134px;overflow:visible}.terminal pre{background:transparent;border:0;color:inherit;font-family:Consolas,Courier New,monospace;font-size:inherit;line-height:1.6;min-height:0;padding:0}.terminalInputRow{align-items:center;display:flex;gap:8px;min-height:28px}.terminalInputRow span{color:var(--console-accent);font-family:Consolas,Courier New,monospace;font-weight:800;white-space:pre-wrap}.terminalInputRow textarea{background:transparent;border:0;color:var(--console-ink);flex:1 1;font-family:inherit;font-size:inherit;line-height:1.6;min-height:28px;overflow:hidden;padding:0;resize:none}.terminalInputRow textarea:focus{outline:0}.terminalHint{border-top:1px solid color-mix(in srgb,var(--console-ink) 14%,transparent);color:color-mix(in srgb,var(--console-ink) 58%,transparent);display:flex;flex-wrap:wrap;gap:8px;font-size:inherit;margin-top:12px;padding-top:12px}.terminalHint strong{color:var(--console-ink);flex-basis:100%}.terminalHint span{flex-basis:100%}.terminalHint code{background:color-mix(in srgb,var(--console-ink) 10%,transparent);border:1px solid color-mix(in srgb,var(--console-ink) 16%,transparent);border-radius:6px;color:var(--console-ink);padding:5px 8px}.terminalHint .currentInputValue{border-color:color-mix(in srgb,var(--console-accent) 52%,transparent);color:var(--console-accent)}.inputArea{background:white;border:1px solid var(--line);border-radius:7px;color:var(--ink);min-height:180px;padding:12px;resize:vertical}.outputBox{background:white;border:1px solid var(--line);border-radius:8px;padding:16px}.outputBox strong{display:block;margin-bottom:10px}.solveGrid{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:260px 220px 1fr;margin:0 auto;max-width:1720px;transition:grid-template-columns .18s ease}.solveGrid.bookSidebarCollapsed{grid-template-columns:52px 220px 1fr}.solveGrid.problemListCollapsed{grid-template-columns:260px 52px 1fr}.solveGrid.bookSidebarCollapsed.problemListCollapsed{grid-template-columns:52px 52px 1fr}.sidebar{display:grid;grid-gap:14px;gap:14px;align-content:start}.bookSidebar,.idePane,.loginPanel,.panel,.problemList,.problemPane{background:var(--panel);border:1px solid var(--line);border-radius:8px}.bookSidebar,.loginPanel,.problemList{padding:16px}.solveGrid .bookSidebar,.solveGrid .problemList{padding:12px}.solveGrid .sectionTitle{font-size:14px;margin-bottom:9px}.solveGrid .bookSidebar,.solveGrid .problemList{gap:6px}.solveGrid .bookItem{gap:1px;grid-template-columns:28px 1fr;padding:9px}.solveGrid .bookItem strong{font-size:13px}.solveGrid .bookItem em{font-size:10px}.solveGrid .problemGroups{gap:7px}.solveGrid .problemGroupHeader{gap:6px;padding:8px}.solveGrid .problemGroupHeader>div>strong,.solveGrid .problemItem strong{font-size:11px}.solveGrid .problemGroupHeader>div>em{font-size:9px}.solveGrid .problemGroupItems{gap:5px;padding:6px}.solveGrid .problemItem{grid-template-columns:28px 1fr;padding:8px}.sectionTitle{align-items:center;display:flex;font-weight:800;gap:8px;margin-bottom:14px}.collapsibleTitle{justify-content:space-between}.collapsibleTitle>span{align-items:center;display:inline-flex;gap:8px}.collapsibleTitle .iconButton{flex:0 0 auto}.collapsedSidebarButton{align-items:center;align-self:start;background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);display:flex;flex-direction:column;gap:8px;min-height:128px;padding:14px 8px}.collapsedSidebarButton:hover{border-color:color-mix(in srgb,var(--primary) 55%,var(--line));color:var(--primary)}.collapsedSidebarButton span{font-size:12px;font-weight:800;writing-mode:vertical-rl}label{color:var(--muted);display:grid;font-size:13px;grid-gap:6px;gap:6px;margin-bottom:10px}input{background:var(--panel);border:1px solid var(--line);border-radius:7px;color:var(--ink);height:42px;padding:0 12px}input:focus,textarea:focus{border-color:var(--primary);outline:3px solid rgba(37,99,235,.16)}.helperText{color:var(--muted);font-size:12px;line-height:1.55;margin:12px 0 0}.problemList{display:grid;grid-gap:8px;gap:8px;align-content:start;max-height:calc(100vh - 110px);overflow:auto}.problemGroups{display:grid;grid-gap:9px;gap:9px}.problemGroup{border:1px solid var(--line);border-radius:8px;overflow:hidden}.problemGroup.containsSelected{border-color:color-mix(in srgb,var(--primary) 42%,var(--line))}.problemGroupHeader{align-items:center;background:linear-gradient(to right,color-mix(in srgb,#10b981 18%,var(--panel)) 0 var(--progress,0),transparent var(--progress,0) 100%),color-mix(in srgb,var(--panel) 82%,var(--bg));border:0;color:var(--ink);display:grid;grid-gap:8px;gap:8px;grid-template-columns:auto minmax(0,1fr) auto;padding:11px 10px;text-align:left;width:100%}.problemGroupHeader:hover{filter:brightness(.98)}.problemGroupHeader>span{color:var(--primary);font-size:13px;font-weight:850}.problemGroupHeader>div{display:grid;grid-gap:3px;gap:3px;min-width:0}.problemGroupHeader>div>strong{font-size:13px;line-height:1.35;min-width:0}.problemGroupHeader>div>em{color:var(--muted);font-size:11px;font-style:normal;white-space:nowrap}.problemGroupHeader>svg{color:var(--muted);transition:transform .16s ease}.problemGroupHeader[aria-expanded=true]>svg{transform:rotate(180deg)}.problemGroupItems{border-top:1px solid var(--line);display:grid;grid-gap:7px;gap:7px;padding:8px}.bookSidebar{display:grid;grid-gap:8px;gap:8px;align-content:start;max-height:calc(100vh - 110px);overflow:auto}.bookItem{background:linear-gradient(to right,color-mix(in srgb,#10b981 18%,white) 0 var(--progress,0),transparent var(--progress,0) 100%),#f8fafc;border:1px solid var(--line);border-radius:7px;color:var(--ink);display:grid;grid-gap:2px;gap:2px;grid-template-columns:34px 1fr;padding:12px;text-align:left}.bookItem span{color:var(--primary);font-weight:800;grid-row:span 2}.bookItem em{color:var(--muted);font-size:12px;font-style:normal}.bookItem.active{background:linear-gradient(to right,color-mix(in srgb,#10b981 20%,#eff6ff) 0 var(--progress,0),transparent var(--progress,0) 100%),#eff6ff;border-color:#93c5fd}.problemItem{background:#f8fafc;border:1px solid var(--line);border-radius:7px;color:var(--ink);display:grid;grid-gap:2px;gap:2px;grid-template-columns:34px 1fr;padding:12px;text-align:left;width:100%}.problemItem span{color:var(--primary);font-weight:800;grid-row:span 2}.problemItem strong{font-size:13px;line-height:1.35}.problemItem em{color:var(--muted);font-size:12px;font-style:normal}.problemItem.active{background:#eff6ff;border-color:#93c5fd}.problemItem.solved{background:#ecfdf5;border-color:#6ee7b7}.problemItem.solved span,.problemItem.solved strong{color:#047857}.problemItem.solved.active{box-shadow:inset 0 0 0 1px #10b981}.darkMode .bookItem,.darkMode .problemItem{background:color-mix(in srgb,var(--panel) 84%,var(--bg))}.darkMode .bookItem,.darkMode .problemGroupHeader{background:linear-gradient(to right,color-mix(in srgb,#10b981 20%,var(--panel)) 0 var(--progress,0),transparent var(--progress,0) 100%),color-mix(in srgb,var(--panel) 84%,var(--bg))}.darkMode .bookItem.active,.darkMode .problemItem.active{background:color-mix(in srgb,var(--primary) 18%,var(--panel));border-color:color-mix(in srgb,var(--primary) 58%,var(--line))}.darkMode .bookItem.active{background:linear-gradient(to right,color-mix(in srgb,#10b981 24%,var(--panel)) 0 var(--progress,0),transparent var(--progress,0) 100%),color-mix(in srgb,var(--primary) 18%,var(--panel))}.darkMode .problemItem.solved{background:color-mix(in srgb,#10b981 16%,var(--panel));border-color:color-mix(in srgb,#10b981 52%,var(--line))}.darkMode .problemItem.solved span,.darkMode .problemItem.solved strong{color:#6ee7b7}.workspace{align-items:start;display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(360px,.92fr) minmax(420px,1.08fr);min-width:0}.idePane,.problemPane{min-width:0;overflow:hidden}.problemPane{padding:28px}.problemHeader{align-items:flex-start;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:18px}.level,.pill{border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;padding:5px 10px}.pill{background:#e0f2fe;color:#0369a1}.level.start{background:#dcfce7;color:#166534}.level.practice{background:#fef3c7;color:#92400e}.level.challenge{background:#ffe4e6;color:#9f1239}h1,h2,p{margin-top:0}.dashboardHeader h1,.problemHeader h1{font-size:34px;letter-spacing:0;line-height:1.15;margin:8px 0 0}.problemHeader h1{font-size:clamp(24px,1.7vw,30px);max-width:calc(100% - 164px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.problemNavigation{align-items:center;background:color-mix(in srgb,var(--primary) 5%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));border-radius:12px;display:flex;flex:0 0 auto;gap:5px;padding:4px}.problemNavigationButton{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--muted);display:inline-flex;height:36px;justify-content:center;padding:0;position:relative;transition:background-color .16s ease,color .16s ease,transform .16s ease;width:38px}.problemNavigationButton:focus-visible,.problemNavigationButton:hover:not(:disabled){background:var(--panel);color:var(--primary);outline:none;transform:translateY(-1px)}.problemNavigationButton:disabled{cursor:not-allowed;opacity:.3}.problemNavigationButton+.problemNavigationButton{border-left:1px solid color-mix(in srgb,var(--line) 75%,transparent)}.problemNavigationButton.autoAdvanceButton.active{background:var(--primary);color:white;box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 28%,transparent)}.problemNavigationButton[data-tooltip]:after{background:#111827;border-radius:7px;color:#ffffff;content:attr(data-tooltip);font-size:11px;font-weight:700;opacity:0;padding:6px 8px;pointer-events:none;position:absolute;right:0;top:calc(100% + 9px);transform:translateY(-3px);transition:opacity .14s ease,transform .14s ease;visibility:hidden;white-space:nowrap;z-index:5}.problemNavigationButton[data-tooltip]:focus-visible:after,.problemNavigationButton[data-tooltip]:hover:after{opacity:1;transform:translateY(0);visibility:visible}.problemBlock{border-bottom:1px solid var(--line);margin-bottom:22px;padding-bottom:18px}.exampleBox h2,.panel h2,.problemBlock h2{font-size:21px;margin-bottom:12px}.panel p,.problemBlock p{color:var(--muted);line-height:1.3;white-space:pre-wrap}.descriptionGrid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:22px}.descriptionGrid .problemBlock{background:color-mix(in srgb,var(--panel) 82%,var(--bg));border:1px solid var(--line);border-radius:8px;margin:0;min-width:0;padding:16px}.descriptionGrid .problemBlock h2{font-size:18px}.descriptionGrid .problemBlock p{margin-bottom:0}.exampleBox{margin-bottom:18px}.exampleList{display:grid;grid-gap:14px;gap:14px}.exampleCase{min-width:0}.exampleCase+.exampleCase{border-top:1px solid var(--line);padding-top:14px}.exampleCase h3{color:var(--muted);font-size:14px;margin:0 0 8px}.ioGrid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr 1fr}.ioGrid strong{display:block;margin-bottom:8px}pre{background:#f3f4f6;border:1px solid #e5e7eb;border-radius:7px;margin:0;min-height:54px;overflow:auto;padding:14px;white-space:pre-wrap}.darkMode pre{background:color-mix(in srgb,var(--panel) 72%,#020617);border-color:var(--line);color:var(--ink)}.hint{align-items:flex-start;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#78350f;display:flex;gap:9px;line-height:1.5;padding:12px;white-space:pre-wrap}.darkMode .hint{background:color-mix(in srgb,#f59e0b 16%,var(--panel));border-color:color-mix(in srgb,#f59e0b 38%,var(--line));color:#fde68a}.idePane{display:grid;grid-template-rows:auto minmax(340px,1fr)}.workspace>.idePane{align-self:start;grid-template-rows:auto auto}.ideHeader{align-items:center;border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;padding:14px}.ideHeader span,.ideHeader strong{display:block}.ideHeader span{color:var(--muted);font-size:12px;margin-top:2px}.ideActions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.solveIdeBody{display:grid;grid-template-rows:minmax(210px,calc(var(--solve-editor-height, 156px) + 54px)) 10px minmax(143px,1fr);height:clamp(363px,calc(100dvh - 170px),760px);min-height:0;min-width:0}.submissionToast{animation:submissionToastIn .3s ease-out both;background:var(--panel);border:1px solid #fda4af;border-left:5px solid #e11d48;border-radius:10px;box-shadow:0 16px 38px rgba(15,23,42,.2);color:var(--ink);min-width:300px;padding:18px;position:fixed;right:24px;top:150px;width:min(360px,calc(100vw - 32px));z-index:30}.geminiHelp{align-items:flex-end;bottom:24px;display:flex;flex-direction:column;gap:10px;position:fixed;right:24px;z-index:29}.geminiHelpBubble,.geminiHelpNotice{animation:geminiHelpIn .26s ease-out both;background:var(--panel);border:1px solid color-mix(in srgb,var(--primary) 32%,var(--line));box-shadow:0 12px 30px rgba(15,23,42,.16);color:var(--ink)}.geminiHelpBubble{border-radius:14px 14px 3px 14px;font-size:15px;font-weight:800;padding:11px 14px;position:relative}.geminiHelpNotice{border-radius:10px;color:var(--muted);font-size:13px;line-height:1.5;max-width:min(360px,calc(100vw - 32px));padding:11px 13px}.geminiHelpButton{align-items:center;background:linear-gradient(135deg,#2563eb,#6366f1 48%,#a855f7);border:3px solid color-mix(in srgb,var(--panel) 88%,transparent);border-radius:999px;box-shadow:0 12px 28px rgba(37,99,235,.32),0 0 0 1px color-mix(in srgb,var(--primary) 28%,transparent);color:#ffffff;display:grid;font-size:10px;font-weight:800;height:68px;line-height:1;place-content:center;grid-row-gap:4px;row-gap:4px;transition:box-shadow .16s ease,transform .16s ease;width:68px}.geminiHelpButton:hover{box-shadow:0 16px 34px rgba(37,99,235,.4),0 0 0 4px color-mix(in srgb,var(--primary) 15%,transparent);transform:translateY(-2px)}.geminiHelpButton:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 38%,transparent);outline-offset:3px}.geminiHelpButton span{display:block}@keyframes geminiHelpIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.submissionToast.closing{animation:submissionToastOut .3s ease-in both}.submissionToast.accepted{border-color:#6ee7b7 #6ee7b7 #6ee7b7 #10b981}.submissionToast.codeRequirementFailed{border-color:#fdba74 #fdba74 #fdba74 #f97316}.submissionToastClose{align-items:center;background:transparent;border:0;color:var(--muted);display:flex;padding:4px;position:absolute;right:9px;top:9px}.submissionToastTitle{align-items:center;color:#be123c;display:flex;font-size:18px;gap:8px;padding-right:28px}.submissionToast.accepted .submissionToastTitle{color:#047857}.submissionToast.codeRequirementFailed .submissionToastTitle{color:#c2410c}.submissionToast p{color:var(--muted);line-height:1.55;margin:10px 0 14px}.submissionToast p b{color:var(--ink)}.submissionToast .codeRequirementNotice{color:#c2410c;font-weight:750;margin-top:-6px}.submissionToastConfirm{background:#fff1f2;border:1px solid #fda4af;border-radius:7px;color:#be123c;font-weight:750;min-height:36px;width:100%}.submissionToast.accepted .submissionToastConfirm{background:#ecfdf5;border-color:#6ee7b7;color:#047857}.submissionToast.codeRequirementFailed .submissionToastConfirm{background:#fff7ed;border-color:#fdba74;color:#c2410c}.darkMode .submissionToast{background:var(--panel);border-color:color-mix(in srgb,#e11d48 52%,var(--line))}.darkMode .submissionToast.accepted{border-color:color-mix(in srgb,#10b981 58%,var(--line))}.darkMode .submissionToast.codeRequirementFailed{border-color:color-mix(in srgb,#f97316 52%,var(--line))}.darkMode .submissionToastConfirm,.darkMode .submissionToastTitle{color:#fda4af}.darkMode .submissionToast.accepted .submissionToastConfirm,.darkMode .submissionToast.accepted .submissionToastTitle{color:#6ee7b7}.darkMode .submissionToast.codeRequirementFailed .codeRequirementNotice,.darkMode .submissionToast.codeRequirementFailed .submissionToastConfirm,.darkMode .submissionToast.codeRequirementFailed .submissionToastTitle{color:#fdba74}@keyframes submissionToastIn{0%{opacity:0;transform:translateX(calc(100% + 32px))}to{opacity:1;transform:translateX(0)}}@keyframes submissionToastOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(calc(100% + 32px))}}@media (max-width:640px){.geminiHelp{bottom:16px;right:16px}.geminiHelpButton{height:62px;width:62px}}.solveConsoleSection,.solveEditorSection{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;min-width:0}.solveEditorSection{min-height:0}.solveSectionHeader{align-items:center;background:color-mix(in srgb,var(--panel) 88%,var(--bg));border-bottom:1px solid var(--line);display:flex;gap:12px;justify-content:space-between;min-height:54px;padding:10px 12px}.solveSectionHeader .consoleActions{flex-wrap:wrap;justify-content:flex-end}.solveSectionHeader .consoleActions>span{color:var(--muted);font-size:12px}.solveEditorSection .cm-content,.solveEditorSection .cm-editor,.solveEditorSection .cm-scroller{height:100%;max-height:none;min-height:0}.solveEditorSection .cm-content{line-height:1.35}.solveEditorSection .cm-scroller{overflow:auto}.solvePaneResizer{align-items:center;background:color-mix(in srgb,var(--panel) 78%,var(--bg));border-bottom:1px solid var(--line);border-top:1px solid var(--line);cursor:row-resize;display:flex;justify-content:center;touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.solvePaneResizer span{background:color-mix(in srgb,var(--muted) 60%,transparent);border-radius:999px;height:3px;transition:background .12s ease,width .12s ease;width:44px}.resizingSolvePane .solvePaneResizer span,.solvePaneResizer:focus-visible span,.solvePaneResizer:hover span{background:var(--primary);width:64px}.solvePaneResizer:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.resizingSolvePane{cursor:row-resize;-webkit-user-select:none;-moz-user-select:none;user-select:none}.solveTerminal{height:100%;min-height:0}.solveTerminal .terminalScroll{min-height:0;overflow:auto}.solveGrid .ideHeader{padding:10px 12px}.solveGrid .ideHeader .ghostButton,.solveGrid .ideHeader .primaryButton,.solveGrid .ideHeader .runButton{font-size:13px;min-height:32px;padding:0 10px}.cm-editor{background:var(--code)!important;color:var(--code-ink);min-height:340px}.practiceGrid .idePane{align-self:stretch;grid-template-rows:auto minmax(0,1fr);min-width:0}.practiceGrid .cm-content,.practiceGrid .cm-editor,.practiceGrid .cm-scroller{height:auto;max-height:none;min-height:340px}.practiceGrid .cm-scroller{overflow:visible}.cm-scroller{background:var(--code)!important;font-family:Consolas,Courier New,monospace}kbd{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);border-radius:5px;font-size:11px;font-weight:800;padding:2px 6px}.solveGrid .compactShortcut{background:color-mix(in srgb,currentColor 10%,transparent);border-color:color-mix(in srgb,currentColor 24%,transparent);font-size:9px;font-weight:700;letter-spacing:-.2px;padding:1px 4px}.dashboardHeader{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:12px}.dashboardTitle{background:color-mix(in srgb,var(--primary) 13%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 28%,var(--line));border-radius:8px;color:var(--primary);font-size:20px;padding:8px 13px}.dashboardActions,.modalActions{align-items:center;display:flex;gap:8px;justify-content:flex-end}.metrics{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(4,1fr);margin-bottom:12px}.metric{background:var(--panel);border:1px solid var(--line);border-radius:8px;color:var(--ink);align-items:center;display:flex;gap:10px;justify-content:center;padding:11px 14px}.metric span{color:var(--muted);display:inline;font-size:13px;margin-bottom:0}.metric strong{font-size:22px}.teacherGrid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:.9fr 1.1fr}.panel{padding:20px}.teacherView>.panel{padding:14px 16px}.roadmap{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,1fr);margin-bottom:16px}.roadmap span{background:#f1f5f9;border:1px solid var(--line);border-radius:7px;font-size:13px;font-weight:800;padding:12px;text-align:center}.submissionTable{display:grid;grid-gap:8px;gap:8px}.submissionRow{align-items:center;background:color-mix(in srgb,var(--panel) 82%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);display:grid;grid-gap:10px;gap:10px;grid-template-columns:1fr 1.1fr 54px;padding:12px}.submissionRow span{color:var(--muted)}.submissionRow b{text-align:right}.submissionRow .ok{color:#047857}.submissionRow .wait{color:#b45309}.submissionOverviewHeader{align-items:center;display:flex;gap:18px;justify-content:space-between;margin-bottom:12px}.sectionChip{background:color-mix(in srgb,var(--primary) 13%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 25%,var(--line));border-radius:7px;color:var(--primary);display:inline-flex;font-size:14px;padding:7px 10px;white-space:nowrap}.dashboardFilters{align-items:center;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.dashboardFilters label{align-items:center;display:flex;font-size:12px;gap:7px;margin:0}.dashboardFilters label>span{background:color-mix(in srgb,var(--primary) 10%,var(--panel));border-radius:6px;color:var(--primary);font-weight:800;padding:6px 8px;white-space:nowrap}.dashboardFilters select{background:color-mix(in srgb,var(--panel) 84%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);min-width:108px;padding:7px 9px}.dashboardFilters .subgroupSelect{max-width:205px;min-width:205px;width:205px}.filterSelectControl{align-items:stretch;display:flex;gap:4px;min-width:0}.filterStepButtons{display:grid;flex:0 0 24px;grid-gap:2px;gap:2px;grid-template-rows:repeat(2,1fr)}.filterStepButtons button{align-items:center;background:color-mix(in srgb,var(--primary) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:5px;color:var(--primary);display:inline-flex;justify-content:center;min-height:0;padding:0;width:24px}.filterStepButtons button:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 16%,var(--panel));border-color:color-mix(in srgb,var(--primary) 42%,var(--line))}.filterStepButtons button:disabled{cursor:default;opacity:.3}.studentOverviewModal{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 80px rgba(15,23,42,.28);color:var(--ink);max-height:calc(100vh - 48px);max-width:1400px;overflow:hidden;padding:24px;position:relative;width:100%}.studentOverviewHeader{align-items:flex-end;display:flex;gap:18px;justify-content:space-between;margin-bottom:16px}.studentOverviewHeader h2{margin:8px 0 0}.studentOverviewHeader label{color:var(--muted);display:grid;font-size:12px;grid-gap:5px;gap:5px}.studentOverviewHeader select{background:color-mix(in srgb,var(--panel) 84%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);min-width:210px;padding:9px 10px}.studentOverviewMetrics{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(4,1fr)}.studentOverviewMetrics .metric{background:color-mix(in srgb,var(--panel) 82%,var(--bg));padding:14px}.studentOverviewMetrics .metric strong{font-size:24px}.currentLearningSummary{background:color-mix(in srgb,var(--primary) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 22%,var(--line));border-radius:8px;display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr 1fr;margin:12px 0;padding:14px 16px}.currentLearningSummary div{display:grid;grid-gap:5px;gap:5px}.currentLearningSummary span{color:var(--muted);font-size:12px}.currentLearningSummary strong{color:var(--ink)}.studentWorkbookList{display:grid;grid-gap:9px;gap:9px;max-height:calc(100vh - 330px);overflow-y:auto;padding-right:4px}.studentWorkbookRow{background:color-mix(in srgb,var(--panel) 86%,var(--bg));border:1px solid var(--line);border-radius:8px;padding:13px 14px}.studentWorkbookHeading,.studentWorkbookTitle{align-items:center;display:flex;gap:9px}.studentWorkbookHeading{justify-content:flex-start}.studentWorkbookCounts{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:14px;gap:8px 28px;margin-left:24px}.studentWorkbookCounts b{color:var(--ink);font-size:16px}.studentWorkbookCounts .wrongCount,.studentWorkbookCounts .wrongCount b{color:var(--rose)}.workbookState{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:11px;font-weight:800;padding:3px 7px;white-space:nowrap}.workbookState.active{background:color-mix(in srgb,var(--primary) 10%,var(--panel));border-color:color-mix(in srgb,var(--primary) 28%,var(--line));color:var(--primary)}.workbookState.complete{background:color-mix(in srgb,#10b981 12%,var(--panel));border-color:color-mix(in srgb,#10b981 30%,var(--line));color:#087f5b}.studentWorkbookProgress{background:color-mix(in srgb,var(--muted) 13%,var(--panel));border-radius:999px;height:6px;margin:11px 0;overflow:hidden;position:relative}.studentWorkbookProgress span{bottom:0;display:block;height:100%;left:0;position:absolute;top:0}.studentWorkbookProgress .submittedProgress{background:#3b82f6}.studentWorkbookProgress .acceptedProgress{background:#22a447}.studentProblemGroups{display:grid;grid-gap:14px 24px;gap:14px 24px;grid-template-columns:repeat(4,minmax(180px,1fr));margin-top:14px}.studentProblemGroup{min-width:0}.studentProblemGroup>strong{color:var(--ink);display:block;font-size:14px;margin-bottom:9px}.studentProblemDots{display:flex;flex-wrap:wrap;gap:5px}.studentProblemDot{align-items:center;border:0;border-radius:50%;color:#ffffff;display:inline-flex;font-size:11px;font-weight:800;height:25px;justify-content:center;padding:0;width:25px}.studentProblemDot.unsubmitted{background:#cbd0d8;cursor:default}.studentProblemDot.correct{background:#22a447}.studentProblemDot.incorrect{background:#ef2b2d}.studentProblemDot.codeRequirementFailed{background:#f97316}.studentProblemDot:not(:disabled):hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 22%,transparent);transform:translateY(-1px)}.studentOverviewLink{background:transparent;border:0;color:var(--ink);font:inherit;font-weight:800;padding:3px 0;text-align:center;width:100%}.studentOverviewLink:hover{color:var(--primary);text-decoration:underline}.submissionMatrixWrap{border:1px solid var(--line);border-radius:8px;max-height:620px;overflow:auto}.submissionMatrix{border-collapse:separate;border-spacing:0;min-width:100%;width:max-content}.submissionMatrix td,.submissionMatrix th{background:var(--panel);border-bottom:1px solid var(--line);border-right:1px solid var(--line);color:var(--ink);min-width:44px;font-size:12px;padding:7px 6px;text-align:center;white-space:nowrap}.submissionMatrix thead th{background:color-mix(in srgb,var(--panel) 74%,var(--bg));font-size:13px;position:-webkit-sticky;position:sticky;top:0;z-index:3}.submissionMatrix td:first-child,.submissionMatrix th:first-child{left:0;min-width:56px;width:56px;position:-webkit-sticky;position:sticky;z-index:2}.submissionMatrix td:nth-child(2),.submissionMatrix th:nth-child(2){left:56px;min-width:68px;width:68px;position:-webkit-sticky;position:sticky;z-index:2}.submissionMatrix td:nth-child(3),.submissionMatrix th:nth-child(3){left:124px;min-width:72px;width:72px;position:-webkit-sticky;position:sticky;z-index:2}.submissionMatrix td:nth-child(4),.submissionMatrix td:nth-child(5),.submissionMatrix th:nth-child(4),.submissionMatrix th:nth-child(5){min-width:52px;width:52px}.submissionMatrix td:nth-child(6),.submissionMatrix th:nth-child(6){min-width:76px;width:76px}.submissionMatrix td:nth-child(n+7),.submissionMatrix th:nth-child(n+7){max-width:36px;min-width:32px;width:32px;padding-left:2px;padding-right:2px}.submissionMatrix .subgroupTone0{background:color-mix(in srgb,#3b82f6 7%,var(--panel))}.submissionMatrix .subgroupTone1{background:color-mix(in srgb,#10b981 8%,var(--panel))}.submissionMatrix .subgroupTone2{background:color-mix(in srgb,#f59e0b 8%,var(--panel))}.submissionMatrix .subgroupTone3{background:color-mix(in srgb,#a855f7 7%,var(--panel))}.submissionMatrix thead th:first-child,.submissionMatrix thead th:nth-child(2),.submissionMatrix thead th:nth-child(3){z-index:4}.submissionMatrix tbody tr:last-child td,.submissionMatrix tbody tr:last-child th{border-bottom:0}.rankCell{color:#b45309!important}.rankCell svg{margin-right:5px;vertical-align:-3px}.scoreCell{font-weight:800}.submissionStatus{background:transparent;border:0;border-radius:6px;font-weight:800;font-size:12px;min-width:24px;padding:3px 5px}.submissionStatus.correct{color:#087f5b}.submissionStatus.incorrect{color:var(--rose)}.submissionStatus.codeRequirementFailed{color:#ea580c}.submissionStatus:hover{background:color-mix(in srgb,currentColor 9%,transparent)}.notSubmitted{color:var(--muted);font-size:13px}.submissionCodeModal{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 80px rgba(15,23,42,.28);color:var(--ink);max-width:1080px;padding:24px;position:relative;width:100%}.submissionCodeModal h2{margin:10px 40px 6px 0}.submissionResultBadge{border-radius:999px;display:inline-block;font-size:12px;font-weight:800;padding:5px 9px}.submissionResultBadge.accepted{background:color-mix(in srgb,#10b981 14%,var(--panel));color:#087f5b}.submissionResultBadge.runtime_error,.submissionResultBadge.wrong_answer{background:color-mix(in srgb,var(--rose) 12%,var(--panel));color:var(--rose)}.submissionResultBadge.code_requirement_failed{background:color-mix(in srgb,#f97316 14%,var(--panel));color:#c2410c}.submissionCodeMeta{color:var(--muted);font-size:13px}.submittedCode{background:#1f2430;border-radius:8px;color:#f8f8f2;font-family:Consolas,Courier New,monospace;line-height:1.65;margin:0;max-height:55vh;overflow:auto;padding:18px;white-space:pre-wrap}.submissionHistoryLayout{display:grid;grid-gap:14px;gap:14px;grid-template-columns:220px minmax(0,1fr);margin-top:18px}.submissionHistoryList{display:grid;grid-gap:7px;gap:7px;max-height:55vh;overflow-y:auto}.submissionHistoryList>strong{margin-bottom:2px}.submissionHistoryList button{background:color-mix(in srgb,var(--panel) 82%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);display:grid;grid-gap:4px;gap:4px;padding:10px;text-align:left}.submissionHistoryList button.active{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}.submissionHistoryList button b{font-size:13px}.submissionHistoryList button small{color:var(--muted);font-size:11px}.submissionHistoryList .submissionResultBadge{justify-self:start}.empty,.supabaseNote{color:var(--muted)}.supabaseNote{margin-top:14px}.modalBackdrop{align-items:center;background:rgba(15,23,42,.48);display:flex;inset:0;justify-content:center;padding:18px;position:fixed;z-index:20}.loginModal{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 80px rgba(15,23,42,.28);color:var(--ink);max-width:380px;padding:22px;position:relative;width:100%}.loginModal input{background:color-mix(in srgb,var(--panel) 86%,var(--bg));color:var(--ink)}.loginModal input::placeholder{color:var(--muted)}.modalError{background:color-mix(in srgb,var(--rose) 10%,var(--panel));border:1px solid color-mix(in srgb,var(--rose) 34%,var(--line));border-radius:7px;color:var(--rose);font-size:13px;line-height:1.5;margin:4px 0 14px;padding:10px 12px}.modalActions .ghostButton,.modalActions .primaryButton{min-width:96px}.iconButton{align-items:center;background:color-mix(in srgb,var(--panel) 78%,var(--bg));border:0;border-radius:7px;color:var(--ink);display:inline-flex;height:36px;justify-content:center;width:36px}.closeButton{position:absolute;right:14px;top:14px}.wideButton{width:100%}.guestLoginDivider{align-items:center;color:var(--muted);display:flex;font-size:12px;gap:10px;margin:14px 0}.guestLoginDivider:after,.guestLoginDivider:before{background:var(--line);content:"";flex:1 1;height:1px}.guestContinueButton{justify-content:center}.personalHistoryModal{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 80px rgba(15,23,42,.28);color:var(--ink);max-height:min(720px,calc(100vh - 36px));max-width:680px;overflow:auto;padding:24px;position:relative;width:100%}.personalHistoryModal h2{margin:0 40px 4px 0}.personalHistoryList{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.personalHistoryList article{align-items:center;background:color-mix(in srgb,var(--panel) 82%,var(--bg));border:1px solid var(--line);border-radius:7px;display:flex;gap:16px;justify-content:space-between;padding:12px}.personalHistoryList article div{display:grid;grid-gap:4px;gap:4px}.personalHistoryList article div span{color:var(--muted);font-size:12px}.problemManager{margin-top:12px}.problemManagerHeader{gap:16px}.problemManagerHeader,.problemManagerToggle{align-items:center;display:flex;justify-content:space-between}.problemManagerToggle{background:transparent;border:0;color:var(--ink);flex:1 1;padding:0;text-align:left}.problemManagerToggle>svg{color:var(--muted);transition:transform .16s ease}.problemManagerToggle[aria-expanded=true]>svg{transform:rotate(180deg)}.problemManagerHeader h2,.problemManagerHeader h3{margin:8px 0 0}.problemManagerActions{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.problemManagerFilters{align-items:flex-end;display:flex;gap:10px;margin-top:18px}.problemManagerFilters label{margin:0;min-width:220px}.problemManagerFilters select{background:color-mix(in srgb,var(--panel) 84%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);padding:9px 10px}.problemManagerFilters>span{color:var(--muted);font-size:13px;padding-bottom:10px}.bookVisibilityActions{align-items:center;display:flex;gap:8px;margin-left:auto}.bulkVisibilityFieldset{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:8px;gap:8px;margin:0 0 0 auto;min-width:260px;padding:10px 12px}.bulkVisibilityFieldset legend{color:var(--muted);font-size:12px;font-weight:800;padding:0 5px}.bulkClassOptions,.bulkVisibilityModes{display:flex;flex-wrap:wrap;gap:8px 10px}.bulkClassOptions label,.bulkVisibilityModes label{align-items:center;color:var(--ink);display:inline-flex;font-size:13px;font-weight:700;gap:5px;min-width:auto}.bulkClassOptions input,.bulkVisibilityModes input{height:15px;width:15px}.bookVisibilityActions button:disabled{cursor:not-allowed;opacity:.5}.visuallyHidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);white-space:nowrap}.managedProblemList{display:grid;grid-gap:8px;gap:8px;margin-top:18px}.managedProblemRow{align-items:center;background:color-mix(in srgb,var(--panel) 82%,var(--bg));border:1px solid var(--line);border-radius:7px;display:grid;grid-gap:10px;gap:10px;grid-template-columns:minmax(0,1fr) auto auto auto;padding:12px}.managedProblemRow>div{display:grid;grid-gap:4px;gap:4px;min-width:0}.managedProblemRow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.managedProblemRow span,.managedProblemRow>b{color:var(--muted);font-size:13px}.managerActionButton{align-items:center;background:color-mix(in srgb,var(--panel) 78%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);display:inline-flex;font-weight:700;gap:6px;justify-content:center;min-height:38px;padding:8px 11px}.managerActionButton:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}.visibilityButton.published{background:color-mix(in srgb,#10b981 10%,var(--panel));border-color:color-mix(in srgb,#10b981 32%,var(--line));color:#087f5b}.visibilityButton.private{color:var(--muted)}.editButton{background:color-mix(in srgb,var(--primary) 9%,var(--panel));border-color:color-mix(in srgb,var(--primary) 30%,var(--line));color:var(--primary)}.problemEditorModal{max-height:calc(100vh - 36px);max-width:900px;overflow-y:auto;padding:24px}.importResultModal,.problemEditorModal{background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 24px 80px rgba(15,23,42,.28);color:var(--ink);position:relative;width:100%}.importResultModal{max-width:560px;padding:28px}.importResultModal h2{margin:8px 0 4px}.importResultModal>p{color:var(--muted);margin:0 0 18px}.importResultIcon{color:var(--primary)}.importResultGrid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:16px}.importResultGrid>div{background:color-mix(in srgb,var(--primary) 7%,var(--panel));border:1px solid color-mix(in srgb,var(--primary) 20%,var(--line));border-radius:8px;display:grid;grid-gap:4px;gap:4px;padding:12px}.importResultGrid span{color:var(--muted);font-size:12px}.importResultGrid strong{font-size:22px}.importVerification{align-items:center;background:color-mix(in srgb,#10b981 10%,var(--panel));border:1px solid color-mix(in srgb,#10b981 30%,var(--line));border-radius:8px;color:#087f5b;display:flex;gap:8px;margin-bottom:16px;padding:12px}.importWarnings{color:#b45309;margin:0 0 16px;padding-left:20px}.problemEditorModal form,.problemEditorModal label{display:grid;grid-gap:7px;gap:7px}.problemEditorModal form{gap:16px}.problemEditorModal input,.problemEditorModal select,.problemEditorModal textarea{background:color-mix(in srgb,var(--panel) 86%,var(--bg));border:1px solid var(--line);border-radius:7px;color:var(--ink);font:inherit;padding:10px 12px;width:100%}.problemEditorModal textarea{min-height:92px;resize:vertical}.problemEditorModal .problemCodeInput{font-family:Consolas,Courier New,monospace;min-height:130px}.problemFormGrid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.publishToggle{align-items:center;display:flex!important;grid-template-columns:auto 1fr}.publishToggle input{height:18px;width:18px}.visibilityFieldset{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;margin:0;padding:14px}.visibilityFieldset legend{color:var(--muted);font-size:13px;font-weight:800;padding:0 6px}.classVisibilityOptions,.visibilityModeOptions{display:flex;flex-wrap:wrap;gap:10px}.classVisibilityOption{align-items:center;background:color-mix(in srgb,var(--panel) 78%,var(--bg));border:1px solid var(--line);border-radius:7px;display:inline-flex!important;font-weight:700;gap:7px;min-height:36px;padding:8px 10px}.classVisibilityOption input{height:16px;width:16px}.testCaseEditor{border-top:1px solid var(--line);padding-top:16px}.testCaseEditor,.testCaseRow{display:grid;grid-gap:10px;gap:10px}.testCaseRow{align-items:start;grid-template-columns:104px minmax(0,1fr) minmax(0,1fr) 36px}.sampleToggle{align-items:center;color:var(--ink);display:flex!important;font-size:12px;font-weight:800;gap:6px!important;margin:8px 0 0!important;white-space:nowrap}.sampleToggle input{accent-color:var(--primary);height:16px;padding:0;width:16px}.testCaseRow textarea{min-height:74px}@media (max-width:1120px){.practiceGrid,.solveGrid,.teacherGrid,.workspace{grid-template-columns:1fr}.practiceGrid{grid-template-rows:minmax(0,var(--practice-editor-height-share,50fr)) 6px minmax(0,var(--practice-console-height-share,50fr));height:max(560px,calc(100vh - 260px))}.practiceGrid .consolePane,.practiceGrid .idePane{min-height:0}.practiceGrid .cm-content,.practiceGrid .cm-editor,.practiceGrid .cm-scroller{height:auto;max-height:none}.practiceGrid .terminal{height:100%;min-height:0}.practiceGrid .terminalScroll{min-height:0;overflow:auto}.practicePaneResizer{cursor:row-resize;min-height:0}.practicePaneResizer span{height:2px;width:52px}.practicePaneResizer:focus-visible span,.practicePaneResizer:hover span,.resizingPracticePane .practicePaneResizer span{height:2px;width:72px}.resizingPracticePane{cursor:row-resize}.bookSidebar{max-height:none}.solveGrid.bookSidebarCollapsed,.solveGrid.bookSidebarCollapsed.problemListCollapsed,.solveGrid.problemListCollapsed{grid-template-columns:1fr}.collapsedSidebarButton{flex-direction:row;min-height:48px;width:100%}.collapsedSidebarButton span{writing-mode:horizontal-tb}}@media (max-width:760px){.shell{padding:14px}.dashboardHeader,.topbar{align-items:stretch;flex-direction:column}.dashboardActions{width:100%}.dashboardActions button{flex:1 1}.problemHeader,.submissionOverviewHeader{align-items:stretch;flex-direction:column}.problemNavigation{align-self:flex-end}.studentOverviewHeader{align-items:stretch;flex-direction:column}.studentOverviewModal{max-height:calc(100vh - 24px);padding:18px}.dashboardFilters .subgroupSelect,.studentOverviewHeader select{max-width:none;min-width:0;width:100%}.filterSelectControl{flex:1 1}.filterSelectControl select{min-width:0;width:100%}.currentLearningSummary,.studentOverviewMetrics{grid-template-columns:1fr 1fr}.studentWorkbookHeading{align-items:flex-start;flex-direction:column}.studentWorkbookCounts{margin-left:0}.studentProblemGroups{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboardFilters{display:grid;grid-template-columns:1fr 1fr}.submissionHistoryLayout{grid-template-columns:1fr}.submissionHistoryList{grid-template-columns:repeat(2,minmax(0,1fr));max-height:220px}.submissionHistoryList>strong{grid-column:1/-1}.problemManagerFilters,.problemManagerHeader{align-items:stretch;flex-direction:column}.problemManagerFilters label{min-width:0;width:100%}.bookVisibilityActions,.bulkVisibilityFieldset{margin-left:0;width:100%}.bookVisibilityActions button{flex:1 1}.dashboardFilters select{min-width:0;width:100%}.ideActions,.modeSwitch,.modeSwitch button{width:100%}.ideHeader{align-items:stretch;flex-direction:column}.ideActions{justify-content:space-between}.ideActions .ghostButton,.ideActions .primaryButton,.ideActions .resetCodeButton,.ideActions .runButton{flex:1 1}.consoleHeader{gap:12px}.consoleActions{flex-wrap:wrap;gap:8px;justify-content:flex-end}.choiceGrid,.descriptionGrid,.ioGrid,.metrics,.roadmap{grid-template-columns:1fr}.problemHeader{gap:12px}.dashboardHeader h1,.problemHeader h1{font-size:28px}.problemHeader h1{max-width:none;overflow:visible;text-overflow:clip;white-space:normal}.caseRow,.managedProblemRow,.problemFormGrid,.submissionRow,.testCaseRow{grid-template-columns:1fr}.managedProblemRow>b{justify-self:start}.testCaseRow .iconButton{justify-self:end}}