:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#e8edf5;background:#0b1020;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:radial-gradient(circle at top,#3863ff2e,#0000 35%),#0b1020;min-height:100vh;margin:0}button,input{font:inherit}.app{max-width:960px;margin:0 auto;padding:1rem 1rem 5rem}.topbar,.alarm-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.topbar h1,.panel h2,.login-panel h1{margin:0}.muted{color:#93a0b8;font-size:.92rem}.panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#12182aeb;border:1px solid #ffffff14;border-radius:18px;margin-bottom:1rem;padding:1rem}.device-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.75rem;display:grid}.climate-card{background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;grid-column:1/-1;gap:.85rem;padding:1rem;display:flex}.climate-card.on{background:linear-gradient(#60c4ff1f,#ffffff05);border-color:#60c4ff73}.climate-header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.climate-header strong{margin-top:.2rem;display:block}.climate-temp{justify-content:center;align-items:center;gap:1rem;display:flex}.climate-temp-value{flex-direction:column;align-items:center;min-width:5rem;font-size:1.4rem;font-weight:700;display:flex}.climate-modes{flex-wrap:wrap;gap:.5rem;display:flex}.device-card{color:inherit;cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;align-items:flex-start;gap:.35rem;padding:.9rem;transition:transform .15s,border-color .15s,background .15s;display:flex}.device-card.on{background:linear-gradient(#ffd04c1f,#ffffff05);border-color:#ffd04c73}.device-card.off:hover,.device-card.on:hover{transform:translateY(-2px)}.device-top{justify-content:space-between;align-items:center;width:100%;display:flex}.pill{border-radius:999px;padding:.2rem .55rem;font-size:.75rem}.pill-on{color:#ffd84d;background:#ffd04c2e}.pill-off{color:#cbd5e1;background:#94a3b826}.pill-danger{color:#fca5a5;background:#ef44442e}.pill-safe{color:#86efac;background:#22c55e2e}.btn{cursor:pointer;border:none;border-radius:12px;padding:.75rem 1rem}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary,.btn-safe{color:#fff;background:#3b82f6}.btn-danger{color:#fff;background:#dc2626}.btn-safe{background:#16a34a}.btn-ghost{color:#e8edf5;background:#ffffff0f}.alarm-actions{grid-template-columns:1fr 1fr;gap:.75rem;margin-top:1rem;display:grid}.alarm-panel.armed{border-color:#ef444459}.alarm-panel.disarmed{border-color:#22c55e40}.login-wrap{place-items:center;min-height:100vh;padding:1rem;display:grid}.login-panel{gap:.75rem;width:min(100%,360px);display:grid}.input{width:100%;color:inherit;background:#00000040;border:1px solid #ffffff1f;border-radius:12px;padding:.85rem 1rem}.error,.error-banner{color:#fca5a5}.banner{border-radius:12px;margin-bottom:1rem;padding:.75rem 1rem}.error-banner{background:#ef44441f;border:1px solid #ef444440}.toast{background:#0f172af2;border:1px solid #ffffff1f;border-radius:999px;padding:.75rem 1rem;position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%)}.status-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.status-dot.online{background:#22c55e;box-shadow:0 0 12px #22c55ecc}.status-dot.offline{background:#64748b}.topbar-right{align-items:center;gap:.75rem;display:flex}.loading{place-items:center;min-height:100vh;display:grid}.settings-grid{gap:.75rem;margin-top:.75rem;display:grid}.settings-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.settings-label{text-transform:capitalize;font-weight:500}.status-badge{border-radius:999px;padding:.2rem .55rem;font-size:.82rem}.status-badge.online{color:#86efac;background:#22c55e26}.status-badge.offline{color:#94a3b8;background:#64748b33}.all-panel h2{margin-bottom:.75rem}.all-actions{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}@media (width<=640px){.alarm-actions{grid-template-columns:1fr}}body{margin:0}#root{min-height:100vh}
