.python-playground{max-width:1240px;margin:0 auto;color:#162033;font-size:16px}.python-playground h2{margin-bottom:.35rem}.python-playground h3{margin:.7rem 0 .4rem}.playground-statusbar{position:sticky;bottom:0;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 1rem;margin-top:1rem;padding:.35rem .75rem;border:1px solid #ccd7e6;border-radius:.35rem;background:#f3f6fb;color:#43536b;font-size:.9rem}.save-state{margin-left:auto}.runtime-state:before{content:"";display:inline-block;width:.6rem;height:.6rem;margin-right:.45rem;border-radius:50%;background:#9cacbf}.runtime-state.error{color:#a21c2d}.runtime-state.error:before{background:#a21c2d}.runtime-state.ready{color:#17663b}.runtime-state.ready:before{background:#1f8a4c}.runtime-state.running:before,.runtime-state.checking:before,.runtime-state.waiting:before{background:#d08a00}.runtime-state.waiting{color:#7a4d00;font-weight:600}.runtime-progress{width:min(100%,14rem);height:.8rem}.playground-toolbar,.editor-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}.python-playground button{min-height:44px;padding:.55rem .85rem;border:1px solid #315b9b;border-radius:.45rem;background:#fff;color:#163969;font-size:1rem;touch-action:manipulation}.python-playground button:disabled{opacity:.5}.python-playground button.stop{border-color:#9c2734;color:#861b28}.playground-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1rem}.code-editor{border:1px solid #9cacbf;border-radius:.35rem;overflow:auto;min-height:280px}.code-editor .cm-editor{min-height:280px;font-size:16px}.code-editor .cm-editor.cm-focused{outline:none}.code-editor .cm-gutters{background:#f4f4f4;border-right:1px solid #d9d9d9;color:#8a94a3}.code-editor .cm-activeLine{background:#f3f7fd}.code-editor .cm-activeLineGutter{background:#e6edf7}.code-editor .cm-matchingBracket{background:#dbe7f7;outline:1px solid #9cb6da}.code-editor .cm-scroller{overflow:auto}.python-playground textarea{box-sizing:border-box;display:block;width:100%;margin-top:.35rem;padding:.5rem;font:16px ui-monospace,monospace}.output-heading{display:flex;align-items:baseline;gap:.6rem}.stale-result{color:#7a4d00;font-size:.85rem;font-style:italic}.playground-output .console-input{width:min(100%,24ch);min-width:10ch;padding:0 .15rem;border:0;border-bottom:1px dashed #7aa2d6;border-radius:0;outline:none;background:transparent;color:#fff;caret-color:#ffd166;font:inherit}.playground-output .console-input:focus{border-bottom:1px solid #ffd166}.playground-output,.test-results pre{min-height:280px;white-space:pre-wrap;overflow-wrap:anywhere;padding:.75rem;background:#101827;color:#edf5ff;border-radius:.35rem;margin:0}.test-results{padding-left:1.3rem}.test-results li{margin:.45rem 0}.test-results .passed{color:#17663b}.test-results .failed,.test-results .error{color:#9c2734}.test-results pre{min-height:0;margin-top:.35rem}@media (max-width: 800px){.playground-grid{grid-template-columns:1fr}.playground-toolbar button{flex:1 1 145px}.code-editor,.code-editor .cm-editor{min-height:240px}.playground-output{min-height:180px}}.python-playground{font-family:system-ui,-apple-system,sans-serif}.python-playground header p{white-space:pre-wrap}.playground-grid>div{min-width:0}:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#162033;background:#f3f6fb;line-height:1.5}body{margin:0}*{box-sizing:border-box}.playground-site{max-width:1280px;margin:auto;padding:24px}.course-header{border-bottom:1px solid #ccd7e6;margin-bottom:20px}.course-header h1{font-size:clamp(1.8rem,4vw,2.4rem);margin:6px 0}.course-label{color:#43536b;font-size:.95rem}.playground-site nav{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.playground-site nav button{min-height:44px;padding:10px 16px;font:inherit;cursor:pointer;border:1px solid #9cacbf;border-radius:8px;background:#fff;color:#163969}.playground-site nav button[aria-current]{background:#163969;color:#fff;border-color:#163969}.playground-site button:focus-visible{outline:3px solid #b76b00;outline-offset:3px}.playground-site .python-playground{background:#fff;padding:20px;border:1px solid #ccd7e6;border-radius:12px;margin-top:24px}@media (max-width: 800px){.playground-site,.playground-site .python-playground{padding:12px}}
