:root{--ui-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--mono-font: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--bg: #F8FAFC;--bg-elev: #FFFFFF;--panel: #FFFFFF;--panel-muted: #F1F5F9;--panel-sunken: #F8FAFC;--border: #E2E8F0;--border-strong: #CBD5E1;--border-soft: #EEF2F7;--text: #0F172A;--text-soft: #1E293B;--muted: #64748B;--muted-strong: #475569;--soft: #94A3B8;--accent: #0EA5E9;--accent-strong: #0284C7;--accent-soft: #E0F2FE;--accent-soft-2: #BAE6FD;--accent-text: #075985;--success: #10B981;--success-soft: #D1FAE5;--success-text: #065F46;--warning: #F59E0B;--warning-soft: #FEF3C7;--warning-text: #92400E;--danger: #EF4444;--danger-soft: #FEE2E2;--danger-text: #991B1B;--code-bg: #0F172A;--code-panel: #111827;--code-text: #E5E7EB;--code-muted: #94A3B8;--code-border: #1E293B;--code-border-strong: #334155;--code-highlight: rgba(14, 165, 233, .14);--code-caret: #38BDF8;--code-selection: rgba(14, 165, 233, .25);--assign: #FFFFFF;--loop-fill: #ECFEFF;--loop-stroke: #67E8F9;--loop-text: #0E7490;--cond-fill: #FEF9C3;--cond-stroke: #FDE68A;--cond-text: #92400E;--out-fill: #F5F3FF;--out-stroke: #DDD6FE;--out-text: #5B21B6;--visited-fill: #F8FAFC;--visited-stroke: #E2E8F0;--radius-sm: 8px;--radius: 12px;--radius-md: 14px;--radius-lg: 18px;--shadow: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 8px 24px -14px rgba(15, 23, 42, .12), 0 2px 6px -3px rgba(15, 23, 42, .05);--shadow-lg: 0 24px 60px -24px rgba(15, 23, 42, .22), 0 6px 14px -6px rgba(15, 23, 42, .06);--shadow-inset: inset 0 0 0 1px var(--border);--ring: 0 0 0 3px rgba(14, 165, 233, .18);--ring-strong: 0 0 0 3px rgba(14, 165, 233, .28);--glow: radial-gradient(60% 50% at 90% -8%, rgba(14, 165, 233, .1), transparent 68%), radial-gradient(45% 45% at 6% 6%, rgba(99, 102, 241, .05), transparent 72%)}[data-theme=dark]{--bg: #080C18;--bg-elev: #0E1426;--panel: #0F172A;--panel-muted: #141C33;--panel-sunken: #0B1223;--border: #1C2642;--border-strong: #2A3659;--border-soft: #141C33;--text: #E6EDF7;--text-soft: #CBD5E1;--muted: #94A3B8;--muted-strong: #B8C3D6;--soft: #64748B;--accent: #38BDF8;--accent-strong: #7DD3FC;--accent-soft: rgba(56, 189, 248, .14);--accent-soft-2: rgba(56, 189, 248, .28);--accent-text: #7DD3FC;--success: #34D399;--success-soft: rgba(52, 211, 153, .14);--success-text: #6EE7B7;--warning: #FBBF24;--warning-soft: rgba(251, 191, 36, .12);--warning-text: #FCD34D;--danger: #F87171;--danger-soft: rgba(248, 113, 113, .12);--danger-text: #FCA5A5;--assign: #0F172A;--loop-fill: rgba(56, 189, 248, .07);--loop-stroke: rgba(125, 211, 252, .45);--loop-text: #7DD3FC;--cond-fill: rgba(251, 191, 36, .06);--cond-stroke: rgba(251, 191, 36, .38);--cond-text: #FCD34D;--out-fill: rgba(196, 181, 253, .06);--out-stroke: rgba(196, 181, 253, .35);--out-text: #C4B5FD;--visited-fill: rgba(148, 163, 184, .04);--visited-stroke: rgba(148, 163, 184, .18);--shadow: 0 1px 2px rgba(0, 0, 0, .45);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 12px 32px -24px rgba(0, 0, 0, .9), 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 60px -32px rgba(0, 0, 0, .95), 0 2px 6px rgba(0, 0, 0, .4);--shadow-inset: inset 0 0 0 1px rgba(255, 255, 255, .02);--ring: 0 0 0 3px rgba(56, 189, 248, .26);--ring-strong: 0 0 0 3px rgba(56, 189, 248, .35);--glow: radial-gradient(60% 50% at 85% -10%, rgba(56, 189, 248, .1), transparent 70%), radial-gradient(45% 45% at 8% 8%, rgba(99, 102, 241, .06), transparent 72%)}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--ui-font);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;gap:14px;padding:18px;max-width:1400px;margin:0 auto}header{display:flex;align-items:baseline;gap:12px}h1{font-size:18px;margin:0;font-weight:600;letter-spacing:-.01em}.subtitle{color:var(--muted);font-size:13px}.spacer{flex:1}.loading{font-size:12px;color:var(--accent);background:var(--accent-soft);padding:4px 10px;border-radius:999px}.loading.hidden{display:none}.lang-switcher{display:flex;align-items:center;gap:4px;padding:3px;background:var(--surface-2, #f1f5f9);border-radius:10px;border:1px solid var(--border, #e2e8f0)}.lang-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:500;padding:5px 11px;border-radius:7px;cursor:pointer;transition:background .12s ease,color .12s ease;position:relative;letter-spacing:.01em}.lang-tab:hover:not(:disabled):not(.active){color:var(--text, #0f172a);background:#fff9}.lang-tab.active{background:#fff;color:var(--text, #0f172a);box-shadow:0 1px 2px #0f172a14}.lang-tab:disabled{color:#94a3b8;cursor:not-allowed;opacity:.75}.lang-tab .soon{display:inline-block;margin-left:5px;font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:#94a3b8;background:#e2e8f0;padding:1px 5px;border-radius:4px;vertical-align:2px;font-weight:600}main{display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:minmax(320px,1fr) auto;gap:14px;min-height:460px}.code-panel{grid-column:1;grid-row:1;min-height:0}.flow-panel{grid-column:2;grid-row:1;min-height:0}.output-panel{grid-column:1;grid-row:2}.vars-panel{grid-column:2;grid-row:2;max-height:260px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.panel-header{font-size:11px;font-weight:600;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--border);letter-spacing:.05em;text-transform:uppercase}.code-panel .panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px 8px 14px}.code-actions{display:flex;align-items:center;gap:8px}.btn-run{font-size:12px;padding:5px 14px;background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;letter-spacing:.02em;text-transform:none}.btn-run:hover:not(:disabled){background:#0284c7;border-color:#0284c7}.btn-examples{font-size:12px;padding:5px 10px;background:#fff;color:var(--text);border-color:var(--border);font-weight:500;letter-spacing:.02em;text-transform:none}.btn-examples:hover:not(:disabled){background:#f9fafb;border-color:var(--border-strong)}.examples-wrap{position:relative}.examples-menu{position:absolute;top:calc(100% + 6px);right:0;width:280px;max-height:340px;overflow:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 28px -8px #0f172a33;z-index:100;padding:6px;text-transform:none;letter-spacing:normal}.example-item{display:block;width:100%;text-align:left;padding:8px 10px;border-radius:6px;background:transparent;border:none;cursor:pointer;font-family:inherit;color:var(--text);transition:background .12s ease}.example-item:hover{background:#f3f4f6}.example-item-title{font-size:13px;font-weight:500;color:var(--text);margin-bottom:2px;text-transform:none;letter-spacing:normal}.example-item-blurb{font-size:11.5px;color:var(--muted);line-height:1.4;text-transform:none;letter-spacing:normal}.error-banner{margin:10px 14px 0;padding:10px 12px;background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:8px;font-size:12.5px;line-height:1.5}.err-head{display:flex;align-items:center;gap:8px;margin-bottom:4px}.err-icon{width:18px;height:18px;border-radius:50%;background:#fca5a5;color:#7f1d1d;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:0 0 auto}.err-title{font-weight:600;font-size:13px;color:#991b1b}.err-where{font-family:var(--mono-font);font-size:11.5px;color:#b91c1c;margin-left:auto}.err-body{color:#7f1d1d;line-height:1.55}.err-body code{font-family:var(--mono-font);font-size:12px;background:#dc262614;padding:1px 5px;border-radius:4px}.err-source{margin-top:6px;padding:6px 10px;font-family:var(--mono-font);font-size:12px;background:#fff9;border-left:3px solid #f87171;border-radius:4px;color:#7f1d1d;white-space:pre;overflow-x:auto}.err-hint{margin-top:6px;font-size:12px;color:#9a3412;font-style:italic}.err-hint code{font-style:normal;background:#d977061a}.cap-banner{margin:10px 14px 0;padding:10px 12px;background:#fffbeb;border:1px solid #fcd34d;color:#92400e;border-radius:8px;font-size:12.5px;line-height:1.5;display:flex;align-items:center;gap:8px}.cap-icon{width:18px;height:18px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-size:14px}.cap-text strong{font-weight:600;color:#78350f}.editor-wrap{position:relative;display:flex;flex:1;overflow:hidden;font-family:var(--mono-font);font-size:13.5px;line-height:1.75}.gutter{flex:0 0 auto;padding:14px 10px 14px 12px;background:#fbfbfc;border-right:1px solid var(--border);color:var(--muted);text-align:right;-webkit-user-select:none;user-select:none;overflow:hidden;font-variant-numeric:tabular-nums;min-width:36px;white-space:pre}.editor-inner{position:relative;flex:1;display:flex;overflow:hidden;background:#fff}.editor{flex:1;padding:14px 12px;border:none;outline:none;resize:none;font-family:inherit;font-size:inherit;line-height:inherit;color:var(--text);background:transparent;white-space:pre;overflow:auto;-moz-tab-size:4;tab-size:4;position:relative;z-index:1}.line-highlight{position:absolute;left:0;right:0;height:23.625px;background:var(--accent-soft);border-left:2px solid var(--accent);pointer-events:none;z-index:0;transform:translateY(14px);transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .18s ease}.line-highlight[hidden]{display:block!important;opacity:0}.flow-panel{position:relative;overflow:hidden}.flow-header{padding:6px 8px}.tab-bar{display:flex;align-items:center;gap:4px;padding:3px;background:#f1f5f9;border-radius:9px;border:1px solid var(--border);width:fit-content}.tab-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font:inherit;font-size:12px;font-weight:500;padding:6px 16px;border-radius:6px;cursor:pointer;transition:background .12s ease,color .12s ease;letter-spacing:.02em;text-transform:none;white-space:nowrap}.tab-btn:hover:not(.active){color:var(--text);background:#fff9}.tab-btn.active{background:#fff;color:var(--text);box-shadow:0 1px 2px #0f172a14}.tab-host{flex:1;min-height:0;display:flex;position:relative}.tab-panel{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.tab-panel.hidden{display:none}.flow-scroll{flex:1;overflow:auto;background:radial-gradient(circle at 1px 1px,#e5e7eb 1px,transparent 0) 0 0 / 24px 24px}.tab-trace{overflow:hidden}.trace-scroll{flex:1;overflow-y:auto;padding:20px 18px 28px;background:radial-gradient(circle at 1px 1px,#e5e7eb 1px,transparent 0) 0 0 / 22px 22px}.trace-empty{flex:1;min-height:120px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;font-style:italic}.trace-empty[hidden],.trace-scroll[hidden]{display:none!important}.trace-list{display:flex;flex-direction:column;align-items:center;gap:0}.trace-box{width:100%;max-width:420px;display:flex;align-items:center;gap:10px;padding:10px 14px;background:#fff;border:1.5px solid var(--border);border-left:5px solid #cbd5e1;border-radius:8px;box-shadow:0 1px 2px #0f172a0a;opacity:.38;scroll-margin:48px;transition:opacity .16s ease,border-left-color .16s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.8,.2,1)}.trace-box.visited{opacity:.62}.trace-box.active{opacity:1;border-left-color:var(--accent);box-shadow:0 0 0 3px #0ea5e924,0 2px 8px #0ea5e92e;transform:scale(1.012)}.trace-kind-assign{border-left-color:#94a3b8}.trace-kind-loop{border-left-color:var(--loop-stroke)}.trace-kind-cond{border-left-color:var(--cond-stroke)}.trace-kind-out{border-left-color:#c4b5fd}.trace-kind-start{border-left-color:#4ade80}.trace-kind-end{border-left-color:#94a3b8}.trace-box.active{border-left-color:var(--accent)}.trace-badge{flex:0 0 auto;font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:4px;background:#f1f5f9;color:#64748b}.trace-badge-loop{background:var(--loop-fill);color:#0f766e}.trace-badge-cond{background:var(--cond-fill);color:#92400e}.trace-badge-out{background:#ede9fe;color:#6d28d9}.trace-badge-start{background:#dcfce7;color:#166534}.trace-badge-end{background:#f1f5f9;color:#475569}.trace-code{flex:1;font-family:var(--mono-font);font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.trace-result{flex:0 0 auto;font-family:var(--mono-font);font-size:11px;font-weight:600;padding:3px 8px;border-radius:5px;white-space:nowrap}.trace-result-loop{background:var(--loop-fill);color:#0f766e}.trace-result-true{background:#dcfce7;color:#166534;border:1px solid #4ade80}.trace-result-false{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.trace-result-out{background:#ede9fe;color:#6d28d9;max-width:160px;overflow:hidden;text-overflow:ellipsis}.trace-result-assign{background:#f1f5f9;color:#475569;max-width:140px;overflow:hidden;text-overflow:ellipsis}.trace-connector{width:2px;height:18px;background:#d1d5db;position:relative;flex-shrink:0}.trace-connector:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #d1d5db}.vars-list{flex:1;overflow:auto;padding:6px 0 8px}.vars-empty{color:var(--muted);font-size:13px;padding:14px 16px;font-style:italic}.var-row{padding:7px 14px;border-bottom:1px solid #f1f5f9;transition:background .22s ease}.var-row.changed{background:var(--accent-soft);animation:var-flash .65s ease}.var-row.new.changed{animation:var-flash-new .65s ease}@keyframes var-flash{0%{background:#bae6fd}to{background:var(--accent-soft)}}@keyframes var-flash-new{0%{background:#bbf7d0}to{background:var(--accent-soft)}}.var-head{display:grid;grid-template-columns:minmax(60px,auto) auto 1fr auto;align-items:center;gap:10px}.var-type{font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;background:#f3f4f6;color:var(--muted);letter-spacing:.02em;font-family:var(--ui-font)}.var-type-str{background:#d1fae5;color:#047857}.var-type-bool{background:#fce7f3;color:#be185d}.var-type-list,.var-type-tuple{background:#ede9fe;color:#6d28d9}.var-type-dict{background:#fef3c7;color:#b45309}.var-type-set{background:#ffe4e6;color:#be123c}.var-type-nonetype{background:#e5e7eb;color:#4b5563}.var-was{font-family:var(--mono-font);font-size:11px;color:var(--muted);font-style:italic;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.var-expand{background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:2px 4px;border-radius:4px;transition:color .15s ease,background .15s ease}.var-expand:hover{color:var(--text);background:#f3f4f6}.var-details{margin-top:6px;padding:6px 0 2px 18px;border-left:2px solid var(--border);margin-left:4px;display:flex;flex-direction:column;gap:3px}.var-item-row{display:flex;align-items:baseline;gap:8px;font-family:var(--mono-font);font-size:12px}.var-item-index,.var-item-key{color:var(--muted);min-width:32px}.var-item-key{min-width:auto;color:#7c3aed}.var-item-arrow{color:var(--muted)}.output-panel{max-height:130px}#output{margin:0;padding:12px 16px;font-family:var(--mono-font);font-size:13px;color:var(--text);white-space:pre-wrap;overflow:auto;flex:1;min-height:48px}.controls{flex-direction:row;align-items:center;gap:10px;padding:10px 14px}.btn{font-family:inherit;font-size:13px;padding:7px 14px;border:1px solid var(--border);background:#fff;border-radius:8px;cursor:pointer;color:var(--text);transition:all .15s ease;font-weight:500}.btn:hover:not(:disabled){border-color:var(--border-strong);background:#f9fafb}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:#0284c7;border-color:#0284c7}.speed-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:6px;margin-left:6px}.speed-label select{font-family:inherit;font-size:12px;padding:5px 8px;border:1px solid var(--border);background:#fff;border-radius:6px;color:var(--text);cursor:pointer}#step-label{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:88px;text-align:right}.node.assign>rect{fill:var(--assign);stroke:var(--border-strong);stroke-width:1.5}.node.start>rect{fill:#dcfce7;stroke:#4ade80;stroke-width:1.5}.node.end>rect{fill:#f1f5f9;stroke:#94a3b8;stroke-width:1.5}.node.start>text{fill:#166534}.node.end>text{fill:#475569}.flow-group{pointer-events:none}.flow-group-bg{fill:#5eead414;stroke:var(--loop-stroke);stroke-width:1.25;stroke-dasharray:4 5}.flow-group.while .flow-group-bg{fill:#fcd34d14;stroke:var(--cond-stroke)}.flow-group-label-bg{fill:#fff;stroke:var(--loop-stroke);stroke-width:1}.flow-group-label{font-family:var(--ui-font);font-size:10.5px;font-weight:600;fill:#0f766e;letter-spacing:.06em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.flow-group.while .flow-group-label{fill:#b45309}.node.active>rect,.node.active>polygon{stroke:var(--accent);stroke-width:2.5;filter:drop-shadow(0 0 10px rgba(14,165,233,.45));transform:scale(1.04)}.edge{fill:none;stroke:#cbd5e1;stroke-width:1.5;transition:stroke .28s ease}.edge-label{font-family:var(--mono-font);font-size:11px;fill:var(--muted);-webkit-user-select:none;user-select:none}.token{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(14,165,233,.7));transition:opacity .14s ease}.iter-pill-bg{fill:#fff;stroke:var(--loop-stroke);stroke-width:1}.value-chip-bg{fill:#fff;stroke:var(--accent);stroke-width:1.25;filter:drop-shadow(0 2px 6px rgba(14,165,233,.15))}.iter-pill-group,.value-chip-group{transition:opacity .22s ease}.learn-badge{cursor:pointer;opacity:.7;transition:opacity .18s ease}.learn-badge-bg{fill:#fff;stroke:var(--loop-stroke);stroke-width:1.25;filter:drop-shadow(0 1px 2px rgba(15,23,42,.12));transition:fill .18s ease,stroke .18s ease,filter .18s ease}.learn-badge-text{font-family:var(--ui-font);font-size:10.5px;font-weight:600;fill:var(--loop-stroke);pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:.02em;transition:fill .18s ease}.node.loop:hover .learn-badge,.learn-badge:hover{opacity:1}.learn-badge:hover .learn-badge-bg{fill:var(--loop-stroke);filter:drop-shadow(0 2px 6px rgba(20,184,166,.35))}.learn-badge:hover .learn-badge-text{fill:#fff}.edge-label-bg{fill:#fff;opacity:.92}#flow .flow-group,#flow .edge-label,#flow .edge-label-bg,#flow .learn-badge{transition:opacity .18s ease}#flow.playing .flow-group,#flow.playing .edge-label,#flow.playing .edge-label-bg{opacity:.35}#flow.playing .learn-badge{opacity:.15;pointer-events:none}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;transition:opacity .18s ease}.modal-overlay.open{opacity:1}.modal-overlay.closing{opacity:0}.modal-dialog{position:relative;background:#fff;border-radius:16px;box-shadow:0 25px 50px -12px #00000040;width:680px;max-width:92vw;max-height:90vh;padding:28px 30px 22px;transform:scale(.96);transition:transform .2s cubic-bezier(.2,.9,.3,1.15);overflow:auto}.modal-overlay.open .modal-dialog{transform:scale(1)}.modal-header{margin-bottom:18px}.modal-title{font-size:19px;font-weight:600;letter-spacing:-.01em;color:var(--text)}.modal-subtitle{margin-top:4px;color:var(--muted);font-size:13px}.modal-close{position:absolute;top:12px;right:14px;background:transparent;border:none;cursor:pointer;font-size:24px;line-height:1;color:var(--muted);width:32px;height:32px;border-radius:8px;transition:background .15s ease,color .15s ease}.modal-close:hover{background:#f3f4f6;color:var(--text)}.modal-body{min-height:200px}.for-explainer-wrap{display:flex;flex-direction:column;gap:14px}.explainer-caption{font-size:14px;color:var(--text);line-height:1.55}.explainer-code{font-family:var(--mono-font);font-size:13px;background:#f9fafb;border:1px solid var(--border);border-radius:8px;padding:10px 14px;line-height:1.75;white-space:pre}.explainer-code .k{color:#0891b2}.explainer-code .v{color:#7c3aed;font-weight:600}.explainer-code .lit{color:#0e7490}.explainer-code .muted{color:var(--muted)}.explainer-code .body-line{color:var(--text)}.explainer-note{font-size:12px;color:var(--muted);text-align:center;font-style:italic}.explainer-scene{display:block;background:radial-gradient(circle at 1px 1px,#eef2f7 1px,transparent 0) 0 0 / 20px 20px;border-radius:10px;border:1px solid var(--border);padding:0}.explainer-list-label{font-family:var(--ui-font);font-size:11px;fill:var(--muted);letter-spacing:.06em;text-transform:uppercase}.item-cell rect{fill:#fff;stroke:var(--border-strong);stroke-width:1.5;transition:fill .28s ease,stroke .28s ease,filter .28s ease}.item-cell.active rect{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 10px rgba(14,165,233,.4))}.item-cell.done rect{fill:#f3f4f6;stroke:#e5e7eb}.item-cell.done .item-text{fill:#9ca3af}.item-text{font-family:var(--mono-font);font-size:18px;font-weight:600;fill:var(--text);transition:fill .28s ease}.n-pill{transition:transform .42s cubic-bezier(.2,.8,.2,1),opacity .26s ease}.n-pill-bg{fill:#7c3aed;filter:drop-shadow(0 2px 6px rgba(124,58,237,.3))}.n-pill-text{font-family:var(--mono-font);font-size:13px;fill:#fff;font-weight:600}.explainer-arrow{stroke:#7c3aed;stroke-width:2;stroke-linecap:round;transition:d .32s ease}.body-card-bg{fill:#ede9fe;stroke:#c4b5fd;stroke-width:1.5;transition:fill .22s ease,stroke .22s ease,filter .22s ease}.body-card.pulse .body-card-bg{fill:#c4b5fd;stroke:#7c3aed;filter:drop-shadow(0 0 10px rgba(124,58,237,.45))}.body-card-text{font-family:var(--ui-font);font-size:13px;fill:var(--text);font-weight:500}.explainer-status{font-size:13px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-height:20px}.explainer-replay{align-self:center;padding:8px 22px;font-size:13px}.explainer-controls{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.explainer-ctrl{background:#fff;border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:13px;color:var(--text);cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease,transform .12s ease}.explainer-ctrl:hover:not(:disabled){background:#f8fafc;border-color:var(--border-strong)}.explainer-ctrl:active:not(:disabled){transform:translateY(1px)}.explainer-ctrl:disabled{opacity:.4;cursor:not-allowed}.explainer-play{background:var(--accent);color:#fff;border-color:var(--accent);min-width:96px;text-align:center;font-weight:500}.explainer-play:hover:not(:disabled){background:#0284c7;border-color:#0284c7}.explainer-step-indicator{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:88px;text-align:center}.explainer-speed{background:#fff;border:1px solid var(--border);border-radius:8px;padding:5px 8px;font-size:12px;font-family:inherit;color:var(--text);cursor:pointer}.tab-walkthrough{overflow:hidden}.wt-empty{flex:1;min-height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--muted);padding:0 18px;text-align:center}.wt-empty[hidden],.wt-scroll[hidden]{display:none!important}.wt-empty-title{font-size:14px;font-weight:600;color:var(--text);letter-spacing:.01em}.wt-empty-body{font-size:12.5px;font-style:italic;max-width:320px;line-height:1.5}.wt-scroll{flex:1;overflow-y:auto;padding:20px 18px 36px;background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.18) 1px,transparent 0) 0 0 / 22px 22px;scrollbar-gutter:stable both-edges}.wt-list{display:flex;flex-direction:column;align-items:center;gap:0;max-width:560px;margin:0 auto}.wt-card{width:100%;background:#fff;border:1.5px solid var(--border);border-left:5px solid var(--border-strong);border-radius:12px;padding:14px 18px 16px;box-shadow:0 1px 3px #0f172a0d;opacity:.42;scroll-margin:60px;cursor:pointer;transition:opacity .18s ease,border-left-color .18s ease,box-shadow .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}.wt-card.visited{opacity:.66}.wt-card.active{opacity:1;border-left-color:var(--accent);box-shadow:0 0 0 3px #0ea5e92e,0 6px 18px -4px #0ea5e94d;transform:scale(1.01)}.wt-card:hover:not(.active){opacity:.85}.wt-stage-start{border-left-color:#4ade80}.wt-stage-end{border-left-color:#94a3b8}.wt-stage-setup{border-left-color:#60a5fa}.wt-stage-update{border-left-color:#0ea5e9}.wt-stage-loop{border-left-color:var(--loop-stroke)}.wt-stage-check{border-left-color:var(--cond-stroke)}.wt-stage-print{border-left-color:#c4b5fd}.wt-card.active{border-left-color:var(--accent)}.wt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.wt-label{flex:0 0 auto;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;padding:3px 10px;border-radius:999px;background:#f1f5f9;color:#475569;font-family:var(--ui-font)}.wt-label-start{background:#dcfce7;color:#166534}.wt-label-end{background:#f1f5f9;color:#475569}.wt-label-setup{background:#dbeafe;color:#1e40af}.wt-label-update{background:var(--accent-soft);color:#0369a1}.wt-label-loop{background:var(--loop-fill);color:#0f766e}.wt-label-check{background:var(--cond-fill);color:#92400e}.wt-label-print{background:#ede9fe;color:#6d28d9}.wt-meta{flex:1 1 auto;display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.wt-meta b{color:var(--text);font-weight:600}.wt-meta-sep{opacity:.6}.wt-code-wrap{margin-bottom:12px}.wt-code{margin:0;font-family:var(--mono-font);font-size:13.5px;color:var(--text);background:#f8fafc;border:1px solid var(--border);border-radius:8px;padding:9px 13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.wt-body{display:flex;flex-direction:column;gap:10px}.wt-narrative{margin:0;font-size:13.5px;line-height:1.58;color:#334155}.wt-narrative code{font-family:var(--mono-font);font-size:12.5px;background:#f1f5f9;color:var(--text);padding:1px 6px;border-radius:4px;border:1px solid #e2e8f0}.wt-chips{display:flex;flex-wrap:wrap;gap:6px}.wt-chip{font-size:12px;padding:4px 10px;border-radius:6px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;display:inline-flex;align-items:center;gap:4px;line-height:1.3}.wt-chip code{font-family:var(--mono-font);font-size:11.5px;background:#fff;color:var(--text);padding:1px 5px;border-radius:3px;border:1px solid #e2e8f0}.wt-chip-new{background:#dcfce7;color:#166534;border-color:#bbf7d0}.wt-chip-new code{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.wt-chip-change{background:var(--accent-soft);color:#0369a1;border-color:#bae6fd}.wt-chip-change code{background:#f0f9ff;border-color:#bae6fd;color:#075985}.wt-chip-true{background:#dcfce7;color:#166534;border-color:#86efac}.wt-chip-true code{background:#f0fdf4;color:#166534;border-color:#86efac}.wt-chip-false{background:#fee2e2;color:#991b1b;border-color:#fca5a5}.wt-chip-false code{background:#fef2f2;color:#991b1b;border-color:#fca5a5}.wt-chip-output{background:#ede9fe;color:#6d28d9;border-color:#ddd6fe}.wt-chip-output code{background:#faf5ff;color:#6d28d9;border-color:#ddd6fe}.wt-chip-iter{background:var(--loop-fill);color:#0f766e;border-color:#99f6e4}.wt-chip-iter code{background:#f0fdfa;color:#0f766e;border-color:#99f6e4}.wt-chip-info{background:#f8fafc;color:#64748b}.wt-arrow{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 0;color:#94a3b8;font-size:12px;-webkit-user-select:none;user-select:none}.wt-arrow-glyph{font-size:18px;line-height:1;color:#cbd5e1}.wt-arrow-label{font-size:11.5px;font-style:italic}.wt-arrow-label b{color:var(--text);font-weight:600;font-style:normal}.wt-arrow-back{color:#0f766e;background:linear-gradient(to bottom,transparent 40%,rgba(204,251,241,.5) 50%,transparent 60%);padding:10px 0;margin:2px 0;border-radius:4px}.wt-arrow-back .wt-arrow-glyph{color:var(--loop-stroke);font-size:20px;font-weight:700}.wt-group{width:100%;background:#fff;border:1.5px solid var(--border);border-left:5px solid var(--loop-stroke);border-radius:12px;padding:14px 18px;box-shadow:0 1px 3px #0f172a0d;scroll-margin:60px;transition:border-left-color .18s ease,box-shadow .22s ease}.wt-group .wt-head{margin-bottom:10px}.wt-group-summary{margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--muted)}.wt-group-summary b{color:var(--text);font-weight:600}.wt-passes{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.wt-pass{border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0;transition:background .15s ease,border-color .15s ease}.wt-pass.expanded{background:#fff;border-color:var(--loop-stroke);box-shadow:0 1px 2px #5eead426}.wt-pass-head{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;text-align:left;cursor:pointer;padding:9px 12px;font:inherit;color:var(--text);display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:12px;border-radius:8px;transition:background .12s ease,color .12s ease,box-shadow .18s ease}.wt-pass-head:hover{background:#5eead41f}.wt-pass-head.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent),0 0 0 2px #0ea5e92e}.wt-pass-head.visited{color:#64748b}.wt-pass-num{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#0f766e;background:var(--loop-fill);padding:2px 8px;border-radius:999px;font-family:var(--ui-font);white-space:nowrap}.wt-pass-var{font-family:var(--mono-font);font-size:12.5px;color:var(--text);white-space:nowrap}.wt-pass-var code{font-family:inherit;background:#fff;border:1px solid #e2e8f0;padding:1px 5px;border-radius:4px;font-size:11.5px}.wt-pass-delta{font-family:var(--mono-font);font-size:12px;color:#0369a1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.wt-pass-delta code{font-family:inherit;background:#f0f9ff;border:1px solid #bae6fd;color:#0369a1;padding:1px 5px;border-radius:4px;font-size:11.5px}.wt-pass-toggle{font-size:12px;color:var(--muted);transition:transform .18s ease,color .15s ease;justify-self:end;width:14px;text-align:center;line-height:1}.wt-pass.expanded .wt-pass-toggle{color:var(--text)}.wt-pass-body{padding:6px 10px 12px 14px;border-top:1px dashed #e2e8f0;margin-top:2px;display:flex;flex-direction:column;align-items:stretch;gap:0;animation:wt-pass-body-in .2s ease}.wt-pass-body[hidden]{display:none!important}@keyframes wt-pass-body-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.wt-pass-body>.wt-card,.wt-pass-body>.wt-group{width:100%;max-width:none;margin:0;padding:10px 14px 12px;font-size:13px}.wt-pass-body>.wt-card .wt-code,.wt-pass-body>.wt-group .wt-code{font-size:12.5px;padding:7px 11px}.wt-pass-body>.wt-card .wt-narrative{font-size:12.5px}.wt-pass-body>.wt-arrow{padding:3px 0}.wt-pass-body>.wt-arrow .wt-arrow-glyph{font-size:15px}.node-count-badge{pointer-events:none;transition:opacity .18s ease}.node-count-badge-bg{stroke-width:1;transition:fill .2s ease,stroke .2s ease}.node-count-badge-text{font-family:var(--mono-font);font-size:10.5px;font-weight:700;letter-spacing:.02em;-webkit-user-select:none;user-select:none}.node-count-badge.count-zero .node-count-badge-bg{fill:#f8fafc;stroke:#cbd5e1;stroke-dasharray:3 3}.node-count-badge.count-zero .node-count-badge-text{fill:#94a3b8}.node-count-badge.count-one .node-count-badge-bg{fill:var(--accent-soft);stroke:#bae6fd}.node-count-badge.count-one .node-count-badge-text{fill:#0369a1}.node-count-badge.count-many .node-count-badge-bg{fill:var(--accent);stroke:var(--accent);filter:drop-shadow(0 1px 2px rgba(14,165,233,.3))}.node-count-badge.count-many .node-count-badge-text{fill:#fff}.node.never-visited>rect,.node.never-visited>polygon{fill:#fafbfc;stroke:#e5e7eb;stroke-dasharray:4 4;opacity:.7}.node.never-visited>text{fill:#cbd5e1}.edge.never-visited{stroke:#e5e7eb;stroke-dasharray:4 5;opacity:.55}#flow.playing .node-count-badge{opacity:.4}.trace-list{position:relative}.trace-box{border-left-style:dashed;opacity:.28}.trace-box.upcoming{opacity:.5;border-left-style:solid;border-left-color:#cbd5e1}.trace-box.upcoming .trace-badge{opacity:.85}.trace-box.visited,.trace-box.active{border-left-style:solid}@keyframes trace-reveal{0%{transform:translateY(6px) scale(.96);opacity:.4}60%{transform:translateY(0) scale(1.02);opacity:1}to{transform:translateY(0) scale(1.012);opacity:1}}.trace-box.just-revealed{animation:trace-reveal .26s cubic-bezier(.22,.8,.25,1) both}.trace-token{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px #0ea5e938,0 2px 8px #0ea5e973;transform:translate(-50%,-50%);pointer-events:none;z-index:3;transition:opacity 60ms linear;will-change:left,top,opacity}@media (prefers-reduced-motion: reduce){.trace-box.just-revealed{animation:none}.trace-token{display:none}}.btn-share{font-size:12px;padding:5px 12px;background:#fff;color:var(--text);border-color:var(--border);font-weight:500;letter-spacing:.02em;text-transform:none;min-width:72px;transition:background .16s ease,border-color .16s ease,color .16s ease}.btn-share:hover:not(:disabled){background:#f9fafb;border-color:var(--border-strong)}.btn-share.share-ok{background:#ecfdf5;border-color:#a7f3d0;color:#047857}.btn-share.share-err{background:#fffbeb;border-color:#fcd34d;color:#92400e;min-width:140px}.level-badge-wrap{position:relative;margin-left:auto;margin-right:8px}.level-badge{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;letter-spacing:.02em;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:#fff;color:var(--muted);cursor:pointer;line-height:1.6;transition:background .15s ease,border-color .15s ease,color .15s ease;-webkit-user-select:none;user-select:none}.level-badge:hover{border-color:var(--border-strong)}.level-badge .level-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#cbd5e1}.level-badge.level-foundations{background:#ecfdf5;border-color:#6ee7b7;color:#065f46;font-weight:700;letter-spacing:.03em}.level-badge.level-foundations:hover{background:#d1fae5;border-color:#34d399}.level-badge.level-foundations .level-dot{background:#10b981;box-shadow:0 0 0 3px #10b98147;animation:level-dot-pulse-kf 2.4s ease-in-out infinite}@keyframes level-dot-pulse-kf{0%,to{box-shadow:0 0 0 3px #10b98138}50%{box-shadow:0 0 0 5px #10b9811a}}.level-badge.level-intermediate{background:#fffbeb;border-color:#fcd34d;color:#92400e}.level-badge.level-intermediate .level-dot{background:#f59e0b;box-shadow:0 0 0 3px #f59e0b38}.level-popover{position:fixed;z-index:40;width:380px;max-width:calc(100vw - 32px);max-height:72vh;overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #0f172a1f,0 2px 6px #0f172a0f;padding:0;font-size:12.5px;color:var(--text);text-transform:none;letter-spacing:normal;font-weight:400;text-align:left;animation:lp-pop .16s cubic-bezier(.2,.8,.25,1) both}@keyframes lp-pop{0%{transform:translateY(-4px);opacity:0}to{transform:translateY(0);opacity:1}}.lp-head{padding:12px 14px;border-bottom:1px solid var(--border)}.lp-head.lp-foundations{background:linear-gradient(180deg,#ecfdf5,#fff)}.lp-head.lp-intermediate{background:linear-gradient(180deg,#fffbeb,#fff)}.lp-title{font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px;text-transform:none;letter-spacing:normal}.lp-head.lp-foundations .lp-title{color:#047857}.lp-head.lp-intermediate .lp-title{color:#92400e}.lp-sub{color:var(--muted);font-size:11.5px;line-height:1.4;text-transform:none;letter-spacing:normal;font-weight:400}.lp-section{padding:12px 14px;border-bottom:1px solid var(--border)}.lp-section:last-child{border-bottom:0}.lp-section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px}.lp-hit{padding:8px 10px;border-left:3px solid #f59e0b;background:#fffbeb;border-radius:0 6px 6px 0;margin-bottom:6px}.lp-hit:last-child{margin-bottom:0}.lp-hit-label{font-weight:600;font-size:12px;color:#92400e;margin-bottom:2px;text-transform:none;letter-spacing:normal}.lp-hit-why{color:#4b5563;font-size:11.5px;line-height:1.45;text-transform:none;letter-spacing:normal}.lp-catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.lp-cat-cell{display:flex;flex-direction:column;gap:3px;padding:7px 9px;border-radius:6px;background:#f8fafc;border:1px solid #eef2f7;min-width:0}.lp-cat-label{color:var(--text);font-size:11.5px;font-weight:600;text-transform:none;letter-spacing:normal;line-height:1.3}.lp-cat-example{font-family:var(--mono-font);font-size:11px;color:#0369a1;background:transparent;padding:0;text-transform:none;letter-spacing:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media (max-width: 640px){.level-popover{width:calc(100vw - 24px);right:-4px}.lp-catalog-grid{grid-template-columns:1fr}}.err-fix{margin-top:10px;margin-bottom:2px}.err-fix-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.err-fix-col{display:flex;flex-direction:column;gap:4px;min-width:0}.err-fix-col-label{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.err-fix-before .err-fix-col-label{color:#b91c1c}.err-fix-after .err-fix-col-label{color:#047857}.err-fix-code{margin:0;padding:8px 10px;border-radius:6px;font-family:var(--mono-font);font-size:12px;line-height:1.5;white-space:pre;overflow-x:auto;border:1px solid;min-height:48px}.err-fix-before .err-fix-code{background:#fef2f2;border-color:#fecaca;color:#7f1d1d;box-shadow:inset 3px 0 #ef4444}.err-fix-after .err-fix-code{background:#ecfdf5;border-color:#a7f3d0;color:#065f46;box-shadow:inset 3px 0 #10b981}.err-fix-caption{margin-top:8px;font-size:12px;color:var(--muted);line-height:1.5}.err-fix-caption code{background:#f1f5f9;padding:1px 5px;border-radius:3px;font-size:11.5px}@media (max-width: 640px){.err-fix-pair{grid-template-columns:1fr}}.step-banner{display:flex;flex-direction:column;gap:8px;padding:10px 12px;margin:0 14px;background:var(--accent-soft);border:1px solid #bae6fd;border-radius:10px;font-size:13px;color:var(--text)}.step-pills:empty{display:none}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid transparent;font-size:12px;line-height:1.4;white-space:nowrap;background:#fff}.pill code{font-family:var(--mono-font);background:transparent;padding:0;font-size:11.5px}.pill-label{font-weight:600;letter-spacing:.02em}.pill-dot{color:var(--muted);opacity:.7}.pill-part{color:var(--text)}.pill-loop-for,.pill-loop-while{background:var(--loop-fill);border-color:var(--loop-stroke);color:#0f766e}.pill-loop-for code,.pill-loop-while code{color:#134e4a}.pill-branch{border-color:var(--cond-stroke);background:var(--cond-fill);color:#78350f}.pill-branch code{color:#713f12}.pill-arrow{color:var(--muted);font-weight:600}.pill-result{font-weight:700;letter-spacing:.02em}.pill-branch-true .pill-result{color:#047857}.pill-branch-false .pill-result{color:#b91c1c}.step-narrative{font-size:13px;color:var(--text);line-height:1.55}.step-narrative code{font-family:var(--mono-font);background:#0ea5e914;padding:1px 5px;border-radius:3px;font-size:12px}@media (max-width: 640px){.step-banner{margin:0 8px}.pill{font-size:11.5px;padding:2px 8px}}.tab-questions{padding:0}.tab-questions.hidden{display:none}.qt-scroll{display:flex;flex-direction:column;gap:18px;padding:16px;overflow:auto;max-height:100%}.qt-intro h2{margin:0 0 4px;font-size:16px;font-weight:600;letter-spacing:-.01em}.qt-intro p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.qt-muted{color:var(--muted);font-size:13px;margin:0}.qt-nonpy{padding:14px 16px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#92400e}.qt-h{margin:0 0 10px;font-size:13.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.qt-layout{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}.qt-overall{display:flex;flex-direction:column;gap:6px;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.qt-overall-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.qt-pbar{height:6px;background:#e5e7eb;border-radius:999px;overflow:hidden}.qt-pbar-sm{height:4px}.qt-pbar-fill{height:100%;background:linear-gradient(90deg,#0ea5e9,#14b8a6);transition:width .25s ease}.qt-unitscol{display:flex;flex-direction:column;gap:8px;position:sticky;top:12px;max-height:calc(100vh - 32px);overflow-y:auto;padding-right:2px}.qt-unit{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow)}.qt-unit-done{border-color:#86efac}.qt-unit-head{display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 14px;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .12s}.qt-unit-head:hover{background:#f9fafb}.qt-unit-chev{font-size:12px;color:var(--muted);line-height:1}.qt-unit-title{font-weight:600;font-size:14px;line-height:1.2}.qt-unit-progress{font-size:12px;font-weight:600;color:var(--muted);background:#f3f4f6;border-radius:999px;padding:2px 10px;white-space:nowrap}.qt-unit-progress-done{background:#dcfce7;color:#166534}.qt-tasklist{display:flex;flex-direction:column;gap:4px;padding:0 10px 10px}.qt-taskitem{display:flex;align-items:center;gap:8px;text-align:left;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff;font-family:inherit;cursor:pointer;transition:border-color .12s,background .12s;font-size:13px;color:var(--text)}.qt-taskitem:hover{border-color:var(--accent);background:#f8fbff}.qt-taskitem.active{border-color:var(--accent);background:var(--accent-soft)}.qt-taskitem-title{flex:1;line-height:1.35}.qt-taskitem.solved{background:#f0fdf4;border-color:#86efac}.qt-solved-check{color:#16a34a;font-weight:700}.qt-chip{display:inline-flex;align-items:center;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:999px;background:#f3f4f6;color:#374151;border:1px solid #e5e7eb;white-space:nowrap}.qt-kind-rebuild{background:#e0f2fe;color:#075985;border-color:#bae6fd}.qt-kind-modify{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.qt-kind-fill{background:#ccfbf1;color:#115e59;border-color:#99f6e4}.qt-kind-fixbug{background:#fee2e2;color:#991b1b;border-color:#fecaca}.qt-kind-similar{background:#fef3c7;color:#854d0e;border-color:#fde68a}.qt-kind-predict{background:#fce7f3;color:#9d174d;border-color:#fbcfe8}.qt-kind-comments{background:#f1f5f9;color:#334155;border-color:#e2e8f0}.qt-detail{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:14px;min-width:0}.qt-d-title{margin:0;font-size:18px;font-weight:600;letter-spacing:-.01em}.qt-d-prompt p{margin:0 0 8px;font-size:14px;line-height:1.65;color:var(--text)}.qt-d-sub{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.qt-reqs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.qt-req{display:grid;grid-template-columns:18px 1fr;gap:8px;padding:7px 10px;font-size:13px;background:#f9fafb;border:1px solid #eef0f3;border-radius:6px;align-items:start}.qt-req-dot{font-weight:700;text-align:center;color:var(--muted);line-height:1.3}.qt-req-label{line-height:1.4;color:var(--text)}.qt-req-detail{grid-column:2;margin-top:4px;font-size:12.5px;color:#6b7280;line-height:1.5}.qt-req-pass{background:#f0fdf4;border-color:#bbf7d0}.qt-req-pass .qt-req-dot{color:#16a34a}.qt-req-pass .qt-req-label{color:#166534}.qt-req-fail{background:#fef2f2;border-color:#fecaca}.qt-req-fail .qt-req-dot{color:#dc2626}.qt-req-fail .qt-req-label{color:#991b1b}.qt-req-skip{background:#f9fafb}.qt-d-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px dashed var(--border);padding-top:12px}.qt-btn-secondary{background:#fff;border:1px solid var(--border);color:var(--text)}.qt-btn-secondary:hover:not(:disabled){background:#f3f4f6;border-color:var(--border-strong)}.qt-hints{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px}.qt-hints-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#92400e}.qt-hint{margin:0;font-size:13px;line-height:1.55;color:#78350f}.qt-expected{padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px}.qt-expected-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#075985;margin-bottom:6px}.qt-expected-pre{margin:0;font-family:var(--mono-font);font-size:12.5px;color:#0c4a6e;white-space:pre-wrap;word-break:break-word}.qt-fb{padding:12px 14px;border-radius:8px;border:1px solid transparent;display:flex;flex-direction:column;gap:4px}.qt-fb strong{font-size:14px;font-weight:600}.qt-fb-ok{background:#f0fdf4;border-color:#86efac;color:#14532d}.qt-fb-ok .qt-fb-sub{color:#166534}.qt-fb-err{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.qt-fb-err .qt-fb-sub{color:#991b1b}.qt-fb-err-line{font-family:var(--mono-font);font-size:12.5px;color:#7f1d1d;background:#fff1f2;border:1px solid #fecaca;padding:8px 10px;border-radius:6px;white-space:pre-wrap;word-break:break-word}.qt-fb-diff{display:flex;flex-direction:column;gap:6px}.qt-fb-diff-row{display:grid;grid-template-columns:90px 1fr;gap:8px;align-items:start}.qt-fb-diff-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:6px}.qt-fb-diff-pre{margin:0;font-family:var(--mono-font);font-size:12.5px;padding:6px 10px;border-radius:6px;background:#f3f4f6;border:1px solid var(--border);white-space:pre-wrap;word-break:break-word}.qt-fb-diff-row.want .qt-fb-diff-pre{background:#f0fdf4;border-color:#bbf7d0;color:#14532d}.qt-fb-diff-row.got .qt-fb-diff-pre{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.qt-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.qt-learn{font-size:13px;line-height:1.55;padding:10px 12px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:8px;color:#0c4a6e}.qt-learn strong{color:#075985;font-weight:600}.qt-predict{display:flex;flex-direction:column;gap:14px}.qt-predict-snippet{margin:0;padding:12px 14px;background:#0f172a;color:#e2e8f0;border-radius:8px;font-family:var(--mono-font);font-size:13px;line-height:1.55;overflow-x:auto;white-space:pre}.qt-predict-question{font-size:14px;font-weight:600;color:var(--text)}.qt-predict-options{display:flex;flex-direction:column;gap:8px}.qt-predict-option{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;padding:10px 14px;border:1px solid var(--border);border-radius:8px;background:#fff;color:var(--text);cursor:pointer;font-family:inherit;text-align:left;transition:background .12s,border-color .12s;font-size:13.5px}.qt-predict-option:hover:not(:disabled){background:#f9fafb;border-color:var(--accent)}.qt-predict-option:disabled{cursor:default;opacity:.9}.qt-predict-glyph{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:#f3f4f6;color:#4b5563;font-size:11.5px;font-weight:700;letter-spacing:.04em}.qt-predict-option.correct{background:#f0fdf4;border-color:#86efac;color:#14532d}.qt-predict-option.correct .qt-predict-glyph{background:#bbf7d0;color:#166534}.qt-predict-option.wrong{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.qt-predict-option.wrong .qt-predict-glyph{background:#fecaca;color:#991b1b}.qt-predict-feedback{padding:12px 14px;border-radius:8px;border:1px solid transparent;display:flex;flex-direction:column;gap:6px}.qt-predict-feedback.ok{background:#f0fdf4;border-color:#86efac;color:#14532d}.qt-predict-feedback.err{background:#fef2f2;border-color:#fecaca;color:#7f1d1d}.qt-predict-feedback strong{font-size:14px}.qt-predict-feedback p{margin:0;font-size:13px;line-height:1.55}.editor-wrap{background:var(--panel);transition:background-color .2s ease}.editor-host{flex:1;min-height:0;display:flex;overflow:hidden}.editor-host .cm-editor{flex:1;min-height:0;height:100%;outline:none}.editor-host .cm-editor.cm-focused{outline:none}.editor-host .cm-scroller{overflow:auto}html,body{font-feature-settings:"cv11","ss01","ss03";letter-spacing:-.005em;color:var(--text);background:var(--bg);transition:background-color .2s ease,color .2s ease}.app{position:relative;z-index:1;max-width:1440px;padding:20px 22px 18px;gap:16px}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:var(--glow);opacity:.85;transition:opacity .3s ease}header{display:flex;align-items:center;gap:14px;padding:4px 2px 8px}h1{display:none}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--text);padding:4px 8px 4px 4px;border-radius:10px;transition:transform .18s ease,background .18s ease}.brand:hover{transform:translateY(-1px)}.brand:focus-visible{outline:none;box-shadow:var(--ring)}.brand-mark{width:26px;height:26px;flex:0 0 auto}.brand-step{transition:fill .3s ease,opacity .3s ease}.brand-step-1{fill:var(--soft);opacity:.65}.brand-step-2{fill:var(--muted-strong);opacity:.9}.brand-step-3{fill:var(--accent)}.brand:hover .brand-step-1{opacity:.9}.brand:hover .brand-step-2{opacity:1}.brand-name{font-size:17px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.subtitle{color:var(--muted);font-size:13px;font-weight:400;letter-spacing:-.003em;border-left:1px solid var(--border);padding-inline-start:14px}@media (max-width: 820px){.subtitle{display:none}}.loading{font-weight:500;font-size:12px;background:var(--accent-soft);color:var(--accent-text);padding:5px 12px;border-radius:999px;border:1px solid var(--accent-soft-2);display:inline-flex;align-items:center;gap:8px}.loading:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 #0ea5e973;animation:pulse-dot 1.8s ease-in-out infinite}@keyframes pulse-dot{0%,to{box-shadow:0 0 #0ea5e966}50%{box-shadow:0 0 0 5px #0ea5e900}}[data-theme=dark] .loading{color:#7dd3fc;background:#0ea5e924;border-color:#0ea5e94d}.theme-toggle{position:relative;width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--muted-strong);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .15s ease,box-shadow .15s ease;padding:0;flex:0 0 auto}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text);background:var(--panel-muted)}.theme-toggle:focus-visible{outline:none;box-shadow:var(--ring)}.theme-icon{width:17px;height:17px;stroke:currentColor;stroke-width:1.7;fill:none;transition:opacity .2s ease,transform .3s ease;position:absolute}.theme-icon-moon{fill:currentColor;stroke:none}.theme-icon-sun{opacity:0;transform:rotate(-45deg) scale(.75)}.theme-icon-moon,[data-theme=dark] .theme-icon-sun{opacity:1;transform:rotate(0) scale(1)}[data-theme=dark] .theme-icon-moon{opacity:0;transform:rotate(45deg) scale(.75)}.panel{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow-md);border-radius:var(--radius-md);transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.panel:hover{box-shadow:var(--shadow-md)}.panel-header{text-transform:none;letter-spacing:-.005em;font-size:12.5px;font-weight:600;color:var(--muted-strong);background:transparent;border-bottom:1px solid var(--border-soft);padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:48px}.code-panel .panel-header{padding:10px 12px 10px 16px}.level-badge-wrap{margin-right:auto;margin-left:12px}.btn{font-family:inherit;font-size:12.5px;font-weight:500;line-height:1;padding:8px 14px;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .08s ease;letter-spacing:0}.btn:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}.btn:focus-visible{outline:none;box-shadow:var(--ring);border-color:var(--accent)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary,.btn-run{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;box-shadow:0 1px 2px #0ea5e940,0 0 0 1px #0ea5e91a}.btn-primary:hover:not(:disabled),.btn-run:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 4px 12px -2px #0ea5e966}.btn-run{padding:8px 18px;font-size:13px}.btn-submit-answer{padding:8px 16px;font-size:13px;font-weight:600;background:var(--success, #10b981);color:#fff;border-color:var(--success, #10b981);box-shadow:0 1px 2px #10b98147,0 0 0 1px #10b9811a}.btn-submit-answer:hover:not(:disabled){background:#059669;border-color:#059669;box-shadow:0 4px 12px -2px #10b98173}[data-theme=dark] .btn-submit-answer{background:#10b981;color:#06121f;border-color:#10b981;box-shadow:0 1px 2px #0000004d,0 0 0 1px #34d39940}[data-theme=dark] .btn-submit-answer:hover:not(:disabled){background:#34d399;border-color:#34d399;color:#06121f}.editor-wrap .btn-viz{position:fixed;right:24px;bottom:24px;z-index:20;display:inline-flex;align-items:center;gap:6px;padding:7px 14px 7px 12px;border-radius:999px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-family:var(--ui-font);font-size:12.5px;font-weight:600;letter-spacing:.005em;line-height:1;cursor:pointer;box-shadow:0 8px 20px -6px #0ea5e973,0 2px 4px -1px #0f172a2e,0 0 0 1px #0ea5e92e;transition:transform .12s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease,opacity .16s ease}.editor-wrap .btn-viz:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);box-shadow:0 12px 26px -6px #0ea5e98c,0 2px 6px -1px #0f172a38,0 0 0 1px #0ea5e938}.editor-wrap .btn-viz:focus-visible{outline:none;box-shadow:0 0 0 3px #0ea5e959,0 8px 20px -6px #0ea5e973,0 2px 4px -1px #0f172a2e}.editor-wrap .btn-viz:active:not(:disabled){transform:translateY(1px)}.editor-wrap .btn-viz:disabled{opacity:.5;cursor:not-allowed;box-shadow:0 2px 6px -2px #0f172a40}.btn-viz-icon{font-size:10.5px;line-height:1;display:inline-flex;transform:translateY(-.5px)}.btn-viz-label{line-height:1}[data-theme=dark] .editor-wrap .btn-viz{background:var(--accent);color:#0b1220;border-color:var(--accent);box-shadow:0 10px 22px -6px #0000008c,0 0 0 1px #38bdf84d}[data-theme=dark] .editor-wrap .btn-viz:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#0b1220;box-shadow:0 14px 28px -6px #0009,0 0 0 1px #38bdf873}[data-theme=dark] .editor-wrap .btn-viz:focus-visible{box-shadow:0 0 0 3px #38bdf866,0 10px 22px -6px #0000008c}.editor-wrap .btn-viz.btn-viz--off-panel{display:none}@media (max-width: 720px){.editor-wrap .btn-viz{padding:6px 12px 6px 10px;font-size:12px}}.btn-examples,.btn-share{background:var(--panel);color:var(--text);border:1px solid var(--border);font-weight:500;padding:7px 12px;font-size:12.5px}.btn-examples:hover:not(:disabled),.btn-share:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}.btn-share.share-ok{background:var(--success-soft);color:var(--success-text);border-color:transparent}.btn-share.share-err{background:var(--danger-soft);color:var(--danger-text);border-color:transparent}.lang-switcher,.tab-bar{display:inline-flex;align-items:center;gap:2px;padding:3px;background:var(--panel-muted);border:1px solid var(--border);border-radius:12px;box-shadow:inset 0 1px #fff6}.lang-tab,.tab-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font-family:inherit;font-size:12.5px;font-weight:500;padding:7px 12px;border-radius:9px;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease;letter-spacing:0;text-transform:none;white-space:nowrap}.tab-btn{font-size:12px;padding:7px 11px}.lang-tab:hover:not(:disabled):not(.active),.tab-btn:hover:not(.active){color:var(--text);background:#0f172a0a}.lang-tab.active,.tab-btn.active{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 1px 2px #0f172a14,0 0 0 1px var(--border)}.lang-tab:disabled{color:var(--soft);cursor:not-allowed;opacity:.65}.lang-tab .soon{display:inline-block;margin-left:6px;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--border);padding:2px 6px;border-radius:4px;vertical-align:1px;font-weight:600}[data-theme=dark] .lang-tab:hover:not(:disabled):not(.active),[data-theme=dark] .tab-btn:hover:not(.active){background:#ffffff0a}.level-badge{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--panel);padding:5px 10px 5px 9px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:500;color:var(--muted-strong);cursor:pointer;transition:background .15s ease,border-color .15s ease}.level-badge:hover{background:var(--panel-muted);border-color:var(--border-strong)}.level-dot{width:7px;height:7px;border-radius:50%;background:var(--soft)}.level-badge.level-foundations{color:var(--success-text);background:var(--success-soft);border-color:transparent}.level-badge.level-foundations .level-dot{background:var(--success)}.level-badge.level-intermediate{color:var(--warning-text);background:var(--warning-soft);border-color:transparent}.level-badge.level-intermediate .level-dot{background:var(--warning)}.code-panel{overflow:hidden}.code-panel .panel-header{padding:10px 12px 10px 16px;gap:10px}.code-panel .panel-header>span:first-child{font-weight:600;color:var(--text);font-size:13px;letter-spacing:-.005em}.code-actions{gap:8px}.editor-wrap{background:var(--code-bg);position:relative;padding:0;overflow:hidden;border-top:1px solid var(--border-soft)}.editor-host{border:none}.file-tabs{display:flex;align-items:flex-end;gap:2px;padding:6px 8px 0;background:var(--code-bg);border-top:1px solid var(--border-soft);margin-bottom:-1px;-webkit-user-select:none;user-select:none}.file-tab{display:inline-flex;align-items:center;gap:7px;padding:6px 12px 7px;font-family:var(--ui-font);font-size:12px;font-weight:500;letter-spacing:.005em;color:var(--code-muted);background:transparent;border:1px solid transparent;border-bottom:none;border-top-left-radius:7px;border-top-right-radius:7px;cursor:default;outline:none;transition:background .16s ease,color .16s ease,border-color .16s ease}.file-tab.is-active{color:var(--code-text);background:#131c33;border-color:var(--code-border)}.file-tab:focus-visible{box-shadow:0 0 0 2px #38bdf873}.file-tab-icon{width:13px;height:13px;flex:0 0 auto;overflow:visible}.file-tab-icon-body{fill:#facc1524;stroke:#facc15;stroke-width:1.1;stroke-linejoin:round}.file-tab-icon-fold{fill:none;stroke:var(--code-caret);stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.file-tab-name{font-family:var(--mono-font);font-size:11.5px;font-weight:500;letter-spacing:0;line-height:1}.file-tab-add{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:center;margin:2px 0 3px 4px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px dashed var(--code-border);border-radius:6px;background:transparent;color:var(--code-muted);font-family:var(--ui-font);font-size:14px;font-weight:500;line-height:1;opacity:.55;cursor:not-allowed}.file-tab-add:focus-visible{outline:none;box-shadow:0 0 0 2px #38bdf859}[data-theme=dark] .file-tab.is-active{background:#131c33;border-color:var(--code-border)}.error-banner{margin:14px 16px 0;padding:12px 14px;background:var(--danger-soft);border:1px solid rgba(239,68,68,.25);color:var(--danger-text);border-radius:10px;font-size:13px;line-height:1.55}.error-banner.raw{font-family:var(--mono-font);font-size:12px;white-space:pre-wrap}.err-head{display:flex;align-items:center;gap:9px;margin-bottom:4px}.err-icon{width:18px;height:18px;border-radius:50%;background:var(--danger);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.err-title{font-weight:600;font-size:13px;color:var(--danger-text)}.err-where{font-family:var(--mono-font);font-size:11.5px;color:var(--danger);margin-left:auto}.err-body{color:var(--danger-text);line-height:1.55}.err-body code{font-family:var(--mono-font);font-size:12px;background:#ef44441a;padding:1px 5px;border-radius:4px}.err-source{margin-top:8px;padding:8px 12px;font-family:var(--mono-font);font-size:12px;background:#fff9;border-left:3px solid var(--danger);border-radius:6px;color:var(--danger-text);white-space:pre;overflow-x:auto}.err-hint{margin-top:6px;font-size:12px;color:var(--warning-text);font-style:italic}.err-hint code{font-style:normal;background:#f59e0b1f}.cap-banner{margin:14px 16px 0;padding:11px 14px;background:var(--warning-soft);border:1px solid rgba(245,158,11,.28);color:var(--warning-text);border-radius:10px;font-size:13px;line-height:1.55;display:flex;align-items:center;gap:10px}.step-banner{padding:10px 16px 12px;border-bottom:1px solid var(--border-soft);background:var(--panel);display:flex;flex-direction:column;gap:6px}.step-pills{display:flex;flex-wrap:wrap;gap:6px}.step-narrative{font-size:13px;color:var(--text);line-height:1.55;letter-spacing:-.003em}.tab-trace{padding:0}.trace-scroll{padding:18px 16px 24px;background:transparent;scrollbar-gutter:stable both-edges}.trace-empty{color:var(--muted);font-size:13px;font-style:normal;min-height:120px}.trace-list{display:flex;flex-direction:column;align-items:stretch;gap:0;max-width:420px;margin:0 auto;position:relative}.trace-list:before{content:"";position:absolute;top:14px;bottom:14px;left:19px;width:2px;background:linear-gradient(180deg,transparent 0%,var(--border) 12%,var(--border) 88%,transparent 100%);pointer-events:none}.trace-box{width:100%;display:grid;grid-template-columns:22px auto 1fr auto;align-items:center;column-gap:10px;padding:13px 14px 13px 10px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);opacity:.6;transition:opacity .16s ease,border-color .16s ease,box-shadow .18s ease,transform .18s cubic-bezier(.2,.8,.2,1);position:relative;z-index:1;scroll-margin:48px}.trace-list .trace-box+.trace-box{margin-top:0}.trace-box.visited{opacity:.82}.trace-box.active{opacity:1;border-color:var(--accent);background:#0ea5e90a;box-shadow:0 0 0 2px #0ea5e929,0 4px 14px -4px #0ea5e933}.trace-box:before{content:"";grid-column:1;justify-self:center;width:14px;height:14px;border-radius:50%;background:var(--panel);border:2px solid var(--border-strong);transition:background .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.trace-box.visited:before{border-color:var(--accent-soft-2);background:var(--accent-soft)}.trace-box.active:before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px #0ea5e933}.trace-box.trace-kind-start:before{border-color:var(--success);background:var(--success-soft)}.trace-box.trace-kind-end:before{border-color:var(--border-strong);background:var(--panel-muted)}.trace-box,.trace-box.trace-kind-loop,.trace-box.trace-kind-cond,.trace-box.trace-kind-out,.trace-box.trace-kind-assign,.trace-box.trace-kind-start,.trace-box.trace-kind-end,.trace-box.active{border-left-width:1px}.trace-connector{display:none}.trace-code{grid-column:3;font-family:var(--mono-font);font-size:12.5px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;letter-spacing:-.01em}.trace-box>.trace-badge{grid-column:2}.trace-badge{display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono-font);font-size:9.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:2px 6px;border-radius:4px;white-space:nowrap;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border)}.trace-badge-loop{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-2)}.trace-badge-cond{background:#fefce8;color:#92400e;border-color:#fde68a}.trace-badge-out{background:#6366f114;color:#4338ca;border-color:#6366f133}.trace-badge-assign{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}.trace-badge-start{background:var(--success-soft);color:var(--success-text);border-color:transparent}.trace-badge-end{background:var(--panel-muted);color:var(--muted);border-color:var(--border)}.trace-result{grid-column:4;font-family:var(--mono-font);font-size:11px;font-weight:500;padding:2px 8px;border-radius:5px;white-space:nowrap;text-align:center;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border)}.trace-result-loop{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-2);min-width:60px}.trace-result-true{background:var(--success-soft);color:var(--success-text);border-color:transparent;min-width:52px}.trace-result-false{background:var(--danger-soft);color:var(--danger-text);border-color:transparent;min-width:52px}.trace-result-out{background:#6366f114;color:#4338ca;border-color:#6366f140;max-width:180px;overflow:hidden;text-overflow:ellipsis;text-align:left}.trace-result-assign{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border);max-width:160px;overflow:hidden;text-overflow:ellipsis}.flow-panel .panel-header.flow-header{padding:10px 14px;gap:10px;justify-content:flex-start;min-height:54px}.flow-scroll{flex:1;overflow:auto;background:radial-gradient(circle at 1px 1px,rgba(15,23,42,.06) 1px,transparent 0) 0 0 / 24px 24px,linear-gradient(180deg,var(--panel) 0%,var(--panel-sunken) 100%)}#flow{width:100%;min-height:440px;display:block}.node rect,.node polygon{transition:fill .28s ease,stroke .28s ease,filter .28s ease,transform .28s cubic-bezier(.2,.8,.2,1);transform-origin:center;transform-box:fill-box}.node text{font-family:var(--mono-font);font-size:12px;fill:var(--text);pointer-events:none;-webkit-user-select:none;user-select:none}.node .icon{font-family:var(--ui-font);font-size:11px;font-weight:600;fill:var(--muted)}.node.assign>rect{fill:#fff;stroke:var(--border-strong);stroke-width:1.25}.node.loop>rect{fill:var(--loop-fill);stroke:var(--loop-stroke);stroke-width:1.5}.node.cond>polygon{fill:var(--cond-fill);stroke:var(--cond-stroke);stroke-width:1.5}.node.out>rect{fill:var(--out-fill);stroke:var(--out-stroke);stroke-width:1.5}.node.start>rect{fill:var(--success-soft);stroke:var(--success);stroke-width:1.5}.node.end>rect{fill:var(--panel-muted);stroke:var(--border-strong);stroke-width:1.5}.node.start>text,.node.end>text{font-family:var(--ui-font);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.node.start>text{fill:var(--success-text)}.node.end>text{fill:var(--muted-strong)}.node.visited>rect,.node.visited>polygon{fill:var(--visited-fill);stroke:var(--visited-stroke)}.node.visited>text{fill:var(--muted)}.node.active>rect,.node.active>polygon{stroke:var(--accent);stroke-width:2.5;filter:drop-shadow(0 0 14px rgba(14,165,233,.4));transform:scale(1.04)}.node.active>text{fill:var(--text);font-weight:600}.edge{fill:none;stroke:var(--border-strong);stroke-width:1.5;transition:stroke .28s ease}.edge.just-traversed{stroke:var(--accent)}.edge-label{font-family:var(--mono-font);font-size:11px;fill:var(--muted)}.edge-label-bg{fill:var(--panel);opacity:.92}.token{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(14,165,233,.6));transition:opacity .14s ease}.flow-group-bg{fill:#67e8f914;stroke:var(--loop-stroke);stroke-width:1;stroke-dasharray:5 6}.flow-group.while .flow-group-bg{fill:#fde68a1a;stroke:var(--cond-stroke)}.flow-group-label-bg{fill:var(--panel);stroke:var(--loop-stroke);stroke-width:1}.flow-group.while .flow-group-label-bg{stroke:var(--cond-stroke)}.flow-group-label{font-family:var(--ui-font);font-size:10.5px;font-weight:600;fill:var(--loop-text);letter-spacing:.06em;text-transform:uppercase}.flow-group.while .flow-group-label{fill:var(--cond-text)}.iter-pill-bg{fill:var(--panel);stroke:var(--loop-stroke);stroke-width:1}.iter-pill{font-family:var(--mono-font);font-size:10.5px;fill:var(--text);font-weight:500}.value-chip-bg{fill:var(--panel);stroke:var(--accent);stroke-width:1.25;filter:drop-shadow(0 2px 6px rgba(14,165,233,.18))}.value-chip{font-family:var(--mono-font);font-size:11px;fill:var(--text);font-weight:500}.exec-count-bg{fill:var(--accent-soft);stroke:var(--accent-soft-2);stroke-width:1}.exec-count{font-family:var(--mono-font);font-size:10px;font-weight:600;fill:var(--accent-text)}.vars-panel{max-height:260px}.vars-list{padding:6px 0 10px}.vars-empty{color:var(--muted);font-size:13px;padding:16px 18px;font-style:normal}.var-row{padding:9px 16px;border-bottom:1px solid var(--border-soft);transition:background .22s ease}.var-row:last-child{border-bottom:none}.var-row.changed{background:var(--accent-soft);animation:var-flash .7s ease}@keyframes var-flash{0%{background:var(--accent-soft-2)}to{background:var(--accent-soft)}}.var-head{display:grid;grid-template-columns:minmax(60px,auto) auto 1fr auto;align-items:center;gap:12px}.var-name{font-family:var(--mono-font);font-weight:600;font-size:13px;color:var(--text)}.var-type{font-size:10px;font-weight:600;padding:2px 7px;border-radius:5px;background:var(--panel-muted);color:var(--muted-strong);font-family:var(--ui-font);letter-spacing:.02em;text-transform:uppercase}.var-type-int,.var-type-float{background:#dbeafe;color:#1e40af}.var-type-str{background:var(--success-soft);color:var(--success-text)}.var-type-bool{background:#fce7f3;color:#9d174d}.var-type-list,.var-type-tuple{background:#e9d5ff;color:#6b21a8}.var-type-dict{background:var(--warning-soft);color:var(--warning-text)}.var-type-set{background:#ffe4e6;color:#9f1239}.var-type-nonetype{background:var(--panel-muted);color:var(--muted-strong)}.var-value{font-family:var(--mono-font);font-size:12.5px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.var-trail{display:flex;align-items:center;gap:8px;justify-self:end}.var-was{font-family:var(--mono-font);font-size:11px;color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.var-was:before{content:"was ";color:var(--soft)}.var-expand{background:transparent;border:none;cursor:pointer;color:var(--muted);font-size:12px;padding:3px 6px;border-radius:6px;transition:color .15s ease,background .15s ease}.var-expand:hover{color:var(--text);background:var(--panel-muted)}.var-details{margin-top:8px;padding:6px 0 2px 18px;border-left:2px solid var(--border-soft);margin-left:4px;display:flex;flex-direction:column;gap:3px}.var-item-row{display:flex;align-items:baseline;gap:10px;font-family:var(--mono-font);font-size:12px}.var-item-index{color:var(--soft);min-width:32px}.var-item-key{color:#7c3aed;min-width:auto}.var-item-arrow{color:var(--soft)}.var-item-value{color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.var-item-more{font-family:var(--ui-font);font-size:11px;color:var(--muted);font-style:italic;margin-top:2px}.output-panel{max-height:260px;min-height:140px;background:var(--code-bg);border-color:var(--code-border-strong)}.output-panel .panel-header{color:#94a3b8;border-bottom-color:#94a3b81f;background:transparent;letter-spacing:0}#output{margin:0;padding:14px 18px;font-family:var(--mono-font);font-size:12.5px;color:var(--code-text);white-space:pre-wrap;overflow:auto;flex:1}#output.output-empty{color:var(--code-muted);font-style:italic;min-height:48px;line-height:1.6}.controls{display:flex;flex-direction:row;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-md);flex-wrap:wrap}.controls .btn{min-width:84px}.controls .btn-primary{min-width:96px}.speed-label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px;margin-left:4px}.speed-label select{font-family:inherit;font-size:12px;padding:6px 10px;border:1px solid var(--border);background:var(--panel);border-radius:8px;color:var(--text);cursor:pointer}.scrub{flex:1;display:flex;align-items:center;gap:12px;margin-left:8px}#scrub{flex:1;accent-color:var(--accent);cursor:pointer}#step-label{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;min-width:90px;text-align:right;letter-spacing:0}.wt-root{padding:18px 18px 24px}.wt-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;box-shadow:var(--shadow)}.wt-card+.wt-card{margin-top:10px}.wt-card-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.wt-label{font-family:var(--ui-font);font-weight:600;font-size:10.5px;padding:3px 10px;border-radius:999px;background:var(--panel-muted);color:var(--muted-strong);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.wt-label-start{background:var(--success-soft);color:var(--success-text)}.wt-label-end{background:var(--panel-muted);color:var(--muted-strong)}.wt-label-setup,.wt-label-update{background:var(--accent-soft);color:var(--accent-text)}.wt-label-loop{background:#67e8f92e;color:var(--loop-text)}.wt-label-cond{background:var(--warning-soft);color:var(--warning-text)}.wt-label-out{background:#7c3aed1a;color:#5b21b6}.wt-card-title{font-family:var(--mono-font);font-size:13px;color:var(--text);font-weight:500;letter-spacing:-.01em}.wt-card-body{font-size:13px;color:var(--muted-strong);line-height:1.6;letter-spacing:-.003em}.wt-card-body code{font-family:var(--mono-font);font-size:12.5px;background:var(--panel-muted);color:var(--text);padding:1px 6px;border-radius:5px}.wt-pass-var{font-family:var(--mono-font);color:var(--accent-text);background:var(--accent-soft);padding:1px 6px;border-radius:5px;font-size:12.5px;white-space:nowrap}.wt-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;font-size:11.5px;font-family:var(--mono-font);letter-spacing:0}.wt-chip-info{background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border-soft)}.wt-chip-true{background:var(--success-soft);color:var(--success-text)}.wt-chip-false{background:var(--danger-soft);color:var(--danger-text)}.wt-pass{margin:10px 0;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--panel)}.wt-pass-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;background:linear-gradient(180deg,var(--panel) 0%,var(--panel-sunken) 100%);border-bottom:1px solid var(--border-soft);transition:background .15s ease}.wt-pass-head:hover{background:linear-gradient(180deg,var(--panel-muted) 0%,var(--panel-sunken) 100%)}.wt-pass-head-chev{color:var(--muted);transition:transform .18s ease}.wt-pass.collapsed .wt-pass-head-chev{transform:rotate(-90deg)}.wt-pass.collapsed .wt-pass-body{display:none}.wt-pass-title{font-weight:600;font-size:12.5px;color:var(--text)}.wt-pass-summary{font-size:12px;color:var(--muted);margin-left:auto}.wt-pass-body{padding:10px 14px 14px;display:flex;flex-direction:column;gap:8px}.wt-step-row{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border-radius:10px;background:var(--panel-sunken);border:1px solid var(--border-soft)}.wt-step-row-code{font-family:var(--mono-font);font-size:12.5px;color:var(--text);flex:1;min-width:0}.wt-step-row-note{font-size:12.5px;color:var(--muted-strong);line-height:1.55}[data-theme=dark]{color-scheme:dark}[data-theme=dark] .editor-inner{background:var(--panel)}[data-theme=dark] .gutter{background:var(--panel-muted);color:var(--muted);border-right-color:var(--border)}[data-theme=dark] .editor{color:var(--text);caret-color:var(--accent)}[data-theme=dark] .line-highlight{background:#38bdf81f;border-left-color:var(--accent)}[data-theme=dark] .examples-menu,[data-theme=dark] .btn-examples,[data-theme=dark] .btn,[data-theme=dark] .speed-label select,[data-theme=dark] .theme-toggle{background:var(--panel);color:var(--text);border-color:var(--border)}[data-theme=dark] .btn:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}[data-theme=dark] .btn-examples:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}[data-theme=dark] .example-item{color:var(--text)}[data-theme=dark] .examples-menu{box-shadow:0 18px 42px -12px #0009,0 2px 8px -2px #0006}[data-theme=dark] .btn-primary,[data-theme=dark] .btn-run{background:var(--accent);color:#06121f;border-color:var(--accent)}[data-theme=dark] .btn-primary:hover:not(:disabled),[data-theme=dark] .btn-run:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}[data-theme=dark] .trace-box{background:var(--panel);border-color:var(--border);box-shadow:0 1px 2px #0006}[data-theme=dark] .trace-badge{background:var(--panel-muted);color:var(--muted-strong)}[data-theme=dark] .trace-badge-loop{background:#5eead41f;color:#5eead4}[data-theme=dark] .trace-badge-cond{background:#fcd34d1f;color:#fcd34d}[data-theme=dark] .trace-badge-out{background:#c4b5fd24;color:#c4b5fd}[data-theme=dark] .trace-badge-start{background:#4ade8024;color:#86efac}[data-theme=dark] .trace-badge-end{background:#94a3b824;color:#cbd5e1}[data-theme=dark] .trace-result-loop{background:#5eead41f;color:#5eead4}[data-theme=dark] .trace-result-true{background:#4ade8024;color:#86efac;border-color:#4ade8059}[data-theme=dark] .trace-result-false{background:#f8717124;color:#fca5a5;border-color:#f8717159}[data-theme=dark] .trace-result-out{background:#c4b5fd24;color:#c4b5fd}[data-theme=dark] .trace-result-assign{background:var(--panel-muted);color:var(--muted-strong)}[data-theme=dark] .trace-connector,[data-theme=dark] .trace-connector:after{background:var(--border-strong);border-top-color:var(--border-strong)}[data-theme=dark] .var-type{background:var(--panel-muted);color:var(--muted)}[data-theme=dark] .var-type-int,[data-theme=dark] .var-type-float{background:#60a5fa29;color:#93c5fd}[data-theme=dark] .var-type-str{background:#34d39929;color:#6ee7b7}[data-theme=dark] .var-type-bool{background:#f472b62e;color:#f9a8d4}[data-theme=dark] .var-type-list,[data-theme=dark] .var-type-tuple{background:#a78bfa2e;color:#c4b5fd}[data-theme=dark] .var-type-dict{background:#fbbf242e;color:#fcd34d}[data-theme=dark] .var-type-set{background:#fb71852e;color:#fda4af}[data-theme=dark] .var-type-nonetype{background:#94a3b82e;color:#cbd5e1}[data-theme=dark] .var-row{border-bottom-color:var(--border)}[data-theme=dark] .var-row.changed{background:var(--accent-soft);animation:var-flash-dark .65s ease}@keyframes var-flash-dark{0%{background:#38bdf84d}to{background:#38bdf81f}}[data-theme=dark] .var-details{border-left-color:var(--border)}[data-theme=dark] .var-expand:hover{color:var(--text);background:var(--panel-muted)}[data-theme=dark] .flow-scroll{background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.12) 1px,transparent 0) 0 0 / 24px 24px}[data-theme=dark] .trace-scroll{background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.1) 1px,transparent 0) 0 0 / 22px 22px}[data-theme=dark] .node.assign>rect{fill:#94a3b814;stroke:#94a3b866}[data-theme=dark] .node.loop>rect{fill:#5eead41a}[data-theme=dark] .node.cond>polygon{fill:#fcd34d1a}[data-theme=dark] .node.out>rect{fill:#c4b5fd1a}[data-theme=dark] .node.start>rect{fill:#4ade8024;stroke:#4ade80}[data-theme=dark] .node.end>rect{fill:#94a3b81a;stroke:#94a3b880}[data-theme=dark] .node.start>text{fill:#86efac}[data-theme=dark] .node text{fill:var(--text)}[data-theme=dark] .node .icon{fill:var(--muted)}[data-theme=dark] .node.visited>rect,[data-theme=dark] .node.visited>polygon{fill:#94a3b80f;stroke:#94a3b840}[data-theme=dark] .edge{stroke:#94a3b866}[data-theme=dark] .edge-label-bg{fill:var(--panel);opacity:.95}[data-theme=dark] .flow-group-bg{fill:#5eead40f}[data-theme=dark] .flow-group.while .flow-group-bg{fill:#fcd34d0f}[data-theme=dark] .flow-group-label-bg,[data-theme=dark] .iter-pill-bg{fill:var(--panel)}[data-theme=dark] .value-chip-bg{fill:var(--panel)}[data-theme=dark] .error-banner{background:#dc26261a;border-color:#dc262659;color:#fca5a5}[data-theme=dark] .err-title{color:#fca5a5}[data-theme=dark] .err-body{color:#fecaca}[data-theme=dark] .err-where{color:#fda4af}[data-theme=dark] .err-source{background:#0f172a66;border-left-color:#f87171;color:#fecaca}[data-theme=dark] .err-icon{background:#dc26264d;color:#fecaca}[data-theme=dark] .err-hint{color:#fdba74}[data-theme=dark] .err-body code{background:#dc262633;color:#fecaca}[data-theme=dark] .err-hint code{background:#d9770640;color:#fdba74}[data-theme=dark] .cap-banner{background:#d977061a;border-color:#d9770659;color:#fde68a}[data-theme=dark] .cap-text strong{color:#fef3c7}[data-theme=dark] .btn-share{background:var(--panel);color:var(--text);border-color:var(--border)}[data-theme=dark] .btn-share:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}[data-theme=dark] .modal-overlay{background:#000000a6}[data-theme=dark] .modal-dialog{background:var(--panel);color:var(--text);box-shadow:var(--shadow-lg)}[data-theme=dark] .modal-title{color:var(--text)}[data-theme=dark] .modal-subtitle,[data-theme=dark] .modal-close{color:var(--muted)}[data-theme=dark] .modal-close:hover{background:var(--panel-muted);color:var(--text)}[data-theme=dark] .explainer-code{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .explainer-code .k{color:#7dd3fc}[data-theme=dark] .explainer-code .v{color:#c4b5fd}[data-theme=dark] .explainer-code .lit{color:#5eead4}[data-theme=dark] .explainer-ctrl{background:var(--panel);color:var(--text);border-color:var(--border)}[data-theme=dark] .explainer-ctrl:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}[data-theme=dark] .explainer-play{background:var(--accent);color:#06121f;border-color:var(--accent)}[data-theme=dark] .explainer-play:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}[data-theme=dark] .explainer-scene{background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.12) 1px,transparent 0) 0 0 / 20px 20px;border-color:var(--border)}[data-theme=dark] .item-cell rect{fill:var(--panel);stroke:var(--border-strong)}[data-theme=dark] .item-cell.active rect{fill:var(--accent-soft);stroke:var(--accent)}[data-theme=dark] .item-cell.done rect{fill:var(--panel-muted);stroke:var(--border)}[data-theme=dark] .item-cell.done .item-text{fill:var(--muted)}[data-theme=dark] .item-text{fill:var(--text)}[data-theme=dark] .body-card-bg{fill:#c4b5fd24;stroke:#c4b5fd}[data-theme=dark] .body-card.pulse .body-card-bg{fill:#7c3aed4d;stroke:#c4b5fd}[data-theme=dark] .body-card-text{fill:var(--text)}[data-theme=dark] .explainer-caption{color:var(--text)}[data-theme=dark] .explainer-note,[data-theme=dark] .explainer-status,[data-theme=dark] .explainer-step-indicator{color:var(--muted)}[data-theme=dark] .explainer-speed{background:var(--panel);color:var(--text);border-color:var(--border)}[data-theme=dark] .wt-chip-info,[data-theme=dark] .qt-req-skip{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .step-banner,[data-theme=dark] .qt-root,[data-theme=dark] .wt-root,[data-theme=dark] .level-popover{color:var(--text)}[data-theme=dark] .qt-side,[data-theme=dark] .qt-detail,[data-theme=dark] .wt-card,[data-theme=dark] .level-popover{background:var(--panel);border-color:var(--border)}[data-theme=dark] .qt-unit-head{color:var(--text)}[data-theme=dark] .qt-unit-head:hover,[data-theme=dark] .qt-task-item:hover{background:var(--panel-muted)}[data-theme=dark] .qt-task-item.active{background:var(--accent-soft);border-color:var(--accent)}[data-theme=dark] ::-webkit-scrollbar{width:10px;height:10px}[data-theme=dark] ::-webkit-scrollbar-track{background:transparent}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#94a3b833;border-radius:6px;border:2px solid transparent;background-clip:padding-box}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#94a3b859;background-clip:padding-box;border:2px solid transparent}.qt-scroll{gap:20px;padding:20px 20px 28px}.qt-intro h2{font-size:18px;font-weight:600;letter-spacing:-.015em;margin:0 0 4px;color:var(--text)}.qt-intro p{color:var(--muted);font-size:13px;line-height:1.6}.qt-muted{color:var(--muted);font-size:13px}.qt-nonpy{padding:12px 14px;background:var(--warning-soft);border:1px solid rgba(245,158,11,.28);color:var(--warning-text);border-radius:10px;font-size:13px}.qt-h{margin:0 0 10px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.qt-layout{display:grid;grid-template-columns:320px 1fr;gap:18px;align-items:start}.qt-overall{display:flex;flex-direction:column;gap:10px;padding:14px 16px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.qt-overall-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:8px}.qt-overall-label:after{content:attr(data-progress);font-family:var(--mono-font);font-size:12px;font-weight:600;color:var(--text);letter-spacing:0;text-transform:none}.qt-pbar{height:8px;background:var(--panel-muted);border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a0f}.qt-pbar-sm{height:5px}.qt-pbar-fill{height:100%;background:linear-gradient(90deg,var(--accent) 0%,#38BDF8 100%);transition:width .35s cubic-bezier(.2,.8,.2,1);box-shadow:0 0 0 1px #0ea5e933 inset}.qt-unitscol{display:flex;flex-direction:column;gap:10px;position:sticky;top:12px;max-height:calc(100vh - 40px);overflow-y:auto;padding-right:2px}.qt-unit{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:border-color .15s ease}.qt-unit-done{border-color:#10b98159;background:linear-gradient(180deg,var(--panel) 0%,rgba(16,185,129,.02) 100%)}.qt-unit-head{display:grid;grid-template-columns:18px 1fr auto;gap:10px;align-items:center;width:100%;padding:12px 14px;background:none;border:none;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);transition:background .12s ease}.qt-unit-head:hover{background:var(--panel-muted)}.qt-unit-chev{font-size:11px;color:var(--muted);line-height:1;transition:transform .18s ease}.qt-unit-titleblock{display:flex;flex-direction:column;gap:2px;min-width:0}.qt-unit-title{font-weight:600;font-size:13.5px;line-height:1.25;letter-spacing:-.005em}.qt-unit-blurb{font-size:12px;color:var(--muted);line-height:1.4}.qt-unit-progress{font-family:var(--mono-font);font-size:11px;font-weight:600;color:var(--muted-strong);background:var(--panel-muted);border-radius:999px;padding:3px 10px;white-space:nowrap;letter-spacing:0}.qt-unit-progress-done{background:var(--success-soft);color:var(--success-text)}.qt-tasklist{display:flex;flex-direction:column;gap:2px;padding:2px 8px 10px;border-top:1px solid var(--border-soft);margin-top:-1px}.qt-taskitem{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;text-align:left;padding:9px 12px 9px 14px;border:1px solid transparent;border-radius:10px;background:transparent;font-family:inherit;cursor:pointer;transition:background .12s ease,border-color .12s ease;font-size:13px;color:var(--text);line-height:1.35}.qt-taskitem:before{content:"";position:absolute;left:4px;top:8px;bottom:8px;width:3px;border-radius:2px;background:transparent;transition:background .15s ease}.qt-taskitem.active{background:var(--accent-soft);border-color:#0ea5e933}.qt-taskitem-title{line-height:1.35}.qt-solved-check{width:18px;height:18px;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.qt-chip{display:inline-flex;align-items:center;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;padding:3px 8px;border-radius:5px;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border-soft);white-space:nowrap;line-height:1.4}.qt-kind-comments{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}.qt-detail{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px 24px 20px;box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:16px;min-width:0}.qt-d-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.qt-d-title{margin:0;font-size:19px;font-weight:700;letter-spacing:-.02em;color:var(--text);line-height:1.25;width:100%}.qt-d-prompt p{margin:0 0 8px;font-size:14px;line-height:1.7;color:var(--text-soft);letter-spacing:-.003em}.qt-d-prompt p:last-child{margin-bottom:0}.qt-d-sub{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.qt-learn{font-size:13.5px;line-height:1.6;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px;color:var(--accent-text);position:relative;padding:12px 14px 12px 44px}.qt-learn:before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;background:var(--accent);background-image:radial-gradient(circle at 50% 40%,#fff 2px,transparent 2.5px),radial-gradient(circle at 50% 62%,#fff 1px,transparent 1.5px)}.qt-learn strong{color:var(--accent-text);font-weight:600}.qt-reqs-wrap{display:flex;flex-direction:column;gap:8px}.qt-reqs{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.qt-req{display:grid;grid-template-columns:22px 1fr;gap:10px;padding:8px 12px;font-size:13px;background:var(--panel-muted);border:1px solid transparent;border-radius:8px;align-items:start}.qt-req-dot{font-weight:700;text-align:center;color:var(--muted);line-height:1.4;font-size:14px}.qt-req-label{line-height:1.45;color:var(--text)}.qt-req-detail{grid-column:2;margin-top:4px;font-size:12.5px;color:var(--muted);line-height:1.55}.qt-req-pass{background:var(--success-soft);border-color:#10b98140}.qt-req-pass .qt-req-dot{color:var(--success);font-size:13px}.qt-req-fail{background:var(--danger-soft);border-color:#ef444438}.qt-req-fail .qt-req-dot{color:var(--danger)}.qt-d-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px;border-top:1px solid var(--border-soft)}.qt-btn-secondary{background:var(--panel);border:1px solid var(--border);color:var(--text);padding:8px 14px;border-radius:10px;font-size:12.5px;font-weight:500}.qt-btn-secondary:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong)}.qt-hints{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--warning-soft);border:1px solid rgba(245,158,11,.25);border-radius:10px}.qt-hints-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--warning-text)}.qt-hint{margin:0;font-size:13px;line-height:1.6;color:var(--warning-text)}.qt-expected{padding:12px 14px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px}.qt-expected-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-text);margin-bottom:8px}.qt-expected-pre{margin:0;font-family:var(--mono-font);font-size:12.5px;color:var(--accent-text);white-space:pre-wrap;word-break:break-word}.qt-feedback{display:flex;flex-direction:column;gap:10px}.qt-fb{padding:14px 16px;border-radius:12px;border:1px solid transparent;display:flex;flex-direction:column;gap:6px}.qt-fb strong{font-size:14px;font-weight:600;letter-spacing:-.005em}.qt-fb-sub{font-size:12.5px;color:var(--muted)}.qt-fb-ok{background:var(--success-soft);border-color:#10b98147;color:var(--success-text)}.qt-fb-ok .qt-fb-sub{color:var(--success-text);opacity:.75}.qt-fb-err{background:var(--danger-soft);border-color:#ef444440;color:var(--danger-text)}.qt-fb-err .qt-fb-sub{color:var(--danger-text);opacity:.75}.qt-fb-err-line{font-family:var(--mono-font);font-size:12.5px;color:var(--danger-text);background:#ffffff80;border:1px solid rgba(239,68,68,.2);padding:8px 12px;border-radius:8px;white-space:pre-wrap;word-break:break-word}.qt-fb-diff{display:flex;flex-direction:column;gap:8px}.qt-fb-diff-row{display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:start}.qt-fb-diff-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding-top:7px}.qt-fb-diff-pre{margin:0;font-family:var(--mono-font);font-size:12.5px;padding:8px 12px;border-radius:8px;background:var(--panel-muted);border:1px solid var(--border-soft);white-space:pre-wrap;word-break:break-word}.qt-fb-diff-row.want .qt-fb-diff-pre{background:var(--success-soft);border-color:#10b98138;color:var(--success-text)}.qt-fb-diff-row.got .qt-fb-diff-pre{background:var(--danger-soft);border-color:#ef444438;color:var(--danger-text)}.qt-section{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px 18px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:10px}.qt-predict{display:flex;flex-direction:column;gap:16px}.qt-predict-snippet{margin:0;padding:16px 18px;background:var(--code-bg);color:var(--code-text);border-radius:12px;font-family:var(--mono-font);font-size:13px;line-height:1.7;overflow-x:auto;white-space:pre;border:1px solid var(--code-border-strong);box-shadow:inset 0 1px #ffffff0a}.qt-predict-options{display:flex;flex-direction:column;gap:10px}.qt-predict-option{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);cursor:pointer;font-family:inherit;text-align:left;transition:background .12s ease,border-color .12s ease,box-shadow .15s ease,transform .08s ease;font-size:13.5px}.qt-predict-option:hover:not(:disabled){background:var(--panel-muted);border-color:var(--accent-soft-2);box-shadow:0 2px 8px -4px #0ea5e940}.qt-predict-option:active:not(:disabled){transform:translateY(1px)}.qt-predict-option:disabled{cursor:default;opacity:1}.qt-predict-glyph{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:7px;background:var(--panel-muted);color:var(--muted-strong);font-family:var(--mono-font);font-size:11.5px;font-weight:700;letter-spacing:0;border:1px solid var(--border-soft)}.qt-predict-option-label{font-family:var(--mono-font);font-size:13px;white-space:pre-wrap;word-break:break-word}.qt-predict-option.correct{background:var(--success-soft);border-color:#10b98159;color:var(--success-text)}.qt-predict-option.correct .qt-predict-glyph{background:var(--success);color:#fff;border-color:var(--success)}.qt-predict-option.wrong{background:var(--danger-soft);border-color:#ef44444d;color:var(--danger-text)}.qt-predict-option.wrong .qt-predict-glyph{background:var(--danger);color:#fff;border-color:var(--danger)}.qt-predict-feedback{padding:14px 16px;border-radius:12px;border:1px solid transparent;display:flex;flex-direction:column;gap:6px;font-size:13.5px;line-height:1.6}.qt-predict-feedback.ok{background:var(--success-soft);border-color:#10b98147;color:var(--success-text)}.qt-predict-feedback.err{background:var(--danger-soft);border-color:#ef444440;color:var(--danger-text)}.qt-predict-feedback strong{font-size:14.5px;font-weight:600;letter-spacing:-.005em}.qt-predict-feedback p{margin:0;font-size:13px;line-height:1.6}[data-theme=dark] .brand-step-1{fill:var(--soft);opacity:.5}[data-theme=dark] .brand-step-2{fill:#94a3b8;opacity:.9}[data-theme=dark] .panel{background:var(--panel);border-color:var(--border)}[data-theme=dark] .panel-header{border-bottom-color:var(--border);color:var(--muted-strong);background:transparent}[data-theme=dark] .lang-switcher,[data-theme=dark] .tab-bar{background:#ffffff08;border-color:var(--border);box-shadow:none}[data-theme=dark] .lang-tab.active,[data-theme=dark] .tab-btn.active{background:var(--panel-muted);color:var(--text);box-shadow:0 1px 2px #0006}[data-theme=dark] .trace-box{background:var(--panel);border-color:var(--border)}[data-theme=dark] .trace-box:before{background:var(--panel-muted);border-color:var(--border-strong)}[data-theme=dark] .trace-box.active:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px #38bdf838}[data-theme=dark] .trace-result{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .trace-result-loop{background:#38bdf824;color:#7dd3fc;border-color:#38bdf84d}[data-theme=dark] .trace-result-true{background:#10b98124;color:#6ee7b7;border-color:transparent}[data-theme=dark] .trace-result-false{background:#ef444424;color:#fca5a5;border-color:transparent}[data-theme=dark] .trace-result-out{background:#7c3aed24;color:#c4b5fd;border-color:#7c3aed4d}[data-theme=dark] .trace-result-assign{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .flow-scroll{background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.1) 1px,transparent 0) 0 0 / 24px 24px,linear-gradient(180deg,var(--panel) 0%,var(--panel-muted) 100%)}[data-theme=dark] .node.assign>rect{fill:#ffffff05;stroke:#94a3b866}[data-theme=dark] .node.loop>rect{fill:#5eead414;stroke:#5eead4}[data-theme=dark] .node.cond>polygon{fill:#fcd34d14;stroke:#fcd34d}[data-theme=dark] .node.out>rect{fill:#c4b5fd14;stroke:#c4b5fd}[data-theme=dark] .node.start>rect{fill:#10b9811f;stroke:var(--success)}[data-theme=dark] .node.end>rect{fill:#94a3b814;stroke:#94a3b880}[data-theme=dark] .node.end>text{fill:#cbd5e1}[data-theme=dark] .qt-unit{background:var(--panel);border-color:var(--border)}[data-theme=dark] .qt-unit-head:hover,[data-theme=dark] .qt-taskitem:hover{background:var(--panel-muted)}[data-theme=dark] .qt-taskitem.active{background:#0ea5e91a;border-color:#0ea5e94d}[data-theme=dark] .qt-overall,[data-theme=dark] .qt-detail,[data-theme=dark] .qt-section{background:var(--panel);border-color:var(--border)}[data-theme=dark] .qt-pbar{background:#94a3b826}[data-theme=dark] .qt-unit-progress{background:#94a3b81f;color:var(--muted-strong)}[data-theme=dark] .qt-unit-progress-done{background:#10b98124;color:#6ee7b7}[data-theme=dark] .qt-learn{background:#0ea5e91a;border-color:#0ea5e947;color:#7dd3fc}[data-theme=dark] .qt-expected{background:#0ea5e914;border-color:#0ea5e940}[data-theme=dark] .qt-predict-option{background:var(--panel);border-color:var(--border);color:var(--text)}[data-theme=dark] .qt-predict-option:hover:not(:disabled){background:var(--panel-muted)}[data-theme=dark] .qt-predict-glyph{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .wt-card,[data-theme=dark] .wt-pass,[data-theme=dark] .wt-pass-head{background:var(--panel);border-color:var(--border)}[data-theme=dark] .wt-step-row{background:var(--panel-muted);border-color:var(--border)}[data-theme=dark] .wt-pass-head{background:linear-gradient(180deg,var(--panel) 0%,var(--panel-muted) 100%);border-bottom-color:var(--border)}[data-theme=dark] .output-panel{background:var(--code-bg);border-color:var(--code-border-strong)}[data-theme=dark] .output-panel .panel-header{color:var(--code-muted);border-bottom-color:#94a3b81f}[data-theme=dark] #output{color:var(--code-text)}.brand{padding:2px 6px 2px 4px;gap:10px;align-items:center}.brand-lockup{display:inline-flex;align-items:center;gap:10px;line-height:1}.brand-name{font-size:18px;font-weight:700;letter-spacing:-.022em;color:var(--text);line-height:1}.subtitle{font-size:12.5px;color:var(--muted);font-weight:400;letter-spacing:-.003em;line-height:1;padding:0;border:none;margin:0;padding-inline-start:12px;border-left:1px solid var(--border)}.brand{flex-direction:row}@media (min-width: 720px){.brand{flex-direction:column;align-items:flex-start;gap:4px}.brand .subtitle{padding-inline-start:36px;border-left:none;font-size:12.5px;color:var(--muted);line-height:1.2;display:block}}@media (max-width: 719px){.brand .subtitle{display:none}}[data-theme=dark] .subtitle{color:var(--muted);border-left-color:var(--border)}[data-theme=dark] .brand-step-1{fill:#475569;opacity:.6}[data-theme=dark] .brand-step-2{fill:#94a3b8;opacity:.85}.lang-switcher{gap:3px;padding:3px;border-radius:11px}.lang-tab{display:inline-flex;align-items:center;gap:8px;padding:5px 12px 5px 5px;font-size:12.5px;font-weight:500;color:var(--muted);border-radius:9px}.lang-tab.active{font-weight:600}.lang-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--panel);color:var(--muted-strong);font-family:var(--mono-font);font-size:10.5px;font-weight:700;letter-spacing:0;border:1px solid var(--border);flex:0 0 auto;transition:background .15s ease,color .15s ease,border-color .15s ease}.lang-tab:hover:not(:disabled):not(.active) .lang-icon{color:var(--text);border-color:var(--border-strong)}.lang-tab.active .lang-icon{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 0 1px #0ea5e933,0 1px 2px #0ea5e940}.lang-tab:disabled{color:var(--soft);cursor:not-allowed;opacity:1}.lang-tab:disabled .lang-icon{background:transparent;color:var(--soft);border-color:var(--border-soft);border-style:dashed}.lang-label{letter-spacing:0}.lang-tab .soon{margin-left:2px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:transparent;padding:0;border-radius:0;vertical-align:1px;font-weight:600}[data-theme=dark] .lang-icon{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .lang-tab:hover:not(:disabled):not(.active) .lang-icon{color:var(--text);border-color:var(--border-strong)}[data-theme=dark] .lang-tab.active .lang-icon{background:var(--accent);color:#0b1220;border-color:var(--accent);box-shadow:0 0 0 1px #38bdf84d}[data-theme=dark] html,[data-theme=dark] body{background:var(--bg)}[data-theme=dark] .app-bg{opacity:.6}[data-theme=dark] .panel{background:var(--panel);border-color:var(--border);box-shadow:none}[data-theme=dark] .panel-header{background:transparent;border-bottom-color:var(--border-soft);color:var(--muted)}[data-theme=dark] .btn{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .btn:hover:not(:disabled){background:#1a2340;border-color:var(--border-strong)}[data-theme=dark] .btn-primary,[data-theme=dark] .btn-run{background:var(--accent);color:#0b1220;border-color:var(--accent);box-shadow:0 1px 2px #0000004d,0 0 0 1px #38bdf840;font-weight:600}[data-theme=dark] .btn-primary:hover:not(:disabled),[data-theme=dark] .btn-run:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#0b1220}[data-theme=dark] .level-badge{background:var(--panel-muted);border-color:var(--border);color:var(--muted-strong)}[data-theme=dark] .level-badge.level-foundations{background:#34d3991f;color:#6ee7b7}[data-theme=dark] .level-badge.level-intermediate{background:#fbbf241f;color:#fcd34d}[data-theme=dark] .theme-toggle{background:var(--panel-muted);border-color:var(--border);color:var(--muted-strong)}[data-theme=dark] .theme-toggle:hover{background:#1a2340;border-color:var(--border-strong);color:var(--text)}[data-theme=dark] .error-banner{background:#f871711a;border-color:#f871714d;color:#fca5a5}[data-theme=dark] .err-title,[data-theme=dark] .err-body{color:#fca5a5}[data-theme=dark] .err-source{background:#0000004d;color:#fca5a5;border-left-color:var(--danger)}[data-theme=dark] .cap-banner{background:#fbbf2414;border-color:#fbbf2447;color:#fcd34d}[data-theme=dark] .loading{background:#38bdf81a;border-color:#38bdf84d;color:#7dd3fc}[data-theme=dark] .flow-scroll{background:radial-gradient(circle at 1px 1px,rgba(148,163,184,.07) 1px,transparent 0) 0 0 / 24px 24px,linear-gradient(180deg,var(--panel) 0%,var(--panel-sunken) 100%)}[data-theme=dark] .node.assign>rect{fill:var(--panel-muted);stroke:var(--border-strong);stroke-width:1.25}[data-theme=dark] .node.loop>rect{fill:var(--loop-fill);stroke:var(--loop-stroke);stroke-width:1.25}[data-theme=dark] .node.cond>polygon{fill:var(--cond-fill);stroke:var(--cond-stroke);stroke-width:1.25}[data-theme=dark] .node.out>rect{fill:var(--out-fill);stroke:var(--out-stroke);stroke-width:1.25}[data-theme=dark] .node.start>rect{fill:#34d39914;stroke:#34d39973;stroke-width:1.25}[data-theme=dark] .node.end>rect{fill:var(--panel-muted);stroke:var(--border-strong);stroke-width:1.25}[data-theme=dark] .node>text{fill:var(--text)}[data-theme=dark] .node.start>text{fill:#6ee7b7}[data-theme=dark] .node.end>text{fill:var(--muted-strong)}[data-theme=dark] .node.visited>rect,[data-theme=dark] .node.visited>polygon{fill:var(--visited-fill);stroke:var(--visited-stroke)}[data-theme=dark] .node.visited>text{fill:var(--muted)}[data-theme=dark] .node.active>rect,[data-theme=dark] .node.active>polygon{stroke:var(--accent);stroke-width:2;filter:drop-shadow(0 0 12px rgba(56,189,248,.35))}[data-theme=dark] .node.active>text{fill:var(--text);font-weight:600}[data-theme=dark] .edge{stroke:var(--border-strong);stroke-width:1.25}[data-theme=dark] .edge.just-traversed{stroke:var(--accent)}[data-theme=dark] .edge-label{fill:var(--muted)}[data-theme=dark] .edge-label-bg{fill:var(--panel);opacity:.9}[data-theme=dark] .token{fill:var(--accent);filter:drop-shadow(0 0 8px rgba(56,189,248,.55))}[data-theme=dark] .flow-group-bg{fill:#38bdf80a;stroke:#7dd3fc47;stroke-dasharray:5 6}[data-theme=dark] .flow-group.while .flow-group-bg{fill:#fbbf2408;stroke:#fbbf2447}[data-theme=dark] .flow-group-label-bg{fill:var(--panel);stroke:#7dd3fc59}[data-theme=dark] .flow-group.while .flow-group-label-bg{stroke:#fbbf2459}[data-theme=dark] .flow-group-label{fill:#7dd3fc}[data-theme=dark] .flow-group.while .flow-group-label{fill:#fcd34d}[data-theme=dark] .iter-pill-bg{fill:var(--panel);stroke:#7dd3fc59}[data-theme=dark] .iter-pill{fill:var(--text)}[data-theme=dark] .value-chip-bg{fill:var(--panel);stroke:var(--accent);filter:drop-shadow(0 2px 6px rgba(56,189,248,.22))}[data-theme=dark] .value-chip{fill:var(--text)}[data-theme=dark] .exec-count-bg{fill:#38bdf81f;stroke:#38bdf84d}[data-theme=dark] .exec-count{fill:#7dd3fc}[data-theme=dark] .trace-box{background:var(--panel-muted);border-color:var(--border);box-shadow:none}[data-theme=dark] .trace-box:before{background:var(--panel);border-color:var(--border-strong)}[data-theme=dark] .trace-box.visited:before{background:#38bdf81a;border-color:#7dd3fc66}[data-theme=dark] .trace-box.active{border-color:var(--accent);background:#0e2d50b3;box-shadow:0 0 0 1px #38bdf833,0 4px 14px -4px #38bdf847}[data-theme=dark] .trace-box.active:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px #38bdf833}[data-theme=dark] .trace-list:before{background:linear-gradient(180deg,transparent 0%,var(--border) 12%,var(--border) 88%,transparent 100%)}[data-theme=dark] .trace-code{color:var(--text)}[data-theme=dark] .trace-badge{background:#ffffff0f;color:var(--muted-strong);border-color:var(--border-strong)}[data-theme=dark] .trace-badge-loop{background:#38bdf81f;color:#7dd3fc;border-color:#38bdf84d}[data-theme=dark] .trace-badge-cond{background:#fcd34d1a;color:#fcd34d;border-color:#fcd34d4d}[data-theme=dark] .trace-badge-out{background:#c4b5fd1a;color:#c4b5fd;border-color:#c4b5fd47}[data-theme=dark] .trace-badge-assign{background:#ffffff0a;color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .trace-badge-start{background:#34d3991a;color:#6ee7b7;border-color:#34d39947}[data-theme=dark] .trace-badge-end{background:#94a3b814;color:var(--muted);border-color:var(--border)}[data-theme=dark] .trace-result{background:var(--panel);color:var(--muted-strong);border-color:var(--border-strong)}[data-theme=dark] .trace-result-loop{background:#38bdf81a;color:#7dd3fc;border-color:#38bdf840}[data-theme=dark] .trace-result-true{background:#34d3991a;color:#6ee7b7;border-color:#34d3994d}[data-theme=dark] .trace-result-false{background:#f871711a;color:#fca5a5;border-color:#f8717147}[data-theme=dark] .trace-result-out{background:#c4b5fd1a;color:#c4b5fd;border-color:#c4b5fd47}[data-theme=dark] .trace-result-assign{background:var(--panel);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .trace-scroll{background:transparent}[data-theme=dark] .wt-card,[data-theme=dark] .wt-pass{background:var(--panel-muted);border-color:var(--border);box-shadow:none}[data-theme=dark] .wt-pass-head{background:linear-gradient(180deg,var(--panel-muted) 0%,var(--panel) 100%);border-bottom-color:var(--border)}[data-theme=dark] .wt-pass-head:hover{background:linear-gradient(180deg,#1A2340 0%,var(--panel-muted) 100%)}[data-theme=dark] .wt-step-row{background:var(--panel);border-color:var(--border-soft)}[data-theme=dark] .wt-step-row-code{color:var(--text)}[data-theme=dark] .wt-step-row-note,[data-theme=dark] .wt-card-body{color:var(--muted-strong)}[data-theme=dark] .wt-card-body code{background:var(--panel);color:var(--text);border:1px solid var(--border-soft)}[data-theme=dark] .wt-pass-var{background:#38bdf81f;color:#7dd3fc}[data-theme=dark] .wt-label{background:var(--panel);color:var(--muted-strong)}[data-theme=dark] .wt-label-start{background:#34d3991f;color:#6ee7b7}[data-theme=dark] .wt-label-end{background:var(--panel);color:var(--muted-strong)}[data-theme=dark] .wt-label-setup,[data-theme=dark] .wt-label-update{background:#38bdf81f;color:#7dd3fc}[data-theme=dark] .wt-label-loop{background:#38bdf81a;color:#7dd3fc}[data-theme=dark] .wt-label-cond{background:#fbbf241f;color:#fcd34d}[data-theme=dark] .wt-label-out{background:#c4b5fd1f;color:#c4b5fd}[data-theme=dark] .wt-chip-info{background:var(--panel);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .wt-chip-true{background:#34d3991f;color:#6ee7b7}[data-theme=dark] .wt-chip-false{background:#f871711f;color:#fca5a5}[data-theme=dark] .var-type-int,[data-theme=dark] .var-type-float{background:#38bdf81f;color:#7dd3fc}[data-theme=dark] .var-type-str{background:#34d3991f;color:#6ee7b7}[data-theme=dark] .var-type-bool{background:#ec48991f;color:#f9a8d4}[data-theme=dark] .var-type-list,[data-theme=dark] .var-type-tuple{background:#c4b5fd1f;color:#c4b5fd}[data-theme=dark] .var-type-dict{background:#fbbf241f;color:#fcd34d}[data-theme=dark] .var-type-set{background:#f871711f;color:#fca5a5}[data-theme=dark] .var-type-nonetype{background:var(--panel-muted);color:var(--muted-strong)}[data-theme=dark] .var-row.changed{background:#38bdf80f}.qt-scroll{padding:24px 24px 32px;gap:22px}.qt-intro{display:flex;flex-direction:column;gap:6px;padding-bottom:4px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.qt-intro h2{font-size:22px;font-weight:700;letter-spacing:-.025em;color:var(--text);margin:0;display:flex;align-items:center;gap:10px}.qt-intro h2:before{content:"";display:inline-block;width:4px;height:18px;border-radius:2px;background:var(--accent);box-shadow:0 0 0 4px #0ea5e91a}.qt-intro p{font-size:13.5px;line-height:1.65;color:var(--muted);margin:0;max-width:680px}.qt-overall{padding:16px 18px;border-radius:14px;border:1px solid var(--border);box-shadow:var(--shadow-sm);gap:12px}.qt-overall-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.qt-overall-label:after{text-transform:none;letter-spacing:-.005em;font-size:13px;font-weight:600;color:var(--text);font-family:var(--mono-font)}.qt-pbar{height:10px;background:var(--panel-sunken);border:1px solid var(--border-soft);border-radius:999px;overflow:hidden;box-shadow:inset 0 1px 2px #0f172a14}.qt-pbar-sm{height:4px;border:none;background:var(--panel-sunken)}.qt-pbar-fill{background:linear-gradient(90deg,var(--accent) 0%,#38BDF8 100%);box-shadow:0 0 0 1px #0ea5e94d inset,0 0 8px #0ea5e940}[data-theme=dark] .qt-overall{background:var(--panel);border-color:var(--border);box-shadow:none}[data-theme=dark] .qt-pbar{background:var(--panel-sunken);border-color:var(--border-soft)}.qt-layout{gap:20px;grid-template-columns:300px 1fr}@media (max-width: 960px){.qt-layout{grid-template-columns:1fr}}.qt-unitscol{gap:8px}.qt-unit{border-radius:14px;border-color:var(--border);box-shadow:none;transition:border-color .15s ease,background .15s ease}.qt-unit:hover{border-color:var(--border-strong)}.qt-unit-done{border-color:#10b9814d;background:linear-gradient(180deg,var(--panel) 0%,rgba(16,185,129,.015) 100%)}.qt-unit-head{grid-template-columns:16px 1fr auto;padding:13px 14px;gap:10px}.qt-unit-chev{font-size:10px;color:var(--muted);font-family:var(--mono-font)}.qt-unit-title{font-size:13.5px;font-weight:600;letter-spacing:-.005em}.qt-unit-blurb{font-size:12px;color:var(--muted);line-height:1.45;margin-top:2px}.qt-unit-progress{font-family:var(--mono-font);font-size:11px;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border-soft);padding:3px 9px}.qt-unit-progress-done{background:var(--success-soft);color:var(--success-text);border-color:#10b98140}[data-theme=dark] .qt-unit-progress{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .qt-unit-progress-done{background:#34d39924;color:#6ee7b7;border-color:#34d39940}.qt-tasklist{padding:4px 8px 10px;gap:2px;border-top:1px solid var(--border-soft);margin-top:-1px}.qt-taskitem{grid-template-columns:auto 1fr auto;gap:10px;padding:10px 12px 10px 16px;border-radius:10px;background:transparent;border:1px solid transparent;font-size:13px;color:var(--text);position:relative}.qt-taskitem:before{content:"";position:absolute;left:5px;top:9px;bottom:9px;width:3px;border-radius:2px;background:transparent;transition:background .15s ease}.qt-taskitem:hover{background:var(--panel-muted)}.qt-taskitem.active{background:var(--accent-soft);border-color:#0ea5e938}.qt-taskitem.active:before{background:var(--accent)}.qt-taskitem-title{font-weight:500;letter-spacing:-.003em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.qt-taskitem.solved,.qt-taskitem.solved .qt-taskitem-title{color:var(--muted-strong)}.qt-solved-check{width:18px;height:18px;border-radius:50%;background:var(--success-soft);color:var(--success);border:1px solid rgba(16,185,129,.35);font-size:10px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}[data-theme=dark] .qt-solved-check{background:#34d39929;color:#6ee7b7;border-color:#34d3994d}.qt-chip{padding:3px 8px;font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:5px;line-height:1.55;border:1px solid transparent;background:var(--panel-muted);color:var(--muted-strong)}.qt-kind-predict{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-2)}.qt-kind-rebuild{background:var(--success-soft);color:var(--success-text);border-color:#10b9814d}.qt-kind-modify{background:#f5f3ff;color:#5b21b6;border-color:#ddd6fe}.qt-kind-similar{background:var(--warning-soft);color:var(--warning-text);border-color:#f59e0b4d}.qt-kind-fill{background:#ecfeff;color:var(--loop-text);border-color:#a5f3fc}.qt-kind-fixbug{background:var(--danger-soft);color:var(--danger-text);border-color:#ef444447}.qt-kind-comments,[data-theme=dark] .qt-chip{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .qt-kind-predict{background:#38bdf824;color:#7dd3fc;border-color:#38bdf84d}[data-theme=dark] .qt-kind-rebuild{background:#34d3991f;color:#6ee7b7;border-color:#34d3994d}[data-theme=dark] .qt-kind-modify{background:#c4b5fd1f;color:#c4b5fd;border-color:#c4b5fd4d}[data-theme=dark] .qt-kind-similar{background:#fbbf241f;color:#fcd34d;border-color:#fbbf244d}[data-theme=dark] .qt-kind-fill{background:#38bdf81a;color:#7dd3fc;border-color:#38bdf847}[data-theme=dark] .qt-kind-fixbug{background:#f871711a;color:#fca5a5;border-color:#f871714d}[data-theme=dark] .qt-kind-comments{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}.qt-detail{padding:26px 28px 22px;gap:18px;border-radius:16px;border-color:var(--border);box-shadow:var(--shadow-md)}[data-theme=dark] .qt-detail{background:var(--panel);border-color:var(--border);box-shadow:var(--shadow-md)}.qt-d-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.qt-d-title{font-size:20px;font-weight:700;letter-spacing:-.022em;line-height:1.25;color:var(--text)}.qt-d-prompt{display:flex;flex-direction:column;gap:10px}.qt-d-prompt p{font-size:14px;line-height:1.7;color:var(--text-soft);margin:0}[data-theme=dark] .qt-d-prompt p{color:var(--text-soft)}.qt-d-sub{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.qt-learn{background:var(--accent-soft);border:1px solid var(--accent-soft-2);border-radius:10px;color:var(--accent-text);font-size:13.5px;line-height:1.6;position:relative;padding:12px 16px}.qt-learn:before{display:none}.qt-learn strong{font-weight:600;color:var(--accent-text);letter-spacing:.02em;margin-right:4px}[data-theme=dark] .qt-learn{background:#38bdf814;border-color:#38bdf847;color:#7dd3fc}[data-theme=dark] .qt-learn strong{color:#7dd3fc}.qt-reqs-wrap{gap:10px}.qt-reqs{gap:6px}.qt-req{grid-template-columns:20px 1fr;gap:10px;padding:10px 12px;font-size:13px;background:var(--panel-muted);border:1px solid var(--border-soft);border-radius:10px;align-items:start}.qt-req-dot{width:18px;height:18px;border-radius:50%;background:transparent;border:1.5px solid var(--border-strong);color:var(--muted);display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;line-height:1;margin-top:1px}.qt-req-dot:before{content:""}.qt-req-label{color:var(--text);font-size:13px;line-height:1.5}.qt-req-detail{color:var(--muted);font-size:12.5px;line-height:1.55}.qt-req-pass{background:var(--success-soft);border-color:#10b98147}.qt-req-pass .qt-req-dot{background:var(--success);border-color:var(--success);color:#fff;font-size:10px}.qt-req-pass .qt-req-dot:before{content:"✓"}.qt-req-pass .qt-req-label{color:var(--success-text)}.qt-req-fail{background:var(--danger-soft);border-color:#ef444440}.qt-req-fail .qt-req-dot{background:var(--danger);border-color:var(--danger);color:#fff;font-size:10px}.qt-req-fail .qt-req-dot:before{content:"!"}.qt-req-fail .qt-req-label{color:var(--danger-text)}.qt-req-skip{background:var(--panel-muted)}.qt-req-skip .qt-req-dot:before{content:"•"}[data-theme=dark] .qt-req{background:var(--panel-muted);border-color:var(--border)}[data-theme=dark] .qt-req-label{color:var(--text)}[data-theme=dark] .qt-req-detail{color:var(--muted-strong)}[data-theme=dark] .qt-req-dot{border-color:var(--border-strong);color:var(--muted)}[data-theme=dark] .qt-req-pass{background:#34d3991a;border-color:#34d3994d}[data-theme=dark] .qt-req-pass .qt-req-dot{background:var(--success);border-color:var(--success);color:#0b1220}[data-theme=dark] .qt-req-pass .qt-req-label{color:#6ee7b7}[data-theme=dark] .qt-req-fail{background:#f871711a;border-color:#f8717147}[data-theme=dark] .qt-req-fail .qt-req-dot{background:var(--danger);border-color:var(--danger);color:#fff}[data-theme=dark] .qt-req-fail .qt-req-label{color:#fca5a5}.qt-d-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:14px;border-top:1px solid var(--border-soft);align-items:center}.qt-d-actions .btn{height:36px;padding:0 16px;font-size:13px;font-weight:500}.qt-d-actions .btn-primary{font-weight:600;padding:0 18px}.qt-d-actions .qt-btn-secondary{background:transparent;border:1px solid var(--border);color:var(--muted-strong)}.qt-d-actions .qt-btn-secondary:hover:not(:disabled){background:var(--panel-muted);border-color:var(--border-strong);color:var(--text)}[data-theme=dark] .qt-d-actions .qt-btn-secondary{background:transparent;border-color:var(--border);color:var(--muted-strong)}[data-theme=dark] .qt-d-actions .qt-btn-secondary:hover:not(:disabled){background:var(--panel-muted);color:var(--text)}.qt-hints{padding:12px 14px;background:var(--warning-soft);border:1px solid rgba(245,158,11,.3);border-radius:10px;gap:6px}.qt-hints-label{letter-spacing:.1em;color:var(--warning-text)}.qt-hint{color:var(--warning-text);line-height:1.6}[data-theme=dark] .qt-hints{background:#fbbf2414;border-color:#fbbf2447}[data-theme=dark] .qt-hints-label,[data-theme=dark] .qt-hint{color:#fcd34d}.qt-expected{padding:12px 14px;background:var(--accent-soft);border-color:var(--accent-soft-2)}.qt-expected-label{letter-spacing:.1em;color:var(--accent-text)}.qt-expected-pre{color:var(--accent-text)}[data-theme=dark] .qt-expected{background:#38bdf814;border-color:#38bdf847}[data-theme=dark] .qt-expected-label,[data-theme=dark] .qt-expected-pre{color:#7dd3fc}.qt-fb{padding:14px 16px;border-radius:12px;gap:6px}.qt-fb-ok{background:var(--success-soft);border-color:#10b9814d;color:var(--success-text)}.qt-fb-err{background:var(--danger-soft);border-color:#ef444447;color:var(--danger-text)}[data-theme=dark] .qt-fb-ok{background:#34d3991a;border-color:#34d3994d;color:#6ee7b7}[data-theme=dark] .qt-fb-ok .qt-fb-sub{color:#6ee7b7;opacity:.85}[data-theme=dark] .qt-fb-err{background:#f871711a;border-color:#f8717147;color:#fca5a5}[data-theme=dark] .qt-fb-err .qt-fb-sub{color:#fca5a5;opacity:.85}[data-theme=dark] .qt-fb-err-line{background:#00000040;color:#fca5a5;border-color:#f8717140}[data-theme=dark] .qt-fb-diff-pre{background:var(--panel-muted);border-color:var(--border-soft);color:var(--text)}[data-theme=dark] .qt-fb-diff-row.want .qt-fb-diff-pre{background:#34d3991a;border-color:#34d39940;color:#6ee7b7}[data-theme=dark] .qt-fb-diff-row.got .qt-fb-diff-pre{background:#f871711a;border-color:#f8717140;color:#fca5a5}.qt-predict-snippet{padding:16px 18px;background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border-strong);border-radius:12px;line-height:1.7}.qt-predict-question{font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.008em}.qt-predict-option{padding:14px 16px;border-radius:12px;font-size:13.5px}.qt-predict-glyph{width:26px;height:26px;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border-soft);font-family:var(--mono-font);font-size:11.5px;border-radius:7px}[data-theme=dark] .qt-predict-option{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .qt-predict-option:hover:not(:disabled){background:#1a2340;border-color:var(--border-strong)}[data-theme=dark] .qt-predict-glyph{background:var(--panel);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .qt-predict-option.correct{background:#34d3991a;border-color:#34d39959;color:#6ee7b7}[data-theme=dark] .qt-predict-option.correct .qt-predict-glyph{background:var(--success);border-color:var(--success);color:#0b1220}[data-theme=dark] .qt-predict-option.wrong{background:#f871711a;border-color:#f871714d;color:#fca5a5}[data-theme=dark] .qt-predict-option.wrong .qt-predict-glyph{background:var(--danger);border-color:var(--danger);color:#fff}[data-theme=dark] .qt-predict-feedback.ok{background:#34d3991a;border-color:#34d3994d;color:#6ee7b7}[data-theme=dark] .qt-predict-feedback.err{background:#f871711a;border-color:#f8717147;color:#fca5a5}.qt-section{padding:18px 20px;border-radius:14px;border-color:var(--border);box-shadow:none;gap:10px}.qt-section h3.qt-h{font-size:11px;letter-spacing:.1em;font-weight:600;color:var(--muted);margin:0}[data-theme=dark] .qt-section{background:var(--panel);border-color:var(--border)}[data-theme=dark] .examples-menu{background:var(--panel);border-color:var(--border);box-shadow:var(--shadow-lg)}[data-theme=dark] .example-item:hover{background:var(--panel-muted)}[data-theme=dark] .example-item-title{color:var(--text)}[data-theme=dark] .example-item-blurb{color:var(--muted)}[data-theme=dark] .modal-overlay{background:#030712b3}[data-theme=dark] .modal-dialog{background:var(--panel);border:1px solid var(--border);box-shadow:var(--shadow-lg)}[data-theme=dark] .explainer-code,[data-theme=dark] .explainer-ctrl{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .explainer-ctrl:hover:not(:disabled){background:#1a2340;border-color:var(--border-strong)}[data-theme=dark] .explainer-speed{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .wt-card{opacity:.62;background:var(--panel-muted);border-color:var(--border);box-shadow:none}[data-theme=dark] .wt-card.visited{opacity:.85}[data-theme=dark] .wt-card.active{opacity:1;border-color:var(--border);border-left-color:var(--accent);box-shadow:0 0 0 1px #38bdf838,0 10px 28px -16px #38bdf859}[data-theme=dark] .wt-stage-start{border-left-color:#6ee7b7b3}[data-theme=dark] .wt-stage-end{border-left-color:var(--border-strong)}[data-theme=dark] .wt-stage-setup{border-left-color:#7dd3fcb3}[data-theme=dark] .wt-stage-update{border-left-color:#38bdf8b3}[data-theme=dark] .wt-stage-loop{border-left-color:#7dd3fcb3}[data-theme=dark] .wt-stage-check{border-left-color:#fcd34db3}[data-theme=dark] .wt-stage-print{border-left-color:#c4b5fdb3}[data-theme=dark] .wt-narrative{color:var(--text-soft)}[data-theme=dark] .wt-narrative code{background:var(--panel-sunken);color:var(--text);border-color:var(--border-soft)}[data-theme=dark] .wt-code{background:var(--code-bg);color:var(--code-text);border-color:var(--code-border-strong)}[data-theme=dark] .wt-meta{color:var(--muted)}[data-theme=dark] .wt-meta b{color:var(--text)}[data-theme=dark] .wt-chip{background:var(--panel);color:var(--text-soft);border-color:var(--border)}[data-theme=dark] .wt-chip code{background:var(--panel-sunken);color:var(--text);border-color:var(--border-soft)}[data-theme=dark] .wt-chip-new,[data-theme=dark] .wt-chip-true{background:#34d3991f;color:#6ee7b7;border-color:#34d3994d}[data-theme=dark] .wt-chip-new code,[data-theme=dark] .wt-chip-true code{background:#34d39914;color:#6ee7b7;border-color:#34d3994d}[data-theme=dark] .wt-chip-change{background:#38bdf81f;color:#7dd3fc;border-color:#38bdf84d}[data-theme=dark] .wt-chip-change code{background:#38bdf814;color:#7dd3fc;border-color:#38bdf84d}[data-theme=dark] .wt-chip-false{background:#f871711f;color:#fca5a5;border-color:#f871714d}[data-theme=dark] .wt-chip-false code{background:#f8717114;color:#fca5a5;border-color:#f871714d}[data-theme=dark] .wt-chip-output{background:#c4b5fd1f;color:#c4b5fd;border-color:#c4b5fd4d}[data-theme=dark] .wt-chip-output code{background:#c4b5fd14;color:#c4b5fd;border-color:#c4b5fd4d}[data-theme=dark] .wt-chip-iter{background:#38bdf81a;color:#7dd3fc;border-color:#38bdf847}[data-theme=dark] .wt-chip-iter code{background:#38bdf80f;color:#7dd3fc;border-color:#38bdf847}[data-theme=dark] .wt-label{background:var(--panel-sunken);color:var(--muted-strong)}[data-theme=dark] .wt-label-start{background:#34d39924;color:#6ee7b7}[data-theme=dark] .wt-label-end{background:var(--panel-sunken);color:var(--muted-strong)}[data-theme=dark] .wt-label-setup{background:#7dd3fc24;color:#7dd3fc}[data-theme=dark] .wt-label-update{background:#38bdf824;color:#7dd3fc}[data-theme=dark] .wt-label-loop{background:#38bdf81f;color:#7dd3fc}[data-theme=dark] .wt-label-check{background:#fbbf2424;color:#fcd34d}[data-theme=dark] .wt-label-print{background:#c4b5fd24;color:#c4b5fd}[data-theme=dark] .wt-arrow{color:var(--muted)}[data-theme=dark] .wt-arrow-glyph{color:var(--border-strong)}[data-theme=dark] .wt-arrow-label b{color:var(--text)}[data-theme=dark] .wt-arrow-back{color:#7dd3fc;background:linear-gradient(to bottom,transparent 40%,rgba(56,189,248,.08) 50%,transparent 60%)}[data-theme=dark] .wt-arrow-back .wt-arrow-glyph{color:#7dd3fccc}[data-theme=dark] .wt-group{background:var(--panel-muted);border-color:var(--border);border-left-color:#7dd3fc8c;box-shadow:none}[data-theme=dark] .wt-group-summary{color:var(--text-soft)}[data-theme=dark] .wt-group-summary b{color:var(--text)}[data-theme=dark] .wt-pass{background:var(--panel-sunken);border-color:var(--border)}[data-theme=dark] .wt-pass.expanded{background:var(--panel);border-color:#7dd3fc73;box-shadow:0 0 0 1px #38bdf814}[data-theme=dark] .wt-pass-head{color:var(--text)}[data-theme=dark] .wt-pass-head:hover{background:#38bdf814}[data-theme=dark] .wt-pass-head.active{background:#38bdf81f;box-shadow:inset 3px 0 0 var(--accent),0 0 0 1px #38bdf838}[data-theme=dark] .wt-pass-head.visited{color:var(--muted)}[data-theme=dark] .wt-pass-num{color:#7dd3fc;background:#38bdf824}[data-theme=dark] .wt-pass-var{color:var(--text)}[data-theme=dark] .wt-pass-var code{background:var(--panel-muted);border-color:var(--border-soft);color:var(--text)}[data-theme=dark] .wt-pass-delta{color:#7dd3fc}[data-theme=dark] .wt-pass-delta code{background:#38bdf81a;border-color:#38bdf84d;color:#7dd3fc}[data-theme=dark] .wt-pass-toggle{color:var(--muted)}[data-theme=dark] .wt-pass.expanded .wt-pass-toggle{color:var(--text)}[data-theme=dark] .wt-pass-body{border-top-color:var(--border)}[data-theme=dark] .wt-pass-body>.wt-card{background:var(--panel-muted);border-color:var(--border);opacity:1}[data-theme=dark] .wt-empty-title{color:var(--text)}[data-theme=dark] .wt-empty-body{color:var(--muted)}.qt-unitscol{position:static;top:auto;max-height:none;overflow:visible;padding-right:0;min-width:0}.qt-layout>*{min-width:0}.qt-detail{align-self:start;min-width:0}.qt-unit{overflow:clip;isolation:isolate}.qt-tasklist{margin:0}.qt-taskitem{display:grid;grid-template-columns:auto 1fr auto;align-items:center}.lang-icon{width:22px;height:22px;background:transparent;border:none;color:inherit;padding:0;overflow:hidden;border-radius:6px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 0 0 1px #0f172a0f;transition:transform .15s ease,filter .18s ease,box-shadow .15s ease}.lang-icon svg{width:100%;height:100%;display:block;border-radius:inherit}.lang-tab:not(.active) .lang-icon{filter:saturate(.75) brightness(.97)}.lang-tab:not(.active):not(:disabled):hover .lang-icon{filter:saturate(1);transform:scale(1.04)}.lang-tab.active{background:var(--bg-elev);box-shadow:0 0 0 1px #0ea5e938,0 1px 2px #0ea5e91f}.lang-tab.active .lang-icon{filter:none;box-shadow:0 0 0 1px #0f172a0f,0 2px 6px #0ea5e940}.lang-tab:disabled .lang-icon{filter:grayscale(1) opacity(.55);box-shadow:0 0 0 1px #0f172a0f}.lang-tab:disabled .lang-label{color:var(--soft)}.lang-tab .soon{margin-left:4px;padding:2px 6px;font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);background:var(--panel);border:1px solid var(--border);border-radius:4px;vertical-align:middle}[data-theme=dark] .lang-icon{box-shadow:0 0 0 1px #ffffff0f}[data-theme=dark] .lang-tab.active{background:var(--panel-muted);box-shadow:0 0 0 1px #38bdf859,0 1px 2px #38bdf81f}[data-theme=dark] .lang-tab.active .lang-icon{box-shadow:0 0 0 1px #ffffff14,0 2px 8px #38bdf859}[data-theme=dark] .lang-tab:disabled .lang-icon{filter:grayscale(1) opacity(.45)}[data-theme=dark] .lang-tab .soon{background:var(--panel);border-color:var(--border);color:var(--muted)}.output-panel .panel-header{padding:12px 18px;color:var(--code-muted);letter-spacing:0;min-height:44px}.output-panel #output{padding:14px 18px 16px}.output-panel,.panel,.code-panel,.flow-panel,.vars-panel,.controls{border-radius:14px}.trace-scroll{padding:36px 24px 40px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.trace-list{padding:6px 0;gap:12px;width:100%;max-width:420px;align-self:center;margin-left:auto;margin-right:auto}.trace-list:before{left:21px}.trace-box{padding-left:10px}.step-banner{padding-left:16px;padding-right:16px}.controls.panel{border-radius:14px;padding:10px 14px}.qt-unit .qt-pbar-sm{border-radius:0;border:none;height:3px;background:var(--panel-muted)}[data-theme=dark] .qt-unit .qt-pbar-sm{background:var(--panel-sunken)}.qt-unit-chev{width:14px;text-align:center;opacity:.7}[data-theme=dark] .qt-predict-snippet{background:var(--code-bg);color:var(--code-text);border-color:var(--code-border-strong)}.qt-taskitem-chips,.qt-d-chips{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.qt-diff-chip{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid transparent;line-height:1.5}.qt-diff-easy{background:#ecfeff;color:#155e75;border-color:#bae6fd}.qt-diff-medium{background:#fef3c7;color:#92400e;border-color:#fde68a}.qt-diff-hard{background:#f5f3ff;color:#5b21b6;border-color:#ddd6fe}[data-theme=dark] .qt-diff-easy{background:#38bdf81a;color:#7dd3fc;border-color:#38bdf842}[data-theme=dark] .qt-diff-medium{background:#fbbf241a;color:#fcd34d;border-color:#fbbf2442}[data-theme=dark] .qt-diff-hard{background:#c4b5fd1a;color:#c4b5fd;border-color:#c4b5fd47}.qt-d-head .qt-d-chips{margin-bottom:2px}.qt-taskitem .qt-taskitem-chips{grid-column:1 / 2}.qt-taskitem .qt-chip:not(.qt-diff-chip),.qt-d-chips .qt-chip:not(.qt-diff-chip){font-weight:700}.qtv2-scroll{display:flex;flex-direction:column;gap:18px;padding:22px 22px 28px}.qtv2-intro{display:flex;flex-direction:column;gap:6px}.qtv2-intro-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-wrap:wrap}.qtv2-title{font-size:22px;font-weight:700;letter-spacing:-.022em;line-height:1.2;color:var(--text);margin:0}.qtv2-progress{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-strong);font-variant-numeric:tabular-nums}.qtv2-sub{font-size:14px;line-height:1.6;color:var(--text-soft);margin:0;max-width:64ch}[data-theme=dark] .qtv2-progress{color:var(--muted-strong)}.qtv2-picker{position:relative;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.qtv2-picker-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong)}.qtv2-picker-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.qtv2-picker-btn:hover{border-color:var(--border-strong)}.qtv2-picker-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.qtv2-picker-btn[aria-expanded=true]{border-color:var(--accent);box-shadow:0 0 0 3px #0ea5e924}.qtv2-picker-chev{font-size:10px;color:var(--muted)}.qtv2-picker-current{max-width:32ch;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qtv2-picker-menu{position:static;display:flex;flex-direction:column;gap:2px;width:100%;max-width:420px;max-height:320px;overflow-y:auto;overscroll-behavior:contain;margin-top:8px;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-sm);animation:qtv2-picker-in .14s ease-out;scrollbar-width:thin}.qtv2-picker-menu[hidden]{display:none}.qtv2-picker-menu::-webkit-scrollbar{width:8px}.qtv2-picker-menu::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:2px solid var(--panel)}.qtv2-picker-menu::-webkit-scrollbar-track{background:transparent}@keyframes qtv2-picker-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.qtv2-picker-menu{animation:none}}[data-theme=dark] .qtv2-picker-menu{background:var(--panel);border-color:var(--border)}.qtv2-picker-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font-size:13px;font-weight:500;text-align:left;cursor:pointer;transition:background .12s ease,color .12s ease}.qtv2-picker-opt:hover{background:var(--panel-muted)}.qtv2-picker-opt.active{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-2)}[data-theme=dark] .qtv2-picker-opt:hover{background:var(--panel-muted)}[data-theme=dark] .qtv2-picker-opt.active{background:#38bdf81f;color:#7dd3fc;border-color:#38bdf84d}.qtv2-picker-opt-name{flex:1 1 auto;min-width:0;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qtv2-picker-opt-prog{flex:0 0 auto;text-align:right;font-variant-numeric:tabular-nums;font-size:11px;letter-spacing:.04em;color:var(--muted)}.qtv2-picker-opt.active .qtv2-picker-opt-prog{color:var(--accent-text)}.qtv2-card{background:var(--panel);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);padding:26px 28px 22px;display:flex;flex-direction:column;gap:18px}[data-theme=dark] .qtv2-card{background:var(--panel);border-color:var(--border);box-shadow:var(--shadow-md)}.qtv2-head{display:flex;flex-direction:column;gap:10px}.qtv2-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.qtv2-unit-chip{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border);font-weight:600}[data-theme=dark] .qtv2-unit-chip{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}.qtv2-titlerow{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.qtv2-titleh{font-size:20px;font-weight:700;letter-spacing:-.022em;line-height:1.25;color:var(--text);margin:0}.qtv2-attempts{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid transparent;font-size:11.5px;font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;line-height:1.5;background:var(--panel-muted);color:var(--muted-strong)}.qtv2-attempts.muted{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}.qtv2-attempts.warn{background:var(--warning-soft);color:var(--warning-text);border-color:#f59e0b4d}.qtv2-attempts.danger{background:var(--danger-soft);color:var(--danger-text);border-color:#ef44444d}.qtv2-attempts.spent{background:#f3f4f6;color:#4b5563;border-color:#e5e7eb}.qtv2-attempts.ok{background:var(--success-soft);color:var(--success-text);border-color:#10b9814d}[data-theme=dark] .qtv2-attempts.muted{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .qtv2-attempts.warn{background:#fbbf241f;color:#fcd34d;border-color:#fbbf244d}[data-theme=dark] .qtv2-attempts.danger{background:#f8717124;color:#fca5a5;border-color:#f871714d}[data-theme=dark] .qtv2-attempts.spent{background:#94a3b81f;color:#cbd5e1;border-color:#94a3b840}[data-theme=dark] .qtv2-attempts.ok{background:#34d3991f;color:#6ee7b7;border-color:#34d3994d}.qtv2-prompt{display:flex;flex-direction:column;gap:10px}.qtv2-prompt p{margin:0;font-size:14px;line-height:1.7;color:var(--text-soft)}.qtv2-learn{padding:10px 12px;border-radius:10px;background:var(--accent-soft);color:var(--accent-text);border:1px solid var(--accent-soft-2);font-size:13px!important;line-height:1.55!important}.qtv2-learn strong{font-weight:700}[data-theme=dark] .qtv2-learn{background:#38bdf817;color:#7dd3fc;border-color:#38bdf842}.qtv2-reqs-wrap{display:flex;flex-direction:column;gap:10px}.qtv2-reqs-title{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong);margin:0}.qtv2-reqs{display:flex;flex-direction:column;gap:6px}.qtv2-flow-hint{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;margin:-6px 0 -2px;padding:6px 12px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);color:var(--accent-text);font-size:12.5px;font-weight:500;line-height:1.45}.qtv2-flow-hint-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:999px;background:#0ea5e92e;font-size:11px;font-weight:700;line-height:1}.qtv2-flow-hint-text{letter-spacing:.01em}[data-theme=dark] .qtv2-flow-hint{background:#0ea5e91f;border-color:#38bdf847;color:#7dd3fc}[data-theme=dark] .qtv2-flow-hint-icon{background:#38bdf838}.qtv2-loaded-note{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:500;letter-spacing:.01em;background:var(--panel-muted);color:var(--muted-strong);border:1px solid var(--border)}.qtv2-loaded-note.is-loaded{background:var(--accent-soft);color:var(--accent-text);border-color:var(--accent-soft-2)}.qtv2-loaded-note.is-loaded:before{content:"✓";font-weight:700;font-size:12px;line-height:1}[data-theme=dark] .qtv2-loaded-note{background:var(--panel-muted);color:var(--muted-strong);border-color:var(--border)}[data-theme=dark] .qtv2-loaded-note.is-loaded{background:#0ea5e91f;color:#7dd3fc;border-color:#38bdf847}.qtv2-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.qtv2-primary{min-width:172px;justify-content:center}.qtv2-primary-success{background:var(--success);border-color:var(--success)}.qtv2-primary-success:hover{background:#059669;border-color:#059669}[data-theme=dark] .qtv2-primary-success{background:#10b981;border-color:#10b981;color:#04231a}[data-theme=dark] .qtv2-primary-success:hover{background:#34d399;border-color:#34d399}.qtv2-solution{border:1px solid var(--border);border-radius:12px;padding:14px 16px;background:var(--panel-muted);display:flex;flex-direction:column;gap:10px}[data-theme=dark] .qtv2-solution{background:var(--panel-muted);border-color:var(--border)}.qtv2-solution-head{font-size:13px;line-height:1.5;color:var(--text)}.qtv2-solution-head strong{font-weight:700}.qtv2-solution-sublabel{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-strong)}.qtv2-solution-hints{padding-left:20px;margin:0;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.6;color:var(--text-soft)}.qtv2-solution-hints li{padding-left:4px}.qtv2-fb-review{background:var(--panel-muted)!important;color:var(--text)!important;border-color:var(--border)!important}[data-theme=dark] .qtv2-fb-review{background:var(--panel-muted)!important;border-color:var(--border)!important}.qtv2-fb-warn{background:var(--warning-soft)!important;color:var(--warning-text)!important;border-color:#f59e0b47!important}.qtv2-fb-warn .qt-fb-sub{color:var(--warning-text)!important;opacity:.82}[data-theme=dark] .qtv2-fb-warn{background:#fbbf241a!important;border-color:#fbbf2452!important;color:var(--warning-text)!important}[data-theme=dark] .qtv2-fb-warn .qt-fb-sub{color:var(--warning-text)!important;opacity:.82}.qtv2-fb-neutral{background:var(--panel-muted)!important;color:var(--text)!important;border-color:var(--border)!important}.qtv2-fb-neutral .qt-fb-sub{color:var(--muted)!important}[data-theme=dark] .qtv2-fb-neutral{background:var(--panel-muted)!important;border-color:var(--border)!important;color:var(--text)!important}@keyframes qtv2-fb-pulse-kf{0%{box-shadow:0 0 #6366f18c}60%{box-shadow:0 0 0 10px #6366f100}to{box-shadow:0 0 #6366f100}}.qtv2-fb-pulse{animation:qtv2-fb-pulse-kf .9s ease-out 1;border-radius:12px}.qtv2-fb-review-note{margin:4px 0 0;font-size:12.5px;color:var(--muted)}.qtv2-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 2px 2px}.qtv2-nav-pos{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--muted);font-variant-numeric:tabular-nums}.qtv2-prev,.qtv2-next{min-width:120px;justify-content:center}.qtv2-prev:disabled,.qtv2-next:disabled{opacity:.45;cursor:not-allowed}@media (max-width: 720px){.qtv2-scroll{padding:16px 14px 24px}.qtv2-card{padding:20px 18px 18px}.qtv2-titlerow{flex-direction:column;align-items:flex-start}.qtv2-primary{min-width:0;width:100%}.qtv2-nav{flex-wrap:wrap}.qtv2-prev,.qtv2-next{flex:1}}.code-panel,.flow-panel{overflow:hidden;overflow:clip}.code-panel>.panel-header,.flow-panel>.panel-header{position:sticky;top:0;z-index:5;background:var(--panel);backdrop-filter:saturate(1.4);-webkit-backdrop-filter:saturate(1.4);box-shadow:0 1px 0 var(--border-soft)}.flow-panel>.panel-header.flow-header{padding:8px 10px;min-height:48px}[data-theme=dark] .code-panel>.panel-header,[data-theme=dark] .flow-panel>.panel-header{background:var(--panel);box-shadow:0 1px 0 var(--border)}.flow-scroll{position:relative}.map-default-start{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-start;justify-content:center;padding:56px 24px 24px;pointer-events:none;z-index:1}.map-default-start[hidden],#flow[hidden]{display:none!important}.wt-scroll,.flow-scroll,.trace-scroll{--grid-x: 0px;--grid-y: 0px;--grid-dot: rgba(148, 163, 184, .18);background-color:var(--panel);background-image:radial-gradient(circle at 1px 1px,var(--grid-dot) 1px,transparent 0);background-size:22px 22px;background-position:var(--grid-x) var(--grid-y);background-repeat:repeat;transition:background-position .45s ease-out}@media (prefers-reduced-motion: no-preference){.wt-scroll.viz-hover-grid-host:hover,.flow-scroll.viz-hover-grid-host:hover,.trace-scroll.viz-hover-grid-host:hover{--grid-dot: rgba(148, 163, 184, .26)}}[data-theme=dark] .wt-scroll,[data-theme=dark] .flow-scroll,[data-theme=dark] .trace-scroll{background-color:var(--panel);--grid-dot: rgba(148, 163, 184, .16);background-image:radial-gradient(circle at 1px 1px,var(--grid-dot) 1px,transparent 0);background-size:22px 22px;background-position:var(--grid-x) var(--grid-y);background-repeat:repeat;transition:background-position .45s ease-out}@media (prefers-reduced-motion: no-preference){[data-theme=dark] .wt-scroll.viz-hover-grid-host:hover,[data-theme=dark] .flow-scroll.viz-hover-grid-host:hover,[data-theme=dark] .trace-scroll.viz-hover-grid-host:hover{--grid-dot: rgba(148, 163, 184, .24)}}@media (prefers-reduced-motion: reduce){.wt-scroll,.flow-scroll,.trace-scroll{transition:none;--grid-x: 0px;--grid-y: 0px}.wt-scroll.viz-hover-grid-host,.flow-scroll.viz-hover-grid-host,.trace-scroll.viz-hover-grid-host{--grid-x: 0 !important;--grid-y: 0 !important}}.vis-empty-caption{margin:14px auto 0;max-width:320px;text-align:center;color:var(--muted);font-size:12.5px;line-height:1.55;letter-spacing:.005em;font-style:normal;font-family:var(--ui-font)}[data-theme=dark] .vis-empty-caption{color:var(--muted)}.trace-default{display:flex;flex-direction:column;align-items:center;padding:48px 16px 24px}.trace-default[hidden]{display:none!important}.vis-empty-tl{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:stretch}.trace-box--preview{opacity:.86;cursor:default;box-shadow:none;border-style:dashed}[data-theme=dark] .trace-box--preview{opacity:.78;background:var(--panel);border-color:var(--border-strong)}.map-default-start{flex-direction:column;align-items:center;justify-content:flex-start;padding:40px 24px 28px;gap:4px}.vis-empty-flow{width:100%;max-width:520px;display:flex;flex-direction:column;align-items:center}.vis-empty-flow-svg{width:min(100%,420px);height:auto;max-height:220px;overflow:visible}.vis-empty-flow-connector{stroke:var(--border-strong);stroke-width:2;stroke-linecap:round;stroke-dasharray:4 5;opacity:.65}.vis-empty-flow-placeholder>rect{fill:var(--panel);stroke:var(--border-strong);stroke-width:1.5;stroke-dasharray:5 5;opacity:.9}.vis-empty-flow-placeholder>text{fill:var(--muted);font-family:var(--ui-font);font-size:12.5px;font-weight:500;letter-spacing:.005em}[data-theme=dark] .vis-empty-flow-connector{stroke:var(--border-strong);opacity:.7}[data-theme=dark] .vis-empty-flow-placeholder>rect{fill:var(--panel-muted);stroke:var(--border-strong)}[data-theme=dark] .vis-empty-flow-placeholder>text{fill:var(--muted)}.qtv2-card [hidden]{display:none!important}.qtv2-card .qtv2-reqs{gap:4px}.qtv2-card .qtv2-reqs .qt-req{grid-template-columns:14px 1fr;gap:10px;padding:3px 0;background:transparent;border:none;border-radius:0}.qtv2-card .qtv2-reqs .qt-req-dot{width:auto;height:auto;min-width:12px;background:transparent;border:none;color:var(--muted);font-size:14px;margin-top:0;line-height:1.6;display:inline-block;text-align:center}.qtv2-card .qtv2-reqs .qt-req-dot:before{content:""}.qtv2-card .qtv2-reqs .qt-req-label{color:var(--text-soft);font-size:13.5px;line-height:1.6}[data-theme=dark] .qtv2-card .qtv2-reqs .qt-req{background:transparent;border:none}[data-theme=dark] .qtv2-card .qtv2-reqs .qt-req-dot{color:var(--muted)}[data-theme=dark] .qtv2-card .qtv2-reqs .qt-req-label{color:var(--text-soft)}.qtv2-card .qtv2-hints{background:var(--panel-muted);border:1px solid var(--border-soft)}.qtv2-card .qtv2-hints .qt-hints-label{color:var(--muted-strong)}.qtv2-card .qtv2-hints .qt-hint{color:var(--text-soft)}[data-theme=dark] .qtv2-card .qtv2-hints{background:var(--panel-muted);border-color:var(--border)}[data-theme=dark] .qtv2-card .qtv2-hints .qt-hints-label{color:var(--muted-strong)}[data-theme=dark] .qtv2-card .qtv2-hints .qt-hint{color:var(--text-soft)}.qtv2-card .qtv2-expected{background:var(--panel-sunken);border:1px solid var(--border-soft)}.qtv2-card .qtv2-expected .qt-expected-label{color:var(--muted-strong)}.qtv2-card .qtv2-expected .qt-expected-pre{background:transparent;color:var(--text)}[data-theme=dark] .qtv2-card .qtv2-expected{background:var(--code-bg);border-color:var(--code-border)}[data-theme=dark] .qtv2-card .qtv2-expected .qt-expected-label{color:var(--code-muted)}[data-theme=dark] .qtv2-card .qtv2-expected .qt-expected-pre{color:var(--code-text)}.qtv2-card .qtv2-fb-warn{background:#f59e0b14!important;border-color:#f59e0b38!important;color:var(--warning-text)!important}[data-theme=dark] .qtv2-card .qtv2-fb-warn{background:#fbbf2412!important;border-color:#fbbf243d!important;color:var(--warning-text)!important}.qtv2-card .qtv2-actions{padding-top:12px;border-top:1px solid var(--border-soft)}[data-theme=dark] .qtv2-card .qtv2-actions{border-top-color:var(--border)}.qtv2-card .qtv2-solution-btn,.qtv2-card .qtv2-reset-btn{background:transparent;border-color:transparent;color:var(--muted);font-weight:500;padding:7px 10px}.qtv2-card .qtv2-solution-btn:hover:not(:disabled),.qtv2-card .qtv2-reset-btn:hover:not(:disabled){background:var(--panel-muted);border-color:transparent;color:var(--text-soft)}[data-theme=dark] .qtv2-card .qtv2-solution-btn,[data-theme=dark] .qtv2-card .qtv2-reset-btn{background:transparent;border-color:transparent;color:var(--muted)}[data-theme=dark] .qtv2-card .qtv2-solution-btn:hover:not(:disabled),[data-theme=dark] .qtv2-card .qtv2-reset-btn:hover:not(:disabled){background:var(--panel-muted);color:var(--text)}.qtv2-card .qtv2-flow-hint{background:var(--panel-muted);border-color:var(--border-soft);color:var(--muted-strong)}.qtv2-card .qtv2-flow-hint-icon{background:var(--accent-soft);color:var(--accent-text)}[data-theme=dark] .qtv2-card .qtv2-flow-hint{background:var(--panel-muted);border-color:var(--border);color:var(--muted-strong)}[data-theme=dark] .qtv2-card .qtv2-flow-hint-icon{background:#38bdf829;color:#7dd3fc}@keyframes visEmptyFloat{0%{transform:translateY(0)}to{transform:translateY(-8px)}}@keyframes visEmptyGlow{0%,to{filter:drop-shadow(0 2px 10px rgba(148,163,184,.08))}50%{filter:drop-shadow(0 10px 26px rgba(56,189,248,.14))}}.vis-empty-float-target{animation:visEmptyFloat 6s ease-in-out infinite alternate,visEmptyGlow 6s ease-in-out infinite;will-change:transform,filter}[data-theme=dark] .vis-empty-float-target{animation:visEmptyFloat 6s ease-in-out infinite alternate,visEmptyGlowDark 6s ease-in-out infinite}@keyframes visEmptyGlowDark{0%,to{filter:drop-shadow(0 2px 12px rgba(15,23,42,.45))}50%{filter:drop-shadow(0 12px 30px rgba(56,189,248,.18))}}@media (prefers-reduced-motion: reduce){.vis-empty-float-target,[data-theme=dark] .vis-empty-float-target{animation:none;transform:none;filter:none;will-change:auto}}.drill-helper-root{position:relative;z-index:50}.drill-helper-root[hidden],.drill-helper-fab[hidden],.drill-helper-float[hidden],.drill-helper-float-body[hidden]{display:none}.drill-helper-fab{position:fixed;right:18px;bottom:18px;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--border-strong);background:var(--panel);color:var(--text);font-family:inherit;font-size:13px;font-weight:600;letter-spacing:-.002em;border-radius:999px;cursor:pointer;box-shadow:0 6px 20px -8px #0f172a40,0 2px 6px -2px #0f172a14;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease;z-index:52}.drill-helper-fab:hover{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent-text)}.drill-helper-fab:active{transform:translateY(1px)}.drill-helper-fab:focus-visible{outline:none;box-shadow:0 6px 20px -8px #0f172a40,0 0 0 4px #0ea5e940;border-color:var(--accent)}.drill-helper-fab-icon{font-size:14px;line-height:1}.drill-helper-fab-label{line-height:1}[data-theme=dark] .drill-helper-fab{background:var(--panel);border-color:var(--border-strong);color:var(--text);box-shadow:0 10px 28px -10px #0206178c,0 2px 8px -3px #02061759}[data-theme=dark] .drill-helper-fab:hover{background:#0ea5e929;border-color:#38bdf859;color:#7dd3fc}.drill-helper-float{position:fixed;width:352px;max-width:calc(100vw - 24px);max-height:520px;min-height:140px;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border-strong);border-radius:14px;box-shadow:0 24px 60px -24px #0f172a47,0 6px 14px -6px #0f172a1a;overflow:hidden;z-index:51;transition:box-shadow .18s ease}.drill-helper-float.is-dragging{box-shadow:0 30px 80px -20px #0f172a66,0 10px 24px -8px #0f172a2e;-webkit-user-select:none;user-select:none}.drill-helper-float.is-minimized{max-height:none;min-height:0;width:280px}[data-theme=dark] .drill-helper-float{background:var(--panel);border-color:var(--border-strong);box-shadow:0 28px 70px -24px #020617b3,0 8px 20px -6px #02061773}.drill-helper-float-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px 10px 14px;border-bottom:1px solid var(--border);background:var(--panel-muted);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.drill-helper-float.is-minimized .drill-helper-float-head{border-bottom:none}.drill-helper-float.is-dragging .drill-helper-float-head,.drill-helper-float-head:active{cursor:grabbing}[data-theme=dark] .drill-helper-float-head{background:var(--panel-muted);border-bottom-color:var(--border)}.drill-helper-float-title{display:flex;flex-direction:column;min-width:0;gap:1px}.drill-helper-float-title strong{font-size:13px;font-weight:700;color:var(--text);letter-spacing:-.005em;line-height:1.2}.drill-helper-float-sub{font-size:11px;color:var(--muted);letter-spacing:.01em;line-height:1.2}.drill-helper-float-controls{display:inline-flex;gap:4px;align-items:center}.drill-helper-float-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid transparent;color:var(--muted);width:24px;height:24px;border-radius:6px;font-size:15px;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-family:inherit;transition:background .15s ease,color .15s ease,border-color .15s ease}.drill-helper-float-btn:hover{background:var(--panel);color:var(--text);border-color:var(--border)}.drill-helper-float-close{font-size:18px}[data-theme=dark] .drill-helper-float-btn:hover{background:var(--bg-elev);color:var(--text);border-color:var(--border)}.drill-helper-float-body{display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;overflow:hidden;flex:1 1 auto;min-height:0}.drill-helper-msgs{display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex:1 1 auto;min-height:0;padding-right:4px}.drill-helper-msg{border-radius:10px;padding:8px 11px;font-size:13px;line-height:1.5;word-wrap:break-word;overflow-wrap:anywhere;max-width:100%}.drill-helper-msg-helper{background:var(--panel-muted);border:1px solid var(--border);color:var(--text);align-self:flex-start}.drill-helper-msg-user{background:var(--accent-soft);border:1px solid var(--accent-soft-2);color:var(--accent-text);align-self:flex-end;max-width:90%}[data-theme=dark] .drill-helper-msg-helper{background:var(--panel-muted);border-color:var(--border);color:var(--text)}[data-theme=dark] .drill-helper-msg-user{background:#0ea5e92e;border-color:#38bdf84d;color:#7dd3fc}.drill-helper-inline-code{font-family:var(--mono-font);font-size:12px;background:var(--panel-sunken);border:1px solid var(--border);border-radius:5px;padding:1px 5px}[data-theme=dark] .drill-helper-inline-code{background:#0f172a8c;border-color:var(--code-border);color:var(--code-text)}.drill-helper-code{font-family:var(--mono-font);font-size:12px;margin:6px 0 2px;padding:10px 12px;background:var(--code-bg);color:var(--code-text);border:1px solid var(--code-border);border-radius:8px;overflow-x:auto;white-space:pre}.drill-helper-chips{display:flex;flex-wrap:wrap;gap:6px;flex-shrink:0}.drill-helper-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--panel);border:1px solid var(--border);color:var(--text-soft);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease;font-family:inherit}.drill-helper-chip:hover{background:var(--accent-soft);border-color:var(--accent-soft-2);color:var(--accent-text)}[data-theme=dark] .drill-helper-chip{background:var(--panel);border-color:var(--border);color:var(--text-soft)}[data-theme=dark] .drill-helper-chip:hover{background:#0ea5e929;border-color:#38bdf859;color:#7dd3fc}.drill-helper-form{display:flex;gap:8px;align-items:center;flex-shrink:0}.drill-helper-input{flex:1;min-width:0;font:inherit;font-size:13px;padding:8px 12px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--text);transition:border-color .15s ease,box-shadow .15s ease}.drill-helper-input::placeholder{color:var(--muted)}.drill-helper-input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.drill-helper-send{padding:8px 14px;font-size:12.5px}@media (max-width: 900px){.drill-helper-float.is-mobile-dock{left:0!important;right:0;top:auto!important;bottom:0;width:100vw;max-width:100vw;max-height:70vh;border-radius:14px 14px 0 0;border-bottom:none}.drill-helper-float.is-mobile-dock .drill-helper-float-head{cursor:default}.drill-helper-float.is-mobile-dock.is-minimized{width:100vw}.drill-helper-fab{right:12px;bottom:12px;padding:9px 14px;font-size:12.5px}.drill-helper-msg-user{max-width:100%}}@media (max-width: 900px){main{grid-template-columns:1fr;grid-template-rows:auto;min-height:0}main>.code-panel,main>.flow-panel,main>.output-panel,main>.vars-panel{grid-column:1;grid-row:auto}.code-panel{min-height:320px}.flow-panel{min-height:380px}.output-panel{max-height:220px}.vars-panel{max-height:280px}.tab-bar{max-width:100%;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.tab-bar::-webkit-scrollbar{display:none}}.app-shell-account-slot{display:inline-flex;align-items:center;gap:8px}.app-shell-account-slot:empty{display:none}.app-shell-banner-slot{display:flex;flex-direction:column;gap:0}.app-shell-banner-slot:empty{display:none}.shell-nav-link{font-size:13px;font-weight:500;color:var(--muted-strong);padding:6px 10px;border-radius:8px;text-decoration:none;transition:background .15s ease,color .15s ease}.shell-nav-link:hover{color:var(--text);background:var(--panel-muted)}.shell-nav-cta{font-size:12.5px;font-weight:600;color:#fff;background:var(--accent);padding:6px 12px;border-radius:8px;text-decoration:none;transition:background .15s ease}[data-theme=dark] .shell-nav-cta{color:#0b1220}.shell-nav-cta:hover{background:var(--accent-strong)}.shell-account{position:relative}.shell-account-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid var(--border);background:var(--panel);color:var(--text);font:inherit;font-size:12.5px;font-weight:500;display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.shell-account-btn:hover{border-color:var(--border-strong);background:var(--panel-muted)}.shell-account-btn:focus-visible{outline:none;box-shadow:var(--ring)}.shell-account-avatar{width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:11.5px;display:inline-flex;align-items:center;justify-content:center}[data-theme=dark] .shell-account-avatar{color:#0b1220}.shell-account-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-account-chev{color:var(--muted);font-size:10px;line-height:1}.shell-account-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:160px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 28px -8px #0f172a33;padding:4px;z-index:200}.shell-account-menu-item{width:100%;text-align:left;background:transparent;border:none;padding:8px 10px;border-radius:6px;color:var(--text);font:inherit;font-size:13px;cursor:pointer}.shell-account-menu-item:hover{background:var(--panel-muted)}.shell-banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--accent-soft);border:1px solid var(--accent-soft-2);color:var(--accent-text);border-radius:10px;font-size:12.5px;margin:0 auto}[data-theme=dark] .shell-banner{border-color:#38bdf859}.shell-banner-icon{color:var(--accent);font-weight:700}.shell-banner-text{flex:1;color:var(--accent-text)}.shell-banner-cta{background:var(--accent);color:#fff;font-weight:600;font-size:12px;padding:4px 10px;border-radius:6px;text-decoration:none;transition:background .15s ease}[data-theme=dark] .shell-banner-cta{color:#0b1220}.shell-banner-cta:hover{background:var(--accent-strong)}.shell-banner-link{font-weight:500;color:var(--accent-text);text-decoration:none;font-size:12.5px}.shell-banner-link:hover{text-decoration:underline}.shell-banner-dismiss{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--accent-text);font-size:18px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px;opacity:.7;transition:opacity .15s ease,background .15s ease}.shell-banner-dismiss:hover{opacity:1;background:#0ea5e91f}[data-theme=dark] .shell-banner-dismiss:hover{background:#38bdf824}
