:root{--bg:#0b0b14;--surface:#16162a;--text:#f2f2f7;--text-dim:#9a9ab0;--accent:#4338ca;--online:#22c55e;--offline:#ef4444;--checking:#f59e0b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.5 system-ui,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}.app{min-height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);flex-direction:column;display:flex}.app-header{background:var(--surface);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.app-header h1{margin:0;font-size:1.1rem;font-weight:600}.app-main{flex:1;padding:1rem}.status-line{color:var(--text-dim)}.rooms{grid-template-columns:1fr;gap:.75rem;display:grid}@media (width>=640px){.rooms{grid-template-columns:repeat(2,1fr)}}.room-card{background:var(--surface);border-radius:.75rem;padding:.75rem .9rem}.room-name{margin:0 0 .35rem;font-size:.95rem;font-weight:600}.metrics{gap:.9rem;display:flex}.metric-value{font-variant-numeric:tabular-nums;font-size:.95rem}.devices{border-top:1px solid #ffffff14;flex-direction:column;gap:.6rem;margin-top:.6rem;padding-top:.6rem;display:flex}.device{align-items:center;gap:.65rem;min-height:1.5rem;font-size:.9rem;display:flex}.device-name{flex:1}.device-detail{color:var(--text-dim);font-variant-numeric:tabular-nums;align-items:center;gap:.6rem;display:flex}.fan-speed{align-items:center;gap:.25rem;display:flex}.fan-icon{flex-shrink:0;width:.85rem;height:.85rem}.device-dot{background:var(--text-dim);border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem}.device-dot--on{background:var(--online)}.automation-badge{width:1.1rem;height:1.1rem;font:inherit;cursor:pointer;appearance:none;border:1.5px solid var(--text-dim);color:var(--text-dim);background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:.6rem;font-weight:700;line-height:1;display:flex}.automation-badge--on{border-color:var(--online);background:var(--online);color:var(--bg)}.power-toggle{cursor:pointer;appearance:none;background:var(--text-dim);border:none;border-radius:999px;flex-shrink:0;width:1.7rem;height:.95rem;padding:0;transition:background-color .15s;position:relative}.power-toggle--on{background:var(--online)}.power-toggle-thumb{background:var(--bg);border-radius:50%;width:.75rem;height:.75rem;transition:transform .15s;position:absolute;top:.1rem;left:.1rem}.power-toggle--on .power-toggle-thumb{transform:translate(.75rem)}.editable-value{font:inherit;color:inherit;cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;border-bottom:1px dotted;margin:0;padding:0;line-height:1.2}.editable-value:hover{color:var(--text)}.editable-slider{align-items:center;gap:.35rem;display:flex}.editable-slider-value{text-align:right;min-width:1.8rem;color:var(--text);font-variant-numeric:tabular-nums}.editable-slider-input{width:5rem;accent-color:var(--accent)}.status-dot{background:var(--checking);border-radius:50%;width:.6rem;height:.6rem;transition:background-color .2s}.status-dot--online{background:var(--online)}.status-dot--offline{background:var(--offline)}.app-header-actions{align-items:center;gap:.75rem;display:flex}.logout-button{color:var(--text-dim);font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:.4rem;padding:.25rem .6rem;font-size:.8rem}.logout-button:hover{color:var(--text);border-color:#ffffff4d}.login-screen{min-height:100dvh;padding:1rem;padding-top:calc(1rem + env(safe-area-inset-top));padding-bottom:calc(1rem + env(safe-area-inset-bottom));justify-content:center;align-items:center;display:flex}.login-form{background:var(--surface);border-radius:.75rem;flex-direction:column;gap:.75rem;width:100%;max-width:20rem;padding:1.5rem;display:flex}.login-form h1{text-align:center;margin:0 0 .25rem;font-size:1.1rem;font-weight:600}.login-input{background:var(--bg);color:var(--text);font:inherit;border:1px solid #ffffff1f;border-radius:.5rem;padding:.6rem .75rem}.login-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.login-error{color:var(--offline);margin:0;font-size:.85rem}.login-submit{background:var(--accent);color:var(--text);font:inherit;cursor:pointer;border:none;border-radius:.5rem;padding:.6rem;font-weight:600}.login-submit:disabled{opacity:.5;cursor:default}
