:root{--color-brand-primary:#0078d4;--color-brand-primary-hover:#106ebe;--color-brand-primary-active:#005a9e;--color-brand-light:#deecf9;--color-brand-lighter:#eff6fc;--color-neutral-background-1:#fff;--color-neutral-background-2:#faf9f8;--color-neutral-background-3:#f3f2f1;--color-neutral-background-4:#edebe9;--color-neutral-background-5:#d2d0ce;--color-neutral-background-inverted:#1b1a19;--color-neutral-background-dark:#252423;--color-neutral-foreground-1:#242424;--color-neutral-foreground-2:#424242;--color-neutral-foreground-3:#616161;--color-neutral-foreground-disabled:#a19f9d;--color-neutral-foreground-on-brand:#fff;--color-neutral-stroke-1:#d1d1d1;--color-neutral-stroke-2:#e1dfdd;--color-success:#107c10;--color-success-background:#dff6dd;--color-warning:#ffb900;--color-warning-background:#fff4ce;--color-error:#d13438;--color-error-background:#fde7e9;--color-info:#0078d4;--color-info-background:#deecf9;--color-copilot-gradient-start:#7b2ff2;--color-copilot-gradient-end:#0078d4;--color-copilot-bg:#f7f7ff;--font-family-base:"Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--font-family-mono:"Cascadia Code", "Fira Code", Consolas, "Courier New", monospace;--font-size-100:10px;--font-size-200:12px;--font-size-300:14px;--font-size-400:16px;--font-size-500:20px;--font-size-600:24px;--font-size-700:28px;--font-size-800:32px;--font-size-900:40px;--font-weight-regular:400;--font-weight-semibold:600;--font-weight-bold:700;--line-height-100:14px;--line-height-200:16px;--line-height-300:20px;--line-height-400:22px;--line-height-500:28px;--line-height-600:32px;--spacing-xxs:2px;--spacing-xs:4px;--spacing-s:8px;--spacing-m:12px;--spacing-l:16px;--spacing-xl:24px;--spacing-xxl:32px;--spacing-xxxl:48px;--radius-none:0;--radius-small:2px;--radius-medium:4px;--radius-large:8px;--radius-xlarge:12px;--radius-circular:9999px;--shadow-2:0 1px 2px #0000001f;--shadow-4:0 2px 4px #00000024;--shadow-8:0 4px 8px #00000024;--shadow-16:0 8px 16px #00000024;--shadow-28:0 14px 28px #00000024;--duration-fast:.1s;--duration-normal:.2s;--duration-slow:.3s;--duration-slower:.4s;--easing-ease:cubic-bezier(.33, 0, .67, 1);--easing-ease-out:cubic-bezier(0, 0, 0, 1);--easing-ease-in:cubic-bezier(1, 0, 1, 1);--topbar-height:48px;--chat-max-width:760px;--sessions-sidebar-width:260px;--file-viewer-width:420px}html,body,.app-shell{transition:background-color var(--duration-normal) var(--easing-ease), color var(--duration-normal) var(--easing-ease)}[data-theme=dark]{--color-brand-light:#004578;--color-brand-lighter:#003263;--color-neutral-background-1:#1b1a19;--color-neutral-background-2:#252423;--color-neutral-background-3:#292827;--color-neutral-background-4:#323130;--color-neutral-background-5:#3b3a39;--color-neutral-background-inverted:#f3f2f1;--color-neutral-background-dark:#141414;--color-neutral-foreground-1:#f3f2f1;--color-neutral-foreground-2:#c8c6c4;--color-neutral-foreground-3:#a19f9d;--color-neutral-foreground-disabled:#605e5c;--color-neutral-stroke-1:#484644;--color-neutral-stroke-2:#3b3a39;--color-success-background:#093807;--color-warning-background:#3a2e02;--color-error-background:#3b0509;--color-info-background:#002848;--color-copilot-bg:#1a1a2e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-family-base);font-size:var(--font-size-300);line-height:var(--line-height-300);color:var(--color-neutral-foreground-1);background:var(--color-neutral-background-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{flex-direction:column;height:100vh;display:flex;overflow:hidden}.topbar{height:var(--topbar-height);padding:0 var(--spacing-l);background:var(--color-brand-primary);color:var(--color-neutral-foreground-on-brand);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.topbar-brand{align-items:center;gap:var(--spacing-s);font-size:var(--font-size-400);font-weight:var(--font-weight-semibold);color:inherit;cursor:pointer;min-width:36px;min-height:36px;text-decoration:none;display:flex}.topbar-brand img{filter:brightness(0)invert();width:20px;height:20px}.topbar-actions{align-items:center;gap:var(--spacing-m);display:flex}.topbar-btn{border-radius:var(--radius-medium);width:36px;height:36px;color:var(--color-neutral-foreground-on-brand);cursor:pointer;transition:background var(--duration-fast) var(--easing-ease);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.topbar-btn:hover,.topbar-btn:focus-visible{background:#ffffff26}.topbar-btn:active{background:#ffffff40}.topbar-btn.active{background:#fff3}.topbar-debug-badge{width:auto;font-size:12px;font-weight:600;font-family:var(--font-mono,"Cascadia Code", "Fira Code", monospace);color:#ffe680;border-radius:var(--radius-medium);letter-spacing:.02em;background:#ffc80040;padding:2px 10px}.topbar-debug-badge:hover,.topbar-debug-badge:focus-visible{background:#ffc80066}.topbar-user{align-items:center;gap:var(--spacing-s);padding:var(--spacing-xs) var(--spacing-s);border-radius:var(--radius-medium);cursor:pointer;color:inherit;font-size:var(--font-size-200);background:0 0;border:none;display:flex}.topbar-user:hover{background:#ffffff26}.topbar-signin{align-items:center;gap:var(--spacing-s);border-radius:var(--radius-circular);border-style:solid;border-width:1px;border-color:var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-1);font-family:var(--font-family-base);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:box-shadow var(--duration-fast) var(--easing-ease), border-color var(--duration-fast) var(--easing-ease);padding:6px 16px;display:inline-flex}.topbar-signin:hover{border-color:var(--color-neutral-stroke-1);box-shadow:var(--shadow-4)}.topbar-signin:active{box-shadow:none}.topbar-signin-logo{flex-shrink:0}.topbar-avatar{border-radius:var(--radius-circular);width:30px;height:30px;font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);color:inherit;background:#fff3;border:1.5px solid #ffffff59;flex-shrink:0;justify-content:center;align-items:center;display:flex}.topbar-avatar-img{border-radius:var(--radius-circular);object-fit:cover;width:28px;height:28px}.topbar-user-name{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.topbar-user-menu{position:relative}.topbar-user-trigger{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-circular);color:inherit;font-family:var(--font-family-base);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast) var(--easing-ease);background:0 0;border:none;padding:4px 10px 4px 4px;display:inline-flex}.topbar-user-trigger:hover,.topbar-user-trigger:focus-visible{background:#ffffff26}.topbar-user-trigger:active{background:#ffffff40}.topbar-user-dropdown{min-width:180px;padding:var(--spacing-s) 0;border-radius:var(--radius-medium);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-1);box-shadow:var(--shadow-16);border:1px solid var(--color-neutral-stroke-2);z-index:200;flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0}.topbar-user-dropdown-email{padding:var(--spacing-xs) var(--spacing-m);font-size:var(--font-size-100);color:var(--color-neutral-foreground-3);border-bottom:1px solid var(--color-neutral-stroke-2);margin-bottom:var(--spacing-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.topbar-user-dropdown-signout{padding:var(--spacing-xs) var(--spacing-m);font-size:var(--font-size-200);color:var(--color-neutral-foreground-1);transition:background var(--duration-fast) var(--easing-ease);border-radius:0;text-decoration:none}.topbar-user-dropdown-signout:hover{background:var(--color-neutral-background-1-hover,#0000000a);color:var(--color-brand-primary)}.app-layout{flex:1;display:flex;overflow:hidden}.sessions-sidebar{width:var(--sessions-sidebar-width);background:var(--color-neutral-background-1);border-right:1px solid var(--color-neutral-stroke-2);transition:width var(--duration-slow) var(--easing-ease-out), opacity var(--duration-normal) var(--easing-ease);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sessions-sidebar.hidden{opacity:0;pointer-events:none;border-right:none;width:0}.sessions-header{padding:var(--spacing-m) var(--spacing-l);font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-neutral-stroke-2);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sessions-close-btn{border-radius:var(--radius-medium);width:28px;height:28px;color:var(--color-neutral-foreground-2);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.sessions-close-btn:hover{background:var(--color-neutral-background-3)}.sessions-new-btn{align-items:center;gap:var(--spacing-s);width:100%;padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-medium);color:var(--color-brand-primary);cursor:pointer;font-family:var(--font-family-base);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);background:0 0;display:flex}.sessions-new-btn:hover{background:var(--color-neutral-background-3)}.sessions-footer{padding:var(--spacing-s) var(--spacing-m);border-top:1px solid var(--color-neutral-stroke-2);flex-shrink:0}.sessions-list{padding:var(--spacing-s);flex:1;overflow-y:auto}.session-item{padding:var(--spacing-s) var(--spacing-m);border-radius:var(--radius-medium);font-size:var(--font-size-200);color:var(--color-neutral-foreground-2);cursor:pointer;transition:background var(--duration-fast);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:var(--spacing-s);display:flex;overflow:hidden}.session-indicator{border-radius:var(--radius-circular);background:var(--color-brand-primary);flex-shrink:0;width:6px;height:6px}.session-item:hover{background:var(--color-neutral-background-3)}.session-item.active{background:var(--color-brand-light);color:var(--color-brand-primary);font-weight:var(--font-weight-semibold)}.chat-main{background:var(--color-neutral-background-2);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.session-item{position:relative}.session-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.session-delete-btn{color:var(--color-neutral-foreground-3);cursor:pointer;border-radius:var(--radius-small);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:2px;display:none}.session-item:hover .session-delete-btn{display:flex}.session-delete-btn:hover{color:var(--color-palette-red-foreground-1,#d13438);background:var(--color-neutral-background-3)}.session-confirm-delete{align-items:center;gap:var(--spacing-s);width:100%;font-size:var(--font-size-100);display:flex}.session-confirm-label{color:var(--color-palette-red-foreground-1,#d13438);font-weight:var(--font-weight-semibold);flex:1}.session-confirm-yes,.session-confirm-no{border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-small);cursor:pointer;font-size:var(--font-size-100);color:var(--color-neutral-foreground-1);background:0 0;padding:2px 8px}.session-confirm-yes{color:var(--color-palette-red-foreground-1,#d13438);border-color:var(--color-palette-red-foreground-1,#d13438)}.session-confirm-yes:hover{background:var(--color-palette-red-foreground-1,#d13438);color:#fff}.session-confirm-no:hover{background:var(--color-neutral-background-3)}.file-viewer{width:var(--file-viewer-width);background:var(--color-neutral-background-1);border-left:1px solid var(--color-neutral-stroke-2);transition:width var(--duration-slow) var(--easing-ease-out), opacity var(--duration-normal) var(--easing-ease);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.file-viewer.hidden{opacity:0;pointer-events:none;border-left:none;width:0}:focus-visible{outline:2px solid var(--color-brand-primary);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.hidden{display:none!important}.sessions-sidebar.hidden,.file-viewer.hidden{display:flex!important}@media (width<=1024px){.file-viewer{top:var(--topbar-height);z-index:200;box-shadow:var(--shadow-28);position:fixed;bottom:0;right:0}}@media (width<=768px){.sessions-sidebar{top:var(--topbar-height);z-index:200;box-shadow:var(--shadow-28);position:fixed;bottom:0;left:0}.sessions-sidebar.hidden{width:var(--sessions-sidebar-width);opacity:1;transform:translate(-100%);display:flex!important}.file-viewer{width:100%}}.chat-container{background:url(/assets/hero-bg.svg) center/cover no-repeat, var(--color-neutral-background-2);flex-direction:column;height:100%;display:flex;overflow:hidden}[data-theme=dark] .chat-container{background-image:url(/assets/hero-bg-dark.svg)}.chat-phase{justify-content:center;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-l);background:var(--color-neutral-background-1);border-bottom:1px solid var(--color-neutral-stroke-2);font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);flex-shrink:0;display:flex}.chat-phase-step{align-items:center;gap:var(--spacing-xs);display:flex}.chat-phase-dot{border-radius:var(--radius-circular);background:var(--color-neutral-stroke-1);width:6px;height:6px;transition:background var(--duration-normal)}.chat-phase-dot.active{background:var(--color-brand-primary);box-shadow:0 0 0 2px var(--color-brand-light)}.chat-phase-dot.completed{background:var(--color-success)}.chat-phase-connector{background:var(--color-neutral-stroke-2);width:16px;height:1px}.chat-phase-connector.completed{background:var(--color-success)}.chat-message-phase-badge{font-size:var(--font-size-100);color:var(--color-brand-primary);background:var(--color-brand-light);border-radius:var(--radius-medium);margin-bottom:var(--spacing-xs);text-transform:capitalize;font-weight:var(--font-weight-semibold);letter-spacing:.02em;padding:2px 8px;display:inline-block}.chat-bubble.assistant:has(.chat-message-phase-badge){padding-top:2px}.chat-messages{scroll-behavior:smooth;flex:1;overflow-y:auto}.chat-messages-inner{max-width:var(--chat-max-width);padding:var(--spacing-xl) var(--spacing-l);gap:var(--spacing-xl);flex-direction:column;margin:0 auto;display:flex}.chat-bubble{padding:var(--spacing-m) 0;font-size:var(--font-size-300);word-wrap:break-word;animation:bubbleIn var(--duration-normal) var(--easing-ease-out);line-height:1.6}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-bubble.user{padding:var(--spacing-m) var(--spacing-l);background:var(--color-brand-primary);color:var(--color-neutral-foreground-on-brand);border-radius:var(--radius-large);border-bottom-right-radius:var(--radius-small);align-self:flex-end;max-width:80%}.chat-bubble.assistant{color:var(--color-neutral-foreground-1)}.chat-bubble.assistant a{color:var(--color-brand-primary)}.chat-bubble.assistant p{margin-bottom:var(--spacing-m)}.chat-bubble.assistant p:last-child{margin-bottom:0}.chat-bubble.assistant ul{margin:var(--spacing-s) 0;padding-left:var(--spacing-xl)}.chat-bubble.assistant ul li{margin-bottom:var(--spacing-xs)}.chat-bubble.assistant pre{background:var(--color-neutral-background-inverted);color:#d4d4d4;border-radius:var(--radius-medium);padding:var(--spacing-m);font-family:var(--font-family-mono);font-size:var(--font-size-200);margin:var(--spacing-m) 0;line-height:1.5;overflow-x:auto}.chat-bubble.assistant code{font-family:var(--font-family-mono);background:var(--color-neutral-background-3);border-radius:var(--radius-small);padding:1px 4px;font-size:.9em}.chat-bubble.assistant pre code{background:0 0;border-radius:0;padding:0}.chat-bubble.assistant .a2ui-component{margin:var(--spacing-m) 0}.chat-bubble.assistant .a2ui-component:last-child{margin-bottom:0}@keyframes componentEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.a2ui-component--entering{--enter-index:0;animation:componentEnter var(--duration-normal,.25s) var(--easing-ease-out,ease-out) both;animation-delay:calc(var(--enter-index) * 60ms);will-change:transform, opacity}.chat-bubble.assistant.streaming{contain:inline-size;overflow-anchor:auto}.model-indicator{margin-top:var(--spacing-s);color:var(--color-neutral-foreground-3,#888);opacity:.7;font-size:10px;font-family:var(--font-family-mono,monospace);letter-spacing:.02em;display:block}.typing-indicator{padding:var(--spacing-m) 0;align-items:center;gap:4px;width:fit-content;display:flex}.typing-dot{border-radius:var(--radius-circular);background:var(--color-neutral-foreground-3);width:6px;height:6px;animation:1.4s ease-in-out infinite typingBounce}.typing-dot:nth-child(2){animation-delay:.16s}.typing-dot:nth-child(3){animation-delay:.32s}@keyframes typingBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-6px)}}.chat-input-area{background:var(--color-neutral-background-2);border-top:1px solid var(--color-neutral-stroke-2);padding:var(--spacing-m) var(--spacing-l) var(--spacing-l);flex-shrink:0}.chat-usage-tracker{max-width:var(--chat-max-width);margin:0 auto var(--spacing-s);justify-content:center;align-items:center;gap:var(--spacing-s);font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);flex-wrap:wrap;display:flex}.chat-usage-segment{white-space:nowrap}.chat-usage-segment--muted,.chat-usage-divider{color:var(--color-neutral-foreground-disabled)}.chat-usage-model{color:var(--color-neutral-foreground-2);font-weight:var(--font-weight-semibold)}.chat-input-inner{max-width:var(--chat-max-width);align-items:flex-end;gap:var(--spacing-s);background:var(--color-neutral-background-1);border:1px solid var(--color-neutral-stroke-1);border-radius:var(--radius-large);padding:var(--spacing-s) var(--spacing-m);transition:border-color var(--duration-fast), box-shadow var(--duration-fast);margin:0 auto;display:flex}.chat-input-inner:focus-within{border-color:var(--color-brand-primary);box-shadow:0 0 0 1px var(--color-brand-primary)}.chat-textarea{min-height:24px;max-height:160px;padding:var(--spacing-xs) 0;font-family:var(--font-family-base);font-size:var(--font-size-300);resize:none;color:var(--color-neutral-foreground-1);background:0 0;border:none;outline:none;flex:1;line-height:1.5}.chat-textarea::placeholder{color:var(--color-neutral-foreground-disabled)}.chat-send-btn{width:32px;height:32px;color:var(--color-neutral-foreground-3);cursor:pointer;transition:background var(--duration-fast);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.chat-send-btn:hover{background:var(--color-neutral-background-3)}.chat-send-btn:disabled{color:var(--color-neutral-foreground-disabled);cursor:not-allowed;background:0 0}.demo-badge{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-warning);background:var(--color-warning-background);border-radius:var(--radius-medium);margin-left:var(--spacing-s);align-items:center;padding:1px 8px;display:inline-flex}.prompt-inspector{margin-top:var(--spacing-s);font-size:var(--font-size-200)}.prompt-inspector summary{cursor:pointer;color:var(--color-neutral-foreground-2);font-size:var(--font-size-200);padding:var(--spacing-xs) 0;-webkit-user-select:none;user-select:none}.prompt-inspector summary:hover{color:var(--color-brand-primary)}.prompt-inspector .code-block{margin-top:var(--spacing-s);max-height:300px;overflow-y:auto}.prompt-inspector .code-block pre{font-size:var(--font-size-100,11px);white-space:pre-wrap;word-break:break-word}.chat-bubble.error-bubble{background:var(--color-error-background);border:1px solid var(--color-error);padding:var(--spacing-m) var(--spacing-l);border-radius:var(--radius-large);color:var(--color-neutral-foreground-1);gap:var(--spacing-s);flex-direction:column;display:flex}.error-bubble-text{font-size:var(--font-size-200)}.error-retry-btn{padding:var(--spacing-xs) var(--spacing-m);font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);color:var(--color-error);border:1px solid var(--color-error);border-radius:var(--radius-medium);cursor:pointer;transition:background var(--duration-fast);background:0 0;align-self:flex-start}.error-retry-btn:hover{background:var(--color-error);color:#fff}.chat-bubble.auto-continue{padding:var(--spacing-xs) var(--spacing-m);background:0 0;align-self:flex-end;max-width:80%}.auto-continue-label{font-size:var(--font-size-100);color:var(--color-neutral-foreground-3);opacity:.7;font-style:italic}.chat-bubble.streaming{opacity:.85;border-left:2px solid var(--color-brand-primary);padding-left:var(--spacing-m)}.streaming-text{white-space:pre-wrap;word-break:break-word}.streaming-cursor{background:var(--color-brand-primary);vertical-align:text-bottom;width:2px;height:1.1em;margin-left:2px;animation:.8s step-end infinite blink-cursor;display:inline-block}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}[data-a2ui-action]{cursor:pointer}.file-viewer-container{flex-direction:column;height:100%;display:flex}.file-viewer-header{padding:var(--spacing-s) var(--spacing-m);border-bottom:1px solid var(--color-neutral-stroke-2);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.file-viewer-title{font-size:var(--font-size-300);font-weight:var(--font-weight-semibold)}.file-viewer-close{border-radius:var(--radius-medium);width:28px;height:28px;color:var(--color-neutral-foreground-2);cursor:pointer;font-size:var(--font-size-400);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.file-viewer-close:hover{background:var(--color-neutral-background-3)}.file-viewer-tabs{border-bottom:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);flex-shrink:0;display:flex;overflow-x:auto}.file-tab{padding:var(--spacing-s) var(--spacing-l);color:var(--color-neutral-foreground-2);font-family:var(--font-family-mono);font-size:var(--font-size-200);cursor:pointer;white-space:nowrap;transition:all var(--duration-fast);background:0 0;border:none;border-bottom:2px solid #0000}.file-tab:hover{color:var(--color-neutral-foreground-1);background:var(--color-neutral-background-3)}.file-tab.active{color:var(--color-brand-primary);border-bottom-color:var(--color-brand-primary);font-weight:var(--font-weight-semibold)}.file-viewer-content{background:var(--color-neutral-background-inverted);flex:1;overflow:auto}.file-viewer-code{padding:var(--spacing-m);font-family:var(--font-family-mono);font-size:var(--font-size-200);color:#d4d4d4;white-space:pre;tab-size:2;margin:0;line-height:1.6}.file-viewer-actions{gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-m);border-top:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);flex-shrink:0;display:flex}.file-viewer-copy-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-m);border:1px solid var(--color-neutral-stroke-1);border-radius:var(--radius-medium);color:var(--color-neutral-foreground-2);font-size:var(--font-size-200);font-family:var(--font-family-base);cursor:pointer;background:0 0;display:flex}.file-viewer-copy-btn:hover{background:var(--color-neutral-background-3)}.card{background:var(--color-neutral-background-1);border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-large);padding:var(--spacing-xl);box-shadow:var(--shadow-2);transition:box-shadow var(--duration-fast)}.card:hover{box-shadow:var(--shadow-4)}.card-header{margin-bottom:var(--spacing-l);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-500);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1)}.card-subtitle{font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);margin-top:var(--spacing-xs)}.card-body{color:var(--color-neutral-foreground-2)}.card-footer{gap:var(--spacing-s);margin-top:var(--spacing-l);padding-top:var(--spacing-l);border-top:1px solid var(--color-neutral-stroke-2);display:flex}.status-badge{align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-s);border-radius:var(--radius-circular);font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;display:inline-flex}.status-badge-dot{border-radius:var(--radius-circular);width:6px;height:6px}.status-badge.success{background:var(--color-success-background);color:var(--color-success)}.status-badge.success .status-badge-dot{background:var(--color-success)}.status-badge.warning{background:var(--color-warning-background);color:#8a6d00}.status-badge.warning .status-badge-dot{background:var(--color-warning)}.status-badge.error{background:var(--color-error-background);color:var(--color-error)}.status-badge.error .status-badge-dot{background:var(--color-error)}.status-badge.info{background:var(--color-info-background);color:var(--color-info)}.status-badge.info .status-badge-dot{background:var(--color-info)}.code-block{background:var(--color-neutral-background-inverted);color:#d4d4d4;border-radius:var(--radius-medium);font-family:var(--font-family-mono);font-size:var(--font-size-200);line-height:1.5;position:relative;overflow:hidden}.code-block-header{padding:var(--spacing-s) var(--spacing-m);font-size:var(--font-size-100);color:#fff9;background:#ffffff0d;justify-content:space-between;align-items:center;display:flex}.code-block-copy{align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-s);border-radius:var(--radius-small);color:#ffffffb3;font-size:var(--font-size-100);font-family:var(--font-family-base);cursor:pointer;background:0 0;border:1px solid #fff3;display:flex}.code-block-copy:hover{background:#ffffff1a}.code-block pre{padding:var(--spacing-m);margin:0;overflow-x:auto}.code-block code{font-family:inherit}.spinner{border:2px solid var(--color-neutral-stroke-2);border-top-color:var(--color-brand-primary);border-radius:var(--radius-circular);width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.spinner.large{border-width:3px;width:40px;height:40px}.skeleton{background:linear-gradient(90deg, var(--color-neutral-background-3) 25%, var(--color-neutral-background-4) 50%, var(--color-neutral-background-3) 75%);border-radius:var(--radius-medium);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-text{height:14px;margin-bottom:var(--spacing-s)}.skeleton-heading{width:60%;height:20px;margin-bottom:var(--spacing-m)}.skeleton-block{height:80px}.btn{justify-content:center;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-l);border-radius:var(--radius-medium);border:1px solid var(--color-neutral-stroke-1);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-1);font-family:var(--font-family-base);font-size:var(--font-size-300);cursor:pointer;transition:all var(--duration-fast);text-decoration:none;display:inline-flex}.btn:hover{background:var(--color-neutral-background-3)}.btn.primary{background:var(--color-brand-primary);color:var(--color-neutral-foreground-on-brand);border-color:var(--color-brand-primary)}.btn.primary:hover{background:var(--color-brand-primary-hover)}.btn.large{padding:var(--spacing-m) var(--spacing-xxl);font-size:var(--font-size-400)}.form-group{gap:var(--spacing-xs);margin-bottom:var(--spacing-l);flex-direction:column;display:flex}.form-label{font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1)}.form-label .required{color:var(--color-error);margin-left:2px}.form-input{padding:var(--spacing-s) var(--spacing-m);border:1px solid var(--color-neutral-stroke-1);border-radius:var(--radius-medium);font-family:var(--font-family-base);font-size:var(--font-size-300);color:var(--color-neutral-foreground-1);background:var(--color-neutral-background-1);transition:border-color var(--duration-fast);outline:none}.form-input:focus{border-color:var(--color-brand-primary);box-shadow:0 0 0 1px var(--color-brand-primary)}.form-hint{font-size:var(--font-size-200);color:var(--color-neutral-foreground-3)}.form-error{font-size:var(--font-size-200);color:var(--color-error)}.tabs{border-bottom:1px solid var(--color-neutral-stroke-2);display:flex}.tab-item{padding:var(--spacing-s) var(--spacing-l);color:var(--color-neutral-foreground-2);font-family:var(--font-family-base);font-size:var(--font-size-300);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:none;border-bottom:2px solid #0000}.tab-item:hover{color:var(--color-neutral-foreground-1);background:var(--color-neutral-background-3)}.tab-item.active{color:var(--color-brand-primary);border-bottom-color:var(--color-brand-primary);font-weight:var(--font-weight-semibold)}.tab-content{padding:var(--spacing-l) 0}.sparkle-loader{align-items:center;gap:var(--spacing-m);padding:var(--spacing-m) 0;animation:sparkleIn var(--duration-normal) var(--easing-ease-out);display:flex}.sparkle-dots{align-items:center;gap:4px;display:flex}.sparkle-dot{border-radius:var(--radius-circular);background:linear-gradient(135deg, var(--color-copilot-gradient-start), var(--color-copilot-gradient-end));width:8px;height:8px;animation:1.4s ease-in-out infinite sparklePulse}.sparkle-dot:nth-child(2){animation-delay:.2s}.sparkle-dot:nth-child(3){animation-delay:.4s}@keyframes sparklePulse{0%,to{opacity:.4;transform:scale(.6)}50%{opacity:1;transform:scale(1.2)}}@keyframes sparkleIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sparkle-text{font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);font-style:italic}.file-chips-row{gap:var(--spacing-s);margin:var(--spacing-s) 0;flex-wrap:wrap;display:flex}.file-chip{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-m);border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-circular);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-2);font-family:var(--font-family-mono);font-size:var(--font-size-200);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap;display:inline-flex}.file-chip:hover{background:var(--color-brand-lighter);border-color:var(--color-brand-primary);color:var(--color-brand-primary)}.file-chip-icon{align-items:center;display:inline-flex}.file-chip-name{font-weight:var(--font-weight-semibold)}.file-chip-status{align-items:center;display:inline-flex}.file-chip-spinner{border:2px solid var(--color-neutral-stroke-2);border-top-color:var(--color-brand-primary);border-radius:var(--radius-circular);width:12px;height:12px;animation:.8s linear infinite spin}.file-chip-pending{border-radius:var(--radius-circular);background:var(--color-neutral-foreground-disabled);width:6px;height:6px}.preview-panel-header{padding:var(--spacing-m) var(--spacing-l);background:var(--color-neutral-background-1);border-bottom:1px solid var(--color-neutral-stroke-2);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.preview-panel-title{font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1)}.preview-panel-close{border-radius:var(--radius-medium);width:28px;height:28px;color:var(--color-neutral-foreground-2);cursor:pointer;transition:background var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.preview-panel-close:hover{background:var(--color-neutral-background-3)}.preview-panel-body{padding:var(--spacing-m);border-bottom:1px solid var(--color-neutral-stroke-2);flex-shrink:0;overflow-y:auto}.preview-panel-body.hidden{border-bottom:none;display:none}#file-viewer .file-viewer-header{display:none}.dialog-overlay{z-index:1000;animation:fadeIn var(--duration-fast) var(--easing-ease);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog{background:var(--color-neutral-background-1);border-radius:var(--radius-xlarge);box-shadow:var(--shadow-28);min-width:400px;max-width:600px;max-height:80vh;animation:dialogSlideIn var(--duration-normal) var(--easing-ease-out);flex-direction:column;display:flex}@keyframes dialogSlideIn{0%{opacity:0;transform:translateY(-16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.dialog-header{padding:var(--spacing-l) var(--spacing-xl);border-bottom:1px solid var(--color-neutral-stroke-2);justify-content:space-between;align-items:center;display:flex}.dialog-title{font-size:var(--font-size-500);font-weight:var(--font-weight-semibold)}.dialog-body{padding:var(--spacing-xl);flex:1;overflow-y:auto}.dialog-footer{justify-content:flex-end;gap:var(--spacing-s);padding:var(--spacing-l) var(--spacing-xl);border-top:1px solid var(--color-neutral-stroke-2);display:flex}.landing-page{padding:var(--spacing-xxxl) var(--spacing-l);background:url(/assets/hero-bg.svg) center/cover no-repeat, var(--color-neutral-background-2);animation:landingFadeIn var(--duration-normal) var(--easing-ease-out);flex-direction:column;flex:1;justify-content:flex-start;align-items:center;display:flex;overflow-y:auto}[data-theme=dark] .landing-page{background-image:url(/assets/hero-bg-dark.svg)}@keyframes landingFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.landing-inner{gap:var(--spacing-l);flex-direction:column;width:100%;max-width:900px;display:flex}.landing-brand{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-s);flex-direction:column;display:flex}.landing-brand-logo{width:64px;height:64px}.landing-brand-name{font-size:2.25rem;font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1);letter-spacing:-.02em;margin:0;line-height:1}.landing-brand-subtitle{font-size:var(--font-size-700);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1);line-height:var(--line-height-700);margin:0}.landing-hero{text-align:center;align-items:center;gap:var(--spacing-m);flex-direction:column;display:flex}.landing-hero-title{font-size:var(--font-size-900);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1);letter-spacing:-.02em;margin:0;line-height:52px}.landing-hero-input-wrap{align-items:center;width:100%;max-width:600px;display:flex;position:relative}.hero-input-icon{color:var(--color-neutral-foreground-3);pointer-events:none;align-items:center;display:inline-flex;position:absolute;left:14px}.landing-hero-input-wrap input,.landing-hero-input-wrap textarea{border-radius:var(--radius-medium);border:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);width:100%;height:44px;min-height:44px;max-height:200px;color:var(--color-neutral-foreground-1);font-family:var(--font-family-base);font-size:var(--font-size-400);transition:border-color var(--duration-fast), height var(--duration-fast);box-sizing:border-box;resize:none;outline:none;padding:11px 80px 11px 42px;line-height:1.43;overflow-y:hidden}.landing-hero-input-wrap input::placeholder,.landing-hero-input-wrap textarea::placeholder{color:var(--color-neutral-foreground-3)}.landing-hero-input-wrap input:focus,.landing-hero-input-wrap textarea:focus{border-color:var(--color-brand-primary)}.hero-input-placeholder{color:var(--color-neutral-foreground-3);font-family:var(--font-family-base);font-size:var(--font-size-400);pointer-events:none;opacity:0;white-space:nowrap;text-overflow:ellipsis;max-width:calc(100% - 126px);transition:opacity .3s;position:absolute;top:50%;left:42px;overflow:hidden;transform:translateY(-50%)}.hero-input-placeholder.visible{opacity:1}.hero-input-placeholder.dimmed{opacity:.4}.hero-send-btn{border-radius:var(--radius-medium);width:36px;height:36px;color:var(--color-neutral-foreground-1);cursor:pointer;transition:background var(--duration-fast), transform var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:4px;transform:translateY(-50%)}.hero-send-btn:hover{background:var(--color-neutral-background-3);transform:translateY(-50%)}.hero-send-btn img{width:16px;height:16px}.hero-inspire-btn{border-radius:var(--radius-medium);width:36px;height:36px;color:var(--color-neutral-foreground-3);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast), opacity var(--duration-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:50%;right:40px;transform:translateY(-50%)}.hero-inspire-btn:hover{background:var(--color-neutral-background-3);color:var(--color-neutral-foreground-1);transform:translateY(-50%)}.hero-inspire-btn:disabled{cursor:default;opacity:.5}.hero-inspire-btn.loading{animation:.8s ease-in-out infinite inspireSpinPulse}@keyframes inspireSpinPulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.hero-input-progress{border-radius:0 0 var(--radius-medium) var(--radius-medium);pointer-events:none;z-index:2;height:2px;position:absolute;bottom:1px;left:1px;right:1px;overflow:hidden}.hero-input-progress:after{content:"";background:var(--color-brand-primary);border-radius:1px;width:40%;height:100%;animation:1.2s ease-in-out infinite heroInputSlide;display:block}@keyframes heroInputSlide{0%{transform:translate(-100%)}50%{transform:translate(200%)}to{transform:translate(-100%)}}.landing-tour-prompt{text-align:center}.landing-tour-link{align-items:center;gap:var(--spacing-xxs);padding:var(--spacing-xs) var(--spacing-m);border-radius:var(--radius-medium);font-family:var(--font-family-base);font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);cursor:pointer;transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;display:inline-flex}.landing-tour-link:hover{color:var(--color-brand-primary);background:var(--color-neutral-background-1-hover,#00000008)}.framework-section{align-items:center;gap:var(--spacing-l);flex-direction:column;display:flex}.framework-separator-label{font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-3);text-transform:uppercase;letter-spacing:.08em;text-align:center}.framework-pills{justify-content:center;gap:var(--spacing-s);flex-wrap:wrap;max-width:560px;display:flex}.framework-pill{padding:var(--spacing-xs) var(--spacing-l);border-radius:var(--radius-circular);border:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-2);font-family:var(--font-family-base);font-size:var(--font-size-200);font-weight:var(--font-weight-regular);cursor:pointer;transition:all var(--duration-fast);white-space:nowrap}.framework-pill:hover{background:var(--color-brand-lighter);border-color:var(--color-brand-primary);color:var(--color-brand-primary);box-shadow:var(--shadow-2)}.landing-ide{text-align:center;align-items:center;gap:var(--spacing-l);flex-direction:column;display:flex}.landing-ide-label{font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--color-neutral-foreground-3)}.ide-cards{justify-content:center;gap:var(--spacing-m);display:flex}.ide-card{align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-l);border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-large);background:var(--color-neutral-background-1);color:var(--color-neutral-foreground-2);font-family:var(--font-family-base);font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--duration-fast);text-decoration:none;display:flex}.ide-card:hover{box-shadow:var(--shadow-4);border-color:var(--color-neutral-stroke-1);color:var(--color-neutral-foreground-1)}.ide-card-icon{align-items:center;width:24px;height:24px;display:inline-flex}.ide-card-name{white-space:nowrap}.landing-tracks{gap:var(--spacing-m);grid-template-columns:1fr 1fr;max-width:640px;margin:0 auto;display:grid}.track-card{background:var(--color-neutral-background-1);border:1px solid var(--color-neutral-stroke-2);border-radius:var(--radius-xlarge);padding:var(--spacing-m);gap:var(--spacing-xs);transition:box-shadow var(--duration-fast), border-color var(--duration-fast);cursor:default;flex-direction:column;display:flex}.track-card:hover{box-shadow:var(--shadow-8);border-color:var(--color-neutral-stroke-1)}.track-card-icon{color:var(--color-brand-primary);align-items:center;display:inline-flex}.track-card-title{font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-1);line-height:var(--line-height-300)}.track-card-desc{font-size:var(--font-size-200);color:var(--color-neutral-foreground-2);line-height:var(--line-height-200);flex:1}.track-card-link{align-items:center;gap:var(--spacing-xs);color:var(--color-brand-primary);font-size:var(--font-size-300);font-weight:var(--font-weight-semibold);cursor:pointer;font-family:var(--font-family-base);transition:color var(--duration-fast);background:0 0;border:none;padding:0;text-decoration:none;display:inline-flex}.track-card-link:hover{color:var(--color-brand-primary-hover);text-decoration:underline}.landing-page.hiding{animation:landingFadeOut var(--duration-normal) var(--easing-ease) forwards}@keyframes landingFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-12px)}}body.on-landing #topbar-sessions-toggle{display:none}.recent-sessions-section{gap:var(--spacing-m);flex-direction:column;max-height:260px;display:flex;overflow-y:auto}.recent-sessions-header{justify-content:space-between;align-items:center;display:flex}.recent-sessions-label{font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);color:var(--color-neutral-foreground-3);text-transform:uppercase;letter-spacing:.06em}.recent-sessions-clear{font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);cursor:pointer;background:0 0;border:none;padding:0}.recent-sessions-clear:hover{color:var(--color-brand-primary);text-decoration:underline}.recent-session-item{padding:var(--spacing-m) var(--spacing-l);border-radius:var(--radius-medium);border:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);cursor:pointer;transition:all var(--duration-fast);align-items:center;display:flex;position:relative}.recent-session-item:hover{border-color:var(--color-neutral-stroke-1);box-shadow:var(--shadow-4)}.recent-session-title{font-size:var(--font-size-300);font-weight:var(--font-weight-regular);color:var(--color-neutral-foreground-1);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.recent-session-date{font-size:var(--font-size-200);color:var(--color-neutral-foreground-3);white-space:nowrap;margin-left:var(--spacing-l)}.recent-session-delete{width:20px;height:20px;margin-left:var(--spacing-s);border-radius:var(--radius-small);color:var(--color-neutral-foreground-3);cursor:pointer;transition:all var(--duration-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:none}.recent-session-item:hover .recent-session-delete{display:flex}.recent-session-delete:hover{background:var(--color-neutral-background-3);color:var(--color-neutral-foreground-1)}.recent-session-content{align-items:center;gap:var(--spacing-s);width:100%;display:flex}.confirm-delete-bar{align-items:center;gap:var(--spacing-s);width:100%;padding:2px 0;display:flex}.confirm-delete-label{font-size:var(--font-size-200);color:var(--color-neutral-foreground-2);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.confirm-delete-yes,.confirm-delete-no{border-radius:var(--radius-small);font-size:var(--font-size-100);font-family:var(--font-family-base);font-weight:var(--font-weight-semibold);cursor:pointer;border:none;flex-shrink:0;padding:2px 10px}.confirm-delete-yes{background:var(--color-status-danger-background-3,#d13438);color:#fff}.confirm-delete-yes:hover{opacity:.9}.confirm-delete-no{background:var(--color-neutral-background-3);color:var(--color-neutral-foreground-2)}.confirm-delete-no:hover{background:var(--color-neutral-background-4,#e0e0e0)}.landing-footer{text-align:center;padding:var(--spacing-s) 0 var(--spacing-m);gap:var(--spacing-xs);flex-direction:column;display:flex}.landing-footer-version{font-size:var(--font-size-100);color:var(--color-neutral-foreground-4);font-family:var(--font-family-monospace,"Cascadia Code", "Consolas", monospace);letter-spacing:.02em}.landing-footer-disclaimer{font-size:var(--font-size-100);color:var(--color-neutral-foreground-4)}.landing-footer-powered{justify-content:center;align-items:center;gap:var(--spacing-xxs);font-size:var(--font-size-100);color:var(--color-neutral-foreground-3);display:inline-flex}.landing-footer-meta{justify-content:center;align-items:center;gap:var(--spacing-xs);display:flex}.landing-footer-link{font-size:var(--font-size-100);color:var(--color-neutral-foreground-3);text-decoration:none}.landing-footer-link:before{content:"("}.landing-footer-link:after{content:")"}.landing-footer-link:hover{color:var(--color-brand-primary);text-decoration:underline}.landing-footer-sha{color:var(--color-neutral-foreground-4);text-decoration:none}.landing-footer-sha:hover{color:var(--color-brand-primary);text-decoration:underline}@media (width<=768px){.landing-page{padding:var(--spacing-xl) var(--spacing-m)}.landing-hero-title{font-size:var(--font-size-700);line-height:36px}.landing-tracks{grid-template-columns:1fr}}.file-editor{width:var(--file-viewer-width);border-left:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-1);flex-shrink:0;min-width:320px;max-width:50vw;display:flex;overflow:hidden}.file-tree{border-right:1px solid var(--color-neutral-stroke-2);background:var(--color-neutral-background-inverted);color:#ccc;flex-direction:column;flex-shrink:0;width:220px;display:flex;overflow:hidden}.file-tree-header{padding:var(--spacing-s) var(--spacing-m);font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em;color:#888;border-bottom:1px solid #333;flex-shrink:0}.file-tree-list{padding:var(--spacing-xs) 0;flex:1;overflow-y:auto}.file-tree-item{align-items:center;gap:var(--spacing-xs);color:#ccc;width:100%;font-family:var(--font-family-base);font-size:var(--font-size-200);line-height:var(--line-height-200);text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;transition:background var(--duration-fast) var(--easing-ease);background:0 0;border:none;padding:3px 12px;display:flex;overflow:hidden}.file-tree-item:hover{background:#ffffff0f}.file-tree-item.selected{color:#fff;background:#ffffff1f}.file-tree-item.generating{animation:1.5s ease-in-out infinite tree-pulse}.file-tree-icon{color:#888;flex-shrink:0;align-items:center;font-size:14px;line-height:1;display:inline-flex}.file-tree-chevron{color:#666;flex-shrink:0;align-items:center;width:12px;font-size:10px;line-height:1;display:inline-flex}.file-tree-name{text-overflow:ellipsis;overflow:hidden}.code-view{color:#d4d4d4;background:#1e1e1e;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.code-view-empty{justify-content:center;align-items:center;display:flex}.code-view-placeholder{align-items:center;gap:var(--spacing-m);color:#666;font-size:var(--font-size-300);flex-direction:column;display:flex}.code-view-placeholder-icon{opacity:.5;font-size:40px}.code-view-header{padding:var(--spacing-xs) var(--spacing-m);background:#252526;border-bottom:1px solid #333;flex-shrink:0;justify-content:space-between;align-items:center;min-height:36px;display:flex}.code-view-file-info{align-items:center;gap:var(--spacing-s);min-width:0;display:flex;overflow:hidden}.code-view-filename{font-size:var(--font-size-200);font-weight:var(--font-weight-semibold);color:#ccc;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.code-view-lang-badge{font-size:10px;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-small);color:#fff;white-space:nowrap;background:#0e639c;flex-shrink:0;padding:1px 6px}.code-view-actions{align-items:center;gap:var(--spacing-xs);flex-shrink:0;display:flex}.code-view-btn{border-radius:var(--radius-small);color:#aaa;font-family:var(--font-family-base);font-size:var(--font-size-100);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;align-items:center;gap:4px;padding:2px 8px;display:flex}.code-view-btn:hover{color:#fff;background:#ffffff1a}.code-view-body{padding:var(--spacing-s) 0;flex:1;overflow:auto}.code-view-pre{font-family:var(--font-family-mono);tab-size:2;margin:0;padding:0;font-size:13px;line-height:20px}.code-line{min-height:20px;padding:0 var(--spacing-m) 0 0;display:flex}.code-line:hover{background:#ffffff0a}.code-line-number{width:48px;padding-right:var(--spacing-m);text-align:right;color:#555;-webkit-user-select:none;user-select:none;flex-shrink:0;display:inline-block}.code-line-content{white-space:pre;flex:1;min-width:0}.code-view-btn.active{color:#fff;background:#ffffff26}.code-view-diagram-body{padding:var(--spacing-m);background:#fff;overflow:auto}.diagram-preview{background:#fff;width:100%;min-height:120px}.diagram-preview-loading{align-items:center;gap:var(--spacing-s);padding:var(--spacing-m);color:#666;font-size:var(--font-size-200);display:flex}.diagram-preview-error{padding:var(--spacing-m);color:#d32f2f;font-size:var(--font-size-200);line-height:1.5}.diagram-preview-raw{margin-top:var(--spacing-s);font-family:var(--font-family-mono);color:#555;white-space:pre-wrap;word-break:break-all;font-size:12px}.code-view.generating{position:relative}.code-view-generating{align-items:center;gap:var(--spacing-s);padding:var(--spacing-xs) var(--spacing-m);color:#aaa;font-size:var(--font-size-100);background:#252526;border-top:1px solid #333;flex-shrink:0;display:flex}.generating-dot{background:var(--color-brand-primary);border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite dot-pulse}@keyframes tree-pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.app-layout.has-files .chat-main{flex:1;min-width:0}.file-tree-list::-webkit-scrollbar{width:8px}.code-view-body::-webkit-scrollbar{width:8px}.file-tree-list::-webkit-scrollbar-track{background:0 0}.code-view-body::-webkit-scrollbar-track{background:0 0}.file-tree-list::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.code-view-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.file-tree-list::-webkit-scrollbar-thumb:hover{background:#ffffff40}.code-view-body::-webkit-scrollbar-thumb:hover{background:#ffffff40}.assistant-avatar{border-radius:var(--radius-circular);margin-right:var(--spacing-s);flex-shrink:0;margin-top:2px}.chat-bubble-row{align-items:flex-start;gap:0;display:flex}.chat-bubble-row .chat-bubble.assistant{flex:1;min-width:0}.playground-page{width:100%;height:100%;font-family:var(--fontFamilyBase);flex-direction:column;display:flex;overflow:hidden}.playground-gallery-scroll{flex:1;padding:24px;overflow:hidden auto}.playground-gallery{column-count:1;column-gap:20px;max-width:1600px;margin:0 auto}@media (width>=640px){.playground-gallery{column-count:2}}@media (width>=1024px){.playground-gallery{column-count:3}}@media (width>=1440px){.playground-gallery{column-count:4}}.playground-create-scroll{background:var(--color-neutral-background-2);flex:1;padding:40px 20px;overflow:hidden auto}.playground-surfaces{flex-direction:column;gap:16px;display:flex}.playground-widget-card{transition:transform .2s,box-shadow .2s}.playground-widget-card:hover{transform:translateY(-2px)}.onboarding-tour-overlay{z-index:10000;pointer-events:none;position:fixed;inset:0}.onboarding-tour-svg{pointer-events:auto;width:100%;height:100%;position:absolute;inset:0}.onboarding-tour-tooltip{z-index:10001;background:var(--color-surface,#fff);width:320px;max-width:calc(100vw - 24px);color:var(--color-text,#1b1b1f);pointer-events:auto;border-radius:12px;padding:16px 20px;animation:.25s ease-out onboarding-tooltip-enter;position:absolute;box-shadow:0 8px 32px #0000002e,0 2px 8px #00000014}[data-theme=dark] .onboarding-tour-tooltip,.dark .onboarding-tour-tooltip{background:var(--color-surface,#2b2b2f);color:var(--color-text,#e4e4e8);box-shadow:0 8px 32px #0006,0 2px 8px #0003}@keyframes onboarding-tooltip-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.onboarding-tour-tooltip--top{animation-name:onboarding-tooltip-enter-up}@keyframes onboarding-tooltip-enter-up{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.onboarding-tour-tooltip-header{align-items:center;gap:10px;margin-bottom:8px;display:flex}.onboarding-tour-step-badge{letter-spacing:.02em;color:#fff;background:var(--color-brand,#0078d4);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:42px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.onboarding-tour-title{margin:0;font-size:15px;font-weight:600;line-height:1.3}.onboarding-tour-body{opacity:.85;margin:0 0 14px;font-size:13px;line-height:1.55}.onboarding-tour-actions{justify-content:flex-end;align-items:center;gap:8px;display:flex}.onboarding-tour-skip{color:var(--color-text-secondary,#666);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 12px;font-size:13px;transition:background .15s}.onboarding-tour-skip:hover{background:var(--color-hover,#0000000f)}.onboarding-tour-next{background:var(--color-brand,#0078d4);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:6px 18px;font-size:13px;font-weight:600;transition:background .15s}.onboarding-tour-next:hover{background:var(--color-brand-hover,#106ebe)}.onboarding-tour-next:focus-visible,.onboarding-tour-skip:focus-visible{outline:2px solid var(--color-brand,#0078d4);outline-offset:2px}@media (width<=600px){.onboarding-tour-tooltip{width:calc(100vw - 32px);left:16px!important}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-variable,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id{color:#005cc5}.hljs-regexp,.hljs-string,.hljs-meta .hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-comment,.hljs-code,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-tag,.hljs-selector-pseudo{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0}
