:root{--bg-primary: #090d16;--bg-surface: #111827;--bg-surface-elevated: #1f293d;--bg-glass: rgba(17, 24, 39, .85);--border-subtle: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .16);--border-accent: rgba(0, 230, 118, .4);--text-primary: #f9fafb;--text-secondary: #9ca3af;--text-muted: #6b7280;--accent-neon-green: #00e676;--accent-neon-green-glow: rgba(0, 230, 118, .25);--accent-indigo: #6366f1;--accent-cyan: #38bdf8;--accent-purple: #a855f7;--focus-ring: 0 0 0 3px rgba(0, 230, 118, .5);--status-success: #10b981;--status-green-bg: rgba(16, 185, 129, .15);--status-warning: #f59e0b;--status-warning-bg: rgba(245, 158, 11, .15);--status-error: #ef4444;--status-error-bg: rgba(239, 68, 68, .15);--status-red: #ef4444;--status-red-bg: rgba(239, 68, 68, .15);--status-amber: #f59e0b;--status-amber-bg: rgba(245, 158, 11, .15);--status-green: #10b981;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", monospace;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--shadow-lg: 0 10px 30px -10px rgba(0, 0, 0, .5), 0 0 20px rgba(0, 230, 118, .15);--transition-fast: .15s ease;--transition-normal: .25s ease}*{box-sizing:border-box;margin:0;padding:0}*:focus-visible{outline:2px solid var(--accent-neon-green)!important;outline-offset:2px;box-shadow:var(--focus-ring)}html,body{background-color:var(--bg-primary);color:var(--text-primary);font-family:var(--font-sans);font-size:16px;line-height:1.6;min-height:100vh;width:100%;max-width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased}.skip-link{position:absolute;top:-100px;left:16px;background:var(--accent-neon-green);color:#000;padding:10px 18px;border-radius:var(--radius-sm);font-weight:700;z-index:9999;transition:top var(--transition-fast);text-decoration:none}.skip-link:focus{top:16px;outline:3px solid var(--accent-neon-green)}.app-shell{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:100}.header-container{max-width:1280px;margin:0 auto;padding:16px 24px;display:flex;align-items:center;justify-content:space-between}.header-left{display:flex;align-items:center;gap:16px}.logo-link{display:flex;align-items:center;text-decoration:none}.wordmark{display:inline-flex;align-items:center;font-weight:700;letter-spacing:-.02em}.wordmark-interface{color:#fff}.wordmark-forge{color:var(--accent-neon-green)}.logo-full-desktop{height:38px;width:auto;display:block}.logo-compact-mobile{height:34px;width:auto;display:none}.logo-badge-icon{width:16px;height:16px;margin-right:6px;vertical-align:middle}@media (max-width: 640px){.logo-full-desktop{display:none}.logo-compact-mobile{display:block}}.project-status-tag{background:#00e6761f;border:1px solid var(--border-accent);color:var(--accent-neon-green);font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px;letter-spacing:.03em;text-transform:uppercase}.header-right{display:flex;align-items:center;gap:14px}.help-button{background:transparent;border:1px solid var(--border-medium);color:var(--text-secondary);padding:6px 14px;border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:all var(--transition-fast)}.help-button:hover{background:var(--bg-surface-elevated);color:var(--text-primary);border-color:var(--accent-indigo)}.status-badge{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;font-weight:600;padding:6px 14px;border-radius:999px;border:none;cursor:default}.status-dot{width:8px;height:8px;border-radius:50%}.status-online{background:var(--status-green-bg);color:var(--status-green);border:1px solid rgba(34,197,94,.3)}.status-online .status-dot{background:var(--status-green);box-shadow:0 0 8px var(--status-green)}.status-offline{background:var(--status-red-bg);color:var(--status-red);border:1px solid rgba(239,68,68,.3);cursor:pointer}.status-offline .status-dot{background:var(--status-red);box-shadow:0 0 8px var(--status-red)}.status-loading{background:var(--status-amber-bg);color:var(--status-amber);border:1px solid rgba(245,158,11,.3)}.status-loading .status-dot{background:var(--status-amber);animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.help-panel{background:var(--bg-surface-elevated);border-bottom:1px solid var(--border-medium);padding:20px 24px;animation:slideDown .2s ease-out}.help-panel-content{max-width:1280px;margin:0 auto}.help-panel h3{color:var(--accent-cyan);margin-bottom:8px}.status-note{margin-top:10px;color:var(--text-secondary);font-size:.9rem}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes progressBarSlide{0%{transform:translate(-100%)}to{transform:translate(200%)}}.step-navigation{background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.step-container{max-width:1280px;margin:0 auto;display:flex;overflow-x:auto}.step-item{flex:1;min-width:180px}.step-link{display:flex;align-items:center;gap:10px;padding:14px 18px;color:var(--text-muted);text-decoration:none;font-size:.9rem;font-weight:500;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.step-link.disabled{cursor:not-allowed;opacity:.6}.step-number{width:24px;height:24px;border-radius:50%;background:#ffffff0d;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700}.step-item:not(.active):not(.completed) .step-link{color:var(--text-muted)}.step-item.active .step-link{color:var(--accent-neon-green);border-bottom-color:var(--accent-neon-green);background:#10b98114}.step-item.active .step-number{background:var(--accent-neon-green);color:#000}.step-item.completed:not(.active) .step-link{color:var(--text-primary);border-bottom-color:transparent;background:transparent}.step-item.completed:not(.active) .step-number{background:var(--text-primary);color:var(--bg-surface)}.app-main{flex:1;max-width:1280px;width:100%;margin:0 auto;padding:32px 24px}.notice-banner{background:linear-gradient(90deg,#6366f126,#a855f726);border:1px solid var(--border-accent);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:32px}.notice-content{display:flex;flex-direction:column;gap:8px}.notice-badge{color:var(--accent-cyan);font-size:.75rem;font-weight:700;letter-spacing:.05em}.hero-section{text-align:center;padding:40px 0 60px}.mock-mode-badge{background:#00e6761a;border:1px solid rgba(0,230,118,.3);color:var(--accent-neon-green);font-size:.72rem;font-weight:600;padding:3px 8px;border-radius:var(--radius-sm);letter-spacing:.03em}.hero-title{font-size:2.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.2;margin-bottom:16px;background:linear-gradient(135deg,#ffffff 40%,var(--accent-neon-green) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{font-size:1.15rem;color:var(--text-secondary);max-width:760px;margin:0 auto 32px}.hero-zoo-attribution{display:flex;flex-direction:column;align-items:center;gap:6px;margin:-12px auto 24px;color:var(--text-secondary);font-size:.85rem}.hero-zoo-logo{width:96px;height:auto;max-height:34px;object-fit:contain}.hero-zoo-attribution a{color:var(--accent-cyan);text-decoration:none}.hero-zoo-attribution a:hover{text-decoration:underline}.hero-actions{display:flex;justify-content:center;gap:16px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:var(--radius-sm);font-weight:600;font-size:.95rem;cursor:pointer;transition:all var(--transition-fast);border:none;text-decoration:none}.btn-primary{background:var(--accent-neon-green);color:#050b07;font-weight:700;border:1px solid var(--accent-neon-green);box-shadow:0 4px 14px #00e6764d}.btn-primary:hover:not(:disabled){background:#00ff84;color:#050b07;border-color:#00ff84;transform:translateY(-1px);box-shadow:0 6px 20px #00e67673}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.export-action-button-pending{background:#0d1117;color:var(--accent-neon-green);border:1px solid var(--accent-neon-green);box-shadow:none}.export-action-button-pending:hover:not(:disabled){background:#161b22;color:#00ff84;border-color:#00ff84;box-shadow:none}.export-action-button-pending:disabled{opacity:1;color:var(--accent-neon-green);background:#0d1117;border-color:var(--accent-neon-green);box-shadow:none}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-medium)}.btn-secondary:hover{background:#ffffff1a}.btn-tertiary{background:transparent;color:var(--text-secondary);border:1px solid transparent}.btn-tertiary:hover{color:var(--status-error);background:var(--status-error-bg)}.btn-large{padding:14px 28px;font-size:1.05rem}.section-title{font-size:1.4rem;font-weight:700;margin-bottom:20px;color:var(--text-primary)}.status-section,.workflow-preview-section,.examples-section{margin-bottom:48px}.status-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow-lg)}.status-state.online{display:flex;gap:16px}.status-icon{font-size:1.8rem}.health-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:16px;background:var(--bg-primary);padding:16px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.health-label{display:block;font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.health-value{font-family:var(--font-mono);font-weight:600;color:var(--accent-cyan)}.health-value.status-ok{color:var(--status-green)}.workflow-steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px}.workflow-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:20px;transition:transform var(--transition-fast)}.workflow-card:hover{transform:translateY(-3px);border-color:var(--accent-indigo)}.workflow-step-num{width:32px;height:32px;border-radius:50%;background:#6366f133;color:var(--accent-cyan);display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:12px}.workflow-card h3{font-size:1.05rem;margin-bottom:8px}.workflow-card p{color:var(--text-secondary);font-size:.9rem}.examples-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.example-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:24px}.example-card h3{margin-bottom:8px}.example-card p{color:var(--text-secondary);font-size:.9rem;margin-bottom:16px}.card-badge{display:inline-block;background:#ffffff0d;border:1px solid var(--border-subtle);font-size:.75rem;padding:4px 10px;border-radius:var(--radius-sm);color:var(--accent-cyan)}.app-footer{background:var(--bg-surface);border-top:1px solid var(--border-subtle);padding:24px 0;margin-top:auto}.footer-container{max-width:1280px;margin:0 auto;padding:0 24px;display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center}.privacy-note{font-size:.85rem;color:var(--text-secondary)}.footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:.85rem;color:var(--text-muted)}.footer-link{color:var(--accent-cyan);text-decoration:none}.footer-link:hover{text-decoration:underline}.footer-separator{color:var(--border-medium)}.footer-zoo-logo{width:34px;height:auto;max-height:18px;display:inline-block;vertical-align:middle;object-fit:contain}.error-boundary-fallback{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg-primary)}.error-card{background:var(--bg-surface);border:1px solid var(--status-red);border-radius:var(--radius-md);padding:32px;max-width:500px;width:100%}.error-details{background:var(--bg-primary);padding:12px;border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:.85rem;color:var(--status-red);margin:16px 0;overflow-x:auto}.placeholder-page{display:flex;justify-content:center;padding:40px 0}.placeholder-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:36px;max-width:600px;text-align:center}.step-tag{background:var(--accent-indigo);color:#fff;font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:999px}.placeholder-card h1{margin:16px 0}.placeholder-description{color:var(--text-secondary);margin-bottom:20px}.placeholder-note{background:var(--bg-primary);padding:14px;border-radius:var(--radius-sm);font-size:.85rem;color:var(--text-muted);margin-bottom:24px}.model-generation-page{display:flex;flex-direction:column;gap:24px}.page-header-banner{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px}.header-status-badge .badge{display:inline-block;font-size:.8rem;font-weight:700;padding:6px 12px;border-radius:999px}.badge-success{background:#00e67626;color:var(--accent-neon-green);border:1px solid var(--accent-neon-green)}.badge-info{background:#38bdf826;color:var(--accent-cyan);border:1px solid var(--accent-cyan)}.badge-error{background:var(--status-error-bg);color:var(--status-error);border:1px solid var(--status-error)}.readiness-card,.kcl-output-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px}.card-title{font-size:1.2rem;font-weight:700;margin-bottom:16px;color:var(--text-primary)}.readiness-success-panel{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:16px}.status-text{color:var(--accent-neon-green);font-weight:600;margin-bottom:12px}.readiness-details-grid,.meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:12px}.readiness-detail-item,.meta-item{display:flex;flex-direction:column;gap:4px}.readiness-detail-item .label,.meta-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.readiness-detail-item .val,.meta-val{font-family:var(--font-mono);font-weight:600;color:var(--text-primary);font-size:.9rem}.code-path{color:var(--accent-cyan)}.status-draft{color:var(--status-warning)}.kcl-card-footer{display:flex;justify-content:flex-end;margin-top:16px}.compile-action-row{margin-top:20px;display:flex;justify-content:flex-end}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.hash-badge{font-family:var(--font-mono);font-size:.75rem;background:var(--bg-primary);padding:4px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);color:var(--accent-cyan)}.code-preview-container{margin-top:20px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);overflow:hidden}.code-header{display:flex;justify-content:space-between;padding:8px 16px;background:var(--bg-surface-elevated);font-size:.8rem;font-family:var(--font-mono);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle)}.units-tag{color:var(--accent-neon-green);font-weight:700}.kcl-code-block{padding:16px;overflow-x:auto;max-height:400px;font-family:var(--font-mono);font-size:.85rem;line-height:1.5;color:#a7f3d0;background:#060911}.compile-error-banner{background:var(--status-error-bg);border:1px solid var(--status-error);border-radius:var(--radius-md);padding:16px 20px;color:var(--status-error)}.navigation-footer{display:flex;justify-content:space-between;margin-top:12px}.mock-banner-card{background:linear-gradient(135deg,#10b9811a,#0ea5e914);border:1px solid var(--accent-neon-green);border-radius:var(--radius-md);padding:20px 24px}.mock-banner-header{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.mock-pulse-dot{width:12px;height:12px;border-radius:50%;background:var(--accent-neon-green);box-shadow:0 0 10px var(--accent-neon-green);animation:pulse 1.5s infinite;margin-top:6px;flex-shrink:0}.mock-banner-header h3{color:var(--accent-neon-green);font-size:1.1rem;margin-bottom:4px}.mock-banner-header p{color:var(--text-secondary);font-size:.9rem}.scenario-selector-row{display:flex;align-items:center;gap:12px;background:#0000004d;padding:10px 16px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);flex-wrap:wrap}.form-select{background:var(--bg-surface-elevated);color:var(--text-primary);border:1px solid var(--border-medium);padding:8px 12px;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;cursor:pointer}.form-select:focus{border-color:var(--accent-neon-green)}.generation-progress-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;gap:20px}.status-badge-inline{font-family:var(--font-mono);font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:999px;text-transform:uppercase}.status-queued,.status-running{background:#38bdf826;color:var(--accent-cyan);border:1px solid var(--accent-cyan)}.status-succeeded{background:#00e67626;color:var(--accent-neon-green);border:1px solid var(--accent-neon-green)}.status-failed,.status-cancelled{background:var(--status-error-bg);color:var(--status-error);border:1px solid var(--status-error)}.staged-progress-container{background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:20px}.progress-bar-track{width:100%;height:10px;background:#ffffff1a;border-radius:999px;overflow:hidden;margin-bottom:20px}.progress-bar-fill{height:100%;transition:width .4s ease-in-out}.progress-bar-fill.running,.progress-bar-fill.queued{background:linear-gradient(90deg,var(--accent-cyan),var(--accent-neon-green));box-shadow:0 0 12px var(--accent-neon-green)}.progress-bar-fill.succeeded{background:var(--accent-neon-green)}.progress-bar-fill.failed,.progress-bar-fill.cancelled{background:var(--status-error)}.stage-steps-row{display:flex;justify-content:space-between;align-items:center;position:relative;margin-bottom:16px;gap:8px;overflow-x:auto}.stage-step-item{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;opacity:.4;transition:opacity .3s ease}.stage-step-item.active{opacity:1}.stage-step-item.passed{opacity:.85}.stage-dot{width:14px;height:14px;border-radius:50%;background:var(--bg-surface-elevated);border:2px solid var(--text-muted)}.stage-step-item.active .stage-dot{background:var(--accent-neon-green);border-color:var(--accent-neon-green);box-shadow:0 0 10px var(--accent-neon-green)}.stage-step-item.passed .stage-dot{background:var(--accent-cyan);border-color:var(--accent-cyan)}.stage-name{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.stage-step-item.active .stage-name{color:var(--accent-neon-green);font-weight:700}.current-stage-callout{font-size:.9rem;color:var(--text-secondary);text-align:center;padding-top:10px;border-top:1px solid var(--border-subtle)}.stage-highlight{color:var(--accent-neon-green);font-family:var(--font-mono);font-weight:700}.btn-danger{background:var(--status-error-bg);color:var(--status-error);border:1px solid var(--status-error)}.btn-danger:hover{background:#ef44444d}.job-actions-row{display:flex;gap:12px;justify-content:flex-end}.failure-details-panel{background:var(--status-error-bg);border:1px solid var(--status-error);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:12px}.failure-details-panel h3{color:var(--status-error);font-size:1.05rem}.failure-message{font-family:var(--font-mono);font-size:.9rem;color:#fca5a5}.recovery-steps-box{background:#0000004d;padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem}.recovery-steps-box ul{margin-top:6px;padding-left:20px}.last-known-good-banner{background:#10b9811a;border:1px dashed var(--accent-neon-green);padding:12px 16px;border-radius:var(--radius-sm);margin-top:4px}.lkg-text{font-size:.85rem;color:var(--text-primary)}.preview-container-card{background:var(--bg-primary);border:1px solid var(--border-accent);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:16px}.preview-container-card h3{color:var(--accent-neon-green);font-size:1.1rem}.preview-content-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(260px,.85fr);gap:20px}@media (max-width: 768px){.preview-content-grid{grid-template-columns:1fr}}.preview-svg-wrapper{background:#0a0e0b;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px;min-height:360px;display:flex;align-items:center;justify-content:center}.preview-svg-wrapper>[data-testid=shared-geometry-preview]{width:100%;max-width:720px}.step5-geometry-preview{height:100%;min-width:0;display:flex;flex-direction:column;justify-content:center}.step5-geometry-preview svg{width:100%!important;height:220px!important;flex:0 0 220px}.preview-canvas-wrapper>.step5-geometry-preview{width:100%;max-width:none}.preview-canvas-wrapper>.step5-geometry-preview .geometry-preview-controls{justify-content:flex-start;width:100%}.geometry-preview-controls button.geometry-preview-view-button{background:var(--bg-surface-elevated);color:var(--text-secondary);border:1px solid var(--border-medium);border-radius:var(--radius-sm);padding:5px 9px;font-size:.75rem;font-weight:600;cursor:pointer}.geometry-preview-controls button.geometry-preview-view-button:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--accent-cyan)}.geometry-preview-controls button.geometry-preview-view-button[aria-pressed=true]{background:#00e67624;color:var(--accent-neon-green);border-color:var(--accent-neon-green)}.geometry-preview-featured{display:grid;grid-template-columns:minmax(150px,1fr) minmax(0,2fr);align-items:stretch;gap:16px;min-height:420px}.geometry-preview-featured-sidebar{min-width:0;display:flex;flex-direction:column;gap:10px}.geometry-preview-featured-sidebar .geometry-preview-controls{flex-wrap:wrap}.geometry-preview-featured-sidebar .geometry-preview-info{line-height:1.35}.geometry-preview-featured-sidebar .model-summary-panel{padding:10px;gap:8px}.geometry-preview-featured-sidebar .summary-item{display:block}.geometry-preview-featured-sidebar .s-val{display:block;margin-top:2px;overflow-wrap:anywhere}.geometry-preview-featured-canvas{min-width:0;display:flex;align-items:center;justify-content:center}.geometry-preview-featured-canvas svg{width:100%;height:auto;min-height:360px}@media (max-width: 768px){.geometry-preview-featured{grid-template-columns:1fr}}.model-summary-panel{background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:12px}.model-summary-panel h4{color:var(--accent-cyan);font-size:.95rem;border-bottom:1px solid var(--border-subtle);padding-bottom:8px}.summary-grid{display:flex;flex-direction:column;gap:8px}.summary-item{display:flex;justify-content:space-between;font-size:.85rem}.s-label{color:var(--text-secondary)}.s-val{font-family:var(--font-mono);font-weight:600;color:var(--text-primary)}.upload-page{max-width:1280px;margin:0 auto;width:100%}.upload-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:20px;align-items:stretch;margin-top:24px;width:100%}@media (max-width: 900px){.upload-layout{grid-template-columns:1fr}}.upload-main{min-width:0;align-self:stretch;display:flex}.dropzone{border:2px dashed var(--border-medium);border-radius:var(--radius-md);padding:48px 24px;text-align:center;background:var(--bg-surface);transition:all var(--transition-normal);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:420px;height:100%;width:100%;box-sizing:border-box}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent-neon-green);background:#00e6760a;box-shadow:0 0 20px #00e6761a}.dropzone-content{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:400px}.dropzone-icon{font-size:2.5rem;color:var(--accent-neon-green)}.dropzone-text{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.dropzone-or{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.file-info-text{font-size:.8rem;color:var(--text-secondary);margin-top:8px}.preview-card{background:var(--bg-surface);width:100%;height:100%;box-sizing:border-box;border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;gap:20px}.preview-card h2{font-size:1.2rem;font-weight:700;color:var(--text-primary)}.preview-container{width:100%;height:320px;max-height:320px;border-radius:var(--radius-sm);background:#04070d;border:1px solid var(--border-subtle);overflow:hidden;display:flex;align-items:center;justify-content:center}.image-preview{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.file-meta-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:14px 18px}.file-meta-panel .meta-item{display:flex;flex-direction:column;gap:2px}.file-meta-panel .meta-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.file-meta-panel .meta-val{font-family:var(--font-mono);font-size:.85rem;font-weight:600;color:var(--text-primary);word-break:break-all}.preview-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.confirm-section{padding-top:12px;border-top:1px solid var(--border-subtle)}.preferred-input-panel{margin-top:0;height:100%;box-sizing:border-box;align-self:stretch}.upload-layout>.preferred-input-panel{margin-top:0}.upload-page>.image-guidance-panel{margin-top:20px}.image-guidance-panel{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;gap:0;margin-top:20px;align-self:start}.guidance-section{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--border-subtle)}.guidance-section:last-child{padding-bottom:0;margin-bottom:0;border-bottom:none}.guidance-title{font-size:1rem;font-weight:700;margin-bottom:12px;color:var(--text-primary);display:flex;align-items:center;gap:8px}.guidance-callout{border-radius:var(--radius-sm);padding:12px 14px;font-size:.875rem;line-height:1.5;margin-bottom:16px}.guidance-callout-primary{background:#00e67614;border:1px solid rgba(0,230,118,.25);color:var(--text-secondary)}.guidance-callout-primary strong{color:var(--accent-neon-green)}.guidance-example-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}.guidance-example{border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border-subtle);display:flex;flex-direction:column}.guidance-example-good{border-color:#10b9814d}.guidance-example-bad{border-color:#ef444440}.guidance-example-visual{width:100%;aspect-ratio:3/2;background:#0a1628;display:flex;align-items:center;justify-content:center}.guidance-example-visual svg{width:100%;height:100%;display:block}.guidance-example-label{font-size:.75rem;font-weight:700;padding:6px 8px 2px}.guidance-label-good{color:var(--status-success)}.guidance-label-bad{color:var(--status-error)}.guidance-example-caption{font-size:.7rem;color:var(--text-muted);padding:0 8px 8px;line-height:1.3}.guidance-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px}.guidance-card{border-radius:var(--radius-sm);padding:14px 16px;border:1px solid var(--border-subtle)}.guidance-good{background:#10b98112;border-color:#10b9814d}.guidance-good h3{color:var(--status-success);font-size:.9rem;font-weight:700;margin-bottom:8px;display:flex;align-items:center}.guidance-bad{background:#ef444412;border-color:#ef44444d}.guidance-bad h3{color:var(--status-error);font-size:.9rem;font-weight:700;margin-bottom:8px;display:flex;align-items:center}.guidance-card ul{padding-left:18px;font-size:.82rem;color:var(--text-secondary)}.guidance-card li{margin-bottom:4px}.guidance-annotation-warning{display:flex;gap:8px;align-items:flex-start;font-size:.8rem;color:var(--text-secondary);background:#f59e0b12;border:1px solid rgba(245,158,11,.25);border-radius:var(--radius-sm);padding:10px 12px;line-height:1.5;margin-top:12px}.guidance-annotation-warning--error{background:#ef444412;border-color:#ef44444d;margin-top:8px}.guidance-annotation-warning strong{color:var(--text-primary)}.quality-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;font-size:.82rem;font-weight:700;margin-bottom:8px;border:1px solid transparent}.quality-recommended{background:#10b98126;border-color:#10b98166;color:var(--status-success)}.quality-usable,.quality-cleanup{background:#f59e0b1f;border-color:#f59e0b59;color:var(--status-warning)}.quality-unsupported{background:#ef44441f;border-color:#ef444459;color:var(--status-error)}.quality-badge-description{font-size:.82rem;color:var(--text-secondary);margin-bottom:8px;line-height:1.5}.guidance-optional-badge{font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--bg-surface-elevated);border:1px solid var(--border-subtle);border-radius:10px;padding:2px 8px;margin-left:6px;vertical-align:middle}.guidance-measurement-hint{font-size:.82rem;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.guidance-measurement-hint--small{font-size:.75rem;color:var(--text-muted);margin-top:8px;margin-bottom:0}.guidance-measurement-row{display:flex;gap:10px;flex-wrap:wrap}.guidance-measurement-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:120px}.guidance-measurement-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.guidance-measurement-select,.guidance-measurement-input{background:var(--bg-surface-elevated);border:1px solid var(--border-medium);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.875rem;padding:7px 10px;font-family:var(--font-sans);transition:border-color var(--transition-fast);width:100%}.guidance-measurement-select:focus,.guidance-measurement-input:focus{outline:none;border-color:var(--accent-neon-green);box-shadow:0 0 0 2px #00e67626}.known-measurement-summary{font-size:.82rem;color:var(--text-secondary);background:#00e67612;border:1px solid rgba(0,230,118,.2);border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:12px;line-height:1.5}.known-measurement-dim{color:var(--text-muted);font-size:.78rem}.dev-status-details{margin-top:48px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:16px 20px}.dev-status-summary{cursor:pointer;font-size:.9rem;font-weight:600;color:var(--text-secondary);display:flex;align-items:center;justify-content:space-between;-webkit-user-select:none;user-select:none}.dev-status-summary:hover{color:var(--text-primary)}.dev-status-indicator{font-size:.75rem;font-family:var(--font-mono);color:var(--accent-neon-green)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.logo-compact-header{width:34px;height:34px;display:block;margin-right:8px}.brand-wordmark{color:var(--text-primary);font-weight:800;font-size:1.05rem;letter-spacing:0}.provider-toggle{display:inline-flex;align-items:center;padding:2px;border:1px solid var(--border-medium);border-radius:var(--radius-sm);background:#ffffff0a}.provider-toggle-option{border:0;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-weight:700;padding:5px 10px}.provider-toggle-option.active{background:var(--bg-surface-elevated);color:var(--text-primary)}.provider-toggle-option:disabled{cursor:not-allowed;opacity:.62}.project-name-badge{font-size:.78rem;color:var(--text-secondary);background:var(--bg-surface);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--border-medium)}.project-name-badge strong{color:var(--accent-cyan);font-family:var(--font-mono)}.provider-mode-message{max-width:1280px;margin:0 auto;padding:8px 24px 12px;color:var(--status-warning);font-size:.86rem}.status-live{background:var(--status-green-bg);color:var(--status-green);border:1px solid rgba(16,185,129,.35)}.status-live .status-dot{background:var(--status-green);box-shadow:0 0 8px var(--status-green);animation:pulse 1.5s infinite}.status-mock{background:#6b728024;color:var(--text-secondary);border:1px solid rgba(156,163,175,.25)}.status-mock .status-dot{background:var(--text-muted);box-shadow:none}.hero-icon{width:400px;height:400px;display:block;margin:0 auto 18px}.example-image-placeholder{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius-sm);border:1px dashed rgba(156,163,175,.35);background:linear-gradient(135deg,#111827e6,#1f293db8);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.86rem;margin-bottom:16px;text-align:center;padding:12px}.portfolio-link{color:var(--accent-neon-green);font-weight:700}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-card{background:var(--bg-surface);border:1px solid var(--border-medium);border-radius:8px;color:var(--text-primary);max-width:440px;padding:24px;width:90%}.modal-card h3{margin-bottom:10px}.modal-card p{color:var(--text-secondary);font-size:.92rem}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:20px}.btn-danger-confirm{background:#da3633;border-color:#f85149;color:#fff}@media (prefers-reduced-motion: reduce){.status-live .status-dot,.status-loading .status-dot,.mock-pulse-dot{animation:none}}@media (max-width: 760px){.header-container,.header-left,.header-right{align-items:flex-start;flex-wrap:wrap}.provider-toggle{order:3}.project-name-badge{max-width:100%}}.status-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.status-panel-header h3{margin:0 0 4px}.status-panel-header p{color:var(--text-secondary);font-size:.9rem}.service-status-list{display:flex;flex-direction:column;gap:10px}.service-status-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:var(--bg-primary);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:12px 14px}.service-status-row p{color:var(--text-secondary);font-size:.85rem;margin-top:2px}.service-model{display:block;color:var(--text-muted);font-family:var(--font-mono);font-size:.75rem;margin-top:2px}.service-status-badge{border-radius:999px;border:1px solid var(--border-medium);color:var(--text-primary);flex:0 0 auto;font-family:var(--font-mono);font-size:.74rem;font-weight:700;padding:4px 9px}.service-status-row[data-status=Available] .service-status-badge{background:var(--status-green-bg);border-color:var(--status-green);color:var(--status-green)}.service-status-row[data-status="Not configured"] .service-status-badge{background:#6b728024;border-color:#9ca3af40;color:var(--text-secondary)}.service-status-row[data-status=Unavailable] .service-status-badge{background:var(--status-red-bg);border-color:var(--status-red);color:var(--status-red)}.service-status-row[data-status=Checking] .service-status-badge{background:var(--status-amber-bg);border-color:var(--status-amber);color:var(--status-amber)}
