.py-ws{height:calc(100dvh - 48px - 26px);min-height:520px;display:flex}.py-ws-split{flex:1}.py-split{display:grid;min-width:0;min-height:0;height:100%}.py-split.cols{grid-template-columns:var(--py-share) 9px minmax(0,1fr)}.py-split.rows{grid-template-rows:var(--py-share) 9px minmax(0,1fr)}.py-split-a,.py-split-b{min-width:0;min-height:0;overflow:hidden}.py-divider{position:relative;touch-action:none;outline:none}.py-split.cols>.py-divider{cursor:col-resize}.py-split.rows>.py-divider{cursor:row-resize}.py-divider:after{content:"";position:absolute;background:var(--rx-line)}.py-split.cols>.py-divider:after{top:0;bottom:0;left:4px;width:1px}.py-split.rows>.py-divider:after{left:0;right:0;top:4px;height:1px}.py-divider:focus-visible:after,.py-divider:hover:after{background:var(--rx-amber)}.py-split.cols>.py-divider:focus-visible:after,.py-split.cols>.py-divider:hover:after{left:3px;width:3px}.py-split.rows>.py-divider:focus-visible:after,.py-split.rows>.py-divider:hover:after{top:3px;height:3px}.py-preview-note,.py-task .rx-prompt-line{color:var(--rx-dim)}.py-task{height:100%;overflow:auto;padding:24px clamp(16px,2.5vw,32px) 40px}.py-task-title{margin:0;font-size:clamp(1.5rem,2.6vw,2rem);font-weight:650;letter-spacing:-.03em;line-height:1.15}.py-task .rx-label.sec{margin-top:26px}.py-prompt{max-width:40rem;font-size:16px;line-height:1.65}.py-prompt p{margin:0 0 10px}.py-prompt code,.py-task code{font-family:var(--rx-mono);font-size:.9em;color:var(--rx-amber-ink)}.py-list{margin:0;padding-left:1.15em;max-width:40rem;font-size:15px;line-height:1.55}.py-list li{margin:5px 0}.py-work{height:100%;display:flex;flex-direction:column;padding:14px clamp(12px,2vw,22px)}.py-work-split{flex:1}.py-code{height:100%;display:flex;flex-direction:column;border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-cell);overflow:hidden}.py-code-head{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--rx-line);font-family:var(--rx-mono);font-size:12.5px;min-height:37px}.py-file{align-self:stretch;padding:0 16px;background:var(--rx-surface);border-right:1px solid var(--rx-line);box-shadow:inset 0 -2px 0 var(--rx-amber);color:var(--rx-ink)}.py-file,.py-state{display:inline-flex;align-items:center}.py-state{margin-left:auto;padding-right:12px;gap:7px;color:var(--rx-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.py-state .dot{width:7px;height:7px;border-radius:50%;background:var(--rx-line-strong);flex:none}.py-state:not(.busy):not(.bad) .dot{background:var(--rx-ok)}.py-state.busy .dot{background:var(--rx-amber);animation:py-pulse 1s ease-in-out infinite}.py-state.bad{color:var(--rx-bad)}.py-state.bad .dot{background:var(--rx-bad)}.py-code-head .rx-btn{height:28px;margin-right:8px}@keyframes py-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.py-state.busy .dot{animation:none}}.py-editor{flex:1;min-height:0;overflow:hidden}.py-editor>div{height:100%}.py-editor .cm-editor{height:100%}.py-editor .cm-editor,.py-editor .cm-gutters{background:var(--ide-bg)}.py-editor .cm-scroller{overflow:auto}.py-editor .cm-py-error-line{background:color-mix(in srgb,var(--rx-bad) 13%,transparent)!important;box-shadow:inset 3px 0 0 var(--rx-bad)}.py-actions{display:flex;gap:8px;padding:8px 10px;border-top:1px solid var(--rx-line);background:var(--rx-cell)}.py-actions,.py-hint{flex-wrap:wrap;align-items:center}.py-hint{margin-right:auto;font-family:var(--rx-mono);font-size:11.5px;color:var(--rx-dim);display:inline-flex;gap:4px}.py-fail,.py-undo-note{margin:0;padding:6px 12px 8px;font-size:13px;color:var(--rx-dim);border-top:1px solid var(--rx-line)}.py-fail{color:var(--rx-bad)}.py-out{height:100%;display:flex;flex-direction:column;border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-surface);overflow:hidden}.py-out-tabs{display:flex;gap:2px;padding:0 6px;border-bottom:1px solid var(--rx-line);flex:none}.py-out-tabs button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;margin-bottom:-1px;font-size:13.5px;font-weight:550;color:var(--rx-dim);border-bottom:2px solid transparent}.py-out-tabs button:hover{color:var(--rx-ink)}.py-out-tabs button[aria-selected=true]{color:var(--rx-ink);border-bottom-color:var(--rx-amber)}.py-count{font-family:var(--rx-mono);font-size:11.5px;font-weight:600}.py-count.ok{color:var(--rx-ok)}.py-count.bad{color:var(--rx-bad)}.py-panel{flex:1;min-height:0;overflow:auto;padding:10px 14px 14px}.py-panel[hidden]{display:none}.py-panel-note{margin:0 0 10px;font-size:12.5px;line-height:1.45;color:var(--rx-dim)}.py-empty{margin:0;font-size:14px;color:var(--rx-dim)}.py-stream{margin:0;font-family:var(--rx-mono);font-size:13.5px;line-height:1.55;overflow-wrap:anywhere;color:var(--rx-ink)}.py-stream .stderr{color:var(--rx-bad)}.py-stream .py-figure{display:block;max-width:100%;height:auto;margin:8px 0;padding:6px;background:#fff;border:1px solid var(--rx-line);border-radius:6px}.py-meta{margin:10px 0 0;font-family:var(--rx-mono);font-size:12.5px;line-height:1.5;color:var(--rx-dim)}.py-meta.ok{color:var(--rx-ok)}.py-meta.bad{color:var(--rx-bad)}.py-err{margin:10px 0 0;padding:6px 0 6px 12px;border-left:3px solid var(--rx-bad)}.py-err-head{margin:0;font-family:var(--rx-mono);font-size:13.5px;line-height:1.5;overflow-wrap:anywhere}.py-err-head b{color:var(--rx-bad);font-weight:650}.py-err-src{margin:6px 0 0;font-family:var(--rx-mono);font-size:13px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--rx-dim)}.py-err-src .caret{color:var(--rx-bad);font-weight:700}.py-err-note{margin:6px 0 0;font-size:13px;color:var(--rx-dim)}.py-line{margin-left:4px;font-family:var(--rx-mono);font-size:12px;color:var(--rx-amber-ink);text-decoration:underline;text-underline-offset:2px}.py-line:hover{color:var(--rx-ink)}.py-verdict{margin:0 0 4px;font-family:var(--rx-mono);font-size:14px;font-weight:600}.py-verdict.ok{color:var(--rx-ok)}.py-verdict.bad{color:var(--rx-bad)}.rx-checks.py-checks{padding:0}.py-keep-spaces{white-space:pre-wrap}.py-checks .not-run,.py-checks .not-run .g{color:var(--rx-dim)}.py-cases code,.py-checks code{font-family:var(--rx-mono);font-size:12.5px}.py-cases{list-style:none;margin:6px 0 2px;padding:0}.py-cases li{display:flex;gap:6px;padding:2px 0;border:0;font-size:12.5px;color:var(--rx-dim)}.py-cases .pass .g{color:var(--rx-ok)}.py-cases .fail .g{color:var(--rx-bad)}.py-checkout{margin-top:12px}.py-checkout summary{cursor:pointer;font-size:13px;color:var(--rx-dim)}.py-checkout .py-stream{margin-top:6px}.py-preview-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px clamp(14px,2.5vw,28px);border-bottom:1px solid var(--rx-line);font-size:13px;color:var(--rx-dim)}.py-preview-bar .push{flex:1}.py-preview-bar [aria-pressed=true]{border-color:var(--rx-ink);color:var(--rx-ink)}.py-preview-bar+.py-ws{height:calc(100dvh - 48px - 26px - 51px)}@media (max-width:760px){.py-preview-bar+.py-ws,.py-ws{height:auto;min-height:0;display:block}.py-split{display:block;height:auto}.py-divider{display:none}.py-split-a,.py-split-b,.py-task{overflow:visible}.py-task{height:auto;padding:18px 16px 6px}.py-work{padding:10px 12px 28px}.py-code,.py-editor,.py-work{height:auto}.py-editor .cm-editor{height:auto;min-height:210px;max-height:60dvh}.py-actions .rx-btn{flex:1 1 auto;justify-content:center}.py-hint{display:none}.py-out{height:auto;margin-top:12px}.py-panel{overflow:visible;min-height:120px}}.py-ch-prompt code,.py-fix code,.py-lesson .rx-brief code,.py-looks-list code,.py-prose code,.rx-feedback code,.rx-hints code,.rx-quiz code{font-family:var(--rx-mono);font-size:.9em;color:var(--rx-amber-ink)}.py-lesson .rx-brief h2.rx-label{font-size:12px}.py-prose{margin:10px 0}.py-static-code{margin:10px 0 14px;max-width:44rem;padding:12px 14px;border:1px solid var(--rx-line);border-radius:8px;background:var(--ide-bg);font-family:var(--rx-mono);font-size:14px;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.py-run-cell .rx-cell-in pre,.py-static-code{color:var(--rx-ink)}.py-cell-out{padding:10px 14px 12px;border-top:1px dashed var(--rx-line-strong);background:var(--rx-surface)}.py-cell-out .py-err:first-child,.py-cell-out .py-meta:first-child{margin-top:0}.py-line-text{margin-left:4px;font-family:var(--rx-mono);font-size:12px;color:var(--rx-dim)}.py-mistake{max-width:46rem;margin:16px 0 26px}.py-mistake-title{margin:0;font-weight:650;font-size:15.5px}.py-fix{margin:4px 0 0;font-size:14.5px;color:var(--rx-dim)}.py-fix:before{content:"Fix › ";font-family:var(--rx-mono);font-size:12.5px;color:var(--rx-ok)}.py-ch-title{margin:4px 0 0;font-size:1.2rem;font-weight:650;letter-spacing:-.015em}.py-ch-prompt{margin:6px 0 0;font-size:15.5px;line-height:1.6}.py-looks{margin:12px 0 4px;font-family:var(--rx-mono);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rx-dim)}.py-looks-list{font-size:14.5px}.py-expected{margin:0 0 4px;padding:8px 12px;font-family:var(--rx-mono);font-size:13.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--rx-cell);border:1px solid var(--rx-line);border-radius:6px;color:var(--rx-ink)}.py-help{display:flex;flex-wrap:wrap;gap:4px;margin:10px -8px -6px}.py-lesson-code .py-work-split{height:clamp(440px,calc(100dvh - 300px),720px)}.py-lesson-work .rx-cell{margin:12px 0}.py-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 14px;margin:0 0 10px;padding:10px 12px;border:1px solid var(--rx-line-strong);border-left:3px solid var(--rx-ok);border-radius:8px;background:color-mix(in srgb,var(--rx-ok) 6%,var(--rx-surface));font-size:14px}.py-banner p{margin:0;flex:1 1 16rem}.py-banner b{color:var(--rx-ok)}.py-banner.assisted{border-left-color:var(--rx-amber);background:color-mix(in srgb,var(--rx-amber) 8%,var(--rx-surface))}.py-banner.assisted b{color:var(--rx-amber-ink)}.py-tip{color:var(--rx-ink)!important}.py-tip b{font-weight:650}.py-link{font-size:inherit}.py-quiz-q .rx-question-text{margin:6px 0 0;font-size:15.5px}.py-quiz-q .py-static-code{margin:10px 0 4px}.py-quiz-q .rx-quiz{margin-bottom:4px}.py-quiz .py-banner{margin-top:6px}.rx-tabs button[aria-disabled=true]{color:var(--rx-dim);cursor:not-allowed}.py-complete{padding:18px 18px 20px;border:1px solid var(--rx-line-strong);border-left:3px solid var(--rx-ok);border-radius:10px;background:var(--rx-surface)}.py-complete-title{margin:0;font-size:1.45rem;font-weight:650;letter-spacing:-.02em;color:var(--rx-ok)}.py-complete-sub{margin:8px 0 0;font-size:15.5px}.py-complete-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.py-home{max-width:980px}.py-home .rx-lead{margin-bottom:8px}.py-module{margin-top:34px}.py-module-title{margin:0;font-size:1.45rem;font-weight:650;letter-spacing:-.02em}.py-module-sum{margin:4px 0 14px;color:var(--rx-dim)}.py-lessons{list-style:none;margin:0;padding:0;border-top:1px solid var(--rx-line)}.py-lesson-row{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto auto;align-items:center;gap:6px 18px;padding:14px 6px;border-bottom:1px solid var(--rx-line)}.py-lesson-row:hover{background:color-mix(in srgb,var(--rx-amber-soft) 45%,transparent)}.py-lesson-row .n{color:var(--rx-amber-ink)}.py-lesson-row .name{display:block;font-weight:650;font-size:16px}.py-lesson-row .sum{display:block;font-size:14px;color:var(--rx-dim)}.py-lesson-row .s{font-size:12.5px;color:var(--rx-dim);white-space:nowrap}.py-lesson-row .s.ok{color:var(--rx-ok)}.py-lesson-row .go{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14px;white-space:nowrap}.py-home .rx-small,.py-lesson .rx-cap,.py-lesson .rx-small,.py-quiz .rx-small{color:var(--rx-dim)}@media (max-width:700px){.py-lesson-code .py-work-split{height:auto}.py-lesson-row{grid-template-columns:2rem minmax(0,1fr)}.py-lesson-row .go,.py-lesson-row .s{grid-column:2}}.py-hint-esc{display:inline-flex;align-items:center;gap:4px}.py-lesson-code .py-hint-esc{display:none}.py-lesson-work .rx-tabs button{position:relative}.py-home .rx-prompt-line,.py-lesson .rx-prompt-line,.py-lesson .rx-task-bar .rx-small{color:var(--rx-dim)}.py-run-cell .rx-cell-head .rx-btn{color:var(--rx-ink)}.py-lesson-bar .rx-small{color:var(--rx-dim)}.py-summary-wrap:empty{display:none}.py-summary-wrap{border-top:1px solid var(--rx-line);background:var(--rx-surface);scroll-margin:12px}.py-summary-busy{margin:0;padding:10px 12px;font-family:var(--rx-mono);font-size:12.5px;color:var(--rx-dim)}.py-summary{padding:10px 12px 10px 14px;border-left:3px solid var(--rx-bad)}.py-summary.ok{border-left-color:var(--rx-ok)}.py-summary-verdict{margin:0;font-family:var(--rx-mono);font-size:14px;font-weight:650;color:var(--rx-bad);outline:none}.py-summary.ok .py-summary-verdict{color:var(--rx-ok)}.py-summary-first{margin:6px 0 0;font-size:14.5px;line-height:1.55;overflow-wrap:anywhere}.py-summary-first .k{font-family:var(--rx-mono);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--rx-dim)}.py-summary-tip{display:block;margin-top:4px}.py-summary-tip b{font-weight:650}.py-summary-foot{display:flex;flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;font-size:13px;color:var(--rx-dim)}.py-summary-foot:empty{display:none}.py-summary .py-banner{margin:10px 0 0}.py-lesson-code .py-work-split{display:block;height:auto}.py-lesson-code .py-work-split>.py-divider{display:none}.py-lesson-code .py-split-a,.py-lesson-code .py-split-b{overflow:visible}.py-lesson-code .py-code{height:auto}.py-lesson-code .py-editor{flex:none;height:clamp(200px,32dvh,380px)}.py-lesson-code .py-out{height:clamp(220px,36dvh,440px);margin-top:12px}@media (max-width:760px){.py-lesson-code .py-editor,.py-lesson-code .py-out{height:auto}}.py-catalog{max-width:1060px}.py-catalog h2{margin:30px 0 12px;font-size:1.35rem;font-weight:650}.py-catalog-list{padding:0;list-style:none}.py-catalog-list li{padding:16px 0;border-bottom:1px solid var(--rx-line)}.py-catalog-list a{font-size:1.1rem;font-weight:600;text-decoration:underline;text-underline-offset:4px}.py-catalog-list p{margin:8px 0 0;max-width:75ch;line-height:1.6}.py-catalog-list h2{margin:0}.py-filters,.py-links{display:flex;flex-wrap:wrap;gap:16px;margin:20px 0}.py-links a,.py-next a{text-decoration:underline;text-underline-offset:4px}.py-brief label,.py-filters label{display:flex;flex-direction:column;gap:6px}.py-brief select,.py-filters input,.py-filters select,.py-prediction textarea{border:1px solid var(--rx-line-strong);border-radius:5px;padding:10px;background:var(--rx-surface);color:var(--rx-ink)}.py-study{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100dvh - 74px)}.py-brief{padding:28px;min-width:0;line-height:1.65}.py-brief h1{font-size:1.7rem;line-height:1.2;font-weight:650}.py-brief h2{font-size:1.1rem;font-weight:650;margin:24px 0 8px}.py-brief p{margin:14px 0;max-width:70ch}.py-brief ul{list-style:disc;padding-left:22px}.py-brief pre,.py-journey-intro pre,.py-prediction pre{white-space:pre-wrap;overflow-wrap:anywhere;padding:16px;background:var(--rx-cell);border:1px solid var(--rx-line);font-size:13px}.py-study-code{height:max(720px,calc(100dvh - 74px));padding:18px;min-width:0;display:flex;flex-direction:column}.py-prediction{padding:20px;line-height:1.65}.py-prediction h2{font-size:1.25rem;margin-bottom:16px}.py-prediction label{display:block;margin-top:20px}.py-prediction textarea{display:block;width:100%;margin:10px 0;font-family:var(--rx-mono)}.py-journey-intro{padding-bottom:20px}.py-journey-intro p{max-width:78ch;line-height:1.65;margin:14px 0}.py-stage-list{display:flex;flex-wrap:wrap;gap:14px;margin-top:24px;list-style:none;padding:0}.py-stage-list li{display:flex;flex-direction:column;gap:5px;font-size:13px}.py-stage-list .rx-btn{white-space:normal;height:auto;min-height:40px;text-align:left;padding:10px}.py-stage-list [aria-current=step]{outline:2px solid var(--rx-amber)}.py-stream{white-space:pre-wrap}.py-table-scroll{overflow-x:auto;max-width:100%;white-space:normal;margin:12px 0}.py-table-scroll table{border-collapse:collapse;font-size:13px}.py-table-scroll caption{text-align:left;padding:8px}.py-table-scroll td,.py-table-scroll th{padding:8px 12px;border:1px solid var(--rx-line);text-align:left;white-space:nowrap}.py-table-scroll small{display:block;font-weight:400}@media (max-width:800px){.py-study{display:block}.py-brief{padding:20px 16px}.py-study-code{height:760px;padding:12px}.py-filters label{width:100%}.py-stage-list{display:grid}}.py-editor .cm-gutters{color:var(--ide-text)}.py-editor .cm-scroller:focus-visible{outline:2px solid var(--rx-amber);outline-offset:-2px}.py-editor{--ide-line-number:var(--ide-text);--ide-str:#5d43a6;--ide-selection:#f0c14b}[data-theme=dark] .py-editor{--ide-str:#e394dc;--ide-selection:#6e5424}.py-editor .cm-activeLine{background-color:transparent!important}.py-table-scroll table{min-width:240px}.py-table-scroll caption{white-space:nowrap}.py-project-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:10px;font-size:13px}.py-level{text-transform:capitalize;padding:3px 8px;border:1px solid var(--rx-line-strong);border-radius:4px;font-weight:600}.py-project-catalog>li{padding:24px 0}.py-project-preparation{padding:18px 0;border-block:1px solid var(--rx-line);margin:22px 0}.py-learning-loop h2,.py-project-preparation h2{font-size:1.2rem;font-weight:650;margin:12px 0}.py-project-preparation ul{list-style:disc;padding-left:22px;line-height:1.8}.py-further a,.py-project-preparation a{text-decoration:underline;text-underline-offset:3px}.py-learning-loop{margin:32px 0;padding:20px;border-left:3px solid var(--rx-amber);background:var(--rx-cell);line-height:1.7}.py-learning-loop ol{list-style:decimal;padding-left:22px}.py-learning-loop li{padding:5px 0}.py-learning-loop p{margin-top:12px}#questions{scroll-margin-top:75px}.py-filter-control{display:flex;flex-direction:column;gap:6px}@media (max-width:800px){.py-filter-control{width:100%}}.py-task-cell .py-editor{flex:none;height:auto;overflow:visible}.py-task-cell .py-editor .cm-editor,.py-task-cell .py-editor>div{height:auto}.py-cell-output{border-top:1px solid var(--rx-line)}.py-cell-results{padding:12px 14px}.py-file-data{display:grid;gap:16px}.py-file-data details{min-width:0;padding:14px;border:1px solid var(--rx-line);border-radius:8px}.py-file-data summary{cursor:pointer;font-size:12.5px;font-weight:600}.py-file-data pre{margin:12px 0 0;padding-top:10px;border-top:1px solid var(--rx-line);max-height:320px;overflow:auto;font-family:var(--rx-mono);font-size:12px;line-height:1.6}.py-project-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.py-finding,.py-prediction-input{display:block;width:100%;padding:14px;border:1px solid var(--rx-line);border-radius:6px;color:var(--rx-ink);background:var(--rx-bg);font:inherit;line-height:1.6;resize:vertical}.py-prediction-input{border:0;border-radius:0;font-family:var(--rx-mono);min-height:clamp(280px,calc(100dvh - 340px),820px);background:var(--ide-bg)}.py-report-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.7 var(--rx-mono)}.py-challenge,.py-lesson-work,.py-task-panel,.py-task-work{height:auto;max-height:none;overflow:visible}.py-challenge>.rx-question{max-height:none;overflow:visible}.py-task-cell{display:grid;grid-template-rows:auto minmax(280px,1fr) auto}.py-task-cell.has-output{grid-template-rows:auto minmax(280px,1fr) auto minmax(280px,1fr)}.py-task-cell .py-editor,.py-task-cell .py-editor>div{display:flex;flex-direction:column;height:auto;min-height:0;overflow:visible}.py-task-cell .py-editor .cm-editor,.py-task-cell .py-editor>div{flex:1}.py-task-cell .py-editor .cm-editor{height:auto;min-height:280px!important;max-height:none}.py-task-cell .py-cell-output,.py-task-cell .py-cell-results,.py-task-cell .py-editor .cm-scroller{height:auto;max-height:none;overflow:visible}.py-task-cell .py-panel-note{display:none}.py-file-data-full pre{max-height:none;overflow:visible;white-space:pre-wrap;overflow-wrap:anywhere}.py-file-data-full .rx-table-wrap{overflow:visible;padding-inline:0}.py-file-data-full .rx-table{table-layout:fixed;width:100%;min-width:0}.py-file-data .rx-table td,.py-file-data .rx-table th{white-space:normal;overflow-wrap:anywhere;padding:10px 12px;vertical-align:top}.py-file-data-full summary{flex-wrap:wrap}.py-file-data .rx-schema-table{container-type:inline-size}.py-file-data summary{align-items:baseline;flex-wrap:wrap;gap:4px 12px}.py-file-data summary span{font-weight:400}.py-file-data .rx-table .py-data-id{white-space:nowrap}.py-file-records{display:none}.py-file-records dl{margin:0;padding:10px 0;border-bottom:1px solid var(--rx-line)}.py-file-records dl>div{display:grid;grid-template-columns:minmax(90px,2fr) minmax(0,3fr);gap:12px;padding:6px 0}.py-file-records dt{color:var(--rx-dim);overflow-wrap:anywhere}.py-file-records dd{margin:0;overflow-wrap:anywhere}@container (max-width: 440px){.py-file-data-full .rx-table-wrap{display:none}.py-file-data-full .py-file-records{display:block}}:root{--p2-signal:#3a6b35;--p2-signal-soft:#eef4ec;--p2-ok-soft:#e8f4ee;--p2-bad-soft:#fdecea}html[data-theme=dark]{--p2-signal:#9fd39a;--p2-signal-soft:#16241a;--p2-ok-soft:#10241a;--p2-bad-soft:#2a1414}.p2 .cm-content,.p2 .p2-mono,.p2 code,.p2 pre,.p2 table{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}.p2 code{font-size:.92em;overflow-wrap:anywhere}.p2 code,.p2-mono{font-family:var(--rx-mono)}.p2-subbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px clamp(16px,3vw,32px);border-bottom:1px solid var(--rx-line);font-size:14px}.p2-subbar a{text-decoration:none}.p2-subbar .count{font-family:var(--rx-mono);margin-left:12px}.p2-pager{display:inline-flex;border:1px solid var(--rx-line-strong);border-radius:8px;overflow:hidden}.p2-pager a,.p2-pager span{padding:6px 14px;font-weight:550}.p2-pager>*+*{border-left:1px solid var(--rx-line-strong)}.p2-pager span{font-style:italic}.p2-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:calc(100dvh - 140px)}.p2-read{padding:32px clamp(16px,3vw,36px) 48px;border-right:1px solid var(--rx-line);min-width:0}.p2-work{padding:20px clamp(16px,2.5vw,28px) 32px;display:flex;flex-direction:column;gap:14px;min-width:0}@media (min-width:900px){.p2-work{position:sticky;top:48px;align-self:start;max-height:calc(100dvh - 48px);overflow:auto;z-index:1}}.p2-eyebrow{font:13px var(--rx-mono)}.p2-eyebrow b{color:var(--rx-amber-ink);font-weight:500}.p2 h1{font:700 clamp(26px,3vw,32px)/1.15 var(--rx-sans);letter-spacing:-.035em;margin:8px 0 10px}.p2-lede{font-size:16.5px;margin:0 0 6px}.p2 h2.p2-label{font-weight:600}.p2-label{font:600 12px var(--rx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-amber-ink);margin:28px 0 10px}.p2-prose{font-size:16px;line-height:1.7}.p2-prose p{margin:0 0 12px}.p2-prose ol,.p2-prose ul{margin:-4px 0 12px;padding-left:22px}.p2-prose ul{list-style:disc}.p2-prose ol{list-style:decimal}.p2-prose li+li{margin-top:4px}.p2-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.p2-chip{font:12px var(--rx-mono);border:1px solid var(--rx-line-strong);border-radius:5px;padding:1px 7px;background:var(--rx-cell)}.p2-chip.mode{border-color:var(--p2-signal);color:var(--p2-signal);background:var(--p2-signal-soft)}.p2-chip.review{border-color:var(--rx-amber);color:var(--rx-amber-ink);background:var(--rx-amber-soft)}.p2-list{margin:0;padding:0;list-style:none;display:grid;gap:6px}.p2-list li{display:grid;grid-template-columns:18px 1fr;gap:8px}.p2-list li:before{content:"→";color:var(--rx-amber-ink);font-family:var(--rx-mono)}.p2-example{border:1px solid var(--rx-line);border-radius:8px;overflow:hidden;margin:10px 0 18px}.p2-example-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 12px;background:var(--ide-chrome);border-bottom:1px solid var(--ide-border);font:12px var(--rx-mono)}.p2-example-acts{display:inline-flex;align-items:center;gap:6px}.p2-py-console{margin:0;padding:12px 14px;border-top:1px solid var(--ide-border);background:var(--ide-bg);color:var(--ide-fg);font:13.5px/1.55 var(--rx-mono);white-space:pre-wrap}.p2-py-console .p2-py-err,.p2-py-console.bad{color:var(--rx-bad)}.p2-example .note{padding:8px 14px;font-size:14px;border-top:1px solid var(--rx-line)}.p2 .p2-small-btn{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;border:1px solid var(--rx-line-strong);border-radius:5px;padding:1px 8px;background:var(--rx-bg);font:inherit;cursor:pointer;color:inherit}.p2 .p2-small-btn:disabled{opacity:.5;cursor:default}.p2-tabs{display:flex;gap:2px;border-bottom:1px solid var(--rx-line);overflow-x:auto}.p2-tabs button{display:inline-flex;align-items:center;gap:7px;padding:10px 12px 9px;font:550 14px var(--rx-sans);border:0;border-bottom:2px solid transparent;background:none;color:inherit;cursor:pointer;white-space:nowrap}.p2-work>.p2-tabs button{color:var(--ide-muted);border-bottom:2px solid transparent}.p2-work>.p2-tabs button:hover{color:var(--rx-ink);background:var(--rx-cell)}.p2-work>.p2-tabs button[aria-selected=true]{color:var(--rx-ink);border-bottom-color:var(--rx-amber);background:var(--rx-amber-soft);font-weight:650}.p2-dot{width:13px;height:13px;border:1.5px solid;border-radius:50%;display:inline-block}.p2-dot.on{background:var(--rx-amber);border-color:var(--rx-amber)}.p2-dot.done{background:var(--rx-ok);border-color:var(--rx-ok)}.p2-dot.assisted{background:linear-gradient(90deg,var(--rx-ok) 50%,transparent 50%);border-color:var(--rx-ok)}.p2-task{border:1px solid var(--rx-line);border-left:3px solid var(--rx-amber);border-radius:8px;padding:14px 18px}.p2-task .p2-label{margin-top:0}.p2-task .p2-prose{font-size:15.5px}.p2-spec{border:1px solid var(--rx-line);border-radius:6px;margin-top:10px}.p2-spec div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:12px;padding:8px 12px;font-size:14px}.p2-spec div+div{border-top:1px solid var(--rx-line)}.p2-spec b{font-weight:600}.p2-bench{border:1px solid var(--ide-border);border-radius:8px;overflow:hidden;background:var(--ide-bg);display:flex;flex-direction:column}.p2-bench-bar{display:flex;justify-content:space-between;align-items:stretch;background:var(--ide-chrome);border-bottom:1px solid var(--ide-border);font:12.5px var(--rx-mono)}.p2-files{display:flex;overflow-x:auto;flex:1 1 auto;min-width:0}.p2-files button{padding:8px 14px;border:0;border-right:1px solid var(--ide-border);background:none;color:inherit;font:inherit;display:inline-flex;gap:6px;align-items:center;cursor:pointer;white-space:nowrap}.p2-files button[aria-selected=true]{background:var(--ide-bg);box-shadow:inset 0 2px 0 var(--rx-amber)}.p2-ro{font-size:10.5px;border:1px solid var(--rx-line-strong);border-radius:4px;padding:0 4px}.p2-keys{display:flex;align-items:center;gap:4px;padding:0 12px;white-space:nowrap}.p2-bench .py-editor .cm-editor{min-height:180px;max-height:52dvh}.p2-readonly{margin:0;padding:10px 14px;font:13px/1.6 var(--rx-mono);white-space:pre;overflow:auto;max-height:52dvh;color:var(--ide-text)}.p2-actions{justify-content:space-between;gap:8px;padding:8px 10px;background:var(--ide-chrome);border-top:1px solid var(--ide-border)}.p2-actions,.p2-actions>div{display:flex;align-items:center;flex-wrap:wrap}.p2-actions>div{gap:6px}.p2 button.p2-btn,.p2-btn{display:inline-flex;align-items:center;gap:6px;font:550 14px var(--rx-sans);padding:6px 12px;border-radius:6px;border:1px solid transparent;color:inherit;background:transparent;cursor:pointer;text-decoration:none}.p2 button.p2-btn:disabled,.p2-btn:disabled{opacity:.5;cursor:default}.p2 button.p2-btn.line,.p2-btn.line{border-color:var(--rx-line-strong);background:var(--rx-bg)}.p2 button.p2-btn.primary,.p2-btn.primary{background:var(--rx-ink);color:var(--rx-bg)}.p2-btn:focus-visible,.p2-files button:focus-visible,.p2-small-btn:focus-visible,.p2-tabs button:focus-visible{outline:2px solid var(--rx-amber);outline-offset:2px}.p2-results{border:1px solid var(--rx-line);border-radius:8px;overflow:hidden}.p2-results .p2-tabs{padding:0 6px;background:var(--rx-cell)}.p2-console{font:13px/1.6 var(--rx-mono);padding:12px 14px;white-space:pre-wrap;overflow-wrap:anywhere;max-height:46dvh;overflow:auto;background:var(--ide-bg);color:var(--ide-fg)}.p2-console .bad,.p2-console .stderr{color:var(--rx-bad)}.p2-console kbd.stdin{display:inline;min-width:0;height:auto;font:inherit;color:var(--rx-amber-ink);background:var(--rx-amber-soft);border:1px dashed var(--rx-amber);border-radius:4px;padding:0 4px;margin:0 1px}.p2-console kbd.stdin:after{content:" ↵";opacity:.7}.p2-console .meta{font-style:italic;color:var(--ide-muted)}.p2-console img{max-width:100%;background:#fff;border:1px solid var(--rx-line);border-radius:6px;margin:6px 0;display:block}.p2-err{border-left:3px solid var(--rx-bad);padding:6px 10px;margin:6px 0;background:var(--p2-bad-soft)}.p2-err pre{margin:6px 0 0;white-space:pre-wrap;font:12.5px/1.5 var(--rx-mono)}.p2 .p2-linebtn{font:inherit;border:1px solid;border-radius:4px;background:none;color:inherit;padding:0 5px;cursor:pointer}.p2-verdict{display:grid;grid-template-columns:22px 1fr;gap:8px;padding:12px 14px;border-bottom:1px solid var(--rx-line)}.p2-verdict.fail{background:var(--p2-bad-soft)}.p2-verdict.pass{background:var(--p2-ok-soft)}.p2-verdict b{display:block}.p2-check{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:9px 14px;border-bottom:1px solid var(--rx-line);font-size:14px}.p2-check:last-child{border-bottom:0}.p2-mark{font:700 13px var(--rx-mono)}.p2-mark.pass{color:var(--rx-ok)}.p2-mark.fail{color:var(--rx-bad)}.p2-mark.not-run{font-weight:400}.p2-case{font:12.5px/1.5 var(--rx-mono);background:var(--rx-cell);border-radius:5px;padding:6px 9px;margin-top:6px;display:grid;grid-template-columns:70px minmax(0,1fr);gap:2px 10px}.p2-case .bad{color:var(--rx-bad)}.p2-case>span{min-width:0;overflow-wrap:anywhere}.p2-diff>span{white-space:pre-wrap}.p2-diff mark{background:var(--p2-bad-soft);color:inherit;outline:1px solid var(--rx-bad);border-radius:2px}.p2-diff mark.p2-diff-end{display:inline-block;width:.6em}.p2-parts{display:block}.p2-parts>div{overflow-wrap:anywhere}.p2-parts>div.bad{color:var(--rx-bad)}.p2-parts code{font:inherit}.p2-case-setup{font:12px/1.45 var(--rx-mono);background:var(--rx-cell);border-radius:5px;padding:6px 9px;margin:6px 0 0;white-space:pre-wrap;max-height:160px;overflow:auto}.p2-note{font-size:13.5px}.p2-empty{padding:14px;font-size:14px}.p2-help{display:grid;gap:8px;margin-top:10px;padding:12px 14px;border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-cell);font-size:14px}.p2-help>b{font:600 12px var(--rx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-amber-ink)}.p2-help ol{margin:0;padding-left:20px;display:grid;gap:4px}.p2-help pre{margin:0;background:var(--ide-bg);color:var(--ide-fg);border:1px solid var(--ide-border);border-radius:6px;padding:10px 12px;white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 var(--rx-mono)}.p2-help .p2-note{margin:0}.p2-data{border:1px solid var(--rx-line);border-radius:8px;overflow:hidden}.p2-data-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;padding:10px 14px;font:13px var(--rx-mono);border-bottom:1px solid var(--rx-line)}.p2-table-wrap{overflow-x:auto}.p2 table{border-collapse:collapse;width:100%;font:12.5px/1.4 var(--rx-mono)}.p2 td,.p2 th{text-align:left;padding:8px 12px;border-bottom:1px solid var(--rx-line);white-space:nowrap}.p2 th{background:var(--rx-cell);font-weight:650;vertical-align:bottom}.p2 th small{display:block;font-weight:400;font-size:11px;margin-top:2px;color:var(--rx-ink);opacity:.75}.p2 td.num{text-align:right}.p2 td.null{font-style:italic}.p2-data-foot{padding:8px 14px;font:12px var(--rx-mono)}.p2-quiz{display:grid;gap:16px}.p2-q{border:1px solid var(--rx-line);border-radius:8px;padding:14px 16px}.p2-q .p2-code{border:1px solid var(--ide-border);border-radius:6px;margin:8px 0}.p2-choices{display:grid;gap:6px;margin-top:8px;border:0;padding:0}.p2-choices label{display:grid;grid-template-columns:20px 1fr;gap:8px;align-items:start;padding:7px 10px;border:1px solid var(--rx-line);border-radius:6px;cursor:pointer}.p2-choices label.right{border-color:var(--rx-ok);background:var(--p2-ok-soft)}.p2-choices label.wrong{border-color:var(--rx-bad);background:var(--p2-bad-soft)}.p2-choices .c{font-family:var(--rx-mono);white-space:pre-wrap;font-size:13px}.p2-predict textarea{width:100%;min-height:140px;font:13.5px/1.6 var(--rx-mono);padding:10px 12px;border:1px solid var(--ide-border);border-radius:8px;background:var(--ide-bg);color:var(--ide-text);resize:vertical;font-variant-ligatures:none}.p2-page{max-width:var(--rt-wide,1120px);margin:0 auto;padding:32px clamp(16px,3vw,32px) 64px}.p2-stage{margin-top:26px}.p2-modules{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}.p2-module{border:1px solid var(--rx-line);border-radius:8px;padding:12px 14px}.p2-module.planned{border-style:dashed}.p2-module h3{font:650 15px var(--rx-sans);margin:2px 0 8px}.p2-module ol{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px}.p2-module li{display:flex;gap:8px;align-items:center;justify-content:space-between}.p2-module li a{text-decoration:none}.p2-module li a:hover{text-decoration:underline}.p2-module li .planned{font-style:italic}.p2-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.p2-card{border:1px solid var(--rx-line);border-radius:8px;padding:14px 16px;text-decoration:none;display:grid;gap:4px;color:inherit}.p2-card:hover{border-color:var(--rx-line-strong)}.p2-card b{font-size:15.5px}.p2-card small{font:12px var(--rx-mono)}.p2-filters{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}.p2-filters select,.p2-select select{font:13.5px var(--rx-sans);padding:5px 8px;border:1px solid var(--rx-line-strong);border-radius:6px;background:var(--rx-bg);color:inherit}.p2-rows{border:1px solid var(--rx-line);border-radius:8px;overflow:hidden}.p2-row{display:grid;grid-template-columns:90px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 14px;text-decoration:none;color:inherit}.p2-row+.p2-row{border-top:1px solid var(--rx-line)}.p2-row:hover{background:var(--rx-cell)}.p2-row .id{font:12px var(--rx-mono)}.p2-project-head{padding:22px clamp(16px,3vw,32px) 4px}.p2-project-head a{font-size:14px;text-decoration:none}.p2-project-head h1{margin:14px 0 8px}.p2-project-head p{margin:0;max-width:62ch;font-size:16px;line-height:1.45;color:var(--rx-dim)}.p2-brief{padding:28px clamp(16px,3vw,36px) 64px}.p2-brief-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:56px}.p2-brief-grid>div+div{border-left:1px solid var(--rx-line);padding-left:28px}.p2-brief h2{font:650 15px var(--rx-sans);margin:0 0 8px}.p2-brief .p2-files-note+h2,.p2-brief h2+h2,.p2-brief ol+h2{margin-top:28px}.p2-brief .rx-btn{margin-top:8px}.p2-steps{list-style:decimal;margin:0;padding-left:22px}.p2-steps li{margin:12px 0;font-size:15px}.p2-steps button{background:none;border:0;padding:0;font:inherit;font-weight:650;color:inherit;cursor:pointer;text-align:left}.p2-steps button:hover{text-decoration:underline}.p2-files-note{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:14.5px}.p2-files-note span{color:var(--rx-faint)}.p2-read h2{font:700 clamp(26px,3vw,32px)/1.15 var(--rx-sans);letter-spacing:-.035em;margin:8px 0 14px}.p2-next{margin-top:22px}.p2-rail{display:flex;gap:0;padding:14px clamp(16px,3vw,32px);border-bottom:1px solid var(--rx-line);border-top:1px solid var(--rx-line);overflow-x:auto;list-style:none;margin:18px 0 0}.p2-step{display:grid;grid-template-columns:26px auto;gap:8px;align-items:center;padding-right:26px;position:relative;white-space:nowrap;font-size:14px}.p2-step button,.p2-step span.t{font:inherit;background:none;border:0;color:inherit;padding:0;cursor:pointer}.p2-step .n{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--rx-line-strong);display:grid;place-items:center;font:600 12px var(--rx-mono)}.p2-step.done .n{background:var(--rx-ok);border-color:var(--rx-ok);color:var(--rx-bg)}.p2-step.now .n{border-color:var(--rx-amber);background:var(--rx-amber);color:var(--rx-band-ink)}.p2-step.now{font-weight:650}.p2-step.locked .n{border-style:dashed}.p2-step.overview{grid-template-columns:auto}.p2-step+.p2-step:before{content:"";position:absolute;left:-22px;top:12px;width:16px;border-top:1.5px solid var(--rx-line-strong)}.p2-step.overview+.p2-step:before{display:none}.p2-tree{font:13px/1.9 var(--rx-mono);border:1px solid var(--rx-line);border-radius:8px;padding:8px 12px}.p2-tree .tag{font-size:10.5px;margin-left:6px}.p2-done{list-style:none;padding:0;margin:0;display:grid;gap:6px;font-size:14.5px}.p2-done li{display:grid;grid-template-columns:20px 1fr;gap:8px}.p2-tool{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:calc(100dvh - 100px)}.p2-side{border-right:1px solid var(--rx-line);padding:18px 14px;background:var(--rx-cell)}.p2-side h2{font:600 12px var(--rx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-amber-ink);margin:6px 6px 10px}.p2-ds{display:grid;gap:2px;padding:9px 10px;border-radius:6px;font-size:14px;text-decoration:none;color:inherit}.p2-ds[aria-current=page]{background:var(--rx-bg);box-shadow:inset 2px 0 0 var(--rx-amber)}.p2-ds small{font:11.5px var(--rx-mono)}.p2-ds.blocked{font-style:italic}.p2-main{padding:26px clamp(16px,3vw,32px) 40px;min-width:0}.p2-editions{display:inline-flex;flex-wrap:wrap;border:1px solid var(--rx-line-strong);border-radius:8px;overflow:hidden;font:13px var(--rx-mono)}.p2-editions button{padding:6px 12px;border:0;background:none;color:inherit;font:inherit;cursor:pointer}.p2-editions button+button{border-left:1px solid var(--rx-line-strong)}.p2-editions button[aria-pressed=true]{background:var(--rx-ink);color:var(--rx-bg)}.p2-editions button:disabled{cursor:default;font-style:italic}.p2-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--rx-line);border-radius:8px;overflow:hidden;margin-top:16px}.p2-stats div{padding:12px 14px}.p2-stats div+div{border-left:1px solid var(--rx-line)}.p2-stats b{display:block;font:650 22px var(--rx-sans);letter-spacing:-.02em}.p2-stats span{font:12px var(--rx-mono)}.p2-grid2{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:20px;margin-top:20px}.p2-erd{font:12.5px/1.75 var(--rx-mono);border:1px solid var(--rx-line);border-radius:8px;padding:12px 14px;white-space:pre;overflow-x:auto}.p2-issue{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:8px 12px;font-size:13.5px}.p2-issue+.p2-issue{border-top:1px solid var(--rx-line)}.p2-issue b{font:600 12.5px var(--rx-mono)}.p2-issue .cnt{font:600 13px var(--rx-mono);color:var(--rx-amber-ink)}.p2-toolbar{display:flex;flex-wrap:wrap;padding:10px clamp(16px,2vw,20px);border-bottom:1px solid var(--rx-line)}.p2-select,.p2-toolbar{gap:8px;align-items:center}.p2-select{display:inline-flex;font-size:13.5px}.p2-select span{font:11px var(--rx-mono)}.p2-pg{display:grid;grid-template-columns:220px minmax(0,1.2fr) minmax(0,1fr)}.p2-pg .center{border-right:1px solid var(--rx-line)}.p2-pg .center,.p2-pg .out{padding:14px;min-width:0}.p2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media (max-width:899px){.p2-brief-grid,.p2-grid2,.p2-pg,.p2-split,.p2-tool{grid-template-columns:minmax(0,1fr)}.p2-read{border-right:0;border-bottom:1px solid var(--rx-line)}.p2-brief-grid>div+div{border-left:0;padding-left:0;margin-top:8px}.p2-pg .center,.p2-side{border-right:0;border-bottom:1px solid var(--rx-line)}.p2-keys{display:none}.p2-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.p2-stats div:nth-child(3){border-left:0}.p2-stats div:nth-child(n+3){border-top:1px solid var(--rx-line)}.p2-step:not(.now) .t{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.p2-row{grid-template-columns:minmax(0,1fr) auto}.p2-row .id{display:none}}.p2-card.planned{border-style:dashed}.p2-code{margin:0;padding:12px 14px;background:var(--ide-bg);color:var(--ide-text);font:13.5px/1.6 var(--rx-mono);overflow-x:auto;white-space:pre-wrap;overflow-wrap:anywhere;tab-size:4}.p2-code .hl-kw{color:var(--ide-kw);font-weight:600}.p2-code .hl-fn{color:var(--ide-fn)}.p2-code .hl-str{color:var(--ide-str)}.p2-code .hl-com{color:var(--ide-com);font-style:italic}.p2-code .hl-num{color:var(--ide-num)}.p2-pg2{display:grid;grid-template-columns:220px minmax(0,1fr);height:calc(100dvh - var(--rt-header-h, 57px) - 53px - 26px);min-height:520px}.p2-wb-cols{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:0;height:100%}.p2-wb-cols>.p2-bench{border:0;border-radius:0;border-right:1px solid var(--rx-line);min-height:0;height:100%}.p2-wb-cols>.p2-bench .py-editor{flex:1 1 auto;min-height:0;overflow:auto}.p2-wb-cols>.p2-bench .py-editor .cm-editor{height:100%;max-height:none;min-height:0}.p2-wb-cols>.p2-results{border:0;border-radius:0;overflow:auto;min-height:0}.p2-wb-cols .p2-console{max-height:none}.p2-results-note{padding:8px 14px 0;font-size:13px}.p2-chipsel{position:relative;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 26px 0 10px;border:1px solid var(--rx-line-strong);border-radius:6px;background:var(--rx-bg);font-size:13.5px}.p2-chipsel>span{font:11px var(--rx-mono)}.p2-chipsel select{appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.p2-chipsel:after{content:"▾";position:absolute;right:10px;font-size:11px;pointer-events:none}.p2-chipsel:focus-within{outline:2px solid var(--rx-amber);outline-offset:2px}.p2-files-panel>summary{list-style:none;cursor:default}.p2-files-panel>summary::-webkit-details-marker{display:none}.p2-files-panel>summary h2{display:inline}.p2-tree-flat{background:var(--rx-bg);margin:8px 0 12px}.p2-tree .on{background:var(--rx-amber-soft);border-radius:4px;padding:0 6px;margin:0 -6px;display:inline-block}@media (max-width:899px){.p2-pg2,.p2-wb-cols{grid-template-columns:minmax(0,1fr);height:auto}.p2-wb-cols>.p2-bench{border-right:0;border-bottom:1px solid var(--rx-line)}.p2-wb-cols>.p2-bench .py-editor .cm-editor{min-height:260px;max-height:60dvh}.p2-files-panel>summary{cursor:pointer}.p2-files-panel>summary h2:after{content:" ▾"}}.p2 .p2-chip-btn{cursor:pointer;color:inherit;font:12.5px var(--rx-mono);border:1px solid var(--rx-line-strong);border-radius:5px;padding:3px 9px;background:var(--rx-cell)}.p2 .p2-chip-btn.on{background:var(--rx-ink);color:var(--rx-bg);border-color:var(--rx-ink)}.p2-chip-btn:focus-visible{outline:2px solid var(--rx-amber);outline-offset:2px}.p2 table.p2-dict td.meaning{white-space:normal;min-width:260px;font-family:var(--rx-sans);font-size:13px;line-height:1.45}.p2 table.p2-dict .range{font-family:var(--rx-mono);font-size:12px}.p2 table th.num{text-align:right}.p2-more>summary{cursor:pointer;padding:6px 10px}.p2-expected{margin-top:24px}.p2-expected-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}.p2-expected-head b{font:600 12px var(--rx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-amber-ink)}.p2-expected-head span{font-size:13px}.p2-expected ol{list-style:none;margin:0;padding:8px 0;border:1px solid var(--rx-line);border-radius:6px;background:var(--rx-cell);overflow-x:auto}.p2-expected li{display:grid;grid-template-columns:2.4rem minmax(0,1fr);align-items:baseline;font:13.5px/1.6 var(--rx-mono)}.p2-expected .n{padding-right:10px;margin-right:12px;border-right:1px solid var(--rx-line);text-align:right;opacity:.7;user-select:none}.p2-expected .txt{padding-right:14px;white-space:pre-wrap;overflow-wrap:anywhere}.p2-expected .blank{color:var(--rx-faint);font-family:var(--rx-sans);font-size:13px;font-style:italic}.p2-expected.simple{margin-top:14px}.p2-expected.simple .p2-expected-head b{font:500 13px var(--rx-sans);letter-spacing:0;text-transform:none;color:var(--rx-dim)}.p2-expected.simple li{grid-template-columns:minmax(0,1fr);padding-left:14px}.rx-table.p2-glance{width:100%;min-width:0;table-layout:fixed}.rx-table.p2-glance td{white-space:normal;vertical-align:top;padding:8px 16px 8px 0}.rx-table.p2-glance td:last-child{font:14px/1.5 var(--rx-sans)}@media (max-width:480px){.p2-tabs button{padding:9px 8px 8px;gap:5px;font-size:13px}}.rx .p2.workspace-bounded .p2-split{flex:1 1 0;min-height:0;height:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);align-items:stretch}.rx .p2.workspace-bounded .p2-split>:is(.p2-read,.p2-work){position:static;align-self:stretch;height:auto;max-height:none;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:12px 64px}.rx .p2.workspace-bounded .p2-split>:focus-visible{outline:2px solid var(--rx-amber);outline-offset:-3px}.rx .p2.workspace-bounded .p2-work>*{flex-shrink:0}.rx .p2.workspace-bounded .p2-bench{overflow:visible}.rx .p2.workspace-bounded .p2-bench .py-editor{flex:none;height:clamp(120px,30dvh,360px);min-height:0;overflow:hidden}.rx .p2.workspace-bounded .p2-bench .py-editor .cm-editor,.rx .p2.workspace-bounded .p2-bench .py-editor>*{height:100%;min-height:0!important;max-height:none;overflow:hidden}.rx .p2.workspace-bounded .p2-bench .py-editor .cm-scroller{height:100%;overflow:auto}.rx .p2.workspace-bounded .p2-actions{position:sticky;bottom:0;z-index:2}.rx .p2.workspace-bounded .p2-project-head{padding-block:12px}@media (max-width:899px){.rx .p2.workspace-bounded .p2-split{grid-template-columns:minmax(0,1fr)}.rx .p2.workspace-bounded .p2-split>:is(.p2-read,.p2-work){padding:12px}}@media (max-height:600px),(max-width:899px){.rx .p2.workspace-bounded .p2-split{flex:none;height:auto;grid-template-rows:auto}.rx .p2.workspace-bounded .p2-split>:is(.p2-read,.p2-work){overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto}.rx .p2.workspace-bounded .p2-actions{position:static}}.p2-verdict-next{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.p2 a.p2-btn.line,.p2 a.p2-btn.primary{text-decoration:none}.p2 a.p2-btn.primary:hover{opacity:.9}.p2-complete{display:grid;gap:8px;justify-items:start;padding:14px 16px;border:1px solid var(--rx-ok);border-radius:8px;background:var(--p2-ok-soft)}.p2-complete>b{font:650 16px var(--rx-sans);color:var(--rx-ok)}.p2-complete p{margin:0;font-size:14.5px;line-height:1.5}.p2-complete-acts{display:flex;flex-wrap:wrap;gap:8px}.p2-brief .p2-complete{margin-bottom:24px}.p2 .rx-pager [aria-disabled=true]{opacity:.4;cursor:not-allowed}.p2-level{font-weight:600}.p2-level.easy{color:var(--rx-ok)}.p2-level.medium{color:var(--rx-amber-ink)}.p2-level.hard{color:var(--rx-bad)}.p2-drawer{max-height:min(76vh,720px)}.p2-drawer-n{font-size:12px;color:var(--rx-faint);margin-right:6px}@media (max-height:600px),(max-width:899px){.rx .p2.workspace-bounded .p2-work{scroll-margin-top:56px}.p2-rail{flex-wrap:wrap;row-gap:10px;overflow-x:visible}.p2-step.overview .t{position:static;width:auto;height:auto;overflow:visible;clip:auto}.p2-step:not(.now):not(.overview) .t{position:absolute;inset:0;width:auto;height:auto;clip:auto;opacity:0}.p2-step{padding-right:14px}.p2-step+.p2-step:before{display:none}.p2-step:has(>.t:focus-visible) .n{outline:2px solid var(--rx-amber);outline-offset:2px}.p2-files{flex-wrap:wrap;overflow-x:visible}.p2-files button{border-bottom:1px solid var(--ide-border)}}.pt{--pt-pad:clamp(16px,3vw,32px)}.pt code{font-family:var(--rx-mono);font-size:.92em}.pt-muted{color:var(--rx-faint);opacity:.75;font-size:14px;margin:6px 0}.pt-caption{font:12px var(--rx-mono);color:var(--rx-faint);margin:10px 0 6px}.pt-grow{flex:1}.rx-btn.pt-icon{width:34px;padding:0;justify-content:center}.rx-btn.pt-mini{height:24px;padding:0 8px;font-size:12px}.pt-page{padding:28px var(--pt-pad) 56px;max-width:1080px}.pt-page.pt-wide{max-width:1400px}.pt-title{font-size:clamp(1.5rem,2.4vw,1.9rem);font-weight:700;letter-spacing:-.01em;margin:0}.pt-lede{font-size:16px;margin:6px 0 0;max-width:46rem}.pt-task{margin:0 0 14px;font-size:15.5px}.pt-back{margin:0 0 10px;font-size:14px}.pt-back a{color:inherit;opacity:.75}.pt-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px var(--pt-pad);border-bottom:1px solid var(--rx-line);background:var(--rx-bg)}.pt-bar-flat{padding:0;border:0;margin:18px 0 14px;background:none}.pt-bar-title{font-size:16px;font-weight:700;margin:0 8px 0 0}.pt-select{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 4px 0 10px;border:1px solid var(--rx-line-strong);border-radius:6px;background:var(--rx-surface);font-size:13.5px;max-width:100%}.pt-select>span{font-size:12.5px;opacity:.7}.pt-select select{border:0;background:transparent;color:inherit;font:600 13.5px var(--rx-sans);padding:0 4px;cursor:pointer;min-width:0;max-width:100%;text-overflow:ellipsis}.pt-select:focus-within{outline:2px solid var(--rx-amber);outline-offset:2px}.pt-select select:focus{outline:none}.pt-more{position:relative}.pt-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;min-width:220px;padding:4px;border:1px solid var(--rx-line-strong);border-radius:8px;background:var(--rx-surface);box-shadow:var(--rx-shadow);display:grid}.pt-menu button{text-align:left;border:0;background:none;color:inherit;font:14px var(--rx-sans);padding:8px 10px;border-radius:5px;cursor:pointer}.pt-menu button:focus-visible,.pt-menu button:hover{background:var(--rx-line)}.pt-menu button:disabled{opacity:.45;cursor:default;background:none}.pt-menu button.danger{color:var(--rx-bad)}.pt-out-head{display:flex;gap:2px;border-bottom:1px solid var(--rx-line);padding:0 8px}.pt-mtabs button,.pt-out-head button,.pt-tabhead [role=tab],.pt-tabs button{border:0;border-bottom:2px solid transparent;background:none;color:inherit;font:550 14px var(--rx-sans);padding:10px 10px 8px;cursor:pointer;white-space:nowrap;opacity:.7}.pt-mtabs button[aria-selected=true],.pt-out-head button[aria-selected=true],.pt-tabhead [role=tab][aria-selected=true],.pt-tabs button[aria-selected=true]{border-bottom-color:var(--rx-amber);opacity:1}.pt-out-body{padding:12px 14px;min-height:0;overflow:auto}.pt-out-body .p2-console{max-height:none;border-radius:6px}.pt-preview{overflow:auto;max-height:340px;border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-surface)}.pt-preview table{border-collapse:collapse;font:12.5px/1.45 var(--rx-mono);width:max-content;min-width:100%}.pt-preview th{position:sticky;top:0;background:var(--rx-cell);text-align:left;font-weight:600}.pt-preview td,.pt-preview th{padding:6px 12px;border-bottom:1px solid var(--rx-line);white-space:nowrap;max-width:28ch;overflow:hidden;text-overflow:ellipsis}.pt-preview td.empty{opacity:.45}.pt-preview td.num{text-align:right;font-variant-numeric:tabular-nums}.pt-about .pt-preview td{white-space:normal;max-width:48ch}.pt-playground{display:flex;flex-direction:column;height:calc(100dvh - 48px);min-height:480px}.pt-playground .pt-split{flex:1 1 auto;min-height:0}.pt-pane{height:100%;min-height:0}.pt-editor,.pt-pane{display:flex;min-width:0}.pt-editor{flex:1 1 auto;overflow:auto;flex-direction:column}.pt-editor>.cm-theme,.pt-editor>div:last-child{flex:1 1 auto}.pt-editor .cm-editor{height:100%}.pt-out{flex-direction:column;background:var(--rx-cell)}.pt-out .pt-out-body{flex:1 1 auto}.pt-files{width:250px;flex:none;border-right:1px solid var(--rx-line);overflow:auto;padding:10px;background:var(--rx-cell)}.pt-files-head{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px;font-size:14px}.pt-files ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.pt-files li button{width:100%;text-align:left;border:0;background:none;color:inherit;padding:6px 8px;border-radius:6px;cursor:pointer;display:grid;gap:1px;font-size:14px}.pt-files li button code{font-size:11.5px;opacity:.6}.pt-files li button:hover,.pt-files li button[aria-pressed=true]{background:var(--rx-line)}.pt-peek{margin-top:10px}.pt-peek .pt-preview{max-height:220px}.pt-confirm{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--rx-amber-soft);border-bottom:1px solid var(--rx-amber);font-size:14px}.pt-confirm span{flex:1 1 14rem}.pt-mtabs{display:none}.pt-cards{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:14px}.pt-card{position:relative;display:grid;gap:6px;padding:18px 44px 18px 18px;border:1px solid var(--rx-line-strong);border-radius:10px;background:var(--rx-surface);color:inherit;text-decoration:none;height:100%}.pt-card:hover{border-color:var(--rx-ink)}.pt-card b{font-size:18px}.pt-card span{font-size:15px}.pt-card small{font-size:12.5px;opacity:.65}.pt-card .go{position:absolute;right:16px;top:20px}.pt-actions{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 24px}.pt-tabs{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--rx-line);margin-bottom:12px}.pt-tabledesc{font-size:15px;margin:0 0 10px}.pt-tabledesc .pt-muted{display:inline;margin-left:6px}.pt-about{margin-top:22px;border-top:1px solid var(--rx-line);padding-top:12px}.pt-about summary,.pt-more-info summary{cursor:pointer;font-weight:600;font-size:15px}.pt-about h2{font-size:15px;margin:18px 0 8px}.pt-about li,.pt-about p{font-size:14.5px}.pt-lab{display:flex;flex-direction:column;height:calc(100dvh - 48px);min-height:520px}.pt-lab>.pt-problem{padding:0 var(--pt-pad)}.pt-lab-body{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:240px minmax(0,1fr)}.pt-tables{border-right:1px solid var(--rx-line);overflow:auto;padding:14px 12px;background:var(--rx-cell)}.pt-tables h2{font:600 12px var(--rx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-amber-ink);margin:0 0 8px}.pt-tables>ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}.pt-tables summary{display:flex;justify-content:space-between;gap:8px;padding:5px 6px;border-radius:5px;cursor:pointer;font:13.5px var(--rx-mono)}.pt-tables summary:hover{background:var(--rx-line)}.pt-cols small,.pt-tables summary small{opacity:.6;font-size:12px}.pt-cols{list-style:none;margin:2px 0 4px 14px;padding:0;font:12.5px var(--rx-mono)}.pt-cols li{display:flex;justify-content:space-between;gap:8px;padding:1px 6px}.pt-link{border:0;background:none;color:var(--rx-amber-ink);font:600 13px var(--rx-sans);padding:4px 20px 8px;cursor:pointer}.pt-lab-main{overflow:auto;padding:14px var(--pt-pad) 32px;display:flex;flex-direction:column;gap:12px;min-width:0}.pt-cell{margin:0}.pt-tabhead{padding-top:0;padding-bottom:0}.pt-tabhead [role=tablist]{display:flex}.pt-tabhead [role=tab]{font-size:13px}.pt-results{border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-surface);min-width:0}.pt-plan{list-style:none;margin:0;padding:0;font:13px/1.8 var(--rx-mono)}.pt-suffix{display:flex;align-items:center;gap:6px;font-family:var(--rx-mono)}.pt-suffix input{flex:1}.pt-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.pt-cell-out{border-top:1px solid var(--ide-border);background:var(--ide-bg);max-height:260px;overflow:auto}.pt-cell-out .pt-muted{padding:10px 14px;margin:0}.pt-cell-out .p2-console{max-height:none}.pt-verdict{font-size:16px;margin:16px 0 8px;display:flex;gap:12px;flex-wrap:wrap;align-items:baseline}.pt-verdict .ok{color:var(--rx-ok);font-weight:600}.pt-verdict .bad{color:var(--rx-bad);font-weight:600}.pt-summary{margin-top:16px}.pt-bars{display:grid;gap:8px;max-width:760px}.pt-bar-row{display:grid;grid-template-columns:1.5rem minmax(0,1fr) 5.5rem 7rem;align-items:center;gap:10px;font:13px var(--rx-mono)}.pt-bar-row>div{height:14px}.pt-bar-row i{display:block;height:100%;min-width:2px;border-radius:3px;background:var(--rx-ink)}.pt-bar-row i[data-side=b]{background:var(--rx-amber)}.pt-bar-row b{font-weight:600;text-align:right}.pt-bar-row small{opacity:.65}.pt-more-info{margin-top:14px}.pt-more-info p{font-size:15px;max-width:52rem}.pt-mini-table{border-collapse:collapse;font:13px var(--rx-mono);margin:6px 0}.pt-mini-table td,.pt-mini-table th{padding:4px 14px 4px 0;text-align:left}.pt-explain{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.pt-explain h2{font-size:16px;margin:0 0 6px}.pt-explain p{font-size:15px;margin:0 0 8px}@media (max-width:899px){.pt-explain,.pt-two{grid-template-columns:minmax(0,1fr)}.pt-playground{height:auto;min-height:0}.pt-mtabs{display:flex;border-bottom:1px solid var(--rx-line);padding:0 var(--pt-pad)}.pt-playground[data-mobile-tab=code] .py-split-b,.pt-playground[data-mobile-tab=output] .py-split-a{display:none}.pt-playground .pt-pane{height:auto;flex-direction:column}.pt-playground .pt-editor,.pt-playground .pt-out{min-height:55dvh}.pt-files{width:auto;border-right:0;border-bottom:1px solid var(--rx-line);max-height:45dvh}.pt-lab{height:auto}.pt-lab-body{grid-template-columns:minmax(0,1fr)}.pt-tables{border-right:0;border-bottom:1px solid var(--rx-line);max-height:32dvh}.pt-bar-row{grid-template-columns:1.5rem minmax(0,1fr) 5rem}.pt-bar-row small{grid-column:2/-1}}.p2-console .p2-table-wrap{overflow-x:auto;white-space:normal;margin:8px 0;border:1px solid var(--rx-line);border-radius:6px;background:var(--rx-surface);color:var(--rx-ink)}.p2-console .p2-table-wrap table{border-collapse:collapse;width:max-content;min-width:100%;font:12.5px/1.45 var(--rx-mono)}.p2-console .p2-table-wrap td,.p2-console .p2-table-wrap th{white-space:nowrap;padding:5px 12px;border-bottom:1px solid var(--rx-line);text-align:left;vertical-align:bottom}.p2-console .p2-table-wrap th small{display:block;font-weight:400;opacity:.75;font-size:11px}fieldset.pt-field{gap:0}fieldset.pt-field label{margin-bottom:8px}@media (max-width:899px){.pt-playground .pt-editor .cm-editor{min-height:55dvh}}@media (max-width:520px){.pt-hide-sm{display:none}.pt-bar{gap:6px}.pt-select{min-width:0;flex:0 1 auto}.pt-select select{max-width:9.5rem}.pt-select>span{display:none}}@media (max-width:899px){.pt-playground .pt-out-head:has(>:only-child){display:none}}.pg-preview{overflow:auto;max-height:min(62dvh,560px);border:1px solid var(--rx-line);border-radius:8px;background:var(--rx-surface)}.pg-preview pre{margin:0;padding:10px 12px;font:12.5px/1.5 var(--rx-mono);white-space:pre-wrap;overflow-wrap:anywhere}.pg-preview-note{margin:6px 12px!important}.pg-cols,.pg-table{border-collapse:collapse;font:12.5px/1.45 var(--rx-mono);width:max-content;min-width:100%}.pg-table th{position:sticky;top:0;background:var(--rx-cell);text-align:left;font-weight:600;z-index:1}.pg-cols td,.pg-table td,.pg-table th{padding:5px 12px;border-bottom:1px solid var(--rx-line);white-space:nowrap;max-width:32ch;overflow:hidden;text-overflow:ellipsis}.pg-table td.n,.pg-table th.n{opacity:.7;text-align:right;width:1%}.pg-table td.empty{opacity:.4}.pt-out-head .p3-tab-bad{color:var(--rx-bad)}.pt-link-inline{border:0;background:none;padding:0;color:var(--rx-amber-ink);font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.pt-plan li.ok{color:var(--rx-ok)}.pt-plan li.scan{color:var(--rx-amber-ink)}.py-filetabs{display:flex;overflow-x:auto;background:var(--ide-chrome);border-bottom:1px solid var(--ide-border)}.py-filetabs button{border:0;border-right:1px solid var(--ide-border);border-bottom:2px solid transparent;background:none;color:var(--ide-muted);font:12px var(--rx-mono);padding:7px 12px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.py-filetabs button[aria-selected=true]{color:var(--ide-fg);background:var(--ide-bg);border-bottom-color:var(--rx-amber)}.py-myfiles{list-style:none;margin:0;padding:0;border-top:1px solid var(--rx-line)}.py-myfiles li{display:flex;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid var(--rx-line)}.py-myfiles li.on .n{color:var(--rx-amber-ink);font-weight:600}.py-myfiles .n{border:0;background:none;color:inherit;padding:4px 0;font-size:13.5px;cursor:pointer;text-align:left;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.py-myfiles li>span{font-size:12px;color:var(--rx-faint)}.py-row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}.py-link{border:0;background:none;padding:0;color:var(--rx-amber-ink);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.py-made{border-top:1px solid var(--ide-border)}.py-made details{padding:6px 14px;border-bottom:1px solid var(--ide-border);color:var(--ide-fg)}.py-made summary{cursor:pointer;font-size:12.5px;display:flex;align-items:center;gap:10px}.py-made pre{margin:6px 0;max-height:200px;overflow:auto;font:12px/1.5 var(--rx-mono);white-space:pre-wrap}.py-ds-preview{margin-top:10px;font-family:var(--rx-sans)}.rx-out .p2-console{max-height:60vh;border-radius:0}.rx-lesson .rx-lesson-work.py-stack{overflow-y:auto}.rx-lesson .rx-lesson-work.py-stack>.rx-cell{flex:none;max-height:none;overflow:visible;margin:0 0 14px}.rx-lesson .rx-lesson-work.py-stack>.rx-cell .cm-editor{flex:none}.rx-lesson .rx-lesson-work.py-stack .rx-result{max-height:320px}.rx-lesson .rx-lesson-work.rx-tool-work .rx-result{max-height:min(48vh,440px)}.py-ds-preview .pg-preview{max-height:320px}.py-stdin{margin:14px 0 10px}.py-stdin .rx-label{display:block;margin:0 0 6px}.py-stdin textarea{display:block;width:100%;box-sizing:border-box;min-height:calc(3lh + 16px);padding:8px 12px;font:13.5px/1.5 var(--rx-mono);color:var(--ide-fg);background:var(--ide-bg);border:1px solid var(--rx-line);border-radius:8px;resize:vertical}.py-stdin textarea:focus-visible{outline:2px solid var(--rx-amber);outline-offset:1px}@media (min-width:1200px){.rx-lesson .rx-lesson-work.rx-tool-work .rx-cell>.py-editor{flex:1 1 auto;min-height:clamp(220px,40dvh,480px);display:flex;flex-direction:column}.rx-lesson .rx-lesson-work.rx-tool-work .rx-cell>.py-editor>div{flex:1 1 auto;min-height:0;height:100%}.rx-lesson .rx-lesson-work.rx-tool-work .rx-cell>.py-editor .cm-editor{height:100%;min-height:0!important;max-height:none}.rx-lesson .rx-lesson-work.rx-tool-work .rx-cell>.py-editor .cm-scroller{overflow:auto}.rx-lesson .rx-lesson-work.rx-tool-work .rx-result{flex:0 1 auto;min-height:0}}.py-resets{margin-top:10px}.pl-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0 12px}.pl-result{margin-top:14px;padding:16px;border:1px solid var(--rx-line);border-radius:10px;background:var(--rx-surface)}.pl-verdict{margin:0;font-size:1.2rem;line-height:1.35}.pl-bars{display:grid;gap:14px;margin:16px 0 12px}.pl-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center}.pl-bar-name{font-size:14px;color:var(--rx-ink)}.pl-bar-time{font-size:14px;font-weight:600}.pl-bar-track{grid-column:1/-1;display:block;height:10px;border-radius:999px;background:var(--rx-line);overflow:hidden}.pl-bar-track>span{display:block;height:100%;border-radius:inherit;background:color-mix(in srgb,var(--rx-ink) 32%,transparent)}.pl-bar.win .pl-bar-track>span{background:var(--rx-ok)}.pl-bar.win .pl-bar-time{color:var(--rx-ok)}.pl-bar-meta{grid-column:1/-1;font-size:12.5px;color:var(--rx-dim)}.pl-same{margin:0;font-size:14px;color:var(--rx-ok)}.pl-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.pl-split>div{padding:12px 14px;border:1px solid var(--rx-line);border-radius:10px;background:var(--rx-surface);min-width:0}.pl-split-head{margin:0 0 8px;font-size:14px}.pl-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}.pl-steps li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;align-items:baseline}.pl-step-name{font-size:14px;overflow-wrap:anywhere}.pl-step-share{font-size:13px;font-weight:600}.pl-steps .pl-bar-track{height:6px}.pl-steps .pl-bar-track>span{background:var(--rx-amber)}.pl-step-calls{grid-column:1/-1;font-size:12px;color:var(--rx-dim)}