:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#234,#08111b 45%,#05070a);color:#eef6ff}.shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:64px 0 80px}.app-shell{width:calc(100% - 28px);grid-template-columns:280px minmax(0,1fr);align-items:start}.app-shell,.content-column{display:grid;grid-gap:22px;gap:22px}.sidebar{position:-webkit-sticky;position:sticky;top:18px;display:grid;grid-gap:18px;gap:18px;border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:20px;background:rgba(6,14,24,.88);box-shadow:0 24px 80px rgba(0,0,0,.32)}.account-menu,.brand-block,.device-title-row,.hero-actions,.hero-title-row,.inline-badges,.metric-row,.raw-card-header{display:flex;gap:10px;align-items:center}.avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:linear-gradient(135deg,#38bdf8,#2563eb);color:white;font-weight:900}.brand-logo{width:72px;height:66px;object-fit:contain;flex:0 0 auto}.account-menu span,.brand-block span,.sidebar-label{display:block;color:#9fb4ca;font-size:.82rem}.sidebar-section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.sidebar-section-heading .sidebar-label{margin:0}.sidebar-section-heading>span{display:grid;place-items:center;min-width:1.45rem;height:1.45rem;padding:0 .35rem;border-radius:999px;background:rgba(56,189,248,.13);color:#bae6fd;font-size:.74rem;font-weight:800}.sidebar-device-list{display:grid;grid-gap:.4rem;gap:.4rem}.sidebar-device{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:.62rem;gap:.62rem;padding:.7rem .65rem;color:#dcecff;text-align:left;border:1px solid transparent;border-radius:14px;background:transparent;box-shadow:none}.sidebar-device:hover{transform:none;border-color:rgba(148,163,184,.18);background:rgba(148,163,184,.08)}.sidebar-device.selected{border-color:rgba(56,189,248,.38);background:linear-gradient(135deg,rgba(14,165,233,.19),rgba(37,99,235,.1));box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.sidebar-device-dot{width:.52rem;height:.52rem;border-radius:999px;background:#64748b;box-shadow:0 0 0 3px rgba(100,116,139,.12)}.sidebar-device-dot.online{background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.13),0 0 12px rgba(52,211,153,.38)}.sidebar-device-copy{min-width:0;display:grid;grid-gap:.13rem;gap:.13rem}.sidebar-device-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.87rem}.sidebar-device-copy small{color:#94a9bf;font-size:.72rem}.sidebar-device-chevron{color:#7dd3fc;font-size:1.25rem;line-height:1}.sidebar-empty{margin:0;color:#94a9bf;font-size:.82rem;line-height:1.45}.sidebar-add-device{display:grid;grid-gap:.6rem;gap:.6rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(148,163,184,.12)}.sidebar-add-button{width:100%;padding:.68rem .75rem;border:1px dashed rgba(125,211,252,.42);border-radius:13px;color:#bae6fd;background:rgba(14,116,144,.12);box-shadow:none}.sidebar-add-button:hover{transform:none;border-style:solid;background:rgba(14,165,233,.18)}.sidebar-add-form{display:grid;grid-gap:.6rem;gap:.6rem;padding:.7rem;border:1px solid rgba(125,211,252,.18);border-radius:14px;background:rgba(2,12,24,.62)}.sidebar-add-form label{display:grid;grid-gap:.28rem;gap:.28rem;color:#c8d7e8;font-size:.75rem;font-weight:750}.sidebar-add-form label span{color:#7f94ab;font-weight:500}.sidebar-add-form input{width:100%;min-width:0;padding:.57rem .6rem;color:#eef6ff;border:1px solid rgba(148,163,184,.22);border-radius:10px;background:rgba(15,23,42,.9)}.sidebar-add-form button{width:100%;padding:.6rem;font-size:.8rem}.sidebar-add-form p{margin:0;color:#fbbf24;font-size:.75rem;line-height:1.35}.hue-map-tool{display:grid;grid-gap:.65rem;gap:.65rem}.hue-map-tool label{display:grid;grid-gap:.3rem;gap:.3rem;color:#cbd5e1;font-size:.78rem;font-weight:700}.hue-map-tool select{width:100%;padding:.55rem;color:#eef6ff;border:1px solid rgba(251,191,36,.32);border-radius:10px;background:rgba(15,23,42,.9)}.light-preset-row{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.4rem;gap:.4rem}.light-preset-row button{padding:.5rem;font-size:1rem;background:rgba(71,85,105,.42);box-shadow:none}.light-preset-row button.active{background:linear-gradient(135deg,#f59e0b,#f97316);color:white}.floorplan-object.floorplan-hue-light{pointer-events:auto;cursor:pointer;background:rgba(30,41,59,.72);box-shadow:none}.floorplan-hue-light:hover{transform:translate(-50%,-50%) rotate(var(--rotation,0deg)) scale(1.08)}.floorplan-hue-light.on{background:rgba(253,224,71,.22);border-color:#fef08a!important;box-shadow:0 0 18px rgba(250,204,21,.72)}.sidebar-section{display:grid;grid-gap:10px;gap:10px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.sidebar-label{margin:0;text-transform:uppercase;letter-spacing:.12em;font-weight:800}.metric-row{justify-content:space-between;padding:10px 12px;border-radius:14px;background:rgba(255,255,255,.055)}.account-menu{align-items:flex-start;flex-wrap:wrap}.account-menu>div:nth-child(2){min-width:0;flex:1 1}.hero{border:1px solid rgba(255,255,255,.12);border-radius:28px;padding:40px;background:rgba(8,17,27,.78);box-shadow:0 24px 80px rgba(0,0,0,.35)}.product-hero{padding:34px}.hero-title-row{gap:16px;margin:8px 0 14px}.hero-logo{width:clamp(58px,8vw,82px);height:clamp(58px,8vw,82px);object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 14px 28px rgba(0,0,0,.28))}.hero-title-row h1{margin:0}.top-nav{display:flex;gap:12px;margin-bottom:18px;flex-wrap:wrap}.sidebar .top-nav{display:grid;margin:0}.top-nav a{color:#e0f2fe;text-decoration:none;font-weight:700;padding:9px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.08)}.sidebar .top-nav a{border-radius:16px;padding:12px 14px}.eyebrow{color:#7dd3fc;text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;font-weight:700}h1{font-size:clamp(2.25rem,6vw,5rem);line-height:.95;margin:0 0 18px}p{color:#c8d7e8;font-size:1.06rem;line-height:1.65}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px;margin:28px 0}.compact-grid{margin:0}.card,.info-card,.panel{border:1px solid rgba(255,255,255,.1);border-radius:22px;padding:24px;background:rgba(255,255,255,.055)}.card h2,.info-card h3,.panel h2{margin-top:0;font-size:1rem;color:#93c5fd}.card p{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.92rem;word-break:break-word}.auth-form,.auth-summary,.stack-form{display:grid;grid-gap:12px;gap:12px;max-width:640px}.auth-form label,.device-actions label,.stack-form label{display:grid;grid-gap:8px;gap:8px;font-size:.9rem;color:#c8d7e8}.auth-form input,.device-actions input,.lookup-row input,.stack-form input,.stack-form select,.stack-form textarea{background:rgba(4,10,18,.95);border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#eef6ff;padding:12px 14px}.stack-form textarea{resize:vertical}.password-field{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:8px;gap:8px}.auth-form .password-field input{width:100%}.auth-form button.icon-button{border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:10px 12px;min-width:44px;background:rgba(255,255,255,.08);color:#eef6ff;line-height:1}.auth-form button.icon-button:hover{background:rgba(56,189,248,.18)}.captcha-hint{color:#9fb3c8;font-size:.82rem}.auth-form button,.auth-summary button,.button-row button,.stack-form button{border:0;border-radius:999px;padding:12px 18px;font-weight:700;background:linear-gradient(135deg,#38bdf8,#2563eb);color:white;cursor:pointer}.auth-form button:disabled,.auth-summary button:disabled,.button-row button:disabled,.stack-form button:disabled{opacity:.65;cursor:not-allowed}.auth-summary button.secondary,.button-row button.secondary,.device-actions button.secondary{background:rgba(255,255,255,.08)}.device-list{display:grid;grid-gap:14px;gap:14px}.device-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.9fr);grid-gap:16px;gap:16px;padding:18px;border-radius:18px;background:rgba(8,17,27,.72);border:1px solid rgba(255,255,255,.08)}.device-row.selected{border-color:rgba(56,189,248,.45);box-shadow:0 0 0 1px rgba(56,189,248,.16),0 18px 50px rgba(14,165,233,.08)}.device-actions,.device-meta{display:grid;grid-gap:8px;gap:8px}.device-meta span{color:#c8d7e8;font-size:.92rem;word-break:break-word}.button-row{display:flex;flex-wrap:wrap;gap:10px}.stack-form{max-width:100%}.detail-grid,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:14px;gap:14px}.lookup-row,.panel-header,.toggle-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}.panel-header-actions{display:inline-flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end}.dropdown-toggle{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:8px 12px;background:rgba(255,255,255,.08);color:#eef6ff;cursor:pointer;font-weight:800}.dropdown-toggle:hover{background:rgba(56,189,248,.16);border-color:rgba(125,211,252,.28)}.dropdown-caret{font-size:.78rem;transition:transform .16s ease}.dropdown-toggle[aria-expanded=true] .dropdown-caret{transform:rotate(180deg)}.status-badge{display:inline-flex;align-items:center;width:-moz-fit-content;width:fit-content;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:850;letter-spacing:.03em;border:1px solid rgba(255,255,255,.08)}.status-good{background:rgba(34,197,94,.16);color:#86efac}.status-warn{background:rgba(251,146,60,.16);color:#fdba74}.status-info{background:rgba(56,189,248,.16);color:#7dd3fc}.status-muted{background:rgba(148,163,184,.14);color:#cbd5e1}.status-danger{background:rgba(248,113,113,.16);color:#fca5a5}.state-card{display:flex;gap:14px;align-items:flex-start;border-radius:18px;padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(8,17,27,.66)}.state-card p{margin:4px 0 0}.error-card{border-color:rgba(248,113,113,.26)}.empty-card{border-style:dashed}.spinner{width:18px;height:18px;border-radius:999px;border:3px solid rgba(125,211,252,.22);border-top-color:#7dd3fc;animation:spin .8s linear infinite;margin-top:4px}.skeleton-line{display:block;width:100%;height:44px;border-radius:14px;background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.14),rgba(255,255,255,.06));background-size:200% 100%;animation:shimmer 1.2s infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{to{background-position:-200% 0}}.lookup-row input{flex:1 1 320px}.stack-list{display:grid;grid-gap:12px;gap:12px}.compact-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(180px,.9fr);grid-gap:12px;gap:12px;align-items:start;padding:14px 16px;border-radius:16px;background:rgba(8,17,27,.6);border:1px solid rgba(255,255,255,.08)}.compact-row div{word-break:break-word}.bullet-list{margin:0;padding-left:20px;display:grid;grid-gap:10px;gap:10px}pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;color:#e8f2ff}.detail-grid-wide{margin-top:18px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.history-summary,.sample-list{margin:0;padding:0;list-style:none;display:grid;grid-gap:10px;gap:10px}.history-summary li,.sample-row{border-radius:16px;border:1px solid rgba(255,255,255,.08);background:rgba(8,17,27,.6);padding:12px 14px}.sample-row{display:grid;grid-gap:8px;gap:8px}.history-summary span,.sample-meta{display:block;margin-top:4px;color:#9fb4ca;font-size:.88rem}.sample-payload{color:#e8f2ff;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.86rem;word-break:break-word}.history-chart{grid-template-columns:repeat(auto-fit,minmax(18px,1fr));min-height:180px;padding:10px 0 16px}.history-bar-wrap,.history-chart{display:grid;align-items:end;grid-gap:8px;gap:8px}.history-bar-wrap{justify-items:center;min-width:0}.history-bar{width:100%;min-height:8px;border-radius:999px 999px 6px 6px;background:linear-gradient(180deg,#7dd3fc,#2563eb);box-shadow:0 10px 24px rgba(37,99,235,.35)}.history-bar-wrap span{color:#9fb4ca;font-size:.7rem;transform:rotate(-45deg);transform-origin:center;white-space:nowrap;width:100%;text-align:center}.error{color:#fca5a5}.success{color:#86efac}@media (max-width:900px){.app-shell{width:min(100% - 20px,1180px);grid-template-columns:1fr;padding-top:18px}.sidebar{position:static}}@media (max-width:760px){.card,.hero,.info-card,.panel,.product-hero{padding:18px;border-radius:20px}.compact-row,.device-row,.raw-card-body{grid-template-columns:1fr}.raw-card-body>div+div{border-left:0;border-top:1px solid rgba(255,255,255,.08)}.tab-row{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px}.tab-row button{white-space:nowrap}}.tab-row{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 22px}.tab-row button{border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:10px 14px;font-weight:700;color:#dbeafe;background:rgba(255,255,255,.06);cursor:pointer}.tab-row button.active{background:linear-gradient(135deg,#38bdf8,#2563eb);color:white;border-color:transparent}.telemetry-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));grid-gap:12px;gap:12px}.table-wrap{width:100%;overflow-x:auto;border-radius:18px;border:1px solid rgba(255,255,255,.08)}.raw-payload-grid{display:grid;grid-gap:14px;gap:14px}.raw-card{border-radius:18px;border:1px solid rgba(255,255,255,.08);background:rgba(8,17,27,.62);overflow:hidden}.raw-card-header{justify-content:space-between;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.raw-card-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.raw-card-body>div{padding:16px;min-width:0}.raw-card-body>div+div{border-left:1px solid rgba(255,255,255,.08)}.info-card pre,.raw-card pre,.topic-table pre{max-height:360px;overflow:auto}.topic-table{width:100%;border-collapse:collapse;min-width:1120px;background:rgba(8,17,27,.62)}.topic-table td,.topic-table th{padding:12px 14px;vertical-align:top;text-align:left;border-bottom:1px solid rgba(255,255,255,.08)}.topic-table th{color:#93c5fd;font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;background:rgba(255,255,255,.04)}.topic-table td{color:#dbeafe;font-size:.88rem}.info-card code,.sample-row code,.topic-table code{color:#bae6fd;word-break:break-word}.freshness{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:.75rem;font-weight:800;letter-spacing:.04em;background:rgba(148,163,184,.18);color:#dbeafe}.freshness-live{background:rgba(34,197,94,.18);color:#86efac}.freshness-recent{background:rgba(56,189,248,.16);color:#7dd3fc}.freshness-stale{background:rgba(251,146,60,.16);color:#fdba74}.freshness-retained{background:rgba(168,85,247,.18);color:#d8b4fe}.muted{color:#9fb4ca}.wide{grid-column:1/-1}.device-dashboard{background:rgba(5,12,22,.76)}.theia-overview{display:grid;grid-gap:16px;gap:16px}.device-hero-strip{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.8fr);grid-gap:16px;gap:16px;align-items:center;padding:18px;border-radius:20px;background:linear-gradient(135deg,rgba(15,23,42,.9),rgba(15,23,42,.56));border:1px solid rgba(255,255,255,.08)}.device-hero-strip h2{margin:0 0 8px;font-size:clamp(1.8rem,4vw,3rem)}.device-hero-facts{display:grid;grid-gap:8px;gap:8px}.stat-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:12px;gap:12px}.chart-panel,.gauge-card,.theia-stat-card{border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:16px;background:radial-gradient(circle at top left,rgba(56,189,248,.1),rgba(15,23,42,.68) 46%,rgba(8,17,27,.74));min-width:0}.stat-top{display:flex;gap:12px;align-items:center;justify-content:space-between}.chart-panel h3,.gauge-card h3,.stat-top h3{margin:0 0 6px;color:#eaf4ff;font-size:.95rem}.stat-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:rgba(56,189,248,.12);font-size:1.25rem}.stat-value{margin-top:14px;font-size:clamp(1.45rem,3vw,2.25rem);font-weight:850;color:#f8fbff}.stat-value span{margin-left:6px;font-size:.86rem;color:#c8d7e8}.good-text{color:#86efac}.muted-text{color:#cbd5e1}.sparkline{width:100%;height:42px;margin-top:10px;opacity:.98}.sparkline-empty{margin-top:10px;height:42px;display:grid;place-items:center;color:#64748b;font-size:.8rem;border-radius:12px;background:rgba(15,23,42,.44)}.dashboard-grid-bottom,.dashboard-grid-main{display:grid;grid-gap:14px;gap:14px}.dashboard-grid-main{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.dashboard-grid-bottom{grid-template-columns:minmax(280px,1.1fr) repeat(3,minmax(160px,.8fr)) minmax(240px,1fr)}.chart-legend{display:flex;flex-wrap:wrap;gap:12px;margin:8px 0 12px;color:#c8d7e8;font-size:.86rem}.chart-legend span{display:inline-flex;align-items:center;gap:6px}.chart-legend i{width:18px;height:3px;border-radius:999px}.multi-chart{display:grid;grid-gap:4px;gap:4px;min-height:180px;align-content:center;padding:10px;border-radius:14px;background:rgba(2,6,23,.28)}.timeline-row{display:grid;grid-template-columns:90px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center;margin-top:18px;color:#c8d7e8}.timeline-bars{display:grid;grid-template-columns:repeat(96,minmax(2px,1fr));grid-gap:2px;gap:2px;min-height:54px;align-items:stretch}.timeline-bars i{border-radius:999px}.timeline-bars em{color:#64748b}.gauge{width:140px;height:140px;margin:8px auto;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gauge-color) var(--gauge),rgba(51,65,85,.72) 0);position:relative}.gauge:after{content:"";position:absolute;inset:16px;border-radius:50%;background:#0b1422}.gauge small,.gauge span{position:relative;z-index:1}.gauge span{align-self:end;font-size:2rem;font-weight:850}.gauge small{align-self:start;color:#c8d7e8}.gauge-range,.telemetry-list li{display:flex;align-items:center;justify-content:space-between;gap:12px}.telemetry-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:9px;gap:9px}.telemetry-list li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07)}.gauge-range,.telemetry-list em,.telemetry-list span{color:#9fb4ca;font-size:.84rem}.telemetry-list strong{text-align:right}@media (max-width:1180px){.dashboard-grid-bottom,.dashboard-grid-main{grid-template-columns:1fr}}@media (max-width:900px){.device-hero-strip{grid-template-columns:1fr}}.unit-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(15,23,42,.72);border:1px solid rgba(255,255,255,.1)}.unit-toggle button{border:0;border-radius:999px;padding:7px 11px;color:#c8d7e8;background:transparent;font-weight:800;cursor:pointer}.unit-toggle button.active{color:white;background:linear-gradient(135deg,#38bdf8,#2563eb)}.dashboard-grid-bottom{grid-template-columns:minmax(360px,1.4fr) repeat(3,minmax(180px,.75fr)) minmax(280px,1fr);align-items:stretch}.dashboard-grid-bottom .gauge-card,.dashboard-grid-bottom .info-card{min-width:0;overflow:hidden}.telemetry-list li{display:grid;grid-template-columns:minmax(120px,.9fr) minmax(180px,1.35fr) minmax(64px,.35fr);align-items:start}.telemetry-list em,.telemetry-list span,.telemetry-list strong{min-width:0}.telemetry-list code{display:block}.telemetry-list code,.telemetry-list strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.telemetry-list strong{text-align:left}.telemetry-list em{text-align:right;white-space:nowrap}.gauge-card{display:grid;align-content:start}.gauge{width:min(140px,100%);height:auto;aspect-ratio:1/1}@media (max-width:760px){.dashboard-grid-bottom,.telemetry-list li{grid-template-columns:1fr}.telemetry-list em,.telemetry-list strong{text-align:left}}.device-row.clickable{cursor:pointer}.device-row.clickable:hover{border-color:rgba(96,165,250,.55);background:rgba(30,41,59,.36);transform:translateY(-1px)}.device-row.clickable:focus-visible{outline:2px solid #60a5fa;outline-offset:3px}.clickable-card{-webkit-appearance:none;-moz-appearance:none;appearance:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.clickable-card:not(:disabled):hover,.telemetry-click-card:not(:disabled):hover{transform:translateY(-2px);border-color:rgba(56,189,248,.55);box-shadow:0 18px 45px rgba(8,47,73,.28)}.clickable-card:disabled,.telemetry-click-card:disabled{cursor:default}.telemetry-click-card{color:inherit;font:inherit;text-align:left;width:100%;cursor:pointer}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;background:rgba(2,6,23,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.graph-modal{width:min(1120px,96vw);max-height:92vh;overflow:auto;border:1px solid rgba(148,163,184,.22);border-radius:28px;padding:24px;background:linear-gradient(135deg,rgba(15,23,42,.98),rgba(8,13,25,.98));box-shadow:0 28px 90px rgba(0,0,0,.48)}.range-row{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.range-row button{min-width:72px}.range-row button.active{background:linear-gradient(135deg,#38bdf8,#2563eb);color:#f8fbff;border-color:transparent}.graph-summary{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:10px 0 16px;color:#c8d7e8}.graph-summary strong{color:#f8fbff;font-size:clamp(2rem,5vw,3.5rem)}.large-graph-wrap{position:relative;min-height:470px;padding:12px 0 0 58px;border-radius:20px;background:radial-gradient(circle at top,rgba(56,189,248,.12),rgba(2,6,23,.34))}.graph-axis{position:absolute;left:12px;top:48px;bottom:68px;display:flex;flex-direction:column;justify-content:space-between;color:#93a4b8;font-size:.78rem}.large-line-graph{width:100%;height:400px;display:block}.large-line-graph line{stroke:rgba(148,163,184,.18);stroke-width:1}.graph-times{display:flex;justify-content:space-between;gap:16px;padding:10px 14px 14px 0;color:#93a4b8;font-size:.82rem}.compact-panel-header{align-items:center;gap:10px;margin:0 0 14px}.zone-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.room-map-card,.zone-grid{display:grid;grid-gap:10px;gap:10px}.room-map-card{margin:8px 0 16px}.room-map-stage{position:relative;overflow:hidden;width:min(100%,620px);margin:0 auto;border:2px solid rgba(226,232,240,.72);border-radius:6px;background:linear-gradient(180deg,rgba(30,37,57,.96),rgba(21,27,43,.96));box-shadow:inset 0 0 0 1px rgba(15,23,42,.8),0 18px 40px rgba(2,6,23,.28)}.room-map-grid{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.room-zone{position:absolute;display:grid;place-items:center;align-content:center;grid-gap:2px;gap:2px;min-width:22px;min-height:18px;border:1.5px solid rgba(245,158,11,.8);background:rgba(245,158,11,.16);color:#fbbf24;font-size:.68rem;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.5)}.room-zone span{font-size:1rem;line-height:1}.room-zone strong{max-width:100%;overflow:hidden;padding:0 3px;font-size:.68rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.room-zone.active{box-shadow:inset 0 0 22px rgba(134,239,172,.18),0 0 0 1px rgba(134,239,172,.38)}.room-zone.zone-kind-2{border-color:rgba(168,85,247,.9);background:rgba(168,85,247,.2);color:#d8b4fe}.room-zone.zone-kind-3{border-color:rgba(56,189,248,.86);background:rgba(56,189,248,.16);color:#7dd3fc}.room-device,.room-track{position:absolute;z-index:5;transform:translate(-50%,-50%)}.room-device{width:16px;height:16px;border:2px solid rgba(167,139,250,.95);border-radius:999px;background:radial-gradient(circle,#eef2ff 0 35%,#4f46e5 38% 100%);box-shadow:0 0 18px rgba(99,102,241,.75)}.room-track{width:20px;height:20px;border:2px solid rgba(255,255,255,.9);border-radius:999px;background:radial-gradient(circle,#86efac 0 35%,#16a34a 38% 100%);box-shadow:0 0 18px rgba(34,197,94,.75)}.room-track span{position:absolute;left:50%;top:100%;transform:translateX(-50%);color:#bbf7d0;font-size:.62rem;font-weight:800}.room-map-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;color:#93a4b8;font-size:.78rem}.room-map-meta span{border:1px solid rgba(148,163,184,.18);border-radius:999px;padding:4px 8px;background:rgba(15,23,42,.46)}.zone-card{display:grid;grid-gap:6px;gap:6px;padding:14px;border-radius:16px;border:1px solid rgba(148,163,184,.18);color:inherit;text-align:left;background:rgba(15,23,42,.62);cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.zone-card:hover{transform:translateY(-2px);border-color:rgba(56,189,248,.55)}.zone-card span{color:#eaf4ff;font-weight:800}.zone-card strong{font-size:1.05rem}.zone-card em{color:#93a4b8;font-size:.82rem;font-style:normal}.zone-present{background:linear-gradient(135deg,rgba(22,163,74,.24),rgba(15,23,42,.7));border-color:rgba(134,239,172,.34)}.zone-present strong{color:#86efac}.zone-empty strong{color:#cbd5e1}.control-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0}.control-card,.eye-monitor-card{border:1px solid rgba(148,163,184,.22);border-radius:18px;background:rgba(15,23,42,.52);padding:1rem}.control-card strong,.eye-monitor-card strong{display:block;margin-bottom:.65rem}.control-card-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.65rem}.control-card-head strong{margin-bottom:0}.control-switch{display:flex;align-items:center;justify-content:space-between;gap:.8rem;color:#aebfd2;font-size:.84rem;font-weight:700;cursor:pointer}.control-switch input{position:absolute;opacity:0;pointer-events:none}.control-switch i{width:3rem;height:1.62rem;border-radius:999px;background:#3b4354;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);transition:.18s ease}.control-switch i:after{content:"";display:block;width:1.18rem;height:1.18rem;margin:.22rem;border-radius:50%;background:#e5edf8;transition:.18s ease}.control-switch input:checked+i{background:linear-gradient(135deg,#38bdf8,#2563eb)}.control-switch input:checked+i:after{transform:translateX(1.38rem);background:white}.control-switch input:focus-visible+i{outline:2px solid #93c5fd;outline-offset:2px}.control-switch input:disabled+i{opacity:.55;cursor:wait}.danger-button{background:linear-gradient(135deg,#ef4444,#f97316);color:white;border-color:rgba(248,113,113,.5)}.button-row button.active-control{box-shadow:0 0 0 2px rgba(134,239,172,.36),0 10px 28px rgba(34,197,94,.16)}.button-row button.secondary.active-control{background:rgba(34,197,94,.14);color:#bbf7d0}.ir-remote-list{display:grid;grid-gap:1rem;gap:1rem;margin-top:1rem;min-width:0}.ir-remote-group{border:1px solid rgba(148,163,184,.22);border-radius:18px;background:rgba(15,23,42,.42);padding:.85rem;min-width:0;max-width:100%;box-sizing:border-box}.ir-remote-group h4{margin:0 0 .75rem}.ir-command-list{display:grid;grid-gap:.55rem;gap:.55rem;min-width:0}.ir-command-card{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:.75rem;gap:.75rem;align-items:center;padding:.72rem .75rem;border-radius:14px;background:rgba(255,255,255,.045);min-width:0}.ir-command-main{min-width:0;display:grid;grid-gap:.28rem;gap:.28rem}.ir-command-main strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ir-command-meta{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.ir-command-meta span{color:#c8d7e8;font-size:.76rem;line-height:1;border:1px solid rgba(148,163,184,.18);border-radius:999px;padding:.24rem .45rem;background:rgba(15,23,42,.34);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ir-command-card button{border:0;border-radius:999px;padding:.5rem .78rem;font-weight:800;color:white;cursor:pointer;background:linear-gradient(135deg,#38bdf8,#2563eb);white-space:nowrap}.ir-command-card button:disabled{opacity:.65;cursor:not-allowed}.hue-room-list{display:grid;grid-gap:.7rem;gap:.7rem;margin-top:1rem}.hue-room-card,.hue-unassigned{border:1px solid rgba(148,163,184,.22);border-radius:16px;background:rgba(15,23,42,.42);overflow:hidden}.hue-room-card>summary,.hue-unassigned>summary{cursor:pointer;list-style:none}.hue-room-card>summary::-webkit-details-marker,.hue-unassigned>summary::-webkit-details-marker{display:none}.hue-room-card>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:.6rem;gap:.6rem;padding:.75rem}.hue-expand-hint{color:#b9c8dc;font-size:.78rem;white-space:nowrap}.hue-room-card[open] .hue-expand-hint span{display:inline-block;transform:rotate(180deg)}.hue-control-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(120px,38%);align-items:center;grid-gap:.72rem;gap:.72rem;min-width:0}.hue-control-name{min-width:0;display:grid;grid-gap:.12rem;gap:.12rem}.hue-control-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hue-control-name span{color:#9fb0c7;font-size:.76rem}.hue-toggle{display:inline-flex;cursor:pointer}.hue-toggle input{position:absolute;opacity:0;pointer-events:none}.hue-toggle span{width:2.5rem;height:1.38rem;border-radius:999px;background:#3b4354;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);transition:.18s ease}.hue-toggle span:after{content:"";display:block;width:1rem;height:1rem;margin:.19rem;border-radius:50%;background:#e5edf8;transition:.18s ease}.hue-toggle input:checked+span{background:linear-gradient(135deg,#34d399,#16a34a)}.hue-toggle input:checked+span:after{transform:translateX(1.12rem);background:white}.hue-toggle input:focus-visible+span{outline:2px solid #93c5fd;outline-offset:2px}.hue-toggle input:disabled+span{opacity:.55;cursor:wait}.hue-brightness{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;grid-gap:.45rem;gap:.45rem;color:#d7e5f6;font-size:.78rem}.hue-brightness input{accent-color:#22c55e;min-width:0;width:100%}.hue-brightness output{min-width:2.5rem;text-align:right}.hue-bulb-list{display:grid;grid-gap:.5rem;gap:.5rem;padding:.15rem .75rem .75rem;border-top:1px solid rgba(148,163,184,.13)}.hue-bulb-list .hue-control-row{padding:.55rem .15rem}.hue-unassigned{margin-top:.8rem;padding:.75rem}.hue-unassigned>summary{color:#b9c8dc;font-size:.86rem}.hue-unassigned .hue-bulb-list{margin-top:.7rem;padding:.7rem 0 0}.automation-editor{display:grid;grid-gap:.8rem;gap:.8rem;padding-top:.75rem}.automation-editor label{display:grid;grid-gap:.35rem;gap:.35rem;color:#cbd5e1;font-size:.82rem;font-weight:700}.automation-editor input,.automation-editor select{width:100%;min-height:2.7rem;border-color:rgba(125,211,252,.18);background:linear-gradient(180deg,rgba(7,18,31,.95),rgba(6,14,24,.95));transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.automation-editor input:focus,.automation-editor select:focus{outline:0;border-color:rgba(56,189,248,.78);box-shadow:0 0 0 3px rgba(56,189,248,.14)}.automation-editor .form-grid{gap:.75rem;padding:.9rem;border:1px solid rgba(148,163,184,.12);border-radius:14px;background:linear-gradient(135deg,rgba(30,41,59,.38),rgba(15,23,42,.2))}.automation-editor .check-row{display:flex;align-items:center;gap:.55rem;padding-top:1.55rem}.automation-editor .check-row input{width:auto}.automation-heading{display:flex;align-items:center;gap:.55rem;margin:.65rem 0 -.2rem;color:#e5edf8;font-size:.95rem}.automation-heading:before{content:"";width:.52rem;height:.52rem;border-radius:999px;background:#38bdf8;box-shadow:0 0 0 4px rgba(56,189,248,.12)}.automation-row{display:grid;grid-gap:.55rem;gap:.55rem;padding:.85rem;border:1px solid rgba(125,211,252,.16);border-radius:16px;background:linear-gradient(135deg,rgba(15,35,55,.56),rgba(15,23,42,.45));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}.automation-row:hover{border-color:rgba(125,211,252,.3)}.hue-automation-picker{grid-column:span 2}.hue-automation-picker select{border-color:rgba(52,211,153,.36);background-image:linear-gradient(90deg,rgba(16,185,129,.12),transparent 40%)}.automation-editor>.button-row{position:-webkit-sticky;position:sticky;bottom:.8rem;z-index:1;padding:.7rem;margin:.15rem -.1rem -.1rem;border:1px solid rgba(125,211,252,.16);border-radius:14px;background:rgba(5,13,23,.82);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.automation-editor>.button-row button{min-width:9.5rem;background:linear-gradient(135deg,#0284c7,#2563eb);box-shadow:0 10px 25px rgba(37,99,235,.2)}.compact-button{justify-self:start;font-size:.8rem;padding:.38rem .6rem}@media (max-width:560px){.hue-control-row{grid-template-columns:auto minmax(0,1fr)}.hue-brightness{grid-column:1/-1}.hue-room-card>summary{grid-template-columns:1fr}.hue-expand-hint{padding-left:3.2rem}}.beacon-device-list{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.85rem}.beacon-device-card{border:1px solid rgba(148,163,184,.22);border-radius:18px;background:rgba(15,23,42,.48);padding:.9rem}.beacon-device-card.present{border-color:rgba(134,239,172,.36);box-shadow:inset 0 0 0 1px rgba(34,197,94,.08)}.beacon-device-card.absent{border-color:rgba(148,163,184,.18);opacity:.86}.beacon-device-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.beacon-device-head strong{display:block;margin-bottom:.28rem}.beacon-device-head code{color:#bae6fd;font-size:.78rem}.beacon-device-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.72rem}.beacon-device-meta span{border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(15,23,42,.36);color:#cbd5e1;font-size:.78rem;line-height:1;padding:.3rem .55rem}.eye-monitor-list{display:grid;grid-gap:.85rem;gap:.85rem;margin-top:.85rem}.eye-monitor-card.detected{border-color:rgba(248,113,113,.58);box-shadow:inset 0 0 0 1px rgba(248,113,113,.12)}.eye-monitor-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.eye-monitor-rules{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0}.eye-monitor-rules span{border:1px solid rgba(56,189,248,.25);background:rgba(14,165,233,.1);border-radius:999px;padding:.28rem .62rem;color:#bae6fd;font-size:.84rem}.mode-switch-panel{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-color:rgba(56,189,248,.28);background:linear-gradient(135deg,rgba(14,165,233,.12),rgba(15,23,42,.72))}.mode-switch-panel h2{margin:.1rem 0 .25rem}.large-mode-toggle{padding:.35rem;border-radius:18px}.large-mode-toggle button{font-size:1rem;padding:.75rem 1.15rem;min-width:6rem}@media (max-width:720px){.mode-switch-panel{align-items:stretch;flex-direction:column}.large-mode-toggle{width:100%}.large-mode-toggle button{flex:1 1}}.graph-hover-line{stroke:rgba(191,219,254,.42);stroke-width:1.5;stroke-dasharray:6 6}.graph-hover-dot{fill:#f8fbff;stroke:#38bdf8;stroke-width:4;filter:drop-shadow(0 0 12px rgba(56,189,248,.75))}.graph-tooltip-box{fill:rgba(15,23,42,.96);stroke:rgba(125,211,252,.65);stroke-width:1}.graph-tooltip-value{fill:#f8fbff;font-size:15px;font-weight:800}.graph-tooltip-time{fill:#b7c7dc;font-size:11px}.graph-hover-capture{cursor:crosshair}.co2-presence-card{border-color:rgba(74,222,128,.28);background:linear-gradient(145deg,rgba(20,83,45,.22),rgba(15,23,42,.88))}.co2-confidence-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 10px;color:#c8d7e8;font-size:.86rem}.co2-presence-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin:10px 0}.co2-presence-metrics span{padding:8px;border:1px solid rgba(148,163,184,.14);border-radius:12px;background:rgba(2,6,23,.28);color:#9fb2c8;font-size:.78rem}.co2-presence-metrics strong{display:block;color:#f8fbff;font-size:.98rem}.stat-card-grid .co2-presence-card{grid-column:span 2;min-height:230px;display:grid;grid-template-rows:auto auto auto 1fr;align-content:start}.co2-presence-card .stat-top{justify-content:flex-start}.co2-presence-status{margin-top:10px;font-size:clamp(1.35rem,2.2vw,2rem);line-height:1.02;white-space:nowrap}.co2-presence-card .co2-confidence-row{margin:6px 0 8px}.co2-presence-card .co2-presence-metrics{grid-template-columns:repeat(6,minmax(58px,1fr));gap:6px;margin:6px 0 8px}.co2-presence-card .co2-presence-metrics span{padding:6px 7px;border-radius:10px;font-size:.7rem;line-height:1.15}.co2-presence-card .co2-presence-metrics strong{font-size:.88rem;line-height:1.1}.co2-presence-reason{margin:2px 0 0;font-size:.78rem;line-height:1.28;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width:860px){.stat-card-grid .co2-presence-card{grid-column:span 1}.co2-presence-card .co2-presence-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.dashboard-grid-bottom{grid-template-columns:repeat(3,minmax(150px,.7fr)) minmax(280px,1.1fr);align-items:start}.dashboard-grid-bottom .gauge-card,.dashboard-grid-bottom .info-card{min-height:220px;max-height:260px}.dashboard-grid-bottom .gauge-card{padding:14px}.dashboard-grid-bottom .gauge-card h3{margin-bottom:8px}.dashboard-grid-bottom .gauge{width:min(116px,100%);justify-self:center}.dashboard-grid-bottom .gauge span{font-size:1.75rem}.dashboard-grid-bottom .gauge-range{margin-top:6px}.compact-network-list li{grid-template-columns:minmax(92px,.8fr) minmax(0,1.2fr);padding:10px 0}.compact-network-list strong{text-align:right}@media (max-width:1320px){.dashboard-grid-bottom{grid-template-columns:repeat(2,minmax(0,1fr))}}.house-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.34fr);grid-gap:16px;gap:16px;align-items:stretch;overflow-anchor:none}.house-map-stage{--house-map-canvas-aspect:16/10;width:100%;aspect-ratio:var(--house-map-canvas-aspect);min-height:0;border-color:rgba(226,232,240,.52);background:radial-gradient(circle at center,rgba(15,23,42,.72),rgba(0,0,0,.94));overflow-anchor:none}.house-area{position:absolute;border:1.5px solid rgba(226,232,240,.42);box-shadow:inset 0 0 0 1px rgba(15,23,42,.42);color:rgba(248,250,252,.88);display:grid;place-items:start;padding:7px;text-shadow:0 1px 2px rgba(0,0,0,.55)}.house-area strong{font-size:.78rem}.house-imported-room{position:absolute;left:56%;top:33%;width:36%;transform-origin:center;filter:drop-shadow(0 18px 26px rgba(0,0,0,.34))}.house-imported-room>span{display:block;margin-top:4px;color:#bfdbfe;font-size:.72rem;font-weight:800;text-align:center}.room-map-card-compact{margin:0;gap:0}.room-map-card-compact .room-map-stage{width:100%;min-height:0;border-width:1px;border-radius:4px}.room-map-card-compact .room-map-meta{display:none}.house-import-empty{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:#64748b;font-weight:800}.house-wall{height:5px;border-radius:999px;background:rgba(15,23,42,.96);border:1px solid rgba(226,232,240,.58);box-shadow:0 0 0 1px rgba(2,6,23,.8)}.house-furniture,.house-wall{position:absolute;transform-origin:center}.house-furniture{display:grid;place-items:center;align-content:center;grid-gap:1px;gap:1px;border:1.4px solid rgba(226,232,240,.62);border-radius:8px;background:rgba(203,213,225,.28);color:#f8fafc;font-size:1rem;text-shadow:0 1px 2px rgba(0,0,0,.6)}.house-furniture small{max-width:100%;padding:0 3px;overflow:hidden;color:rgba(248,250,252,.78);font-size:.56rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.house-map-tools{display:grid;grid-gap:10px;gap:10px;align-content:start}.house-tool-card{border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:12px;background:rgba(15,23,42,.48)}.house-tool-card strong{display:block;margin-bottom:8px;color:#eaf4ff}.furniture-palette{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);grid-gap:10px;gap:10px;margin-top:14px;overflow-x:auto;padding:10px 0 2px}.furniture-palette button{display:grid;place-items:center;grid-gap:8px;gap:8px;min-height:86px;border-radius:16px;background:rgba(15,23,42,.72);color:#e5edf7}.furniture-palette button.active{border-color:rgba(56,189,248,.7);background:rgba(14,116,144,.36)}.furniture-palette span{display:grid;place-items:center;width:48px;height:36px;border-radius:10px;background:rgba(226,232,240,.12);font-size:1.3rem}.furniture-palette em{font-size:.75rem;font-style:normal;line-height:1.1;text-align:center}@media (max-width:980px){.house-map-layout{grid-template-columns:1fr}.house-map-stage{min-height:420px}}.blank-house-map .house-imported-room{left:50%;top:50%}.house-empty-hint{position:absolute;inset:0;display:grid;place-items:center;align-content:center;grid-gap:6px;gap:6px;color:#94a3b8;text-align:center;pointer-events:none}.house-empty-hint strong{color:#e5edf7;font-size:1.25rem}.house-empty-hint span{max-width:420px}.house-mode-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;padding:5px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:rgba(15,23,42,.6)}.house-mode-tabs button{border-radius:999px;background:transparent;color:#c8d7e8}.house-mode-tabs button.active{background:linear-gradient(135deg,#38bdf8,#6366f1);color:white}.editable-map-object{cursor:move;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.editable-map-object.selected{outline:2px solid rgba(56,189,248,.95);outline-offset:3px;box-shadow:0 0 0 4px rgba(14,165,233,.18),0 18px 30px rgba(0,0,0,.32)}.readable-map-label{position:relative;z-index:5;transform-origin:center;pointer-events:none}.resize-handle,.rotate-handle{position:absolute;z-index:12;display:grid;place-items:center;width:16px;height:16px;border:1px solid rgba(248,250,252,.92);border-radius:5px;background:rgba(15,23,42,.92);box-shadow:0 4px 12px rgba(0,0,0,.35);color:#f8fafc;font-size:.68rem;line-height:1;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.resize-handle{right:-8px;bottom:-8px;cursor:nwse-resize}.rotate-handle{left:-8px;top:-8px;cursor:-webkit-grab;cursor:grab;border-radius:999px}.house-wall .resize-handle{right:-8px;bottom:-6px}.house-wall .rotate-handle{left:-8px;top:-8px}.house-map-stage{touch-action:none}.floorplan-section,.floorplan-stage{overflow-anchor:none}.house-device-room-list{display:grid;grid-gap:8px;gap:8px;margin-top:10px}.house-device-room-list button{display:grid;grid-gap:3px;gap:3px;justify-items:start;padding:10px;border-radius:12px;text-align:left}.house-device-room-list button:disabled{opacity:.58}.house-device-room-list span{font-weight:850}.house-device-room-list em{color:#93a4b8;font-size:.74rem;font-style:normal}.floorplan-section{scroll-margin-top:24px}.floorplan-stage{width:100%;aspect-ratio:var(--house-map-canvas-aspect);min-height:0}.floorplan-object{pointer-events:none}.floorplan-room-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;border:0;background:transparent;color:inherit;pointer-events:auto;cursor:zoom-in}.floorplan-room-button:focus-visible,.floorplan-room-button:hover{outline:2px solid rgba(56,189,248,.95);outline-offset:4px;filter:drop-shadow(0 18px 28px rgba(14,165,233,.24))}.floorplan-room-focus .room-map-card{margin:0}.floorplan-room-focus .room-map-stage{min-height:620px}.ota-deploy-center .ota-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:1rem;gap:1rem;margin:1rem 0}.form-card{display:grid;grid-gap:.85rem;gap:.85rem}.form-card label{display:grid;grid-gap:.35rem;gap:.35rem;color:var(--muted);font-size:.9rem}.form-card input,.form-card select,.form-card textarea{width:100%}.form-card textarea{min-height:5rem;resize:vertical}.check-list{display:grid;grid-gap:.5rem;gap:.5rem;max-height:280px;overflow:auto;padding:.25rem;border:1px solid var(--border);border-radius:14px}.check-row{display:flex!important;grid-template-columns:none!important;align-items:center;gap:.65rem!important;padding:.55rem .65rem;border-radius:12px;background:rgba(148,163,184,.08)}.check-row input[type=checkbox]{width:auto}.check-row span{display:grid;grid-gap:.1rem;gap:.1rem}.check-row small{color:var(--muted)}.inline-check{align-items:flex-start}.status-line.good{color:var(--good);font-weight:700}button.danger{background:#dc2626;border-color:#ef4444;color:white}.compact-table table{width:100%}