.ap-grid{--bg:#1b2230;--bg-hover:#202839;--border:#2a3446;--text:#f1f4f9;--muted:#8794a8;--faint:#5d6a7e;--on:#3ecf8e;--standby:#4cc2ff;--off:#5d6a7e;--danger:#ff6b7a;color:var(--text);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:14px;font-family:Outfit,system-ui,-apple-system,sans-serif;display:grid}.ap-grid.light{--bg:#fff;--bg-hover:#f8fafc;--border:#e2e8f0;--text:#0f172a;--muted:#64748b;--faint:#94a3b8;--on:#10b981;--standby:#0284c7;--off:#94a3b8;--danger:#ef4444}.ap-grid *{box-sizing:border-box}.ap-card{--accent:var(--off);border:1px solid var(--border);background:var(--bg);border-radius:14px;outline:none;flex-direction:column;gap:8px;min-width:0;min-height:230px;padding:16px;transition:background .15s,border-color .15s,opacity .15s,transform .15s;display:flex;position:relative}.ap-card:hover{background:var(--bg-hover)}.ap-card[data-state=on],.ap-card[data-state=always]{--accent:var(--on)}.ap-card[data-state=standby]{--accent:var(--standby)}.ap-card[data-state=off]{--accent:var(--off);opacity:.65}.ap-card[data-state=off]:hover{opacity:1}.ap-card[data-state=on],.ap-card[data-state=always],.ap-card[data-state=standby]{border-color:#3ecf8e73}.ap-card[data-state=standby]{border-color:#4cc2ff73}@supports (border-color:color-mix(in srgb, red 50%, blue)){.ap-card[data-state=on],.ap-card[data-state=always],.ap-card[data-state=standby]{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}}.ap-head{align-items:center;gap:10px;min-height:36px;display:flex}.ap-icon{width:36px;height:36px;color:var(--accent);background:#5d6a7e24;border-radius:10px;flex:none;place-items:center;transition:background .15s,color .15s;display:grid}.ap-card[data-state=on] .ap-icon,.ap-card[data-state=always] .ap-icon{background:#3ecf8e24}.ap-card[data-state=standby] .ap-icon{background:#4cc2ff24}@supports (background:color-mix(in srgb, red 50%, blue)){.ap-icon{background:color-mix(in srgb, var(--accent) 14%, transparent)}}.ap-icon svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.ap-name{min-width:0;color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:15px;font-weight:600;line-height:1.3;overflow:hidden}.ap-card[data-state=off] .ap-name{color:var(--muted)}.ap-live{color:var(--standby);flex-shrink:0;align-items:center;gap:5px;font-size:11px;font-weight:600;transition:opacity .15s;display:inline-flex}.ap-live:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px;animation:2s ease-in-out infinite ap-pulse}@keyframes ap-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.ap-live:before{animation:none}}.ap-actions{opacity:0;z-index:2;gap:2px;transition:opacity .15s;display:flex;position:absolute;top:12px;right:10px}.ap-card:hover .ap-actions,.ap-card:focus-within .ap-actions{opacity:1}.ap-card:hover .ap-live,.ap-card:focus-within .ap-live{opacity:0}@media (hover:none){.ap-actions{opacity:1}.ap-live{display:none}}.ap-btn{cursor:pointer;background:var(--bg-hover);width:28px;height:28px;color:var(--muted);border:0;border-radius:8px;place-items:center;padding:0;transition:background .15s,color .15s;display:grid}.ap-btn:hover{color:var(--text);background:#2a3446}.ap-grid.light .ap-btn:hover{background:#e2e8f0}.ap-btn.del:hover{color:var(--danger);background:#ff6b7a26}.ap-btn:focus-visible,.ap-add:focus-visible{outline:2px solid var(--standby);outline-offset:2px}.ap-power{letter-spacing:-.02em;color:var(--text);font-size:30px;font-weight:700;line-height:1}.ap-power small{color:var(--muted);letter-spacing:0;margin-left:3px;font-size:14px;font-weight:500}.ap-card[data-state=off] .ap-power{color:var(--muted)}.ap-meter{background:#ffffff12;border-radius:2px;height:4px;overflow:hidden}.ap-grid.light .ap-meter{background:#00000012}.ap-meter i{background:var(--accent);border-radius:2px;height:100%;transition:width .3s;display:block}.ap-meter-label{color:var(--muted);justify-content:space-between;margin-top:-4px;font-size:12px;display:flex}.ap-detail{color:var(--faint);word-break:normal;overflow-wrap:normal;min-height:18px;font-size:12px;line-height:1.45}.ap-foot{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:10px;font-size:12px;display:flex}.ap-state{color:var(--accent);align-items:center;gap:6px;font-weight:600;display:inline-flex}.ap-state:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.ap-mode{color:var(--faint);text-align:right;font-size:11px}.ap-add{border:1.5px dashed var(--border);min-height:200px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:14px;font-weight:500;transition:color .15s,border-color .15s;display:flex}.ap-add:hover{color:var(--text);border-color:var(--muted)}.ap-add svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:24px;height:24px}@media (width<=640px){.ap-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.ap-card{min-height:200px;padding:12px}.ap-power{font-size:24px}}.sensor-selector{background:var(--sensor-card);border:1px solid var(--sensor-border);color:var(--sensor-text);border-radius:10px;margin-bottom:24px;font-family:Outfit,sans-serif;overflow:hidden;box-shadow:0 1px 3px #0000000f,0 2px 10px #00000008}.sensor-selector__main{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex}.sensor-selector__intro{flex:280px;align-items:center;gap:16px;display:flex}.sensor-selector__icon{width:48px;height:48px;color:var(--sensor-accent);background:color-mix(in srgb, var(--sensor-accent) 9%, var(--sensor-card));border-radius:12px;flex-shrink:0;place-items:center;display:grid}.sensor-selector__eyebrow{color:var(--sensor-muted);text-transform:uppercase;letter-spacing:.09em;margin-bottom:4px;font-size:11px;font-weight:600}.sensor-selector h2{margin:0 0 5px;font-size:20px;font-weight:600}.sensor-selector__intro p{color:var(--sensor-muted);margin:0;font-size:14px;line-height:1.5}.sensor-selector__control{flex:340px;min-width:0;max-width:460px}.sensor-selector label{color:var(--sensor-muted);margin-bottom:8px;font-size:12px;font-weight:600;display:block}.sensor-selector__select-wrap{position:relative}.sensor-selector select{appearance:none;border:1px solid var(--sensor-border);background:var(--sensor-bg);width:100%;min-height:46px;color:var(--sensor-text);cursor:pointer;text-overflow:ellipsis;border-radius:8px;padding:11px 40px 11px 14px;font:500 14px Outfit,sans-serif}.sensor-selector select:hover:not(:disabled){border-color:var(--sensor-accent)}.sensor-selector select:focus-visible,.sensor-selector summary:focus-visible{outline:2px solid var(--sensor-accent);outline-offset:3px}.sensor-selector select:disabled{cursor:not-allowed;opacity:.65}.sensor-selector__select-wrap svg{pointer-events:none;color:var(--sensor-muted);position:absolute;top:15px;right:14px}.sensor-selector__hint{color:var(--sensor-muted);margin-top:8px;font-size:12px;display:block}.sensor-selector__hint span{padding:0 5px}.sensor-selector__footer{border-top:1px solid var(--sensor-border);color:var(--sensor-muted);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;padding:12px 24px;font-size:12px;display:flex}.sensor-selector__status{align-items:center;gap:8px;line-height:1.5;display:flex}.sensor-selector__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.sensor-selector details{max-width:380px}.sensor-selector summary{cursor:pointer;font-weight:500}.sensor-selector details p{margin:8px 0 0;line-height:1.6}@media (width<=640px){.sensor-selector__main{gap:18px;padding:18px}.sensor-selector__control{flex-basis:100%;max-width:none}.sensor-selector__footer{padding:12px 18px}}.sensor-selector__control button{border:1px solid var(--sensor-accent);background:var(--sensor-card);color:var(--sensor-accent);font:inherit;cursor:pointer;border-radius:8px;margin-top:10px;padding:8px 14px}.sensor-selector__control button:focus-visible{outline:2px solid var(--sensor-accent);outline-offset:3px}.sensor-mapping{border:1px solid var(--mapping-border);background:var(--mapping-card);color:var(--mapping-text);border-radius:12px;margin:0 0 24px}.sensor-mapping>summary{cursor:pointer;padding:18px 24px;font-weight:650}.sensor-mapping__body{padding:0 24px 22px}.sensor-mapping p,.sensor-mapping small{color:var(--mapping-muted);line-height:1.6}.sensor-mapping__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;display:grid}.sensor-mapping label{font-weight:600;display:block}.sensor-mapping select{border:1px solid var(--mapping-border);background:var(--mapping-bg);width:100%;color:var(--mapping-text);border-radius:8px;margin-top:8px;padding:12px;display:block}.sensor-mapping__actions{flex-wrap:wrap;gap:12px;margin:18px 0;display:flex}.sensor-mapping button{border:1px solid var(--mapping-accent);background:var(--mapping-accent);color:#fff;cursor:pointer;border-radius:8px;padding:10px 16px}.sensor-mapping button:disabled{opacity:.5;cursor:not-allowed}.sensor-mapping li{overflow-wrap:anywhere;margin-bottom:12px}.sensor-mapping select:focus-visible,.sensor-mapping button:focus-visible,.sensor-mapping summary:focus-visible{outline:3px solid var(--mapping-accent);outline-offset:3px}@media (width<=700px){.sensor-mapping__grid{grid-template-columns:1fr}.sensor-mapping__body{padding:0 16px 18px}}.hvac-dashboard{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}.hvac-dashboard .dashboard-card{min-width:0}.hvac-dashboard .dashboard-label{overflow-wrap:normal;word-break:normal;min-width:0}.hvac-dashboard .dashboard-value{white-space:nowrap;font-variant-numeric:tabular-nums;flex-wrap:nowrap;line-height:1.3}.hvac-dashboard .metric-heading{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px;display:flex}.hvac-dashboard .metric-heading .dashboard-label{white-space:nowrap;overflow-wrap:normal;word-break:normal;margin-bottom:0}.hvac-dashboard .metric-heading span{white-space:nowrap}@media (width<=767px){.hvac-dashboard .dashboard-card{line-height:1.5;padding:16px!important}.hvac-dashboard .dashboard-label{line-height:1.4;letter-spacing:.025em!important;font-size:13px!important}.hvac-dashboard .metric-heading{flex-wrap:wrap;gap:8px;align-items:flex-start!important}.hvac-dashboard .metric-heading>span{line-height:1.4;font-size:12px!important}.hvac-dashboard .metric-source{overflow-wrap:anywhere;line-height:1.5;font-size:13px!important}.hvac-dashboard input:not([type=range]):not([type=checkbox]):not([type=radio]),.hvac-dashboard select,.hvac-dashboard textarea{max-width:100%;line-height:1.5;font-size:16px!important}.hvac-dashboard .dashboard-header{gap:8px;min-height:64px;height:auto!important;padding-block:8px!important}.hvac-dashboard .dashboard-header-context{min-width:0;gap:8px!important}.hvac-dashboard .dashboard-header-title{overflow-wrap:anywhere;line-height:1.4;font-size:13px!important}.hvac-dashboard .dashboard-header-clock{white-space:nowrap;flex:none!important}.hvac-dashboard .dashboard-header button{justify-content:center;align-items:center;min-width:44px;min-height:44px}}.dark input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}[data-theme=dark] input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert();cursor:pointer}
