*{box-sizing:border-box}body{margin:0;background:#091c29;color:#edf6f7;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:48px;border:1px solid #45616e;border-radius:12px;padding:10px 16px;background:#1b3443;color:#f2fbff}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #9debd3;outline-offset:3px}.shell{max-width:1220px;margin:auto;padding:28px 40px}header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #29414e;padding-bottom:24px}.brand{display:flex;gap:12px;align-items:center;color:#a7ead9;text-decoration:none;font-size:42px;line-height:1}.brand span{font-size:24px;color:#fff;letter-spacing:-1px}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:10px;color:#abc0cb}.pill{font-size:13px;padding:8px 14px;border:1px solid #526775;border-radius:30px;color:#d6e4ed}.pill.good{color:#a8edce;border-color:#32685a}.intro{display:flex;align-items:center;justify-content:space-between;padding:40px 0 26px}.eyebrow{font-size:11px;font-weight:bold;letter-spacing:2.5px;color:#9fbdc8;margin:0 0 14px}h1{font-size:48px;font-weight:500;letter-spacing:-2px;line-height:1.1;margin:0 0 18px}h2{font-size:23px;font-weight:500;margin:0 0 20px}h3{font-size:16px;margin:24px 0 12px}.intro p:not(.eyebrow){color:#a9c0ca}.air{display:flex;flex-direction:column;align-items:flex-end}.air span{font-size:10px;letter-spacing:2px;color:#abc3cc}.air strong{font-size:52px;font-weight:400}.air small{color:#a7bcc5}.notice{background:#163443;border:1px solid #365463;border-radius:12px;padding:12px 16px;margin-bottom:22px;font-size:14px}.notice.warning{background:#493523;border-color:#9d7850;color:#ffdcaa}.temperatures{display:grid;grid-template-columns:1fr 1fr;gap:20px}.water{overflow:hidden;position:relative;padding:26px;border-radius:22px;background:linear-gradient(130deg,#1a5269,#153447);border:1px solid #37738a}.water:before{content:'≈';font-family:Georgia,serif;position:absolute;font-size:280px;opacity:.06;right:-10px;top:-80px;pointer-events:none}.spa{background:linear-gradient(130deg,#29584f,#183b3d);border-color:#437c6c}.water-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2px;color:#c2dfdf;margin-bottom:25px}.water h2{font-size:18px;margin-bottom:5px}.degrees{font-size:76px;line-height:1.2;font-weight:400;letter-spacing:-4px}.water p{font-size:13px;color:#c1d6dd;min-height:20px;margin:8px 0 24px}.target{display:flex;justify-content:space-between;gap:10px;align-items:center;padding-top:16px;border-top:1px solid #ffffff30;font-size:13px}.target b{display:block;font-size:19px}.target button{font-size:13px;background:#ffffff0d;border-color:#ffffff50}.section{padding:32px 0 20px}.section-title{display:flex;justify-content:space-between;align-items:baseline}.section-title span{font-size:12px;color:#9eb6c1}.controls{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.control{text-align:left;display:flex;align-items:center;justify-content:space-between;padding:18px;background:#122b3a;border-color:#294858;min-height:92px}.control strong{display:block;font-size:16px;font-weight:500}.control small{color:#b4c7d0;font-size:12px}.control .indicator{width:34px;height:34px;border-radius:50%;border:1px solid #57707c;display:grid;place-items:center;color:#9cb3bf}.control.active .indicator{background:#b5ead2;color:#173c33;border-color:#b5ead2}.muted{font-size:12px;color:#a8bec9;line-height:1.7}.details{display:grid;grid-template-columns:1fr 1fr;gap:20px}.panel{background:#102735;border:1px solid #29424f;border-radius:20px;padding:26px}.clockrow{display:flex;justify-content:space-between;gap:10px;font-size:13px;border-bottom:1px solid #29424f;padding:12px 0}.clockrow strong{font-weight:400;text-align:right}.tag{display:inline-block;border-radius:8px;background:#263f49;color:#b9dcda;padding:5px 10px;font-size:11px}dl{margin:0}dt,dd{font-size:13px;padding-top:10px}dt{color:#a6bdc7}dd{margin:0;padding-top:2px;padding-bottom:10px;border-bottom:1px solid #29424f;overflow-wrap:anywhere}.original{display:inline-flex;min-height:48px;align-items:center;color:#a5e1d5;font-size:14px;margin-top:14px}footer{display:flex;justify-content:space-between;gap:12px;margin-top:30px;border-top:1px solid #29414e;padding-top:20px;font-size:10px;color:#95adb9}dialog{color:#edf6f7;background:#173342;border:1px solid #5b7b89;border-radius:20px;max-width:440px;width:calc(100% - 30px);padding:26px}dialog::backdrop{background:#000a}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.primary{background:#b5ead2;color:#173c33;border-color:#b5ead2}input{display:block;width:100%;min-height:52px;margin-top:8px;border:1px solid #7d9b9f;border-radius:8px;background:#091c29;color:#fff;padding:10px}[hidden]{display:none!important}@media(max-width:650px){.shell{padding:20px 16px}header{padding-bottom:18px}.brand span{font-size:21px}.pill{font-size:11px;padding:7px 10px}.intro{padding:30px 0 18px}h1{font-size:34px;letter-spacing:-1px}.intro p:not(.eyebrow){font-size:12px;max-width:190px}.eyebrow{font-size:9px;letter-spacing:1.8px}.air strong{font-size:36px}.air span{font-size:8px;letter-spacing:1px}.air small{font-size:10px}.temperatures{gap:12px}.water{padding:17px;border-radius:16px}.water-top{font-size:8px;letter-spacing:1px;gap:6px;margin-bottom:20px}.water h2{font-size:16px}.degrees{font-size:50px;letter-spacing:-2px}.water p{font-size:11px;min-height:36px}.target{display:block}.target span{display:block;margin-bottom:10px}.target button{width:100%;padding:8px;font-size:11px}.controls{grid-template-columns:1fr 1fr;gap:10px}.control{padding:13px;min-height:88px}.control strong{font-size:14px}.control .indicator{width:28px;height:28px;flex-shrink:0}.details{grid-template-columns:1fr}.panel{padding:22px}.section-title span{font-size:10px}footer{display:block}footer span{display:block;margin-bottom:6px}}

.header-status{display:flex;align-items:center;gap:16px}.wifi-signal{color:#b9dedc;text-decoration:none;font-size:13px;line-height:1.4;text-align:right;min-height:48px;padding:5px 0}.wifi-signal span{color:#a7ead9;letter-spacing:2px}.wifi-signal small{display:block;color:#9eb6c1;font-size:10px}@media(max-width:650px){.header-status{flex-direction:column;align-items:flex-end;gap:4px}.wifi-signal{font-size:12px;min-height:40px;padding:0}.wifi-signal small{font-size:8px}.header-status .pill{font-size:9px;padding:4px 8px}}

.overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.overview-grid>div{padding:13px;border:1px solid #ffffff18;border-radius:10px;background:#071f3338;text-align:center}.overview-grid span{display:block;font-size:11px;color:#c1d6dd}.overview-grid strong{display:block;font-size:24px;font-weight:500}.overview-footer{font-size:10px;color:#b5cdd7;display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-bottom:14px}.overview p{margin:12px 0;min-height:36px}.virtual-panel{margin-top:20px}.controller-launch{display:inline-flex;align-items:center;min-height:52px;padding:10px 18px;border-radius:12px;background:#b5ead2;color:#173c33;text-decoration:none}.schedule-row{margin-top:14px;padding:14px;border:1px solid #35515e;border-radius:12px}.schedule-row strong{display:block;font-size:15px}.schedule-row p{font-size:12px;color:#b5cbd5;margin:6px 0}.schedule-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.schedule-actions button{font-size:12px;padding:8px 12px}.schedule-row.paused{opacity:.7}select{display:block;width:100%;min-height:48px;background:#091c29;color:#fff;border:1px solid #7d9b9f;border-radius:8px;padding:10px;font:inherit;margin:8px 0 16px}fieldset{border:1px solid #496675;border-radius:10px;margin:18px 0;padding:10px}.weekdays{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.weekdays label{font-size:12px;text-align:center;min-height:54px;cursor:pointer}.weekdays input{width:22px;height:22px;min-height:22px;margin:4px auto;accent-color:#a7ead9}.enable-event{display:flex;align-items:center;gap:10px}.enable-event input{width:22px;min-height:22px;height:22px;accent-color:#a7ead9}#schedule-dialog{max-height:90vh;overflow:auto}@media(max-width:650px){.overview-grid{gap:6px}.overview-grid>div{padding:10px 4px}.overview-grid span{font-size:9px}.overview-grid strong{font-size:17px}.overview-footer{font-size:8px}.overview p{font-size:10px;min-height:50px}.overview h2{font-size:16px}.overview .water-top{font-size:7px}}

.spa-session-control{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px}.spa-session-control button{display:flex;align-items:center;gap:8px;border:0;background:transparent;padding:2px;min-height:48px}.switch-track{width:54px;height:30px;background:#47615f;border-radius:20px;padding:3px;display:block}.switch-track>span{display:block;width:24px;height:24px;border-radius:50%;background:#dce9e7;transition:transform .2s}.spa-session-control [aria-checked=true] .switch-track{background:#9de4c6}.spa-session-control [aria-checked=true] .switch-track>span{transform:translateX(24px);background:#173c33}.spa-session-control b{font-size:11px;min-width:24px}#spa-session-message{min-height:44px;font-size:11px;margin:0 0 12px}.water{display:flex;flex-direction:column}.water .target{margin-top:auto}.water.spa .degrees{margin-top:4px}@media(max-width:650px){.spa-session-control{display:block}.spa-session-control button{margin-top:4px}#spa-session-message{font-size:10px;min-height:62px}}

.degrees.unavailable{font-size:26px;line-height:1.4;letter-spacing:0;color:#bfd4d6}@media(max-width:650px){.degrees.unavailable{font-size:19px}}

.login-panel{max-width:480px;margin:8vh auto}.login-panel h1{font-size:36px}.login-panel label{display:block;margin-top:18px}.app-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}.app-actions button{font-size:12px}
