:root{--bg: #0a0b0e;--surface: #101216;--surface-2: #15181e;--surface-3: #1c2028;--border: #222631;--border-strong: #2f3441;--text: #eef0f5;--muted: #939aa8;--faint: #5b6271;--accent: #c6f24f;--accent-ink: #0a0b0e;--accent-dim: rgba(198, 242, 79, .12);--accent-line: rgba(198, 242, 79, .32);--cyan: #65d0f0;--danger: #ff6b6b;--danger-dim: rgba(255, 107, 107, .1);--fs-micro: 10.5px;--fs-label: 11px;--fs-caption: 12px;--fs-body: 13px;--fs-ui: 13.5px;--fs-base: 14px;--fs-h3: 16px;--fs-h2: 18px;--lh-tight: 1.4;--lh-body: 1.6;--lh-relax: 1.7;--r1: 8px;--r2: 11px;--r3: 14px;--r-pill: 999px;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 16px 44px -22px rgba(0, 0, 0, .8);--ease: cubic-bezier(.32, .72, 0, 1);--font-display: "Bricolage Grotesque", "PingFang SC", "Microsoft YaHei", sans-serif;--font-sans: "Manrope", ui-sans-serif, system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;font-family:var(--font-sans);font-size:var(--fs-base);line-height:1.5}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background-color:var(--bg);background-image:radial-gradient(1100px 560px at 50% -12%,rgba(198,242,79,.05),transparent 68%),linear-gradient(rgba(255,255,255,.014) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.014) 1px,transparent 1px);background-size:100% 100%,44px 44px,44px 44px;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{font:inherit;cursor:pointer;color:inherit}input,textarea{font:inherit}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent-line);outline-offset:2px;border-radius:4px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--r-pill);border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#3b4150;background-clip:padding-box}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.error{color:var(--danger);font-size:var(--fs-body);margin:12px 0 0;padding:9px 13px;border:1px solid rgba(255,107,107,.28);border-radius:var(--r1);background:var(--danger-dim)}.brand{display:flex;align-items:center;gap:11px;font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:0}.brand .logo-mark{width:30px;height:30px;flex-shrink:0;display:block;filter:drop-shadow(0 10px 18px rgba(198,242,79,.14))}.logo-page{fill:var(--accent)}.logo-fold{fill:var(--cyan)}.logo-glyph{fill:none;stroke:var(--accent-ink);stroke-width:1.8;stroke-linecap:round}.logo-spark{fill:var(--accent-ink)}.brand b{color:var(--accent);font-weight:700}.btn-primary{display:inline-flex;align-items:center;gap:7px;background:var(--accent);color:var(--accent-ink);border:none;border-radius:var(--r2);font-family:var(--font-sans);font-weight:700;font-size:var(--fs-ui);padding:11px 18px;box-shadow:var(--shadow-1);transition:transform .16s var(--ease),filter .16s var(--ease),box-shadow .16s var(--ease)}.btn-primary:hover{filter:brightness(1.06);box-shadow:0 8px 22px -10px var(--accent)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;filter:none;box-shadow:none}.ghost{display:inline-flex;align-items:center;gap:7px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);font-size:var(--fs-ui);padding:8px 13px;border-radius:var(--r2);transition:border-color .15s var(--ease),background .15s var(--ease),color .15s var(--ease)}.ghost:hover{border-color:var(--border-strong);background:var(--surface-3)}.ghost:disabled{opacity:.4;cursor:not-allowed}.ghost.active{color:var(--accent);border-color:var(--accent-line);background:var(--accent-dim)}.ghost svg,.btn-primary svg{width:15px;height:15px;flex-shrink:0}.chip{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.02em;color:var(--muted);padding:4px 10px;border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);white-space:nowrap}.chip.accent{color:var(--accent);border-color:var(--accent-line);background:var(--accent-dim)}.page{height:100%;display:flex;flex-direction:column;min-height:0}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid var(--border);background:#101216c7;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:sticky;top:0;z-index:10}.topbar-right,.topbar-left{display:flex;align-items:center;gap:12px}.topbar-left .divider{width:1px;height:18px;background:var(--border)}.project-title{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.auth-page{height:100%;display:grid;grid-template-columns:1.05fr .95fr;overflow:hidden}.auth-hero{position:relative;padding:56px 60px;display:flex;flex-direction:column;justify-content:space-between;border-right:1px solid var(--border);background:radial-gradient(720px 420px at 18% 8%,rgba(198,242,79,.09),transparent 58%),radial-gradient(560px 400px at 92% 102%,rgba(101,208,240,.06),transparent 60%),linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);background-size:100% 100%,100% 100%,44px 44px,44px 44px;overflow:hidden}.auth-hero .brand{font-size:20px;position:relative;z-index:1}.hero-mid{position:relative;z-index:1;max-width:480px}.hero-kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;color:var(--accent);text-transform:uppercase;margin-bottom:20px}.hero-title{font-family:var(--font-display);font-size:50px;line-height:1.04;font-weight:800;letter-spacing:-.035em;margin:0 0 22px}.hero-title .accent{color:var(--accent)}.hero-sub{color:var(--muted);font-size:16px;line-height:1.7;margin:0}.hero-features{position:relative;z-index:1;list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:15px}.hero-features li{display:flex;align-items:center;gap:13px;font-size:14.5px;color:var(--text)}.hero-features .tick{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border-radius:7px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-line);font-family:var(--font-mono);font-size:11px;font-weight:600}.hero-features .lbl{color:var(--muted)}.auth-form-wrap{display:grid;place-items:center;padding:32px}.auth-card{width:100%;max-width:384px}.auth-card .form-kicker{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.auth-card h2{font-family:var(--font-display);font-size:28px;font-weight:700;letter-spacing:-.025em;margin:10px 0 16px}.auth-card-sub{font-size:14px;color:var(--muted);margin:0 0 26px;line-height:1.6}.auth-hint{margin-top:16px;font-size:12px;color:var(--faint);text-align:center;line-height:1.6}.field{margin-bottom:16px}.field label{display:block;font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.field input{width:100%;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);color:var(--text);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.field input:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}.field input::placeholder{color:var(--faint)}.auth-card .btn-primary{width:100%;justify-content:center;margin-top:10px;padding:13px}.switch{margin-top:24px;font-size:14px;color:var(--muted);text-align:center}.switch button{background:none;border:none;color:var(--accent);font-weight:600;padding:0 4px}.switch button:hover{text-decoration:underline}.dev-login{margin-top:28px;padding-top:22px;border-top:1px dashed var(--border)}.dev-login-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--faint);text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:12px}.dev-login-label:after{content:"";flex:1;height:1px;background:var(--border)}.dev-login-btn{width:100%;justify-content:center;padding:12px}.dev-login .auth-hint code{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.projects{padding:44px 28px 60px;max-width:960px;width:100%;margin:0 auto}.projects-head{margin-bottom:30px}.projects-head h1{font-family:var(--font-display);font-size:34px;font-weight:700;letter-spacing:-.035em;margin:0 0 8px}.projects-head p{color:var(--muted);margin:0;font-size:15px}.create-bar{display:flex;gap:12px;margin-bottom:30px}.create-bar .field-wrap{flex:1;position:relative}.create-bar .field-label{position:absolute;left:14px;top:50%;transform:translateY(-50%);z-index:1;pointer-events:none;font-family:var(--font-mono);font-size:var(--fs-body);color:var(--accent);font-weight:600;white-space:nowrap}.create-bar input{width:100%;padding:13px 16px 13px 90px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r2);color:var(--text);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.create-bar input:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}.create-bar input::placeholder{color:var(--faint)}.create-bar input.invalid{border-color:var(--danger)}.create-bar input.invalid:focus{box-shadow:0 0 0 3px #ff6b6b2e}.create-bar .field-hint{position:absolute;left:4px;top:calc(100% + 6px);font-size:var(--fs-body);color:var(--danger);display:flex;align-items:center;gap:6px;white-space:nowrap}.create-bar .field-hint:before{content:"↑";font-weight:700}.create-bar .btn-primary{white-space:nowrap}.section-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--faint);text-transform:uppercase;margin-bottom:16px;display:flex;align-items:center;gap:12px}.section-label:after{content:"";flex:1;height:1px;background:var(--border)}.projects-toolbar{display:flex;align-items:center;gap:16px;margin-bottom:16px}.projects-toolbar .section-label{flex:1;margin-bottom:0}.project-search{flex-shrink:0}.project-search input{width:240px;padding:9px 14px;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--r2);font-size:13px;font-family:inherit;transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}.project-search input:focus{outline:none;border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}.project-search input::placeholder{color:var(--faint)}.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin-top:28px;flex-wrap:wrap}.page-btn{min-width:34px;height:34px;padding:0 10px;display:grid;place-items:center;background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:var(--r2);font-size:13px;font-family:var(--font-mono);cursor:pointer;transition:border-color .18s var(--ease),color .18s var(--ease),background .18s var(--ease)}.page-btn:hover:not(:disabled){color:var(--text);border-color:var(--border-strong)}.page-btn.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-line)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.project-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:14px}.project-card{position:relative;padding:18px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r3);cursor:pointer;overflow:hidden;transition:border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease);animation:fade-up .5s both}.project-card:before{content:"";position:absolute;left:0;top:0;right:0;height:2px;background:linear-gradient(90deg,var(--accent),transparent 70%);opacity:0;transition:opacity .18s var(--ease)}.project-card:hover{border-color:var(--border-strong);transform:translateY(-3px);box-shadow:var(--shadow-2)}.project-card:hover:before{opacity:1}.project-card:hover .open-hint{color:var(--accent)}.project-card:hover .open-hint svg{transform:translate(2px)}.card-top{display:flex;align-items:center;gap:12px;margin-bottom:24px}.card-avatar{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;font-family:var(--font-display);font-weight:700;font-size:16px;background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-line);flex-shrink:0}.card-name{flex:1;font-weight:700;font-size:15px;letter-spacing:-.01em;line-height:1.3;word-break:break-word}.project-card:has(.menu-pop){overflow:visible;z-index:5}.card-menu{flex-shrink:0;position:relative}.kebab{width:28px;height:28px;border-radius:var(--r1);display:grid;place-items:center;background:transparent;color:var(--faint);border:1px solid transparent;opacity:0;transition:opacity .18s var(--ease),color .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease)}.kebab svg{width:16px;height:16px}.project-card:hover .kebab{opacity:1}.kebab:hover,.kebab.active{color:var(--text);border-color:var(--border);background:var(--surface-3);opacity:1}.menu-pop{position:absolute;top:calc(100% + 6px);right:0;min-width:172px;padding:6px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:var(--r2);box-shadow:var(--shadow-2);z-index:20;animation:menu-in .14s var(--ease) both}@keyframes menu-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu-item{width:100%;display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r1);background:transparent;border:none;color:var(--text);font-size:var(--fs-body);text-align:left;transition:background .14s var(--ease),color .14s var(--ease)}.menu-item:hover{background:var(--surface-3)}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:var(--danger-dim)}.menu-ico{display:grid;place-items:center;width:16px;opacity:.85}.menu-ico svg{width:15px;height:15px}.menu-confirm{padding:6px 8px 4px}.menu-confirm-text{margin:0 0 12px;font-size:13px;line-height:1.5;color:var(--text)}.menu-confirm-hint{color:var(--muted);font-size:12px}.menu-confirm-actions{display:flex;gap:8px}.menu-confirm-actions button{flex:1;padding:8px 10px;border-radius:var(--r1);font-size:13px;font-weight:600;white-space:nowrap;transition:filter .14s var(--ease),background .14s var(--ease),border-color .14s var(--ease),color .14s var(--ease)}.menu-confirm-actions button:disabled{opacity:.55;cursor:default}.mc-cancel{background:var(--surface-3);border:1px solid var(--border);color:var(--text)}.mc-cancel:hover:not(:disabled){border-color:var(--border-strong)}.mc-delete{background:var(--danger-dim);border:1px solid transparent;color:var(--danger)}.mc-delete:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#1a0808}.card-rename-input{flex:1;min-width:0;padding:7px 10px;border-radius:var(--r1);background:var(--surface);border:1px solid var(--accent-line);color:var(--text);font-weight:700;font-size:15px;letter-spacing:-.01em;outline:none}.card-rename-input:focus{box-shadow:0 0 0 3px var(--accent-dim)}.rename-hint{font-family:var(--font-mono);font-size:11px;color:var(--accent)}.card-bottom{display:flex;align-items:center;justify-content:space-between}.card-time{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.open-hint{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;color:var(--faint);transition:color .18s var(--ease)}.open-hint svg{width:13px;height:13px;transition:transform .18s var(--ease)}.card-actions{display:inline-flex;align-items:center;gap:12px}.card-run{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:12px;color:var(--accent);border:1px solid var(--border);border-radius:var(--r-pill);background:transparent;padding:4px 11px;cursor:pointer;transition:background .18s var(--ease),border-color .18s var(--ease)}.card-run svg{width:13px;height:13px}.card-run:hover{background:var(--accent-dim, rgba(190,242,100,.12));border-color:var(--accent)}.run-overlay{z-index:95}.run-modal{width:100%;max-width:1100px;height:min(90vh,860px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r3);box-shadow:0 24px 60px -20px #000000b3;overflow:hidden}.run-modal-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-bottom:1px solid var(--border)}.run-modal-head h2{font-size:15px;font-weight:700;color:var(--text);margin:0}.run-modal-stage{position:relative;flex:1;min-height:0;background:var(--surface-2)}.run-preview-pane{position:relative;width:100%;height:100%}.run-preview,.run-preview .sp-preview-container,.run-preview iframe{width:100%;height:100%}.empty-state{text-align:center;padding:64px 20px;border:1px dashed var(--border);border-radius:var(--r3);background:var(--surface)}.empty-state .glyph{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 16px;border-radius:13px;background:var(--surface-2);border:1px solid var(--border);color:var(--faint)}.empty-state .glyph svg{width:24px;height:24px}.empty-state p{color:var(--muted);margin:0 auto;line-height:1.7;max-width:420px}.loading-state{color:var(--muted);font-family:var(--font-mono);font-size:var(--fs-body);padding:20px 0}.workspace{height:100%;display:flex;flex-direction:column;min-height:0}.workspace-body{flex:1;display:grid;grid-template-columns:1fr;min-height:0}.workspace-body.with-preview{grid-template-columns:clamp(480px,40%,620px) minmax(0,1fr)}.status-badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.02em;padding:4px 11px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--muted);background:var(--surface)}.status-badge .dot{width:7px;height:7px;border-radius:var(--r-pill);background:var(--faint)}.status-badge.live{color:var(--accent);border-color:var(--accent-line);background:var(--accent-dim)}.status-badge.live .dot{background:var(--accent);animation:pulse 1.5s ease-out infinite}.chat{display:flex;flex-direction:column;border-right:1px solid var(--border);min-width:0;min-height:0;background:var(--surface)}.messages{flex:1;min-width:0;overflow-y:auto;overflow-x:hidden;padding:24px 20px;display:flex;flex-direction:column;gap:18px}.hint{margin:auto;text-align:left;max-width:440px;width:100%}.hint-kicker{display:flex;align-items:center;gap:12px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.2em;text-transform:uppercase;color:var(--faint);margin:0 0 16px}.hint-kicker:after{content:"";flex:1;height:1px;background:var(--border)}.hint h3{font-family:var(--font-display);font-size:27px;font-weight:700;margin:0 0 10px;letter-spacing:-.025em;line-height:1.15}.hint p{color:var(--muted);line-height:var(--lh-body);margin:0 0 26px;font-size:var(--fs-body);max-width:32ch}.starter-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--border)}.starter-list li{margin:0}.starter-list button{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 4px;background:none;border:none;border-bottom:1px solid var(--border);color:var(--muted);font-size:var(--fs-ui);cursor:pointer;transition:padding-left .25s var(--ease),background .2s var(--ease)}.starter-index{font-family:var(--font-mono);font-size:var(--fs-label);color:var(--faint);font-variant-numeric:tabular-nums;transition:color .2s var(--ease)}.starter-emoji{font-size:15px;line-height:1;flex-shrink:0;filter:grayscale(1) opacity(.55);transition:filter .25s var(--ease),transform .25s var(--ease)}.starter-title{flex:1;color:var(--text);font-weight:500;transition:color .2s var(--ease)}.starter-arrow{font-family:var(--font-mono);color:var(--accent);opacity:0;transform:translate(-6px);transition:opacity .2s var(--ease),transform .25s var(--ease)}.starter-list button:hover{padding-left:10px}.starter-list button:hover .starter-index{color:var(--accent)}.starter-list button:hover .starter-emoji{filter:grayscale(0) opacity(1);transform:scale(1.12)}.starter-list button:hover .starter-title{color:var(--text)}.starter-list button:hover .starter-arrow{opacity:1;transform:translate(0)}.starter-list button:focus-visible{outline:none;padding-left:10px}.starter-list button:focus-visible .starter-arrow{opacity:1;transform:translate(0)}.msg{display:flex;flex-direction:column;gap:6px;animation:fade-up .35s both;max-width:94%;min-width:0}.msg.user{align-self:flex-end;align-items:flex-end}.msg.assistant{align-self:flex-start;align-items:flex-start}.msg-meta{display:flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.05em;color:var(--faint);text-transform:uppercase}.msg-meta .role-dot{width:6px;height:6px;border-radius:var(--r-pill)}.msg.user .role-dot{background:var(--cyan)}.msg.assistant .role-dot{background:var(--accent)}.bubble{padding:11px 14px;border-radius:var(--r3);white-space:pre-wrap;line-height:var(--lh-body);font-size:var(--fs-body);max-width:100%;min-width:0;overflow-wrap:break-word;word-break:break-word}.msg.user .bubble{background:var(--accent);color:var(--accent-ink);font-weight:500;border-bottom-right-radius:4px}.msg.assistant .bubble{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px}.msg-cost{display:flex;align-items:center;gap:10px;font-size:var(--fs-micro);color:var(--faint);font-family:var(--font-mono);letter-spacing:.02em;padding-left:2px}.preview-link{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.02em;cursor:pointer;transition:background .15s ease,color .15s ease}.preview-link:hover{background:var(--accent);color:var(--accent-ink)}.preview-link svg{width:12px;height:12px}.preview-link.secondary{border-color:var(--border);color:var(--muted)}.preview-link.secondary:hover{background:var(--surface-2);color:var(--text);border-color:var(--faint)}.caret{display:inline-block;width:7px;height:14px;background:var(--accent);margin-left:2px;vertical-align:text-bottom;animation:blink 1s step-end infinite}.stream-text{white-space:pre-wrap}.markdown{white-space:normal;font-size:var(--fs-body);line-height:var(--lh-body);min-width:0;overflow-wrap:break-word;word-break:break-word}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 10px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{margin:15px 0 7px;line-height:1.35;font-weight:650;letter-spacing:-.01em}.markdown h1{font-size:var(--fs-h3)}.markdown h2{font-size:15px}.markdown h3{font-size:var(--fs-ui)}.markdown h4{font-size:var(--fs-body);color:var(--muted)}.markdown ul,.markdown ol{margin:0 0 10px;padding-left:20px}.markdown li{margin:3px 0}.markdown li>p{margin:0}.markdown a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.markdown strong{font-weight:650;color:var(--text)}.markdown code{font-family:var(--font-mono);font-size:var(--fs-caption);background:var(--surface-3);padding:1px 5px;border-radius:4px}.markdown pre{background:var(--bg);border:1px solid var(--border);border-radius:var(--r2);padding:12px 14px;overflow:auto;margin:0 0 10px;max-width:100%}.markdown pre code{background:none;padding:0;font-size:var(--fs-caption);line-height:1.55;white-space:pre;word-break:normal;overflow-wrap:normal}.markdown blockquote{margin:0 0 10px;padding:2px 12px;border-left:3px solid var(--accent-line);color:var(--muted)}.markdown hr{border:none;border-top:1px solid var(--border);margin:14px 0}.markdown table{border-collapse:collapse;width:100%;margin:0 0 10px;font-size:var(--fs-body);display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--border);padding:6px 10px;text-align:left}.markdown th{background:var(--surface-3);font-weight:600}.markdown img{max-width:100%;border-radius:var(--r2)}.reasoning-spinner{width:10px;height:10px;border-radius:var(--r-pill);border:1.5px solid var(--accent-line);border-top-color:var(--accent);animation:spin .7s linear infinite;flex-shrink:0}.stream-card{padding:14px 16px 6px;border-radius:var(--r3);border-bottom-left-radius:4px;background:var(--surface-2);border:1px solid var(--accent-line);box-shadow:inset 0 0 0 1px #c6f24f08,var(--shadow-1);min-width:0;max-width:100%;overflow-wrap:break-word;word-break:break-word}.tl-warming{display:flex;align-items:center;gap:9px;padding:4px 0 10px;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}.timeline{display:flex;flex-direction:column}.tl-item{position:relative;padding:0 0 14px 24px;animation:fade-up .3s both}.tl-item:before{content:"";position:absolute;left:4.5px;top:6px;bottom:-2px;width:1px;background:linear-gradient(var(--border-strong),var(--border))}.tl-item:last-child{padding-bottom:2px}.tl-item:last-child:before{display:none}.tl-dot{position:absolute;left:0;top:4px;width:10px;height:10px;border-radius:var(--r-pill);background:var(--surface-3);box-shadow:0 0 0 1px var(--border-strong);z-index:1}.tl-dot.think{background:var(--surface-3);box-shadow:0 0 0 1px var(--border-strong)}.tl-dot.say{background:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 10px 0 var(--accent-line)}.tl-dot.act{left:1.5px;top:6px;width:7px;height:7px;background:var(--muted);box-shadow:none}.tl-dot.act.err{background:var(--danger)}.tl-head{display:inline-flex;align-items:center;gap:7px;padding:2px 0;background:none;border:none;cursor:pointer;color:var(--faint);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.06em;text-transform:uppercase;transition:color .15s var(--ease)}.tl-head:hover{color:var(--muted)}.tl-tick{color:var(--accent);font-size:var(--fs-label)}.tl-caret{width:13px;height:13px;opacity:.55;transition:transform .18s var(--ease)}.tl-item.think.open .tl-caret{transform:rotate(90deg)}.tl-think-body{margin-top:7px;font-size:var(--fs-caption);line-height:1.66;color:var(--muted);white-space:pre-wrap;max-height:150px;overflow-y:auto;overscroll-behavior:contain;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 88%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 16%,#000 88%,transparent);scrollbar-width:thin;scrollbar-color:var(--accent-line) transparent;padding-right:4px}.tl-think-body::-webkit-scrollbar{width:6px}.tl-think-body::-webkit-scrollbar-thumb{background:var(--accent-line);border-radius:var(--r-pill)}.tl-think-body::-webkit-scrollbar-track{background:transparent}.tl-say{font-size:var(--fs-body);line-height:var(--lh-body);color:var(--text);white-space:pre-wrap}.tl-act{display:flex;gap:8px;align-items:baseline;font-family:var(--font-mono);font-size:var(--fs-label);line-height:1.55;color:var(--muted)}.tl-act .ico{flex-shrink:0;font-size:9px;color:var(--accent);width:10px;text-align:center}.tl-item.act.running .tl-act{color:var(--text)}.tl-item.act.running .ico{animation:pulse 1.1s ease-in-out infinite}.tl-item.act.err .tl-act,.tl-item.act.err .ico{color:var(--danger)}.tl-act-msg{color:var(--faint)}.composer{border-top:1px solid var(--border);padding:14px;background:var(--surface)}.composer-box{border:1px solid var(--border);border-radius:var(--r3);background:var(--surface-2);transition:border-color .15s var(--ease),box-shadow .15s var(--ease);overflow:hidden}.composer-box:focus-within{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}.composer.first-use .composer-box{border-color:var(--accent-line);box-shadow:0 0 0 3px var(--accent-dim)}.composer textarea{width:100%;resize:none;padding:13px 14px 4px;background:transparent;border:none;color:var(--text);font-size:var(--fs-body);line-height:1.55}.composer textarea:focus{outline:none}.composer textarea::placeholder{color:var(--faint)}.composer-foot{display:flex;align-items:center;justify-content:space-between;padding:6px 10px 10px 14px}.composer-foot .kbd{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--faint)}.composer-foot .kbd b{color:var(--muted);font-weight:500}.composer-foot .right{display:flex;align-items:center;gap:10px}.composer-foot .count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--faint)}.composer-foot .left{display:flex;align-items:center;gap:10px}.composer .btn-primary{padding:8px 16px}.icon-btn{padding:5px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r2)}.icon-btn svg{width:17px;height:17px}.attach-tray{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px 0}.attach-chip{display:inline-flex;align-items:center;gap:5px;max-width:220px;padding:3px 8px;border:1px solid var(--border);border-radius:999px;background:var(--surface);color:var(--muted);font-size:var(--fs-caption);line-height:1.4}.attach-chip svg{width:13px;height:13px;flex:none;color:var(--accent)}.attach-chip>:not(svg):not(button){overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attach-chip.removable button{display:inline-flex;padding:0;margin-left:2px;border:none;background:none;color:var(--faint);cursor:pointer}.attach-chip.removable button:hover{color:var(--text)}.attach-chip.removable button svg{width:13px;height:13px;color:inherit}.attach-status{font-size:var(--fs-caption);color:var(--faint)}.attach-status.err{color:var(--danger, #e5484d)}.attach-status.live{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums;opacity:.85}.icon-btn.recording{color:var(--danger, #e5484d);animation:rec-pulse 1.4s ease-in-out infinite}.rec-bar{display:flex;align-items:center;gap:10px;padding:10px 12px 0}.rec-dot{width:9px;height:9px;border-radius:50%;background:var(--danger, #e5484d);flex:none;animation:rec-pulse 1.2s ease-in-out infinite}.rec-time{font-size:var(--fs-caption);color:var(--text);font-variant-numeric:tabular-nums}.rec-hint{color:var(--faint)}.rec-bar .rec-cancel{margin-left:auto;padding:4px 10px;font-size:var(--fs-caption)}.rec-bar .rec-done{padding:4px 12px;font-size:var(--fs-caption)}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.4}}.msg-attachments{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.preview{min-width:0;min-height:0;display:flex;background:var(--bg)}.preview>div{flex:1;min-width:0}.preview-wrap{flex:1;min-width:0;display:flex;flex-direction:column}.preview-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.preview-label{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.preview-actions{display:flex;align-items:center;gap:8px}.ghost.sm{padding:6px 11px;font-size:var(--fs-caption);border-radius:var(--r1)}.ghost.sm svg{width:13px;height:13px}.preview-stage{flex:1;min-height:0;display:flex}.preview-stage>div{flex:1;min-width:0;display:flex;min-height:0}.preview-wrap.is-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:var(--bg);animation:fade-up .2s var(--ease) both}.preview-wrap.is-fullscreen .pl-explorer,.preview-wrap.is-fullscreen .pl-editor{display:none}.preview-wrap.is-fullscreen .pl-preview{border-left:none}.preview .pl-sandpack{height:100%;width:100%;border:none;border-radius:0;flex-wrap:nowrap}.preview .pl-explorer{flex:0 0 190px;min-width:150px;max-width:240px;height:100%!important;border-right:1px solid var(--border);overflow:auto}.preview .pl-editor{flex:1 1 0;min-width:0;height:100%!important}.preview .pl-preview{flex:1 1 0;min-width:0;height:100%!important;border-left:1px solid var(--border)}.preview .pl-preview-pane{flex:1 1 0;min-width:0;height:100%!important;position:relative;display:flex}.preview .pl-preview-pane .pl-preview{border-left:1px solid var(--border)}.preview-wrap.is-fullscreen .pl-preview-pane .pl-preview{border-left:none}.preview-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:32px;text-align:center;background:var(--bg);color:var(--muted);font-size:var(--fs-body);line-height:var(--lh-relax)}.preview-overlay p{margin:0;max-width:420px}.preview-overlay .hint{color:var(--faint);font-size:var(--fs-caption);text-align:center;max-width:420px;width:auto}.preview-overlay.is-error{color:var(--text)}.preview-overlay.is-error h4{margin:0 0 4px;font-family:var(--font-display);font-size:var(--fs-h2);font-weight:700}.preview-overlay.is-error p{color:var(--muted)}.preview-overlay.is-error .msg{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--accent);word-break:break-word}.preview-overlay .ghost.sm{margin-top:6px}.preview-overlay .spinner{width:26px;height:26px;border-radius:50%;border:2.5px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}.preview-empty{margin:auto;text-align:center;padding:40px;max-width:390px}.preview-empty .glyph{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 18px;border-radius:14px;background:var(--surface);border:1px solid var(--border);color:var(--faint)}.preview-empty .glyph svg{width:26px;height:26px}.preview-empty h3{font-family:var(--font-display);font-size:var(--fs-h2);font-weight:700;margin:0 0 10px;letter-spacing:-.02em}.preview-empty p{color:var(--muted);line-height:var(--lh-relax);margin:0;font-size:var(--fs-body)}.sp-wrapper,.sp-layout{height:100%!important;border:none!important}.filetree{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.ft-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.ft-title{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}.ft-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--accent)}.ft-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 6px}.ft-row{display:flex;align-items:center;gap:8px;height:28px;padding-right:10px;border-radius:var(--r2);color:var(--muted);font-size:var(--fs-body);animation:fade-up .18s ease;overflow:hidden}.ft-row.dir{color:var(--text);font-weight:500}.ft-row.active{background:var(--accent-dim);color:var(--accent)}.ft-ico{display:grid;place-items:center;flex:none}.ft-ico svg{width:15px;height:15px}.ft-row.dir .ft-ico{color:var(--accent)}.ft-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ft-spinner{width:10px;height:10px;flex:none;margin-left:auto;border-radius:var(--r-pill);border:1.5px solid var(--accent-line);border-top-color:var(--accent);animation:spin .7s linear infinite}.ft-empty{display:flex;align-items:center;gap:10px;padding:20px 14px;color:var(--faint);font-size:var(--fs-body)}.ft-empty .ft-spinner{margin:0}.ft-row.clickable{cursor:pointer}.ft-row.clickable:hover{background:var(--surface-2);color:var(--text)}.ft-row.selected{background:var(--surface-3);color:var(--text)}.ft-row.selected.active{background:var(--accent-dim);color:var(--accent)}.run-files{display:flex;min-width:0;min-height:0;overflow:hidden}.run-files .filetree{flex:0 1 220px;min-width:0;max-width:240px;border-right:1px solid var(--border)}.filecontent{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.filecontent.empty{align-items:center;justify-content:center;color:var(--faint);font-size:var(--fs-body)}.fc-head{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border);background:var(--surface)}.fc-ico{display:grid;place-items:center;flex:none;color:var(--muted)}.fc-ico svg{width:15px;height:15px}.fc-name{font-family:var(--font-mono);font-size:var(--fs-caption);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-live{margin-left:auto;display:flex;align-items:center;gap:6px;flex:none;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--accent)}.fc-live .ft-spinner{margin:0}.fc-body{flex:1;min-height:0;margin:0;overflow:auto;padding:14px 16px;font-family:var(--font-mono);font-size:var(--fs-caption);line-height:1.6;color:var(--text);white-space:pre;-moz-tab-size:2;tab-size:2}.fc-body code{font-family:inherit}.btn-stop{display:inline-flex;align-items:center;gap:7px;background:var(--danger-dim);color:var(--danger);border:1px solid var(--danger);border-radius:var(--r2);font-family:var(--font-sans);font-weight:700;font-size:var(--fs-ui);padding:7px 15px;transition:filter .16s var(--ease),transform .16s var(--ease)}.btn-stop svg{width:15px;height:15px}.btn-stop:hover{filter:brightness(1.12)}.btn-stop:active{transform:translateY(1px)}.btn-stop:disabled{opacity:.5;cursor:not-allowed}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 #c6f24f80}70%{box-shadow:0 0 0 6px #c6f24f00}to{box-shadow:0 0 #c6f24f00}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:860px){.auth-page{grid-template-columns:1fr}.auth-hero{display:none}.workspace-body.with-preview{grid-template-columns:minmax(0,360px) minmax(0,1fr)}}.balance-chip{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.02em;color:var(--accent);padding:4px 11px;border:1px solid var(--accent-line);border-radius:var(--r-pill);background:var(--accent-dim);white-space:nowrap}.balance-chip.low{color:var(--danger);border-color:var(--danger);background:var(--danger-dim)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:center;justify-content:center;background:#0506089e;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:20px}.modal-shell{width:100%;max-width:520px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r3, 16px);box-shadow:0 24px 60px -20px #000000b3;padding:30px 32px 32px;animation:modal-pop .32s var(--ease) both}@keyframes modal-pop{0%{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.modal-sub{color:var(--muted);font-size:var(--fs-ui);line-height:var(--lh-body);margin-bottom:24px}@media(max-width:520px){.modal-shell{padding:24px 20px 26px}}.welcome-modal{max-width:420px;text-align:center}.welcome-hero{display:flex;flex-direction:column;align-items:center;gap:6px}.welcome-logo{width:38px;height:38px}.welcome-hero h2{font-size:var(--fs-h3, 18px);font-weight:800;color:var(--text);margin-top:6px}.welcome-hero .modal-sub{margin-bottom:0}.welcome-steps{list-style:none;margin:20px 0 22px;padding:0;display:flex;flex-direction:column;gap:12px;text-align:left}.welcome-step{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r2)}.welcome-step-num{flex-shrink:0;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:var(--fs-caption, 12px);font-weight:700;color:var(--accent-ink);background:var(--accent)}.welcome-step-title{font-size:var(--fs-ui);font-weight:600;color:var(--text)}.welcome-step-desc{font-size:var(--fs-caption, 12px);color:var(--muted);margin-top:2px}.welcome-cta{width:100%;justify-content:center;padding:12px}.examples{margin-bottom:36px}.example-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(264px,1fr));gap:14px}.example-card{display:flex;flex-direction:column;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:var(--r3);overflow:hidden;cursor:pointer;padding:0;transition:border-color .18s var(--ease),transform .18s var(--ease),box-shadow .18s var(--ease)}.example-card:hover{border-color:var(--border-strong);transform:translateY(-3px);box-shadow:var(--shadow-2)}.example-cover{position:relative;aspect-ratio:16 / 9;display:grid;place-items:center;border-bottom:1px solid var(--border);overflow:hidden}.example-cover-emoji{font-size:40px;filter:saturate(1.1)}.example-shot{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:top center;z-index:1}.example-card:hover .example-shot{transform:scale(1.03);transition:transform .4s var(--ease)}.example-cat{position:absolute;top:10px;left:12px;z-index:2;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;background:#0506088c;border-radius:var(--r-pill);padding:3px 9px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.example-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:7px}.example-body h3{font-size:15px;font-weight:700;color:var(--text);margin:0}.example-body p{font-size:13px;color:var(--muted);margin:0;line-height:1.55}.example-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:3px}.example-tag{font-family:var(--font-mono);font-size:10.5px;color:var(--faint);border:1px solid var(--border);border-radius:var(--r-pill);padding:2px 8px}.demo-modal{width:100%;max-width:920px;height:min(86vh,760px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r3);box-shadow:0 24px 60px -20px #000000b3;overflow:hidden}.demo-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border)}.demo-modal-head h2{font-size:17px;font-weight:700;color:var(--text);margin:0}.demo-modal-head p{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.5}.demo-modal-stage{flex:1;min-height:0;background:var(--surface-2)}.demo-poster{position:relative;height:100%;overflow:auto;background:var(--surface-2)}.demo-poster-img{display:block;width:100%;height:auto}.demo-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 20px;border-top:1px solid var(--border)}.demo-modal-hint{font-size:12.5px;color:var(--muted)}.demo-modal-foot .btn-primary{white-space:nowrap}@media(max-width:560px){.demo-modal-hint{display:none}.demo-modal-foot{justify-content:flex-end}}.gallery-modal{width:100%;max-width:1040px;height:min(86vh,800px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r3);box-shadow:0 24px 60px -20px #000000b3;overflow:hidden}.gallery-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--border)}.gallery-modal-head h2{font-size:17px;font-weight:700;color:var(--text);margin:0}.gallery-modal-head p{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.5}.gallery-modal-body{flex:1;min-height:0;overflow-y:auto;padding:20px 22px 24px}.demo-overlay{z-index:90}
