:root{--c-bg: #0f1115;--c-surface-1: #15181e;--c-surface-2: #1b1f27;--c-surface-3: #232934;--c-border: #2b313d;--c-border-strong: #3c4656;--c-text: #e8eaf0;--c-text-dim: #9aa3b2;--c-text-muted: #6b7385;--c-accent: #f97316;--c-accent-hover: #fb8c3c;--c-accent-soft: rgba(249, 115, 22, .16);--c-on-accent: #0b0d12;--c-success: #22c55e;--c-success-soft: rgba(34, 197, 94, .12);--c-danger: #ef4444;--c-danger-soft: rgba(239, 68, 68, .12);--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 32px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 16px;--r-full: 999px;--sh-1: 0 1px 2px rgba(0, 0, 0, .3);--sh-2: 0 6px 20px rgba(0, 0, 0, .35);--c-overlay: rgba(0, 0, 0, .55);--sh-pop: 0 12px 40px var(--c-overlay);--cover-todo: linear-gradient(135deg, #f97316, #b45309);--cover-dashboard: linear-gradient(135deg, #3b82f6, #1e3a8a);--cover-ecommerce: linear-gradient(135deg, #ec4899, #9d174d);--cover-site: linear-gradient(135deg, #22c55e, #14532d);--cover-default: linear-gradient(135deg, #64748b, #1e293b);--cover-ink: rgba(255, 255, 255, .92);--cover-grid: rgba(255, 255, 255, .08);--cover-shadow: rgba(0, 0, 0, .35);--dur-fast: .12s;--dur: .2s;--ease: cubic-bezier(.2, .7, .3, 1);--header-h: 56px;--font-mono: ui-monospace, "SF Mono", Menlo, monospace;--bg: var(--c-bg);--panel: var(--c-surface-2);--border: var(--c-border);--text: var(--c-text);--text-dim: var(--c-text-dim);--accent: var(--c-accent);--dim: var(--c-text-dim)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif}#root{min-height:100vh}.home{position:relative;max-width:720px;margin:0 auto;padding:15vh 24px 48px}.home-brand{color:var(--accent);font-weight:700;letter-spacing:.02em;margin-bottom:24px}.home-title{font-size:var(--fs-3xl);margin:0 0 8px}.home-subtitle{color:var(--text-dim);margin:0 0 32px}.home-composer{display:flex;flex-direction:column;gap:12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px}.home-composer textarea{background:transparent;border:none;outline:none;resize:vertical;color:var(--text);font:inherit;font-size:var(--fs-md)}.home-composer button{align-self:flex-end;background:var(--accent);color:var(--c-on-accent);border:none;border-radius:var(--r-md);padding:10px 24px;font-size:var(--fs-md);font-weight:600;cursor:pointer}.home-composer button:disabled{opacity:.6;cursor:default}.home-composer-row{align-items:center;display:flex;justify-content:space-between;gap:12px}.home-competition{align-items:center;color:var(--text-dim);cursor:pointer;display:flex;font-size:var(--fs-sm);gap:6px}.home-competition input{accent-color:var(--accent);cursor:pointer}.home-error{color:var(--c-danger);margin-top:12px;font-size:var(--fs-md)}.home-examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.chip{background:var(--panel);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--r-full);padding:6px 14px;font-size:var(--fs-sm);cursor:pointer}.chip:hover{color:var(--text);border-color:var(--accent)}.workspace{display:flex;flex-direction:column;height:100vh}.ws-header{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.ws-back{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:var(--r-md);width:32px;height:32px;cursor:pointer}.ws-title{display:flex;align-items:center;gap:12px;min-width:0}.ws-actions{margin-left:auto;display:flex;gap:8px}.ws-actions button,.ws-export{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-md);padding:6px 14px;font-size:var(--fs-sm);text-decoration:none;cursor:pointer}.ws-prompt{font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:50vw}.ws-status{font-size:var(--fs-xs);padding:2px 10px;border-radius:var(--r-full);border:1px solid var(--border);color:var(--text-dim)}.ws-status-ready{color:var(--c-success);border-color:var(--c-success)}.ws-status-failed{color:var(--c-danger);border-color:var(--c-danger)}.ws-body{flex:1;display:grid;grid-template-columns:400px 1fr;min-height:0}.ws-timeline{border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.ws-timeline-scroll{flex:1;overflow-y:auto;padding:16px}.ws-chat{border-top:1px solid var(--border);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.ws-chips{display:flex;flex-wrap:wrap;gap:6px}.ws-chip{background:transparent;border:1px solid var(--border);border-radius:var(--r-full);color:var(--text-dim);cursor:pointer;font-size:var(--fs-xs);padding:4px 10px}.ws-chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ws-chat-form{display:flex;gap:8px}.ws-chat-form input{flex:1;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-md);padding:8px 12px}.ws-chat-form input:focus{border-color:var(--accent);outline:none}.ws-chat-form button{background:var(--accent);border:none;border-radius:var(--r-md);color:var(--c-on-accent);cursor:pointer;font-size:var(--fs-md);padding:8px 16px}.ws-chat-form button:disabled,.ws-chip:disabled{cursor:not-allowed;opacity:.5}.ws-chat-error{color:var(--c-danger);font-size:var(--fs-xs)}.auth-gate{align-items:center;color:var(--text-dim);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed}.ws-user{align-self:center;color:var(--text-dim);font-size:var(--fs-xs);margin-right:4px}.home-tabs{display:flex;gap:4px;margin-bottom:24px}.home-tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-dim);cursor:pointer;font-size:var(--fs-md);padding:6px 12px}.dash{display:flex;flex-direction:column;gap:14px}.dash-search{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-md);padding:8px 12px;width:100%}.dash-search:focus{border-color:var(--accent);outline:none}.dash-empty{color:var(--text-dim);padding:40px 0;text-align:center}.dash-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.dash-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);display:flex;flex-direction:column}.dash-open{background:transparent;border:none;color:var(--text);cursor:pointer;display:flex;flex:1;flex-direction:column;gap:8px;padding:14px;text-align:left}.dash-name{font-size:var(--fs-md);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-rename{background:var(--bg);border:1px solid var(--accent);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);padding:4px 8px;width:100%}.dash-time{color:var(--text-dim);font-size:var(--fs-xs)}.dash-actions{border-top:1px solid var(--border);display:flex;gap:2px;padding:4px}.dash-actions button{background:transparent;border:none;border-radius:var(--r-sm);color:var(--text-dim);cursor:pointer;flex:1;font-size:var(--fs-md);padding:6px 0}.dash-actions button:hover{background:var(--bg);color:var(--text)}.dash-actions button.dash-on{color:var(--accent)}.pub-overlay{align-items:center;background:var(--c-overlay);display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:30}.pub-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:14px;max-width:420px;padding:20px;width:90%}.pub-head{align-items:center;display:flex;justify-content:space-between}.pub-head h2{font-size:var(--fs-lg);margin:0}.pub-close{background:transparent;border:none;color:var(--text-dim);cursor:pointer;font-size:var(--fs-xl)}.pub-qr{align-self:center;background:#fff;border-radius:var(--r-md);padding:8px}.pub-link-row{align-items:center;display:flex;gap:8px}.pub-link{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);flex:1;font-size:var(--fs-xs);overflow:hidden;padding:8px 10px;text-overflow:ellipsis;white-space:nowrap}.pub-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}.pub-unpublished{margin:0;color:var(--text-dim);font-size:var(--fs-sm);line-height:1.5}.pub-history{border-top:1px solid var(--border);display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;max-height:140px;overflow-y:auto;padding:10px 0 0}.pub-history li{align-items:center;display:flex;font-size:var(--fs-xs);gap:10px}.pub-version{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--accent);padding:2px 8px}.pub-history time{color:var(--text-dim)}.timeline{display:flex;flex-direction:column;gap:8px}.tl-user-bubble{align-self:flex-end;background:var(--c-surface-3);border:1px solid var(--c-border-strong);border-radius:12px 12px 4px;padding:10px 14px;font-size:var(--fs-md);max-width:90%}.tl-agent{display:flex;align-items:center;gap:8px;margin-top:10px}.tl-avatar{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:700;color:var(--c-on-accent)}.tl-name{font-weight:600;font-size:var(--fs-md)}.tl-role{color:var(--text-dim);font-size:var(--fs-xs)}.tl-item{margin-left:34px;font-size:var(--fs-sm);color:var(--text-dim);display:flex;gap:8px;align-items:baseline}.tl-type{color:var(--text)}.tl-path{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-sm);padding:1px 8px;font-size:var(--fs-xs)}.tl-error .tl-type{color:var(--c-danger)}.tl-typing{margin-left:34px;color:var(--text-dim);font-size:var(--fs-sm);animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{50%{opacity:.4}}.preview{display:flex;flex-direction:column;width:100%;height:100%}.preview-bar{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--panel)}.device-toggle{display:flex;gap:4px}.device-toggle button,.preview-actions button,.preview-actions a{background:none;border:1px solid var(--border);color:var(--text-dim);border-radius:var(--r-sm);padding:4px 12px;font-size:var(--fs-sm);text-decoration:none;cursor:pointer}.device-toggle button.on{color:var(--accent);border-color:var(--accent)}.preview-actions{display:flex;gap:6px}.preview-stage{flex:1;display:flex;justify-content:center;background:var(--c-bg);padding:16px}.frame{width:100%;max-width:1200px;height:100%;border:1px solid var(--border);border-radius:var(--r-lg);background:#fff;transition:width .2s ease}.frame.mobile{width:390px;max-width:390px;border-radius:var(--r-xl)}.ws-version-bar{background:var(--panel);border-bottom:1px solid var(--border);padding:8px 12px}.ws-version-bar select{background:var(--bg);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);padding:6px 10px}.contest{display:flex;flex-direction:column;height:100%;width:100%}.contest-head{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;padding:10px 16px}.contest-head h2{font-size:var(--fs-lg);margin:0}.contest-running{animation:pulse 1.6s ease-in-out infinite;color:var(--text-dim);font-size:var(--fs-sm)}.contest-all-failed{background:var(--c-danger-soft);border-bottom:1px solid var(--border);color:var(--text-dim);font-size:var(--fs-sm);line-height:1.6;padding:10px 16px}.contest-grid{display:grid;flex:1;gap:12px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));overflow:auto;padding:16px}.contest-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);display:flex;flex-direction:column;gap:8px;padding:10px}.contest-card.contest-failed{opacity:.55}.contest-provider{color:var(--accent);font-size:var(--fs-sm);font-weight:600}.contest-frame{background:#fff;border:1px solid var(--border);border-radius:var(--r-md);height:240px;width:100%}.contest-wait{align-items:center;background:var(--bg);border:1px dashed var(--border);border-radius:var(--r-md);color:var(--text-dim);display:flex;height:240px;justify-content:center}.contest-scores{color:var(--text-dim);display:flex;font-size:var(--fs-xs);gap:10px}.contest-comment{background:var(--bg);border-radius:var(--r-sm);color:var(--text-dim);font-size:var(--fs-xs);line-height:1.5;padding:6px 8px}.contest-pick{background:var(--accent);border:none;border-radius:var(--r-md);color:var(--c-on-accent);cursor:pointer;font-size:var(--fs-sm);padding:8px 0}.contest-pick:disabled{cursor:default;opacity:.45}.drawer-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-overlay);display:flex;justify-content:flex-end;z-index:20}.files-drawer{background:var(--panel);width:70vw;max-width:900px;height:100%;display:flex;flex-direction:column;border-left:1px solid var(--border)}.fd-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}.fd-head button{background:none;border:none;color:var(--dim);font-size:var(--fs-xl);cursor:pointer}.fd-body{flex:1;display:grid;grid-template-columns:240px 1fr;min-height:0}.fd-list{list-style:none;margin:0;padding:8px;border-right:1px solid var(--border);overflow-y:auto}.fd-list button{width:100%;text-align:left;background:none;border:none;color:var(--dim);padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);font-family:var(--font-mono);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fd-list button.on,.fd-list button:hover{background:var(--c-surface-3);color:var(--text)}.fd-view{display:flex;flex-direction:column;min-height:0}.fd-toolbar{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border)}.fd-toolbar code{font-size:var(--fs-sm);color:var(--text-dim)}.fd-toolbar button{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:var(--r-sm);padding:4px 12px;font-size:var(--fs-xs);cursor:pointer}.fd-view pre{flex:1;overflow:auto;margin:0;padding:14px;font-size:var(--fs-sm);line-height:1.55;font-family:var(--font-mono);color:var(--text)}.fd-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--dim)}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;gap:12px;min-height:58px;padding:8px 20px;border-bottom:1px solid var(--border);background:var(--c-surface-2)}.app-logo{border:0;background:transparent;color:var(--accent);font:inherit;font-size:var(--fs-lg);font-weight:750;cursor:pointer}.workspace-select{min-width:150px;max-width:220px}.app-nav{display:flex;align-items:center;gap:2px;margin-left:14px}.app-nav button{border:0;background:transparent;color:var(--text-dim);padding:9px 12px;cursor:pointer;white-space:nowrap;font:inherit;font-size:var(--fs-sm)}.app-nav button.active{color:var(--text);box-shadow:inset 0 -2px var(--c-accent)}.app-email{margin-left:auto;color:var(--text-dim);font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.invite-banner>button:not(.primary-action),.startup-error button{border:1px solid var(--border);background:transparent;color:var(--text);border-radius:var(--r-sm);padding:7px 11px;cursor:pointer}.workspace-select,.manage-page select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-3);color:var(--text);padding:8px 10px;font:inherit;font-size:var(--fs-sm)}.app-shell>.workspace{height:calc(100vh - 58px);min-height:540px}.app-notice,.invite-banner,.startup-error{display:flex;align-items:center;gap:14px;padding:11px 24px;background:var(--c-success-soft);color:var(--c-success);font-size:var(--fs-sm)}.app-notice button{margin-left:auto;border:0;background:transparent;color:inherit;cursor:pointer;font-size:var(--fs-xl)}.invite-banner button:last-child{margin-left:auto}.startup-error,.app-notice--error{background:var(--c-danger-soft);color:var(--c-danger)}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(260px,1fr) minmax(340px,1fr);background:var(--c-bg)}.auth-form-wrap{width:min(420px,calc(100% - 40px));margin:auto;padding:56px 0}.auth-form-wrap h1{font-size:var(--fs-2xl);margin:0 0 20px}.auth-description{margin:-8px 0 24px;color:var(--text-dim);line-height:1.6;font-size:var(--fs-md)}.auth-form,.manage-form{display:flex;flex-direction:column;gap:16px}.auth-form label,.manage-form label,.invite-form label{display:flex;flex-direction:column;gap:7px;color:var(--c-text);font-size:var(--fs-sm);font-weight:550}.auth-form input,.manage-form input,.manage-form textarea,.invite-form input{width:100%;min-height:42px;border:1px solid var(--c-border-strong);border-radius:var(--r-sm);background:var(--c-surface-3);color:var(--text);padding:9px 11px;font:inherit;outline:none}.auth-form input:focus,.manage-form input:focus,.manage-form textarea:focus,.invite-form input:focus,.workspace-select:focus{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent-soft)}.manage-form textarea{min-height:90px;resize:vertical}.primary-action{border:0;border-radius:var(--r-sm);background:var(--c-accent);color:var(--c-on-accent);font:inherit;font-weight:650;padding:10px 17px;min-height:40px;cursor:pointer}.primary-action:disabled,button:disabled{cursor:not-allowed;opacity:.55}.auth-form .primary-action{width:100%;margin-top:3px}.auth-links{display:flex;gap:18px;margin-top:22px}.auth-links button{background:none;border:0;color:var(--c-accent-hover);padding:0;cursor:pointer;font:inherit;font-size:var(--fs-sm)}.auth-alert,.auth-notice{margin:0;padding:10px 12px;border-radius:var(--r-sm);line-height:1.45;font-size:var(--fs-sm)}.auth-alert{color:var(--c-danger);background:var(--c-danger-soft)}.auth-notice{color:var(--c-success);background:var(--c-success-soft)}.auth-footnote{border-top:1px solid var(--border);padding-top:20px;margin-top:36px;color:var(--text-dim);font-size:var(--fs-xs);line-height:1.6}.manage-page{width:min(960px,100%);margin:0 auto;padding:34px 28px 80px}.manage-heading{border-bottom:1px solid var(--border);padding-bottom:20px;margin-bottom:26px}.manage-heading h1{font-size:var(--fs-2xl);margin:0 0 7px}.manage-heading p,.manage-hint,.danger-zone p{color:var(--text-dim);font-size:var(--fs-sm);line-height:1.6;margin:0}.manage-section{padding:0 0 30px;margin-bottom:30px;border-bottom:1px solid var(--border)}.manage-section h2,.manage-form h2{font-size:var(--fs-lg);margin:0 0 17px}.manage-list{border-top:1px solid var(--border)}.manage-row{display:flex;align-items:center;gap:16px;min-height:64px;padding:11px 2px;border-bottom:1px solid var(--border)}.manage-row>div:first-child{flex:1;min-width:0}.manage-row strong{display:block;font-size:var(--fs-md);overflow-wrap:anywhere}.manage-row small{display:block;color:var(--text-dim);font-size:var(--fs-xs);margin-top:5px;overflow-wrap:anywhere}.current-badge{color:var(--c-accent);font-size:var(--fs-xs);border:1px solid var(--c-border-strong);padding:3px 8px;border-radius:var(--r-sm)}.manage-form{max-width:430px}.manage-form .btn,.manage-form .primary-action{align-self:flex-start}.row-actions{display:flex;align-items:center;gap:12px}.invite-form{display:grid;grid-template-columns:minmax(220px,1fr) 150px auto;align-items:end;gap:12px}.invite-form .btn,.invite-form .primary-action{white-space:nowrap}.manage-hint{margin-top:11px}.empty-state{color:var(--text-dim);font-size:var(--fs-sm)}.danger-zone .btn{margin-top:12px}button,a,input,textarea,select{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}:where(button,a,[tabindex]):focus-visible{outline:2px solid var(--c-accent);outline-offset:2px;border-radius:var(--r-sm)}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:36px;padding:0 var(--sp-4);border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-3);color:var(--c-text);font:inherit;font-size:var(--fs-sm);font-weight:550;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--c-surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-on-accent);font-weight:650}.btn--primary:hover:not(:disabled){background:var(--c-accent-hover);border-color:var(--c-accent-hover)}.btn--ghost{background:transparent;border-color:var(--c-border);color:var(--c-text-dim)}.btn--ghost:hover:not(:disabled){background:var(--c-surface-3);color:var(--c-text)}.btn--danger{background:transparent;border-color:var(--c-danger);color:var(--c-danger)}.btn--danger:hover:not(:disabled){background:var(--c-danger-soft)}.btn--sm{height:30px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.field{display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--fs-sm);font-weight:550;color:var(--c-text)}.field input,.field textarea,.field select{width:100%;min-height:40px;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-3);color:var(--c-text);padding:9px var(--sp-3);font:inherit;font-size:var(--fs-md);font-weight:400;outline:none}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.card{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-lg)}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border:1px solid var(--c-border-strong);border-radius:var(--r-full);background:var(--c-surface-3);color:var(--c-text-dim);font-size:var(--fs-xs);font-weight:550;line-height:1;white-space:nowrap}.badge--accent{color:var(--c-accent);border-color:var(--c-accent-soft);background:var(--c-accent-soft)}.badge--success{color:var(--c-success);border-color:transparent;background:var(--c-success-soft)}.badge--danger{color:var(--c-danger);border-color:transparent;background:var(--c-danger-soft)}.badge--muted{color:var(--c-text-muted);background:transparent}.tabs{display:inline-flex;gap:var(--sp-1);padding:var(--sp-1);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-full)}.tab{border:0;background:transparent;color:var(--c-text-dim);font:inherit;font-size:var(--fs-sm);font-weight:550;padding:7px var(--sp-4);border-radius:var(--r-full);cursor:pointer}.tab:hover{color:var(--c-text)}.tab.is-active{background:var(--c-accent);color:var(--c-on-accent)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--r-full);background:var(--c-accent-soft);color:var(--c-accent);font-size:var(--fs-xs);font-weight:700;text-transform:uppercase}.menu{position:relative;margin-left:auto}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39}.menu-trigger .app-email{margin-left:0;max-width:160px}.menu-trigger{display:inline-flex;align-items:center;gap:var(--sp-2);border:1px solid transparent;background:transparent;color:var(--c-text);padding:4px 8px;border-radius:var(--r-full);cursor:pointer}.menu-trigger:hover{background:var(--c-surface-3)}.menu-panel{position:absolute;right:0;top:calc(100% + 8px);min-width:220px;padding:var(--sp-1);background:var(--c-surface-3);border:1px solid var(--c-border-strong);border-radius:var(--r-lg);box-shadow:var(--sh-pop);z-index:40;display:flex;flex-direction:column}.menu-header{padding:var(--sp-2) 10px;color:var(--c-text-muted);font-size:var(--fs-xs);overflow-wrap:anywhere}.menu-panel button{display:flex;align-items:center;gap:var(--sp-2);width:100%;border:0;background:transparent;color:var(--c-text);text-align:left;padding:9px 10px;border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);cursor:pointer}.menu-panel button:hover{background:var(--c-surface-2)}.menu-panel button.is-danger{color:var(--c-danger)}.app-header{position:sticky;top:0;z-index:50;min-height:var(--header-h);padding:0 var(--sp-5);gap:var(--sp-3);background:var(--c-surface-1);border-bottom:1px solid var(--c-border)}.app-logo{display:inline-flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-lg);letter-spacing:-.01em}.app-nav{gap:var(--sp-1);margin-left:var(--sp-4)}.app-nav button{padding:7px var(--sp-3);border-radius:var(--r-md);font-weight:550}.app-nav button:hover{background:var(--c-surface-3);color:var(--c-text)}.app-nav button.active{color:var(--c-accent);background:var(--c-accent-soft);box-shadow:none}.app-shell>.workspace{height:calc(100vh - var(--header-h))}.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:center;gap:var(--sp-5);padding:var(--sp-10);overflow:hidden;background:radial-gradient(120% 80% at 0% 0%,var(--c-accent-soft),transparent 60%),var(--c-surface-1);border-right:1px solid var(--c-border)}.auth-brand:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--c-border) 1px,transparent 1px),linear-gradient(90deg,var(--c-border) 1px,transparent 1px);background-size:44px 44px;opacity:.25;pointer-events:none}.auth-brand>*{position:relative;z-index:1}.auth-brand-logo{color:var(--c-accent);font-size:var(--fs-2xl);font-weight:800;letter-spacing:-.02em}.auth-brand-title{margin:0;font-size:var(--fs-3xl);line-height:1.15;letter-spacing:-.02em;max-width:12em}.auth-brand-sub{margin:0;color:var(--c-text-dim);font-size:var(--fs-lg);line-height:1.6;max-width:26em}.auth-brand-points{list-style:none;margin:var(--sp-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--sp-3);color:var(--c-text-dim);font-size:var(--fs-md)}.auth-brand-points li{display:flex;align-items:center;gap:var(--sp-3)}.auth-brand-points li:before{content:"";width:6px;height:6px;border-radius:var(--r-full);background:var(--c-accent);flex:none}.auth-form-wrap{width:min(440px,calc(100% - 40px));margin:auto;padding:var(--sp-8);background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-2)}.auth-form-wrap h1{font-size:var(--fs-2xl);letter-spacing:-.01em;margin:0 0 var(--sp-4)}.home{width:100%;max-width:760px;padding:12vh 24px 64px}.home-brand{display:inline-flex;align-items:center;gap:var(--sp-2);padding:4px 12px;margin-bottom:var(--sp-5);border:1px solid var(--c-accent-soft);border-radius:var(--r-full);background:var(--c-accent-soft);color:var(--c-accent);font-size:var(--fs-xs);font-weight:650;letter-spacing:.02em}.home-title{font-size:var(--fs-3xl);line-height:1.15;letter-spacing:-.02em;margin:0 0 var(--sp-3)}.home-subtitle{font-size:var(--fs-lg);line-height:1.6;margin:0 0 var(--sp-8)}.home-tabs{margin-bottom:var(--sp-6)}.home-composer{gap:var(--sp-4);padding:var(--sp-5);border-radius:var(--r-xl);box-shadow:var(--sh-2)}.home-composer:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft),var(--sh-2)}.home-composer textarea{font-size:var(--fs-lg);line-height:1.6}.home-composer button{border-radius:var(--r-md);font-size:var(--fs-md);font-weight:650;padding:10px var(--sp-6)}.home-composer button:hover:not(:disabled){background:var(--c-accent-hover)}.chip{transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.chip:hover{background:var(--c-surface-3);transform:translateY(-1px)}.dash-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(252px,1fr))}.dash-card{border-radius:var(--r-lg);overflow:hidden;background:var(--c-surface-2);border-color:var(--c-border);box-shadow:var(--sh-1);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.dash-card:hover{transform:translateY(-3px);border-color:var(--c-border-strong);box-shadow:0 12px 28px #00000047}.dash-cover{position:relative;height:148px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-3xl);font-weight:800;color:var(--cover-ink);overflow:hidden;isolation:isolate}.dash-cover:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--cover-grid) 1px,transparent 1px),linear-gradient(90deg,var(--cover-grid) 1px,transparent 1px);background-size:22px 22px;opacity:.6;pointer-events:none;z-index:2}.dash-cover span{position:relative;z-index:3;text-shadow:0 2px 12px var(--cover-shadow)}.dash-cover small{position:absolute;bottom:12px;z-index:3;font-size:var(--fs-xs);font-weight:550;opacity:.82}.dash-cover-frame{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff}.dash-cover-frame iframe{width:100%;height:100%;border:0;pointer-events:none;transform:scale(1.01)}.dash-cover-live{position:absolute!important;right:10px;bottom:10px;z-index:4!important;display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border:1px solid rgba(255,255,255,.24);border-radius:var(--r-full);background:#0f1115b8;color:#fff;font-size:10px!important;font-weight:600!important;text-shadow:none!important;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.dash-cover-live:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--c-success);box-shadow:0 0 0 3px #22c55e2e}.cover-todo{background:var(--cover-todo)}.cover-dashboard{background:var(--cover-dashboard)}.cover-ecommerce{background:var(--cover-ecommerce)}.cover-site{background:var(--cover-site)}.cover-default{background:var(--cover-default)}.dash-open{gap:var(--sp-3);min-height:132px;padding:var(--sp-4) var(--sp-5) var(--sp-5)}.dash-meta{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dash-name{font-size:var(--fs-lg);font-weight:650;letter-spacing:0}.dash-time{margin-top:auto;color:var(--c-text-muted)}.dash-search{height:42px;max-width:520px;border-radius:var(--r-lg);background:var(--c-surface-1);padding-inline:var(--sp-4)}.dash-search::placeholder{color:var(--c-text-muted)}.dash-actions{border-top:1px solid var(--c-border)}.dash-actions button{height:34px;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.dash-actions button:hover{background:var(--c-surface-3)}.ws-header{min-height:var(--header-h);padding:8px var(--sp-4);background:var(--c-surface-1)}.ws-back{display:inline-flex;align-items:center;justify-content:center;transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.ws-back:hover{background:var(--c-surface-3);color:var(--c-text)}.ws-actions button,.ws-export{height:32px;display:inline-flex;align-items:center}.ws-actions button:hover,.ws-export:hover{border-color:var(--c-accent);color:var(--c-accent)}.ws-chat-form input:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft);outline:none}.tl-user-bubble{border-radius:var(--r-lg) var(--r-lg) var(--r-sm) var(--r-lg);box-shadow:var(--sh-1)}.tl-agent{margin-top:var(--sp-4)}.tl-item{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--r-md);padding:8px 12px;align-items:center}.tl-error{border-color:var(--c-danger)}.preview-stage{background:var(--c-surface-1);box-shadow:inset 0 1px 0 var(--c-border)}.frame{border-radius:var(--r-lg);box-shadow:var(--sh-2)}.frame.mobile{border-radius:var(--r-xl)}.fd-list button{font-size:var(--fs-sm)}.fd-view pre{font-size:var(--fs-sm);line-height:1.65}.manage-row{min-height:60px;padding:12px 4px}.manage-row .btn{border-radius:var(--r-md)}.manage-row .btn:hover:not(:disabled){border-color:var(--c-accent);color:var(--c-accent)}.current-badge{border-radius:var(--r-full);padding:3px 10px}.pub-panel{background:var(--c-surface-2);border-color:var(--c-border-strong);border-radius:var(--r-xl);box-shadow:var(--sh-pop);gap:var(--sp-4);padding:var(--sp-6)}.pub-head h2{font-size:var(--fs-xl);letter-spacing:-.01em}.pub-close{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--r-sm);font-size:var(--fs-xl);line-height:1}.pub-close:hover{background:var(--c-surface-3);color:var(--c-text)}.pub-qr{border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:var(--sp-3)}.pub-link{background:var(--c-surface-3);border-color:var(--c-border-strong);font-family:var(--font-mono);padding:9px var(--sp-3)}.pub-actions{gap:var(--sp-3)}.pub-history{border-top-color:var(--c-border);gap:var(--sp-2)}.pub-history li{padding:2px 0}.pub-version{background:var(--c-accent-soft);border-color:transparent;border-radius:var(--r-full);font-weight:600}.contest-head{min-height:var(--header-h);padding:0 var(--sp-5);background:var(--c-surface-1)}.contest-grid{gap:var(--sp-4);padding:var(--sp-5)}.contest-card{background:var(--c-surface-2);border-radius:var(--r-lg);gap:var(--sp-3);padding:var(--sp-3)}.contest-card:hover{border-color:var(--c-border-strong)}.contest-provider{text-transform:capitalize}.contest-frame{border-radius:var(--r-md);box-shadow:var(--sh-1)}.contest-wait{background:var(--c-surface-1);border-color:var(--c-border-strong)}.contest-scores{gap:var(--sp-2)}.contest-scores span{background:var(--c-surface-3);border-radius:var(--r-full);padding:2px 9px}.contest-comment{background:var(--c-surface-1);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:var(--sp-2) 10px}.contest-pick{border-radius:var(--r-md);font-weight:600;padding:9px 0}.contest-pick:hover:not(:disabled){background:var(--c-accent-hover)}.dash-search{background:var(--c-surface-2);border-color:var(--c-border-strong);min-height:40px;padding:9px var(--sp-4)}.dash-search:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-soft)}.dash-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-10) 0;text-align:center}.dash-empty-title{color:var(--c-text);font-size:var(--fs-lg);font-weight:600}.dash-empty p{margin:0;max-width:34em;color:var(--c-text-dim);font-size:var(--fs-md);line-height:1.6}.manage-list{border-top-color:var(--c-border)}.manage-row{border-bottom-color:var(--c-border);gap:var(--sp-4);min-height:56px;padding:var(--sp-3) 0}.manage-row select{min-height:32px;border:1px solid var(--c-border-strong);border-radius:var(--r-md);background:var(--c-surface-3);color:var(--c-text);font:inherit;font-size:var(--fs-sm);padding:0 var(--sp-2)}.manage-row .btn{flex:none}.manage-page>.manage-form{margin-top:var(--sp-8)}@media(max-width:820px){.app-header{flex-wrap:wrap;padding:8px 14px 0;gap:8px}.app-nav{order:5;width:100%;margin-left:0;overflow-x:auto}.app-nav button{flex:0 0 auto}.app-email{display:none}.menu{margin-left:auto}.workspace-select{flex:1;max-width:none}.app-shell>.workspace{height:calc(100vh - 98px)}.auth-page{grid-template-columns:1fr}.auth-brand{min-height:0;padding:var(--sp-6) var(--sp-5);border-right:0;border-bottom:1px solid var(--c-border)}.auth-brand-title{font-size:var(--fs-xl)}.auth-brand-sub,.auth-brand-points{display:none}.auth-form-wrap{align-self:start;padding:var(--sp-6);margin:var(--sp-6) auto var(--sp-10)}.invite-form{grid-template-columns:1fr 130px}.invite-form .btn,.invite-form .primary-action{grid-column:1 / -1;justify-self:start}}@media(max-width:560px){.manage-page{padding:25px 18px 60px}.manage-row{align-items:flex-start;flex-wrap:wrap}.row-actions{width:100%;justify-content:flex-end}.invite-form{grid-template-columns:1fr}.invite-form .btn,.invite-form .primary-action{grid-column:1}.ws-header{flex-wrap:wrap}.ws-actions{width:100%;justify-content:flex-end}.ws-body{grid-template-columns:1fr;grid-template-rows:minmax(240px,1fr) minmax(280px,1fr)}.ws-timeline{border-right:0;border-bottom:1px solid var(--border)}.files-drawer{width:100vw}.fd-body{grid-template-columns:120px 1fr}}
