.app-root{position:relative;min-height:100%;padding-top:calc(8px + var(--safe-top));padding-bottom:var(--safe-bottom);padding-left:var(--safe-left);padding-right:var(--safe-right)}.power-bar-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;flex:0 0 auto;margin-left:auto;min-width:0;max-width:min(12rem,100%)}@media (max-width: 640px){.power-bar-actions{flex:1 1 100%;max-width:none;margin-left:0;align-items:stretch}}.signout{padding:.45rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.85rem}.conn-stack{display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;font-size:.72rem;color:var(--muted);line-height:1.25;text-align:left}.conn-row{display:flex;align-items:center;justify-content:flex-start;gap:.35rem;white-space:nowrap}.signout:active{transform:scale(.98)}.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:1.5rem}.login-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1.75rem;box-shadow:0 12px 40px #00000059}.login-title{margin:0 0 .25rem;font-size:1.75rem;letter-spacing:.02em}.login-sub{margin:0 0 1.25rem;color:var(--muted);font-size:.95rem}.login-form{display:flex;flex-direction:column;gap:.85rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.field input{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.btn{padding:.65rem 1rem;border-radius:8px;border:1px solid transparent}.btn.primary{background:var(--accent);color:#0b0f14;font-weight:600;border-color:var(--accent-dim)}.btn.primary:disabled{opacity:.6;cursor:not-allowed}.btn.secondary{background:transparent;border-color:var(--border);color:var(--text)}.login-msg{margin:1rem 0 0;color:var(--warn);font-size:.9rem}.dashboard-frame{display:flex;flex-direction:column;width:100%;min-height:calc(100vh - 48px)}.shell{display:flex;flex-direction:column;flex:1;min-height:0;max-width:1200px;width:100%;margin:0 auto;gap:.75rem;padding:0 10px 10px}.bar{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:.65rem .75rem}.bar.top{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem}.power-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.5rem .75rem;flex:1 1 0;min-width:0}@media (max-width: 900px){.power-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 640px){.power-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.metric{background:var(--surface-2);border-radius:10px;padding:.45rem .55rem;min-height:52px;display:flex;flex-direction:column;justify-content:center}.metric-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.metric-val{font-size:1.05rem;font-weight:600;font-variant-numeric:tabular-nums}.lights-row{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;flex:0 0 auto;min-width:5.5rem}.gen-start-wrap{display:flex;align-items:center;justify-content:flex-end;width:100%}.gen-start-btn{width:100%;min-height:40px;padding:.45rem .5rem;border-radius:10px;border:1px solid var(--warn);background:#fbbf241f;color:#fcd34d;font-weight:600;font-size:.78rem;line-height:1.2;white-space:normal;text-align:center}.gen-start-btn:disabled{opacity:.45;cursor:not-allowed}.gen-start-btn:active:not(:disabled){transform:scale(.98)}.lamp{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem;font-size:.8rem;color:var(--muted)}.lamp-compact{gap:.25rem}.lamp-label{white-space:nowrap}.lamp-bulb{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);background:#1f2937;box-shadow:inset 0 0 6px #00000073}.lamp-bulb.on{background:var(--on);border-color:#059669;box-shadow:0 0 10px #34d39973}.lamp-bulb.off{opacity:.85}.dot{width:8px;height:8px;border-radius:50%;background:var(--border)}.dot.ok{background:var(--on)}.dot.warn{background:var(--warn)}.center{flex:1;min-height:200px}.controls{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.65rem;align-content:start}.control-tile{min-height:72px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:.65rem .75rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.25rem;text-align:left;transition:border-color .15s ease,background .15s ease}.control-tile:disabled{opacity:.45;cursor:not-allowed}.control-tile.on{border-color:#059669;background:var(--on-bg)}.control-label{font-weight:600;font-size:.95rem}.control-state{font-size:.8rem;color:var(--muted)}.control-hint{font-size:.68rem;color:var(--muted);margin-top:.05rem}.shelly-control-tile{min-height:80px}.bar.bottom{padding:.55rem .65rem}.bar.bottom.temp-bar-full{width:100%;flex-shrink:0;align-self:stretch;max-width:none;margin:0;border-radius:0;border-left:none;border-right:none;padding:.55rem max(10px,var(--safe-left)) .55rem max(10px,var(--safe-right))}.temps{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch}.temp-chip{flex:1 1 120px;min-width:100px;background:var(--surface-2);border-radius:10px;padding:.45rem .55rem;display:flex;flex-direction:column;gap:.2rem}.temp-chip.lamp-chip{flex-direction:row;align-items:center;justify-content:space-between;gap:.5rem}.temp-chip.diesel-chip{flex:1 1 160px;min-width:140px}.diesel-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.diesel-toggle{flex:1 1 auto;min-height:52px;min-width:88px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:.4rem .55rem;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.1rem;text-align:left;transition:border-color .15s ease,background .15s ease}.diesel-toggle:disabled{opacity:.45;cursor:not-allowed}.diesel-toggle.on{border-color:#059669;background:var(--on-bg)}.diesel-toggle-label{font-weight:600;font-size:.95rem}.diesel-toggle-hint{font-size:.68rem;color:var(--muted)}.temp-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.temp-climate{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start}.temp-val{font-size:1rem;font-weight:600;font-variant-numeric:tabular-nums}.temp-hum{font-size:.82rem;font-weight:500;color:var(--muted);font-variant-numeric:tabular-nums}.shelly-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#000000a6;display:flex;align-items:center;justify-content:center;padding:max(12px,var(--safe-top)) max(12px,var(--safe-right)) max(12px,var(--safe-bottom)) max(12px,var(--safe-left))}.shelly-dialog{width:min(100%,22rem);background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:1rem 1rem .85rem;box-shadow:0 12px 40px #00000073}.shelly-dialog-title{margin:0 0 .35rem;font-size:1.1rem;font-weight:600}.shelly-dialog-sub{margin:0 0 .85rem;font-size:.8rem;color:var(--muted);line-height:1.35}.shelly-dialog-actions{display:flex;flex-direction:column;gap:.5rem}.shelly-dialog-btn{width:100%;padding:.6rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font-size:.95rem;font-weight:600}.shelly-dialog-btn-primary{border-color:#b45309;background:#b4530933;color:#fbbf24}.shelly-dialog-btn-primary:hover:not(:disabled){background:#b4530959}.shelly-dialog-btn-muted{margin-top:.65rem;background:transparent;color:var(--muted);font-weight:500}.water-fill-levels{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.water-fill-level-btn{min-height:56px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);padding:.5rem .6rem;display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;transition:border-color .15s ease,background .15s ease}.water-fill-level-btn:hover:not(:disabled){border-color:#059669;background:var(--on-bg)}.water-fill-level-btn:disabled{opacity:.45}.water-fill-level-pct{font-weight:700;font-size:1.05rem}.water-fill-level-time{font-size:.72rem;color:var(--muted)}.water-fill-cancel{width:100%;margin-top:.65rem;padding:.55rem;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--muted);font-size:.9rem}:root{color-scheme:dark;--bg: #0b0f14;--surface: #121922;--surface-2: #1a2330;--border: #2a3544;--text: #e8eef5;--muted: #8b9bb0;--accent: #3d9eff;--accent-dim: #2563a8;--on: #34d399;--on-bg: rgba(52, 211, 153, .15);--warn: #fbbf24;--danger: #f87171;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif;line-height:1.4}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg);color:var(--text)}button{font:inherit;cursor:pointer}input{font:inherit}
