.dial-shell[data-v-31fb6263]{--dial-accent:#34d399;position:relative;width:min(330px,82vw);margin:0 auto;-moz-user-select:none;user-select:none;-webkit-user-select:none;touch-action:none}.dial-shell.off[data-v-31fb6263]{--dial-accent:#5d6b64}.dial-shell.heating[data-v-31fb6263]{--dial-accent:#fbbf24}.dial[data-v-31fb6263]{display:block;width:100%;height:auto;cursor:grab;touch-action:none;outline:none;overflow:visible}.dial[data-v-31fb6263]:active{cursor:grabbing}.dial[data-v-31fb6263]:focus-visible{outline:2px solid #6ee7b7;outline-offset:8px;border-radius:50%}.dial-face[data-v-31fb6263]{fill:#000;stroke:hsla(0,0%,100%,.08);stroke-width:1}.dial-track[data-v-31fb6263]{fill:none;stroke:hsla(0,0%,100%,.08);stroke-width:16;stroke-linecap:round}.dial-progress[data-v-31fb6263]{fill:none;stroke:var(--dial-accent);stroke-width:16;stroke-linecap:round;transition:stroke .3s ease}.dial-tick[data-v-31fb6263]{stroke:hsla(0,0%,100%,.2);stroke-width:2;stroke-linecap:round}.current-halo[data-v-31fb6263]{fill:hsla(0,0%,100%,.12)}.current-dot[data-v-31fb6263]{fill:#f8fafc}.dial-knob[data-v-31fb6263]{fill:#000;stroke:var(--dial-accent);stroke-width:4;transition:stroke .3s ease}.dial-knob-inner[data-v-31fb6263]{fill:var(--dial-accent);transition:fill .3s ease}.dial-center[data-v-31fb6263]{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;text-align:center;padding:0 20%}.dial-state[data-v-31fb6263]{display:inline-flex;align-items:center;gap:7px;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--dial-accent);transition:color .3s ease}.dial-state[data-v-31fb6263]:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.dial-shell.heating .dial-state[data-v-31fb6263]:before{animation:pulse-31fb6263 1.8s ease-in-out infinite}.dial-target[data-v-31fb6263]{margin-top:6px;font-size:clamp(3.2rem,16vw,4.6rem);font-weight:300;line-height:.95;letter-spacing:-.06em;color:#f4faf7;font-variant-numeric:tabular-nums;transition:color .3s ease}.dial-target span[data-v-31fb6263]{font-size:.45em;vertical-align:top;margin-left:2px;color:#8fa39a}.dial-shell.off .dial-target[data-v-31fb6263]{color:#a9b8b0}.dial-now[data-v-31fb6263]{margin-top:22px;font-size:.9rem;color:#c7dbf4;small[data-v-31fb6263]{padding-top:2px;display:block}b[data-v-31fb6263],small[data-v-31fb6263]{font-size:9px;color:#fff}}.dial-saving[data-v-31fb6263]{margin-top:6px;font-size:.66rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8fa39a}.dial-limit[data-v-31fb6263]{position:absolute;pointer-events:none;bottom:6%;font-size:.7rem;font-weight:600;color:#71857b;font-variant-numeric:tabular-nums}.dial-limit.min[data-v-31fb6263]{left:13%}.dial-limit.max[data-v-31fb6263]{right:13%}@keyframes pulse-31fb6263{0%,to{opacity:1}50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.dial-knob-inner[data-v-31fb6263],.dial-knob[data-v-31fb6263],.dial-progress[data-v-31fb6263],.dial-state[data-v-31fb6263],.dial-target[data-v-31fb6263]{transition:none}.dial-shell.heating .dial-state[data-v-31fb6263]:before{animation:none}}.history[data-v-a334e4a4]{width:100%}.history-head[data-v-a334e4a4]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.history-title[data-v-a334e4a4]{min-width:0}.title-row[data-v-a334e4a4]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sync[data-v-a334e4a4]{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#8fa39a}.sync.error[data-v-a334e4a4]{color:#fca5a5}.summary[data-v-a334e4a4]{display:flex;flex-wrap:wrap;gap:6px 14px;margin:6px 0 0;font-size:.78rem}.summary strong[data-v-a334e4a4]{font-weight:600;color:#8fa39a;font-variant-numeric:tabular-nums}.summary.muted[data-v-a334e4a4]{color:#64776d}.estimate[data-v-a334e4a4]{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:6px 0 0;font-size:.74rem}.estimate strong[data-v-a334e4a4]{font-weight:600;color:#8fa39a;font-variant-numeric:tabular-nums}.estimate-rate[data-v-a334e4a4]{font-size:.66rem;color:#8fa39a}.ranges[data-v-a334e4a4]{display:inline-flex;gap:2px;padding:4px;border:1px solid hsla(0,0%,100%,.07);border-radius:8px;margin:20px 0;background:hsla(0,0%,100%,.02)}.ranges button[data-v-a334e4a4]{min-width:30px;min-height:30px;padding:0 13px;border:0;border-radius:8px;background:transparent;color:#64776d;font:inherit;font-size:11px;font-weight:600;cursor:pointer;transition:background .2s ease,color .2s ease}.ranges button.active[data-v-a334e4a4]{background:#234544;color:#8fa39a}.ranges button[data-v-a334e4a4]:focus-visible{outline:2px solid #6ee7b7;outline-offset:2px}.legend[data-v-a334e4a4]{display:flex;flex-wrap:wrap;gap:14px;margin-top:14px;font-size:.7rem;color:#7f9389}.legend span[data-v-a334e4a4]{display:inline-flex;align-items:center;gap:6px}.swatch[data-v-a334e4a4]{display:inline-block;width:18px;height:3px;border-radius:2px}.swatch.temp[data-v-a334e4a4]{background:#34d399}.swatch.target[data-v-a334e4a4]{height:0;border-top:2px dashed #94a3b8;border-radius:0}.swatch.heater[data-v-a334e4a4]{height:6px;background:rgba(251,191,36,.55)}.chart-wrap[data-v-a334e4a4]{position:relative;margin-top:10px}.chart-body[data-v-a334e4a4]{display:flex;gap:8px;height:250px;padding-top:8px}.y-axis[data-v-a334e4a4]{position:relative;width:38px;flex:0 0 38px}.y-label[data-v-a334e4a4]{position:absolute;right:0;transform:translateY(-50%);font-size:.68rem;color:#70857a;font-variant-numeric:tabular-nums}.plot[data-v-a334e4a4]{position:relative;flex:1;min-width:0;cursor:crosshair;touch-action:pan-y}.chart-svg[data-v-a334e4a4]{display:block;width:100%;height:100%;overflow:visible}.grid-line[data-v-a334e4a4]{stroke:hsla(0,0%,100%,.055);stroke-width:1}.grid-line.vertical[data-v-a334e4a4]{stroke:hsla(0,0%,100%,.03)}.heater-band[data-v-a334e4a4]{fill:rgba(251,191,36,.32)}.temp-line[data-v-a334e4a4]{fill:none;stroke:#34d399;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;filter:drop-shadow(0 0 8px rgba(52,211,153,.3))}.ideal-line[data-v-a334e4a4]{fill:none;stroke:#94a3b8;stroke-width:1.4;stroke-dasharray:5 5;stroke-linejoin:round;opacity:.75}.plot-dot[data-v-a334e4a4]{position:absolute;z-index:1;width:10px;height:10px;margin:-5px 0 0 -5px;border:2px solid #34d399;border-radius:50%;background:#eafff5;box-shadow:0 0 10px rgba(52,211,153,.5);pointer-events:none}.crosshair[data-v-a334e4a4]{stroke:hsla(0,0%,100%,.28);stroke-width:1;stroke-dasharray:3 4}.tooltip[data-v-a334e4a4]{position:absolute;top:4px;z-index:2;display:flex;align-items:baseline;gap:8px;padding:7px 10px;border:1px solid hsla(0,0%,100%,.1);border-radius:10px;background:#0c1410;transform:translateX(-50%);white-space:nowrap;pointer-events:none}.tooltip.align-left[data-v-a334e4a4]{transform:translateX(0)}.tooltip.align-right[data-v-a334e4a4]{transform:translateX(-100%)}.tooltip span[data-v-a334e4a4]{font-size:.66rem;color:#8fa39a}.tooltip strong[data-v-a334e4a4]{font-size:.8rem;color:#f4faf7;font-variant-numeric:tabular-nums}.tooltip em[data-v-a334e4a4]{font-size:.64rem;font-style:normal;color:#7f9389}.x-axis[data-v-a334e4a4]{position:relative;height:20px;margin:4px 0 0 46px}.x-label[data-v-a334e4a4]{position:absolute;top:1px;transform:translateX(-50%);font-size:.66rem;color:#70857a;white-space:nowrap}.x-label.first[data-v-a334e4a4]{transform:translateX(0)}.x-label.last[data-v-a334e4a4]{transform:translateX(-100%)}.overlay[data-v-a334e4a4]{position:absolute;inset:24px 0 20px 46px;z-index:3;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:14px;background:rgba(11,16,14,.78);color:#8fa39a;font-size:.8rem}.overlay.error[data-v-a334e4a4]{color:#fca5a5}.spinner[data-v-a334e4a4]{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.15);border-top-color:#34d399;border-radius:50%;animation:spin-a334e4a4 .8s linear infinite}@keyframes spin-a334e4a4{to{transform:rotate(1turn)}}@media (max-width:520px){.chart-body[data-v-a334e4a4]{height:220px}.ranges button[data-v-a334e4a4]{min-width:46px;padding:0 11px}}@media (prefers-reduced-motion:reduce){.spinner[data-v-a334e4a4]{animation:none}.ranges button[data-v-a334e4a4]{transition:none}}*,:after,:before{box-sizing:border-box}body,html{margin:0;min-height:100%;background:#000}body{font-family:Inter,sans-serif;font-optical-sizing:auto;font-style:normal;color:#fff;overflow-x:hidden}button{-webkit-tap-highlight-color:transparent}#app{min-height:100vh;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background:#000}.shell{width:100%;max-width:720px;margin:0 auto;padding:22px 18px 38px}.alert{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px;padding:12px 14px;border:1px solid #542a30;border-radius:15px;background:#000;color:#fecaca;font-size:.8rem}.alert button{flex:0 0 auto;min-height:44px;padding:0 14px;border:1px solid #613137;border-radius:10px;background:#2e191c;color:#fecaca;font:inherit;font-weight:600;cursor:pointer}.card{position:relative;background:#000}.dial-card{overflow:hidden;padding:30px 22px 20px}.chart-card{margin-top:16px;padding:22px 20px 16px}.alert button:focus-visible{outline:2px solid #6ee7b7;outline-offset:2px}@media (max-width:520px){.shell{padding:14px 12px 28px}.dial-card{padding:24px 10px 16px;border-radius:25px}.chart-card{margin-top:12px;padding:18px 14px 12px;border-radius:25px}}