@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600;700&family=JetBrains+Mono:wght@400;600&display=swap";:root{--bg0:#070a12;--bg1:#070815;--panel:#0c101ead;--panel2:#090c168c;--ink:#f0f4ffeb;--muted:#f0f4ff9e;--border:#a0c8ff24;--shadow:#00000073 0 24px 80px -40px;--neon:#31f7c8;--neon2:#7c5cff;--cool:#3fd7ff;--warm:#ff6a3d;--shock:#00e6ff;--sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, Consolas, monospace;font:15px/1.45 var(--sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:radial-gradient(900px 520px at 15% 0%, #7c5cff47, transparent 60%), radial-gradient(900px 520px at 90% 10%, #31f7c838, transparent 62%), radial-gradient(900px 520px at 40% 100%, #3fd7ff1f, transparent 62%), linear-gradient(180deg, var(--bg0), var(--bg1));margin:0}body.isDeploying{overflow:hidden}#root{min-height:100vh}*{box-sizing:border-box}button,input{font:inherit}.app{max-width:1220px;min-height:100vh;margin:0 auto;padding:24px 18px 40px}.app:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(760px 520px at 18% 12%,#31f7c81f,#0000 62%),radial-gradient(760px 520px at 88% 8%,#7c5cff24,#0000 62%),repeating-linear-gradient(90deg,#a0c8ff09 0 1px,#0000 1px 64px);position:fixed;inset:0}.app:after{content:"";filter:blur(18px);opacity:.9;pointer-events:none;z-index:-2;background:conic-gradient(from 220deg,#31f7c800,#31f7c814,#7c5cff14,#3fd7ff0f,#31f7c800);animation:18s linear infinite auraSpin;position:fixed;inset:-24px}@keyframes auraSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.topbar{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:18px;justify-content:space-between;align-items:center;gap:18px;padding:16px;display:flex;position:relative;overflow:hidden}.topbar:after{content:"";opacity:.85;pointer-events:none;background:linear-gradient(90deg,#31f7c859,#7c5cff59,#3fd7ff40);border-radius:18px;padding:1px;position:absolute;inset:-1px;-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000)}.brand{align-items:center;gap:12px;display:flex}.brandMark{background:radial-gradient(18px 18px at 30% 28%,#ffffffd1,#0000 58%),linear-gradient(135deg,#31f7c8f2,#7c5cffd9);border-radius:14px;width:44px;height:44px;box-shadow:0 18px 44px -22px #31f7c829}.brandTitle{letter-spacing:.2px;font-size:18px;font-weight:700}.brandSub{color:var(--muted);font-size:13px}.topMeta{color:var(--muted);align-items:center;gap:10px;font-size:13px;display:inline-flex}.deployBtn{cursor:pointer;color:#f0f4ffd1;background:#0a0e1a8c;border:1px solid #a0c8ff2e;border-radius:12px;padding:7px 10px;font-weight:700}.deployBtn:hover{border-color:#31f7c852;box-shadow:0 0 0 4px #31f7c81f}.deployBtn:focus-visible{outline-offset:2px;outline:2px solid #00e6ff80}.deployOverlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:50;cursor:wait;pointer-events:all;background:radial-gradient(900px 520px at 18% 10%,#31f7c82e,#0000 62%),radial-gradient(760px 520px at 100% 0,#7c5cff33,#0000 60%),#070a128c;place-items:center;animation:.16s deployFadeIn;display:grid;position:fixed;inset:0}@keyframes deployFadeIn{0%{opacity:0}to{opacity:1}}.deployPanel{background:#ffffffc7;border:1px solid #1f2a2229;border-radius:20px;grid-template-columns:54px 1fr;align-items:center;gap:14px;width:min(520px,100vw - 26px);padding:16px;display:grid;box-shadow:0 28px 70px -40px #121b1538}.deployLogo{background:radial-gradient(18px 18px at 30% 28%,#ffffffd1,#0000 58%),linear-gradient(135deg,#31f7c8f2,#7c5cffd9);border-radius:16px;place-items:center;width:54px;height:54px;display:grid;box-shadow:0 18px 44px -22px #31f7c829}.deploySpinner{border:2px solid #ffffff61;border-top-color:#fffffff2;border-radius:999px;width:22px;height:22px;animation:.9s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.deployTitle{color:#f0f4ffe6;font-size:18px;font-weight:700}.deploySubtitle{color:#f0f4ff9e;margin-top:2px;font-size:13px}.deployProgress{margin-top:10px}.deployProgressTop{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.deployProgressLabel{color:#f0f4ffb8;font-size:12px;font-weight:700}.deployProgressCount{font-family:var(--mono);color:#f0f4ff94;font-size:12px}.deployBar{background:#a0c8ff0f;border:1px solid #a0c8ff24;border-radius:999px;height:10px;overflow:hidden}.deployFill{background:linear-gradient(90deg,#31f7c8e0,#7c5cffe0);border-radius:999px;height:100%;transition:width .22s;position:relative}.deployShine{background:linear-gradient(90deg,#0000,#ffffff61,#0000);animation:1.25s ease-in-out infinite deployShine;position:absolute;inset:0;transform:translate(-60%)}@keyframes deployShine{0%{transform:translate(-70%)}to{transform:translate(120%)}}.dot{background:#31f7c8f2;border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 5px #31f7c82e}body.isDeploying .dot{background:#007a8fe6;box-shadow:0 0 0 4px #007a8f42}.sep{opacity:.55}.layout{grid-template-columns:1.1fr .9fr;gap:16px;margin-top:16px;display:grid}.layoutStack{grid-template-columns:1fr;max-width:980px;margin-left:auto;margin-right:auto}.carousel{background:var(--panel);box-shadow:var(--shadow);border:1px solid #a0c8ff24;border-radius:18px;padding:12px;position:relative;overflow:hidden}.carousel:before{content:"";pointer-events:none;background:radial-gradient(520px 160px at 12% 0,#31f7c81a,#0000 60%),radial-gradient(520px 160px at 88% 0,#7c5cff1c,#0000 60%);position:absolute;inset:0}.carouselTop{justify-content:space-between;align-items:center;gap:12px;padding:2px 4px 10px;display:flex}.carouselTitle{color:#f0f4ffe6;font-size:16px;font-weight:700}.carouselNav{gap:8px;display:inline-flex}.carouselBtn{cursor:pointer;color:#f0f4ffcc;background:#0a0e1a8c;border:1px solid #a0c8ff2e;border-radius:12px;padding:8px 10px;font-weight:700}.carouselBtn:hover{border-color:#31f7c859;box-shadow:0 0 0 4px #31f7c81f}.carouselBtn:disabled{opacity:.45;cursor:not-allowed}.carouselViewport{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;border-radius:16px;grid-auto-columns:100%;grid-auto-flow:column;display:grid;overflow-x:auto}.carouselViewport::-webkit-scrollbar{height:10px}.carouselViewport::-webkit-scrollbar-thumb{background:#a0c8ff24;border-radius:999px}.carouselSlide{scroll-snap-align:center;padding:2px}.carouselDots{justify-content:center;gap:8px;padding:10px 0 2px;display:flex}.dotBtn{cursor:pointer;background:#0a0e1a80;border:1px solid #a0c8ff38;border-radius:999px;width:10px;height:10px}.dotBtn-active{background:linear-gradient(90deg,#31f7c8d9,#7c5cffd9);border-color:#31f7c847}.card{background:var(--panel2);cursor:pointer;border:1px solid #a0c8ff24;border-radius:16px;padding:14px 14px 12px;transition:transform .14s,border-color .14s,box-shadow .14s;position:relative;overflow:hidden;box-shadow:0 18px 48px -28px #00000059}.card:before{content:"";opacity:.9;pointer-events:none;background:radial-gradient(520px 180px at 15% 0,#31f7c81f,#0000 62%),radial-gradient(520px 180px at 90% 0,#7c5cff1f,#0000 62%);position:absolute;inset:0}.card:hover{border-color:#31f7c840;transform:translateY(-1px);box-shadow:0 0 0 4px #31f7c814,0 22px 60px -32px #0000006b}.card-selected{border-color:#7c5cff57;box-shadow:0 0 0 4px #7c5cff1f,0 22px 60px -32px #0000006b}.card-cold{border-color:#3fd7ff42}.card-hot{border-color:#ff6a3d3d}.card-shock{border-color:#007a8f8c;animation:1.8s ease-in-out infinite shockPulse;box-shadow:0 22px 54px -30px #007a8f2e}@keyframes shockPulse{0%,to{box-shadow:0 22px 54px -30px #007a8f2e}50%{box-shadow:0 26px 62px -30px #007a8f4d}}.cardHead{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cardTitle{align-items:center;gap:10px;font-size:16px;font-weight:700;display:flex}.cardMeta{color:var(--muted);margin-top:2px;font-size:12px}.tempReadout{text-align:right}.tempValue{font-family:var(--mono);font-size:18px;font-weight:600}.card-cold .tempValue{color:#3fd7fff2}.card-hot .tempValue{color:#ff6a3df2}.card-shock .tempValue{color:#00e6fff2}.tempHint{color:var(--muted);font-size:12px}.pill{letter-spacing:.35px;color:#f0f4ffc7;background:#0a0e1a8c;border:1px solid #a0c8ff33;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700}.pill-shock{color:#00e6fff2;background:#00e6ff14;border-color:#00e6ff59}.pill-online{color:#31f7c8f2;background:#31f7c80f;border-color:#31f7c847}.pill-offline{color:#f0f4ff9e;background:#a0c8ff0a;border-color:#a0c8ff2e}.card-offline{opacity:.72}.cardToggles{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.toggle{color:#f0f4ffd1;cursor:pointer;-webkit-user-select:none;user-select:none;background:#0a0e1a8c;border:1px solid #a0c8ff29;border-radius:12px;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:8px 10px;transition:transform .12s,border-color .12s,background .12s;display:inline-flex}.toggle:disabled{opacity:.5;cursor:not-allowed}.toggle:hover{border-color:#a0c8ff42;transform:translateY(-1px)}.toggle:focus-visible{outline-offset:2px;outline:2px solid #00e6ff8c}.toggleLabel{font-size:13px;font-weight:600}.togglePill{background:#a0c8ff29;border-radius:999px;width:34px;height:18px;position:relative}.toggleKnob{background:#f0f4ffeb;border-radius:999px;width:14px;height:14px;transition:left .12s,background .12s;position:absolute;top:2px;left:2px}.toggle[aria-pressed=true] .togglePill{background:#31f7c89e}.toggle[aria-pressed=true]{background:#0a0e1aad;border-color:#a0c8ff33}.toggle[aria-pressed=true] .toggleKnob{left:18px}.tone-warm[aria-pressed=true] .togglePill{background:#ff6a3db8}.tone-cool[aria-pressed=true] .togglePill{background:#3fd7ffb8}.tone-shock[aria-pressed=true] .togglePill{background:#00e6ffc7}.chart{background:radial-gradient(260px 120px at 20% 0,#31f7c817,#0000 60%),#0a0e1a73;border:1px solid #a0c8ff24;border-radius:14px;margin-top:10px;overflow:hidden}.chart-compact{margin-top:10px}.detailInner{background:var(--panel);box-shadow:var(--shadow);border:1px solid #a0c8ff24;border-radius:18px;padding:16px;position:relative;overflow:hidden}.detailInner:before{content:"";pointer-events:none;background:radial-gradient(620px 240px at 8% 0,#7c5cff1f,#0000 62%),radial-gradient(620px 240px at 92% 0,#31f7c81f,#0000 62%);position:absolute;inset:0}.detailInner>*{position:relative}.detailHead{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.detailTitle{align-items:center;gap:10px;font-size:20px;font-weight:700;display:flex}.detailMeta{color:var(--muted);margin-top:2px;font-size:12px}.detailReadout{text-align:right}.detailTemp{font-family:var(--mono);font-size:24px;font-weight:700}.detailSet{color:var(--muted);font-size:12px}.panel{background:#0a0e1a66;border:1px solid #a0c8ff1f;border-radius:16px;margin-top:12px;padding:12px}.panelTitle{color:#f0f4ffd1;margin-bottom:10px;font-size:13px;font-weight:700}.controls{gap:12px;display:grid}.field{gap:8px;display:grid}.label{color:var(--muted);font-size:12px}.miniLabel{color:var(--muted);margin-bottom:5px;font-size:11px;display:block}.row{align-items:center;gap:10px;display:flex}.rowWrap{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.input{color:#f0f4ffe6;background:#0a0e1a8c;border:1px solid #a0c8ff2e;border-radius:12px;width:120px;padding:9px 10px}.input:focus-visible{outline-offset:2px;outline:2px solid #00e6ff73}.btn{color:#f0f4ffeb;cursor:pointer;background:#31f7c824;border:1px solid #31f7c847;border-radius:12px;padding:9px 12px;font-weight:700;transition:transform .12s;box-shadow:0 0 0 4px #31f7c829}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-secondary{color:#f0f4ffdb;background:#0a0e1a8c}.hint{color:var(--muted);font-size:12px}.miniField{display:grid}.events{gap:8px;display:grid}.event{background:#0a0e1a80;border:1px solid #a0c8ff1f;border-radius:12px;grid-template-columns:88px 1fr;gap:10px;padding:8px 10px;display:grid}.eventTs{font-family:var(--mono);color:#f0f4ff94;font-size:12px}.eventNote{color:#f0f4ffd1;font-size:13px}@media (width<=980px){.app{padding:16px 12px 28px}}
