:root{--bg: #0a0c11;--bg-1: #10131b;--bg-2: #161a24;--bg-3: #1c2130;--bg-hover: #232a3a;--border: #242a37;--border-strong: #333c4e;--text: #e8ebf2;--text-muted: #9aa4b6;--text-dim: #6a7386;--accent: #7c6cff;--accent-hover: #9385ff;--accent-soft: rgba(124, 108, 255, .15);--accent-border: rgba(124, 108, 255, .45);--success: #34d399;--success-soft: rgba(52, 211, 153, .14);--warning: #f5b545;--danger: #f87171;--danger-soft: rgba(248, 113, 113, .13);--radius: 12px;--radius-sm: 9px;--radius-xs: 6px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow: 0 10px 34px rgba(0, 0, 0, .45);--mono: "SFMono-Regular", ui-monospace, "JetBrains Mono", Consolas, monospace;color:var(--text);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--bg)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .06s ease,box-shadow .16s ease}button:active{transform:translateY(1px)}button:disabled{cursor:not-allowed;opacity:.55}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;background-clip:content-box;border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:#445069;background-clip:content-box}.workspace-shell{background:radial-gradient(1200px 600px at 100% -10%,rgba(124,108,255,.08),transparent 60%),var(--bg);color:var(--text);display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-rows:58px minmax(0,calc(100vh - 58px));min-height:100vh;overflow:hidden}.workspace-header{align-items:center;background:#10131bd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;gap:12px;grid-column:1 / -1;min-width:0;padding:0 16px}.workspace-title{align-items:baseline;display:flex;gap:10px;margin-right:auto;min-width:0}.workspace-title strong{background:linear-gradient(90deg,#a99bff,#6ee7ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:1.15rem;font-weight:850;letter-spacing:-.02em}.workspace-title span{color:var(--text-dim);font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-sidebar{background:var(--bg-1);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:14px;min-height:0;overflow:hidden;padding:16px 14px}.sidebar-heading,.panel-heading,.editor-toolbar,.preview-toolbar,.terminal-toolbar{align-items:center;display:flex;justify-content:space-between;min-height:42px}.sidebar-heading span,.panel-heading span{color:var(--text-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.panel-heading small{color:var(--text-dim);font-size:.74rem;font-family:var(--mono)}.search-field{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:8px;height:38px;padding:0 11px;transition:border-color .16s ease,box-shadow .16s ease}.search-field:focus-within{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.search-field svg{color:var(--text-dim);flex:0 0 auto}.search-field input{background:transparent;border:0;color:var(--text);min-width:0;outline:0;width:100%}.search-field input::placeholder{color:var(--text-dim)}.project-list{display:grid;gap:8px;overflow:auto;padding-right:2px}.project-item,.file-item,.action-button,.toolbar-button,.icon-button,.segmented-control button{border:1px solid transparent;color:var(--text)}.project-item{align-items:center;background:var(--bg-2);border-color:var(--border);border-radius:var(--radius-sm);display:grid;gap:10px;grid-template-columns:22px minmax(0,1fr);min-height:60px;padding:11px;text-align:left}.project-item svg{color:var(--text-muted)}.project-item.is-active{background:var(--accent-soft);border-color:var(--accent-border)}.project-item.is-active svg{color:var(--accent-hover)}.project-item svg,.file-item svg,.action-button svg,.toolbar-button svg,.icon-button svg,.token-status svg{flex:0 0 auto}.project-item strong,.project-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-item strong{font-size:.9rem;font-weight:700}.project-item small{color:var(--text-dim);font-size:.75rem;margin-top:3px}.workspace-main{display:grid;gap:12px;grid-template-columns:268px minmax(410px,1fr) minmax(360px,.82fr);min-height:0;overflow:hidden;padding:12px}.workspace-left,.workspace-center,.workspace-right{display:grid;gap:12px;min-height:0}.workspace-left{grid-template-rows:minmax(220px,.8fr) minmax(260px,1fr)}.workspace-center{grid-template-rows:minmax(360px,1fr) 210px}.workspace-right{grid-template-rows:minmax(300px,.85fr) minmax(260px,1fr)}.panel,.editor-panel,.preview-panel,.terminal-panel,.chat-panel{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);min-height:0;overflow:hidden}.panel,.chat-panel{display:flex;flex-direction:column}.panel-heading,.editor-toolbar,.preview-toolbar,.terminal-toolbar{border-bottom:1px solid var(--border);padding:0 13px}.file-groups{display:grid;gap:12px;overflow:auto;padding:8px}.file-directory{align-items:center;color:var(--text-dim);display:flex;font-size:.76rem;font-weight:700;gap:6px;margin:4px 0 6px;min-width:0}.file-directory span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item{align-items:center;background:transparent;border-radius:var(--radius-xs);color:var(--text-muted);display:grid;gap:8px;grid-template-columns:18px minmax(0,1fr);height:33px;padding:0 8px;text-align:left;width:100%}.file-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item.is-active{background:var(--accent-soft);color:var(--text)}.file-item.is-active svg{color:var(--accent-hover)}.action-grid{display:grid;gap:8px;grid-template-columns:1fr;overflow:auto;padding:8px}.action-button{align-items:center;background:var(--bg-2);border-color:var(--border);border-radius:var(--radius-sm);display:grid;gap:9px;grid-template-columns:18px minmax(0,1fr);min-height:38px;padding:0 11px;text-align:left}.action-button svg{color:var(--accent-hover)}.action-button:hover,.toolbar-button:hover,.icon-button:hover,.project-item:hover,.file-item:hover{background:var(--bg-hover);border-color:var(--border-strong)}.action-button span{font-size:.83rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-panel,.preview-panel,.terminal-panel{display:grid;grid-template-rows:44px minmax(0,1fr)}.toolbar-label{color:var(--text-dim);display:block;font-size:.68rem;font-weight:800;letter-spacing:.05em;margin-bottom:2px;text-transform:uppercase}.editor-toolbar strong,.preview-toolbar strong,.terminal-toolbar strong{display:block;font-size:.84rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar-button,.icon-button{align-items:center;background:var(--bg-2);border-color:var(--border);border-radius:var(--radius-sm);color:var(--text-muted);display:inline-flex;gap:7px;height:33px;justify-content:center;padding:0 11px}.toolbar-button span{font-size:.82rem;font-weight:650}.icon-button{aspect-ratio:1;padding:0}.icon-button.is-primary,.toolbar-button.is-primary{background:linear-gradient(180deg,var(--accent-hover),var(--accent));border-color:transparent;color:#fff;box-shadow:0 4px 14px #7c6cff59}.icon-button.is-primary:hover,.toolbar-button.is-primary:hover{background:linear-gradient(180deg,#a99bff,var(--accent-hover));border-color:transparent}.code-textarea{background:linear-gradient(90deg,var(--bg-2) 0,var(--bg-2) 48px,transparent 48px),var(--bg-1);border:0;color:#d7deea;font-family:var(--mono);font-size:.86rem;line-height:1.65;min-height:0;outline:0;padding:18px 18px 18px 66px;resize:none;tab-size:2;width:100%}.preview-actions,.terminal-actions{display:flex;gap:8px}.preview-surface{background:#fff;display:flex;min-height:0;overflow:hidden}.preview-surface>iframe,.preview-surface .runner-iframe{flex:1 1 auto}.browser-frame{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);min-height:100%;overflow:hidden}.browser-bar{align-items:center;background:var(--bg-2);border-bottom:1px solid var(--border);display:grid;gap:7px;grid-template-columns:10px 10px 10px minmax(0,1fr);height:36px;padding:0 13px}.browser-bar span{border-radius:999px;height:10px;width:10px}.browser-bar span:nth-child(1){background:#ff5f57}.browser-bar span:nth-child(2){background:#febc2e}.browser-bar span:nth-child(3){background:#28c840}.browser-bar em{color:var(--text-dim);font-family:var(--mono);font-size:.72rem;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-content{align-items:center;align-content:center;color:var(--text-muted);display:grid;gap:12px;grid-template-columns:34px minmax(0,1fr);min-height:128px;padding:22px;text-align:left}.preview-content svg{color:var(--accent-hover)}.preview-content.is-ready{color:var(--text)}.preview-content .eyebrow{color:var(--accent-hover);font-size:.74rem;font-weight:800;letter-spacing:.05em;margin:0 0 6px;text-transform:uppercase}.preview-content h2{color:var(--text);font-size:1.4rem;line-height:1.1;margin:0 0 8px}.preview-content p{color:var(--text-muted);line-height:1.55;margin:0;max-width:360px}.runner-preview-frame{background:#fff;border-bottom:1px solid var(--border);height:240px;overflow:hidden}.runner-iframe-shell{display:grid;grid-template-rows:38px minmax(0,1fr);height:100%;min-height:0}.runner-iframe-status{align-items:center;background:var(--bg-2);border-bottom:1px solid var(--border);display:grid;gap:8px;grid-template-columns:10px auto minmax(0,1fr);min-width:0;padding:0 11px}.runner-iframe-status strong,.runner-iframe-status small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.runner-iframe-status strong{font-size:.8rem;font-weight:650}.runner-iframe-status small{color:var(--text-dim);font-family:var(--mono);font-size:.73rem}.status-dot{background:var(--warning);border-radius:999px;box-shadow:0 0 0 3px #f5b5452e;display:inline-block;height:9px;width:9px}.status-dot.is-ready{background:var(--success);box-shadow:0 0 0 3px var(--success-soft)}.runner-iframe{border:0;height:100%;width:100%;background:#fff}.terminal-output{background:#080a0f;color:#cbd5e6;font-family:var(--mono);font-size:.79rem;overflow:auto;padding:12px 14px}.terminal-line{display:grid;gap:10px;grid-template-columns:68px minmax(0,1fr);min-height:24px}.terminal-line time{color:var(--text-dim)}.terminal-line span{overflow-wrap:anywhere}.terminal-success span{color:var(--success)}.terminal-warning span{color:var(--warning)}.terminal-error span{color:var(--danger)}.terminal-empty{color:var(--text-dim);margin:0}.chat-messages{align-content:start;display:grid;flex:1 1 auto;gap:12px;min-height:0;overflow-y:auto;padding:14px;scroll-behavior:smooth}.chat-message{border:1px solid var(--border);border-radius:14px;max-width:92%;padding:11px 13px}.chat-message small{color:var(--text-dim);display:block;font-size:.68rem;font-weight:800;letter-spacing:.05em;margin-bottom:6px;text-transform:uppercase}.chat-message p{color:var(--text);font-size:.88rem;line-height:1.5;margin:0;white-space:pre-wrap}.chat-assistant{background:var(--bg-2);border-bottom-left-radius:4px;justify-self:start}.chat-user{background:var(--accent-soft);border-color:var(--accent-border);border-bottom-right-radius:4px;justify-self:end}.chat-composer{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:flex;flex:0 0 auto;flex-direction:column;gap:8px;margin:0 12px 12px;padding:10px 10px 8px}.chat-composer:focus-within{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.composer-textarea{background:transparent;border:0;color:var(--text);font-family:inherit;font-size:.9rem;line-height:1.5;max-height:200px;min-height:24px;outline:0;overflow-y:auto;padding:4px 4px 0;resize:none;width:100%}.composer-textarea::placeholder{color:var(--text-dim)}.composer-bar{align-items:center;display:flex;gap:7px}.composer-spacer{flex:1 1 auto}.composer-chip{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);display:flex;font-size:.78rem;font-weight:650;gap:6px;height:30px;padding:0 11px;transition:border-color .16s ease,color .16s ease,background .16s ease}.composer-chip:hover,.composer-chip.is-open{border-color:var(--accent-border);color:var(--text)}.composer-chip .chev{transition:transform .16s ease}.composer-chip .chev.is-open{transform:rotate(180deg)}.plan-toggle.is-active{background:linear-gradient(180deg,var(--accent-hover),var(--accent));border-color:transparent;color:#fff;box-shadow:0 3px 12px #7c6cff52}.composer-send{align-items:center;background:linear-gradient(180deg,var(--accent-hover),var(--accent));border:0;border-radius:10px;box-shadow:0 3px 12px #7c6cff52;color:#fff;display:flex;height:34px;justify-content:center;transition:opacity .16s ease,transform .12s ease;width:38px}.composer-send:disabled{box-shadow:none;cursor:default;filter:grayscale(.4);opacity:.45}.composer-send:not(:disabled):active{transform:translateY(1px)}.agent-picker{position:relative}.tier-dot{border-radius:999px;display:inline-block;height:8px;width:8px}.tier-dot.tier-min{background:var(--success)}.tier-dot.tier-max{background:var(--warning)}.tier-dot.tier-ultra{background:var(--danger)}.agent-popover{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);display:grid;gap:6px;grid-template-columns:108px 1fr;padding:6px;position:fixed;transform:translateY(-100%);z-index:60}.agent-popover-list{display:grid;gap:2px}.agent-option{align-items:center;background:transparent;border-radius:var(--radius-xs);color:var(--text-muted);display:flex;font-size:.82rem;font-weight:650;gap:7px;padding:7px 8px;text-align:left}.agent-option:hover,.agent-option.is-active{background:var(--bg-3);color:var(--text)}.agent-option .tier-badge{margin-left:auto}.agent-active-tag{color:var(--accent);font-size:.54rem;font-style:normal;font-weight:800;letter-spacing:.05em}.agent-detail{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);display:grid;gap:8px;padding:11px}.agent-detail--hint{align-content:center;color:var(--text-dim);font-size:.76rem;text-align:center}.agent-detail--hint p{margin:0}.agent-detail-head{align-items:center;display:flex;gap:7px}.agent-detail-head strong{color:var(--text);font-size:.88rem}.agent-detail-head .tier-badge{margin-left:auto}.agent-detail-tagline{color:var(--text-muted);font-size:.76rem;line-height:1.45;margin:0}.agent-stats{display:grid;gap:6px;list-style:none;margin:0;padding:0}.agent-stats li{align-items:center;color:var(--text-dim);display:flex;font-size:.76rem;gap:7px}.agent-stats li strong{color:var(--text);font-weight:700;margin-left:auto}.agent-detail-model{color:var(--text-dim);font-family:var(--mono);font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions-popover--composer{bottom:calc(100% + 8px);left:0;right:auto}.token-status{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;display:flex;gap:7px;height:34px;min-width:150px;padding:0 13px}.token-status svg{color:var(--warning)}.token-status span{color:var(--text-muted);font-size:.78rem;font-weight:650}.token-status strong{color:var(--text);margin-left:auto}.segmented-control{background:var(--bg-2);border:1px solid var(--border);border-radius:999px;display:grid;grid-template-columns:1fr 1fr;height:34px;min-width:132px;padding:3px}.segmented-control.is-triple{grid-template-columns:1fr 1fr 1fr;min-width:216px}.segmented-control button{align-items:center;background:transparent;border-radius:999px;color:var(--text-muted);display:flex;font-size:.8rem;font-weight:700;gap:5px;justify-content:center}.segmented-control button.is-selected{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#fff;box-shadow:0 3px 12px #7c6cff52}.tier-badge{border-radius:6px;font-size:.6rem;font-weight:800;line-height:1;padding:2px 4px}.tier-badge.tier-min{background:var(--success-soft);color:var(--success)}.tier-badge.tier-max{background:#f5b54529;color:var(--warning)}.tier-badge.tier-ultra{background:var(--danger-soft);color:var(--danger)}.segmented-control button.is-selected .tier-badge{background:#ffffff38;color:#fff}.consumption-warning{align-items:center;border-radius:var(--radius);box-shadow:var(--shadow);display:flex;gap:9px;font-size:.82rem;left:50%;max-width:min(560px,calc(100vw - 32px));padding:10px 15px;position:fixed;top:68px;transform:translate(-50%);z-index:60;animation:nova-drop .22s ease}@keyframes nova-drop{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.consumption-warning.is-max{background:#2a2113;border:1px solid rgba(245,181,69,.4);color:#f5c877}.consumption-warning.is-ultra{background:#2a1518;border:1px solid rgba(248,113,113,.4);color:#f7a3a3}.consumption-warning span{flex:1}.consumption-warning strong{color:#fff}.consumption-warning small{font-family:var(--mono);font-size:.7rem;opacity:.7;white-space:nowrap}.empty-state{color:var(--text-muted);display:grid;min-height:100vh;place-items:center;background:radial-gradient(900px 500px at 50% 0%,rgba(124,108,255,.08),transparent 60%),var(--bg)}.account-chip{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;display:flex;gap:8px;padding:3px 4px 3px 12px;max-width:230px}.account-chip span{color:var(--text-muted);font-size:.78rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-chip .icon-button{height:28px}.auth-screen{align-items:center;background:radial-gradient(800px 500px at 20% -10%,rgba(124,108,255,.18),transparent 55%),radial-gradient(700px 500px at 100% 110%,rgba(110,231,255,.12),transparent 55%),var(--bg);display:grid;min-height:100vh;padding:24px;place-items:center}.auth-card{background:linear-gradient(180deg,var(--bg-2),var(--bg-1));border:1px solid var(--border-strong);border-radius:18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:13px;max-width:392px;padding:32px;width:100%}.auth-brand{align-items:center;display:flex;font-weight:850;font-size:1.1rem;gap:9px}.auth-brand svg{color:var(--accent-hover)}.auth-brand span{background:linear-gradient(90deg,#a99bff,#6ee7ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.auth-card h1{font-size:1.5rem;letter-spacing:-.02em;margin:6px 0 0}.auth-subtitle{color:var(--text-muted);font-size:.88rem;margin:0 0 8px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field span{color:var(--text-muted);font-size:.8rem;font-weight:650}.auth-field input{background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);font-size:.92rem;padding:11px 13px;transition:border-color .16s ease,box-shadow .16s ease}.auth-field input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-submit{background:linear-gradient(180deg,var(--accent-hover),var(--accent));border:0;border-radius:var(--radius-sm);color:#fff;font-size:.95rem;font-weight:750;margin-top:6px;padding:12px;box-shadow:0 6px 18px #7c6cff59}.auth-submit:hover:not(:disabled){background:linear-gradient(180deg,#b3a7ff,var(--accent-hover))}.auth-toggle{background:transparent;border:0;color:var(--accent-hover);font-size:.84rem;font-weight:650;padding:4px}.auth-github{align-items:center;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text);display:flex;font-size:.92rem;font-weight:650;gap:9px;justify-content:center;padding:12px}.auth-github:hover:not(:disabled){background:var(--bg-3);border-color:var(--border-strong)}.auth-divider{align-items:center;color:var(--text-dim);display:flex;font-size:.76rem;gap:10px;margin:4px 0}.auth-divider:before,.auth-divider:after{background:var(--border);content:"";flex:1;height:1px}.auth-error{background:var(--danger-soft);border:1px solid rgba(248,113,113,.3);border-radius:var(--radius-sm);color:#fca5a5;font-size:.82rem;margin:0;padding:9px 11px}.auth-message{background:var(--success-soft);border:1px solid rgba(52,211,153,.3);border-radius:var(--radius-sm);color:#6ee7b7;font-size:.82rem;margin:0;padding:9px 11px}.workspace-shell--split{grid-template-columns:1fr}.workspace-body{display:grid;grid-template-columns:396px minmax(0,1fr);gap:12px;min-height:0;overflow:hidden;padding:12px}.header-spacer{flex:1}.chat-col{display:flex;flex-direction:column;min-height:0;position:relative}.chat-col .chat-panel{flex:1;min-height:0}.chat-fab{bottom:92px;position:absolute;right:14px;z-index:30}.fab-button{align-items:center;background:var(--bg-3);border:1px solid var(--border-strong);border-radius:999px;box-shadow:var(--shadow-sm);color:var(--text-muted);display:flex;font-size:.8rem;font-weight:650;gap:7px;padding:7px 13px}.fab-button.is-open,.fab-button:hover{border-color:var(--accent-border);color:var(--text)}.actions-popover{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);bottom:calc(100% + 8px);box-shadow:var(--shadow);min-width:244px;padding:6px;position:absolute;right:0;z-index:50}.menu-backdrop{inset:0;position:fixed;z-index:40}.floating-menu{background:var(--bg-2);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);left:0;max-height:380px;min-width:250px;overflow:auto;padding:6px;position:absolute;top:calc(100% + 6px);z-index:50}.floating-menu-label{color:var(--text-dim);font-size:.66rem;font-weight:800;letter-spacing:.05em;padding:6px 8px;text-transform:uppercase}.floating-menu-item{align-items:center;background:transparent;border:0;border-radius:var(--radius-xs);color:var(--text);display:flex;font-size:.84rem;gap:9px;padding:8px;text-align:left;width:100%}.floating-menu-item:hover{background:var(--bg-hover)}.floating-menu-item.is-active{background:var(--accent-soft)}.floating-menu-item svg{color:var(--text-muted);flex:0 0 auto}.floating-menu-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.floating-menu-sep{background:var(--border);height:1px;margin:6px 4px}.project-switcher{position:relative}.project-switcher-btn{align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;color:var(--text);display:flex;gap:8px;max-width:260px;padding:6px 12px}.project-switcher-btn:hover{border-color:var(--border-strong)}.project-switcher-btn strong{font-size:.86rem;font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-switcher-btn svg{color:var(--text-muted);flex:0 0 auto}.view-col{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);display:grid;grid-template-rows:48px minmax(0,1fr);min-height:0;overflow:hidden}.view-toolbar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:0 12px}.view-toggle{background:var(--bg-2);border:1px solid var(--border);border-radius:999px;display:flex;gap:3px;padding:3px}.view-toggle button{align-items:center;background:transparent;border:0;border-radius:999px;color:var(--text-muted);display:flex;font-size:.82rem;font-weight:650;gap:6px;padding:6px 14px}.view-toggle button.is-selected{background:linear-gradient(180deg,var(--accent-hover),var(--accent));color:#fff;box-shadow:0 3px 12px #7c6cff52}.view-toolbar-actions{align-items:center;display:flex;gap:8px;min-width:0}.view-url{color:var(--text-dim);font-family:var(--mono);font-size:.74rem;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-body{min-height:0;overflow:hidden}.view-body>.preview-surface{height:100%}.code-view{display:grid;grid-template-columns:216px minmax(0,1fr);height:100%;min-height:0}.code-view .file-explorer{border:0;border-radius:0;border-right:1px solid var(--border);box-shadow:none;height:100%}.code-main{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0}.code-main .editor-panel{border:0;border-radius:0;box-shadow:none}.editor-scroll{min-height:0;overflow:auto}.nova-code-editor{caret-color:#fff;color:#d7deea;min-height:100%}.nova-code-textarea:focus{outline:none}.terminal-dock{border-top:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.terminal-dock.is-open{height:208px}.terminal-tabbar{align-items:center;background:var(--bg-2);display:flex;gap:5px;min-height:37px;padding:4px 8px}.term-tab{align-items:center;background:transparent;border:0;border-radius:var(--radius-xs);color:var(--text-muted);display:flex;font-size:.78rem;font-weight:650;gap:6px;padding:5px 10px}.term-tab.is-active{background:var(--bg-3);color:var(--text)}.term-tab svg{color:var(--accent-hover)}.term-add{height:26px}.terminal-dock .terminal-output{flex:1;min-height:0}.nova-code-editor .token.comment,.nova-code-editor .token.prolog,.nova-code-editor .token.doctype,.nova-code-editor .token.cdata{color:#6a7386;font-style:italic}.nova-code-editor .token.punctuation{color:#8b94a7}.nova-code-editor .token.keyword,.nova-code-editor .token.selector,.nova-code-editor .token.rule{color:#c792ea}.nova-code-editor .token.string,.nova-code-editor .token.attr-value,.nova-code-editor .token.char{color:#a5e17f}.nova-code-editor .token.number,.nova-code-editor .token.boolean,.nova-code-editor .token.constant{color:#f78c6c}.nova-code-editor .token.tag,.nova-code-editor .token.deleted{color:#ff8fa3}.nova-code-editor .token.attr-name,.nova-code-editor .token.class-name{color:#ffcb6b}.nova-code-editor .token.function{color:#82aaff}.nova-code-editor .token.operator,.nova-code-editor .token.entity,.nova-code-editor .token.url{color:#89ddff}.nova-code-editor .token.property{color:#82aaff}.dashboard-page{min-height:100vh;background:radial-gradient(1000px 560px at 50% -8%,rgba(124,108,255,.14),transparent 60%),radial-gradient(700px 500px at 100% 100%,rgba(110,231,255,.07),transparent 55%),var(--bg)}.dashboard-topbar{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;height:58px;padding:0 20px}.dashboard-main{margin:0 auto;max-width:1080px;padding:40px 24px 64px}.dashboard-hero{text-align:center;padding:32px 0 40px}.hero-eyebrow{align-items:center;color:var(--accent-hover);display:inline-flex;font-size:.84rem;font-weight:650;gap:6px;justify-content:center;margin:0 0 12px}.dashboard-hero h1{font-size:2.7rem;font-weight:850;letter-spacing:-.03em;line-height:1.05;margin:0}.dashboard-hero h1 span{background:linear-gradient(90deg,#a99bff,#6ee7ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{color:var(--text-muted);font-size:1rem;margin:12px 0 26px}.hero-prompt{background:linear-gradient(180deg,var(--bg-2),var(--bg-1));border:1px solid var(--border-strong);border-radius:16px;box-shadow:var(--shadow);margin:0 auto;max-width:680px;padding:8px;transition:border-color .16s ease,box-shadow .16s ease}.hero-prompt:focus-within{border-color:var(--accent-border);box-shadow:0 0 0 4px var(--accent-soft),var(--shadow)}.hero-prompt textarea{background:transparent;border:0;color:var(--text);display:block;font-size:.98rem;line-height:1.5;min-height:84px;outline:0;padding:14px 14px 6px;resize:none;width:100%}.hero-prompt textarea::placeholder{color:var(--text-dim)}.hero-prompt-actions{align-items:center;display:flex;justify-content:space-between;padding:4px 8px 8px}.hero-hint{color:var(--text-dim);font-size:.76rem}.dashboard-projects{margin-top:20px}.projects-header{align-items:center;display:flex;gap:16px;justify-content:space-between;margin-bottom:18px}.projects-header h2{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;margin:0}.projects-controls{align-items:center;display:flex;gap:10px}.projects-controls .search-field{min-width:240px}.projects-empty{color:var(--text-muted);padding:32px 0;text-align:center}.projects-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.project-card{background:var(--bg-1);border:1px solid var(--border);border-radius:14px;cursor:pointer;overflow:hidden;padding:0;text-align:left;transition:border-color .16s ease,transform .12s ease,box-shadow .16s ease}.project-card:hover{border-color:var(--accent-border);transform:translateY(-3px);box-shadow:var(--shadow)}.project-thumb{align-items:center;aspect-ratio:16 / 10;display:flex;justify-content:center}.project-thumb span{color:#ffffffeb;font-size:2.4rem;font-weight:850;text-shadow:0 2px 12px rgba(0,0,0,.25)}.project-card-body{padding:12px 14px 14px}.project-card-body strong{display:block;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-card-body small{color:var(--text-dim);display:block;font-size:.76rem;margin-top:4px}@media(max-width:640px){.dashboard-hero h1{font-size:2rem}.projects-header{flex-direction:column;align-items:stretch}.projects-controls .search-field{min-width:0;flex:1}}@media(max-width:1280px){.workspace-shell{grid-template-columns:230px minmax(0,1fr)}.workspace-main{grid-template-columns:246px minmax(360px,1fr) minmax(320px,.78fr)}}@media(max-width:1080px){.workspace-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr);overflow:auto}.workspace-header{align-items:flex-start;flex-wrap:wrap;min-height:58px;padding:10px}.project-sidebar{border-bottom:1px solid var(--border);border-right:0;display:grid;grid-template-columns:auto minmax(180px,260px) minmax(0,1fr)}.project-list{grid-auto-flow:column;overflow-x:auto}.project-item{min-width:210px}.workspace-main{grid-template-columns:1fr;overflow:visible}.workspace-left,.workspace-center,.workspace-right{grid-template-rows:none}.editor-panel{min-height:460px}}@media(max-width:720px){.workspace-title{width:100%}.token-status,.segmented-control{flex:1 1 130px}.project-sidebar{grid-template-columns:1fr}.workspace-main{padding:8px}}.header-actions{align-items:center;display:flex;gap:8px}.header-pop{position:relative}.icon-button.is-active,.toolbar-button.is-active{border-color:var(--accent-border);color:var(--text)}.floating-menu--right{left:auto;right:0}.menu-note{color:var(--text-muted);font-size:.8rem;line-height:1.45;margin:4px 8px 10px}.menu-cta{width:calc(100% - 12px);margin:0 6px 6px;justify-content:center}.modal-backdrop{align-items:center;background:#04060a9e;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:100}.modal{background:var(--bg-1);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;max-height:86vh;width:100%}.publish-modal{max-width:560px}.modal-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:12px;justify-content:space-between;padding:16px 18px}.modal-title{align-items:center;color:var(--accent-hover);display:flex;gap:11px}.modal-title strong{color:var(--text);display:block;font-size:1rem}.modal-title small{color:var(--text-dim);font-size:.78rem}.modal-body{display:grid;gap:16px;overflow:auto;padding:18px}.modal-footer{border-top:1px solid var(--border);display:flex;gap:10px;justify-content:flex-end;padding:14px 18px}.audit-section{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:13px 14px}.audit-head{align-items:center;color:var(--text);display:flex;gap:8px}.audit-head strong{font-size:.9rem}.audit-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.72rem;font-weight:700;gap:4px;margin-left:auto;padding:3px 9px}.audit-badge.is-ok{background:var(--success-soft);color:var(--success)}.audit-badge.is-warn{background:#f5b54529;color:var(--warning)}.audit-clean{color:var(--text-dim);font-size:.8rem;margin:9px 0 0}.audit-list{display:grid;gap:8px;list-style:none;margin:11px 0 0;padding:0}.audit-finding{display:grid;gap:9px;grid-template-columns:10px minmax(0,1fr)}.audit-finding p{color:var(--text);font-size:.82rem;margin:0}.audit-finding small{color:var(--text-dim);font-family:var(--mono);font-size:.72rem}.audit-dot{border-radius:999px;height:9px;margin-top:4px;width:9px}.audit-high .audit-dot{background:var(--danger)}.audit-medium .audit-dot{background:var(--warning)}.audit-low .audit-dot{background:var(--text-dim)}.publish-note{align-items:flex-start;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);display:flex;font-size:.82rem;gap:9px;line-height:1.45;padding:12px 13px}.publish-note.is-blocker{background:var(--danger-soft);border-color:#f8717166;color:#fecaca}.data-panel{background:var(--bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}.db-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:10px;justify-content:space-between;padding:12px 16px}.db-header-id{align-items:center;color:var(--accent-hover);display:flex;gap:11px}.db-header-id strong{color:var(--text);display:block;font-size:.92rem}.db-schema{align-items:center;color:var(--text-dim);display:inline-flex;font-family:var(--mono);font-size:.74rem;gap:5px}.db-tabs{border-bottom:1px solid var(--border);display:flex;gap:2px;overflow-x:auto;padding:0 10px;scrollbar-width:thin}.db-tab{align-items:center;background:transparent;border-bottom:2px solid transparent;color:var(--text-dim);display:flex;flex:0 0 auto;font-size:.82rem;font-weight:600;gap:6px;padding:11px 12px;white-space:nowrap}.db-tab:hover{color:var(--text-muted)}.db-tab.is-active{border-bottom-color:var(--accent);color:var(--text)}.db-content{flex:1 1 auto;min-height:0;overflow:auto;padding:18px}.db-error{background:var(--danger-soft);border:1px solid rgba(248,113,113,.4);border-radius:var(--radius-sm);color:#fecaca;font-size:.82rem;margin-bottom:14px;padding:10px 12px}.db-empty{align-items:center;color:var(--text-dim);display:flex;font-size:.85rem;gap:8px;justify-content:center;padding:40px 0}.db-blank{align-items:center;color:var(--text-muted);display:flex;flex-direction:column;gap:10px;margin:0 auto;max-width:420px;padding:46px 0;text-align:center}.db-blank svg{color:var(--accent-hover)}.db-blank h3{color:var(--text);font-size:1.05rem;margin:0}.db-blank p{font-size:.86rem;line-height:1.5;margin:0}.db-soon-tag{background:var(--bg-3);border-radius:999px;color:var(--text-dim);font-size:.68rem;font-weight:800;letter-spacing:.05em;margin-top:4px;padding:4px 11px;text-transform:uppercase}.db-locked-badge{align-items:center;background:var(--accent-soft);border:1px solid var(--accent-border);border-radius:999px;color:var(--accent-hover);display:inline-flex;font-size:.7rem;font-weight:800;gap:5px;letter-spacing:.03em;padding:4px 11px;text-transform:uppercase}.db-locked-note{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8rem;line-height:1.5;padding:11px 13px}.db-locked-note strong{color:var(--text)}.db-tables{display:grid;gap:16px;grid-template-columns:minmax(160px,220px) minmax(0,1fr)}.db-tablelist{display:grid;gap:3px;list-style:none;margin:0;padding:0}.db-tablerow{align-items:center;background:transparent;border-radius:var(--radius-xs);color:var(--text-muted);display:flex;font-size:.82rem;gap:7px;padding:8px 10px;width:100%}.db-tablerow small{color:var(--text-dim);margin-left:auto}.db-tablerow:hover,.db-tablerow.is-active{background:var(--bg-2);color:var(--text)}.db-tabledetail{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.db-detail-head{align-items:center;background:var(--bg-2);border-bottom:1px solid var(--border);display:flex;gap:9px;padding:10px 13px}.db-detail-head strong{color:var(--text);font-family:var(--mono);font-size:.86rem}.db-detail-head small{color:var(--text-dim);font-size:.74rem;margin-left:auto}.db-pill{align-items:center;border-radius:999px;display:inline-flex;font-size:.68rem;font-weight:700;gap:4px;padding:3px 8px}.db-pill.is-ok{background:var(--success-soft);color:var(--success)}.db-pill.is-warn{background:#f5b54529;color:var(--warning)}.db-columns{border-collapse:collapse;font-size:.82rem;width:100%}.db-columns th,.db-columns td{border-bottom:1px solid var(--border);padding:8px 13px;text-align:left}.db-columns th{color:var(--text-dim);font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.db-columns td{color:var(--text);font-family:var(--mono)}.db-columns tr:last-child td{border-bottom:0}.db-section-head{align-items:center;color:var(--accent-hover);display:flex;gap:10px;margin-bottom:14px}.db-section-head strong{color:var(--text);display:block;font-size:.92rem}.db-section-head small{color:var(--text-dim);font-size:.77rem}.db-section-head .db-pill{margin-left:auto}.db-clean{color:var(--text-muted);font-size:.86rem}.db-findings{display:grid;gap:9px;list-style:none;margin:0 0 14px;padding:0}.db-findings li{display:grid;gap:9px;grid-template-columns:10px minmax(0,1fr)}.db-findings p{color:var(--text);font-size:.83rem;line-height:1.45;margin:0}.db-findings code,.db-tabledetail code{color:var(--warning);font-family:var(--mono)}.db-finding-dot{background:var(--warning);border-radius:999px;height:9px;margin-top:4px;width:9px}.db-advanced{display:grid;gap:14px;margin:0 auto;max-width:560px}.data-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.data-card.is-active{border-color:var(--accent-border)}.data-card-head{align-items:center;color:var(--accent-hover);display:flex;gap:11px;margin-bottom:10px}.data-card-head>div{min-width:0}.data-card-head strong{color:var(--text);display:block;font-size:.95rem}.data-card-head small{color:var(--text-dim);font-size:.77rem}.data-supabase-mark{height:20px;width:20px}.data-tag{background:var(--bg-3);border-radius:999px;color:var(--text-muted);font-size:.68rem;font-weight:800;letter-spacing:.04em;margin-left:auto;padding:4px 9px;text-transform:uppercase}.data-tag.is-active{background:var(--success-soft);color:var(--success)}.data-card-desc{color:var(--text-muted);font-size:.85rem;line-height:1.5;margin:0 0 12px}.data-card-desc code{color:var(--text);font-family:var(--mono);font-size:.8rem}.data-featurelist{display:grid;gap:7px;list-style:none;margin:0 0 14px;padding:0}.data-featurelist li{align-items:center;color:var(--text-muted);display:flex;font-size:.82rem;gap:8px}.data-featurelist svg{color:var(--success);flex:0 0 auto}.data-tables{border-top:1px solid var(--border);padding-top:12px}.data-tables-label{color:var(--text-dim);font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.data-empty{color:var(--text-dim);font-size:.82rem;margin:8px 0 0}.data-form{display:grid;gap:11px}.data-form label{display:grid;gap:5px}.data-form label span{color:var(--text-muted);font-size:.78rem;font-weight:650}.data-form input{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-family:var(--mono);font-size:.82rem;outline:0;padding:9px 11px}.data-form input:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-soft)}.data-form-actions{display:flex;gap:9px;justify-content:flex-end}.data-hint{color:var(--text-dim);font-size:.75rem}.data-db-status{align-items:center;display:flex;gap:9px;margin-bottom:12px}.data-db-status .data-tag{align-items:center;display:inline-flex;gap:5px;margin-left:0}.data-db-status code{color:var(--text-muted);font-family:var(--mono);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-tablelist{display:grid;gap:5px;list-style:none;margin:8px 0 0;padding:0}.data-tablelist li{align-items:center;color:var(--text);display:flex;font-family:var(--mono);font-size:.8rem;gap:7px}.data-tablelist svg{color:var(--accent-hover)}.data-empty{align-items:center;display:flex;gap:7px}.data-error{color:var(--danger);font-size:.8rem;margin:10px 0 0}.spin{animation:nova-spin .9s linear infinite}@keyframes nova-spin{to{transform:rotate(360deg)}}
