:root{--code-bg:#0f1b2d;--code-head:#13223a;--code-line:#22324d;--code-text:#e6edf6;--code-muted:#8ea3c4;--code-font:"JetBrains Mono", "Cascadia Code", "Cascadia Mono", Consolas, "SFMono-Regular", Menlo, monospace;--run:#22c55e;--run-hover:#16a34a;--run-ink:#052e16;--ok-ink:#15803d;--ok-soft:#dcfce7;--bad-ink:#b42318;--bad-soft:#fee4e2}.code-block{border:1px solid var(--code-line);background:var(--code-bg);border-radius:12px;min-width:0;margin:20px 0;overflow:hidden}.code-block-head{background:var(--code-head);border-bottom:1px solid var(--code-line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:4px 4px 4px 14px;display:flex}.code-chip{letter-spacing:.2px;color:#c9d6ea;align-items:center;gap:8px;font-size:12.5px;font-weight:650;display:inline-flex}.code-chip-dot{background:#94a3b8;border-radius:50%;width:8px;height:8px}.code-block[data-language=python] .code-chip-dot,.code-block[data-language=py] .code-chip-dot{background:#ffe082}.code-block[data-language=sql] .code-chip-dot{background:#8bb4ff}.code-block-actions{gap:4px;display:flex}.code-block-actions button{color:#dbe6f7;border-radius:8px;align-items:center;gap:6px;min-height:40px;padding:0 10px;font-size:12.5px;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.code-block-actions button:hover{background:#1f3354}.code-block-actions button:focus-visible{outline-offset:1px;outline:2px solid #8bb4ff}.code-block-actions .code-try{background:var(--run);color:var(--run-ink)}.code-block-actions .code-try:hover{background:var(--run-hover);color:#fff}.code-block-body{min-width:0;display:flex}.code-gutter{text-align:right;color:#5f7598;min-width:2.6em;font:14.5px/1.7 var(--code-font);-webkit-user-select:none;user-select:none;border-right:1px solid #1b2b45;flex-shrink:0;margin:0;padding:14px 10px 14px 12px}.code-gutter>span{display:block}.code-block pre{min-width:0;color:var(--code-text);font:14.5px/1.7 var(--code-font);white-space:pre;tab-size:4;background:0 0;border-radius:0;flex:1;margin:0;padding:14px 16px;overflow-x:auto}.code-block pre:focus-visible{outline-offset:-2px;outline:2px solid #8bb4ff}.code-block pre code,.code-block pre code.hljs{color:inherit;font:inherit;background:0 0;padding:0}.code-block .hljs-keyword,.code-block .hljs-selector-tag,.code-block .hljs-meta .hljs-keyword{color:#c4a7ff}.code-block .hljs-string,.code-block .hljs-regexp{color:#a6e3a1}.code-block .hljs-number,.code-block .hljs-literal{color:#fab387}.code-block .hljs-comment{color:#8aa0bd;font-style:italic}.code-block .hljs-built_in,.code-block .hljs-title,.code-block .hljs-title.function_{color:#ffe082}.code-block .hljs-type,.code-block .hljs-params,.code-block .hljs-attr{color:#89dceb}.code-block .hljs-operator,.code-block .hljs-punctuation{color:#9cc4ff}.code-output,.code-input,.code-text{background:#f6fbf7;border-color:#bfe3c9}.code-output .code-block-head{background:#e9f6ee;border-color:#bfe3c9}.code-output .code-chip{color:#1d5b35}.code-output .code-chip-dot{background:#22a35a!important}.code-output pre{color:#17331f}.code-input{background:#f3f8fe;border-color:#bcd3ee}.code-input .code-block-head{background:#e6f0fb;border-color:#bcd3ee}.code-input .code-chip{color:#1f4a7a}.code-input .code-chip-dot{background:#3b82f6!important}.code-input pre{color:#172b45}.code-text{background:#f7f8fb;border-color:#d3dae6}.code-text .code-block-head{background:#eef1f6;border-color:#d3dae6}.code-text .code-chip{color:#445472}.code-text pre{color:#1f2a3d}:is(.code-output,.code-input,.code-text) .code-block-actions button{color:#2b4266}:is(.code-output,.code-input,.code-text) .code-block-actions button:hover{background:#ffffffb3}:is(.code-output,.code-input,.code-text) .code-block-actions button:focus-visible{outline-color:var(--blue)}.code-compact{margin:12px 0}.code-compact .code-block-head{min-height:44px;padding:2px 2px 2px 12px}.code-compact .code-block-actions button{padding:0 8px}.code-compact pre,.code-compact .code-gutter{padding-top:10px;padding-bottom:10px;font-size:13.5px}.code-compact pre{padding-inline:12px}.quiz-options .code-block{margin:8px 0 0}.quiz-options label .lesson-prose{flex:1;min-width:0}.quiz-options label>input,.quiz-options label>.option-letter{flex-shrink:0;margin-top:3px}.ide-layout{grid-template-columns:minmax(300px,5fr) minmax(0,7fr);align-items:start;gap:20px;display:grid}.ide-statement{overscroll-behavior:contain;max-height:calc(100vh - 116px);position:sticky;top:96px;overflow:auto}.ide-statement h3{margin:22px 0 8px;font-size:14px}.ide-statement .lesson-prose{font-size:14.5px;line-height:1.75}.ide-samples{gap:12px;display:grid}.ide-samples .code-block{margin:0}.ide-hint{margin-top:20px}.ide-hint summary{align-items:center;min-height:40px;display:flex}.ide{background:var(--code-bg);border:1px solid var(--code-line);border-radius:16px;min-width:0;overflow:hidden;box-shadow:0 10px 28px #0f1b2d24}.ide-header{background:var(--code-head);border-bottom:1px solid var(--code-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 12px;padding:8px 10px 8px 14px;display:flex}.ide-file{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.ide-file-name{font:600 13px var(--code-font);color:#f1f6ff;background:var(--code-bg);border:1px solid #2a3d5e;border-radius:8px;padding:6px 10px}.ide-runtime,.ide-draft{color:var(--code-muted);font-size:12.5px}.ide-draft:before{content:"·";color:#4b6185;margin-right:10px}.ide-draft:empty{display:none}.ide-actions{align-items:center;gap:8px;display:flex}.ide-actions button{border-radius:10px;justify-content:center;align-items:center;gap:7px;min-height:40px;padding:0 16px;font-size:14px;font-weight:700;transition:background-color .15s,transform .1s;display:inline-flex}.ide-actions button:active:not(:disabled){transform:scale(.97)}.ide-actions button:focus-visible{outline-offset:2px;outline:2px solid #8bb4ff}.ide-actions button:disabled{opacity:.45;cursor:not-allowed}.ide-reset{color:#c9d6ea;padding-inline:12px!important;font-weight:600!important}.ide-reset:hover:not(:disabled){background:#1f3354}.ide-run{background:var(--run);color:var(--run-ink)}.ide-run:hover:not(:disabled){background:var(--run-hover);color:#fff}.ide-submit{background:var(--blue);color:#fff}.ide-submit:hover:not(:disabled){background:var(--blue-dark)}.ide-editor .code-editor,.ide-editor .editor-loading{min-height:300px}.ide-editor .cm-editor{min-height:300px;max-height:min(62vh,580px)}.ide-editor .cm-scroller{min-height:300px}.ide-editor .editor-loading{background:var(--code-bg);color:#c9d6ea;padding:24px;font-size:14px}.ide-console{border-top:1px solid var(--code-line);background:#eef2f8}.ide-console-tabs{scrollbar-width:none;border-bottom:1px solid #d4dce8;gap:4px;padding:6px 8px 0;display:flex;overflow:auto hidden}.ide-console-tabs::-webkit-scrollbar{display:none}.ide-console-tabs [role=tab]{color:#4a5d7a;white-space:nowrap;border:1px solid #0000;border-bottom:0;border-radius:9px 9px 0 0;align-items:center;gap:8px;min-height:40px;margin-bottom:-1px;padding:0 14px;font-size:13.5px;font-weight:650;display:inline-flex}.ide-console-tabs [role=tab]:hover{color:var(--ink)}.ide-console-tabs [role=tab][aria-selected=true]{color:var(--ink);box-shadow:inset 0 2px 0 var(--blue);background:#fff;border-color:#d4dce8}.ide-console-tabs [role=tab]:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.ide-console-panel{min-height:160px;max-height:460px;color:var(--ink);background:#fff;padding:14px 16px 16px;font-size:14px;overflow:auto}.ide-dot{border-radius:50%;width:8px;height:8px}.ide-dot-ok{background:var(--run)}.ide-dot-bad{background:#ef4444}.ide-badge{background:var(--bad-soft);color:var(--bad-ink);border-radius:999px;padding:2px 8px;font-size:11.5px;font-weight:750}.ide-badge-ok{background:var(--ok-soft);color:var(--ok-ink)}.ide-stdin{display:block}.ide-stdin>span{color:#5b6b85;margin-bottom:8px;font-size:12.5px;display:block}.ide-stdin textarea{resize:vertical;width:100%;min-height:112px;color:var(--ink);font:14px/1.6 var(--code-font);background:#f8fafc;border:1px solid #cbd5e3;border-radius:10px;padding:10px 12px;display:block}.ide-stdin textarea:focus-visible{outline:2px solid var(--blue);outline-offset:1px;background:#fff}.ide-pending{color:var(--blue);margin:0 0 10px;font-weight:650}.ide-error{color:var(--bad-ink);background:#fff4f2;border-radius:10px;margin:0 0 10px;padding:10px 12px;font-size:14px}.ide-run-status{flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 10px;display:flex}.ide-run-status strong{font-size:14.5px}.ide-run-ok strong{color:var(--ok-ink)}.ide-run-bad strong{color:var(--bad-ink)}.ide-run-status small,.ide-note{color:#5b6b85;font-size:12px}.ide-note{margin-top:12px;display:block}.ide-stdout,.ide-stderr,.case-input,.output-side pre{font:14px/1.6 var(--code-font);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;max-height:300px;margin:0;padding:10px 12px;overflow:auto}.ide-stdout{color:#17331f;background:#f6fbf7;border:1px solid #bfe3c9}.ide-stderr{color:#8a1c12;background:#fff4f2;border:1px solid #f5c2bb;margin-top:10px;font-size:13.5px}.case-input{color:#172b45;background:#f3f8fe;border:1px solid #bcd3ee}.ide-console .grade-head{grid-template-columns:auto 1fr;align-items:center;gap:6px 14px;margin-bottom:12px;padding:0;display:grid}.ide-console .grade-head>strong{color:var(--blue);font-size:32px;line-height:1}.ide-console .grade-head>span:not(.grade-bar){color:var(--ink);font-size:14px;font-weight:600}.grade-bar{background:#e5eaf2;border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.grade-bar>span{background:var(--run);border-radius:inherit;height:100%;display:block}.ide-console .case-result{background:#fff;border:1px solid #dbe2ec;border-radius:10px;margin:8px 0;padding:0}.ide-console .case-result>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;min-height:44px;padding:6px 12px;font-size:14px;font-weight:650;display:flex}.ide-console .case-result>summary small{color:#5b6b85;margin-left:6px;font-size:12px;font-weight:500}.ide-console .case-result[open]>summary{border-bottom:1px solid #e5eaf2}.ide-console .case-result>:not(summary){margin-inline:12px}.ide-console .case-result>:last-child{margin-bottom:12px}.ide-console .case-result>p{color:#4a5d7a;margin-block:10px;font-size:13.5px}.case-pill{border-radius:999px;padding:3px 10px;font-size:12px;font-weight:750}.case-pill-ok{background:var(--ok-soft);color:var(--ok-ink)}.case-pill-bad{background:var(--bad-soft);color:var(--bad-ink)}.output-side-label{color:#4a5d7a;margin:12px 0 6px;font-size:12.5px;font-weight:700;display:block}.output-compare{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;display:grid}.output-side pre{color:var(--ink);background:#f8fafc;border:1px solid #d4dce8}.output-line{min-height:1.6em;display:block}.output-diff{background:var(--bad-soft);margin-inline:-12px;padding-inline:12px;box-shadow:inset 3px 0 #ef4444}.output-empty{color:#6b7a93;font-style:italic}.sql-compare{gap:12px;display:grid}.ide-statusbar{background:var(--code-head);border-top:1px solid var(--code-line);min-height:44px;color:var(--code-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 14px;padding:10px 14px;font-size:12.5px;display:flex}.ide-statusbar a{color:#9cc4ff;text-decoration:underline}.ide-kbd{font:11.5px var(--code-font);color:#dbe6f7;background:#1b2b45;border:1px solid #3a4f72;border-bottom-width:2px;border-radius:5px;padding:1px 6px}@media (max-width:1099px){.ide-layout{grid-template-columns:minmax(0,1fr)}.ide-statement{max-height:none;position:static;overflow:visible}}@media (max-width:760px){.ide-layout.mobile-statement .ide,.ide-layout.mobile-code .ide-statement{display:none}.ide-header{padding:8px}.ide-draft{flex-basis:100%}.ide-draft:before{display:none}.ide-actions{width:100%}.ide-actions .ide-run,.ide-actions .ide-submit{flex:1}.ide-shortcut{display:none}.ide-editor .cm-editor{min-height:260px;max-height:55vh}.ide-editor .cm-scroller,.ide-editor .code-editor{min-height:260px}.ide-console-panel{max-height:none;padding:12px}.output-compare{grid-template-columns:minmax(0,1fr);gap:0}.code-block pre,.code-gutter{font-size:13.5px}.code-compact pre,.code-compact .code-gutter{font-size:13px}.code-block-actions button span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.code-block-actions button{justify-content:center;min-width:40px}}@media (prefers-reduced-motion:reduce){.ide-actions button,.code-block-actions button{transition:none}.ide-actions button:active:not(:disabled){transform:none}}[data-motion=off] :is(.ide-actions button,.code-block-actions button){transition:none}[data-motion=off] .ide-actions button:active:not(:disabled){transform:none}.quiz-head{background:#fff;border:1px solid #d4dce8;border-radius:14px;margin:4px 0 20px}.quiz-head-main{flex-wrap:wrap;align-items:center;gap:12px 18px;padding:14px 16px;display:flex}.quiz-progress{flex:220px;min-width:0}.quiz-progress p{flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0 0 8px;display:flex}.quiz-progress strong{color:var(--ink);font-size:15px}.quiz-progress p span{color:#5b6b85;font-size:13px}.quiz-progress-bar{background:#e5eaf2;border-radius:999px;height:6px;display:block;overflow:hidden}.quiz-progress-bar>span{border-radius:inherit;background:var(--blue);height:100%;transition:width .2s;display:block}.quiz-head .quiz-pages{margin:0}.quiz-head .quiz-pages button{min-height:40px;font-size:14px;font-weight:600}.quiz-jump{white-space:nowrap;min-height:40px;font-size:14px}.quiz-head-tools{color:#4a5d7a;background:#f8fafc;border-top:1px solid #e5eaf2;border-radius:0 0 14px 14px;flex-wrap:wrap;align-items:center;gap:10px 20px;padding:10px 16px;font-size:13.5px;display:flex}.quiz-head-tools label{align-items:center;gap:8px;min-height:40px;font-weight:600;display:inline-flex}.quiz-head-tools input[type=checkbox]{width:18px;height:18px;accent-color:var(--blue)}.quiz-head-tools select{min-height:40px;color:var(--ink);background-color:#fff;border:1px solid #cbd5e3;border-radius:10px;padding:0 34px 0 12px;font-size:13.5px}.quiz-head-tools small[role=status]{color:#5b6b85;margin-left:auto;font-size:12.5px}@media (max-width:760px){.quiz-head-main,.quiz-head-tools{padding-inline:12px}.quiz-jump{flex:100%}.quiz-head-tools label{flex-wrap:wrap;flex:100%;justify-content:flex-start}.quiz-head-tools label:has(select){flex-direction:column;align-items:stretch;gap:6px}.quiz-head-tools select{width:100%}.quiz-head-tools small[role=status]{margin-left:0}}@media (prefers-reduced-motion:reduce){.quiz-progress-bar>span{transition:none}}[data-motion=off] .quiz-progress-bar>span{transition:none}.code-block pre,.code-gutter,.ide .cm-editor,.ide-stdin textarea,.ide-stdout,.ide-stderr,.case-input,.output-side pre,.ide-kbd,.ide-file-name,.lesson-prose code,.code-editor .cm-editor{font-variant-ligatures:none;font-feature-settings:"liga" 0, "calt" 0}.quiz-options .code-block .code-block-head{display:none}.quiz-options .code-block pre{padding-block:10px}.ide-statement details.ide-hint{background:#fff;border:1px solid #d4dce8;border-radius:10px;margin-top:20px;padding:0;font-size:14px}.ide-statement details.ide-hint>summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:0 14px;font-weight:650;list-style:none;display:flex}.ide-statement details.ide-hint>summary::-webkit-details-marker{display:none}.ide-statement details.ide-hint>summary:before{content:"";border-right:2px solid var(--blue);border-bottom:2px solid var(--blue);width:7px;height:7px;transition:transform .15s;transform:rotate(-45deg)}.ide-statement details.ide-hint[open]>summary:before{transform:rotate(45deg)}.ide-statement details.ide-hint>:not(summary){padding:0 14px 12px}@media (prefers-reduced-motion:reduce){.ide-statement details.ide-hint>summary:before{transition:none}}:root{--ide-h:clamp(560px, calc(100dvh - 150px), 940px)}@media (min-width:1100px){.ide-layout{grid-template-columns:minmax(270px,300px) minmax(0,1fr);gap:16px}.ide-statement{height:var(--ide-h);max-height:none;padding:20px;top:96px}.ide-statement h2{margin:8px 0 14px;font-size:19px}.ide{height:var(--ide-h);flex-direction:column;display:flex;position:sticky;top:96px}.ide>.ide-header,.ide>.ide-statusbar{flex:none}.ide>.ide-editor{flex-direction:column;flex:auto;min-height:0;display:flex}.ide-editor .code-editor,.ide-editor .editor-loading{flex:1;height:100%;min-height:0}.ide-editor .python-editor .cm-editor,.ide-editor .cm-editor{height:100%;min-height:0;max-height:none}.ide-editor .cm-scroller{min-height:0}.ide>div:has(>.ide-console){flex:none}.ide-console-panel{height:clamp(120px,18vh,220px);min-height:0;max-height:none;padding-block:10px 12px}}@media (min-width:1440px){.ide-layout{grid-template-columns:minmax(300px,330px) minmax(0,1fr)}}@media (min-width:1600px){.ide-layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}}@media (max-width:760px){.ide-header{gap:8px}.ide-file{row-gap:4px;width:100%;min-width:0}.ide-draft{white-space:normal;flex:100%;min-width:0}.ide-reset{padding-inline:10px!important}.ide-reset span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ide-editor .cm-editor,.ide-editor .python-editor .cm-editor{min-height:52vh;max-height:70vh}.ide-editor .cm-scroller,.ide-editor .code-editor{min-height:52vh}}
