@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&display=swap";.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh;gap:0}.sidebar{display:flex;flex-direction:column;justify-content:space-between;padding:32px 24px;background:#080d1cbf;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-right:1px solid rgba(148,163,184,.08)}.sidebar-heading{font-size:.9rem;letter-spacing:.08em;text-transform:uppercase;color:#e2e8f099;margin-bottom:12px}.sidebar-section{display:flex;flex-direction:column;gap:12px}.sidebar-chip{padding:12px 16px;border-radius:10px;background:#0f172ab3;color:#e2e8f0cc;text-align:left}.sidebar-chip.active{background:linear-gradient(135deg,#6366f147,#0ea5e959);color:#f8fafc;border:1px solid rgba(129,140,248,.4)}.sidebar-presets{margin-top:48px}.sidebar-empty{padding:12px;border-radius:12px;background:#1e293b59;color:#94a3b8e6;font-size:.9rem;text-align:center}.preset-list{display:flex;flex-direction:column;gap:10px}.preset-item{display:flex;align-items:center;background:#0f172ab3;border-radius:12px;overflow:hidden}.preset-apply{flex:1;padding:10px 16px;background:transparent;color:#e2e8f0cc;text-align:left}.preset-apply:hover{background:#3b82f61f;color:#e0e7ff}.preset-remove{width:36px;height:36px;display:grid;place-items:center;background:#94a3b824;color:#f8fafccc;font-size:.9rem}.preset-remove:hover{background:#ef44448c}.main-panel{display:flex;flex-direction:column;gap:24px;padding:32px 40px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.panel-header h1{font-size:1.8rem;font-weight:600;color:#f8fafc}.panel-header p{margin-top:6px;color:#cbd5e1c7}.panel-actions{display:flex;gap:12px}.ghost-button,.primary-button{padding:10px 20px;border-radius:999px;font-size:.95rem;font-weight:600}.ghost-button{background:#94a3b81f;color:#e2e8f0d1}.ghost-button:hover:not(:disabled){background:#94a3b83d}.primary-button{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#f8fafc}.primary-button:hover:not(:disabled){transform:translateY(-1px)}.toast-stack{display:flex;flex-direction:column;gap:12px}.toast{padding:12px 18px;border-radius:12px;font-weight:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.toast.success{background:#22c55e1f;color:#bbf7d0}.toast.error{background:#ef44441f;color:#fecaca}.canvas-section{flex:1;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 10%,rgba(148,163,184,.08),transparent 65%),#0f172a66;border-radius:32px;padding:40px;border:1px solid rgba(59,130,246,.08);min-height:320px}.canvas{position:relative;height:clamp(200px,40vw,360px);width:clamp(200px,40vw,360px);border-radius:24px;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#1e293bcc,#0f172a33);box-shadow:inset 0 0 80px #0f172acc}.canvas.empty{color:#94a3b8cc;font-size:1rem}.light-bulb{position:relative;height:160px;width:120px;border-radius:60px;overflow:visible;transition:filter .2s ease,transform .2s ease}.light-bulb .light-core{position:absolute;inset:0;border-radius:60px;background:linear-gradient(180deg,#fde047e6,#f97316d9);box-shadow:inset 0 -12px 20px #0e749038}.light-bulb .light-glow{position:absolute;inset:-120px;border-radius:50%;background:radial-gradient(circle,rgba(253,224,71,.35),transparent 70%);opacity:0;transition:opacity .22s ease}.light-bulb.on .light-glow{opacity:calc(var(--glow-intensity) / 100)}.light-bulb.off{filter:grayscale(.65)}.light-bulb.warm .light-core{background:linear-gradient(180deg,#fffbebeb,#fde68ae6)}.light-bulb.warm .light-glow{background:radial-gradient(circle,rgba(255,251,235,.35),transparent 70%)}.light-bulb.neutral .light-core{background:linear-gradient(180deg,#dbeafeeb,#94a3b8e6)}.light-bulb.neutral .light-glow{background:radial-gradient(circle,rgba(219,234,254,.35),transparent 70%)}.light-bulb.cool .light-core{background:linear-gradient(180deg,#bfdbfeeb,#38bdf8e6)}.light-bulb.cool .light-glow{background:radial-gradient(circle,rgba(191,219,254,.35),transparent 70%)}.light-bulb.custom .light-core{background:linear-gradient(180deg,#f4d7ffeb,#d8b4fee6)}.light-bulb.custom .light-glow{background:radial-gradient(circle,rgba(244,215,255,.35),transparent 70%)}.fan{position:relative;width:160px;height:160px;--fan-speed: 1.8s;border-radius:50%;background:radial-gradient(circle,#0f172ae6,#1e293b66);display:flex;align-items:center;justify-content:center;transition:filter .2s ease}.fan-arm{position:absolute;width:24px;height:120px;border-radius:12px;background:linear-gradient(180deg,#94a3b8eb,#475569fa);opacity:.65}.fan-arm.arm-horizontal{transform:rotate(90deg)}.fan.active{filter:drop-shadow(0 0 26px rgba(96,165,250,.35));animation:spin var(--fan-speed) linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.controls-section{background:#0f172a8c;border:1px solid rgba(148,163,184,.08);border-radius:24px;padding:24px 28px}.controls{display:flex;flex-direction:column;gap:20px}.controls.empty{color:#94a3b8cc;text-align:center}.control-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.control-row.column{flex-direction:column;align-items:stretch}.control-title{font-size:1rem;font-weight:600;color:#f8fafc}.control-muted{font-size:.85rem;color:#94a3b8bf}.control-header{display:flex;width:100%;align-items:center;justify-content:space-between}.control-value{font-weight:600;color:#e2e8f0d9}.toggle{width:48px;height:26px;border-radius:999px;background:#1e293bb3;padding:3px;display:flex;align-items:center;transition:background .16s ease}.toggle.active{background:linear-gradient(135deg,#f472b6d9,#818cf8d9)}.toggle-thumb{width:20px;height:20px;border-radius:50%;background:#f8fafc;transform:translate(0);transition:transform .16s ease}.toggle.active .toggle-thumb{transform:translate(22px)}.color-swatches{display:grid;grid-template-columns:repeat(4,36px);gap:10px}.color-swatch{width:36px;height:36px;border-radius:12px;border:2px solid transparent;opacity:.75}.color-swatch:hover{opacity:1}.color-swatch.warm{background:linear-gradient(135deg,#fde68a,#fbbf24)}.color-swatch.neutral{background:linear-gradient(135deg,#cbd5f5,#64748b)}.color-swatch.cool{background:linear-gradient(135deg,#bae6fd,#38bdf8)}.color-swatch.custom{background:linear-gradient(135deg,#f5d0fe,#c084fc)}.color-swatch.selected{border-color:#94a3b8d9;opacity:1;box-shadow:0 0 0 3px #6366f140}input[type=range]{-webkit-appearance:none;width:100%;height:6px;border-radius:999px;background:#94a3b840;outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#a855f7);cursor:pointer;box-shadow:0 2px 6px #6366f159}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#a855f7);cursor:pointer;box-shadow:0 2px 6px #6366f159}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;color:#e2e8f0cc;font-size:1.1rem}.spinner{width:44px;height:44px;border-radius:50%;border:4px solid rgba(99,102,241,.2);border-top-color:#818cf8cc;animation:spin .9s linear infinite}@media(max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid rgba(148,163,184,.1)}.main-panel{padding:24px}.panel-header{flex-direction:column;align-items:stretch}.panel-actions{justify-content:flex-end}.canvas{width:100%;max-width:300px;height:300px}}:root{color-scheme:dark;font-family:Manrope,Segoe UI,system-ui,sans-serif;background-color:#050914;color:#e8f1ff}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 20%,#4e61ff1f,#050914e6),radial-gradient(circle at 80% 30%,#ffc3711a,#050914e6),#050914;background-attachment:fixed}button{font-family:inherit;border:none;cursor:pointer;transition:transform .12s ease,opacity .12s ease,background-color .12s ease}button:disabled{cursor:not-allowed;opacity:.6}p,h1,h2,h3,h4{margin:0}ul{margin:0;padding:0;list-style:none}a{color:inherit}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
