*{box-sizing:border-box;margin:0;padding:0}:root{--bg-primary:#f5f5f7;--bg-secondary:#fff;--bg-tertiary:#fafafa;--text-primary:#1d1d1f;--text-secondary:#86868b;--text-tertiary:#6e6e73;--accent:#0071e3;--accent-hover:#0077ed;--border:#00000014;--shadow-sm:0 2px 8px #0000000a;--shadow-md:0 4px 16px #00000014;--shadow-lg:0 8px 32px #0000001f;--radius-sm:12px;--radius-md:16px;--radius-lg:24px;--transition:all 0.2s cubic-bezier(0.25,0.1,0.25,1)}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f5f7;background:var(--bg-primary);color:#1d1d1f;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:15px;letter-spacing:-.01em;line-height:1.5;overflow:hidden}code{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Monaco,Consolas,monospace}::selection{background:#0071e333}.App{background:var(--bg-primary);display:flex;flex-direction:column;height:100vh}.App-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:16px 32px}.header-content{align-items:center;display:flex;gap:12px}.App-header h1{color:var(--text-primary);font-size:20px;font-weight:600;letter-spacing:-.02em;margin:0}.separator{color:var(--border);font-size:20px;font-weight:300}.subtitle{color:var(--text-secondary);font-size:15px;font-weight:400;margin:0}.main-container{display:flex;flex:1 1;gap:16px;overflow:hidden;padding:16px}.login-screen{align-items:center;display:flex;height:100vh;justify-content:center}.login-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 24px #0000004d;padding:3rem 2.5rem;text-align:center}.login-title{color:var(--text-primary);font-size:24px;font-weight:600;letter-spacing:-.02em;margin:0 0 .5rem}.login-subtitle{color:var(--text-secondary);font-size:14px;margin:0 0 2rem}.login-input-row{display:flex;gap:.5rem;justify-content:center}.login-input{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:14px;outline:none;padding:.65rem 1rem;width:240px}.login-input:focus{border-color:#4f46e5;border-color:var(--accent,#4f46e5)}.login-button{background:#4f46e5;background:var(--accent,#4f46e5);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:.65rem 1.5rem}.login-button:hover{opacity:.9}.chat-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;min-width:380px;overflow:hidden;width:420px}.chat-panel-header{align-items:center;border-bottom:1px solid var(--border);color:var(--text-primary);display:flex;font-size:15px;font-weight:600;justify-content:space-between;padding:12px 24px}.reset-btn{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:500;padding:5px 12px;transition:var(--transition)}.reset-btn:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text-primary)}.reset-btn:disabled{cursor:not-allowed;opacity:.4}.messages-container{flex:1 1;overflow-y:auto;padding:24px;scroll-behavior:smooth}.messages-container::-webkit-scrollbar{width:6px}.messages-container::-webkit-scrollbar-track{background:#0000}.messages-container::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}.welcome-message{padding:40px 20px;text-align:center}.welcome-message h2{color:var(--text-primary);font-size:22px;font-weight:600;letter-spacing:-.02em;margin-bottom:8px}.welcome-message>p{color:var(--text-secondary);font-size:15px;margin-bottom:32px}.examples{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px;text-align:left}.examples p{color:var(--text-tertiary);font-size:13px;font-weight:500;letter-spacing:.02em;margin-bottom:12px;text-transform:uppercase}.examples ul{list-style:none;padding-left:0}.examples li{background:var(--bg-secondary);border:1px solid #0000;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:14px;margin-bottom:8px;padding:10px 14px;transition:var(--transition)}.examples li:last-child{margin-bottom:0}.examples li:hover{background:var(--bg-secondary);border-color:var(--border);color:var(--text-primary)}.message{animation:fadeIn .3s ease;margin-bottom:20px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message.user{align-items:flex-end;display:flex;flex-direction:column}.message.user .message-content{background:var(--accent);border-radius:18px 18px 4px 18px;color:#fff;max-width:80%;padding:14px 18px;text-shadow:0 1px 2px #0000001a}.message.assistant{align-items:flex-start;display:flex;flex-direction:column}.message.assistant .message-content{background:var(--bg-tertiary);border:1px solid #0000001a;border-radius:18px 18px 18px 4px;color:var(--text-primary);max-width:80%;overflow:hidden;padding:14px 18px}.message-label{color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.03em;margin-bottom:4px;text-transform:uppercase}.message-content{font-size:15px;line-height:1.5}.message.assistant .message-content p{margin:0 0 8px}.message.assistant .message-content p:last-child{margin-bottom:0}.message.assistant .message-content h1,.message.assistant .message-content h2,.message.assistant .message-content h3{font-weight:600;margin:12px 0 6px}.message.assistant .message-content h1{font-size:1.15em}.message.assistant .message-content h2{font-size:1.05em}.message.assistant .message-content h3{font-size:1em}.message.assistant .message-content ol,.message.assistant .message-content ul{margin:4px 0;padding-left:20px}.message.assistant .message-content li{margin-bottom:2px}.message.assistant .message-content code{background:#00000014;border-radius:4px;font-family:SF Mono,Fira Code,monospace;font-size:.9em;padding:1px 5px}.message.assistant .message-content pre{background:#00000014;border-radius:6px;margin:8px 0;overflow-x:auto;padding:10px 12px}.message.assistant .message-content pre code{background:none;padding:0}.message.assistant .message-content strong{font-weight:600}.message.user .message-content{white-space:pre-wrap}.message.user .message-content .user-content-with-images{white-space:normal}.message.user .message-content .user-content-with-images span{white-space:pre-wrap}.plan-block{border-bottom:1px solid var(--border);border-left:3px solid var(--accent);border-radius:2px;margin-bottom:12px;padding:12px 14px}.plan-label{color:var(--accent);font-size:11px;font-weight:600;letter-spacing:.04em;margin-bottom:8px;text-transform:uppercase}.tool-call-feed{flex-direction:column;font-family:SF Mono,Fira Code,monospace;font-size:13px;gap:4px}.tool-call-feed,.tool-call-item{display:flex;min-width:0;overflow:hidden}.tool-call-item{align-items:center;color:var(--text-secondary);gap:6px;padding:2px 0}.tool-call-item.done{color:var(--text-tertiary)}.tool-call-item.error{color:#e53e3e}.tool-call-item.running{color:var(--accent)}.tool-call-item.reviewing{color:#d69e2e}.tool-call-item.skipped{color:var(--text-tertiary);font-style:italic}.tool-call-status{flex-shrink:0;text-align:center;width:14px}.tool-call-name{flex-shrink:1;font-weight:500;min-width:0}.tool-call-msg,.tool-call-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-call-msg{color:var(--text-tertiary);font-size:11px;max-width:200px}.loading{display:flex;gap:6px;padding:4px 0}.dot{animation:pulse 1.4s ease-in-out infinite both;background:var(--text-secondary);border-radius:50%;height:8px;width:8px}.dot:first-child{animation-delay:-.32s}.dot:nth-child(2){animation-delay:-.16s}@keyframes pulse{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.input-area{background:var(--bg-tertiary);border-top:1px solid var(--border);display:flex;flex-direction:column}.selection-indicator{background:#0071e30d;border-bottom:1px solid var(--border);border-left:3px solid var(--accent);color:var(--accent);font-size:12px;font-weight:500;padding:6px 20px}.input-container{align-items:flex-end;display:flex;gap:8px;padding:16px 20px}.input-container textarea{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);flex:1 1;font-family:inherit;font-size:15px;line-height:1.4;max-height:150px;min-height:52px;padding:14px 18px;resize:none;transition:var(--transition)}.input-container textarea::placeholder{color:var(--text-secondary)}.input-container textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0071e31a;outline:none}.input-container button.send-btn{background:var(--accent);border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-size:15px;font-weight:500;padding:14px 24px;transition:var(--transition);white-space:nowrap}.input-container button.send-btn:hover:not(:disabled){background:var(--accent-hover);transform:scale(1.02)}.input-container button.send-btn:active:not(:disabled){transform:scale(.98)}.input-container button.send-btn:disabled{background:var(--text-secondary);cursor:not-allowed;opacity:.5}.image-upload-btn{align-items:center;background:var(--bg-secondary);border:1px solid var(--border);border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:52px;justify-content:center;padding:0;transition:var(--transition);width:52px}.image-upload-btn:hover{background:#0071e30d;border-color:var(--accent);color:var(--accent)}.image-previews{border-bottom:1px solid var(--border);display:flex;gap:8px;overflow-x:auto;padding:10px 20px}.image-preview{border:1px solid var(--border);border-radius:var(--radius-sm);flex-shrink:0;height:60px;overflow:hidden;position:relative;width:60px}.image-preview img{height:100%;object-fit:cover;width:100%}.remove-image{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:18px;justify-content:center;line-height:18px;padding:0;position:absolute;right:2px;text-align:center;top:2px;width:18px}.remove-image:hover{background:#e53e3ee6}.user-content-with-images{display:flex;flex-direction:column;gap:8px}.chat-image-thumbnail{border-radius:8px;max-height:150px;max-width:200px;object-fit:contain}.feature-tree-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2;border:1px solid var(--border);border-radius:8px;box-shadow:0 2px 8px #0000001f;display:flex;flex-direction:column;font-size:.85em;max-height:50vh;max-width:260px;overflow:hidden;position:absolute;right:12px;top:8px;z-index:10}.feature-tree-panel.collapsed{max-height:none}.feature-tree-header{align-items:center;border-bottom:1px solid var(--border);cursor:pointer;display:flex;justify-content:space-between;padding:8px 12px;-webkit-user-select:none;user-select:none}.feature-tree-panel.collapsed .feature-tree-header{border-bottom:none}.feature-tree-title{color:var(--text-primary);font-size:.95em;font-weight:600}.feature-tree-toggle{color:var(--text-secondary);font-size:.7em}.feature-tree-content{overflow-y:auto;padding:8px}.body-node{margin-bottom:4px}.body-header{align-items:center;border-radius:4px;color:var(--text-primary);cursor:pointer;display:flex;font-weight:600;gap:6px;padding:4px 6px}.body-header:hover{background:#0000000a}.toggle{font-size:.7em;width:12px}.body-icon{font-size:.8em}.features-list{border-left:1px solid var(--border);margin-left:18px;padding-left:8px}.feature-node{align-items:center;border-radius:4px;color:var(--text-secondary);display:flex;gap:6px;padding:3px 6px}.feature-node:hover{background:#0000000a;cursor:pointer}.feature-node.selected{background:#0071e31a;color:var(--accent)}.body-header.selected{background:#0071e314;color:var(--accent)}.feature-icon{font-size:.85em;text-align:center;width:16px}.feature-name{flex:1 1}.feature-type{color:var(--text-tertiary);font-size:.85em}.feature-detail{color:var(--accent);font-size:.85em;font-weight:500}.sketch-viewer-panel{animation:sketchFadeIn .2s ease;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffd9;border:1px solid var(--border);border-radius:var(--radius-md);bottom:12px;box-shadow:var(--shadow-md);left:12px;overflow:hidden;position:absolute;width:320px;z-index:15}@keyframes sketchFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.sketch-viewer-header{align-items:center;border-bottom:1px solid var(--border);color:var(--text-primary);display:flex;font-size:12px;font-weight:600;justify-content:space-between;padding:8px 12px}.sketch-viewer-title{align-items:center;display:flex;gap:6px}.sketch-viewer-title .icon{color:var(--accent)}.sketch-viewer-close{align-items:center;background:#0000;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;display:flex;font-size:14px;height:22px;justify-content:center;transition:var(--transition);width:22px}.sketch-viewer-close:hover{background:#00000014;color:var(--text-primary)}.sketch-viewer-svg{background:#fafafa;display:block;height:250px;width:100%}.model-viewer{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);flex:1 1;flex-direction:column;overflow:hidden;position:relative}.model-viewer,.viewer-header{background:var(--bg-secondary);display:flex}.viewer-header{align-items:center;border-bottom:1px solid var(--border);gap:16px;justify-content:space-between;padding:16px 24px}.viewer-header h3{color:var(--text-primary);font-size:17px;font-weight:600;letter-spacing:-.01em;margin:0}.view-mode-selector{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;gap:4px;padding:4px}.view-mode-selector button{background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;padding:6px 16px;transition:var(--transition)}.view-mode-selector button:hover:not(:disabled){background:#0000000d;color:var(--text-primary)}.view-mode-selector button.active{background:var(--bg-secondary);box-shadow:0 1px 3px #0000001a;color:var(--accent)}.view-mode-selector button:disabled{cursor:not-allowed;opacity:.4}.viewer-header-right{align-items:center;display:flex;gap:12px}.download-dropdown{position:relative}.download-trigger{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;padding:6px 14px;transition:var(--transition)}.download-trigger:hover{border-color:var(--text-secondary);color:var(--text-primary)}.download-menu{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);min-width:140px;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.download-menu button{background:none;border:none;color:var(--text-primary);cursor:pointer;display:block;font-size:13px;font-weight:500;padding:8px 14px;text-align:left;transition:var(--transition);width:100%}.download-menu button:hover{background:var(--accent);color:#fff}.parts-list{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:13px;padding:6px 12px}.viewer-area{flex:1 1;overflow:hidden;position:relative}.viewer-canvas{background:linear-gradient(180deg,#fafafa,#f0f0f2);height:100%;width:100%}.empty-viewer{left:50%;pointer-events:none;position:absolute;text-align:center;top:50%;transform:translate(-50%,-50%)}.empty-viewer p{color:var(--text-secondary);font-size:17px;font-weight:500;margin:0}.empty-viewer .hint{color:var(--text-tertiary);font-size:14px;font-weight:400;margin-top:8px}
/*# sourceMappingURL=main.d37dcacf.css.map*/