.spec-workspace-panel{background:var(--surface-secondary);flex:1;min-width:0;height:100%;display:flex;overflow:hidden}.spec-workspace-sidebar{background:var(--surface-primary);border-right:1px solid var(--color-border);flex-direction:column;flex-shrink:0;min-width:160px;max-width:320px;display:flex}.spec-workspace-sidebar-header{padding:var(--space-3)var(--space-4);box-sizing:border-box;border-bottom:1px solid var(--color-border);flex-shrink:0;align-items:center;min-height:44px;display:flex}.spec-workspace-sidebar-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text)}.spec-workspace-sidebar-content{padding:var(--space-2);flex:1;overflow-y:auto}.spec-workspace-sidebar-content.scope-tab{flex-direction:column;padding:0;display:flex}.spec-workspace-tabs{border-bottom:1px solid var(--color-border);flex-shrink:0;display:flex}.spec-workspace-tab{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-2)var(--space-3);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;display:flex}.spec-workspace-tab:hover{color:var(--color-text-secondary);background:var(--interactive-hover)}.spec-workspace-tab.active{color:var(--brand-teal);border-bottom-color:var(--brand-teal)}.spec-workspace-tab svg{flex-shrink:0}.spec-workspace-tab.highlight{background:#7cbdbd1a}.spec-workspace-tab.highlight:not(.active){color:var(--brand-teal);animation:2s ease-in-out infinite tab-pulse}.spec-workspace-tab-badge{font-size:9px;font-weight:var(--weight-semibold);background:var(--brand-teal);color:#fff;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.3px;padding:1px 4px}@keyframes tab-pulse{0%,to{opacity:1}50%{opacity:.7}}.spec-file-group{margin-bottom:var(--space-3);flex-direction:column;display:flex}.spec-file-group:last-of-type{margin-bottom:0}.spec-file-group-header{font-size:10px;font-weight:var(--weight-semibold);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-1)var(--space-2);margin-bottom:var(--space-1);border-bottom:1px solid var(--color-border)}.spec-scope-btn{align-items:center;gap:var(--space-2);width:calc(100% - var(--space-4));margin:var(--space-2);padding:var(--space-2)var(--space-3);background:var(--surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:left;transition:all var(--transition-fast);display:flex}.spec-scope-btn:hover{background:var(--interactive-hover);border-color:var(--color-primary)}.spec-scope-btn.selected{background:var(--color-primary-muted);border-color:var(--color-primary);color:var(--color-primary)}.spec-scope-icon{color:var(--color-primary);flex-shrink:0}.spec-scope-badge{font-size:10px;font-weight:var(--weight-semibold);background:var(--color-primary);color:#fff;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;margin-left:auto;padding:2px 8px}.spec-file-tree{flex-direction:column;display:flex}.spec-folder-header{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2)var(--space-2);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:left;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.spec-folder-header:hover{background:var(--interactive-hover)}.spec-folder-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spec-file-list{padding-left:var(--space-4);flex-direction:column;gap:1px;display:flex}.spec-file-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2)var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);text-align:left;transition:all var(--transition-fast);background:0 0;border:none;font-size:13px;display:flex}.spec-file-item:hover:not(:disabled){background:var(--interactive-hover);color:var(--color-text)}.spec-file-item.selected{background:var(--interactive-active);color:var(--color-text)}.spec-file-item.complete{color:var(--color-text)}.spec-file-item.pending{color:var(--color-text-tertiary)}.spec-file-item.pending:disabled{opacity:.5;cursor:not-allowed}.spec-file-item.active:not(.complete){color:var(--brand-teal)}.spec-file-icon{opacity:.6;flex-shrink:0}.spec-file-item.complete .spec-file-icon,.spec-file-item.active .spec-file-icon{opacity:1}.spec-file-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.spec-file-loader{color:var(--brand-teal);flex-shrink:0}.spec-file-badge{color:var(--brand-teal);flex-shrink:0;font-size:10px}.spec-file-badge.active{color:var(--brand-gold)}.spec-file-badge.context{color:var(--color-text-tertiary);opacity:.6}.spec-workspace-resize-handle{cursor:col-resize;width:4px;transition:background var(--transition-fast);background:0 0;flex-shrink:0}.spec-workspace-resize-handle:hover,.spec-workspace-resize-handle.active{background:var(--brand-teal)}.spec-workspace-viewer{background:var(--surface-primary);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.spec-viewer-empty{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);color:var(--color-text-tertiary);text-align:center;flex-direction:column;flex:1;display:flex}.spec-viewer-empty-icon{opacity:.4}.spec-viewer-empty-title{font-size:var(--text-base);font-weight:var(--weight-medium);color:var(--color-text-secondary);margin:0}.spec-viewer-empty-hint{font-size:var(--text-sm);max-width:280px;margin:0}.spec-viewer-generating{justify-content:center;align-items:center;gap:var(--space-3);color:var(--brand-teal);flex-direction:column;flex:1;display:flex}.spec-viewer-generating p{font-size:var(--text-sm);margin:0}.spec-viewer-content{flex-direction:column;flex:1;display:flex;overflow:hidden}.spec-viewer-header{align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-4);border-bottom:1px solid var(--color-border);background:var(--surface-secondary);flex-shrink:0;display:flex}.spec-viewer-header svg{color:var(--color-text-tertiary);flex-shrink:0}.spec-viewer-path{font-size:var(--text-sm);color:var(--color-text-secondary);font-family:var(--font-mono)}.spec-viewer-markdown{padding:var(--space-6);flex:1;overflow-y:auto}.spec-viewer-markdown::-webkit-scrollbar{width:6px}.spec-viewer-markdown::-webkit-scrollbar-track{background:0 0}.spec-viewer-markdown::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.spec-viewer-markdown::-webkit-scrollbar-thumb:hover{background:#0003}.spec-viewer-markdown h1{font-size:1.5rem;font-weight:var(--weight-bold);color:var(--color-text);margin:0 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border)}.spec-viewer-markdown h2{font-size:1.25rem;font-weight:var(--weight-semibold);color:var(--color-text);margin:var(--space-6)0 var(--space-3)}.spec-viewer-markdown h3{font-size:1rem;font-weight:var(--weight-semibold);color:var(--color-text);margin:var(--space-5)0 var(--space-2)}.spec-viewer-markdown p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4);line-height:1.7}.spec-viewer-markdown ul,.spec-viewer-markdown ol{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0 0 var(--space-4);padding-left:var(--space-5);line-height:1.7}.spec-viewer-markdown li{margin:var(--space-1)0}.spec-viewer-markdown strong{font-weight:var(--weight-semibold);color:var(--color-text)}.spec-viewer-markdown em{color:var(--color-text-tertiary);font-style:italic}.spec-viewer-markdown code{font-family:var(--font-mono);background:var(--surface-tertiary);border-radius:var(--radius-sm);color:var(--color-text);padding:2px 6px;font-size:.9em}.spec-viewer-markdown pre{margin:0 0 var(--space-4);padding:var(--space-4);background:var(--surface-tertiary);border-radius:var(--radius-md);overflow-x:auto}.spec-viewer-markdown pre code{background:0 0;padding:0}.spec-viewer-markdown blockquote{margin:0 0 var(--space-4);padding:var(--space-3)var(--space-4);border-left:3px solid var(--brand-teal);border-radius:0 var(--radius-sm)var(--radius-sm)0;background:#7cbdbd0f}.spec-viewer-markdown blockquote p{color:var(--color-text);margin:0}.spec-viewer-markdown table{width:100%;margin:0 0 var(--space-4);border-collapse:collapse;font-size:var(--text-sm)}.spec-viewer-markdown th,.spec-viewer-markdown td{padding:var(--space-2)var(--space-3);text-align:left;border:1px solid var(--color-border)}.spec-viewer-markdown th{background:var(--surface-secondary);font-weight:var(--weight-semibold);color:var(--color-text)}.spec-viewer-markdown td{color:var(--color-text-secondary)}.spec-viewer-markdown a{color:var(--brand-teal);text-decoration:none}.spec-viewer-markdown a:hover{text-decoration:underline}.spec-viewer-header-left{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.spec-viewer-header-actions{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.spec-viewer-edit-btn,.spec-viewer-toggle-btn,.spec-viewer-cancel-btn,.spec-viewer-discard-btn,.spec-viewer-save-btn{align-items:center;gap:var(--space-1);padding:var(--space-1)var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;display:flex}.spec-viewer-edit-btn{background:var(--surface-tertiary);color:var(--color-text-secondary)}.spec-viewer-edit-btn:hover{background:var(--interactive-hover);color:var(--color-text)}.spec-viewer-toggle-btn{color:var(--color-text-tertiary);padding:var(--space-1);background:0 0}.spec-viewer-toggle-btn:hover{background:var(--interactive-hover);color:var(--color-text)}.spec-viewer-toggle-btn.active{color:var(--brand-teal)}.spec-viewer-cancel-btn{color:var(--color-text-tertiary);padding:var(--space-1);background:0 0}.spec-viewer-save-btn{background:var(--brand-teal);color:#fff}.spec-viewer-save-btn:hover{filter:brightness(1.1)}.spec-viewer-editing-badge,.spec-viewer-unsaved-badge{font-size:var(--text-xs);font-weight:var(--weight-medium);padding:2px var(--space-2);background:var(--brand-gold);color:var(--color-text);border-radius:var(--radius-full)}.spec-viewer-discard-btn{color:var(--color-text-tertiary);background:0 0}.spec-viewer-discard-btn:hover{background:var(--interactive-hover);color:var(--color-text)}.spec-viewer-wysiwyg{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.spec-viewer-wysiwyg .wysiwyg-editor-wrapper{flex:1;min-height:0}.spec-viewer-cancel-btn{align-items:center;gap:var(--space-1);padding:var(--space-1)var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.spec-viewer-cancel-btn:hover{background:var(--surface-tertiary);color:var(--color-text)}.spec-viewer-edit-btn:focus-visible,.spec-viewer-toggle-btn:focus-visible,.spec-viewer-cancel-btn:focus-visible,.spec-viewer-save-btn:focus-visible{outline:2px solid var(--brand-teal);outline-offset:2px}.spec-viewer-keyboard-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);padding:var(--space-1)var(--space-2);display:none}@media (min-width:768px){.spec-viewer-keyboard-hint{display:block}}[data-theme=dark] .spec-viewer-markdown::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .spec-viewer-textarea::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .spec-viewer-markdown::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=dark] .spec-viewer-textarea::-webkit-scrollbar-thumb:hover{background:#fff3}.spec-mockup-folder{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.spec-mockup-folder .spec-folder-header{gap:var(--space-1)}.spec-folder-icon{color:var(--color-text-tertiary);flex-shrink:0}.spec-mockup-badge{font-size:10px;font-weight:var(--weight-medium);color:var(--color-text-tertiary);background:var(--surface-tertiary);border-radius:var(--radius-full);margin-left:auto;padding:2px 6px}.spec-mockup-list{gap:2px}.spec-mockup-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);text-align:left;transition:all var(--transition-fast);background:0 0;border:none;font-size:13px;display:flex}.spec-mockup-item:hover{background:var(--interactive-hover);color:var(--color-text)}.spec-mockup-item.selected{background:var(--interactive-active);color:var(--color-text)}.spec-mockup-item.empty{color:var(--color-text-tertiary)}.spec-mockup-item.filled{color:var(--color-text)}.spec-mockup-icon{opacity:.5;flex-shrink:0;width:14px;height:14px}.spec-mockup-item.filled .spec-mockup-icon{opacity:1}.spec-mockup-thumbnail{object-fit:cover;border:1px solid var(--color-border);border-radius:2px;flex-shrink:0;width:24px;height:18px}.spec-mockup-viewer{flex-direction:column;flex:1;display:flex;overflow:hidden}.spec-mockup-source-badge{font-size:var(--text-xs);font-weight:var(--weight-medium);padding:2px var(--space-2);background:var(--surface-tertiary);color:var(--color-text-tertiary);border-radius:var(--radius-full)}.spec-mockup-clear-btn{padding:var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.spec-mockup-clear-btn:hover{color:var(--color-error,#ef4444);background:#ef44441a}.spec-mockup-upload-ui{justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-8);border:2px dashed var(--color-border);border-radius:var(--radius-lg);margin:var(--space-4);background:var(--surface-secondary);transition:all var(--transition-fast);flex-direction:column;flex:1;display:flex}.spec-mockup-upload-ui:hover{border-color:var(--brand-teal);background:#7cbdbd0d}.spec-mockup-upload-icon{color:var(--color-text-tertiary);opacity:.5}.spec-mockup-upload-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.spec-mockup-upload-hint{font-size:var(--text-sm);color:var(--color-text-tertiary);text-align:center;max-width:280px;margin:0}.spec-mockup-upload-btn{align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);background:var(--brand-teal);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;display:flex}.spec-mockup-upload-btn:hover{filter:brightness(1.1)}.spec-mockup-upload-drag{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0}.spec-mockup-uploading{align-items:center;gap:var(--space-3);color:var(--brand-teal);flex-direction:column;display:flex}.spec-mockup-uploading p{font-size:var(--text-sm);margin:0}.spec-mockup-error{font-size:var(--text-sm);color:var(--color-error,#ef4444);margin:0}.spec-mockup-preview{padding:var(--space-4);background-color:#f5f5f5;background-image:linear-gradient(45deg,#e0e0e0 25%,#0000 25%),linear-gradient(-45deg,#e0e0e0 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#e0e0e0 75%),linear-gradient(-45deg,#0000 75%,#e0e0e0 75%);background-position:0 0,0 8px,8px -8px,-8px 0;background-size:16px 16px;flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.spec-mockup-preview img{object-fit:contain;border-radius:var(--radius-md);max-width:100%;max-height:100%;box-shadow:0 4px 12px #00000026}.spec-mockup-upload-buttons{gap:var(--space-3);flex-wrap:wrap;justify-content:center;display:flex}.spec-mockup-ai-btn{align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:#fff;border-radius:var(--radius-md);cursor:pointer;isolation:isolate;transition:transform var(--transition-fast),box-shadow var(--transition-fast);background:linear-gradient(135deg,#f59e0b 0%,#d97706 25%,#b45309 50%,#d97706 75%,#f59e0b 100%) 0 0/200% 200%;border:none;animation:4s infinite ai-bubble-gradient;display:flex;position:relative;overflow:hidden}.spec-mockup-ai-btn:before{content:"";z-index:1;pointer-events:none;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:100px;position:absolute;inset:0}.spec-mockup-ai-btn:hover{transform:translateY(-1px);box-shadow:0 4px 16px #f59e0b4d}.spec-mockup-ai-btn:active{transform:translateY(0)}@keyframes ai-bubble-gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.spec-mockup-ai-panel{padding:var(--space-4);gap:var(--space-3);margin:var(--space-4);background:var(--surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);isolation:isolate;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.spec-mockup-ai-panel:before{content:"";z-index:-1;pointer-events:none;opacity:.03;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:150px;position:absolute;inset:0}.spec-ai-panel-header{align-items:center;gap:var(--space-2);font-weight:var(--weight-semibold);color:var(--color-text);display:flex}.spec-ai-panel-header svg:first-child{color:#f59e0b}.spec-ai-panel-header span{flex:1}.spec-ai-panel-close{padding:var(--space-1);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.spec-ai-panel-close:hover{background:var(--surface-tertiary);color:var(--color-text)}.spec-ai-panel-hint{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0}.spec-ai-prompt-input{width:100%;padding:var(--space-3);font-size:var(--text-sm);background:var(--surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);resize:vertical;transition:border-color var(--transition-fast);font-family:inherit}.spec-ai-prompt-input:focus{border-color:var(--brand-teal);outline:none}.spec-ai-prompt-input::placeholder{color:var(--color-text-tertiary)}.spec-ai-generate-btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3)var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-medium);color:#fff;border-radius:var(--radius-md);cursor:pointer;isolation:isolate;transition:transform var(--transition-fast),box-shadow var(--transition-fast);background:linear-gradient(135deg,#f59e0b 0%,#d97706 25%,#b45309 50%,#d97706 75%,#f59e0b 100%) 0 0/200% 200%;border:none;animation:4s infinite ai-bubble-gradient;display:flex;position:relative;overflow:hidden}.spec-ai-generate-btn:before{content:"";z-index:1;pointer-events:none;opacity:.12;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:100px;position:absolute;inset:0}.spec-ai-generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #f59e0b4d}.spec-ai-generate-btn:active:not(:disabled){transform:translateY(0)}.spec-ai-generate-btn:disabled{opacity:.5;cursor:not-allowed;background:linear-gradient(135deg,#9ca3af 0%,#6b7280 100%);animation:none}.spec-ai-generate-btn:disabled:before{opacity:.05}.spec-mockup-source-badge.contest{isolation:isolate;color:#fff;background:linear-gradient(135deg,#f59e0b 0%,#d97706 50%,#f59e0b 100%) 0 0/200% 200%;animation:4s infinite ai-bubble-gradient;position:relative;overflow:hidden}.spec-mockup-source-badge.contest:before{content:"";z-index:1;pointer-events:none;opacity:.15;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:80px;position:absolute;inset:0}.spec-mockup-contest{padding:var(--space-4);flex-direction:column;flex:1;display:flex;overflow:auto}.spec-contest-instructions{align-items:center;gap:var(--space-2);padding:var(--space-3);font-size:var(--text-sm);color:var(--color-text-secondary);border-radius:var(--radius-md);margin-bottom:var(--space-4);isolation:isolate;background:linear-gradient(135deg,#f59e0b14 0%,#d977060f 100%);border:1px solid #f59e0b26;display:flex;position:relative;overflow:hidden}.spec-contest-instructions:before{content:"";z-index:-1;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:120px;position:absolute;inset:0}.spec-contest-grid{gap:var(--space-3);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:900px){.spec-contest-grid{grid-template-columns:repeat(2,1fr)}}.spec-contest-card{background:var(--surface-secondary);border:2px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);flex-direction:column;display:flex;position:relative;overflow:hidden}.spec-contest-card:hover{border-color:var(--color-text-tertiary)}.spec-contest-card.winner{border-color:#10b981;box-shadow:0 0 0 3px #10b9814d}.spec-contest-image{aspect-ratio:16/10;background:var(--surface-tertiary);cursor:pointer;border:none;width:100%;padding:0;position:relative;overflow:hidden}.spec-contest-image img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-fast)}.spec-contest-image:hover img{transform:scale(1.05)}.spec-contest-image-overlay{justify-content:center;align-items:center;gap:var(--space-1);color:#fff;font-size:var(--text-xs);font-weight:var(--weight-medium);opacity:0;transition:opacity var(--transition-fast);background:#00000080;flex-direction:column;display:flex;position:absolute;inset:0}.spec-contest-image:hover .spec-contest-image-overlay{opacity:1}.spec-contest-actions{padding:var(--space-2);border-top:1px solid var(--color-border);justify-content:center;align-items:center;display:flex}.spec-contest-pick{align-items:center;gap:var(--space-1);padding:var(--space-1)var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-medium);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;display:flex}.spec-contest-pick:hover{color:#10b981;background:#10b9811a;border-color:#10b981}.spec-contest-pick.active{color:#fff;background:#10b981;border-color:#10b981}.spec-contest-footer{align-items:center;gap:var(--space-2);padding:var(--space-3);font-size:var(--text-sm);color:#10b981;border-radius:var(--radius-md);margin-top:var(--space-4);background:#10b9811a;display:flex}[data-theme=dark] .spec-mockup-preview{background-color:#1a1a1a;background-image:linear-gradient(45deg,#2a2a2a 25%,#0000 25%),linear-gradient(-45deg,#2a2a2a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#2a2a2a 75%),linear-gradient(-45deg,#0000 75%,#2a2a2a 75%)}[data-theme=dark] .spec-mockup-upload-ui{background:var(--surface-tertiary)}[data-theme=dark] .spec-mockup-upload-ui:hover{background:#7cbdbd14}[data-theme=dark] .spec-ai-prompt-input,[data-theme=dark] .spec-contest-card{background:var(--surface-tertiary)}[data-theme=dark] .spec-contest-instructions{background:linear-gradient(135deg,#f59e0b1f 0%,#d9770614 100%);border-color:#f59e0b33}[data-theme=dark] .spec-mockup-ai-panel{background:var(--surface-tertiary);border-color:#ffffff14}[data-theme=dark] .spec-mockup-ai-btn:hover,[data-theme=dark] .spec-ai-generate-btn:hover:not(:disabled){box-shadow:0 4px 20px #f59e0b66}.spec-context-menu{z-index:1000;min-width:160px;padding:var(--space-1);background:var(--surface-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);position:fixed}.spec-context-menu-item{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2)var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-text);text-align:left;cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.spec-context-menu-item:hover{background:var(--interactive-hover)}.spec-context-menu-item.danger{color:var(--color-error,#ef4444)}.spec-context-menu-item.danger:hover{background:#ef44441a}.spec-mockup-section{flex-direction:column;gap:1px;display:flex}.spec-mockup-section-label{font-size:10px;font-weight:var(--weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:var(--space-2)var(--space-2)var(--space-1);margin-top:var(--space-2)}.spec-mockup-section:first-child .spec-mockup-section-label{margin-top:0}.spec-mockup-add-hint{align-items:center;gap:var(--space-1);width:100%;padding:var(--space-2);margin-top:var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;font-size:12px;display:flex}.spec-mockup-add-hint:hover{border-color:var(--brand-teal);color:var(--brand-teal);background:#7cbdbd0d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinning{animation:1s linear infinite spin}.spec-lightbox-overlay{z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000e6;justify-content:center;align-items:center;animation:.2s ease-out lightbox-fade-in;display:flex;position:fixed;inset:0}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.spec-lightbox-close{top:var(--space-4);right:var(--space-4);border-radius:var(--radius-full);color:#fff;cursor:pointer;width:48px;height:48px;transition:all var(--transition-fast);background:#ffffff1a;border:none;justify-content:center;align-items:center;display:flex;position:absolute}.spec-lightbox-close:hover{background:#fff3;transform:scale(1.1)}.spec-lightbox-image{object-fit:contain;border-radius:var(--radius-lg);max-width:90vw;max-height:90vh;animation:.2s ease-out lightbox-scale-in;box-shadow:0 8px 32px #00000080}@keyframes lightbox-scale-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}button.spec-mockup-preview{cursor:pointer;transition:opacity var(--transition-fast);border:none}button.spec-mockup-preview:hover{opacity:.9}button.spec-mockup-preview:focus-visible{outline:2px solid var(--brand-teal);outline-offset:2px}
.spec-summary-cards-panel{width:100%;height:100%;padding:var(--space-4);background:var(--surface-secondary);flex-direction:column;display:flex;overflow-y:auto}.spec-summary-toast{bottom:var(--space-6);right:var(--space-6);z-index:1000;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);background:var(--surface-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);animation:.3s ease-out toast-slide-in;display:flex;position:fixed;box-shadow:0 4px 20px #00000026}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.spec-summary-toast-content{flex-direction:column;gap:2px;display:flex}.spec-summary-toast h4{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.spec-summary-toast p{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0}.spec-summary-toast-close{width:24px;height:24px;color:var(--color-text-tertiary);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.spec-summary-toast-close:hover{background:var(--interactive-hover);color:var(--color-text)}.spec-summary-cards-grid{gap:var(--space-3);flex:1;grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(2,1fr);min-height:0;display:grid;position:relative}.spec-summary-cards-grid.has-expanded .spec-summary-card:not(.expanded){opacity:0;pointer-events:none;transition:opacity .25s ease-out}.spec-summary-card{height:100%;min-height:0;padding:var(--space-4);transform-origin:50%;will-change:transform;border-radius:20px;flex-direction:column;transition:transform .35s cubic-bezier(.4,0,.2,1),box-shadow .2s,opacity .25s ease-out;display:flex;position:relative;overflow:hidden}.spec-summary-card:not(.expanded):hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.spec-summary-card.expanded{z-index:100;width:var(--expand-width,100%);height:var(--expand-height,100%);transform:translate(var(--expand-translate-x,0),var(--expand-translate-y,0));position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.spec-summary-card-normal{flex-direction:column;flex:1;min-height:0;transition:opacity .2s ease-out;display:flex}.spec-summary-card-normal.hidden{opacity:0;pointer-events:none}.spec-summary-card-bg{background:var(--card-gradient-light);opacity:1;transition:opacity var(--transition-base);position:absolute;inset:0}.spec-summary-card.empty:not(.expanded){opacity:.7}.spec-summary-card.empty .spec-summary-card-bg{opacity:.5}.spec-summary-card.empty:not(.expanded):hover{opacity:.85}.spec-summary-card.active:not(.expanded){box-shadow:0 0 0 2px var(--brand-teal),0 4px 16px #5a9e9e33}.spec-summary-card.active:not(.expanded):after{content:"";border:2px solid var(--brand-teal);pointer-events:none;border-radius:22px;animation:2s ease-in-out infinite card-pulse;position:absolute;inset:-2px}@keyframes card-pulse{0%,to{opacity:1}50%{opacity:.5}}.spec-summary-card.complete{opacity:1}.spec-summary-card.inactive:not(.expanded){opacity:.75}.spec-summary-card.inactive:not(.expanded):hover{opacity:.9}.spec-summary-card-icon{z-index:1;border-radius:var(--radius-lg);width:36px;height:36px;color:var(--color-text);margin-bottom:var(--space-3);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb3;flex-shrink:0;justify-content:center;align-items:center;display:flex;position:relative}.spec-summary-card-content{z-index:1;min-height:0;padding-right:var(--space-1);margin-right:calc(var(--space-1)*-1);scrollbar-width:thin;scrollbar-color:#0000001a transparent;flex-direction:column;flex:1;display:flex;position:relative;overflow-y:auto}.spec-summary-card-content h4{font-size:15px;font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-2)}.spec-summary-card-empty{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;font-style:italic;line-height:1.5}.spec-summary-card-summary{font-size:var(--text-sm);color:var(--color-text);margin:0 0 var(--space-2);line-height:1.5}.spec-summary-card-bullets{padding:0 0 0 var(--space-4);font-size:var(--text-xs);color:var(--color-text-secondary);margin:0;line-height:1.6}.spec-summary-card-bullets li{margin:var(--space-1)0}.spec-summary-card-summary strong,.spec-summary-card-bullets strong{font-weight:var(--weight-semibold);color:var(--color-text)}.spec-summary-card-badge{top:var(--space-3);right:var(--space-3);z-index:2;border-radius:var(--radius-full);font-size:12px;font-weight:var(--weight-medium);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid;align-items:center;gap:6px;padding:4px 12px;display:inline-flex;position:absolute}.spec-summary-card-badge.complete{border-color:var(--color-border);color:var(--color-text-secondary);background:#ffffff80}.spec-summary-card-badge-wrapper.active{top:var(--space-3);right:var(--space-3);z-index:2;position:absolute}.spec-summary-card-badge-border{border-radius:var(--radius-full);isolation:isolate;padding:1.5px;position:relative;overflow:hidden}.spec-summary-card-badge-gradient{z-index:0;pointer-events:none;background:conic-gradient(#0000 0% 55%,#8b5cf6b3 65%,#6366f1e6 70%,#a855f7b3 75%,#0000 85% 100%);width:200%;height:200%;animation:3s linear infinite spec-badge-rotate;position:absolute;top:-50%;left:-50%}.spec-summary-card-badge-inner{z-index:1;border-radius:calc(var(--radius-full) - 1.5px);font-size:12px;font-weight:var(--weight-medium);color:#374151;background:#fff;justify-content:center;align-items:center;padding:4px 14px;display:flex;position:relative}@keyframes spec-badge-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spec-summary-card-learn-more{bottom:var(--space-3);right:var(--space-3);z-index:2;border-radius:var(--radius-full);font-size:12px;font-weight:var(--weight-medium);cursor:pointer;opacity:0;transition:all var(--transition-fast);color:var(--color-text-secondary);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffe6;border:none;align-items:center;gap:6px;padding:6px 14px;display:flex;position:absolute;transform:translateY(4px)}.spec-summary-card:not(.expanded):hover .spec-summary-card-learn-more{opacity:1;transform:translateY(0)}.spec-summary-card-learn-more:hover{color:var(--color-text);background:#fff;box-shadow:0 2px 8px #0000001a}.spec-summary-card.expanded .spec-summary-card-learn-more{display:none}.spec-summary-card-expanded{z-index:5;flex-direction:column;animation:.3s ease-out .1s both expanded-content-fade-in;display:flex;position:absolute;inset:0}@keyframes expanded-content-fade-in{0%{opacity:0}to{opacity:1}}.spec-summary-card-expanded-header{padding:var(--space-4)var(--space-5);border-bottom:1px solid #fff3;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.spec-summary-card-expanded-header-left{align-items:center;gap:var(--space-3);display:flex}.spec-summary-card-expanded-header h3{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.spec-summary-card-expanded-close{width:32px;height:32px;color:var(--color-text);cursor:pointer;border-radius:var(--radius-md);transition:all var(--transition-fast);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fff3;border:none;justify-content:center;align-items:center;display:flex}.spec-summary-card-expanded-close:hover{background:#ffffff4d}.spec-summary-card-expanded-content{padding:var(--space-5);flex:1;overflow-y:auto}.spec-summary-card-expanded-section{margin-bottom:var(--space-5)}.spec-summary-card-expanded-section h4{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-3);align-items:center;gap:var(--space-2);display:flex}.spec-summary-card-expanded-section h4 .ally-icon-inline{color:var(--color-gray-800,#1f2937);--power-icon-highlight:#f5f5f4;--power-icon-accent:#fef3c7;filter:drop-shadow(0 1px 2px #0000001a);flex-shrink:0}[data-theme=dark] .spec-summary-card-expanded-section h4 .ally-icon-inline{color:#f9fafb;--power-icon-highlight:#374151;--power-icon-accent:#4b5563;filter:drop-shadow(0 1px 3px #0000004d)}.spec-summary-card-expanded-section p{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;line-height:1.7}.spec-summary-card-captured{border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4);border-left:3px solid var(--brand-teal);background:#ffffff26}.spec-summary-card-captured h4{color:var(--color-text);margin-bottom:var(--space-3)}.spec-summary-card-captured-summary{font-size:var(--text-sm);color:var(--color-text);margin:0 0 var(--space-3);line-height:1.7}.spec-summary-card-captured-summary:last-child{margin-bottom:0}.spec-summary-card-captured-bullets{padding:0 0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text);margin:0;line-height:1.7}.spec-summary-card-captured-bullets li{margin:var(--space-2)0}.spec-summary-card-captured-bullets li:last-child{margin-bottom:0}.spec-summary-card-captured-summary strong,.spec-summary-card-captured-bullets strong{font-weight:var(--weight-semibold);color:var(--color-text)}[data-theme=dark] .spec-summary-card-captured{border-left-color:var(--brand-teal);background:#00000040}.spec-summary-card-expanded-guidance{border-radius:var(--radius-lg);padding:var(--space-4);gap:var(--space-5);background:#00000026;flex-direction:column;display:flex}.spec-summary-card-expanded-examples h4{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-3)}.spec-summary-card-example{border-radius:var(--radius-md);padding:var(--space-3)var(--space-4);margin-bottom:var(--space-3);background:#ffffff1a}.spec-summary-card-example:last-child{margin-bottom:0}.spec-summary-card-example .example-label{font-size:11px;font-weight:var(--weight-medium);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2);display:block}.spec-summary-card-example .example-prompt{font-size:var(--text-sm);color:var(--color-text);margin:0;font-style:italic;line-height:1.6}.spec-summary-card-expanded-practices h4{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:0 0 var(--space-3);padding-top:var(--space-3);border-top:1px solid #ffffff1a}.spec-summary-card-expanded-practices ul{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.spec-summary-card-expanded-practices li{font-size:var(--text-sm);color:var(--color-text-secondary);padding-left:var(--space-4);line-height:1.6;position:relative}.spec-summary-card-expanded-practices li:before{content:"→";color:var(--color-text-tertiary);position:absolute;left:0}[data-theme=dark] .spec-summary-cards-panel{background:var(--surface-dark)}[data-theme=dark] .spec-summary-card-bg{background:var(--card-gradient-dark)}[data-theme=dark] .spec-summary-card-icon{color:var(--color-text);background:#0006}[data-theme=dark] .spec-summary-card:not(.expanded):hover{box-shadow:0 8px 24px #0000004d}[data-theme=dark] .spec-summary-card.active:not(.expanded){box-shadow:0 0 0 2px var(--brand-teal),0 4px 16px #5a9e9e4d}[data-theme=dark] .spec-summary-card.expanded{box-shadow:0 25px 50px -12px #00000080}[data-theme=dark] .spec-summary-card-badge.complete{border-color:var(--color-border);color:var(--color-text-secondary);background:#0006}[data-theme=dark] .spec-summary-card-badge-gradient{background:conic-gradient(#0000 0% 55%,#a78bfacc 65%,#818cf8e6 70%,#c084fccc 75%,#0000 85% 100%)}[data-theme=dark] .spec-summary-card-badge-inner{color:#e5e7eb;background:#1f2937}[data-theme=dark] .spec-summary-card-learn-more{color:var(--color-text-secondary);background:#0009}[data-theme=dark] .spec-summary-card-learn-more:hover{color:var(--color-text);background:#000c}[data-theme=dark] .spec-summary-card-expanded-header{border-bottom-color:#ffffff1a}[data-theme=dark] .spec-summary-card-expanded-close{background:#0000004d}[data-theme=dark] .spec-summary-card-expanded-close:hover{background:#00000080}[data-theme=dark] .spec-summary-card-expanded-guidance{background:#00000040}[data-theme=dark] .spec-summary-card-example{background:#ffffff0d}[data-theme=dark] .spec-summary-card-expanded-practices h4{border-top-color:#ffffff14}[data-theme=dark] .spec-summary-toast{background:var(--surface-dark);border-color:var(--color-border)}@media (max-width:600px){.spec-summary-cards-grid{grid-template-columns:1fr}.spec-summary-card{min-height:140px}}.spec-summary-cards-panel::-webkit-scrollbar{width:var(--space-1-5)}.spec-summary-cards-panel::-webkit-scrollbar-track{background:0 0}.spec-summary-cards-panel::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.spec-summary-cards-panel::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dark] .spec-summary-cards-panel::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .spec-summary-cards-panel::-webkit-scrollbar-thumb:hover{background:#fff3}.spec-summary-card-content::-webkit-scrollbar{width:4px}.spec-summary-card-content::-webkit-scrollbar-track{background:0 0}.spec-summary-card-content::-webkit-scrollbar-thumb{background:#00000026;border-radius:2px}.spec-summary-card-content::-webkit-scrollbar-thumb:hover{background:#00000040}[data-theme=dark] .spec-summary-card-content::-webkit-scrollbar-thumb{background:#ffffff26}[data-theme=dark] .spec-summary-card-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.spec-summary-card-expanded-content::-webkit-scrollbar{width:6px}.spec-summary-card-expanded-content::-webkit-scrollbar-track{background:0 0}.spec-summary-card-expanded-content::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.spec-summary-card-expanded-content::-webkit-scrollbar-thumb:hover{background:#ffffff4d}
.specification-backdrop{z-index:10000;padding:var(--space-6);-webkit-backdrop-filter:blur(12px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.specification-modal{background:var(--color-warm-50,var(--surface-primary));border-radius:var(--radius-modal,24px);width:680px;height:700px;max-width:calc(100vw - var(--space-12));max-height:calc(100vh - var(--space-12));flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 0 0 1px #00000008,0 8px 24px #0000000a,0 16px 48px #0000000f,0 24px 64px #00000014}.specification-modal:before{content:"";z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");background-size:var(--grain-size,180px);opacity:var(--grain-opacity-subtle,.02);border-radius:inherit;position:absolute;inset:0}.specification-header{padding:var(--space-5)var(--space-6);z-index:1;border-bottom:1px solid #0000000f;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.specification-header-left{align-items:flex-start;gap:var(--space-3);flex:1;min-width:0;display:flex}.specification-header-guidance{flex-direction:column;gap:2px;min-width:0;display:flex}.specification-guidance-title{font-size:15px;font-weight:var(--weight-semibold);color:var(--color-text);line-height:1.3}.specification-guidance-hint{font-size:var(--text-sm);font-weight:var(--weight-normal);color:var(--color-text-secondary);line-height:var(--leading-normal)}.specification-close{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.specification-close:hover{background:var(--interactive-hover);color:var(--color-text)}.specification-progress{padding:var(--space-3)var(--space-5)var(--space-4);border-bottom:1px solid var(--color-border);flex-shrink:0}.specification-progress-bar{background:var(--interactive-hover);height:3px;margin-bottom:var(--space-2-5);border-radius:2px;overflow:hidden}.specification-progress-fill{background:linear-gradient(135deg,var(--brand-gold)0%,var(--brand-teal)100%);border-radius:2px;height:100%;transition:width .4s}.specification-progress-sections{justify-content:space-between;gap:var(--space-2);display:flex}.specification-progress-section{font-size:11px;font-weight:var(--weight-medium);color:var(--color-text-tertiary);transition:color var(--transition-base)}.specification-progress-section.completed{color:var(--brand-teal)}.specification-progress-section.active{color:var(--color-text);font-weight:var(--weight-semibold)}.specification-progress-section .section-check{margin-right:2px}.specification-messages{padding:var(--space-6)var(--space-8);gap:var(--space-4);z-index:1;flex-direction:column;flex:1;display:flex;position:relative;overflow-y:auto}.specification-messages::-webkit-scrollbar{width:var(--space-1-5)}.specification-messages::-webkit-scrollbar-track{background:0 0}.specification-messages::-webkit-scrollbar-thumb{background:#0000001a;border-radius:3px}.specification-messages::-webkit-scrollbar-thumb:hover{background:#0003}.specification-message{gap:var(--space-3);display:flex}.specification-message.user{flex-direction:row-reverse;align-self:flex-end;max-width:90%}.specification-message.assistant{align-self:flex-start;width:100%}.specification-message-avatar{background:var(--interactive-hover);width:32px;height:32px;color:var(--color-text-tertiary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.specification-message-content{font-size:var(--text-sm);line-height:1.6}.specification-message.user .specification-message-content{padding:var(--space-3)var(--space-4);border-radius:var(--radius-xl);border-bottom-right-radius:var(--radius-sm);background:var(--color-gray-900);color:var(--color-white);white-space:pre-wrap}.specification-message.assistant .specification-message-content{color:var(--color-text);background:0 0;flex:1;min-width:0;padding:0}.specification-message.assistant .specification-message-content p{margin:0 0 var(--space-3)}.specification-message.assistant .specification-message-content p:last-child{margin-bottom:0}.specification-message.assistant .specification-message-content strong{font-weight:var(--weight-semibold)}.specification-message.assistant .specification-message-content em{font-style:italic}.specification-message.assistant .specification-message-content ul,.specification-message.assistant .specification-message-content ol{margin:var(--space-2)0;padding-left:var(--space-6)}.specification-message.assistant .specification-message-content ul{list-style-type:disc}.specification-message.assistant .specification-message-content ol{list-style-type:decimal}.specification-message.assistant .specification-message-content li{margin:var(--space-1)0;line-height:var(--leading-normal)}.specification-message.assistant .specification-message-content li::marker{color:var(--color-text-secondary)}.specification-message.assistant .specification-message-content li>ul{list-style-type:circle}.specification-message.assistant .specification-message-content li>ul>li>ul{list-style-type:square}.specification-message.assistant .specification-message-content li>ol{list-style-type:lower-alpha}.specification-message.assistant .specification-message-content code{padding:2px var(--space-1-5);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:var(--font-mono);background:#00000014}.specification-message.assistant .specification-message-content pre{padding:var(--space-3);border-radius:var(--radius-md);margin:var(--space-3)0;background:#0000000f;overflow-x:auto}.specification-message.assistant .specification-message-content pre code{font-size:var(--text-xs);background:0 0;padding:0}.specification-message.assistant .specification-message-content h1,.specification-message.assistant .specification-message-content h2,.specification-message.assistant .specification-message-content h3{margin:var(--space-4)0 var(--space-2);font-weight:var(--weight-semibold);color:var(--color-text)}.specification-message.assistant .specification-message-content h1:first-child,.specification-message.assistant .specification-message-content h2:first-child,.specification-message.assistant .specification-message-content h3:first-child{margin-top:0}.specification-message.assistant .specification-message-content h1{font-size:17px}.specification-message.assistant .specification-message-content h2{font-size:15px}.specification-message.assistant .specification-message-content h3{font-size:var(--text-sm)}.specification-message.assistant .specification-message-content a{color:var(--brand-teal-dark,#8b5cf6);text-decoration:none}.specification-message.assistant .specification-message-content a:hover{text-decoration:underline}.specification-message.assistant .specification-message-content blockquote{border-left:3px solid var(--color-border-strong);margin:var(--space-3)0;padding-left:var(--space-3);color:var(--color-text-secondary)}.specification-message.assistant .specification-message-content hr{background:var(--color-border);height:1px;margin:var(--space-4)0;border:none}.specification-message.assistant .specification-message-content table{border-collapse:collapse;width:100%;margin:var(--space-3)0;font-size:var(--text-sm);table-layout:auto;display:table}.specification-message.assistant .specification-message-content th,.specification-message.assistant .specification-message-content td{padding:var(--space-2)var(--space-3);border:1px solid var(--color-border);text-align:left;vertical-align:top}.specification-message.assistant .specification-message-content th{font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;background:#0000000a}.specification-message.assistant .specification-message-content td{color:var(--color-text-secondary)}.specification-message.assistant .specification-message-content tr:nth-child(2n){background:#00000005}.specification-message.assistant .specification-message-content tr:hover{background:#0000000a}.specification-message-content.typing{min-height:24px;padding:var(--space-1)0;justify-content:flex-start;align-items:center;display:flex}.specification-cursor{width:2px;height:var(--space-4);background:var(--color-text);margin-left:2px;animation:1s step-end infinite cursor-blink;display:inline-block}@keyframes cursor-blink{0%,to{opacity:1}50%{opacity:0}}.specification-footer{padding:var(--space-5)var(--space-6);z-index:1;flex-shrink:0;position:relative}.specification-footer-content{gap:var(--space-3);flex-direction:column;display:flex}.specification-next-btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-2-5)var(--space-4);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--brand-teal-dark,#8b5cf6);cursor:pointer;transition:all var(--transition-base);background:#7cbdbd1a;border:1px solid #7cbdbd4d;align-self:flex-end;display:inline-flex}.specification-next-btn:hover{background:#7cbdbd2e;border-color:#7cbdbd80;transform:translate(2px)}.specification-next-btn:active{transform:translate(0)}.specification-next-btn:disabled{cursor:not-allowed;opacity:.7}.specification-next-btn.autonomous{color:var(--brand-teal);cursor:default;background:#7cbdbd26;border-color:#7cbdbd66}.specification-next-btn.autonomous:hover{transform:none}.specification-input-container{align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-2)var(--space-2)var(--space-5);background:var(--color-warm-50,var(--surface-primary));border-radius:var(--radius-2xl,24px);min-height:56px;box-shadow:var(--shadow-sm);transition:all var(--duration-moderate,.25s)var(--ease-smooth,ease);border:1px solid #0000000f;display:flex}.specification-input-container.multiline{border-radius:var(--radius-2xl);padding-bottom:var(--space-2);align-items:flex-end}.specification-input-container:focus-within{box-shadow:var(--shadow-sm),0 0 0 3px #7cbdbd1a,var(--shadow-glow-teal);border-color:#7cbdbd80}.specification-input{font-size:15px;line-height:var(--space-6);color:var(--color-text);resize:none;min-height:40px;max-height:120px;padding:var(--space-2)0;background:0 0;border:none;flex:1;overflow-y:auto}.specification-input.multiline{padding:var(--space-2)0 var(--space-1)}.specification-input::placeholder{color:var(--color-text-tertiary)}.specification-input:focus{outline:none}.specification-input.blocked{opacity:.6;cursor:not-allowed;background:var(--surface-secondary)}.specification-input.blocked::placeholder{color:#b45309;font-weight:500}.specification-input-actions{align-items:center;gap:var(--space-1);display:flex}.specification-stop-btn{border-radius:var(--radius-full);background:var(--interactive-hover);width:40px;height:40px;color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;display:flex}.specification-stop-btn:hover{color:#b91c1c;background:#b91c1c1f}.stop-btn-content{width:var(--space-5);height:var(--space-5);justify-content:center;align-items:center;display:flex;position:relative}.stop-btn-content .stop-loader{transition:opacity var(--transition-fast);position:absolute}.stop-btn-content .stop-icon{opacity:0;transition:all var(--transition-fast);position:absolute;transform:scale(.8)}.specification-stop-btn:hover .stop-loader{opacity:0}.specification-stop-btn:hover .stop-icon{opacity:1;transform:scale(1)}.specification-send-btn{border-radius:var(--radius-full);background:var(--color-gray-900);width:40px;height:40px;color:var(--color-white);cursor:pointer;transition:all var(--transition-base);border:none;justify-content:center;align-items:center;display:flex}.specification-send-btn:hover:not(:disabled){background:var(--color-gray-700)}.specification-send-btn:disabled{background:var(--interactive-hover);color:var(--color-text-tertiary);cursor:not-allowed}.specification-footer-content{position:relative}.specification-drop-overlay{z-index:50;justify-content:center;align-items:center;gap:var(--space-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:2px dashed var(--brand-teal);border-radius:var(--radius-xl);color:var(--brand-teal);font-size:var(--text-sm);font-weight:var(--weight-medium);pointer-events:none;background:#fffffff2;flex-direction:column;display:flex;position:absolute;inset:0}.specification-attachments{gap:var(--space-2);padding:var(--space-2)0;margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.specification-file-chip{align-items:center;gap:var(--space-1-5);padding:var(--space-1-5)var(--space-2)var(--space-1-5)var(--space-1-5);border-radius:var(--radius-lg);font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--brand-teal);transition:all var(--transition-fast);background:#5a9e9e14;border:1px solid #5a9e9e26;display:flex}.specification-file-chip:hover{background:#5a9e9e26;border-color:#5a9e9e4d}.specification-file-chip.error{color:var(--color-error);background:#ef444414;border-color:#ef444426}.specification-file-chip .file-preview-img{object-fit:cover;border-radius:var(--radius-sm);width:20px;height:20px}.specification-file-chip .file-icon{border-radius:var(--radius-sm);background:#5a9e9e1f;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.specification-file-chip .file-name{text-overflow:ellipsis;white-space:nowrap;max-width:100px;overflow:hidden}.specification-file-chip .file-remove{border-radius:var(--radius-full);width:16px;height:16px;color:var(--brand-teal);opacity:.6;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.specification-file-chip .file-remove:hover{opacity:1;background:#5a9e9e26}.specification-file-chip.error .file-remove{color:var(--color-error)}.specification-file-chip.error .file-remove:hover{background:#ef444426}.specification-file-chip .error-icon{color:var(--color-error)}.specification-attach-btn{border-radius:var(--radius-full);width:36px;height:36px;color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.specification-attach-btn:hover:not(:disabled){background:var(--interactive-hover);color:var(--color-text-secondary)}.specification-attach-btn.has-files{color:var(--brand-teal)}.specification-attach-btn:disabled{opacity:.4;cursor:not-allowed}.specification-complete{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3)var(--space-4);border-radius:var(--radius-xl);background:#7cbdbd14;border:1px solid #7cbdbd33;display:flex}.specification-complete-info{align-items:center;gap:var(--space-3);color:#5a9a9a;display:flex}.specification-complete-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);display:block}.specification-complete-subtitle{font-size:var(--text-xs);color:var(--color-text-secondary);display:block}.specification-create-btn{align-items:center;gap:var(--space-2);padding:var(--space-2-5)var(--space-5);background:linear-gradient(135deg,var(--brand-gold)0%,var(--brand-teal)50%,var(--brand-gold)100%);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-white);cursor:pointer;transition:background-position .6s ease,transform var(--transition-base),box-shadow var(--transition-base);background-position:0 0;background-size:200% 100%;border:none;display:inline-flex}.specification-create-btn:hover:not(:disabled){background-position:100% 0;transform:translateY(-1px);box-shadow:0 4px 12px #7cbdbd4d}.specification-create-btn:disabled{opacity:.7;cursor:not-allowed}.specification-preview{gap:var(--space-3);flex-direction:column;display:flex}.specification-preview-header{align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-border);display:flex}.specification-preview-header svg{color:#5a9a9a}.specification-preview-files{gap:var(--space-2);max-height:400px;padding-right:var(--space-1);flex-direction:column;display:flex;overflow-y:auto}.specification-preview-files::-webkit-scrollbar{width:var(--space-1)}.specification-preview-files::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.specification-preview-file{background:var(--interactive-hover);border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-shrink:0;overflow:hidden}.specification-preview-file-header{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2-5)var(--space-3);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:left;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.specification-preview-file-header:hover{background:var(--interactive-active)}.specification-preview-file-header svg:first-child{color:#5a9a9a;flex-shrink:0}.specification-preview-file-header span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.specification-preview-file-header svg:last-child{color:var(--color-text-tertiary);flex-shrink:0}.specification-preview-file-content{padding:var(--space-3)var(--space-3-5);background:var(--surface-secondary);border-top:1px solid var(--color-border);font-size:var(--text-sm);max-height:180px;line-height:1.6;overflow-y:auto}.specification-preview-file-content::-webkit-scrollbar{width:var(--space-1)}.specification-preview-file-content::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.specification-preview-file-content h1,.specification-preview-file-content h2,.specification-preview-file-content h3{margin:var(--space-3)0 var(--space-1-5);font-weight:var(--weight-semibold);color:var(--color-text)}.specification-preview-file-content h1:first-child,.specification-preview-file-content h2:first-child,.specification-preview-file-content h3:first-child{margin-top:0}.specification-preview-file-content h1{font-size:15px}.specification-preview-file-content h2,.specification-preview-file-content h3{font-size:var(--text-sm)}.specification-preview-file-content p{margin:0 0 var(--space-2);color:var(--color-text-secondary)}.specification-preview-file-content p:last-child{margin-bottom:0}.specification-preview-file-content ul,.specification-preview-file-content ol{margin:var(--space-1-5)0;padding-left:var(--space-5)}.specification-preview-file-content li{color:var(--color-text-secondary);margin:2px 0}.specification-preview-file-content code{border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);background:#0000000f;padding:2px 5px}.specification-preview-actions{justify-content:flex-end;align-items:center;gap:var(--space-2-5);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex}.specification-back-btn{padding:var(--space-2-5)18px;border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0}.specification-back-btn:hover{background:var(--interactive-hover);border-color:var(--color-border-strong)}.specification-credits-exhausted{background:#f59e0b14;border-color:#f59e0b33}.specification-credits-exhausted .specification-complete-info{color:var(--color-warning)}.specification-btn-secondary{background:var(--color-gray-600);background-size:auto}.specification-btn-secondary:hover:not(:disabled){background:var(--color-gray-500);transform:translateY(-1px);box-shadow:0 4px 12px #00000026}[data-theme=dark] .specification-modal{background:#12171e;box-shadow:0 0 0 1px #ffffff0f,0 8px 24px #00000026,0 16px 48px #0003,0 24px 64px #00000040}[data-theme=dark] .specification-header{border-bottom-color:#ffffff0a}[data-theme=dark] .specification-close:hover{background:#ffffff14}[data-theme=dark] .specification-progress{border-bottom-color:#ffffff0f}[data-theme=dark] .specification-progress-bar{background:#ffffff14}[data-theme=dark] .specification-progress-section{color:var(--color-text-tertiary)}[data-theme=dark] .specification-progress-section.completed{color:var(--brand-teal)}[data-theme=dark] .specification-progress-section.active{color:var(--color-text);font-weight:var(--weight-semibold)}[data-theme=dark] .specification-progress-section .section-check{color:var(--brand-teal)}[data-theme=dark] .specification-messages::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .specification-messages::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=dark] .specification-message-avatar{background:var(--interactive-hover)}[data-theme=dark] .specification-message.user .specification-message-content{background:var(--color-gray-100);color:var(--color-gray-900)}[data-theme=dark] .specification-message.assistant .specification-message-content{background:0 0}[data-theme=dark] .specification-message.assistant .specification-message-content code{background:#ffffff1a}[data-theme=dark] .specification-message.assistant .specification-message-content pre{background:#ffffff0f}[data-theme=dark] .specification-message.assistant .specification-message-content blockquote{border-left-color:#ffffff26}[data-theme=dark] .specification-message.assistant .specification-message-content hr{background:#ffffff14}[data-theme=dark] .specification-message.assistant .specification-message-content th,[data-theme=dark] .specification-message.assistant .specification-message-content td{border-color:#ffffff1a}[data-theme=dark] .specification-message.assistant .specification-message-content th{background:#ffffff0f}[data-theme=dark] .specification-message.assistant .specification-message-content tr:nth-child(2n){background:#ffffff08}[data-theme=dark] .specification-message.assistant .specification-message-content tr:hover{background:#ffffff0d}[data-theme=dark] .specification-input-container{background:#1a1f26;border-color:#ffffff0f}[data-theme=dark] .specification-input-container:focus-within{box-shadow:var(--shadow-sm),0 0 0 3px #7cbdbd26,0 0 24px #7cbdbd26;border-color:#7cbdbd80}[data-theme=dark] .specification-input.blocked{background:#b453091a}[data-theme=dark] .specification-input.blocked::placeholder{color:#fbbf24}[data-theme=dark] .specification-stop-btn{background:#ffffff14}[data-theme=dark] .specification-stop-btn:hover{background:#b91c1c33}[data-theme=dark] .specification-send-btn{background:var(--color-text);color:var(--surface-dark)}[data-theme=dark] .specification-send-btn:hover:not(:disabled){background:var(--color-white)}[data-theme=dark] .specification-send-btn:disabled{color:var(--color-text-tertiary);background:#ffffff14}[data-theme=dark] .specification-preview-header{border-bottom-color:#ffffff0f}[data-theme=dark] .specification-preview-files::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .specification-preview-file{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .specification-preview-file-header:hover{background:#ffffff0f}[data-theme=dark] .specification-preview-file-content{background:var(--surface-dark);border-top-color:#ffffff0f}[data-theme=dark] .specification-preview-file-content::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .specification-preview-file-content code{background:#ffffff14}[data-theme=dark] .specification-preview-actions{border-top-color:#ffffff0f}[data-theme=dark] .specification-back-btn{border-color:#ffffff1a}[data-theme=dark] .specification-back-btn:hover{background:#ffffff0f}@media (max-width:720px){.specification-modal{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%}.specification-message{max-width:95%}.specification-complete{text-align:center;flex-direction:column;align-items:stretch}.specification-complete-info{justify-content:center}}.specification-modal.with-preview{width:1100px;max-width:calc(100vw - var(--space-8))}.specification-modal.fullscreen{width:100vw;max-width:100vw;height:100vh;max-height:100vh;box-shadow:none;border-radius:0;position:fixed;inset:0}.specification-modal.fullscreen .specification-header{padding:var(--space-4)var(--space-6)}.specification-modal.fullscreen .specification-progress{padding:var(--space-2)var(--space-6)var(--space-3)}.specification-modal.fullscreen .specification-chat-panel{width:var(--chat-panel-width,420px);border-right:1px solid var(--color-border);flex:none;min-width:320px;max-width:600px}.specification-chat-resize-handle{cursor:col-resize;width:4px;transition:background var(--transition-fast);background:0 0;flex-shrink:0}.specification-chat-resize-handle:hover,.specification-chat-resize-handle.active{background:var(--brand-teal)}.specification-workspace-container,.specification-modal.fullscreen .specification-workspace-container{flex:1;min-width:0;display:flex;overflow:hidden}.specification-header-actions{align-items:center;gap:var(--space-2);display:flex}.specification-toggle-preview{width:var(--space-8);height:var(--space-8);border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.specification-toggle-preview:hover{background:var(--interactive-hover);color:var(--color-text)}.specification-content-area{flex:1;min-height:0;display:flex;overflow:hidden}.specification-chat-panel{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.specification-preview-panel-container{border-left:1px solid var(--color-border);background:var(--surface-secondary);flex-direction:column;flex-shrink:0;width:400px;display:flex;overflow:hidden}.specification-validation-warning{align-items:flex-start;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-lg);margin:var(--space-3)0;background:#f59e0b1a;border:1px solid #f59e0b4d;display:flex}.specification-validation-warning svg:first-child{color:var(--color-warning,#f59e0b);flex-shrink:0;margin-top:2px}.specification-validation-warning .validation-content{font-size:var(--text-sm);color:var(--color-text);flex:1}.specification-validation-warning .validation-content strong{margin-bottom:var(--space-2);font-weight:var(--weight-semibold);display:block}.specification-validation-warning .validation-content ul{padding-left:var(--space-5);color:var(--color-text-secondary);margin:0}.specification-validation-warning .validation-content li{margin:var(--space-1)0}.specification-validation-warning button{color:var(--color-text-tertiary);cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none}.specification-validation-warning button:hover{color:var(--color-text);background:#0000001a}.specification-message-content.streaming{gap:var(--space-2);flex-direction:column;display:flex}.text-secondary{color:var(--color-text-secondary)}.text-sm{font-size:var(--text-sm)}.mt-2{margin-top:var(--space-2)}[data-theme=dark] .specification-preview-panel-container{background:var(--surface-dark);border-left-color:#ffffff0f}[data-theme=dark] .specification-validation-warning{background:#f59e0b26;border-color:#f59e0b4d}[data-theme=dark] .specification-validation-warning button:hover{background:#ffffff1a}@media (max-width:900px){.specification-modal.with-preview{width:100%;max-width:100%}.specification-preview-panel-container{display:none}}.specification-preview-inline{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-xl);margin-top:var(--space-2);background:#7cbdbd0f;border:1px solid #7cbdbd26;flex-direction:column;display:flex}.specification-preview-header-inline{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text);display:flex}.specification-preview-header-inline svg{color:#5a9a9a;flex-shrink:0}.specification-preview-header-inline strong{font-weight:var(--weight-semibold)}.specification-preview-files-inline{gap:var(--space-2);flex-direction:column;display:flex}.specification-preview-file-inline{background:var(--surface-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.specification-preview-file-header-inline{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2-5)var(--space-3);cursor:pointer;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);text-align:left;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.specification-preview-file-header-inline:hover{background:var(--interactive-hover)}.specification-preview-file-header-inline svg:first-child{color:#5a9a9a;flex-shrink:0}.specification-preview-file-header-inline span{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.specification-preview-file-header-inline svg:last-child{color:var(--color-text-tertiary);flex-shrink:0}.specification-preview-file-content-inline{padding:var(--space-3)var(--space-3-5);background:var(--surface-secondary);border-top:1px solid var(--color-border);font-size:var(--text-sm);max-height:200px;line-height:1.6;overflow-y:auto}.specification-preview-file-content-inline::-webkit-scrollbar{width:var(--space-1)}.specification-preview-file-content-inline::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.specification-preview-file-content-inline h1,.specification-preview-file-content-inline h2,.specification-preview-file-content-inline h3{margin:var(--space-3)0 var(--space-1-5);font-weight:var(--weight-semibold);color:var(--color-text)}.specification-preview-file-content-inline h1:first-child,.specification-preview-file-content-inline h2:first-child,.specification-preview-file-content-inline h3:first-child{margin-top:0}.specification-preview-file-content-inline h1{font-size:15px}.specification-preview-file-content-inline h2,.specification-preview-file-content-inline h3{font-size:var(--text-sm)}.specification-preview-file-content-inline p{margin:0 0 var(--space-2);color:var(--color-text-secondary)}.specification-preview-file-content-inline p:last-child{margin-bottom:0}.specification-preview-file-content-inline ul,.specification-preview-file-content-inline ol{margin:var(--space-1-5)0;padding-left:var(--space-5)}.specification-preview-file-content-inline li{color:var(--color-text-secondary);margin:2px 0}.specification-preview-file-content-inline code{border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);background:#0000000f;padding:2px 5px}.specification-preview-file-content-inline table{border-collapse:collapse;width:100%;margin:var(--space-2)0;font-size:var(--text-xs);table-layout:auto;display:table}.specification-preview-file-content-inline th,.specification-preview-file-content-inline td{padding:var(--space-1-5)var(--space-2);border:1px solid var(--color-border);text-align:left;vertical-align:top}.specification-preview-file-content-inline th{font-weight:var(--weight-semibold);color:var(--color-text);white-space:nowrap;background:#0000000a}.specification-preview-file-content-inline td{color:var(--color-text-secondary)}.specification-preview-file-content-inline tr:nth-child(2n){background:#00000005}.specification-preview-actions-footer{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-xl);background:#7cbdbd0f;border:1px solid #7cbdbd26;display:flex}[data-theme=dark] .specification-preview-inline{background:#7cbdbd14;border-color:#7cbdbd33}[data-theme=dark] .specification-preview-file-inline{background:#ffffff0a;border-color:#ffffff14}[data-theme=dark] .specification-preview-file-header-inline:hover{background:#ffffff0f}[data-theme=dark] .specification-preview-file-content-inline{background:var(--surface-dark);border-top-color:#ffffff0f}[data-theme=dark] .specification-preview-file-content-inline::-webkit-scrollbar-thumb{background:#ffffff1a}[data-theme=dark] .specification-preview-file-content-inline code{background:#ffffff14}[data-theme=dark] .specification-preview-file-content-inline th,[data-theme=dark] .specification-preview-file-content-inline td{border-color:#ffffff1a}[data-theme=dark] .specification-preview-file-content-inline th{background:#ffffff0f}[data-theme=dark] .specification-preview-file-content-inline tr:nth-child(2n){background:#ffffff08}[data-theme=dark] .specification-preview-actions-footer{background:#7cbdbd14;border-color:#7cbdbd33}.mockup-panel-toggle{border-bottom:1px solid var(--color-border);padding:12px 16px 8px}.mockup-toggle-btn{border:1px solid var(--color-border);border-radius:var(--radius-lg);width:100%;color:var(--color-text-secondary);cursor:pointer;background:0 0;align-items:center;gap:8px;padding:10px 12px;font-size:13px;font-weight:500;transition:all .15s;display:flex}.mockup-toggle-btn:hover{background:var(--interactive-hover);border-color:var(--color-border-strong);color:var(--color-text)}.mockup-toggle-btn.active{color:var(--color-text);background:#7cbdbd14;border-color:#7cbdbd4d}.mockup-toggle-btn.has-content{border-color:#7cbdbd66}.mockup-toggle-btn .chevron{margin-left:auto;transition:transform .2s}.mockup-toggle-btn .chevron.open{transform:rotate(180deg)}.mockup-badge{background:var(--color-success);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:600;display:flex}.mockup-panel-wrapper{border-bottom:1px solid var(--color-border);overflow:hidden}[data-theme=dark] .mockup-toggle-btn.active{background:#7cbdbd1f;border-color:#7cbdbd59}[data-theme=dark] .mockup-toggle-btn.has-content{border-color:#7cbdbd80}.specification-completion-actions{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-4);border-radius:var(--radius-xl);margin-bottom:var(--space-3);background:#7cbdbd0f;border:1px solid #7cbdbd26;display:flex}.specification-save-btn{align-items:center;gap:var(--space-2);padding:var(--space-2-5)var(--space-4);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text);cursor:pointer;transition:all var(--transition-base);background:0 0;display:inline-flex}.specification-save-btn:hover:not(:disabled){background:var(--interactive-hover);border-color:var(--brand-teal);color:var(--brand-teal)}.specification-save-btn:disabled{opacity:.7;cursor:not-allowed}.specification-save-btn svg{color:var(--brand-teal)}[data-theme=dark] .specification-completion-actions{background:#7cbdbd14;border-color:#7cbdbd33}[data-theme=dark] .specification-save-btn{border-color:#ffffff26}[data-theme=dark] .specification-save-btn:hover:not(:disabled){border-color:var(--brand-teal);background:#ffffff0f}.specification-mode-toggle{align-items:center;gap:var(--space-2);margin-right:var(--space-3);padding-right:var(--space-3);border-right:1px solid var(--color-border);display:flex}.specification-mode-toggle span{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);white-space:nowrap}[data-theme=dark] .specification-mode-toggle{border-right-color:#ffffff14}
.project-creation-backdrop{z-index:9999;padding:var(--space-4);-webkit-backdrop-filter:blur(12px);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.project-creation-modal{background:var(--color-warm-50,#fdfcfb);border-radius:var(--radius-2xl,24px);border:1px solid #0000000a;flex-direction:row;width:clamp(400px,90vw,720px);height:clamp(480px,85vh,640px);max-height:calc(100dvh - 48px);display:flex;position:relative;overflow:hidden;box-shadow:0 8px 24px #0000000a,0 16px 48px #0000000f,0 24px 64px #00000014}.project-creation-sidebar{background:var(--color-warm-100,#f8f7f5);width:clamp(140px,28%,180px);min-width:140px;padding:var(--space-4)var(--space-3);border-right:1px solid #0000000f;flex-direction:column;display:flex}.project-creation-sidebar-header{padding:0 var(--space-1)var(--space-4);align-items:center;gap:var(--space-2);display:flex}.project-creation-logo{object-fit:contain;width:32px;height:32px}.project-creation-sidebar-title{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.project-creation-steps{flex-direction:column;flex:1;gap:2px;display:flex}.project-creation-step{align-items:center;gap:var(--space-2);padding:var(--space-2)var(--space-2);border-radius:var(--radius-md);cursor:default;transition:all var(--transition-fast);text-align:left;background:0 0;border:none;width:100%;display:flex}.project-creation-step.active{background:var(--color-warm-50,#fdfcfb);box-shadow:0 2px 4px #00000005,0 4px 8px #00000008}.project-creation-step.completed{opacity:.7}.project-creation-step-indicator{border-radius:var(--radius-full);width:22px;height:22px;font-size:11px;font-weight:var(--weight-semibold);transition:all var(--transition-fast);background:var(--interactive-hover);color:var(--color-text-tertiary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.project-creation-step.active .project-creation-step-indicator{background:linear-gradient(135deg,var(--brand-gold)0%,var(--brand-teal)100%);color:var(--color-white)}.project-creation-step.completed .project-creation-step-indicator{background:var(--brand-teal);color:var(--color-white)}.project-creation-step-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.project-creation-step.active .project-creation-step-label{color:var(--color-text);font-weight:var(--weight-semibold)}.project-creation-main{background:var(--surface-primary);flex-direction:column;flex:1;min-width:0;display:flex}.project-creation-header{padding:var(--space-4)var(--space-5)var(--space-3);justify-content:space-between;align-items:center;min-height:52px;display:flex}.project-creation-header-info{flex:1;min-width:0}.project-creation-title{font-size:var(--text-base);font-weight:var(--weight-semibold);color:var(--color-text);margin:0}.project-creation-subtitle{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:var(--space-0-5)0 0}.project-creation-close{width:var(--space-7);height:var(--space-7);border-radius:var(--radius-md);color:var(--color-text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.project-creation-close:hover{background:var(--interactive-hover);color:var(--color-text)}.project-creation-content{padding:0 var(--space-5)var(--space-4);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.project-creation-content::-webkit-scrollbar{width:var(--space-1-5)}.project-creation-content::-webkit-scrollbar-track{background:0 0}.project-creation-content::-webkit-scrollbar-thumb{border-radius:var(--radius-sm);background:#0000001f}.project-creation-content::-webkit-scrollbar-thumb:hover{background:#0003}.project-creation-content>div,.project-creation-content>div>div{flex-direction:column;flex:1;min-height:0;display:flex}.project-creation-actions{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3)var(--space-5);border-top:1px solid var(--color-border);background:var(--surface-primary);flex-shrink:0;display:flex}.project-creation-actions-left{align-items:center;display:flex}.project-creation-actions-right{align-items:center;gap:var(--space-2);display:flex}.project-creation-field{gap:var(--space-1-5);flex-direction:column;display:flex}.project-creation-label{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text-secondary);align-items:center;gap:var(--space-1);display:flex}.project-creation-label .required{color:var(--color-error)}.project-creation-input{padding:var(--space-2-5)var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);font-size:var(--text-sm);color:var(--color-text);background:var(--surface-primary);transition:all var(--transition-fast)}.project-creation-input:focus{border-color:var(--brand-teal);outline:none;box-shadow:0 0 0 3px #7cbdbd1f}.project-creation-textarea{resize:none;min-height:80px}.project-creation-colors{gap:var(--space-2);flex-wrap:wrap;display:flex}.project-creation-color{border-radius:var(--radius-full);cursor:pointer;width:32px;height:32px;transition:all var(--transition-fast);background:0 0;border:2px solid #0000;padding:0}.project-creation-color:hover{transform:scale(1.1)}.project-creation-color.selected{border-color:var(--color-text);transform:scale(1.15)}.project-creation-btn{justify-content:center;align-items:center;gap:var(--space-1-5);padding:var(--space-2)var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:all var(--transition-fast);border:none;display:inline-flex}.project-creation-btn:disabled{opacity:var(--opacity-disabled);cursor:not-allowed}.project-creation-btn.primary{background:var(--color-gray-900);color:var(--color-white);min-width:100px}.project-creation-btn.primary:hover:not(:disabled){background:var(--color-gray-700)}.project-creation-btn.secondary{color:var(--color-text-secondary);background:0 0}.project-creation-btn.secondary:hover:not(:disabled){color:var(--color-text)}.project-creation-btn .spinner{width:var(--space-3-5);height:var(--space-3-5);border-radius:var(--radius-full);border:2px solid;border-top-color:#0000;animation:.6s linear infinite projectSpin}@keyframes projectSpin{to{transform:rotate(360deg)}}.project-creation-customer-card{align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition:all var(--transition-fast);display:flex}.project-creation-customer-card:hover{border-color:var(--color-border-strong)}.project-creation-customer-card.selected{border-color:var(--brand-teal);background:#7cbdbd0f}.project-creation-section{gap:var(--space-4);flex-direction:column;display:flex}.project-creation-section-intro{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:var(--leading-relaxed);margin:0}.project-creation-section-hint{font-size:var(--text-xs);color:var(--color-text-tertiary);margin:0;font-style:italic}[data-theme=dark] .project-creation-modal{background:#12171e;border-color:#ffffff0f;box-shadow:0 8px 24px #00000026,0 16px 48px #0003,0 24px 64px #00000040}[data-theme=dark] .project-creation-sidebar{background:#0c1015;border-right-color:#ffffff0f}[data-theme=dark] .project-creation-step.active{background:#12171e;box-shadow:0 2px 4px #00000014,0 4px 8px #0000001f}[data-theme=dark] .project-creation-step-indicator{background:#ffffff14}[data-theme=dark] .project-creation-main{background:#12171e}[data-theme=dark] .project-creation-close:hover{background:#ffffff14}[data-theme=dark] .project-creation-content::-webkit-scrollbar-thumb{background:#ffffff1f}[data-theme=dark] .project-creation-content::-webkit-scrollbar-thumb:hover{background:#fff3}[data-theme=dark] .project-creation-actions{background:#12171e;border-top-color:#ffffff0f}[data-theme=dark] .project-creation-input{background:var(--surface-dark);border-color:#ffffff1a}[data-theme=dark] .project-creation-btn.primary{background:var(--color-gray-100);color:var(--color-gray-900)}[data-theme=dark] .project-creation-btn.primary:hover:not(:disabled){background:var(--color-white)}[data-theme=dark] .project-creation-customer-card{background:#ffffff08;border-color:#ffffff0f}[data-theme=dark] .project-creation-customer-card:hover{border-color:#ffffff1a}[data-theme=dark] .project-creation-customer-card.selected{background:#7cbdbd14}@media (max-width:600px){.project-creation-modal{border-radius:var(--radius-lg);flex-direction:column;width:calc(100vw - 16px);height:auto;min-height:480px;max-height:calc(100dvh - 24px)}.project-creation-sidebar{width:100%;min-width:100%;padding:var(--space-3);background:var(--surface-primary);border-right:none;border-bottom:1px solid var(--color-border);flex-shrink:0}[data-theme=dark] .project-creation-sidebar{background:var(--surface-dark-elevated);border-bottom-color:#ffffff0f}.project-creation-sidebar-header{display:none}.project-creation-steps{gap:var(--space-1);-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;overflow-x:auto}.project-creation-steps::-webkit-scrollbar{display:none}.project-creation-step{white-space:nowrap;padding:var(--space-2)var(--space-2-5)}.project-creation-content{padding:var(--space-3);max-height:calc(100dvh - 200px);overflow-y:auto}.project-creation-header,.project-creation-actions{padding:var(--space-3)}}@media (prefers-reduced-motion:reduce){.project-creation-modal,.project-creation-step,.project-creation-btn,.project-creation-color,.project-creation-customer-card{transition:none}.project-creation-btn .spinner{animation:none}}
.plan-first-btn{cursor:pointer;background:0 0;border:none;border-radius:20px;flex-shrink:0;min-width:110px;height:40px;padding:0;transition:transform .15s ease-out,opacity .15s ease-out;position:relative;overflow:hidden}.plan-first-btn:hover:not(.disabled){transform:scale(1.02)}.plan-first-btn:active:not(.disabled){transform:scale(.98)}.plan-first-btn.disabled{opacity:.5;cursor:not-allowed}.plan-first-btn-border{isolation:isolate;border-radius:20px;width:100%;height:100%;padding:1.5px;position:relative;overflow:hidden}.plan-first-btn-gradient{z-index:0;pointer-events:none;background:conic-gradient(#0000 0% 55%,#8b5cf6b3 65%,#6366f1e6 70%,#a855f7b3 75%,#0000 85% 100%);width:200%;height:200%;animation:3s linear infinite plan-first-rotate;position:absolute;top:-50%;left:-50%}.plan-first-btn-inner{z-index:1;color:#374151;background:#fff;border-radius:18.5px;justify-content:center;align-items:center;gap:6px;width:100%;height:100%;padding:0 20px;font-size:14px;font-weight:500;transition:background-color .2s;display:flex;position:relative}.plan-first-icon{flex-shrink:0;display:none}.plan-first-text{white-space:nowrap}.plan-first-btn:hover:not(.disabled) .plan-first-btn-inner{background:#fafafa}@keyframes plan-first-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}[data-theme=dark] .plan-first-btn-gradient,.dark .plan-first-btn-gradient{background:conic-gradient(#0000 0% 55%,#a78bfacc 65%,#818cf8e6 70%,#c084fccc 75%,#0000 85% 100%)}[data-theme=dark] .plan-first-btn-inner,.dark .plan-first-btn-inner{color:#e5e7eb;background:#1f2937}[data-theme=dark] .plan-first-btn:hover:not(.disabled) .plan-first-btn-inner,.dark .plan-first-btn:hover:not(.disabled) .plan-first-btn-inner{background:#374151}@media (max-width:640px){.plan-first-btn{width:40px;min-width:40px}.plan-first-btn-inner{padding:0}.plan-first-icon{display:block}.plan-first-text{display:none}}
/*# sourceMappingURL=46753538b9d441bd.css.map*/