:root{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#16161f;--bg-card-hover:#1c1c28;--bg-elevated:#1e1e2a;--bg-input:#111118;--border-color:#2a2a3a;--border-hover:#3a3a50;--border-active:#00d4ff;--text-primary:#f0f0f5;--text-secondary:#8888a0;--text-muted:#555570;--text-accent:#00d4ff;--accent:#00d4ff;--accent-hover:#00b8e6;--accent-glow:#00d4ff26;--accent-glow-strong:#00d4ff4d;--success:#00e676;--success-bg:#00e6761a;--warning:#ffab40;--warning-bg:#ffab401a;--error:#ff5252;--error-bg:#ff52521a;--gradient-accent:linear-gradient(135deg, #00d4ff 0%, #06f 100%);--gradient-card:linear-gradient(145deg, #16161fe6, #0a0a0ff2);--gradient-hero:linear-gradient(180deg, #0a0a0f 0%, #0d1117 50%, #0a0a0f 100%);--font-primary:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 16px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #00d4ff26;--shadow-glow-strong:0 0 40px #00d4ff40;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-primary);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex}.app{background:var(--gradient-hero);flex-direction:column;min-height:100vh;display:flex;position:relative}.app:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(80% 50% at 50% -20%,#00d4ff14 0%,#0000 50%),radial-gradient(60% 40% at 80% 80%,#0066ff0d 0%,#0000 50%);position:fixed;inset:0}.header{padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);z-index:100;background:#0a0a0fcc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-brand{align-items:center;gap:var(--space-md);display:flex}.header-logo{background:var(--gradient-accent);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:800}.header-tagline{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.header-badge{align-items:center;gap:var(--space-xs);background:var(--accent-glow);border-radius:var(--radius-full);color:var(--accent);text-transform:uppercase;letter-spacing:.05em;border:1px solid #00d4ff33;padding:4px 12px;font-size:.7rem;font-weight:600;display:flex}.header-badge:before{content:"";background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.main-content{width:100%;max-width:1200px;padding:var(--space-2xl) var(--space-xl);z-index:1;flex:1;margin:0 auto;position:relative}.step-progress{margin-bottom:var(--space-2xl);padding:var(--space-lg) 0;justify-content:center;align-items:center;gap:0;display:flex}.step-item{align-items:center;gap:var(--space-sm);display:flex;position:relative}.step-circle{border:2px solid var(--border-color);background:var(--bg-card);width:40px;height:40px;color:var(--text-muted);transition:all var(--transition-base);z-index:2;border-radius:50%;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:flex;position:relative}.step-item.active .step-circle{border-color:var(--accent);background:var(--accent-glow);color:var(--accent);box-shadow:var(--shadow-glow)}.step-item.completed .step-circle{border-color:var(--success);background:var(--success-bg);color:var(--success)}.step-label{color:var(--text-muted);transition:color var(--transition-base);white-space:nowrap;font-size:.8rem;font-weight:500}.step-item.active .step-label{color:var(--text-primary)}.step-item.completed .step-label{color:var(--success)}.step-connector{background:var(--border-color);width:60px;height:2px;margin:0 var(--space-sm);transition:background var(--transition-base)}.step-connector.active{background:var(--accent);box-shadow:0 0 8px #00d4ff4d}.card{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all var(--transition-base)}.card:hover{border-color:var(--border-hover)}.card-glow{box-shadow:var(--shadow-glow);border-color:#00d4ff26}.card-title{margin-bottom:var(--space-xs);letter-spacing:-.01em;font-size:1.35rem;font-weight:700}.card-subtitle{color:var(--text-secondary);margin-bottom:var(--space-lg);font-size:.85rem}.upload-zone{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--space-3xl) var(--space-xl);text-align:center;cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden}.upload-zone:before{content:"";background:var(--accent-glow);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.upload-zone:hover,.upload-zone.dragover{border-color:var(--accent);transform:translateY(-2px)}.upload-zone:hover:before,.upload-zone.dragover:before{opacity:1}.upload-zone.has-file{border-color:var(--success);border-style:solid}.upload-icon{margin-bottom:var(--space-md);z-index:1;font-size:3.5rem;animation:3s ease-in-out infinite float;position:relative}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.upload-title{margin-bottom:var(--space-sm);z-index:1;font-size:1.2rem;font-weight:600;position:relative}.upload-subtitle{color:var(--text-secondary);z-index:1;font-size:.85rem;position:relative}.upload-formats{gap:var(--space-sm);margin-top:var(--space-md);z-index:1;justify-content:center;display:flex;position:relative}.format-badge{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-secondary);font-size:.7rem;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;padding:3px 10px}.file-info{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-top:var(--space-md);display:flex}.file-info-icon{font-size:2rem}.file-info-details{flex:1}.file-info-name{font-size:.9rem;font-weight:600}.file-info-size{color:var(--text-secondary);font-size:.75rem}.file-info-remove{color:var(--text-muted);cursor:pointer;padding:var(--space-xs);transition:color var(--transition-fast);background:0 0;border:none;font-size:1.2rem}.file-info-remove:hover{color:var(--error)}.model-stats{gap:var(--space-md);margin-top:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.stat-card{padding:var(--space-md);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);text-align:center}.stat-value{color:var(--accent);font-size:1.3rem;font-weight:700;font-family:var(--font-mono)}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:2px;font-size:.7rem}.model-viewer-container{border-radius:var(--radius-lg);border:1px solid var(--border-color);background:#0d0d14;width:100%;height:350px;position:relative;overflow:hidden}.model-viewer-container canvas{outline:none}.viewer-controls-hint{bottom:var(--space-md);gap:var(--space-md);border-radius:var(--radius-full);color:var(--text-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;z-index:5;background:#000000b3;padding:6px 14px;font-size:.65rem;display:flex;position:absolute;left:50%;transform:translate(-50%)}.config-section{margin-bottom:var(--space-lg)}.config-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm);font-size:.8rem;font-weight:600}.tech-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tech-card{padding:var(--space-md);background:var(--bg-input);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);text-align:center}.tech-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover);transform:translateY(-2px)}.tech-card.selected{border-color:var(--accent);background:var(--accent-glow);box-shadow:var(--shadow-glow)}.tech-card-icon{margin-bottom:var(--space-xs);font-size:1.8rem}.tech-card-name{font-size:.85rem;font-weight:700}.tech-card-desc{color:var(--text-muted);margin-top:2px;font-size:.65rem;line-height:1.3}.material-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.material-card{padding:var(--space-md);background:var(--bg-input);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:flex-start;gap:var(--space-sm);display:flex}.material-card:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.material-card.selected{border-color:var(--accent);background:var(--accent-glow)}.material-swatch{border:1px solid #ffffff1a;border-radius:50%;flex-shrink:0;width:12px;height:12px;margin-top:4px}.material-card-info{flex:1;min-width:0}.material-card-name{font-size:.85rem;font-weight:600}.material-card-desc{color:var(--text-muted);margin-top:2px;font-size:.7rem;line-height:1.3}.material-card-price{color:var(--accent);font-size:.7rem;font-family:var(--font-mono);margin-top:4px;font-weight:500}.options-row{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));display:grid}.option-group{gap:var(--space-xs);flex-direction:column;display:flex}.option-label{color:var(--text-secondary);font-size:.75rem;font-weight:500}.option-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-primary);transition:border-color var(--transition-fast);outline:none;padding:10px 14px;font-size:.85rem}.option-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.option-input option{background:var(--bg-card);color:var(--text-primary)}.slider-container{gap:var(--space-xs);flex-direction:column;display:flex}.slider-header{justify-content:space-between;align-items:center;display:flex}.slider-value{font-family:var(--font-mono);color:var(--accent);font-size:.85rem;font-weight:600}input[type=range]{-webkit-appearance:none;background:var(--bg-elevated);border-radius:var(--radius-full);border:1px solid var(--border-color);outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;width:20px;height:20px;transition:transform var(--transition-fast);border-radius:50%;box-shadow:0 0 10px #00d4ff4d}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.toggle-container{align-items:center;gap:var(--space-md);cursor:pointer;display:flex}.toggle-switch{background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-full);width:44px;height:24px;transition:all var(--transition-fast);position:relative}.toggle-switch:after{content:"";background:var(--text-muted);width:18px;height:18px;transition:all var(--transition-fast);border-radius:50%;position:absolute;top:2px;left:2px}.toggle-container.active .toggle-switch{background:var(--accent-glow);border-color:var(--accent)}.toggle-container.active .toggle-switch:after{background:var(--accent);left:22px;box-shadow:0 0 8px #00d4ff66}.toggle-label{font-size:.85rem;font-weight:500}.toggle-sublabel{color:var(--text-muted);font-size:.7rem}.quote-result{position:relative;overflow:hidden}.quote-result:before{content:"";background:var(--gradient-accent);border-radius:var(--radius-lg) var(--radius-lg) 0 0;height:3px;position:absolute;top:-1px;left:-1px;right:-1px}.quote-total-section{text-align:center;padding:var(--space-xl) 0;border-bottom:1px solid var(--border-color);margin-bottom:var(--space-lg)}.quote-total-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-xs);font-size:.75rem}.quote-total-price{background:var(--gradient-accent);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:3rem;font-weight:900;line-height:1}.quote-per-unit{color:var(--text-secondary);margin-top:var(--space-xs);font-size:.85rem}.breakdown-table{border-collapse:collapse;width:100%}.breakdown-row{border-bottom:1px solid #2a2a3a80;justify-content:space-between;align-items:center;padding:10px 0;display:flex}.breakdown-row:last-child{border-bottom:none}.breakdown-label{color:var(--text-secondary);align-items:center;gap:var(--space-xs);font-size:.85rem;display:flex}.breakdown-detail{color:var(--text-muted);font-size:.7rem}.breakdown-value{font-size:.9rem;font-weight:600;font-family:var(--font-mono);color:var(--text-primary)}.breakdown-value.discount{color:var(--success)}.breakdown-value.surcharge{color:var(--warning)}.breakdown-row.total-row{border-top:2px solid var(--border-color);padding-top:var(--space-md);margin-top:var(--space-sm)}.breakdown-row.total-row .breakdown-label{color:var(--text-primary);font-size:1rem;font-weight:700}.breakdown-row.total-row .breakdown-value{color:var(--accent);font-size:1.2rem}.lead-time-badge{align-items:center;gap:var(--space-xs);background:var(--accent-glow);border-radius:var(--radius-full);color:var(--accent);margin-top:var(--space-md);border:1px solid #00d4ff33;padding:6px 14px;font-size:.8rem;font-weight:500;display:inline-flex}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--radius-md);font-family:var(--font-primary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:none;padding:12px 24px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary{background:var(--gradient-accent);color:#000;box-shadow:var(--shadow-glow)}.btn-primary:hover{box-shadow:var(--shadow-glow-strong);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.btn-outline{color:var(--accent);border:1px solid var(--accent);background:0 0}.btn-outline:hover{background:var(--accent-glow)}.btn-lg{padding:16px 32px;font-size:1rem}.btn-full{width:100%}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none!important}.actions-row{gap:var(--space-md);margin-top:var(--space-xl);flex-wrap:wrap;justify-content:center;display:flex}.manual-review-card{border-color:var(--warning);background:linear-gradient(145deg, #ffab400d, var(--bg-card))}.form-group{margin-bottom:var(--space-md)}.form-label{color:var(--text-secondary);margin-bottom:var(--space-xs);font-size:.8rem;font-weight:500;display:block}.form-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font-primary);transition:border-color var(--transition-fast);outline:none;padding:10px 14px;font-size:.85rem}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}textarea.form-input{resize:vertical;min-height:100px}.confirmation{text-align:center;padding:var(--space-2xl) 0}.confirmation-icon{margin-bottom:var(--space-lg);font-size:4rem;animation:.6s bounce-in}@keyframes bounce-in{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.confirmation-title{margin-bottom:var(--space-sm);font-size:1.8rem;font-weight:800}.confirmation-subtitle{color:var(--text-secondary);margin-bottom:var(--space-xl);font-size:1rem}.two-column{gap:var(--space-xl);grid-template-columns:1fr 1fr;display:grid}.split-layout{gap:var(--space-xl);grid-template-columns:1.2fr 1fr;align-items:start;display:grid}.section-divider{background:var(--border-color);width:100%;height:1px;margin:var(--space-lg) 0}.fade-in{animation:.4s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:.5s slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (width<=900px){.split-layout,.two-column{grid-template-columns:1fr}.main-content{padding:var(--space-lg) var(--space-md)}.step-progress{gap:var(--space-xs);flex-wrap:wrap}.step-connector{width:30px}.step-label{display:none}.tech-grid{grid-template-columns:repeat(2,1fr)}.material-grid{grid-template-columns:1fr}.quote-total-price{font-size:2.2rem}}@media (width<=480px){.header{padding:var(--space-sm) var(--space-md)}.header-tagline{display:none}.tech-grid{grid-template-columns:1fr 1fr}.model-viewer-container{height:250px}.options-row{grid-template-columns:1fr}}body.iframe-mode .header{display:none}body.iframe-mode .main-content{padding-top:var(--space-lg)}.spinner{border:3px solid var(--border-color);border-top-color:var(--accent);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{border-radius:var(--radius-lg);z-index:10;background:#0a0a0fcc;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.escape-hatch-banner{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--warning-bg);border-radius:var(--radius-md);margin-top:var(--space-lg);cursor:pointer;transition:all var(--transition-fast);border:1px solid #ffab4033;display:flex}.escape-hatch-banner:hover{border-color:var(--warning);background:#ffab4026}.escape-hatch-icon{flex-shrink:0;font-size:1.5rem}.escape-hatch-text{flex:1}.escape-hatch-title{color:var(--warning);font-size:.85rem;font-weight:600}.escape-hatch-desc{color:var(--text-muted);font-size:.75rem}.escape-hatch-arrow{color:var(--text-muted);font-size:1.2rem}.shipping-options{gap:var(--space-sm);flex-direction:column;display:flex}.shipping-option{align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--bg-input);border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:flex}.shipping-option:hover{border-color:var(--border-hover)}.shipping-option.selected{border-color:var(--accent);background:var(--accent-glow)}.shipping-radio{border:2px solid var(--border-color);border-radius:50%;flex-shrink:0;width:18px;height:18px;position:relative}.shipping-option.selected .shipping-radio{border-color:var(--accent)}.shipping-option.selected .shipping-radio:after{content:"";background:var(--accent);border-radius:50%;position:absolute;inset:3px}.shipping-info{flex:1}.shipping-label{font-size:.85rem;font-weight:500}.shipping-days{color:var(--text-muted);font-size:.7rem}.shipping-price{font-family:var(--font-mono);color:var(--accent);font-size:.9rem;font-weight:600}.quantity-input{border:1px solid var(--border-color);border-radius:var(--radius-sm);align-items:center;gap:0;display:flex;overflow:hidden}.quantity-btn{background:var(--bg-elevated);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);border:none;justify-content:center;align-items:center;font-size:1.2rem;display:flex}.quantity-btn:hover{background:var(--bg-card-hover)}.quantity-value{background:var(--bg-input);border:none;border-left:1px solid var(--border-color);border-right:1px solid var(--border-color);width:60px;height:40px;color:var(--text-primary);text-align:center;font-family:var(--font-mono);outline:none;font-size:.95rem;font-weight:600}.success-checkmark{width:80px;height:80px;margin:0 auto var(--space-lg);position:relative}.success-checkmark svg{width:100%;height:100%}.success-checkmark circle{fill:none;stroke:var(--success);stroke-width:2px;stroke-dasharray:166;stroke-dashoffset:166px;animation:.8s forwards dash}.success-checkmark path{fill:none;stroke:var(--success);stroke-width:3px;stroke-dasharray:48;stroke-dashoffset:48px;animation:.5s .5s forwards dash}@keyframes dash{to{stroke-dashoffset:0}}.pricing-note{margin-top:var(--space-lg);padding:var(--space-md);border-radius:var(--radius-md);color:var(--text-muted);text-align:center;background:#00d4ff0d;border:1px solid #00d4ff1a;font-size:.75rem;line-height:1.5}
