.device-card.svelte-vl2zxm{background:#fff;border:1px solid var(--falcon-border-color, #e3e6ef);border-radius:12px;padding:20px 22px;display:flex;flex-direction:column;gap:14px;cursor:default;transition:border-color .12s,box-shadow .12s;min-height:200px}.device-card.svelte-vl2zxm:hover{border-color:#c7ccda;box-shadow:0 2px 10px -4px #101f541a}.device-card.card-warn.svelte-vl2zxm{border-color:#fcd34d;background:#fffbeb}.device-card.card-warn.svelte-vl2zxm:hover{border-color:#f59e0b}.device-card.card-err.svelte-vl2zxm{border-color:#fbc9c9;background:#fff8f8}.device-card.card-err.svelte-vl2zxm:hover{border-color:#ef4444}.c-head.svelte-vl2zxm{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.c-info.svelte-vl2zxm{min-width:0;flex:1}.c-name.svelte-vl2zxm{font-size:14px;font-weight:600;color:var(--falcon-gray-900, #0b1220);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.c-sub.svelte-vl2zxm{font-size:11px;color:var(--falcon-gray-500, #6b7489);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}.c-right.svelte-vl2zxm{display:flex;align-items:center;gap:4px;flex-shrink:0}.c-badge.svelte-vl2zxm{font-size:10.5px;font-weight:600;padding:2px 8px;border-radius:999px;line-height:1.4;white-space:nowrap;letter-spacing:.02em;flex-shrink:0}.badge-ok.svelte-vl2zxm{color:#10b981;background:#10b9811a}.badge-err.svelte-vl2zxm{color:#ef4444;background:#ef44441a}.badge-warn.svelte-vl2zxm{color:#d97706;background:#f59e0b1f}.err-line.svelte-vl2zxm{font-size:12px;color:#ef4444;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;background:#ef44440f}.err-icon.svelte-vl2zxm{font-size:12px;flex-shrink:0}.warn-line.svelte-vl2zxm{font-size:12px;color:#d97706;display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:6px;background:#f59e0b14}.warn-icon.svelte-vl2zxm{font-size:12px;flex-shrink:0}.aqi.svelte-vl2zxm{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:10px;background:var(--falcon-gray-100, #f7f8fb);border:1px solid var(--falcon-border-color, #e3e6ef)}.aqi-g1.svelte-vl2zxm{background:#10b98112;border-color:#10b98133}.aqi-g2.svelte-vl2zxm{background:#f59e0b14;border-color:#f59e0b38}.aqi-g3.svelte-vl2zxm{background:#ef444412;border-color:#ef444433}.aqi.svelte-vl2zxm .ring:where(.svelte-vl2zxm){width:44px;height:44px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:700;font-size:15px;color:#fff;background:#c7ccda;font-variant-numeric:tabular-nums}.aqi-g1.svelte-vl2zxm .ring:where(.svelte-vl2zxm){background:#10b981}.aqi-g2.svelte-vl2zxm .ring:where(.svelte-vl2zxm){background:#f59e0b}.aqi-g3.svelte-vl2zxm .ring:where(.svelte-vl2zxm){background:#ef4444}.aqi.svelte-vl2zxm .info:where(.svelte-vl2zxm){min-width:0}.aqi.svelte-vl2zxm .info:where(.svelte-vl2zxm) .t:where(.svelte-vl2zxm){font-size:13px;font-weight:700;color:var(--falcon-gray-900)}.aqi.svelte-vl2zxm .info:where(.svelte-vl2zxm) .s:where(.svelte-vl2zxm){font-size:11.5px;color:var(--falcon-gray-600);margin-top:1px}.mgrid.svelte-vl2zxm{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.mc.svelte-vl2zxm{display:flex;flex-direction:column;gap:6px;padding:9px 10px 10px;border:1px solid var(--falcon-border-color, #e3e6ef);border-radius:8px;background:#fff}.mc.oor.svelte-vl2zxm{background:#ef44440d;border-color:#ef444447}.mc.na.svelte-vl2zxm{opacity:.55}.mc-l.svelte-vl2zxm{font-size:10px;letter-spacing:.03em;font-weight:700;color:var(--falcon-gray-500);display:flex;align-items:center;gap:5px}.mc-l.svelte-vl2zxm .swatch:where(.svelte-vl2zxm){width:7px;height:7px;border-radius:2px;flex-shrink:0}.mc-v.svelte-vl2zxm{font-size:16px;font-weight:700;letter-spacing:-.02em;color:var(--falcon-gray-900);line-height:1;display:flex;align-items:baseline;gap:2px;font-variant-numeric:tabular-nums}.mc-v.svelte-vl2zxm i:where(.svelte-vl2zxm){font-style:normal;font-size:9.5px;color:var(--falcon-gray-400);font-weight:500}.mc.oor.svelte-vl2zxm .mc-v:where(.svelte-vl2zxm){color:#ef4444}.mbar.svelte-vl2zxm{position:relative;height:4px;border-radius:2px;background:var(--falcon-gray-200, #e4e7ef);margin-top:1px}.mbar.svelte-vl2zxm .norm:where(.svelte-vl2zxm){position:absolute;top:0;bottom:0;border-radius:2px;opacity:.4}.mbar.svelte-vl2zxm .mk:where(.svelte-vl2zxm){position:absolute;top:-2px;width:2.5px;height:8px;border-radius:1px;background:var(--falcon-gray-700, #2a3547);transform:translate(-1px)}.mc.oor.svelte-vl2zxm .mbar:where(.svelte-vl2zxm) .mk:where(.svelte-vl2zxm){background:#ef4444}.c-foot.svelte-vl2zxm{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:10.5px;color:#98a0b3;padding-top:10px;border-top:1px dashed var(--falcon-border-color, #e3e6ef);font-variant-numeric:tabular-nums}.c-zone.svelte-vl2zxm{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.c-zone.svelte-vl2zxm svg:where(.svelte-vl2zxm){width:11px;height:11px;flex-shrink:0;opacity:.55}.fresh.svelte-vl2zxm{display:inline-flex;align-items:center;gap:5px;color:#10b981;white-space:nowrap;flex-shrink:0}.fresh-dot.svelte-vl2zxm{width:5px;height:5px;border-radius:50%;background:#10b981;animation:svelte-vl2zxm-pulse 1.8s infinite;flex-shrink:0}@keyframes svelte-vl2zxm-pulse{0%,to{box-shadow:0 0 0 3px #10b9812e}50%{box-shadow:0 0 0 6px #10b98105}}[data-bs-theme=dark] .device-card.svelte-vl2zxm{background:var(--falcon-card-bg);border-color:var(--falcon-border-color)}[data-bs-theme=dark] .device-card.svelte-vl2zxm:hover{border-color:#ffffff2e;box-shadow:0 2px 12px -4px #00000073}[data-bs-theme=dark] .device-card.card-warn.svelte-vl2zxm{border-color:#fcd34d59;background:#f59e0b12}[data-bs-theme=dark] .device-card.card-warn.svelte-vl2zxm:hover{border-color:#f59e0b8c}[data-bs-theme=dark] .device-card.card-err.svelte-vl2zxm{border-color:#ef44444d;background:#ef444412}[data-bs-theme=dark] .device-card.card-err.svelte-vl2zxm:hover{border-color:#ef444480}[data-bs-theme=dark] .badge-ok.svelte-vl2zxm{color:#4ade80;background:#4ade801f}[data-bs-theme=dark] .badge-err.svelte-vl2zxm{color:#f87171;background:#f871711f}[data-bs-theme=dark] .badge-warn.svelte-vl2zxm{color:#fbbf24;background:#fbbf2424}[data-bs-theme=dark] .err-line.svelte-vl2zxm{color:#f87171;background:#ef44441f}[data-bs-theme=dark] .warn-line.svelte-vl2zxm{color:#fbbf24;background:#f59e0b1f}[data-bs-theme=dark] .aqi.svelte-vl2zxm{background:var(--hy-paper);border-color:var(--falcon-border-color)}[data-bs-theme=dark] .aqi-g1.svelte-vl2zxm{background:#4ade8014;border-color:#4ade8040}[data-bs-theme=dark] .aqi-g2.svelte-vl2zxm{background:#fbbf241a;border-color:#fbbf2447}[data-bs-theme=dark] .aqi-g3.svelte-vl2zxm{background:#f871711a;border-color:#f8717140}[data-bs-theme=dark] .mc.svelte-vl2zxm{background:var(--hy-paper);border-color:var(--falcon-border-color)}[data-bs-theme=dark] .mc.oor.svelte-vl2zxm{background:#f8717114;border-color:#f871714d}[data-bs-theme=dark] .mbar.svelte-vl2zxm{background:var(--falcon-border-color)}[data-bs-theme=dark] .c-foot.svelte-vl2zxm{border-top-color:var(--falcon-border-color)}[data-bs-theme=dark] .fresh.svelte-vl2zxm{color:#4ade80}[data-bs-theme=dark] .fresh-dot.svelte-vl2zxm{background:#4ade80}.btn-reveal.dropdown-toggle.svelte-vl2zxm:before{display:none}.alarm-banner.svelte-1lovq1b{display:flex;align-items:center;gap:14px;padding:12px 16px;background:linear-gradient(90deg,#fff1f1,#fff8f8);border:1px solid #fbc9c9;border-radius:12px;margin-bottom:16px;position:relative;overflow:hidden}.alarm-banner.svelte-1lovq1b:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:#ef4444}.ab-ic.svelte-1lovq1b{width:36px;height:36px;border-radius:10px;flex-shrink:0;background:#ef4444;color:#fff;display:grid;place-items:center;box-shadow:0 4px 12px -3px #ef444480}.ab-ic.svelte-1lovq1b svg:where(.svelte-1lovq1b){width:18px;height:18px}.ab-body.svelte-1lovq1b{flex:1;min-width:0}.ab-top.svelte-1lovq1b{display:flex;align-items:center;gap:8px}.ab-cnt.svelte-1lovq1b{font-size:13.5px;font-weight:800;color:#991b1b}.ab-live.svelte-1lovq1b{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:700;color:#ef4444;background:#fff;border:1px solid #fbc9c9;padding:1px 7px;border-radius:999px}.ab-pd.svelte-1lovq1b{width:5px;height:5px;border-radius:50%;background:#ef4444;animation:svelte-1lovq1b-ab-pulse 1.2s infinite}@keyframes svelte-1lovq1b-ab-pulse{0%,to{box-shadow:0 0 0 2px #ef444433}50%{box-shadow:0 0 0 5px #ef44440a}}.ab-msg.svelte-1lovq1b{font-size:12.5px;color:#374151;margin-top:3px;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ab-msg.svelte-1lovq1b b:where(.svelte-1lovq1b){color:#991b1b;font-weight:700}.ab-dot.svelte-1lovq1b{color:#d1d5db;margin:0 6px}.ab-act.svelte-1lovq1b{display:flex;align-items:center;gap:6px;flex-shrink:0}.ab-view.svelte-1lovq1b{font-size:12.5px;font-weight:700;color:#fff;background:#ef4444;padding:7px 13px;border-radius:8px;white-space:nowrap;text-decoration:none;display:inline-block}.ab-view.svelte-1lovq1b:hover{background:#dc2626;color:#fff}.ab-x.svelte-1lovq1b{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:#ef4444;background:transparent;border:none;cursor:pointer;padding:0}.ab-x.svelte-1lovq1b:hover{background:#ef44441a}.ab-x.svelte-1lovq1b svg:where(.svelte-1lovq1b){width:15px;height:15px}.page-head.svelte-1lovq1b{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px;margin-top:8px;flex-wrap:wrap}.page-title.svelte-1lovq1b{margin:0;font-size:20px;font-weight:700;letter-spacing:-.015em}.page-sub.svelte-1lovq1b{margin:4px 0 0;color:var(--falcon-gray-600);font-size:13px}.summary-row.svelte-1lovq1b{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:20px}@media (max-width: 1100px){.summary-row.svelte-1lovq1b{grid-template-columns:repeat(3,1fr)}}@media (max-width: 700px){.summary-row.svelte-1lovq1b{grid-template-columns:repeat(2,1fr)}}.sm-card.svelte-1lovq1b{background:var(--hy-paper);border:1px solid var(--falcon-border-color);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:5px}.sm-label.svelte-1lovq1b{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--falcon-gray-500);font-weight:600}.sm-icon.svelte-1lovq1b{width:20px;height:20px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}.sm-total.svelte-1lovq1b .sm-icon:where(.svelte-1lovq1b){background:var(--b50);color:#2f67f5}.sm-issue.svelte-1lovq1b .sm-icon:where(.svelte-1lovq1b){background:#ef44441a;color:#ef4444}.sm-warn.svelte-1lovq1b .sm-icon:where(.svelte-1lovq1b){background:#f59e0b1a;color:#d97706}.sm-co2.svelte-1lovq1b .sm-icon:where(.svelte-1lovq1b){background:#2f67f51a;color:#2f67f5}.sm-tvoc.svelte-1lovq1b .sm-icon:where(.svelte-1lovq1b){background:#8b5cf61a;color:#8b5cf6}.sm-value.svelte-1lovq1b{font-size:24px;font-weight:700;letter-spacing:-.02em;line-height:1.1;color:var(--falcon-gray-900);font-variant-numeric:tabular-nums}.sm-unit.svelte-1lovq1b{font-size:12px;color:var(--falcon-gray-400);font-weight:500;margin-left:3px}.sm-sub.svelte-1lovq1b{font-size:11px;color:var(--falcon-gray-400)}.filter-bar.svelte-1lovq1b{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.search-box.svelte-1lovq1b{display:flex;align-items:center;gap:8px;flex:1;min-width:200px;max-width:300px;padding-bottom:6px;border-bottom:1px solid var(--falcon-border-color);transition:border-color .12s;cursor:text}.search-box.svelte-1lovq1b:focus-within{border-bottom-color:var(--falcon-gray-700)}.search-icon.svelte-1lovq1b{font-size:13px;color:var(--falcon-gray-400);flex-shrink:0}.search-input.svelte-1lovq1b{border:none;outline:none;background:transparent;flex:1;font-size:13.5px;color:var(--falcon-gray-900);font-family:inherit;padding:0}.search-input.svelte-1lovq1b::placeholder{color:var(--falcon-gray-400)}.chips.svelte-1lovq1b{display:flex;gap:4px}.chip.svelte-1lovq1b{padding:5px 12px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--falcon-gray-600);background:transparent;border:1px solid transparent;cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.chip.svelte-1lovq1b:hover{background:var(--falcon-gray-100);color:var(--falcon-gray-900)}.chip.on.svelte-1lovq1b{background:var(--falcon-gray-900);color:#fff;font-weight:600}[data-bs-theme=dark] .chip.on.svelte-1lovq1b{background:#3b6fe0;color:#fff}.chip.chip-warn.svelte-1lovq1b{color:#d97706;border-color:#f59e0b66}.chip.chip-warn.svelte-1lovq1b:hover{background:#f59e0b14;color:#b45309}.chip.chip-warn.on.svelte-1lovq1b{background:#d97706;color:#fff;border-color:transparent}.chip-badge.svelte-1lovq1b{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:999px;font-size:10px;font-weight:700;background:#d97706;color:#fff;line-height:1;margin-left:2px}.chip.on.svelte-1lovq1b .chip-badge:where(.svelte-1lovq1b){background:#ffffff4d;color:#fff}.chip.chip-offline.svelte-1lovq1b{color:#ef4444;border-color:#ef444466}.chip.chip-offline.svelte-1lovq1b:hover{background:#ef44440f;color:#dc2626}.chip.chip-offline.on.svelte-1lovq1b{background:#ef4444;color:#fff;border-color:transparent}.chip-badge-offline.svelte-1lovq1b{background:#ef4444}.chip.chip-offline.on.svelte-1lovq1b .chip-badge:where(.svelte-1lovq1b){background:#ffffff4d}.filter-count.svelte-1lovq1b{font-size:11px;color:var(--falcon-gray-400);font-variant-numeric:tabular-nums;margin-left:auto}.cards-grid.svelte-1lovq1b{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px;margin-bottom:24px}.empty-state.svelte-1lovq1b{display:flex;flex-direction:column;align-items:center;padding:48px 20px;color:var(--falcon-gray-500);text-align:center;gap:8px}[data-bs-theme=dark] .alarm-banner.svelte-1lovq1b{background:linear-gradient(90deg,var(--err-bg),var(--err-bg));border-color:#ef444459}[data-bs-theme=dark] .ab-cnt.svelte-1lovq1b{color:var(--err)}[data-bs-theme=dark] .ab-live.svelte-1lovq1b{background:var(--hy-paper);border-color:#ef444459}[data-bs-theme=dark] .ab-msg.svelte-1lovq1b{color:var(--k7)}[data-bs-theme=dark] .ab-msg.svelte-1lovq1b b:where(.svelte-1lovq1b){color:var(--err)}
