*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#eaeefb;--surface:#fff;--surface2:#f5f7ff;--surface3:#e6ebfb;--border:#0f172a29;--primary:#6d28d9;--primary-l:#7c3aed;--primary-d:#5b21b6;--primary-glow:#6d28d947;--success:#047857;--success-d:#065f46;--success-glow:#04785742;--error:#be123c;--error-d:#9f1239;--error-glow:#be123c3d;--warning:#9a3412;--warning-d:#7c2d12;--warning-glow:#9a341247;--info:#0369a1;--text:#0b1020;--text-muted:#45526b;--text-dim:#5c6b85;--ui-card-bg:var(--surface2);--ui-card-raised-bg:var(--surface3);--ui-card-border:var(--border);--ui-control-bg:var(--surface3);--ui-control-fg:var(--text);--ui-control-hover-bg:var(--primary-glow);--ui-control-hover-border:var(--primary);--accent:var(--primary);--text-secondary:var(--text-muted);--code-bg:#eff1f5;--code-surface:#e6e9ef;--code-line:#dce0e8;--code-text:#4c4f69;--code-dim:#6c6f85;--code-keyword:#8839ef;--code-string:#40a02b;--code-number:#fe640b;--code-func:#1e66f5;--code-comment:#7c7f93;--overlay-weak:#0f172a0d;--overlay-medium:#0f172a17;--overlay-strong:#0f172a24;--radius-sm:6px;--radius:10px;--radius-lg:16px;--radius-xl:22px}:root[data-theme=dark]{--bg:#07071a;--surface:#0f0f24;--surface2:#17172e;--surface3:#21213a;--border:#ffffff17;--primary:#a78bfa;--primary-l:#c4b5fd;--primary-d:#8b5cf6;--primary-glow:#8b5cf661;--success:#4ade80;--success-d:#22c55e;--success-glow:#22c55e59;--error:#fca5a5;--error-d:#f87171;--error-glow:#f871714d;--warning:#fbbf24;--warning-d:#d97706;--warning-glow:#fbbf2473;--info:#7dd3fc;--text:#f1f5f9;--text-muted:#a9b6ca;--text-dim:#8b9ab2;--ui-card-bg:var(--surface2);--ui-card-raised-bg:var(--surface3);--ui-card-border:var(--border);--ui-control-bg:var(--surface3);--ui-control-fg:var(--text);--ui-control-hover-bg:var(--primary-glow);--ui-control-hover-border:var(--primary);--accent:var(--primary);--text-secondary:var(--text-muted);--code-bg:#1e1e2e;--code-surface:#181825;--code-line:#313244;--code-text:#cdd6f4;--code-dim:#a6adc8;--code-keyword:#cba6f7;--code-string:#a6e3a1;--code-number:#fab387;--code-func:#89b4fa;--code-comment:#9399b2;--overlay-weak:#ffffff0f;--overlay-medium:#ffffff1a;--overlay-strong:#ffffff29}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}code,.mono{font-family:Fira Code,Cascadia Code,Consolas,Courier New,monospace}button{cursor:pointer;background:0 0;border:none;outline:none;font-family:inherit}input{font-family:inherit}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--surface)}::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--primary-d)}::selection{background:var(--primary-glow);color:var(--text)}.vis-shell{height:100%;min-height:var(--vis-shell-min-height,480px);flex-direction:column;gap:0;display:flex;position:relative;overflow:hidden}.vis-panel{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--vis-panel-radius,12px);flex-direction:column;min-width:0;display:flex;overflow:hidden}.vis-panel-head{padding:var(--vis-panel-head-padding,12px 16px);background:var(--surface-3);border-bottom:1px solid var(--border);color:var(--text-main);flex-shrink:0;align-items:center;font-size:13px;font-weight:600;display:flex}.vis-panel-body{padding:var(--vis-panel-body-padding,16px);flex-direction:column;flex:1;display:flex;overflow-y:auto}.vis-example-btn{cursor:pointer;background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);border-radius:99px;padding:4px 12px;font-size:12px;transition:all .2s}.vis-example-btn:hover{background:var(--border);color:var(--surface)}.pc{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.pc-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:inline-flex}.pc-btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-size:13px;font-weight:600;line-height:1;transition:background .15s,border-color .15s,transform .1s}.pc-btn:hover:not(:disabled){background:var(--surface2);border-color:var(--border)}.pc-btn:active:not(:disabled){transform:translateY(1px)}.pc-btn:disabled{opacity:.45;cursor:not-allowed}.pc-btn-play{background:linear-gradient(180deg, var(--primary-d), var(--primary-d));border-color:var(--primary);color:var(--surface3)}.pc-btn-play:hover:not(:disabled){background:linear-gradient(180deg, var(--primary-d), var(--primary-d));border-color:var(--primary-l)}.pc-speed-outer{align-items:center;display:flex}.pc-speed-wrap{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:8px;padding:6px 10px;display:inline-flex}.pc-speed-label{color:var(--text-muted);font-size:12px;font-weight:600}.pc-speed-input{accent-color:var(--primary)}.pc-speed-indicator{color:var(--text-muted);text-align:right;min-width:60px;font-size:12px}.pc-autoscroll-group{align-items:center;display:flex}.pc-autoscroll-label{border:1px solid var(--border);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;transition:border-color .15s,background .15s;display:inline-flex}.pc-autoscroll-label:hover{border-color:var(--border);background:var(--surface)}.pc-autoscroll-input{appearance:none;border:1px solid var(--text-dim);background:var(--surface);cursor:pointer;width:16px;height:16px;accent-color:var(--primary);border-radius:4px;transition:border-color .15s,background .15s}.pc-autoscroll-input:checked{background:var(--primary);border-color:var(--primary)}.pc-autoscroll-input:hover{border-color:var(--text-muted)}.pc-autoscroll-text{color:var(--text-muted);font-size:12px;font-weight:600}.pc-pattern-group{align-items:center;display:flex}.pc-pattern-label{border:1px solid var(--border);background:var(--surface2);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:6px;padding:6px 10px;transition:border-color .15s,background .15s;display:inline-flex}.pc-pattern-label:hover{border-color:var(--primary);background:var(--overlay-weak)}.pc-pattern-input{appearance:none;border:1px solid var(--text-dim);background:var(--surface);cursor:pointer;width:16px;height:16px;accent-color:var(--primary);border-radius:4px;transition:border-color .15s,background .15s}.pc-pattern-input:checked{background:var(--primary);border-color:var(--primary)}.pc-pattern-input:hover{border-color:var(--text-muted)}.pc-pattern-text{color:var(--text);font-size:12px;font-weight:600}.svp-tags{flex-wrap:wrap;gap:.45rem;display:flex}.svp-tag{color:var(--border);background:#94a3b81f;border:1px solid #94a3b83d;border-radius:999px;padding:.2rem .5rem;font-size:.74rem}.svp-array{flex-wrap:wrap;gap:.4rem;display:flex}.svp-array-cell{border:1px solid var(--border);background:#0f172ac7;border-radius:10px;place-items:center;min-width:42px;padding:.45rem .35rem;display:grid}.svp-array-cell.active{background:#38bdf826;border-color:#38bdf8}.svp-array-cell.compare{background:#f59e0b21;border-color:#f59e0b}.svp-array-cell span{color:var(--surface);font-weight:700}.svp-array-cell small{color:var(--text-muted);font-size:.62rem}.svp-matrix{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;display:grid}.svp-matrix-cell{border:1px solid var(--border);min-height:36px;color:var(--text);background:#0f172ab3;border-radius:8px;place-items:center;font-size:.84rem;display:grid}.svp-matrix-cell.active{color:#bbf7d0;background:#22c55e24;border-color:#22c55e}.svp-string{flex-wrap:wrap;gap:.3rem;display:flex}.svp-char{border:1px solid var(--border);background:#0f172ac2;border-radius:8px;place-items:center;min-width:34px;padding:.3rem;display:grid}.svp-char.in-window{background:#a855f724;border-color:#a855f7}.svp-char.left,.svp-char.right{box-shadow:inset 0 0 0 1px #38bdf880}.svp-char span{color:var(--surface)}.svp-char small{color:var(--text-muted);font-size:.62rem}.svp-graph{gap:.65rem;display:grid}.svp-graph-edges{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;display:grid}.svp-edge{border:1px solid var(--border);color:var(--border);background:#0f172abf;border-radius:8px;padding:.28rem .45rem;font-size:.74rem}.svp-graph-nodes{flex-wrap:wrap;gap:.45rem;display:flex}.svp-node{border:1px solid var(--border);min-width:34px;min-height:34px;color:var(--text);background:#0f172acc;border-radius:999px;place-items:center;display:grid}.svp-node.active{color:#bbf7d0;background:#22c55e33;border-color:#22c55e}.svp-metric{border:1px solid var(--border);background:#0f172ab8;border-radius:10px;justify-content:space-between;align-items:baseline;padding:.55rem .6rem;display:flex}.svp-metric span{color:var(--text-muted);font-size:.72rem}.svp-metric strong{color:var(--surface);font-size:.86rem}.svp-metric.info strong{color:#7dd3fc}.svp-metric.success strong{color:#86efac}.scaffold-shell{gap:.85rem;width:100%;max-width:1280px;margin:0 auto;padding:1rem;display:grid}.scaffold-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1rem;padding-bottom:5rem;display:grid}.scaffold-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 18px 35px #02061738}.scaffold-panel-head{border-bottom:1px solid var(--border);background:#ffffff05;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;display:flex}.scaffold-panel-head h3{font-size:.9rem}.scaffold-panel-head span{color:var(--text-muted);font-size:.74rem}.scaffold-panel-body{gap:.6rem;padding:1rem;display:grid}.scaffold-title{color:var(--surface);font-weight:700}.scaffold-muted{color:var(--text-muted);font-size:.82rem}.scaffold-status{color:#bae6fd;background:#38bdf814;border:1px solid #38bdf840;border-radius:12px;padding:.75rem .8rem;font-size:.83rem;line-height:1.45}.scaffold-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;display:grid}.scaffold-dock{z-index:30;padding-top:.3rem;position:sticky;bottom:0}.scaffold-hint{color:var(--text-muted);font-size:.78rem}@media (width<=760px){.scaffold-metrics{grid-template-columns:1fr}}.problem-info-bar{background:var(--surface,var(--code-bg));border-bottom:1px solid var(--border,#2a2a3d);align-items:center;gap:.5rem;padding:0 1.25rem;display:flex}.problem-info-toggle{color:var(--text-secondary,#a0a0b8);border:1px solid var(--border,#2a2a3d);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:.45rem;margin:.45rem 0;padding:.35rem .75rem;font-size:.78rem;font-weight:500;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.problem-info-toggle:hover{color:var(--text,#e0e0f0);border-color:var(--accent,#7c6af7);background:color-mix(in srgb, var(--accent,#7c6af7) 10%, transparent)}.problem-info-toggle.open{color:var(--accent,#7c6af7);border-color:var(--accent,#7c6af7);background:color-mix(in srgb, var(--accent,#7c6af7) 12%, transparent)}.problem-info-toggle svg{flex-shrink:0;transition:transform .2s}.problem-info-toggle.open svg.chevron{transform:rotate(180deg)}.problem-info-panel{border-bottom:1px solid var(--border,#2a2a3d);background:var(--surface);overflow:hidden}.problem-info-inner{max-height:420px;color:var(--text,#e0e0f0);padding:1.25rem 1.5rem 1.5rem;font-size:.875rem;line-height:1.65;overflow-y:auto}.problem-info-inner p{margin:0 0 .75rem}.problem-info-inner ul,.problem-info-inner ol{margin:0 0 .75rem 1.25rem}.problem-info-inner li{margin-bottom:.25rem}.problem-info-inner strong{color:var(--text,#fff)}.problem-info-inner pre{background:var(--surface,var(--code-bg));border:1px solid var(--border,#2a2a3d);border-radius:6px;margin:.5rem 0 1rem;padding:.75rem 1rem;font-size:.82rem;overflow-x:auto}.problem-info-inner code{background:color-mix(in srgb, var(--accent,#7c6af7) 15%, transparent);border-radius:3px;padding:.1em .35em;font-family:monospace;font-size:.85em}.problem-info-inner pre code{background:0 0;padding:0}.problem-info-inner img{border-radius:6px;max-width:100%}.problem-info-loading{color:var(--text-secondary,#a0a0b8);padding:.5rem 0;font-style:italic}.problem-info-premium{color:var(--text-muted,var(--text-muted));background:#fbbf241a;border:1px solid #fbbf2452;border-radius:8px;padding:.7rem .85rem;font-size:.85rem;line-height:1.6}.problem-info-premium strong{color:#fbbf24}.zoom-controls-panel{z-index:1900;pointer-events:auto;align-items:center;gap:4px;display:inline-flex;position:fixed;top:1rem;left:50%;transform:translate(-50%)}.zoom-controls-panel[style]{transform:none!important}.zoom-controls-handle{color:var(--text-muted);cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;font-size:16px;line-height:1}.zoom-controls-handle:active{cursor:grabbing}.zoom-controls-inner{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 24px var(--primary-glow);border-radius:12px;align-items:center;gap:6px;padding:8px 10px;display:inline-flex}.zoom-btn{appearance:none;border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;text-align:center;border-radius:8px;min-width:28px;padding:6px 8px;font-size:13px;font-weight:600;transition:background .15s,border-color .15s}.zoom-btn:hover:not(:disabled){background:var(--surface3);border-color:var(--primary)}.zoom-btn:active:not(:disabled){transform:translateY(1px)}.zoom-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.zoom-btn:disabled{opacity:.4;cursor:not-allowed}.zoom-btn-in,.zoom-btn-out{color:var(--primary);font-size:14px;font-weight:700}.zoom-btn-reset{font-size:12px}.zoom-value{color:var(--text-muted);text-align:center;min-width:38px;font-size:12px;font-weight:600}.theme-toggle-panel{pointer-events:auto}.theme-toggle-btn{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 6px 20px var(--primary-glow);border-radius:6px;align-items:center;gap:5px;padding:6px 8px;font-size:11px;font-weight:700;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.theme-toggle-btn:hover{background:var(--surface2);border-color:var(--primary);box-shadow:0 8px 26px var(--primary-glow)}.theme-toggle-btn:active{transform:translateY(1px)}.theme-toggle-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.theme-toggle-icon{color:var(--primary);font-size:13px;line-height:1}.theme-toggle-label{letter-spacing:.01em}@media (width<=640px){.theme-toggle-label{display:none}.theme-toggle-btn{padding:9px 11px}}.chat-fab{z-index:1000;cursor:pointer;color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border:none;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:22px;transition:transform .18s,box-shadow .18s;display:flex;position:fixed;bottom:28px;right:28px;box-shadow:0 4px 20px #6366f173}.chat-fab:hover{transform:scale(1.1);box-shadow:0 6px 28px #6366f199}.chat-fab:active{transform:scale(.96)}.chat-backdrop{z-index:1001;background:#00000059;animation:.2s backdropIn;position:fixed;inset:0}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.chat-drawer{z-index:1002;background:var(--surface);border-left:1px solid var(--border);flex-direction:column;width:min(480px,100vw);animation:.25s cubic-bezier(.22,1,.36,1) drawerSlideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-8px 0 40px #00000080}.chat-content-scale{zoom:var(--chat-content-scale,1);flex-direction:column;flex:auto;min-height:0;display:flex}@keyframes drawerSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.chat-header{border-bottom:1px solid var(--surface2);flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:14px 16px;display:flex}.chat-header-left{align-items:center;gap:10px;display:flex}.chat-header-icon{border:1px solid var(--primary);background:var(--primary-glow);width:28px;height:28px;color:var(--primary);letter-spacing:.04em;place-items:center;font-size:10px;font-weight:800;display:grid}.chat-header-title{color:var(--text);font-size:14px;font-weight:600}.chat-header-sub{color:var(--text-muted);margin-top:1px;font-size:11px}.chat-header-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chat-history-toggle,.chat-new-toggle{background:var(--surface2);border:1px solid var(--border);color:var(--border);cursor:pointer;white-space:nowrap;border-radius:20px;padding:5px 10px;font-size:12px;transition:background .15s,color .15s}.chat-history-toggle:hover,.chat-new-toggle:hover{background:var(--border);color:var(--text)}.chat-history-panel{border-bottom:1px solid var(--surface2);background:var(--surface2);flex-direction:column;gap:6px;max-height:180px;padding:8px;display:flex;overflow-y:auto}.chat-history-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:5px;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.chat-history-item.active{border-color:#3b82f6;box-shadow:inset 0 0 0 1px #3b82f640}.chat-history-main{flex:1;min-width:0}.chat-history-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.chat-history-meta{color:var(--text-muted);font-size:11px}.chat-history-delete{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px}.chat-history-delete:hover{border-color:var(--border);background:var(--surface2);color:var(--surface)}.chat-attach-step-btn{background:var(--surface2);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;white-space:nowrap;border-radius:20px;padding:5px 10px;font-size:12px;transition:background .15s,color .15s}.chat-attach-step-btn:not(:disabled):hover{background:var(--border);color:var(--text)}.chat-attach-step-btn:disabled{opacity:.4;cursor:not-allowed}.chat-clear-btn,.chat-close-btn{width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;font-size:14px;transition:background .15s,color .15s;display:flex}.chat-clear-btn:hover,.chat-close-btn:hover{background:var(--surface2);color:var(--surface2);border-color:var(--border)}.chat-messages{scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex:1;gap:14px;padding:16px 14px;display:flex;overflow-y:auto}.chat-empty{text-align:center;color:var(--text-muted);margin:auto;padding:24px}.chat-empty-icon{margin-bottom:12px;font-size:36px}.chat-panel-docked.resizable-panel{min-width:300px;box-shadow:-10px 0 28px #00000024;background:var(--surface)!important;border-left:1px solid var(--border)!important}.chat-panel-docked .resize-handle--left{background:var(--border);width:7px}.chat-panel-docked .resize-handle--left:after{background:var(--border);border-radius:0;width:2px;height:100%}.chat-panel-docked .resize-handle--left:hover,.chat-panel-docked .resize-handle--left:hover:after{background:var(--primary);box-shadow:none}.chat-panel-docked .resize-handle--corner{z-index:10000;background:linear-gradient(135deg, transparent 45%, var(--text-dim) 46% 52%, transparent 53% 62%, var(--text-dim) 63% 69%, transparent 70%)}.chat-drawer--docked{background:var(--surface);box-shadow:none;border:0;animation:none}.chat-drawer--docked .chat-header{background:var(--surface2);border-bottom-color:var(--border);min-height:42px;padding:7px 10px}.chat-drawer--docked .chat-header-left{gap:7px;min-width:0}.chat-drawer--docked .chat-header-title{white-space:nowrap;font-size:12px}.chat-drawer--docked .chat-header-sub{display:none}.chat-drawer--docked .chat-header-icon{width:24px;height:24px;font-size:9px}.chat-drawer--docked .chat-header-actions{gap:3px;margin-left:auto}.chat-drawer--docked .chat-header-actions button,.chat-drawer--docked .chat-attach-step-btn,.chat-drawer--docked .chat-history-toggle,.chat-drawer--docked .chat-new-toggle,.chat-drawer--docked .chat-float-toggle,.chat-drawer--docked .chat-select-toggle{width:25px;height:25px;color:var(--text-muted);box-shadow:none;background:0 0;border:1px solid #0000;border-radius:3px;padding:0;font-size:10px}.chat-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.chat-clear-btn .chat-icon{stroke-width:2px;width:24px;height:24px}.chat-input-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.chat-drawer--floating .chat-header-title{font-size:15px}.chat-drawer--floating .chat-header-sub{font-size:12px}.chat-drawer--floating .chat-msg-text{font-size:14px}.chat-drawer--floating .chat-icon-btn{width:36px;height:36px;padding:0}.chat-drawer--floating .chat-textarea{font-size:14px}.chat-selection-banner{border-bottom:1px solid var(--primary);background:var(--primary-glow);color:var(--text);padding:7px 10px;font-size:12px;font-weight:600}.chat-shortcut{border:1px solid var(--border);color:var(--text-muted);margin-left:5px;padding:1px 4px;font-size:10px;font-weight:500}.chat-model-controls{flex-wrap:wrap;align-items:end;gap:5px;margin-top:4px;display:flex}.chat-model-controls label{color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;gap:2px;font-size:9px;font-weight:700;display:grid}.chat-model-controls select,.chat-model-controls input{border:1px solid var(--border);background:var(--surface);width:92px;height:24px;color:var(--text);font:inherit;text-transform:none;letter-spacing:normal;border-radius:3px;padding:0 5px;font-size:10px}.chat-model-controls input{width:106px}.chat-model-controls .chat-cloud-key input{width:150px}.chat-cloud-key-note{max-width:360px;color:var(--text-muted);margin:4px 0 0;font-size:9px;line-height:1.35}.chat-model-controls select:focus,.chat-model-controls input:focus{outline:1px solid var(--primary);border-color:var(--primary)}.chat-drawer--floating .chat-header{background:var(--surface2);border-bottom-color:var(--border);padding:10px 12px}.chat-drawer--floating .chat-header-actions button{min-width:28px;height:28px;color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:4px;padding:0 7px}.chat-drawer--floating .chat-header-actions button:hover{color:var(--text);border-color:var(--border);background:var(--surface)}.chat-header{justify-content:flex-start}.chat-header-actions{margin-left:0}.chat-header-actions button{border-color:var(--border);background:var(--surface);color:var(--text-muted);width:30px!important;height:30px!important}.chat-header-actions .chat-icon{stroke-width:1.6px;width:16px;height:16px}.chat-header-actions button:hover:not(:disabled){color:var(--text);border-color:var(--primary);background:var(--primary-glow)}.chat-close-btn{color:var(--danger,#dc2626)!important;border-color:color-mix(in srgb, var(--danger,#dc2626) 45%, var(--border))!important}.chat-close-btn:hover{background:color-mix(in srgb, var(--danger,#dc2626) 14%, var(--surface))!important}.chat-drawer--docked .chat-header-actions .chat-select-hint{display:none}.chat-drawer--docked .chat-header-actions button:hover:not(:disabled),.chat-drawer--docked .chat-select-toggle.active{color:var(--text);border-color:var(--border);background:var(--surface)}.chat-drawer--docked .chat-messages{background:var(--surface);gap:12px;padding:12px}.chat-drawer--docked .chat-msg-body{max-width:88%}.chat-drawer--docked .chat-msg-text{padding:8px 10px;font-size:12px;line-height:1.55}.chat-drawer--docked .chat-msg-avatar{min-width:24px;height:24px;font-size:9px}.chat-input-wrap{border-top-color:var(--border);background:var(--surface2);-webkit-backdrop-filter:none;backdrop-filter:none;gap:7px;padding:9px}.chat-icon-btn{border-color:var(--border);background:var(--surface);width:auto;height:27px;color:var(--text-muted);border-radius:3px;padding:0 7px;font-size:10px}.chat-textarea{border-color:var(--border);background:var(--surface);min-height:48px;color:var(--text);border-radius:3px;padding:8px 9px;font-size:12px}.chat-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary);outline:none}.chat-send-btn{background:var(--primary);color:#fff;border-radius:3px}.ctx-badge{background:var(--primary-glow);border-color:var(--primary);color:var(--text);border-radius:3px}.chat-empty p{margin:6px 0;font-size:13px;line-height:1.6}.chat-empty-hint{color:var(--border);font-size:12px}.chat-msg{align-items:flex-start;gap:10px;animation:.18s msgIn;display:flex}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.chat-msg--user{flex-direction:row-reverse}.chat-msg-avatar{border:1px solid var(--border);background:var(--surface2);min-width:28px;height:28px;color:var(--text-muted);letter-spacing:.04em;flex-shrink:0;place-items:center;margin-top:2px;font-size:10px;font-weight:800;display:grid}.chat-msg-body{flex-direction:column;gap:6px;max-width:82%;display:flex}.chat-msg--user .chat-msg-body{align-items:flex-end}.chat-msg-ctx{display:flex}.chat-msg-images{flex-wrap:wrap;gap:6px;display:flex}.chat-msg-img{object-fit:cover;border:1px solid var(--surface2);border-radius:6px;max-width:180px;max-height:120px}.chat-msg-text{background:var(--surface2);border:1px solid var(--border);color:var(--text);white-space:pre-wrap;word-break:break-word;border-radius:6px;padding:10px 14px;font-size:13px;line-height:1.65}.chat-msg--user .chat-msg-text{background:var(--primary-glow);border-color:var(--primary);color:var(--text);border-radius:6px}.chat-panel-docked{background:var(--surface);box-shadow:-14px 0 32px #00000029;border-left:1px solid var(--border)!important}.chat-drawer--docked .chat-header{background:var(--surface2);padding:9px 10px}.chat-drawer--docked .chat-header-actions{gap:4px}.chat-drawer--docked .chat-header-actions button,.chat-drawer--docked .chat-attach-step-btn{border-radius:4px;padding:4px 7px;font-size:11px}.chat-drawer--docked .chat-messages{padding:12px 10px}.chat-empty-icon{border:1px solid var(--primary);background:var(--primary-glow);width:42px;height:42px;color:var(--primary);place-items:center;margin:0 auto 12px;font-size:12px;font-weight:800;display:grid}.chat-msg-text.streaming{border-right:2px solid #6366f1}.chat-cursor{animation:1s step-start infinite blink}@keyframes blink{50%{opacity:0}}.chat-drawer--floating{z-index:9999;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:380px;height:520px;overflow:hidden;box-shadow:0 12px 40px #02061799}.chat-drawer--floating .chat-header,.chat-drawer--floating .chat-history-panel,.chat-drawer--floating .chat-input-wrap{background:var(--surface2);border-color:var(--border)}.chat-drawer--floating .chat-messages{background:var(--surface)}.chat-drawer--floating .chat-icon-btn{border-color:var(--border);background:var(--surface);color:var(--text-muted)}.chat-float-toggle{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;margin-right:6px;padding:6px 10px}.chat-float-toggle.active{background:var(--primary-glow);border-color:var(--primary);color:var(--text);box-shadow:none}.chat-select-toggle{background:var(--surface);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;border-radius:8px;margin-right:6px;padding:6px 10px}.chat-select-toggle.active{background:var(--primary-glow);border-color:var(--primary);color:var(--text);box-shadow:none}.chat-select-hint{color:var(--text);background:var(--primary-glow);border-radius:999px;align-self:center;margin-left:6px;padding:4px 8px;font-size:12px}.visually-hidden{clip:rect(1px, 1px, 1px, 1px);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.chat-header[style*="cursor: move"]{-webkit-user-select:none;user-select:none}.ctx-badge{color:#93c5fd;background:#1e3a5f;border:1px solid #1d4ed8;border-radius:20px;align-items:center;gap:5px;max-width:100%;padding:3px 10px 3px 6px;font-size:11px;display:inline-flex}.ctx-badge-icon{font-size:13px}.ctx-badge-label{text-overflow:ellipsis;white-space:nowrap;max-width:260px;overflow:hidden}.ctx-badge-remove{color:#60a5fa;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:11px;line-height:1}.ctx-badge-remove:hover{color:#f87171}.chat-input-wrap{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(#0f172af0,#020617fa);border-top:1px solid #ffffff14;flex-direction:column;flex-shrink:0;gap:10px;padding:12px;display:flex}.chat-input-ctx{flex-wrap:wrap;gap:8px;display:flex}.chat-input-images{gap:10px;padding-bottom:2px;display:flex;overflow-x:auto}.chat-input-images::-webkit-scrollbar{height:6px}.chat-input-images::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.chat-input-img-wrap{flex-shrink:0;position:relative}.chat-input-img{object-fit:cover;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;width:88px;height:88px}.chat-input-img-remove{color:#fff;cursor:pointer;background:#000000b8;border:none;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;transition:background .12s,transform .12s;display:flex;position:absolute;top:6px;right:6px}.chat-input-img-remove:hover{background:#ef4444eb;transform:scale(1.08)}.chat-input-row{align-items:flex-end;gap:10px;display:flex}.chat-icon-btn{color:#e5e7eb;cursor:pointer;background:linear-gradient(#ffffff0f,#ffffff08);border:1px solid #ffffff14;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:16px;transition:transform .12s,background .12s,border-color .12s,box-shadow .12s;display:flex}.chat-icon-btn:hover:not(:disabled){background:linear-gradient(#38bdf829,#38bdf814);border-color:#38bdf873;transform:translateY(-1px)}.chat-icon-btn:active:not(:disabled){transform:scale(.96)}.chat-icon-btn:disabled{opacity:.45;cursor:not-allowed}.chat-icon-btn.active{color:#38bdf8;border-color:#38bdf899;box-shadow:0 0 0 4px #38bdf814,0 0 18px #38bdf83d}.mic-pulse{animation:1.2s infinite micPulse}@keyframes micPulse{0%{box-shadow:0 0 #38bdf859}70%{box-shadow:0 0 0 12px #38bdf800}to{box-shadow:0 0 #38bdf800}}.chat-textarea{resize:none;color:#e5e7eb;background:linear-gradient(#ffffff0a,#ffffff05);border:1px solid #ffffff14;border-radius:14px;outline:none;flex:1;min-height:42px;max-height:160px;padding:11px 14px;font-family:inherit;font-size:.94rem;line-height:1.5;transition:border-color .12s,background .12s,box-shadow .12s;overflow-y:auto}.chat-textarea::placeholder{color:#e5e7eb73}.chat-textarea:focus{background:linear-gradient(#ffffff0f,#ffffff08);border-color:#38bdf88c;box-shadow:0 0 0 5px #38bdf814}.chat-textarea:disabled{opacity:.5}.chat-send-btn{color:#fff;cursor:pointer;background:linear-gradient(#38bdf8,#0ea5e9);border:none;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1rem;font-weight:700;transition:transform .12s,filter .12s,box-shadow .12s;display:flex}.chat-send-btn:hover:not(:disabled){filter:brightness(1.05);transform:translateY(-1px);box-shadow:0 10px 24px #0ea5e952}.chat-send-btn:active:not(:disabled){transform:scale(.96)}.chat-send-btn:disabled{opacity:.4;cursor:not-allowed}.selectable{cursor:pointer;outline-offset:2px;border-radius:6px;outline:2px solid #0000;transition:outline-color .12s,box-shadow .12s,transform .12s}.selectable:hover{outline-color:#38bdf873}.selectable.selected{outline-color:#38bdf8;box-shadow:0 0 0 3px #38bdf840}body.chat-select-mode .selectable{position:relative}@keyframes chat-rainbow-hue{0%{--h:0}to{--h:360}}body.chat-select-mode .selectable:hover{box-shadow:0 0 0 3px hsl(var(--h,0) 100% 50% / .95), 0 0 18px hsl(var(--h,0) 100% 50% / .28);outline-color:#0000;animation:2s linear infinite chat-rainbow-hue;transform:translateZ(0)}body.chat-select-mode .selectable.selected{box-shadow:0 0 0 4px #38bdf8e6,0 0 22px #38bdf838}@media (width<=640px){.chat-input-row{gap:8px}.chat-icon-btn{width:38px;height:38px}.chat-send-btn{width:40px;height:40px}.chat-input-img{width:72px;height:72px}}.chat-layout-preview-wrapper{z-index:2000;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:fixed;top:0;left:0}.chat-preview-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:-1;background:#0006;width:100%;height:100%;position:absolute;top:0;left:0}.chat-layout-preview{z-index:2001;pointer-events:auto;background:#0f172af2;border:2px solid #3b82f680;border-radius:16px;padding:32px;position:relative;box-shadow:0 20px 60px #000c}.chat-preview-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600;position:absolute;top:12px;left:32px}.chat-layout-grid{aspect-ratio:3/2;grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(3,1fr);gap:12px;width:600px;padding-top:20px;display:grid}.chat-zone{background:#1e293b80;border:2px dashed #94a3b866;border-radius:8px;transition:all .2s;position:relative;overflow:hidden}.chat-zone:before{content:"";background:#3b82f600;transition:background .2s;position:absolute;inset:0}.chat-zone-inner{z-index:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;padding:16px;display:flex;position:relative}.chat-zone-label{color:#3b82f6;text-transform:uppercase;letter-spacing:.5px;opacity:.7;font-size:11px;font-weight:700}.chat-zone-name{color:var(--border);font-size:13px;font-weight:600;line-height:1.4}.chat-zone.hovered{background:#3b82f626;border-color:#3b82f6;box-shadow:inset 0 0 20px #3b82f633,0 0 15px #3b82f64d}.chat-zone.hovered .chat-zone-label{color:#60a5fa;opacity:1}.chat-zone.hovered .chat-zone-name{color:#dbeafe}.chat-msg--assistant .chat-msg-text{white-space:normal;overflow-wrap:anywhere}.chat-markdown>:first-child{margin-top:0}.chat-markdown>:last-child{margin-bottom:0}.chat-markdown p,.chat-markdown blockquote,.chat-markdown pre,.chat-markdown ol,.chat-markdown ul{margin:0 0 .75rem}.chat-markdown h1,.chat-markdown h2,.chat-markdown h3,.chat-markdown h4{color:var(--text);margin:1rem 0 .45rem;font-weight:750;line-height:1.25}.chat-markdown h1{font-size:1.2em}.chat-markdown h2{font-size:1.1em}.chat-markdown h3,.chat-markdown h4{font-size:1em}.chat-markdown ol,.chat-markdown ul{padding-left:1.45rem;list-style-position:outside}.chat-markdown li{margin:.35rem 0;padding-left:.2rem}.chat-markdown li>p{margin:0}.chat-markdown code{background:var(--surface3);color:var(--text);overflow-wrap:anywhere;word-break:break-word;border-radius:4px;padding:.1em .32em;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em}.chat-markdown pre{border:1px solid var(--border);border-left:3px solid var(--primary);background:var(--surface3);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;tab-size:2;border-radius:6px;max-width:100%;padding:.75rem;overflow-x:auto}.chat-markdown pre code{white-space:inherit;background:0 0;padding:0;display:block}.chat-drawer .chat-model-controls select,.chat-drawer .chat-model-controls input,.chat-drawer .chat-textarea{background:var(--surface3);border-color:var(--text-dim);color:var(--text)}.chat-drawer .chat-model-controls input::placeholder,.chat-drawer .chat-textarea::placeholder{color:var(--text-muted);opacity:1}.chat-drawer .chat-model-controls select:focus,.chat-drawer .chat-model-controls input:focus,.chat-drawer .chat-textarea:focus{border-color:var(--primary);background:var(--surface3);box-shadow:0 0 0 2px var(--primary-glow)}.chat-header{align-items:flex-start;width:100%;display:flex;position:relative;padding-top:42px!important}.chat-header-left{flex:auto;min-width:0}.chat-header-actions{scrollbar-width:none;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;margin-left:8px;display:flex;overflow:auto hidden}.chat-header-actions::-webkit-scrollbar{display:none}.chat-header-actions .chat-float-toggle,.chat-header-actions .chat-close-btn{z-index:20;flex:none;position:absolute;top:7px;width:30px!important;height:30px!important;margin:0!important}.chat-header-actions .chat-close-btn{right:8px}.chat-header-actions .chat-float-toggle{right:42px}.chat-header-actions>button:not(.chat-float-toggle):not(.chat-close-btn){flex:0 0 30px}.chat-drawer--docked .chat-header{padding-top:42px!important}.chat-drawer--floating .chat-header{padding-top:44px!important}.app{--page-shell-max-width:1120px;--page-shell-padding:1.5rem;flex-direction:column;height:100vh;display:flex}.app.layout-wide{--page-shell-max-width:1480px}.app.layout-full{--page-shell-max-width:none;--page-shell-padding:1rem}.app-toolbar{z-index:2000;pointer-events:none;align-items:center;gap:8px;display:flex;position:fixed;top:.45rem;right:.65rem}.chat-launcher{z-index:2100;border:1px solid var(--border);background:var(--primary);color:#fff;font:inherit;cursor:pointer;box-shadow:0 8px 24px var(--primary-glow);border-radius:7px;padding:.55rem .75rem;font-size:.78rem;font-weight:700;position:fixed;bottom:1rem;right:1rem}.chat-launcher.selecting{background:var(--warning);color:var(--code-bg)}body.chat-select-mode *{cursor:crosshair!important}.settings-menu{pointer-events:auto;position:relative}.settings-menu>summary{list-style:none}.settings-menu>summary::-webkit-details-marker{display:none}.settings-summary{border:1px solid var(--border);background:var(--surface);height:32px;color:var(--text);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:6px;align-items:center;gap:.45rem;padding:0 .55rem;display:inline-flex;box-shadow:0 12px 32px #00000052}.settings-summary-icon{color:var(--primary-l);font-size:.95rem}.settings-panel{border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:20;border-radius:18px;width:min(320px,100vw - 2rem);padding:.95rem;position:absolute;top:calc(100% + .65rem);right:0;box-shadow:0 22px 54px #0006}.settings-panel-title{text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);margin-bottom:.7rem;font-size:.7rem}.settings-about{border-top:1px solid var(--border);color:var(--text-muted);overflow-wrap:anywhere;margin-top:16px;padding-top:12px;font-size:13px}.settings-about h2{color:var(--text);margin:0 0 8px;font-size:14px}.settings-about p{margin:4px 0 8px}.settings-about a{color:var(--primary-l)}.settings-toggle{color:var(--text);align-items:flex-start;gap:.75rem;display:flex}.settings-toggle input{accent-color:var(--primary-l);margin-top:.2rem}.settings-toggle strong{font-size:.88rem;font-weight:700;display:block}.settings-toggle small{color:var(--text-muted);margin-top:.2rem;font-size:.76rem;line-height:1.4;display:block}.home-page{width:100%;max-width:var(--page-shell-max-width);padding:0 var(--page-shell-padding) 5rem;flex:1 1 0;min-height:0;margin:0 auto;overflow-y:auto}.home-header{border-bottom:1px solid var(--border);margin-bottom:2.5rem;padding:3.5rem 0 2.5rem}.catalog-meta{flex-wrap:wrap;gap:.8rem;margin-top:1rem;display:flex}.catalog-meta span{color:var(--text-muted);border:1px solid var(--border);background:#ffffff05;border-radius:999px;padding:.25rem .55rem;font-size:.73rem}.filters-row{grid-template-columns:minmax(260px,1fr) 160px 180px;gap:.7rem;margin-top:1rem;display:grid}.search-input,.filter-select{border:1px solid var(--border);background:var(--surface2);height:38px;color:var(--text);border-radius:10px;padding:0 .7rem;font-size:.83rem}.track-note{border:1px solid var(--border);background:var(--surface2);min-height:38px;color:var(--text-muted);white-space:normal;overflow-wrap:anywhere;border-radius:10px;align-items:center;min-width:0;padding:.45rem .7rem;font-size:.78rem;line-height:1.35;display:flex}.search-input::placeholder{color:var(--text-dim)}.tag-row{flex-wrap:wrap;gap:.45rem;max-height:84px;margin-top:.75rem;padding-right:.2rem;display:flex;overflow:auto}.tag-filter{color:var(--text-muted);border:1px solid var(--border);background:var(--surface2);border-radius:999px;padding:.26rem .58rem;font-size:.72rem}.tag-filter.active{color:var(--text);background:#8b5cf62e;border-color:#8b5cf666}.implemented-showcase{background:radial-gradient(circle at 0 0,#3b82f624,#0000 34%),radial-gradient(circle at 100% 100%,#10b9811f,#0000 28%),linear-gradient(135deg,#0c1222f5,#0f172ae0);border:1px solid #6366f138;border-radius:20px;gap:1rem;margin-top:1.2rem;padding:1rem;display:grid}.implemented-showcase-copy{gap:.3rem;display:grid}.implemented-showcase-kicker{text-transform:uppercase;letter-spacing:.12em;color:#93c5fd;font-size:.7rem;font-weight:800}.implemented-showcase-copy strong{color:var(--text);font-size:1rem}.implemented-showcase-copy p{color:var(--text-muted);margin:0;font-size:.84rem;line-height:1.5}.implemented-showcase-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem;display:grid}.implemented-showcase-card{text-align:left;background:#0f172aa8;border:1px solid #94a3b829;border-radius:16px;gap:.35rem;padding:.95rem 1rem;display:grid;box-shadow:inset 0 1px #ffffff05}.implemented-showcase-card strong{color:var(--text);font-size:.94rem}.implemented-showcase-card small{color:var(--text-muted);font-size:.76rem}.implemented-showcase-number{background:color-mix(in srgb, var(--accent,var(--primary)) 18%, transparent);color:#e2e8f0;border:1px solid color-mix(in srgb, var(--accent,var(--primary)) 45%, transparent);border-radius:999px;width:fit-content;padding:.22rem .55rem;font-size:.68rem;font-weight:700;display:inline-flex}.home-header-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;display:flex}.track-switcher{border:1px solid var(--border);background:var(--surface2);border-radius:999px;flex-wrap:wrap;gap:4px;padding:4px;display:inline-flex}.track-btn{color:var(--text-muted);letter-spacing:.02em;border-radius:999px;padding:.45rem .85rem;font-size:.74rem;font-weight:700}.track-btn.active{color:var(--text);background:linear-gradient(135deg,#8b5cf63d,#6366f138);box-shadow:inset 0 0 0 1px #8b5cf642}.playground-launch-btn{min-height:38px;color:var(--text);letter-spacing:.01em;background:linear-gradient(135deg,#10b98133,#0ea5e929);border:1px solid #34d3995c;border-radius:999px;align-items:center;gap:.5rem;padding:.48rem .9rem;font-size:.76rem;font-weight:750;transition:transform .18s,border-color .18s,box-shadow .18s;display:inline-flex;box-shadow:inset 0 1px #ffffff0d}.playground-launch-btn span{color:#6ee7b7;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:850}.playground-launch-btn:hover{border-color:#34d3999e;transform:translateY(-1px);box-shadow:0 10px 28px #10b9811f}.playground-launch-btn:focus-visible{outline:2px solid var(--success);outline-offset:3px}.playground-loading{min-height:0;color:var(--text-muted);flex:1 1 0;place-items:center;font-size:.85rem;display:grid}.brand{align-items:center;gap:1.1rem;display:flex}.brand-icon{background:linear-gradient(135deg, var(--primary), #4f46e5);color:#fff;width:54px;height:54px;box-shadow:0 8px 28px var(--primary-glow), 0 0 0 1px #ffffff0f inset;border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;font-size:1.35rem;font-weight:800;display:flex}.brand h1{background:linear-gradient(130deg, var(--text) 20%, var(--primary) 100%);-webkit-text-fill-color:transparent;letter-spacing:-.03em;-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:800;line-height:1.1}.brand p{color:var(--text-muted);margin-top:3px;font-size:.9rem}.layout-controls{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.layout-controls.compact{margin-left:.25rem}.problem-header .layout-label{display:none}.problem-header .layout-pill{border-radius:5px;padding:2px}.problem-header .layout-btn{border-radius:3px;padding:.28rem .48rem;font-size:.68rem}.problem-utilities{flex:none;align-items:center;gap:6px;display:inline-flex}.problem-utilities .settings-summary{box-shadow:none}.layout-label{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.72rem;font-weight:700}.layout-pill{background:var(--surface);border:1px solid var(--border);border-radius:999px;padding:4px;display:inline-flex;box-shadow:inset 0 1px #ffffff05}.layout-btn{color:var(--text-muted);border-radius:999px;padding:.48rem .9rem;font-size:.79rem;font-weight:600;transition:all .18s}.layout-btn.active{color:var(--text);background:linear-gradient(135deg,#8b5cf638,#6d28d92e);box-shadow:inset 0 0 0 1px #8b5cf633}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.25rem;display:grid}.problem-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-xl);cursor:pointer;text-align:left;padding:1.5rem;transition:border-color .2s,box-shadow .2s;position:relative;overflow:hidden}.problem-card:before{content:"";background:linear-gradient(90deg, var(--accent,var(--primary)), transparent);opacity:0;height:2px;transition:opacity .25s;position:absolute;top:0;left:0;right:0}.problem-card:hover:before{opacity:1}.problem-card:hover{border-color:#8b5cf647;box-shadow:0 12px 40px #00000059,0 0 0 1px #8b5cf614}.problem-card.coming-soon{color:var(--text-dim);cursor:default;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;min-height:180px;display:flex}.coming-soon:hover{border-color:var(--border)!important;box-shadow:none!important}.plus{opacity:.35;font-size:2.5rem;font-weight:300}.coming-soon p{font-size:.85rem}.card-top{justify-content:space-between;align-items:center;margin-bottom:.85rem;display:flex}.card-top-left{flex-wrap:wrap;align-items:center;gap:.45rem;display:flex}.card-num{color:var(--text-dim);font-size:.78rem;font-weight:600}.badge{text-transform:uppercase;letter-spacing:.06em;border-radius:20px;padding:3px 9px;font-size:.67rem;font-weight:700}.difficulty-easy{color:#22c55e;background:#22c55e24}.difficulty-medium{color:#fbbf24;background:#fbbf2424}.difficulty-hard{color:#f87171;background:#f8717124}.status-badge{text-transform:uppercase;letter-spacing:.06em;border:1px solid #0000;border-radius:20px;padding:3px 9px;font-size:.66rem;font-weight:700}.status-badge.implemented{color:#7dd3fc;background:#0ea5e924;border-color:#0ea5e938}.status-badge.catalog{color:#cbd5e1;background:#94a3b81a;border-color:#94a3b82e}.card-title{color:var(--text);margin-bottom:.5rem;font-size:1.05rem;font-weight:700;line-height:1.3}.card-desc{color:var(--text-muted);margin-bottom:1.1rem;font-size:.84rem;line-height:1.55}.card-footer{justify-content:space-between;align-items:center;display:flex}.card-tags{flex-wrap:wrap;gap:.4rem;display:flex}.tag{background:var(--surface3);border:1px solid var(--border);color:var(--text-muted);border-radius:20px;padding:2px 8px;font-size:.7rem}.card-arrow{color:var(--text-dim);font-size:1.3rem;transition:transform .2s,color .2s}.problem-card:not(.coming-soon):hover .card-arrow{color:var(--primary-l);transform:translate(5px)}.load-more-wrap{justify-content:center;margin-top:1.25rem;display:flex}.load-more-btn{border:1px solid var(--border);background:var(--surface2);color:var(--text-muted);border-radius:10px;height:38px;padding:0 1rem;font-size:.82rem;font-weight:600}.load-more-btn:hover{color:var(--text);border-color:#8b5cf666}.problem-page{flex-direction:column;flex:1 1 0;min-height:0;display:flex}.problem-header{min-height:48px;padding:.45rem var(--page-shell-padding);padding-right:var(--page-shell-padding);background:var(--surface);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}@keyframes arrow-slide{0%{transform:translate(0)}50%{transform:translate(-4px)}to{transform:translate(0)}}@keyframes bg-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.back-btn{color:var(--primary);border:1px solid var(--border);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:5px;align-items:center;gap:.4rem;padding:.4rem .65rem;font-size:.78rem;font-weight:600;text-decoration:none;transition:color .25s,background .25s,border-color .25s,box-shadow .25s,transform .2s;display:inline-flex}.back-btn:hover{color:var(--primary-d);border-color:#a78bfa59;transform:translateY(-2px);box-shadow:0 8px 24px #8b5cf62e}.back-btn:active{transform:translateY(0);box-shadow:0 4px 12px #8b5cf61f}.back-btn:focus-visible{outline:none;box-shadow:0 0 0 3px #a78bfa4d,0 8px 24px #8b5cf62e}.back-btn svg{width:18px;height:18px;overflow:visible}.back-btn-icon{stroke:var(--primary);stroke-width:2.4px;fill:none;transition:stroke .25s,transform .25s,filter .25s}.back-btn:hover .back-btn-icon{stroke:var(--info);filter:drop-shadow(0 0 8px #22d3ee73);transform:translate(-4px)}.problem-title-group{flex:1;align-items:baseline;gap:.45rem;min-width:0;display:flex}.problem-num{color:var(--primary-l);letter-spacing:-.01em;flex-shrink:0;font-size:.78rem;font-weight:700}.problem-title{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.02em;font-size:1rem;font-weight:750;overflow:hidden}.difficulty{opacity:.9;border:1px solid;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:.7rem;font-weight:700}.problem-content{min-height:0;padding:.75rem var(--page-shell-padding);max-width:var(--page-shell-max-width);flex-direction:column;flex:1 1 0;width:100%;margin:0 auto;display:flex;overflow:hidden}.problem-content>*{flex:auto;min-height:0}.problem-content .problem-shell,.problem-content .atoi-shell{max-height:100%;height:100%!important;min-height:0!important}.problem-content :has(>.lumino-dock-container){min-height:0;position:relative!important}@media (width<=960px){.filters-row{grid-template-columns:1fr}.problem-header{padding-right:var(--page-shell-padding);flex-wrap:wrap;align-items:flex-start}.problem-utilities{margin-left:auto}}@media (width<=680px){.layout-controls,.layout-controls.compact{justify-content:space-between;width:100%;margin-left:0}.layout-pill{width:100%}.layout-btn{text-align:center;flex:1}}.access-dialog{border:1px solid var(--border-color,#334155);background:var(--bg-primary,#101827);width:min(800px,100vw - 32px);max-height:85dvh;color:var(--text-primary,#e2e8f0);border-radius:20px;padding:32px;overflow:auto;box-shadow:0 24px 90px #0007}.access-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#020617b8}.access-dialog h2{margin:0 35px 12px 0;font-size:1.7rem}.access-dialog p{line-height:1.7}.access-dialog button,.access-gate button,.playground-allowance button,.access-toolbar-btn{font:inherit;cursor:pointer;color:inherit;background:0 0;border:1px solid #64748b66;border-radius:9px;padding:9px 14px}.access-dialog button:disabled{opacity:.55;cursor:not-allowed}.access-close{position:absolute;top:14px;right:16px}.access-primary{font-weight:600;color:#fff!important;background:#6366f1!important;border-color:#818cf8!important}.access-toolbar-btn{padding:7px 10px;font-size:12px}.access-toolbar-btn.pro{color:#a5b4fc}.plan-grid{grid-template-columns:1fr 1.3fr;gap:18px;margin:24px 0;display:grid}.plan-card{border:1px solid #64748b55;border-radius:14px;padding:22px}.plan-pro{background:#6366f110;border-color:#818cf8}.plan-card h3{margin:12px 0;font-size:1.5rem}.plan-card ul{padding-left:20px;line-height:1.9}.plan-card .access-primary{width:100%;margin:6px 0}.plan-card small{opacity:.8;line-height:1.6;display:block}.access-eyebrow{letter-spacing:.12em;color:#818cf8;font-size:11px;font-weight:700}.access-notice{color:#b49d58;font-size:13px}.access-actions{flex-wrap:wrap;gap:10px;display:flex}.tutorial-content progress{accent-color:#818cf8;width:100%;height:6px;margin:20px 0;display:block}.tutorial-content p{min-height:100px}.access-gate{text-align:center;max-width:650px;margin:auto;padding:48px 24px}.access-gate button{margin:8px}.playground-access-wrap{flex-direction:column;height:100%;min-height:0;display:flex;position:relative}.playground-access-body{flex-direction:column;flex:1;min-height:0;display:flex}.playground-access-wrap>.access-gate{position:absolute;inset:60px 0 auto}.playground-allowance{background:#6366f116;justify-content:center;align-items:center;gap:16px;padding:6px;font-size:12px;display:flex}.playground-allowance button{padding:3px 9px;font-size:12px}.card-access-label{color:#818cf8;white-space:nowrap;font-size:11px}@media (width<=600px){.plan-grid{grid-template-columns:1fr}.access-dialog{padding:22px}.app-toolbar{flex-wrap:wrap;gap:5px}.access-toolbar-btn{padding:5px 7px;font-size:11px}}
