*{box-sizing:border-box;padding:0}*,body{margin:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f7;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,Helvetica,Arial,sans-serif;letter-spacing:-.01em}code{font-family:SF Mono,Monaco,Inconsolata,Fira Code,Droid Sans Mono,Source Code Pro,monospace}.App{display:flex;flex-direction:column;min-height:100vh}.App-header{background:#fff;border-bottom:1px solid #0000000f;box-shadow:0 1px 0 #0000000d;color:#1d1d1f;padding:2.5rem 2rem;text-align:center}.App-header h1{color:#1d1d1f;font-size:3rem;font-weight:700;letter-spacing:-.03em;margin-bottom:.5rem}.App-header p{color:#6e6e73;font-size:1.25rem;font-weight:400;letter-spacing:-.01em;margin:.25rem 0}.view-mode-toggle{display:flex;gap:1rem;justify-content:center;margin-top:1.5rem}.toggle-btn{background:#fff;border:2px solid #e5e5e7;border-radius:10px;color:#1d1d1f;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 2rem;transition:all .3s ease}.toggle-btn:hover{background:#f5f5f7;border-color:#d2d2d7}.toggle-btn.active{border-color:#667eea;box-shadow:0 4px 12px #667eea4d}.project-id-section,.toggle-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.project-id-section{border:none;margin-bottom:1.5rem;padding:1rem 1.5rem}.project-id-info{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.project-id-label{color:#fffffff2;font-size:1rem;font-weight:600}.project-id-value{background:#fffffff2;border:1px solid #ffffff4d;border-radius:8px;color:#1d1d1f;cursor:text;font-family:Monaco,Courier New,monospace;font-size:.9rem;font-weight:600;padding:.5rem 1rem;-webkit-user-select:all;user-select:all}.project-id-value:hover{background:#fff}.description{color:#6e6e73;font-size:.95rem;font-weight:400;margin-bottom:1rem}.files-list{background:#fbfbfd;border:1px solid #0000000f;border-radius:12px;margin-top:1rem;padding:1.25rem}.files-list h3{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.75rem}.file-item{align-items:center;background:#fff;border:1px solid #00000014;border-radius:10px;display:flex;gap:.75rem;margin-bottom:.5rem;padding:.875rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.file-item:hover{border-color:#0000001f;box-shadow:0 2px 8px #0000000a}.file-icon{font-size:1.5rem}.file-name{color:#1d1d1f;flex:1 1;font-weight:500;letter-spacing:-.01em}.file-type{color:#86868b;font-size:.875rem;font-style:normal;font-weight:400}.remove-btn{align-items:center;background:#ff3b30;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:.9rem;height:28px;justify-content:center;transition:all .2s cubic-bezier(.4,0,.2,1);width:28px}.remove-btn:hover{background:#ff453a;transform:scale(1.05)}.plain-text-section{margin-top:1.5rem}.plain-text-section h3{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.75rem}.requirements-textarea{background:#fff;border:1px solid #0000001a;border-radius:10px;color:#1d1d1f;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,sans-serif;font-size:.975rem;letter-spacing:-.01em;line-height:1.5;padding:.875rem 1rem;resize:vertical;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.requirements-textarea:focus{border-color:#0071e3;box-shadow:0 0 0 4px #0071e31a;outline:none}.generate-buttons{display:flex;flex-direction:column;gap:1rem}.prompt-preview-section{background:#fff;border:1px solid #00000014;border-radius:12px;margin-bottom:1.5rem;overflow:hidden}.prompt-toggle-btn{align-items:center;background:#fbfbfd;border:none;color:#0071e3;cursor:pointer;display:flex;font-size:.975rem;font-weight:600;gap:.5rem;letter-spacing:-.01em;padding:.875rem 1.125rem;text-align:left;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.prompt-toggle-btn:hover{background:#f5f5f7}.prompt-content{background:#fafafa;border-top:1px solid #0000000f;max-height:400px;overflow-y:auto;padding:1.25rem}.prompt-text{word-wrap:break-word;font-family:SF Mono,Monaco,Inconsolata,Courier New,monospace;font-size:.875rem;line-height:1.6;margin:0;white-space:pre-wrap}.prompt-text,.server-info{color:#1d1d1f;letter-spacing:-.01em}.server-info{background:#0000000d;border-radius:20px;display:inline-block;font-size:.925rem;font-weight:500;margin-top:.5rem;padding:.5rem 1rem}.App-main{flex:1 1;margin:0 auto;max-width:1400px;padding:2.5rem;width:100%}.controls-section{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:2rem}.control-card{background:#fff;border:1px solid #0000000f;border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.75rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.control-card:hover{border-color:#0000001a;box-shadow:0 8px 24px #00000014;transform:translateY(-2px)}.control-card h2{color:#1d1d1f;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1.25rem}.spec-info{background:#f5f5f7;border-left:4px solid #0071e3;border-radius:8px;margin-top:1rem;padding:1.125rem}.spec-info p{color:#1d1d1f;font-size:.95rem;letter-spacing:-.01em;margin:.5rem 0}.server-display{margin-bottom:1rem}.server-display label{color:#1d1d1f;display:block;font-size:.975rem;font-weight:600;letter-spacing:-.01em;margin-bottom:.625rem}.server-url{background:#f5f5f7;border:1px solid #0071e333;border-radius:10px;color:#0071e3;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.95rem;font-weight:500;letter-spacing:-.01em;padding:.875rem 1rem;text-align:center}.port-config{align-items:center;display:flex;gap:1rem;margin-bottom:1rem}.port-config label{color:#1d1d1f;font-size:.975rem;font-weight:600;letter-spacing:-.01em}.port-config input{background:#fff;border:1px solid #0000001a;border-radius:8px;color:#1d1d1f;font-size:1rem;padding:.625rem .875rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:120px}.port-config input:focus{border-color:#0071e3;box-shadow:0 0 0 4px #0071e31a;outline:none}.generate-btn{background:#0071e3;border:none;border-radius:12px;color:#fff;cursor:pointer;font-size:1.075rem;font-weight:600;letter-spacing:-.01em;padding:1rem 1.25rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.generate-btn:hover:not(:disabled){background:#0077ed;box-shadow:0 8px 20px #0071e34d;transform:translateY(-1px)}.generate-btn:disabled{cursor:not-allowed;opacity:.4}.preview-section{background:#fff;border:1px solid #0000000f;border-radius:16px;box-shadow:0 2px 8px #0000000a;padding:1.75rem}.preview-section h2{color:#1d1d1f;font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin-bottom:1.25rem}.App-footer{background:#f5f5f7;border-top:1px solid #0000000f;color:#6e6e73;margin-top:auto;padding:1.75rem;text-align:center}.App-footer p{font-size:.925rem;font-weight:400;letter-spacing:-.01em;margin:0}@media (max-width:768px){.controls-section{grid-template-columns:1fr}.App-header h1{font-size:1.8rem}.App-main{padding:1rem}}.page-selector-section{background-color:#fff;border:1px solid #0000000f;border-radius:16px;box-shadow:0 2px 8px #0000000a;margin:30px 0;padding:1.5rem}.page-selector-section h3{color:#1d1d1f;font-weight:600;letter-spacing:-.01em;margin-bottom:15px;margin-top:0}.page-tabs{flex-wrap:wrap;gap:10px;margin-bottom:20px}.page-tab,.page-tabs{align-items:center;display:flex}.page-tab{background-color:#f5f5f7;border:1px solid #0000;border-radius:10px;cursor:pointer;gap:8px;padding:.75rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.page-tab:hover{background-color:#e8e8ed;border-color:#00000014}.page-tab.active{background-color:#fff;border-color:#0071e3;box-shadow:0 2px 8px #0071e326}.page-tab input{background:#0000;border:none;color:#1d1d1f;font-size:.925rem;font-weight:500;letter-spacing:-.01em;outline:none;width:100px}.page-tab.active input{color:#0071e3}.page-status{display:flex;gap:4px;margin-left:8px}.status-indicator{background-color:#d1d1d6;border-radius:50%;height:8px;width:8px}.status-indicator.complete{background-color:#34c759}.status-indicator.incomplete{background-color:#ff3b30;opacity:.4}.validation-warning{background-color:#fff9e6;border:1px solid #fc0;border-radius:10px;color:#6e4900;font-size:.925rem;font-weight:500;letter-spacing:-.01em;margin-top:15px;padding:.875rem 1.125rem;text-align:center}.remove-page-btn{background:none;border:none;color:#ff3b30;cursor:pointer;font-size:16px;margin-left:4px;opacity:.5;padding:0;transition:all .2s cubic-bezier(.4,0,.2,1)}.remove-page-btn:hover{opacity:1;transform:scale(1.1)}.add-page-btn{background-color:#34c759;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.925rem;font-weight:600;letter-spacing:-.01em;padding:.75rem 1.25rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.add-page-btn:hover{background-color:#30b350;box-shadow:0 4px 12px #34c7594d;transform:translateY(-1px)}.file-upload-group{background-color:#fbfbfd;border:1px solid #0000000f;border-radius:12px;margin:1.25rem 0;padding:1.125rem}.file-upload-group h4{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em;margin-bottom:15px;margin-top:0}.mockup-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:15px}.mockup-header h3{color:#1d1d1f;font-weight:600;letter-spacing:-.01em;margin:0}.mockup-mode-toggle{background-color:#e8e8ed;border-radius:8px;display:flex;gap:0;padding:3px}.mode-btn{background-color:initial;border:none;border-radius:6px;color:#1d1d1f;cursor:pointer;font-size:.875rem;font-weight:500;letter-spacing:-.01em;padding:.5rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.mode-btn:hover{background-color:#0000000d}.mode-btn.active{background-color:#fff;box-shadow:0 1px 3px #0000001a;color:#0071e3}.page-type-selector{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.type-btn{align-items:center;background-color:#f5f5f7;border:1px solid #0000;border-radius:10px;color:#1d1d1f;cursor:pointer;display:flex;flex:1 1;font-size:.925rem;font-weight:500;gap:6px;justify-content:center;letter-spacing:-.01em;min-width:140px;padding:.875rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.type-btn:hover{background-color:#e8e8ed;border-color:#00000014}.type-btn.active{background-color:#0071e3;border-color:#0071e3;box-shadow:0 2px 8px #0071e340;color:#fff}.type-info{background-color:#f0f8ff;border-left:3px solid #0071e3;border-radius:8px;padding:.875rem 1rem}.type-info p{color:#1d1d1f;font-size:.875rem;letter-spacing:-.01em;line-height:1.5;margin:0}.type-info strong{color:#0071e3;font-weight:600}.uploaded-file-info{background-color:#f0f8ff;border:1px solid #0071e333;border-radius:10px;margin-top:10px;padding:.875rem 1rem}.uploaded-file-info p{color:#1d1d1f;font-size:.925rem;letter-spacing:-.01em;margin:5px 0}.uploaded-file-info strong{color:#0071e3;font-weight:600}.page-prompt-preview{background:#fff;border:1px solid #00000014;border-radius:12px;margin-top:20px;overflow:hidden}.page-prompt-preview .prompt-toggle-btn{align-items:center;background:#fbfbfd;border:none;color:#0071e3;cursor:pointer;display:flex;font-size:.975rem;font-weight:600;gap:10px;letter-spacing:-.01em;padding:.875rem 1.125rem;text-align:left;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.page-prompt-preview .prompt-toggle-btn:hover{background:#f5f5f7}.page-prompt-preview .prompt-toggle-btn span:first-child{font-size:.875rem;transition:transform .3s ease}.page-prompt-preview .prompt-content{background:#fafafa;border-top:1px solid #0000000f;max-height:500px;overflow-y:auto;padding:1.25rem}.page-prompt-preview .prompt-text{word-wrap:break-word;color:#1d1d1f;font-family:SF Mono,Monaco,Inconsolata,Courier New,monospace;font-size:.875rem;letter-spacing:-.01em;line-height:1.6;margin:0;white-space:pre-wrap}.execution-folder-input{background-color:#fff9e6;border:1px solid #fc0;border-radius:12px;margin:1.5rem 0;padding:1.125rem}.execution-folder-input h3{color:#6e4900;font-weight:600;letter-spacing:-.01em;margin-bottom:15px;margin-top:0}.folder-input{background:#fff;border:1px solid #0000001a;border-radius:10px;box-sizing:border-box;color:#1d1d1f;font-size:.95rem;letter-spacing:-.01em;padding:.75rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.folder-input:focus{border-color:#0071e3;box-shadow:0 0 0 4px #0071e31a;outline:none}.save-btn{background-color:#0071e3;border:none;border-radius:10px;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;letter-spacing:-.01em;margin-top:15px;padding:.75rem 1.5rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.save-btn:hover{background-color:#0077ed;box-shadow:0 4px 12px #0071e34d;transform:translateY(-1px)}.save-btn.saved{background-color:#34c759}.save-btn.saved:hover{background-color:#30b350}.model-selector-section.disabled{opacity:.4;pointer-events:none;transition:opacity .3s cubic-bezier(.4,0,.2,1)}.model-selector-section.enabled{opacity:1;pointer-events:auto}.provider-selection{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}.provider-btn{align-items:center;background:#fff;border:2px solid #e5e5e7;border-radius:12px;color:#1d1d1f;cursor:pointer;display:flex;flex:1 1;font-size:1rem;font-weight:600;gap:.5rem;justify-content:center;min-width:150px;padding:1rem 1.5rem;transition:all .3s ease}.provider-btn:hover:not(:disabled){background:#f5f5f7;border-color:#d2d2d7;transform:translateY(-1px)}.provider-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 12px #667eea4d;color:#fff}.provider-btn:disabled{cursor:not-allowed;opacity:.4}.api-key-section{background:#f5f5f7;border:1px solid #e5e5e7;border-radius:12px;margin-top:1.5rem;padding:1.5rem}.api-key-section label{color:#1d1d1f;display:block;font-size:.95rem;font-weight:600;margin-bottom:.75rem}.api-key-input{border:2px solid #d2d2d7;border-radius:8px;font-family:Monaco,Courier New,monospace;font-size:.95rem;padding:.875rem 1rem;transition:all .3s ease}.api-key-input:focus{border-color:#667eea;box-shadow:0 0 0 4px #667eea1a}.api-key-hint{color:#6e6e73;font-size:.875rem;font-style:italic;margin-top:.75rem}.preview-mode-container{margin:0 auto;max-width:1400px;width:100%}.preview-card{background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;padding:2rem}.preview-description{color:#6e6e73;font-size:1rem;margin-bottom:1.5rem}.preview-input-section{margin-bottom:2rem}.preview-id-input{background:#f5f5f7;border:2px solid #e5e5e7;border-radius:12px;color:#1d1d1f;font-family:Monaco,Courier New,monospace;font-size:1rem;padding:1rem 1.5rem;transition:all .3s ease;width:100%}.preview-id-input:focus{background:#fff;border-color:#667eea;box-shadow:0 0 0 4px #667eea1a;outline:none}.preview-id-input::placeholder{color:#86868b}.preview-iframe-container{margin-top:1.5rem}.preview-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px 12px 0 0;color:#fff;gap:1rem}.preview-label{font-size:.95rem;font-weight:600}.preview-id-display{background:#fffffff2;border-radius:6px;color:#1d1d1f;font-family:Monaco,Courier New,monospace;font-size:.85rem;font-weight:600;padding:.5rem 1rem}.app-preview-iframe{background:#fff;border:2px solid #e5e5e7;border-radius:0 0 12px 12px;border-top:none;height:calc(100vh - 400px);min-height:600px;width:100%}.preview-placeholder{background:#f5f5f7;border:2px dashed #d2d2d7;border-radius:12px;padding:4rem 2rem;text-align:center}.preview-placeholder p{color:#6e6e73;font-size:1.1rem;margin:.5rem 0}.preview-hint{color:#86868b!important;font-size:.95rem!important}.file-upload-container{width:100%}.drop-zone{align-items:center;background:#f7fafc;border:3px dashed #cbd5e0;border-radius:8px;cursor:pointer;display:flex;justify-content:center;min-height:200px;padding:2rem;text-align:center;transition:all .3s}.drop-zone:hover{background:#edf2f7;border-color:#667eea}.drop-zone.dragging{background:#e6f2ff;border-color:#667eea;transform:scale(1.02)}.drop-zone.has-file{background:#f0fff4;border-color:#48bb78}.upload-prompt{align-items:center;display:flex;flex-direction:column;gap:.5rem}.upload-icon{font-size:3rem;margin-bottom:.5rem}.upload-text{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0}.upload-hint{color:#718096;font-size:.9rem;margin:0}.upload-formats{color:#a0aec0;font-size:.8rem;margin:.5rem 0 0}.file-info{align-items:center;display:flex;flex-direction:column;gap:.5rem}.file-icon{font-size:3rem}.file-name{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0;word-break:break-all}.file-hint{color:#718096;font-size:.85rem;margin:0}.error-message{align-items:center;background:#fed7d7;border-left:4px solid #f56565;border-radius:4px;display:flex;gap:.5rem;margin-top:1rem;padding:1rem}.error-icon{font-size:1.2rem}.error-message p{color:#742a2a;font-size:.9rem;margin:0}.model-selector-container{width:100%}.server-status-card{background:#fff;border:1px solid #00000014;border-left:4px solid #34c759;border-radius:12px;margin-bottom:1.5rem;padding:1.25rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.status-indicator-container{align-items:center;display:flex;gap:.75rem}.status-icon{font-size:1.5rem;font-weight:700}.status-label{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em}.refresh-btn{background:#f5f5f7;border:1px solid #0000001a;border-radius:8px;color:#1d1d1f;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.refresh-btn:hover:not(:disabled){background:#e8e8ed;border-color:#00000026}.refresh-btn:disabled{cursor:not-allowed;opacity:.5}.status-message{color:#1d1d1f;font-size:.925rem;font-weight:500;letter-spacing:-.01em;margin-bottom:.5rem}.status-url{color:#86868b;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.825rem;letter-spacing:-.01em}.model-section{margin-bottom:2rem}.section-title{color:#1d1d1f;font-size:1.075rem;font-weight:600;letter-spacing:-.01em;margin-bottom:1rem}.no-models-message{background:#fbfbfd;border:1px solid #0000000f;border-radius:12px;padding:2rem;text-align:center}.no-models-message p{color:#6e6e73;font-size:.975rem;letter-spacing:-.01em;margin:0}.model-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:1rem}.model-card{align-items:center;background:#fbfbfd;border:1px solid #00000014;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;padding:1rem;position:relative;text-align:center;transition:all .2s cubic-bezier(.4,0,.2,1)}.model-card:hover:not(.disabled){border-color:#0071e3;box-shadow:0 4px 12px #0071e326;transform:translateY(-2px)}.model-card.selected{background:#f0f8ff;border-color:#0071e3;box-shadow:0 4px 12px #0071e333}.model-card.disabled{cursor:not-allowed;opacity:.4;pointer-events:none}.model-icon{font-size:2.5rem;margin-bottom:.5rem}.model-info{flex:1 1}.model-name{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .25rem}.model-description{color:#6e6e73;font-size:.85rem;letter-spacing:-.01em;line-height:1.4;margin:0}.selected-badge{align-items:center;background:#0071e3;border-radius:50%;box-shadow:0 2px 8px #0071e34d;color:#fff;display:flex;font-size:1rem;font-weight:700;height:28px;justify-content:center;position:absolute;right:.5rem;top:.5rem;width:28px}.available-badge{animation:pulse 2s infinite;color:#34c759;font-size:1.2rem;left:.5rem;position:absolute;top:.5rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.selected-model-info{background:#f5f5f7;border-left:4px solid #0071e3;border-radius:8px;padding:.875rem 1.125rem}.selected-model-info p{color:#1d1d1f;font-size:.95rem;letter-spacing:-.01em;margin:0}.other-models-section{background:#fbfbfd;border:1px solid #0000000f;border-radius:12px;margin:2rem 0 1.5rem;padding:1.25rem}.api-key-input-group{margin-bottom:1.5rem}.api-key-input-group:last-of-type{margin-bottom:1rem}.api-provider-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.provider-info{align-items:center;display:flex;gap:.5rem}.provider-icon{font-size:1.5rem}.provider-name{color:#1d1d1f;font-size:1rem;font-weight:600;letter-spacing:-.01em}.provider-models{color:#86868b;font-weight:400}.provider-models,.toggle-key-btn{font-size:.825rem;letter-spacing:-.01em}.toggle-key-btn{background:#f5f5f7;border:1px solid #00000014;border-radius:8px;color:#1d1d1f;cursor:pointer;font-weight:500;padding:.4rem .875rem;transition:all .2s cubic-bezier(.4,0,.2,1)}.toggle-key-btn:hover{background:#e8e8ed;border-color:#0000001f}.api-key-input{background:#fff;border:1px solid #0000001a;border-radius:10px;color:#1d1d1f;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.925rem;letter-spacing:-.01em;padding:.75rem 1rem;transition:all .2s cubic-bezier(.4,0,.2,1);width:100%}.api-key-input:focus{border-color:#0071e3;box-shadow:0 0 0 4px #0071e31a;outline:none}.api-key-input::placeholder{color:#86868b}.key-status{align-items:center;color:#34c759;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;margin-top:.5rem}.key-status-icon{font-size:1rem}.other-models-note{background:#fff9e6;border:1px solid #fc0;border-radius:10px;margin-top:1rem;padding:1rem}.other-models-note p{color:#6e4900;font-size:.875rem;letter-spacing:-.01em;line-height:1.5;margin:0}.other-models-note strong{font-weight:600}@media (max-width:768px){.model-grid{gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.model-card{padding:.75rem}.model-icon{font-size:2rem}.model-name{font-size:.9rem}.model-description{font-size:.75rem}}.preview-container{background:#fff;border-radius:8px;display:flex;flex-direction:column;height:600px;overflow:hidden;width:100%}.preview-header{background:#f7fafc;border-bottom:2px solid #e2e8f0;justify-content:space-between;padding:1rem}.preview-header,.preview-url{align-items:center;display:flex}.preview-url{flex:1 1;gap:.75rem}.url-label{color:#2d3748;font-size:.9rem;font-weight:600}.url-link{background:#edf2f7;border-radius:4px;color:#667eea;font-family:monospace;font-size:.9rem;padding:.25rem .5rem;text-decoration:none;transition:all .2s}.url-link:hover{background:#e6f2ff;text-decoration:underline}.refresh-btn{background:#fff;border:2px solid #e2e8f0;border-radius:6px;cursor:pointer;font-size:1.2rem;padding:.5rem .75rem;transition:all .2s}.refresh-btn:hover{border-color:#667eea;transform:rotate(90deg)}.error-banner{align-items:center;background:#fed7d7;border-bottom:2px solid #fc8181;display:flex;gap:.5rem;padding:.75rem 1rem}.error-banner .error-icon{font-size:1.2rem}.error-banner p{color:#742a2a;font-size:.9rem;margin:0}.iframe-wrapper{background:#f7fafc;flex:1 1;overflow:hidden;position:relative}.iframe-loading{align-items:center;background:#fff;bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:10}.iframe-loading p{color:#718096;font-size:.9rem;margin-top:1rem}.preview-iframe{border:none;height:100%;opacity:0;transition:opacity .3s;width:100%}.preview-iframe.loaded{opacity:1}.empty-state,.loading-state{align-items:center;display:flex;flex-direction:column;gap:1rem;height:100%;justify-content:center;padding:2rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #e2e8f0;border-radius:50%;border-top-color:#667eea;height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.loading-text{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.loading-subtext{color:#718096;font-size:.95rem;margin:0}.empty-icon{font-size:4rem;opacity:.5}.empty-text{color:#2d3748;font-size:1.2rem;font-weight:600;margin:0}.empty-subtext{color:#718096;font-size:.95rem;margin:0}@media (max-width:768px){.preview-container{height:500px}.preview-header{gap:.75rem}.preview-header,.preview-url{align-items:flex-start;flex-direction:column}.preview-url{gap:.5rem}.url-link{word-break:break-all}.refresh-btn{align-self:flex-end}}.svg-editor{display:flex;flex-direction:column;gap:15px;margin:0 auto;max-width:850px;width:100%}.editor-toolbar{align-items:center;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;flex-wrap:wrap;gap:15px;padding:15px}.tool-group{background-color:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;gap:5px;padding:5px}.tool-btn{background-color:#fff;border:2px solid #0000;border-radius:4px;cursor:pointer;font-size:18px;min-width:45px;padding:10px 15px;transition:all .2s ease}.tool-btn:hover{background-color:#e9ecef;border-color:#adb5bd}.tool-btn.active{background-color:#0d6efd;border-color:#0d6efd;color:#fff}.color-group{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:6px;display:flex;gap:15px;padding:5px 10px}.color-group label{align-items:center;color:#495057;display:flex;font-size:14px;font-weight:500;gap:8px}.color-group input[type=color]{border:1px solid #dee2e6;border-radius:4px;cursor:pointer;height:30px;width:40px}.color-group input[type=range]{width:80px}.color-group span{color:#6c757d;font-size:12px;min-width:35px}.action-group{display:flex;gap:8px;margin-left:auto}.action-btn{background-color:#6c757d;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background-color .2s ease}.action-btn:hover:not(:disabled){background-color:#5a6268}.action-btn:disabled{cursor:not-allowed;opacity:.5}.action-btn.export-btn{background-color:#28a745}.action-btn.export-btn:hover:not(:disabled){background-color:#218838}.svg-canvas{background-color:#fff;border:2px solid #dee2e6;border-radius:8px;box-shadow:0 2px 8px #0000001a;cursor:crosshair;height:500px;overflow:hidden;position:relative;width:100%}.svg-canvas:hover{border-color:#0d6efd}.editor-hint{background-color:#e7f5ff;border:1px solid #339af0;border-radius:6px;color:#1864ab;font-size:14px;font-weight:500;padding:12px 20px;text-align:center}@media (max-width:768px){.editor-toolbar{align-items:stretch;flex-direction:column}.action-group{margin-left:0;width:100%}.action-btn{flex:1 1}.svg-canvas{height:400px}}.sample-downloads{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #0000001a;color:#fff;padding:20px 30px}.downloads-header,.sample-downloads{margin-bottom:20px}.downloads-header h3{font-size:1.3rem;font-weight:600;margin:0 0 8px}.downloads-header p{font-size:.95rem;margin:0;opacity:.95}.downloads-header .page-type-note{background:#ffffff1a;border-left:3px solid #fff6;border-radius:6px;font-size:.9rem;font-style:italic;margin-top:8px;opacity:.9;padding:8px 12px}.download-links{display:flex;flex-wrap:wrap;gap:15px}.download-link{align-items:center;background:#fffffff2;border-radius:8px;box-shadow:0 2px 8px #0000001a;color:#333;display:flex;flex:1 1;gap:12px;min-width:200px;padding:15px 20px;text-decoration:none;transition:all .3s ease}.download-link:hover{background:#fff;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.download-link:active{transform:translateY(0)}.download-icon{font-size:2rem;line-height:1}.download-text{display:flex;flex-direction:column;gap:4px}.download-text strong{color:#333;font-size:1rem;font-weight:600}.download-text small{color:#666;font-size:.85rem;line-height:1.3}@media (max-width:768px){.sample-downloads{padding:15px 20px}.download-links{flex-direction:column}.download-link{min-width:100%}.downloads-header h3{font-size:1.1rem}.downloads-header p{font-size:.9rem}}
/*# sourceMappingURL=main.8df9bda5.css.map*/