:root{--bg-primary: #0a0e17;--bg-secondary: #111827;--bg-card: rgba(17, 24, 39, .85);--bg-glass: rgba(30, 41, 59, .6);--bg-input: rgba(15, 23, 42, .8);--border-color: rgba(99, 102, 241, .2);--border-hover: rgba(99, 102, 241, .5);--accent: #6366f1;--accent-light: #818cf8;--accent-glow: rgba(99, 102, 241, .3);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--success: #10b981;--warning: #f59e0b;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-xs: .7rem;--font-sm: .8rem;--font-base: .9rem;--font-lg: 1.05rem;--font-xl: 1.25rem;--font-2xl: 1.6rem;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--transition-fast: .15s ease;--transition-base: .25s ease}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font-family);font-size:var(--font-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-layout{display:flex;height:100vh;width:100vw}.canvas-panel{flex:1;position:relative;background:linear-gradient(135deg,#f8fafc,#f1f5f9,#e2e8f0);overflow:hidden}.canvas-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 30% 40%,rgba(99,102,241,.04) 0%,transparent 70%);pointer-events:none;z-index:1}.canvas-panel canvas{position:absolute;top:0;right:0;bottom:0;left:0}.canvas-badge{position:absolute;bottom:var(--space-lg);left:var(--space-lg);z-index:10;display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-xs);letter-spacing:.05em;text-transform:uppercase}.canvas-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.form-panel{width:420px;min-width:380px;height:100vh;background:var(--bg-secondary);border-left:1px solid var(--border-color);overflow-y:auto;display:flex;flex-direction:column}.form-panel::-webkit-scrollbar{width:4px}.form-panel::-webkit-scrollbar-track{background:transparent}.form-panel::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:2px}.form-header{padding:var(--space-xl) var(--space-lg) var(--space-lg);border-bottom:1px solid var(--border-color)}.form-header .brand{font-size:var(--font-xs);font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-light);margin-bottom:var(--space-xs)}.form-header h1{font-size:var(--font-2xl);font-weight:700;color:var(--text-primary);line-height:1.2}.form-header .subtitle{font-size:var(--font-sm);color:var(--text-secondary);margin-top:var(--space-xs)}.form-section{padding:var(--space-lg);border-bottom:1px solid rgba(99,102,241,.08)}.form-section:last-child{border-bottom:none}.section-title{font-size:var(--font-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:var(--space-md);display:flex;align-items:center;gap:var(--space-sm)}.section-title:before{content:"";display:inline-block;width:3px;height:14px;background:var(--accent);border-radius:2px}.field-group{margin-bottom:var(--space-md)}.field-group:last-child{margin-bottom:0}.field-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xs)}.field-label label{font-size:var(--font-sm);font-weight:500;color:var(--text-secondary)}.field-label .field-value{font-size:var(--font-sm);font-weight:600;color:var(--accent-light);font-variant-numeric:tabular-nums}.field-select,.field-input{width:100%;padding:var(--space-sm) var(--space-md);background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.field-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.field-select:hover,.field-input:hover{border-color:var(--border-hover)}.field-select:focus,.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.field-slider{width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;background:#6366f126;outline:none;cursor:pointer}.field-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-secondary);box-shadow:0 0 8px var(--accent-glow);cursor:pointer;transition:transform var(--transition-fast)}.field-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.field-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid var(--bg-secondary);box-shadow:0 0 8px var(--accent-glow);cursor:pointer}.computed-card{background:linear-gradient(135deg,#6366f114,#3b82f60f);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-md)}.computed-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-xs) 0}.computed-row:not(:last-child){border-bottom:1px solid rgba(99,102,241,.08)}.computed-label{font-size:var(--font-sm);color:var(--text-secondary)}.computed-value{font-size:var(--font-base);font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.computed-value .unit{font-size:var(--font-xs);font-weight:400;color:var(--text-muted);margin-left:2px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}@media(max-width:900px){.app-layout{flex-direction:column}.canvas-panel{height:50vh}.form-panel{width:100%;min-width:unset;height:50vh;border-left:none;border-top:1px solid var(--border-color)}}
