:root{--bg-color:#0b0c10;--bg-gradient:radial-gradient(circle at 50% 30%, #1a1c23 0%, #0b0c10 80%);--panel-bg:#ffffff0a;--panel-border:#ffffff14;--panel-border-active:#fff3;--text-primary:#fff;--text-secondary:#8e9297;--shadow-color:#00000080;--mode-color:#007aff;--mode-color-rgb:0, 122, 255;--mode-glow:0 0 30px rgba(var(--mode-color-rgb), .15);--font-outfit:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-inter:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--safe-top:env(safe-area-inset-top,20px);--safe-bottom:env(safe-area-inset-bottom,20px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;font-family:var(--font-inter);margin:0;padding:0}body{background-color:var(--bg-color);background-image:var(--bg-gradient);color:var(--text-primary);overscroll-behavior:none;justify-content:center;align-items:center;min-height:100svh;font-size:16px;display:flex;overflow:hidden}#root{width:100%;max-width:430px;height:100svh;padding:var(--safe-top) 20px var(--safe-bottom);flex-direction:column;display:flex;position:relative;overflow-y:auto}#root::-webkit-scrollbar{display:none}.glass-panel{background:var(--panel-bg);-webkit-backdrop-filter:blur(20px);border:1px solid var(--panel-border);border-radius:24px;box-shadow:0 8px 32px #0000004d}.header{justify-content:space-between;align-items:center;margin-top:10px;margin-bottom:20px;padding:0 5px;display:flex}.header h1{font-family:var(--font-outfit);letter-spacing:-.5px;font-size:1.5rem;font-weight:600}.status-indicator{color:var(--text-secondary);border:1px solid var(--panel-border);background:#ffffff0d;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:.85rem;display:flex}.status-dot{background-color:#34c759;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #34c759}.status-dot.offline{background-color:#ff3b30;box-shadow:0 0 8px #ff3b30}.main-container{flex-direction:column;flex:1;justify-content:space-between;gap:20px;padding-bottom:10px;display:flex}.dial-section{justify-content:center;align-items:center;padding:20px 0;display:flex;position:relative}.dial-outer{width:260px;height:260px;box-shadow:inset 0 0 20px #0009, 0 10px 30px #0006, var(--mode-glow);border:1px solid var(--panel-border);background:radial-gradient(circle,#ffffff05 0%,#0003 100%);border-radius:50%;justify-content:center;align-items:center;transition:box-shadow .5s;display:flex;position:relative}.dial-glow-ring{border:2px solid #0000;border-top-color:var(--mode-color);opacity:.8;border-radius:50%;transition:border-top-color .5s,transform .3s;position:absolute;inset:-2px;transform:rotate(45deg)}.dial-inner{border:1px solid var(--panel-border);background:#12141c;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:210px;height:210px;display:flex;position:relative;box-shadow:0 10px 20px #00000080}.room-temp-badge{color:var(--text-secondary);margin-bottom:2px;font-size:.85rem;font-weight:500}.temp-display{font-family:var(--font-outfit);color:var(--text-primary);align-items:flex-start;margin-left:10px;font-size:4.8rem;font-weight:700;line-height:1;display:flex;position:relative}.temp-unit{color:var(--mode-color);margin-top:10px;font-size:1.8rem;font-weight:500;transition:color .5s}.temp-label{color:var(--text-secondary);letter-spacing:1px;text-transform:uppercase;margin-top:5px;font-size:.8rem}.temp-adjust-btn{border:1px solid var(--panel-border);width:48px;height:48px;color:var(--text-primary);cursor:pointer;background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 4px 10px #0000004d}.temp-adjust-btn:active{background:var(--mode-color);border-color:var(--mode-color);transform:translateY(-50%)scale(.92)}.temp-adjust-btn.minus{left:-15px}.temp-adjust-btn.plus{right:-15px}.power-section{justify-content:center;margin-top:5px;display:flex}.power-btn{border:1px solid var(--panel-border);width:76px;height:76px;color:var(--text-secondary);cursor:pointer;background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;transition:all .3s;display:flex;box-shadow:inset 0 2px 4px #ffffff0d,0 10px 20px #0000004d}.power-btn svg{width:32px;height:32px;transition:stroke .3s}.power-btn.active{background:radial-gradient(circle, rgba(var(--mode-color-rgb), .2) 0%, rgba(var(--mode-color-rgb), .05) 100%);border-color:var(--mode-color);color:var(--mode-color);box-shadow:0 0 20px rgba(var(--mode-color-rgb), .3)}.control-grid{flex-direction:column;gap:16px;padding:20px;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;font-weight:600}.mode-selector{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.mode-btn{border:1px solid var(--panel-border);color:var(--text-secondary);cursor:pointer;background:#ffffff05;border-radius:16px;flex-direction:column;align-items:center;gap:6px;padding:12px 6px;font-size:.7rem;font-weight:500;transition:all .25s;display:flex}.mode-btn svg{stroke-width:2.2px;width:20px;height:20px}.mode-btn:active{transform:scale(.95)}.mode-btn.active{background:var(--panel-bg);border-color:var(--mode-color);color:var(--text-primary);box-shadow:0 4px 12px rgba(var(--mode-color-rgb), .15)}.wind-selector{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.wind-btn{border:1px solid var(--panel-border);color:var(--text-secondary);cursor:pointer;text-align:center;background:#ffffff05;border-radius:12px;padding:10px 5px;font-size:.75rem;font-weight:600;transition:all .2s}.wind-btn:active{transform:scale(.95)}.wind-btn.active{border-color:var(--mode-color);color:var(--text-primary);background:rgba(var(--mode-color-rgb), .1)}.login-container{flex-direction:column;flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.login-card{text-align:center;flex-direction:column;gap:24px;width:100%;padding:40px 24px;display:flex}.login-card h2{font-family:var(--font-outfit);font-size:1.8rem;font-weight:600}.login-card p{color:var(--text-secondary);font-size:.9rem;line-height:1.4}.login-form{flex-direction:column;gap:16px;display:flex}.input-group{position:relative}.login-input{border:1px solid var(--panel-border);width:100%;color:var(--text-primary);text-align:center;background:#ffffff08;border-radius:14px;outline:none;padding:16px;font-size:1rem;transition:all .3s}.login-input:focus{background:#ffffff0f;border-color:#007aff;box-shadow:0 0 15px #007aff33}.login-btn{color:#fff;cursor:pointer;background:#007aff;border:none;border-radius:14px;width:100%;padding:16px;font-size:1rem;font-weight:600;transition:all .2s;box-shadow:0 4px 15px #007aff4d}.login-btn:active{background:#0062cc;transform:scale(.98)}.error-text{color:#ff3b30;margin-top:4px;font-size:.85rem}.toast{border:1px solid var(--panel-border);color:var(--text-primary);z-index:100;pointer-events:none;background:#000c;border-radius:30px;padding:12px 24px;font-size:.85rem;font-weight:500;animation:3s forwards toast-in-out;position:absolute;bottom:30px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #00000080}@keyframes toast-in-out{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.spinner{border:3px solid #ffffff1a;border-top-color:var(--mode-color);border-radius:50%;width:32px;height:32px;animation:1s infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-container{flex:1;justify-content:center;align-items:center;display:flex}
