.py-runner:where(.astro-3d43hkmw){--py-cm-keyword: #cf222e;--py-cm-comment: #6e7781;--py-cm-string: #0a3069;--py-cm-number: #0550ae;--py-cm-function: #6639ba;--py-cm-type: #0e7490;--py-cm-property: #0550ae;--py-cm-operator: var(--sl-color-text);--py-cm-selection: rgba(37, 99, 235, .18);--py-cm-active: rgba(0, 0, 0, .045);--py-error-line-bg: rgba(220, 38, 38, .16);--py-error-bg: rgba(220, 38, 38, .05);margin-block:1.5rem;border:1px solid var(--sl-color-gray-5, #d0d5dd);border-radius:var(--brand-radius);overflow:hidden;background:var(--sl-color-bg-nav, #f8fafc)}[data-theme=dark] .py-runner:where(.astro-3d43hkmw){--py-cm-keyword: #ff7b72;--py-cm-comment: #8b949e;--py-cm-string: #a5d6ff;--py-cm-number: #79c0ff;--py-cm-function: #d2a8ff;--py-cm-type: #56d4dd;--py-cm-property: #79c0ff;--py-cm-selection: rgba(56, 139, 253, .32);--py-cm-active: rgba(255, 255, 255, .055);--py-error-line-bg: rgba(248, 81, 73, .22);--py-error-bg: rgba(248, 81, 73, .12)}.py-editor:where(.astro-3d43hkmw){font-size:.9rem}.py-runner .cm-editor{min-height:var(--py-editor-h, 8rem)}.py-runner .cm-editor.cm-focused{outline:2px solid var(--sl-color-text-accent, #3b82f6);outline-offset:-2px}.py-runner .cm-scroller{font-family:var(--__sl-font-mono, ui-monospace, SFMono-Regular, Menlo, monospace)}.py-runner .cm-editor *{margin:0}.py-runner .py-error-line{background:var(--py-error-line-bg, rgba(220, 38, 38, .16))}.py-inputs-wrap:where(.astro-3d43hkmw){border-top:1px solid var(--sl-color-gray-5, #e5e7eb);padding:.5rem .75rem;font-size:.85rem}.py-inputs-wrap:where(.astro-3d43hkmw) summary:where(.astro-3d43hkmw){cursor:pointer;font-weight:600;color:var(--sl-color-gray-2, #475569)}.py-inputs-hint:where(.astro-3d43hkmw){margin:.4rem 0 .3rem;color:var(--sl-color-gray-3, #64748b);font-size:.8rem}.py-inputs:where(.astro-3d43hkmw){width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;padding:.4rem .5rem;border:1px solid var(--sl-color-gray-5, #d0d5dd);border-radius:var(--brand-radius-sm);background:var(--sl-color-bg, #fff);color:var(--sl-color-text, #111);resize:vertical}.py-toolbar:where(.astro-3d43hkmw){display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;border-top:1px solid var(--sl-color-gray-5, #e5e7eb)}.py-btn:where(.astro-3d43hkmw){font:inherit;font-weight:600;font-size:.9rem;padding:.4rem .95rem;border-radius:var(--brand-radius-sm);border:1px solid transparent;cursor:pointer}.py-run:where(.astro-3d43hkmw){background:var(--sl-color-text-accent, #2563eb);color:var(--sl-color-black, #fff)}.py-run:where(.astro-3d43hkmw):disabled{opacity:.55;cursor:progress}.py-stop:where(.astro-3d43hkmw){background:transparent;border-color:var(--sl-color-red, #dc2626);color:var(--sl-color-red, #dc2626)}.py-status:where(.astro-3d43hkmw){font-size:.85rem;color:var(--sl-color-gray-3, #64748b)}.py-status:where(.astro-3d43hkmw)[data-kind=ok]{color:var(--sl-color-green, #16a34a)}.py-output-wrap:where(.astro-3d43hkmw){border-top:1px solid var(--sl-color-gray-5, #e5e7eb)}.py-output-label:where(.astro-3d43hkmw){display:block;padding:.4rem .75rem 0;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--sl-color-gray-3, #64748b)}.py-output:where(.astro-3d43hkmw){margin:0;padding:.5rem .75rem .75rem;min-height:2.5rem;max-height:18rem;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;white-space:pre-wrap;word-break:break-word;background:var(--sl-color-bg, #fff);color:var(--sl-color-text, #111)}.py-output:where(.astro-3d43hkmw).has-error{background:var(--py-error-bg, rgba(220, 38, 38, .05))}.py-stderr:where(.astro-3d43hkmw){color:var(--sl-color-red, #dc2626)}.py-mission:where(.astro-gabl6vwc){--py-xp-color: #b45309;margin-block:2rem;padding:1rem 1.1rem 1.2rem;border:1px solid var(--sl-color-gray-5, #d0d5dd);border-left:4px solid var(--sl-color-text-accent, #2563eb);border-radius:var(--brand-radius);background:var(--sl-color-bg-sidebar, #f8fafc)}[data-theme=dark] .py-mission:where(.astro-gabl6vwc){--py-xp-color: #fbbf24}.py-mission:where(.astro-gabl6vwc).is-done{border-left-color:var(--sl-color-green, #16a34a)}.py-mission-head:where(.astro-gabl6vwc){display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.py-mission-tag:where(.astro-gabl6vwc){font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--sl-color-text-accent, #2563eb);background:var(--sl-color-bg, #fff);border:1px solid currentcolor;border-radius:1rem;padding:.1rem .55rem}.py-mission-title:where(.astro-gabl6vwc){margin:0;font-size:1.1rem;flex:1;min-width:8rem}.py-mission-xp:where(.astro-gabl6vwc){font-weight:700;font-size:.85rem;color:var(--py-xp-color, #b45309)}.py-mission-state:where(.astro-gabl6vwc){font-weight:700;font-size:.85rem;color:var(--sl-color-green, #16a34a)}.py-mission-task:where(.astro-gabl6vwc){margin:.6rem 0 .2rem}.py-mission-feedback:where(.astro-gabl6vwc){margin:.4rem 0 0;padding:.55rem .75rem;border-radius:var(--brand-radius-sm);font-size:.9rem;font-weight:500}.py-mission-feedback:where(.astro-gabl6vwc)[data-kind=ok]{background:#16a34a1f;color:var(--sl-color-green, #15803d)}.py-mission-feedback:where(.astro-gabl6vwc)[data-kind=hint]{background:#f59e0b1f;color:var(--sl-color-orange, #b45309)}.py-toast{position:fixed;left:50%;bottom:2rem;transform:translate(-50%);z-index:9999;padding:.6rem 1.1rem;border-radius:2rem;background:#16a34a;color:#fff;font-weight:700;box-shadow:0 6px 20px #00000040;animation:py-toast-in .25s ease-out}@keyframes py-toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.py-confetti{position:fixed;inset:0;pointer-events:none;z-index:9998;overflow:hidden}.py-confetti-piece{position:absolute;top:40%;width:9px;height:9px;border-radius:1px;opacity:.9;animation:py-confetti-fall 1.2s ease-in forwards}@keyframes py-confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(60vh) rotate(540deg);opacity:0}}.py-modprog:where(.astro-yalin5kc){margin-block:1.5rem;padding:.9rem 1.1rem;border:1px solid var(--sl-color-gray-5, #d0d5dd);border-radius:var(--brand-radius);background:var(--sl-color-bg-nav, #f8fafc)}.py-modprog:where(.astro-yalin5kc).is-complete{border-color:var(--sl-color-green, #16a34a)}.py-modprog-top:where(.astro-yalin5kc){display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem}.py-modprog-count:where(.astro-yalin5kc){font-variant-numeric:tabular-nums;font-weight:700;color:var(--sl-color-text-accent, #2563eb)}.py-modprog-bar:where(.astro-yalin5kc){height:.6rem;border-radius:1rem;background:var(--sl-color-gray-5, #e5e7eb);overflow:hidden}.py-modprog-fill:where(.astro-yalin5kc){display:block;height:100%;border-radius:1rem;background:var(--sl-color-text-accent, #2563eb);transition:width .4s ease}@media(prefers-reduced-motion:reduce){.py-modprog-fill:where(.astro-yalin5kc){transition:none}}.py-modprog:where(.astro-yalin5kc).is-complete .py-modprog-fill:where(.astro-yalin5kc){background:var(--sl-color-green, #16a34a)}.py-modprog-meta:where(.astro-yalin5kc){display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.85rem}.py-modprog-xp:where(.astro-yalin5kc){color:var(--sl-color-gray-2, #475569);font-weight:600}.py-modprog-badge:where(.astro-yalin5kc){font-weight:700;color:var(--sl-color-green, #15803d)}
