:root{--bg:#f4f5f7;--card:#fff;--text:#16191d;--muted:#6b7380;--line:#e3e6ea;--accent:#e8590c;--accent-text:#fff;--ok:#1f9d55;--warn:#d9a400;--bad:#d33;--blue:#2d6cdf;--nav:#ffffffeb;--input:#f0f2f5;--sat:env(safe-area-inset-top,0px);--sab:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111418;--card:#1b1f25;--text:#eceff3;--muted:#8a93a0;--line:#2a3038;--nav:#171b21f0;--input:#252a32}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);overscroll-behavior-y:none;margin:0;font:16px/1.4 -apple-system,SF Pro Text,Roboto,Segoe UI,system-ui,sans-serif}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-x pan-y}input,textarea{-webkit-user-select:text;user-select:text}a{color:var(--blue);text-decoration:none}#app{flex-direction:column;min-height:100dvh;display:flex}.page{padding:calc(var(--sat) + 12px) 16px calc(var(--sab) + 80px);flex:1;width:100%;max-width:560px;margin:0 auto}.page.center{padding-bottom:calc(var(--sab) + 24px);flex-direction:column;justify-content:center;display:flex}h1{margin:8px 0 16px;font-size:24px;font-weight:700}h2{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:20px 0 8px;font-size:15px;font-weight:600}.topbar{align-items:center;gap:8px;min-height:36px;margin-bottom:12px;display:flex}.topbar h1{flex:1;margin:0;font-size:20px}.back{color:var(--blue);background:0 0;border:0;padding:0 6px 0 0;font-size:26px;line-height:1}.muted{color:var(--muted)}.small{font-size:13px}.card{background:var(--card);border-radius:16px;margin-bottom:12px;padding:14px 16px;box-shadow:0 1px 2px #0000000f}.row{align-items:center;gap:12px;display:flex}.row>.grow{flex:1;min-width:0}.list .card{padding:0}.list .item{border-bottom:1px solid var(--line);color:inherit;align-items:center;gap:12px;padding:12px 16px;display:flex}.list .item:last-child{border-bottom:0}.btn{background:var(--input);width:100%;color:var(--text);cursor:pointer;border:0;border-radius:14px;justify-content:center;align-items:center;gap:8px;padding:14px 16px;font-size:17px;font-weight:600;display:inline-flex}.btn:active{opacity:.7}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-text)}.btn.danger{background:var(--bad);color:#fff}.btn.ghost{color:var(--blue);background:0 0;font-weight:500}.btn.sm{border-radius:10px;width:auto;padding:8px 14px;font-size:14px}.btn.big{border-radius:18px;padding:20px;font-size:20px}.field{margin-bottom:12px}.field label{color:var(--muted);margin:0 0 4px 4px;font-size:13px;display:block}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=time],input[type=number],select{background:var(--input);width:100%;color:var(--text);appearance:none;border:1px solid #0000;border-radius:12px;outline:none;padding:13px 14px;font-size:17px}input:focus,select:focus{border-color:var(--accent)}.err{color:var(--bad);margin:6px 4px;font-size:14px}.switch{flex:none;width:50px;height:30px;position:relative}.switch input{opacity:0;width:0;height:0;position:absolute}.switch span{background:#999a;border-radius:30px;transition:all .2s;position:absolute;inset:0}.switch span:before{content:"";background:#fff;border-radius:50%;width:26px;height:26px;transition:all .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.switch input:checked+span{background:var(--ok)}.switch input:checked+span:before{transform:translate(20px)}input[type=range]{width:100%;accent-color:var(--accent);height:32px}.nav{background:var(--nav);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:6px 0 calc(var(--sab) + 6px);z-index:20;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);flex-direction:column;align-items:center;gap:2px;min-width:70px;padding:4px 16px;font-size:11px;display:flex}.nav a.router-link-active{color:var(--accent)}.nav svg{width:24px;height:24px}.toast{left:50%;bottom:calc(var(--sab) + 84px);color:#fff;z-index:50;background:#222;border-radius:12px;max-width:90%;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%);box-shadow:0 4px 16px #0000004d}@media (prefers-color-scheme:dark){.toast{color:#16191d;background:#eceff3}}.dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px}.dot.on{background:var(--ok)}.badge{background:var(--input);color:var(--muted);border-radius:8px;padding:2px 8px;font-size:12px}.badge.ok{background:color-mix(in srgb, var(--ok) 18%, transparent);color:var(--ok)}.badge.bad{background:color-mix(in srgb, var(--bad) 18%, transparent);color:var(--bad)}.badge.warn{background:color-mix(in srgb, var(--warn) 24%, transparent);color:#9a7400}.stats{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat{background:var(--input);text-align:center;border-radius:12px;padding:10px}.stat b{font-size:20px;font-weight:700;display:block}.stat span{color:var(--muted);font-size:12px}.hero{text-align:center;padding:24px 12px 20px}.hero .phase{margin:6px 0;font-size:26px;font-weight:700}.hero .temp{letter-spacing:-2px;font-size:56px;font-weight:200;line-height:1}.hero .ring{border:6px solid var(--line);border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;margin:0 auto 12px;display:flex}.hero .ring.on{border-color:var(--accent);box-shadow:0 0 24px color-mix(in srgb, var(--accent) 40%, transparent)}.hero .ring.pump{border-color:var(--blue)}.days{gap:6px;display:flex}.days button{background:var(--input);color:var(--muted);border:0;border-radius:10px;flex:1;padding:8px 0;font-size:13px;font-weight:600}.days button.on{background:var(--accent);color:#fff}.code{letter-spacing:4px;text-align:center;background:var(--input);-webkit-user-select:text;user-select:text;border-radius:12px;padding:12px;font-family:ui-monospace,Menlo,monospace;font-size:28px}.spinner{border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:20px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.logo{letter-spacing:-.5px;text-align:center;margin-bottom:4px;font-size:28px;font-weight:800}.logo em{color:var(--accent);font-style:normal}.fade-enter-active,.fade-leave-active{transition:opacity .15s}.fade-enter-from,.fade-leave-to{opacity:0}
