.app-header__inner{justify-content:space-between;align-items:center;gap:24px;max-width:1400px;height:56px;margin:0 auto;padding:0 24px;display:flex}.app-header__nav:empty{display:none}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.ui-modal-panel{max-height:min(92dvh, calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));flex-direction:column;display:flex;overflow:hidden}.ui-modal-panel__body{-webkit-overflow-scrolling:touch;flex:1;min-height:0;overflow-y:auto}.modal-bottom-safe-spacer,.device-detail-safe-spacer{height:max(32px, env(safe-area-inset-bottom));background:var(--color-white);flex-shrink:0}.device-detail-body{overscroll-behavior:contain;touch-action:pan-y}.device-detail-body.ui-modal-panel__body{scrollbar-gutter:stable}.range-slider-full,.dual-range-input{touch-action:none}@media (width<=640px){input,select,textarea{font-size:16px}.ui-modal-overlay{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));-webkit-overflow-scrolling:touch;align-items:flex-start;overflow-y:auto}.ui-modal-overlay--center{align-items:flex-start}.ui-modal-overlay--device-detail,.ui-modal-overlay--scroll-panel{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));align-items:flex-start;overflow:hidden}.app-header__inner{height:auto;min-height:56px;padding:8px max(12px, env(safe-area-inset-right)) 10px max(12px, env(safe-area-inset-left));grid-template-rows:auto auto;grid-template-columns:1fr auto;align-items:center;gap:8px 12px;display:grid}.app-header__logo{grid-area:1/1;min-width:0}.app-header__right{grid-area:1/2;justify-self:end;gap:8px 10px}.app-header__nav{grid-area:2/1/auto/-1;width:100%}.app-header__nav a{text-align:center;flex:1;padding-left:10px;padding-right:10px}.app-header__user-name{text-overflow:ellipsis;white-space:nowrap;max-width:min(140px,42vw);overflow:hidden}.dash-page{padding-top:12px;padding-bottom:max(24px, env(safe-area-inset-bottom))}.dash-container{padding-left:max(12px, env(safe-area-inset-left));padding-right:max(12px, env(safe-area-inset-right));gap:14px}.dash-grid{grid-template-columns:1fr}.login-page{padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));min-height:100dvh}.login-card{padding:24px 20px}.device-detail-panel{max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:var(--radius-lg)}.device-detail-header{padding:16px 16px 0!important}.device-detail-body{padding:16px!important}.modal-bottom-safe-spacer,.device-detail-safe-spacer{height:calc(25vh + env(safe-area-inset-bottom));min-height:80px}.device-setpoints-row{flex-direction:column;align-items:center;gap:4px}.device-controls-top{flex-direction:column}.device-controls-top .device-control-btn{width:100%;min-width:0}.device-switches-grid{grid-template-columns:1fr 1fr;gap:8px}.editor-modal-overlay{padding:max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));align-items:flex-start}.editor-modal-wide{max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border-radius:var(--radius-lg)}.editor-modal-header,.editor-modal-body{padding-left:16px;padding-right:16px}.editor-footer-actions{flex-direction:column-reverse;gap:10px}.editor-footer-actions button{width:100%}.editor-days-row{justify-content:center;gap:6px}.editor-day-btn{width:38px;height:38px;font-size:.8rem}.settings-modal-header{padding:16px 16px 0!important}.settings-modal-body{padding:16px!important}.modal-compact-header{padding:16px 16px 0!important}.modal-compact-body{padding:16px!important}.setting-card-actions{flex-wrap:wrap;gap:6px}.setting-card-actions button{flex:auto;min-width:0}.history-panel{padding:16px max(14px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));-webkit-overflow-scrolling:touch;max-height:min(96dvh,100dvh - 16px);overflow-y:auto}.history-panel .history-control-row{flex-direction:column;align-items:stretch}.history-panel .history-datetime-input,.history-panel .history-select-input{width:100%;min-width:0;max-width:none}.history-panel .history-load-btn{align-self:stretch;width:100%}}@media (width<=520px){.detail-live-metrics{grid-template-columns:repeat(3,1fr)!important}}@media (width<=380px){.device-switches-grid{grid-template-columns:1fr}.app-header__logo-text{font-size:1rem}.app-header__user-name{display:none}}:root{--color-blue:#007bfc;--color-blue-dark:#0060c0;--color-blue-light:#e8f2ff;--color-blue-ultra-light:#f4f8ff;--color-blue-70:#007bfcb3;--color-blue-glow:#007bfc26;--color-blue-glow-strong:#007bfc4d;--color-white:#fff;--color-bg:#f6f9fc;--color-bg-card:#fff;--color-text:#1a1a2e;--color-text-secondary:#6b7280;--color-text-tertiary:#9ca3af;--color-border:#e5e9f0;--color-border-light:#f0f3f8;--color-success:#007bfc;--color-success-bg:#e8f2ff;--color-danger:#e53935;--color-danger-bg:#fde8e8;--color-warning:#ff9800;--color-warning-bg:#fff3e0;--color-offline:#9ca3af;--color-offline-bg:#f5f5f5;--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--shadow-sm:0 1px 4px #0000000a;--shadow-md:0 4px 16px #0000000f;--shadow-lg:0 8px 32px #00000014;--shadow-xl:0 24px 80px #0000001f;--shadow-blue:0 4px 20px #007bfc33;--shadow-blue-lg:0 8px 40px #007bfc40;--glow-line:inset 0 0 40px #ffffffd9;--glow-blue:0 0 20px #007bfc4d, 0 0 60px #007bfc1a;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, Consolas, monospace;--transition-fast:.15s ease;--transition:.25s ease;--transition-slow:.4s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);letter-spacing:-.01em;min-height:100vh;line-height:1.6}a{color:var(--color-blue);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--color-blue-dark)}button{cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);background:var(--color-white);color:var(--color-text);border:none;border:1.5px solid var(--color-border);padding:10px 20px;font-family:inherit;font-size:.9rem;font-weight:600}button:hover:not(:disabled){border-color:var(--color-blue);color:var(--color-blue)}button:active:not(:disabled){transform:scale(.98)}button:disabled{opacity:.45;cursor:not-allowed}button.dash-add-btn{background:var(--color-blue);color:#fff;box-shadow:var(--shadow-blue);border:none}button.dash-add-btn:hover:not(:disabled){background:var(--color-blue-dark);color:#fff;border:none}input,select,textarea{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition), box-shadow var(--transition);background:var(--color-white);width:100%;color:var(--color-text);outline:none;padding:10px 14px;font-family:inherit;font-size:.9rem}input:focus,select:focus,textarea:focus{border-color:var(--color-blue);box-shadow:0 0 0 3px var(--color-blue-glow)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-secondary)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes glowPulse{0%,to{box-shadow:var(--glow-blue)}50%{box-shadow:0 0 30px #007bfc80,0 0 80px #007bfc26}}.fade-in{animation:.35s forwards fadeIn}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:8px}.gap-md{gap:16px}.gap-lg{gap:24px}.mt-sm{margin-top:8px}.mt-md{margin-top:16px}.mb-sm{margin-bottom:8px}.mb-md{margin-bottom:16px}.text-sm{font-size:.8rem}.text-muted{color:var(--color-text-secondary)}.dual-range-track{align-items:center;height:24px;display:flex;position:relative}.dual-range-track-bg{background:var(--color-border);pointer-events:none;border-radius:99px;height:6px;position:absolute;left:0;right:0}.dual-range-track-fill{background:var(--color-blue);pointer-events:none;border-radius:99px;height:6px;position:absolute}.dual-range-input{pointer-events:none;appearance:none;background:0 0;width:100%;height:24px;margin:0;padding:0;position:absolute;left:0;right:0}.dual-range-input::-webkit-slider-runnable-track{appearance:none;background:0 0;height:6px}.dual-range-input::-moz-range-track{background:0 0;border:none;height:6px}.dual-range-input::-webkit-slider-thumb{appearance:none;pointer-events:all;border:2px solid var(--color-blue);cursor:grab;background:#fff;border-radius:50%;width:16px;height:16px;margin-top:-5px;box-shadow:0 1px 4px #0000001f}.dual-range-input::-moz-range-thumb{pointer-events:all;border:2px solid var(--color-blue);cursor:grab;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0000001f}.dual-range-input--min{z-index:3}.dual-range-input--max{z-index:4}.dual-range-input--min:active,.dual-range-input--min:focus-visible,.dual-range-input--max:active,.dual-range-input--max:focus-visible{z-index:5}.range-slider-shell{flex:1;align-items:center;min-width:0;height:24px;display:flex;position:relative}.range-slider-track-bg,.range-slider-track-fill{pointer-events:none;border-radius:99px;height:6px;position:absolute;left:0}.range-slider-track-bg{background:var(--color-border);right:0}.range-slider-track-fill{background:var(--color-blue);max-width:100%}.range-slider-full{z-index:1;appearance:none;cursor:pointer;background:0 0;flex:1;width:100%;min-width:0;height:24px;margin:0;padding:0;position:relative}.range-slider-full::-webkit-slider-runnable-track{background:0 0;height:6px}.range-slider-full::-webkit-slider-thumb{appearance:none;border:2px solid var(--color-blue);cursor:grab;background:#fff;border-radius:50%;width:16px;height:16px;margin-top:-5px;box-shadow:0 1px 4px #0000001f}.range-slider-full::-moz-range-track{background:0 0;border:none;height:6px}.range-slider-full::-moz-range-thumb{border:2px solid var(--color-blue);cursor:grab;background:#fff;border-radius:50%;width:16px;height:16px;box-shadow:0 1px 4px #0000001f}
