:root{color-scheme:dark;--bg-0: #0b1020;--bg-1: #11172b;--bg-2: #182039;--bg-3: #1f2a48;--fg-0: #e6e9ef;--fg-1: #9aa3b2;--fg-2: #6b7388;--accent: #7aa2f7;--accent-dim: #3d59a1;--danger: #f7768e;--warning: #e0af68;--ok: #9ece6a;--border: #2a324a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:13px}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%;background:var(--bg-0);color:var(--fg-0);overflow:hidden}button{font:inherit;color:inherit;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer}button:hover{background:var(--bg-3)}button:active{background:var(--accent-dim)}.app-root{--sidebar-w: 252px;--editor-w: 1fr;--console-h: 180px;--chat-w: 0px;display:grid;grid-template-rows:36px 1fr var(--console-h);grid-template-columns:var(--sidebar-w) var(--editor-w) 1fr var(--chat-w);grid-template-areas:"topbar topbar topbar topbar" "sidebar editor preview chat" "console console console chat";width:100vw;height:100vh;gap:1px;background:var(--border)}.sidebar-tabs{grid-area:sidebar;display:flex;background:var(--bg-1);min-width:0;min-height:0}.sidebar-rail{flex:0 0 36px;display:flex;flex-direction:column;background:var(--bg-0);border-right:1px solid var(--border)}.sidebar-rail-btn{position:relative;width:36px;height:40px;background:transparent;border:none;color:var(--fg-2);cursor:pointer;border-left:2px solid transparent;display:inline-flex;align-items:center;justify-content:center;transition:color 80ms ease}.sidebar-rail-btn:hover{color:var(--fg-0)}.sidebar-rail-btn.active{color:var(--fg-0);border-left-color:var(--accent)}.sidebar-rail-badge{position:absolute;top:4px;right:4px;min-width:14px;height:14px;padding:0 3px;background:var(--accent);color:#0b1020;border-radius:7px;font-size:9px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;line-height:1}.sidebar-panel{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.chat{grid-area:chat;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.pane-resizer{position:relative;z-index:6;touch-action:none}.pane-resizer-x{cursor:col-resize}.pane-resizer-y{cursor:row-resize}.resizer-sidebar{grid-area:sidebar;align-self:stretch;justify-self:end;width:7px;margin-right:-4px}.resizer-editor{grid-area:editor;align-self:stretch;justify-self:end;width:7px;margin-right:-4px}.resizer-chat{grid-area:chat;align-self:stretch;justify-self:start;width:7px;margin-left:-4px}.resizer-console{grid-area:console;justify-self:stretch;align-self:start;height:7px;margin-top:-4px}.pane-resizer:before{content:"";position:absolute;background:transparent;transition:background .12s ease}.pane-resizer-x:before{top:0;bottom:0;left:50%;width:2px;transform:translate(-50%)}.pane-resizer-y:before{left:0;right:0;top:50%;height:2px;transform:translateY(-50%)}.pane-resizer:hover:before,.pane-resizer:active:before{background:var(--accent)}body.resizing{user-select:none}body.resizing iframe{pointer-events:none}body.resizing-x,body.resizing-x *{cursor:col-resize!important}body.resizing-y,body.resizing-y *{cursor:row-resize!important}.topbar{grid-area:topbar;display:flex;align-items:center;padding:0 12px;gap:12px;background:var(--bg-1);position:relative}.topbar .title{font-weight:600;color:var(--fg-0)}.project-switcher{position:relative;display:inline-flex;align-items:center}.project-switcher-trigger{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-2);color:var(--fg-1);border:1px solid var(--border);border-radius:6px;font:inherit;font-size:12px;cursor:pointer;max-width:220px}.project-switcher-trigger:hover{background:var(--bg-3);color:var(--fg-0);border-color:var(--accent)}.project-switcher-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:160px}.project-switcher-chevron{font-size:9px;opacity:.7}.project-switcher-badge{font-size:9px;padding:0 5px;height:14px;line-height:14px;background:var(--accent-dim);color:var(--accent);border-radius:7px;font-weight:600}.project-switcher-panel{position:absolute;top:32px;left:0;z-index:60;min-width:260px;max-width:320px;background:var(--bg-1);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000073;display:flex;flex-direction:column;max-height:60vh;overflow:hidden}.project-switcher-new{display:flex;align-items:center;gap:8px;padding:9px 12px;background:transparent;border:none;color:var(--fg-0);font:inherit;font-size:12px;cursor:pointer;text-align:left}.project-switcher-new:hover{background:var(--bg-2)}.project-switcher-new-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--accent);color:var(--bg-0);border-radius:4px;font-weight:700;font-size:13px}.project-switcher-new-form{display:flex;align-items:center;gap:6px;padding:8px 10px}.project-switcher-new-form input{flex:1;padding:5px 8px;background:var(--bg-2);color:var(--fg-0);border:1px solid var(--accent);border-radius:4px;font:inherit;font-size:12px}.project-switcher-divider{height:1px;background:var(--border)}.project-switcher-scroll{overflow-y:auto;max-height:50vh}.project-switcher-empty{padding:16px 12px;font-size:11px;color:var(--fg-2);font-style:italic;text-align:center}.project-switcher-row{display:flex;align-items:center;gap:4px;border-top:1px solid transparent}.project-switcher-row.active{background:var(--bg-2)}.project-switcher-row.active .project-switcher-row-name{color:var(--accent)}.project-switcher-row:hover{background:var(--bg-2)}.project-switcher-row-main{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:transparent;border:none;color:var(--fg-1);font:inherit;text-align:left;cursor:pointer;min-width:0}.project-switcher-row-name{font-size:12px;font-weight:500;color:var(--fg-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-switcher-row-meta{font-size:10px;color:var(--fg-2)}.project-switcher-row-rename,.project-switcher-row-delete{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:6px;padding:0;background:transparent;border:none;color:var(--fg-2);border-radius:4px;font-size:12px;cursor:pointer;opacity:0;flex-shrink:0}.project-switcher-row:hover .project-switcher-row-rename,.project-switcher-row:hover .project-switcher-row-delete,.project-switcher-row.active .project-switcher-row-rename,.project-switcher-row.active .project-switcher-row-delete{opacity:1}.project-switcher-row-rename:hover{background:var(--bg-3);color:var(--fg-0)}.project-switcher-row-delete:hover{background:#f7768e2e;color:var(--danger)}.project-switcher-rename-input{flex:1;padding:6px 10px;background:var(--bg-2);color:var(--fg-0);border:1px solid var(--accent);font:inherit;font-size:12px;outline:none}.topbar .status{font-size:11px;color:var(--fg-2);margin-left:auto}.topbar .status.bundling{color:var(--accent)}.topbar .status.error{color:var(--danger)}.topbar .status.ok{color:var(--ok)}.pane{background:var(--bg-1);display:flex;flex-direction:column;min-width:0;min-height:0}.pane-header{padding:6px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--fg-2);border-bottom:1px solid var(--border);background:var(--bg-2);display:flex;align-items:center;gap:8px}.pane-body{flex:1;min-height:0;overflow:auto}.files{flex:1;min-height:0}.editor{grid-area:editor}.preview{grid-area:preview;position:relative}.console{grid-area:console}.file-tree-item{display:flex;align-items:center;padding:3px 4px 3px 0;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--fg-1);border-left:2px solid transparent;user-select:none;gap:2px}.file-tree-item:hover{background:var(--bg-2);color:var(--fg-0)}.file-tree-item.selected{background:var(--bg-2)}.file-tree-item.active{background:var(--bg-2);color:var(--fg-0);border-left-color:var(--accent)}.file-tree-item.drop-target{background:color-mix(in srgb,var(--accent) 26%,transparent);outline:1px solid var(--accent);outline-offset:-1px}.pane-body.drop-root{background:color-mix(in srgb,var(--accent) 9%,transparent)}.save-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:7px;padding:7px 14px;background:var(--bg-3);color:var(--fg-0);border:1px solid var(--border);border-radius:20px;font-size:12px;box-shadow:0 6px 20px #00000059;pointer-events:none;animation:save-toast-in .12s ease-out}.save-toast svg{color:#4ade80;flex:0 0 auto}@keyframes save-toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.search-pane{min-height:0}.search-controls{padding:8px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--border)}.search-input-row{position:relative;display:flex}.search-input{flex:1;background:var(--bg-0);color:var(--fg-0);border:1px solid var(--border);border-radius:6px;padding:6px 26px 6px 8px;font-size:13px}.search-input:focus{outline:none;border-color:var(--accent)}.search-clear{position:absolute;right:4px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--fg-2);cursor:pointer;font-size:16px;line-height:1;padding:2px 6px}.search-clear:hover{color:var(--fg-0)}.search-opts{display:flex;gap:4px}.search-opt{min-width:26px;height:24px;padding:0 6px;background:var(--bg-0);color:var(--fg-1);border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.search-opt:hover{color:var(--fg-0);background:var(--bg-2)}.search-opt.active{background:var(--accent-dim);color:var(--fg-0);border-color:var(--accent)}.search-summary{padding:6px 10px;font-size:11px;color:var(--fg-1);border-bottom:1px solid var(--border)}.search-summary .muted{color:var(--fg-2)}.search-summary .search-error{color:var(--danger, #f7768e)}.search-results{padding:4px 0}.search-file-head{display:flex;align-items:center;gap:6px;width:100%;background:none;border:none;color:var(--fg-0);cursor:pointer;padding:4px 8px;text-align:left;font-size:12px}.search-file-head:hover{background:var(--bg-2)}.search-caret{width:10px;color:var(--fg-2);flex:0 0 auto}.search-file-name{font-weight:600}.search-file-dir{color:var(--fg-2);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.search-file-count{flex:0 0 auto;color:var(--fg-1);background:var(--bg-2);border-radius:9px;padding:0 7px;font-size:11px}.search-result-row{display:flex;gap:8px;width:100%;align-items:baseline;background:none;border:none;color:var(--fg-1);cursor:pointer;padding:2px 8px 2px 24px;text-align:left;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.search-result-row:hover{background:var(--bg-2);color:var(--fg-0)}.search-line-no{flex:0 0 auto;color:var(--fg-2);min-width:28px;text-align:right}.search-line-text{white-space:pre;overflow:hidden;text-overflow:ellipsis}.search-hit{background:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--fg-0);border-radius:2px}.file-rename-input{flex:1;min-width:0;font:inherit;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-0);color:var(--fg-0);border:1px solid var(--accent);border-radius:3px;padding:0 4px;margin:-1px 0;outline:none}.ctx-menu{position:fixed;z-index:1000;min-width:172px;padding:4px;background:var(--bg-1);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 24px #0006;display:flex;flex-direction:column;gap:1px;font-size:12px}.ctx-item{text-align:left;padding:5px 10px;background:transparent;border:none;color:var(--fg-1);cursor:pointer;border-radius:4px;font:inherit}.ctx-item:hover:not(:disabled){background:var(--accent);color:#fff}.ctx-item:disabled{opacity:.4;cursor:default}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover:not(:disabled){background:var(--danger);color:#fff}.ctx-sep{height:1px;margin:4px 2px;background:var(--border)}.agent-toggle{display:inline-flex;align-items:center;gap:6px;margin-left:auto;padding:3px 10px 3px 8px;background:var(--bg-2);border:1px solid var(--border);border-radius:999px;color:var(--fg-1);font-size:11px;font-weight:600;cursor:pointer;position:relative}.agent-toggle:hover{background:var(--bg-3);color:var(--fg-0)}.agent-toggle.open{background:var(--accent-dim);color:var(--fg-0);border-color:var(--accent)}.agent-toggle .agent-toggle-dot{width:6px;height:6px;background:var(--accent);border-radius:50%;display:inline-block;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.75)}}.topbar .lib-chips{display:flex;gap:4px;flex-wrap:wrap;margin-left:12px}.topbar .lib-chip{font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:2px 6px;border-radius:3px;background:var(--bg-2);color:var(--fg-1);border:1px solid var(--border);cursor:default}.topbar .lib-chip:hover{background:var(--bg-3);color:var(--fg-0)}.emulator-pane{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:16px;background:var(--bg-0);overflow:auto;gap:12px}.emulator-scaler{flex:0 0 auto;position:relative}.emulator-device{width:384px;background:#000;border-radius:32px;padding:12px;display:flex;flex-direction:column;box-shadow:0 0 0 1px #1f2630,0 20px 50px #0000008c,inset 0 0 0 2px #15191f}.emulator-statusbar{display:flex;align-items:center;justify-content:space-between;height:24px;padding:0 16px;background:#0b1020;border-radius:20px 20px 0 0;color:var(--fg-0);font-size:11px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,system-ui,sans-serif;letter-spacing:.01em}.emulator-statusbar .clock{font-variant-numeric:tabular-nums}.emulator-statusbar .indicators{display:inline-flex;align-items:center;gap:6px;color:var(--fg-0)}.emulator-statusbar .battery{display:inline-block;width:22px;height:10px;border:1px solid currentColor;border-radius:2px;position:relative;padding:1px}.emulator-statusbar .battery:after{content:"";position:absolute;right:-3px;top:2px;width:2px;height:4px;background:currentColor;border-radius:0 1px 1px 0}.emulator-statusbar .battery .battery-fill{display:block;width:100%;height:100%;background:currentColor;border-radius:1px}.emulator-screen-wrap{position:relative;width:360px;height:640px;background:#0b1020;overflow:hidden}.emulator-screen{width:360px;height:640px;border:none;display:block;background:#0b1020}.emulator-navbar{display:flex;align-items:center;justify-content:space-around;height:48px;padding:0 24px;background:#0b1020;border-radius:0 0 20px 20px}.emulator-navbtn{width:56px;height:32px;background:transparent;border:none;color:var(--fg-1);cursor:pointer;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;transition:background 80ms ease}.emulator-navbtn:hover{background:#9aa3b21a;color:var(--fg-0)}.emulator-navbtn:active{background:#9aa3b22e;transform:scale(.95)}.emulator-zoom-controls{position:absolute;bottom:12px;right:12px;z-index:10;display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--bg-1);border:1px solid var(--border);border-radius:999px;user-select:none;box-shadow:0 4px 14px #0006}.emulator-zoom-btn,.emulator-zoom-pct{height:24px;background:transparent;border:none;color:var(--fg-1);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;font-weight:600;transition:background 80ms ease,color 80ms ease}.emulator-zoom-btn{width:28px}.emulator-zoom-pct{min-width:44px;padding:0 8px;font-variant-numeric:tabular-nums}.emulator-zoom-btn:hover:not(:disabled),.emulator-zoom-pct:hover{background:var(--bg-3);color:var(--fg-0)}.emulator-zoom-btn:active:not(:disabled),.emulator-zoom-pct:active{background:var(--accent-dim);color:var(--fg-0)}.emulator-zoom-btn:disabled{opacity:.35;cursor:not-allowed}.chat .pane-header.chat-header{display:flex;align-items:center;gap:8px;padding:4px 8px}.chat-title{font-weight:700;font-size:11px;letter-spacing:.05em;color:var(--fg-1);text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.chat-running-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 #7aa2f7b3;animation:chat-pulse 1.4s ease-out infinite}@keyframes chat-pulse{0%{box-shadow:0 0 #7aa2f780}70%{box-shadow:0 0 0 8px #7aa2f700}to{box-shadow:0 0 #7aa2f700}}.chat-model{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;padding:1px 6px;background:var(--bg-3);color:var(--fg-1);border-radius:3px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-usage{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--fg-2);white-space:nowrap}.chat-usage-cached{color:var(--ok, #9ece6a);font-weight:600}.chat-conversation-trigger{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--fg-1);font:inherit;font-size:11px;cursor:pointer;max-width:180px;min-width:0}.chat-conversation-trigger:hover{background:var(--bg-3);color:var(--fg-0);border-color:var(--border)}.chat-conversation-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.chat-conversation-chevron{font-size:9px;opacity:.6}.chat-conversation-badge{font-size:9px;padding:0 5px;height:14px;line-height:14px;background:var(--accent-dim);color:var(--accent);border-radius:7px;font-weight:600}.chat-history{position:absolute;top:34px;left:8px;right:8px;z-index:50;background:var(--bg-1);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;display:flex;flex-direction:column;max-height:60vh;overflow:hidden}.chat-history-new{display:flex;align-items:center;gap:8px;padding:8px 12px;background:transparent;border:none;color:var(--fg-0);font:inherit;font-size:12px;cursor:pointer;text-align:left}.chat-history-new:hover{background:var(--bg-2)}.chat-history-new-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--accent);color:var(--bg-0);border-radius:4px;font-weight:700;font-size:13px}.chat-history-divider{height:1px;background:var(--border)}.chat-history-scroll{overflow-y:auto;max-height:50vh}.chat-history-empty{padding:16px 12px;font-size:11px;color:var(--fg-2);font-style:italic;text-align:center}.chat-history-row{display:flex;align-items:center;gap:4px;border-top:1px solid transparent}.chat-history-row.active{background:var(--bg-2)}.chat-history-row.active .chat-history-row-title{color:var(--accent)}.chat-history-row:hover{background:var(--bg-2)}.chat-history-row-main{flex:1;display:flex;flex-direction:column;gap:2px;padding:8px 10px;background:transparent;border:none;color:var(--fg-1);font:inherit;text-align:left;cursor:pointer;min-width:0}.chat-history-row-title{font-size:12px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0)}.chat-history-row-meta{font-size:10px;color:var(--fg-2)}.chat-history-row-rename,.chat-history-row-delete{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:6px;padding:0;background:transparent;border:none;color:var(--fg-2);border-radius:4px;font-size:12px;cursor:pointer;opacity:0;flex-shrink:0}.chat-history-row:hover .chat-history-row-rename,.chat-history-row:hover .chat-history-row-delete,.chat-history-row.active .chat-history-row-rename,.chat-history-row.active .chat-history-row-delete{opacity:1}.chat-history-row-rename:hover{background:var(--bg-3);color:var(--fg-0)}.chat-history-row-delete:hover{background:#f7768e2e;color:var(--danger)}.chat-history-rename-input{flex:1;padding:6px 10px;background:var(--bg-2);color:var(--fg-0);border:1px solid var(--accent);border-radius:0;font:inherit;font-size:12px;outline:none}.icon-btn{background:transparent;border:none;color:var(--fg-2);width:22px;height:22px;border-radius:3px;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover:not(:disabled){background:var(--bg-3);color:var(--fg-0)}.icon-btn:disabled{opacity:.3;cursor:not-allowed}.chat-body{padding:8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;overflow-x:hidden;flex:1;min-height:0;background:var(--bg-0)}.chat-body[data-empty=true]{justify-content:center}.chat-empty{color:var(--fg-2);font-size:12px;padding:16px 12px;display:flex;flex-direction:column;align-items:stretch;gap:6px}.chat-empty-icon{align-self:center;width:56px;height:56px;border-radius:50%;background:var(--bg-2);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:4px}.chat-empty-title{font-size:14px;font-weight:600;color:var(--fg-0);text-align:center;margin:4px 0 0}.chat-empty-sub{font-size:11px;color:var(--fg-2);text-align:center;margin:0 0 6px}.chat-empty ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}.chat-tip{width:100%;text-align:left;background:var(--bg-1);border:1px solid var(--border);color:var(--fg-1);padding:8px 12px;border-radius:8px;cursor:pointer;font-size:12px;line-height:1.4;transition:border-color .12s,background .12s,transform .06s}.chat-tip:hover{background:var(--bg-2);color:var(--fg-0);border-color:var(--accent)}.chat-tip:active{transform:scale(.99)}.chat-hint{font-size:12px;color:var(--fg-2);margin-top:12px;text-align:center}.chat-running-indicator{display:flex;align-items:center;gap:8px;padding:6px 8px;font-size:11px;color:var(--fg-2);background:var(--bg-1);border:1px dashed var(--border);border-radius:6px;align-self:flex-start;flex-shrink:0}.chat-running-spinner{width:12px;height:12px;border-radius:50%;border:2px solid var(--border);border-top-color:var(--accent);animation:chat-spin .8s linear infinite}@keyframes chat-spin{to{transform:rotate(360deg)}}.link-btn{background:none;border:none;color:var(--accent);text-decoration:underline;cursor:pointer;padding:0;font:inherit}.chat-msg{display:flex;flex-direction:column;gap:3px;flex-shrink:0}.chat-msg-role{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-2)}.chat-msg-text{white-space:pre-wrap;word-break:break-word;font-size:13px;line-height:1.5}.chat-msg-user{align-self:flex-end;max-width:90%}.chat-msg-user .chat-msg-text{background:var(--accent-dim);color:var(--fg-0);padding:8px 12px;border-radius:12px 12px 4px}.chat-msg-user .chat-msg-role{text-align:right;color:var(--accent)}.chat-msg-assistant .chat-msg-text{color:var(--fg-0);padding:4px 6px}.chat-msg-assistant .chat-msg-role{color:var(--accent)}.chat-msg-error .chat-msg-text{background:#f7768e1f;color:var(--danger);padding:8px 12px;border-radius:6px;border:1px solid rgba(247,118,142,.3);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.chat-msg-error .chat-msg-role{color:var(--danger)}.chat-msg-tool{background:var(--bg-1);border:1px solid var(--border);border-radius:6px;overflow:hidden}.chat-msg-tool-pending{border-color:#7aa2f766}.chat-msg-tool-ok{border-color:#9ece6a4d}.chat-msg-tool-error{border-color:#f7768e66}.chat-msg-tool-header{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;background:transparent;border:none;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-1);text-align:left}.chat-msg-tool-header:hover{background:var(--bg-2)}.chat-msg-tool-icon{width:14px;text-align:center;font-weight:700}.chat-msg-tool-pending .chat-msg-tool-icon{color:var(--accent)}.chat-msg-tool-ok .chat-msg-tool-icon{color:var(--ok)}.chat-msg-tool-error .chat-msg-tool-icon{color:var(--danger)}.chat-msg-tool-name{color:var(--fg-0);font-weight:600}.chat-msg-tool-args{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-2)}.chat-msg-tool-chevron{opacity:.5}.chat-msg-tool-body{padding:6px 10px 10px;border-top:1px solid var(--border);background:var(--bg-0)}.chat-msg-tool-section{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);margin:6px 0 2px}.chat-msg-tool-pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.4;white-space:pre-wrap;word-break:break-word;background:transparent;margin:0;color:var(--fg-1)}.chat-input{border-top:1px solid var(--border);background:var(--bg-1);padding:8px;display:flex;flex-direction:column;gap:6px}.chat-textarea{background:var(--bg-2);color:var(--fg-0);border:1px solid var(--border);border-radius:6px;padding:8px;font:inherit;font-size:13px;line-height:1.4;resize:vertical;min-height:44px;max-height:200px;outline:none}.chat-textarea:focus{border-color:var(--accent)}.chat-textarea:disabled{opacity:.5;cursor:not-allowed}.chat-input-actions{display:flex;align-items:center;gap:8px}.chat-input-hint{flex:1;font-size:10px;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-send-btn{display:inline-flex;align-items:center;gap:6px;padding:5px 12px}.chat-stop-square{width:9px;height:9px;background:currentColor;border-radius:1px}.chat-msg-code-inline{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--bg-2);color:var(--accent);padding:1px 5px;border-radius:4px;border:1px solid var(--border)}.chat-msg-code-block{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;margin:6px 0;overflow-x:auto;white-space:pre;color:var(--fg-1);line-height:1.45}.chat-msg-thinking{display:inline-flex;gap:4px;opacity:.6;padding-left:2px}.chat-msg-thinking .thinking-dot{width:5px;height:5px;background:var(--fg-2);border-radius:50%;animation:chat-thinking 1.2s ease-in-out infinite}.chat-msg-thinking .thinking-dot:nth-child(2){animation-delay:.15s}.chat-msg-thinking .thinking-dot:nth-child(3){animation-delay:.3s}@keyframes chat-thinking{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.primary-btn{background:var(--accent);color:#0b1020;border:none;padding:5px 14px;border-radius:4px;font:inherit;font-weight:600;font-size:12px;cursor:pointer}.primary-btn:hover:not(:disabled){background:#94b5f9}.primary-btn:disabled{opacity:.4;cursor:not-allowed}.danger-btn{background:var(--danger);color:#0b1020;border:none;padding:5px 14px;border-radius:4px;font:inherit;font-weight:600;font-size:12px;cursor:pointer}.danger-btn:hover{background:#f99cb0}.ghost-btn{background:transparent;color:var(--fg-1);border:1px solid var(--border);padding:4px 12px;border-radius:4px;font:inherit;font-size:12px;cursor:pointer}.ghost-btn:hover{background:var(--bg-3);color:var(--fg-0)}.scm{flex:1;display:flex;flex-direction:column;min-height:0;background:var(--bg-1)}.scm-header{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 10px}.scm-title{flex:0 0 auto;font-weight:700;font-size:11px;letter-spacing:.05em;color:var(--fg-1);text-transform:uppercase;margin-right:auto}.scm-body{padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.scm-empty{padding:16px;color:var(--fg-2);font-size:12px;line-height:1.5;display:flex;flex-direction:column;gap:10px}.scm-empty .primary-btn{align-self:flex-start;padding:6px 14px}.scm-branch-row{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--fg-1);padding:4px 4px 8px;border-bottom:1px solid var(--border)}.scm-branch-icon{color:var(--accent);font-weight:700}.scm-branch-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--fg-0)}.scm-remote{color:var(--fg-2);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.scm-commit-msg{width:100%;background:var(--bg-2);color:var(--fg-0);border:1px solid var(--border);border-radius:4px;padding:8px;font:inherit;font-size:13px;resize:vertical;min-height:50px;outline:none}.scm-commit-msg:focus{border-color:var(--accent)}.scm-action-row{display:flex;gap:6px}.scm-action-row .primary-btn,.scm-action-row .ghost-btn{flex:1;padding:6px 10px;font-size:12px;text-align:center}.scm-commit-btn:disabled{opacity:.5}.scm-error{font-size:11px;color:var(--danger);background:#f7768e1a;border:1px solid rgba(247,118,142,.3);padding:6px 8px;border-radius:4px;line-height:1.5;white-space:pre-wrap}.scm-success{font-size:11px;color:var(--ok);background:#9ece6a1a;border:1px solid rgba(158,206,106,.3);padding:6px 8px;border-radius:4px}.scm-success a{color:var(--ok)}.scm-clean{text-align:center;font-size:12px;color:var(--fg-2);padding:12px 4px 4px;font-style:italic}.scm-section{display:flex;flex-direction:column;margin-top:4px}.scm-section-header{display:flex;align-items:center}.scm-section-toggle{display:flex;align-items:center;gap:6px;flex:1;padding:4px;background:transparent;border:none;color:var(--fg-1);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;text-align:left}.scm-section-toggle:hover{color:var(--fg-0)}.scm-section-chevron{font-size:9px;opacity:.7;width:10px}.scm-section-title{flex:1}.scm-section-count{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-3);color:var(--fg-1);border-radius:9px;padding:1px 7px;font-size:10px;font-weight:600}.scm-section-action{background:transparent;border:none;color:var(--fg-2);cursor:pointer;width:22px;height:22px;margin-right:4px;border-radius:3px;font-size:14px;font-weight:700;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background 80ms ease,color 80ms ease}.scm-section-action:hover:not(:disabled){background:var(--bg-3);color:var(--fg-0)}.scm-section-action:disabled{opacity:.3;cursor:not-allowed}.scm-section-action.dimmed{opacity:.45;cursor:help}.scm-section-action.dimmed:hover{opacity:.85;background:var(--bg-3)}.scm-section-body{display:flex;flex-direction:column}.scm-file-row{display:flex;align-items:center;gap:6px;padding:3px 6px 3px 22px;cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--fg-1);border-radius:3px}.scm-file-row:hover{background:var(--bg-2);color:var(--fg-0)}.scm-file-name{color:var(--fg-0)}.scm-file-dir{color:var(--fg-2);font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100px}.scm-row-action{visibility:hidden;background:transparent;border:none;color:var(--fg-2);font-size:14px;font-weight:700;cursor:pointer;width:18px;height:18px;padding:0;border-radius:3px;line-height:1}.scm-file-row:hover .scm-row-action{visibility:visible}.scm-row-action:hover{background:var(--bg-3);color:var(--fg-0)}.scm-row-discard:hover{background:#f7768e2e!important;color:var(--danger)!important}.preview-build-apk-btn{display:inline-flex;align-items:center;gap:4px}.build-apk-modal{min-width:560px;max-width:720px}.build-apk-status{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:12px}.build-apk-status-pill{padding:3px 8px;border-radius:4px;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase}.build-apk-status-starting,.build-apk-status-queued,.build-apk-status-running{background:var(--accent-dim);color:var(--accent)}.build-apk-status-success{background:#9ece6a2e;color:var(--ok)}.build-apk-status-failure{background:#f7768e2e;color:var(--danger)}.build-apk-build-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-2)}.build-apk-meta{color:var(--fg-2);font-size:11px}.build-apk-log{background:var(--bg-0);color:var(--fg-1);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;padding:10px;border:1px solid var(--border);border-radius:6px;margin:0;height:320px;overflow:auto;white-space:pre-wrap;word-break:break-word}.editor-tab-strip{display:flex;align-items:stretch;height:32px;background:var(--bg-1);border-bottom:1px solid var(--border);overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;flex-shrink:0}.editor-tab-empty{font-size:11px;color:var(--fg-2);padding:8px 12px;font-style:italic}.editor-tab{display:flex;align-items:center;gap:6px;padding:0 6px 0 12px;height:32px;border-right:1px solid var(--border);background:var(--bg-1);color:var(--fg-2);font-size:12px;cursor:pointer;user-select:none;white-space:nowrap;min-width:0;max-width:240px;position:relative}.editor-tab:hover{background:var(--bg-2);color:var(--fg-0)}.editor-tab.active{background:var(--bg-0);color:var(--fg-0)}.editor-tab.active:after{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--accent)}.editor-tab.diff .editor-tab-icon{color:var(--accent);font-size:12px;flex-shrink:0}.editor-tab-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.editor-tab-close{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--fg-2);border-radius:3px;font-size:16px;line-height:1;cursor:pointer;opacity:.55;flex-shrink:0}.editor-tab:hover .editor-tab-close,.editor-tab.active .editor-tab-close{opacity:1}.editor-tab-close:hover{background:var(--bg-3);color:var(--fg-0)}.scm-status-letter{width:14px;text-align:center;font-weight:700;font-size:11px;flex-shrink:0}.editor-toolbar{display:flex;align-items:center;gap:10px;padding:4px 8px}.editor-pane-title{font-weight:600;flex:0 0 auto}.editor-active-path{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--fg-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.editor-dirty-dot{width:6px;height:6px;background:var(--warning);border-radius:50%;display:inline-block}.editor-mode-toggle{display:inline-flex;background:var(--bg-2);border:1px solid var(--border);border-radius:4px;overflow:hidden;flex:0 0 auto}.editor-mode-btn{background:transparent;border:none;color:var(--fg-2);padding:3px 10px;font:inherit;font-size:11px;font-weight:600;cursor:pointer;border-radius:0}.editor-mode-btn:hover:not(:disabled){background:var(--bg-3);color:var(--fg-0)}.editor-mode-btn.active{background:var(--accent-dim);color:var(--fg-0)}.editor-mode-btn:disabled{opacity:.35;cursor:not-allowed}.scm-graph{display:flex;flex-direction:column;padding:4px 8px 4px 16px}.scm-graph-row{display:flex;align-items:stretch;gap:10px;padding:4px 0;border-radius:3px;cursor:default}.scm-graph-row:hover{background:var(--bg-2)}.scm-graph-rail{position:relative;width:14px;flex:0 0 14px}.scm-graph-dot{position:absolute;top:6px;left:3px;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--bg-1);z-index:1}.scm-graph-line{position:absolute;top:14px;bottom:-8px;left:6px;width:2px;background:var(--accent-dim)}.scm-graph-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.scm-graph-line1{display:flex;align-items:baseline;gap:8px;min-width:0}.scm-commit-sha{color:var(--accent);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;flex-shrink:0}.scm-commit-msg-line{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-0);font-size:12px}.scm-graph-meta{font-size:10px;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scm-commit-hint{font-size:10px;color:var(--fg-2);padding:2px 4px;font-style:italic}.modal-backdrop{position:fixed;inset:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--bg-1);border:1px solid var(--border);border-radius:8px;width:100%;max-width:500px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:14px;font-weight:600}.modal-body{padding:16px;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:14px}.modal-footer{display:flex;align-items:center;gap:8px;padding:12px 16px;border-top:1px solid var(--border);background:var(--bg-0)}.modal-error{color:var(--danger);font-size:12px;padding:8px 12px;background:#f7768e1a;border:1px solid rgba(247,118,142,.3);border-radius:4px;line-height:1.5;white-space:pre-wrap}.modal-success{color:var(--ok);font-size:12px;padding:8px 12px;background:#9ece6a1a;border:1px solid rgba(158,206,106,.3);border-radius:4px;line-height:1.5}.field{display:flex;flex-direction:column;gap:4px}.field-label{font-size:11px;font-weight:600;color:var(--fg-1);text-transform:uppercase;letter-spacing:.05em}.field-row{display:flex;gap:6px}.field-row input{flex:1}.field input,.field select{background:var(--bg-2);color:var(--fg-0);border:1px solid var(--border);border-radius:4px;padding:6px 8px;font:inherit;font-size:13px;outline:none}.field input:focus,.field select:focus{border-color:var(--accent)}.field-hint{margin:2px 0 0;font-size:11px;color:var(--fg-2);line-height:1.4}.field-hint a{color:var(--accent)}.field summary{cursor:pointer;font-size:12px;color:var(--fg-1)}.field summary:hover{color:var(--fg-0)}.provider-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:2px}.provider-btn{text-align:left;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;padding:10px 12px;cursor:pointer;color:var(--fg-1);font:inherit;display:flex;flex-direction:column;gap:4px;transition:border-color 80ms ease,background 80ms ease,color 80ms ease}.provider-btn:hover{background:var(--bg-3);color:var(--fg-0)}.provider-btn.active{background:var(--accent-dim);color:var(--fg-0);border-color:var(--accent)}.provider-btn-label{font-size:13px;font-weight:600}.provider-btn-desc{font-size:11px;opacity:.8;line-height:1.3}.free-toggle-field{padding:8px 12px;background:var(--bg-2);border:1px solid var(--border);border-radius:6px}.free-toggle-row{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:var(--fg-0)}.free-toggle-row input[type=checkbox]{width:14px;height:14px;cursor:pointer}.free-toggle-label{display:inline-flex;align-items:center;gap:8px;font-weight:500}.free-toggle-badge{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px;font-weight:700;letter-spacing:.08em;padding:1px 6px;background:var(--ok);color:#0b1020;border-radius:3px}.free-tier-warning{margin-top:8px!important;color:var(--warning)!important;line-height:1.5!important}.preview-badge{position:absolute;top:8px;left:8px;right:8px;font-size:10px;padding:4px 8px;border-radius:3px;background:#f7768e38;color:var(--danger);border:1px solid rgba(247,118,142,.4);z-index:2;pointer-events:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;cursor:default;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-badge.bundling{background:#7aa2f738;color:var(--accent);border-color:#7aa2f766}.preview-loading{position:absolute;inset:0;z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0b1020;color:var(--fg-2, #c0c5d4);user-select:none}.preview-loading-spinner{width:30px;height:30px;border-radius:50%;border:3px solid rgba(122,162,247,.25);border-top-color:var(--accent, #7aa2f7);animation:preview-spin .7s linear infinite}@keyframes preview-spin{to{transform:rotate(360deg)}}.preview-loading-label{font-size:12px;letter-spacing:.2px}.preview-loading-bar{position:relative;width:160px;height:3px;border-radius:3px;background:#7aa2f72e;overflow:hidden}.preview-loading-bar>span{position:absolute;left:0;top:0;height:100%;width:40%;border-radius:3px;background:var(--accent, #7aa2f7);animation:preview-indeterminate 1.1s ease-in-out infinite}@keyframes preview-indeterminate{0%{left:-40%}to{left:100%}}@media (prefers-reduced-motion: reduce){.preview-loading-spinner{animation-duration:1.6s}.preview-loading-bar>span{animation-duration:2.2s}}.preview-title{font-weight:600}.preview-reload-btn{display:inline-flex;align-items:center;gap:5px;margin-left:10px;padding:2px 9px 2px 7px;height:22px;background:var(--bg-3);border:1px solid var(--border);border-radius:999px;color:var(--fg-0);font:inherit;font-size:11px;font-weight:600;cursor:pointer;text-transform:none;letter-spacing:0;transition:background 80ms ease,color 80ms ease,border-color 80ms ease}.preview-reload-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--fg-0)}.preview-reload-btn:active{background:var(--accent);color:#0b1020}.preview-reload-btn:active svg{transform:rotate(-180deg);transition:transform .3s ease}.preview-reload-btn svg{color:currentColor}.preview-fix-btn{margin-left:6px}.preview-fix-btn:active svg{transform:none}.preview-fix-btn.urgent{background:var(--warning);color:#0b1020;border-color:var(--warning)}.preview-fix-btn.urgent:hover{background:#e5b87a;border-color:#e5b87a;color:#0b1020}.console-entry{display:flex;gap:8px;padding:2px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;border-bottom:1px solid rgba(255,255,255,.03);white-space:pre-wrap;word-break:break-word}.console-entry .lvl{width:50px;flex-shrink:0;opacity:.7}.console-entry.error{color:var(--danger)}.console-entry.warn{color:var(--warning)}.console-entry.info,.console-entry.log{color:var(--fg-1)}.console-entry.debug{color:var(--fg-2)}.console-empty{padding:12px;color:var(--fg-2);font-size:12px;font-style:italic}.db-panel,.api-panel{display:flex;flex-direction:column;height:100%;overflow:hidden;font-size:12px;color:var(--fg-0)}.db-panel-header,.api-panel-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.db-panel-title,.api-panel-title{font-weight:600}.api-panel-sub{color:var(--fg-2);margin-left:auto}.db-dbtype{display:inline-flex;margin-left:auto;border:1px solid var(--border);border-radius:6px;overflow:hidden}.db-dbtype-btn{padding:3px 8px;background:var(--bg-1);border:none;color:var(--fg-1);font:inherit;font-size:11px;cursor:pointer}.db-dbtype-btn.active{background:var(--accent-dim);color:var(--fg-0)}.db-icon-btn{width:22px;height:22px;flex-shrink:0;background:var(--bg-2);border:1px solid var(--border);border-radius:6px;color:var(--fg-1);cursor:pointer;font-size:13px;line-height:1}.db-icon-btn:hover{color:var(--fg-0);border-color:var(--accent)}.db-status-line{display:flex;align-items:center;gap:6px;padding:5px 10px;color:var(--fg-2);border-bottom:1px solid var(--border)}.db-dot{width:7px;height:7px;border-radius:50%;background:var(--fg-2)}.db-dot-ready{background:#9ece6a}.db-dot-initializing{background:var(--warning)}.db-dot-error{background:var(--danger)}.db-empty,.db-empty-state{padding:16px;color:var(--fg-2)}.db-empty-state .db-hint{margin-top:8px;line-height:1.5;color:var(--fg-2)}.db-body{display:flex;flex:1;min-height:0}.db-tables{width:38%;max-width:180px;overflow:auto;border-right:1px solid var(--border)}.db-table-item{display:flex;width:100%;align-items:center;justify-content:space-between;gap:6px;padding:5px 10px;background:none;border:none;color:var(--fg-1);cursor:pointer;font:inherit;text-align:left}.db-table-item:hover{background:var(--bg-2)}.db-table-item.active{background:var(--bg-3);color:var(--fg-0)}.db-table-count{color:var(--fg-2);font-size:10px}.db-detail{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.db-schema{display:flex;flex-wrap:wrap;gap:4px;padding:8px;border-bottom:1px solid var(--border)}.db-col-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;background:var(--bg-2);border-radius:5px;font-size:11px}.db-col-type{color:var(--fg-2);font-size:10px}.db-pk{background:var(--accent-dim);color:var(--fg-0);border-radius:3px;padding:0 3px;font-size:9px}.db-grid-wrap{overflow:auto;flex:1}.db-grid{border-collapse:collapse;width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px}.db-grid th,.db-grid td{border:1px solid var(--border);padding:3px 6px;text-align:left;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-grid th{background:var(--bg-2);position:sticky;top:0}.db-console{border-top:1px solid var(--border);padding:8px;display:flex;flex-direction:column;gap:6px;max-height:40%;overflow:auto}.db-console-head{display:flex;align-items:center;justify-content:space-between;color:var(--fg-2);font-size:11px}.db-run-btn,.api-send{background:var(--accent-dim);color:var(--fg-0);border:1px solid var(--accent);border-radius:6px;padding:3px 12px;cursor:pointer;font:inherit;font-size:11px}.db-console-input,.api-body{width:100%;box-sizing:border-box;background:var(--bg-0);color:var(--fg-0);border:1px solid var(--border);border-radius:6px;padding:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;min-height:48px;resize:vertical}.db-console-error,.api-resp-err{color:var(--danger);font-size:11px;white-space:pre-wrap}.api-build-error{margin:8px;padding:8px 10px;border-radius:6px;font-size:11px;line-height:1.45;color:var(--fg-1);background:color-mix(in srgb,var(--danger) 14%,transparent);border:1px solid color-mix(in srgb,var(--danger) 45%,transparent)}.api-build-error strong{color:var(--danger)}.api-build-error code{font-family:var(--mono, monospace)}.api-build-error-msg{margin:6px 0 0;padding:6px;border-radius:4px;background:var(--bg-0);color:var(--fg-2);font-size:10.5px;white-space:pre-wrap;word-break:break-word;max-height:120px;overflow:auto}.api-routes{overflow:auto;flex:1}.api-route{border-bottom:1px solid var(--border)}.api-route-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 10px;background:none;border:none;color:var(--fg-0);cursor:pointer;font:inherit;text-align:left}.api-route-head:hover{background:var(--bg-2)}.api-method{font-weight:700;font-size:10px;min-width:46px}.api-path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;flex:1}.api-source{font-size:9px;padding:1px 5px;border-radius:4px;background:var(--bg-3);color:var(--fg-2)}.api-source-auto{color:var(--fg-2)}.api-source-custom{color:var(--accent)}.api-desc{padding:0 10px 6px 64px;color:var(--fg-2);font-size:11px}.api-tryit{padding:6px 10px 10px;display:flex;flex-direction:column;gap:6px;background:var(--bg-1)}.api-param{display:flex;align-items:center;gap:8px;font-size:11px}.api-param span{width:70px;color:var(--fg-2)}.api-param input{flex:1;background:var(--bg-0);color:var(--fg-0);border:1px solid var(--border);border-radius:5px;padding:3px 6px;font:inherit;font-size:11px}.api-resp{margin-top:4px}.api-resp-status{display:inline-block;font-weight:700;font-size:11px;padding:1px 6px;border-radius:4px}.api-resp-status.ok{color:#9ece6a}.api-resp-status.warn{color:var(--warning)}.api-resp-status.err{color:var(--danger)}.api-resp-body{margin:4px 0 0;background:var(--bg-0);border:1px solid var(--border);border-radius:6px;padding:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;max-height:200px;overflow:auto;white-space:pre-wrap}.api-log{border-top:1px solid var(--border);max-height:35%;overflow:auto}.api-log-head{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;color:var(--fg-2);font-size:11px;position:sticky;top:0;background:var(--bg-1)}.api-log-row{display:flex;align-items:center;gap:8px;padding:3px 10px;font-size:11px}.api-log-path{flex:1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.api-log-status.ok{color:#9ece6a}.api-log-status.warn{color:var(--warning)}.api-log-status.err{color:var(--danger)}.api-log-ms{color:var(--fg-2)}.pkg-panel{display:flex;flex-direction:column;height:100%;overflow:auto;font-size:12px;color:var(--fg-0)}.pkg-panel-header{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--border)}.pkg-panel-title{font-weight:600}.pkg-panel-sub{color:var(--fg-2);margin-left:auto}.pkg-add{display:flex;gap:6px;padding:8px 10px}.pkg-add-name{flex:2;min-width:0}.pkg-add-ver{flex:1;min-width:0}.pkg-add input{background:var(--bg-0);color:var(--fg-0);border:1px solid var(--border);border-radius:6px;padding:4px 7px;font:inherit;font-size:11px}.pkg-add-btn{background:var(--accent-dim);color:var(--fg-0);border:1px solid var(--accent);border-radius:6px;padding:4px 12px;cursor:pointer;font:inherit;font-size:11px}.pkg-add-btn:disabled{opacity:.5;cursor:default}.pkg-error{color:var(--danger);font-size:11px;padding:0 10px 6px}.pkg-hint{color:var(--fg-2);font-size:11px;line-height:1.5;padding:0 10px 8px}.pkg-hint code{background:var(--bg-2);padding:0 4px;border-radius:3px}.pkg-section-label{padding:8px 10px 4px;color:var(--fg-2);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-top:1px solid var(--border)}.pkg-list{display:flex;flex-direction:column}.pkg-item{display:flex;align-items:center;gap:8px;padding:4px 10px}.pkg-item:hover{background:var(--bg-2)}.pkg-name{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.pkg-range{color:var(--fg-2);font-size:10px;margin-left:auto}.pkg-remove{background:none;border:none;color:var(--fg-2);cursor:pointer;font-size:12px;padding:0 2px}.pkg-remove:hover{color:var(--danger)}.pkg-preinstalled{display:flex;flex-wrap:wrap;gap:4px;padding:4px 10px 12px}.pkg-chip{background:var(--bg-2);color:var(--fg-1);border-radius:5px;padding:2px 6px;font-size:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.sidebar-rail-badge.danger{background:var(--danger);color:#1a0f1f}.tests-panel{display:flex;flex-direction:column;height:100%;overflow:auto;font-size:12px;color:var(--fg-0)}.tests-panel-header{padding:8px 10px;border-bottom:1px solid var(--border)}.tests-panel-title{font-weight:600}.test-section{border-bottom:1px solid var(--border)}.test-section-head{display:flex;align-items:center;gap:8px;padding:8px 10px}.test-section-title{font-weight:600}.test-section-sub{color:var(--fg-2)}.test-run-btn{margin-left:auto;background:var(--accent-dim);color:var(--fg-0);border:1px solid var(--accent);border-radius:6px;padding:3px 10px;cursor:pointer;font:inherit;font-size:11px}.test-run-btn:disabled{opacity:.5;cursor:default}.test-summary{padding:0 10px 6px;font-size:11px}.test-summary.ok{color:#9ece6a}.test-summary.fail{color:var(--danger)}.test-summary.muted{color:var(--fg-2)}.test-list{display:flex;flex-direction:column}.test-row{display:grid;grid-template-columns:16px 1fr auto;gap:6px;align-items:baseline;padding:3px 10px}.test-row .test-icon{font-weight:700}.test-row.pass .test-icon{color:#9ece6a}.test-row.fail .test-icon{color:var(--danger)}.test-name{font-size:11px}.test-suite{color:var(--fg-2)}.test-ms{color:var(--fg-2);font-size:10px}.test-error{grid-column:2 / 4;color:var(--danger);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;white-space:pre-wrap;margin-top:2px}.tests-hint{color:var(--fg-2);font-size:11px;line-height:1.5;padding:10px}.tests-hint code{background:var(--bg-2);padding:0 4px;border-radius:3px}.admin-view-badge{display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:2px 10px;border-radius:6px;background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--fg-0);border:1px solid var(--accent)}.pane-loading{display:flex;align-items:center;justify-content:center;height:100%;color:var(--fg-2);font-size:13px}.mobile-tabbar{display:none}@media (max-width: 768px){.app-root{display:flex;flex-direction:column;width:100vw;height:100vh;height:100dvh;gap:0}.topbar{flex:0 0 auto;flex-wrap:wrap;height:auto;min-height:44px;padding:6px 10px;row-gap:6px}.topbar .lib-chips,.topbar .agent-toggle{display:none}.topbar .title{font-size:13px}.app-root>.sidebar-tabs,.app-root>.pane.editor,.app-root>.pane.preview,.app-root>.pane.console,.app-root>.chat{display:none!important;grid-area:auto;width:auto;height:auto;flex:1 1 auto;min-width:0;min-height:0}.app-root.mobile-view-files>.sidebar-tabs,.app-root.mobile-view-editor>.pane.editor,.app-root.mobile-view-preview>.pane.preview,.app-root.mobile-view-console>.pane.console,.app-root.mobile-view-chat>.chat{display:flex!important}.app-root [class^=resizer-],.app-root .pane-resizer{display:none!important}.emulator-pane{padding:8px;overflow:auto}.mobile-tabbar{flex:0 0 auto;display:flex;border-top:1px solid var(--border);background:var(--bg-1);padding-bottom:env(safe-area-inset-bottom,0px)}.mobile-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:52px;background:transparent;border:none;color:var(--fg-2);font-size:10px;cursor:pointer}.mobile-tab.active{color:var(--accent)}.mobile-tab-glyph{font-size:18px;line-height:1}.sidebar-rail-btn{height:44px;width:44px}.icon-btn{min-width:32px;min-height:32px}.modal-backdrop{padding:8px}.modal{max-width:100%!important;min-width:0!important;width:100%;max-height:92dvh}.build-apk-modal{min-width:0!important}}
