:root{--bg:#f5f5f5;--surface:#fff;--surface-hover:#f3f4f6;--border:#ddd;--border-soft:#e0e0e0;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff6ff;--primary-tint:#e8f0fe;--primary-tint-strong:#bfdbfe;--danger:#dc2626;--danger-hover:#b91c1c;--danger-soft:#fef2f2;--danger-glow:#dc262673;--info-glow:#3b82f673;--text:#1f2937;--text-muted:#6b7280;--text-faint:#9ca3af;--text-dim:#aaa;--text-strong:#111827;--text-mid:#555;--on-primary:#fff;--on-primary-alpha:#ffffff80;--sent:#9ca3af;--delivered:#f59e0b;--read:#22c55e;--accent-red:#e53e3e;--accent-red-inner:#f8b400;--accent-blue:#3b82f6;--accent-orange:#c05020;--control-off:#ccc;--shadow-sm:0 1px 2px #0f14190d;--shadow-md:0 4px 12px #00000026;--shadow-lg:0 12px 32px #00000024;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--radius-sm:4px;--radius-md:6px;--radius-lg:12px;--radius-pill:999px;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-lg:15px;--text-xl:18px;--type-notification:#6b7280;--type-notification-soft:#f3f4f6;--type-action:#2563eb;--type-action-soft:#eff6ff;--type-alarm:#dc2626;--type-alarm-soft:#fef2f2;--rail:#e5e7eb;--selected-row:#eff6ff;--active-row:#e8f0fe;--active-bar:#2563eb;--bldg-wall:#e3ded7;--bldg-wall-dark:#ddd7cf;--bldg-outline:#c5bfb7;--bldg-window:#f5f2ee;--bldg-window-outline:#d0ccc5;--bldg-detail:#c0b9b0;--bldg-ground:#d9d3cb;--bldg-baseline:#bbb;--bldg-floor-cell:#f5f5f5;--bldg-floor-border:#ccc;--bldg-person:#999;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f1419;--surface:#1a1f29;--surface-hover:#242a36;--border:#2d3441;--border-soft:#252b36;--primary:#3b82f6;--primary-hover:#2563eb;--primary-soft:#1e2a44;--primary-tint:#1e3a8a;--primary-tint-strong:#2563eb;--danger:#ef4444;--danger-hover:#dc2626;--danger-soft:#3f1a1a;--danger-glow:#ef444473;--info-glow:#60a5fa73;--text:#ecf0f7;--text-muted:#b3bcca;--text-faint:#7a8392;--text-dim:#4b5563;--text-strong:#f6f8fc;--text-mid:#d1d5db;--on-primary:#fff;--on-primary-alpha:#ffffff80;--sent:#8893a3;--delivered:#fbbf24;--read:#4ade80;--accent-red:#ef4444;--accent-red-inner:#fbbf24;--accent-blue:#60a5fa;--accent-orange:#f97316;--control-off:#4b5563;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 12px #0009;--shadow-lg:0 12px 32px #000000b3;--type-notification:#b3bcca;--type-notification-soft:#242a36;--type-action:#60a5fa;--type-action-soft:#1e2a44;--type-alarm:#ef4444;--type-alarm-soft:#3f1a1a;--rail:#2d3441;--selected-row:#1e2a44;--active-row:#1e3a8a;--active-bar:#3b82f6;--bldg-wall:#2a2e38;--bldg-wall-dark:#1e2128;--bldg-outline:#4b5563;--bldg-window:#3b4250;--bldg-window-outline:#6b7280;--bldg-detail:#6b7280;--bldg-ground:#1f2937;--bldg-baseline:#4b5563;--bldg-floor-cell:#242a36;--bldg-floor-border:#4b5563;--bldg-person:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app{min-height:100vh;display:flex}.rail{background:var(--surface);border-right:1px solid var(--border);z-index:10;flex-direction:column;flex-shrink:0;width:60px;padding:12px 0;transition:width .2s;display:flex;position:relative;overflow:hidden}.rail:hover{width:220px}.rail-section{border-bottom:1px solid var(--border-soft);flex-direction:column;margin-bottom:6px;padding-bottom:6px;display:flex}.rail-section:last-of-type{border-bottom:none}.rail-section-head{color:var(--text-muted);opacity:0;align-items:center;gap:14px;height:0;padding:0 18px;transition:height .18s,opacity .15s,padding .18s;display:flex;overflow:hidden}.rail:hover .rail-section-head{opacity:1;height:38px;padding:6px 18px}.rail-section-icon{width:26px;color:var(--text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.rail-section-icon svg{width:22px;height:22px}.rail-section-title{font-size:var(--text-md);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--text);font-weight:700}.rail-section-items{flex-direction:column;display:flex}.rail-item{color:var(--text);font-size:var(--text-md);align-items:center;gap:10px;height:32px;padding:7px 18px;text-decoration:none;transition:background .12s;display:flex;position:relative}.rail-item:hover{background:var(--surface-hover)}.rail-item.active{background:var(--active-row);color:var(--primary);font-weight:600}.rail-item.active:before{content:"";background:var(--active-bar);border-radius:0 2px 2px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.rail-item-icon{width:22px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.rail-item.active .rail-item-icon{color:var(--primary)}.rail-item-label{white-space:nowrap;opacity:0;transition:opacity .15s;overflow:hidden}.rail:hover .rail-item-label{opacity:1}.rail-spacer{flex:1}.rail-foot{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:8px;padding:10px 14px;display:flex}.rail-avatar{background:var(--primary);width:32px;height:32px;color:var(--on-primary);font-size:var(--text-md);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.rail-foot-name{opacity:0;flex:1;min-width:0;transition:opacity .15s}.rail:hover .rail-foot-name{opacity:1}.rail-foot-display{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-weight:600;overflow:hidden}.rail-foot-role{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:10px}.rail-foot-actions{opacity:0;flex-shrink:0;gap:4px;transition:opacity .15s;display:flex}.rail:hover .rail-foot-actions{opacity:1;pointer-events:auto}.rail:not(:hover) .rail-foot-actions{pointer-events:none}.rail-foot-btn{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-family:inherit;transition:all .15s;display:inline-flex}.rail-foot-btn:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border)}.theme-toggle{border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;font-size:var(--text-md);color:var(--text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-family:inherit;line-height:1;transition:all .15s;display:inline-flex}.theme-toggle:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border)}.coming-soon{color:var(--text-muted);border:1px dashed var(--border);background:var(--surface);border-radius:6px;margin-top:.5rem;padding:1rem}.main{flex:1;max-width:1400px;padding:1.5rem}.main h1{margin-bottom:1rem;font-size:1.3rem}.form-group{margin-bottom:1rem}.form-group label{margin-bottom:.25rem;font-size:.85rem;font-weight:600;display:block}input[type=text],input[type=number],textarea,select{border:1px solid var(--border);border-radius:4px;width:100%;padding:.5rem;font-size:.9rem}textarea{resize:vertical;min-height:80px}.btn{cursor:pointer;color:var(--on-primary);background:var(--primary);border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;display:inline-block}.btn:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger)}.btn-danger:hover{background:var(--danger-hover)}.btn-sm{padding:.25rem .5rem;font-size:.8rem}.btn+.btn{margin-left:.5rem}.checkbox-grid{flex-wrap:wrap;gap:.5rem;display:flex}.checkbox-grid label{cursor:pointer;align-items:center;gap:.25rem;font-size:.9rem;font-weight:400;display:flex}table{border-collapse:collapse;background:var(--surface);border-radius:4px;width:100%}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.5rem .75rem;font-size:.9rem}th{background:var(--bg);font-weight:600}.badge{color:var(--on-primary);border-radius:10px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-sent{background:var(--sent)}.badge-delivered{background:var(--delivered)}.badge-read{background:var(--read)}.card{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:1rem;padding:1rem}.row{gap:1rem;display:flex}.row>*{flex:1}.svg-fill-surface{fill:var(--surface)}.svg-fill-bldg-wall{fill:var(--bldg-wall)}.svg-fill-bldg-wall-dk{fill:var(--bldg-wall-dark)}.svg-fill-bldg-window{fill:var(--bldg-window)}.svg-fill-bldg-detail{fill:var(--bldg-detail)}.svg-fill-bldg-ground{fill:var(--bldg-ground)}.svg-fill-floor-cell{fill:var(--bldg-floor-cell)}.svg-fill-primary{fill:var(--primary)}.svg-fill-primary-tint{fill:var(--primary-tint)}.svg-fill-primary-tint-s{fill:var(--primary-tint-strong)}.svg-fill-accent-red{fill:var(--accent-red)}.svg-fill-accent-blue{fill:var(--accent-blue)}.svg-fill-accent-orange{fill:var(--accent-orange)}.svg-fill-on-primary{fill:var(--on-primary)}.svg-fill-on-primary-a{fill:var(--on-primary-alpha)}.svg-fill-accent-red-in{fill:var(--accent-red-inner)}.svg-fill-text-mid{fill:var(--text-mid)}.svg-fill-text-strong{fill:var(--text-strong)}.svg-fill-text-faint{fill:var(--text-faint)}.svg-fill-text-dim{fill:var(--text-dim)}.svg-fill-danger-glow{fill:var(--danger-glow)}.svg-fill-info-glow{fill:var(--info-glow)}.svg-stroke-bldg-outline{stroke:var(--bldg-outline)}.svg-stroke-bldg-detail{stroke:var(--bldg-detail)}.svg-stroke-bldg-win{stroke:var(--bldg-window-outline)}.svg-stroke-bldg-base{stroke:var(--bldg-baseline)}.svg-stroke-primary{stroke:var(--primary)}.svg-stroke-row-border{stroke:var(--bldg-floor-border)}.svg-stroke-row-divider{stroke:var(--border-soft)}.svg-stroke-on-primary{stroke:var(--on-primary)}@media (width<=720px){.rail{width:52px}.rail:hover{width:200px}.rail-section-head,.rail-item{padding-left:14px;padding-right:14px}}@media (width<=900px){.page-scope .listpage-head{flex-wrap:wrap;gap:8px}.page-scope .listpage-head-actions{width:100%;margin-left:0}.page-scope .listpage-search{flex:1;width:auto}}@media (width<=640px){.page-scope .listpage-row-time{display:none}.page-scope .listpage-tabs{padding:4px 14px 0}.page-scope .listpage-head{padding:14px 16px 10px}.page-scope .listpage-body{padding:12px 16px}}.login-root{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{background:var(--surface);border:1px solid var(--border);width:100%;max-width:380px;box-shadow:var(--shadow-md);border-radius:8px;flex-direction:column;padding:2rem;display:flex}.login-card h1{margin-bottom:.25rem;font-size:1.3rem}.login-sub{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.login-card label{margin-top:.75rem;margin-bottom:.25rem;font-size:.8rem;font-weight:600}.login-card input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:4px;padding:.55rem;font-size:.95rem}.login-card input:focus{outline:2px solid var(--primary);outline-offset:-1px;border-color:#0000}.login-error{background:var(--danger-soft);color:var(--danger);border-radius:4px;margin-top:.75rem;padding:.5rem .75rem;font-size:.85rem}.login-card .btn{margin-top:1.25rem;padding:.65rem;font-size:.95rem}.auth-loading{text-align:center;color:var(--text-muted);padding:2rem}.inbox-scope{background:var(--bg);min-width:0;height:100vh;margin:-1.5rem;display:flex}@media (width<=1024px){.inbox-scope .itr{width:260px}}@media (width<=720px){.inbox-scope .itr{display:none}}.inbox-scope .itr{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:320px;display:flex}.inbox-scope .itr-head{border-bottom:1px solid var(--border-soft);flex-direction:column;gap:10px;padding:14px 16px 12px;display:flex}.inbox-scope .itr-title-row{justify-content:space-between;align-items:center;display:flex}.inbox-scope .itr-title{font-size:var(--text-lg);letter-spacing:-.005em;color:var(--text-strong);font-weight:600}.inbox-scope .itr-counter{font-size:var(--text-xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.inbox-scope .itr-counter-pill{background:var(--primary-soft);color:var(--primary);border-radius:var(--radius-pill);padding:2px 8px;font-weight:500}.inbox-scope .itr-counter-pill b{font-weight:700}.inbox-scope .itr-search{background:var(--surface-hover);border-radius:var(--radius-md);color:var(--text-muted);border:1px solid #0000;align-items:center;gap:8px;padding:7px 10px;transition:border-color .15s,background .15s;display:flex}.inbox-scope .itr-search:focus-within{border-color:var(--primary);background:var(--surface)}.inbox-scope .itr-search input{min-width:0;font:inherit;color:var(--text);font-size:var(--text-md);background:0 0;border:none;outline:none;flex:1}.inbox-scope .itr-search input::placeholder{color:var(--text-faint)}.inbox-scope .itr-search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px;display:flex}.inbox-scope .itr-search-clear:hover{color:var(--text);background:var(--surface-hover)}.inbox-scope .itr-scope{background:var(--surface-hover);border-radius:var(--radius-md);gap:4px;padding:3px;display:flex}.inbox-scope .itr-scope-btn{font-size:var(--text-xs);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-family:inherit;font-weight:500;transition:all .15s;display:flex}.inbox-scope .itr-scope-btn:hover{color:var(--text)}.inbox-scope .itr-scope-btn.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.inbox-scope .itr-scope-dot{border-radius:50%;width:6px;height:6px}.inbox-scope .itr-list{background:var(--surface);flex:1;padding:6px 0 12px;overflow:auto}.inbox-scope .itr-list-rule{background:var(--border-soft);height:1px;margin:10px 16px 4px;position:relative}.inbox-scope .itr-list-rule span{background:var(--surface);letter-spacing:.14em;color:var(--text-faint);padding-right:8px;font-size:9px;font-weight:700;position:absolute;top:50%;left:0;transform:translateY(-50%)}.inbox-scope .itr-row{cursor:pointer;outline:none;align-items:center;gap:7px;height:32px;padding-right:12px;transition:background .12s;display:flex;position:relative}.inbox-scope .itr-rail{background:var(--rail);opacity:.55;width:1px;position:absolute;top:0;bottom:0}.inbox-scope .itr-row:hover{background:var(--surface-hover)}.inbox-scope .itr-row:focus-visible{box-shadow:inset 0 0 0 2px var(--primary)}.inbox-scope .itr-row.active{background:var(--active-row)}.inbox-scope .itr-row.selected{background:var(--selected-row)}.inbox-scope .itr-row.active.selected{background:var(--active-row)}.inbox-scope .itr-row.active:before{content:"";background:var(--active-bar);border-radius:0 2px 2px 0;width:3px;position:absolute;top:0;bottom:0;left:0}.inbox-scope .itr-check{border:1.5px solid var(--text-faint);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;padding:0;transition:all .15s;display:flex}.inbox-scope .itr-check:hover{border-color:var(--primary)}.inbox-scope .itr-check.on,.inbox-scope .itr-check.indeterminate{background:var(--primary);border-color:var(--primary)}.inbox-scope .itr-check.indeterminate:after{content:"";background:var(--on-primary);border-radius:1px;width:7px;height:1.5px;display:block}.inbox-scope .itr-chev{cursor:pointer;width:14px;height:14px;color:var(--text-faint);background:0 0;border:none;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:transform .15s;display:flex}.inbox-scope .itr-chev:hover:not(:disabled){color:var(--text)}.inbox-scope .itr-chev:disabled{cursor:default}.inbox-scope .itr-chev.open{transform:rotate(90deg)}.inbox-scope .itr-icon{color:var(--text-muted);flex-shrink:0;align-items:center;display:flex}.inbox-scope .itr-icon[data-kind=all]{color:var(--primary)}.inbox-scope .itr-icon[data-kind=floor]{color:var(--text-muted)}.inbox-scope .itr-icon[data-kind=group]{color:var(--type-action)}.inbox-scope .itr-row.active .itr-icon{color:var(--primary)}.inbox-scope .itr-label{font-size:var(--text-md);color:var(--text);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.inbox-scope .itr-row.active .itr-label{font-weight:600}.inbox-scope .itr-spacer{flex:1}.inbox-scope .itr-rename-input{font-size:var(--text-md);border:1px solid var(--primary);background:var(--surface);color:var(--text);border-radius:3px;outline:none;flex:1;min-width:0;padding:2px 6px;font-family:inherit}.inbox-scope .itr-badge{border-radius:var(--radius-pill);min-width:18px;height:18px;font-size:var(--text-xs);color:var(--on-primary);font-variant-numeric:tabular-nums;letter-spacing:0;justify-content:center;align-items:center;padding:0 6px;font-weight:600;display:inline-flex}.inbox-scope .itr-badge[data-type=alarm]{background:var(--type-alarm)}.inbox-scope .itr-badge[data-type=action]{background:var(--type-action)}.inbox-scope .itr-badge[data-type=notification]{background:var(--type-notification)}.inbox-scope .itr-total{font-size:var(--text-xs);color:var(--text-faint);text-align:right;font-variant-numeric:tabular-nums;min-width:18px}.inbox-scope .right{background:var(--bg);flex-direction:column;flex:1;min-width:0;display:flex}.inbox-scope .ith{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:14px;padding:14px 20px;display:flex}.inbox-scope .ith-icon{border-radius:var(--radius-md);background:var(--primary-soft);width:36px;height:36px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.inbox-scope .ith-icon[data-kind=alarm]{background:var(--danger-soft);color:var(--danger)}.inbox-scope .ith-textcol{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.inbox-scope .ith-title{font-size:var(--text-lg);color:var(--text-strong);letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.inbox-scope .ith-meta{font-size:var(--text-sm);color:var(--text-muted);align-items:center;gap:6px;display:flex}.inbox-scope .ith-meta-dot{background:var(--text-faint);border-radius:50%;width:3px;height:3px}.inbox-scope .ith-online{background:var(--read);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;flex-shrink:0}.inbox-scope .ith-search{background:var(--surface-hover);border-radius:var(--radius-md);width:clamp(140px,22vw,240px);color:var(--text-muted);border:1px solid #0000;flex-shrink:1;align-items:center;gap:6px;min-width:0;padding:7px 10px;transition:all .15s;display:flex}.inbox-scope .ith-search:focus-within{border-color:var(--primary);background:var(--surface)}.inbox-scope .ith-search input{min-width:0;font:inherit;font-size:var(--text-md);color:var(--text);background:0 0;border:none;outline:none;flex:1}.inbox-scope .ith-search input::placeholder{color:var(--text-faint)}.inbox-scope .stb{background:var(--surface);border-bottom:1px solid var(--border-soft);font-size:var(--text-xs);align-items:center;gap:14px;padding:8px 20px;display:flex}.inbox-scope .stb-stat{color:var(--text-muted);align-items:center;gap:6px;display:flex}.inbox-scope .stb-stat b{color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:600}.inbox-scope .stb-stat-dot{border-radius:50%;width:6px;height:6px}.inbox-scope .stb-stat[data-kind=sent] .stb-stat-dot{background:var(--sent)}.inbox-scope .stb-stat[data-kind=delivered] .stb-stat-dot{background:var(--delivered)}.inbox-scope .stb-stat[data-kind=read] .stb-stat-dot{background:var(--read)}.inbox-scope .stb-spacer{flex:1}.inbox-scope .stb-bar{border-radius:var(--radius-pill);background:var(--surface-hover);flex:1;max-width:280px;height:4px;position:relative;overflow:hidden}.inbox-scope .stb-bar-seg{height:100%;transition:width .4s cubic-bezier(.4,0,.2,1);position:absolute;top:0;bottom:0}.inbox-scope .stb-bar-seg.delivered{background:var(--delivered)}.inbox-scope .stb-bar-seg.read{background:var(--read)}.inbox-scope .stb-clean{color:var(--text-muted);font-size:var(--text-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:6px;padding:5px 10px;font-family:inherit;font-weight:500;transition:all .15s;display:inline-flex}.inbox-scope .stb-clean:hover{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-soft)}.inbox-scope .thr{flex-direction:column;flex:1;gap:12px;padding:24px 28px;display:flex;overflow-y:auto}.inbox-scope .thr-day{font-size:var(--text-xs);color:var(--text-muted);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-pill);align-self:center;margin:6px 0;padding:4px 12px}.inbox-scope .msg{flex-direction:column;gap:4px;max-width:64%;display:flex;position:relative}.inbox-scope .msg.received{align-self:flex-start}.inbox-scope .msg.sent{align-self:flex-end;align-items:flex-end}.inbox-scope .msg-author{font-size:var(--text-xs);color:var(--text-muted);padding:0 12px}.inbox-scope .msg-bubble{border-radius:var(--radius-lg);font-size:var(--text-md);word-wrap:break-word;padding:10px 14px;line-height:1.45;position:relative}.inbox-scope .msg.received .msg-bubble{background:var(--surface);color:var(--text);border:1px solid var(--border-soft);border-bottom-left-radius:4px}.inbox-scope .msg.sent .msg-bubble{background:var(--primary);color:var(--on-primary);border-bottom-right-radius:4px}.inbox-scope .msg.sent[data-type=alarm] .msg-bubble{background:var(--danger)}.inbox-scope .msg.sent[data-type=notification] .msg-bubble{background:var(--text-muted)}.inbox-scope .msg-attachments{flex-direction:column;gap:6px;margin-top:6px;display:flex}.inbox-scope .msg-attachment-img,.inbox-scope .msg-attachment-video{border-radius:var(--radius-md);max-width:320px;max-height:240px;display:block}.inbox-scope .msg-attachment-file{border-radius:var(--radius-md);font-size:var(--text-sm);background:#0000000f;align-items:center;gap:10px;padding:10px 12px;display:flex}.inbox-scope .msg.sent .msg-attachment-file{background:#ffffff2e}.inbox-scope .msg-meta{font-size:var(--text-xs);color:var(--text-faint);align-items:center;gap:6px;padding:0 4px;display:flex}.inbox-scope .msg-status{align-items:center;gap:3px;display:inline-flex}.inbox-scope .msg-typebadge{letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-sm);align-items:center;gap:4px;margin-bottom:4px;padding:2px 6px;font-size:9px;font-weight:700;display:inline-flex}.inbox-scope .msg-typebadge[data-type=alarm]{background:var(--danger-soft);color:var(--danger)}.inbox-scope .msg-typebadge[data-type=action]{background:var(--type-action-soft);color:var(--type-action)}.inbox-scope .msg.msg-deleted .msg-bubble,.inbox-scope .msg.msg-deleted.sent .msg-bubble,.inbox-scope .msg.msg-deleted.received .msg-bubble{border:1px dashed var(--border);color:var(--text-muted);font-style:italic;font-size:var(--text-sm);background:0 0}.inbox-scope .msg-reactions{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.inbox-scope .reaction-chip{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);cursor:pointer;color:var(--text);padding:1px 7px;font-family:inherit}.inbox-scope .reaction-chip.mine{background:var(--primary-tint);border-color:var(--primary)}.inbox-scope .msg-actions{font-size:var(--text-xs);gap:4px;margin-top:4px;display:none}.inbox-scope .msg:hover .msg-actions{display:flex}.inbox-scope .msg-actions button{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-xs);color:var(--text);padding:2px 6px;font-family:inherit}.inbox-scope .reaction-picker{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.inbox-scope .reaction-picker button{font-size:var(--text-md);cursor:pointer;background:0 0;border:none;padding:1px 4px}.inbox-scope .cmp{background:var(--surface);border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 20px 16px;display:flex}.inbox-scope .cmp.disabled{opacity:.55;pointer-events:none}.inbox-scope .cmp-typebar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.inbox-scope .cmp-typebar-label{font-size:var(--text-xs);color:var(--text-faint);letter-spacing:.06em;text-transform:uppercase;margin-right:4px;font-weight:600}.inbox-scope .cmp-type{border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:6px 12px;font-family:inherit;font-weight:500;transition:all .15s;display:inline-flex}.inbox-scope .cmp-type:disabled{opacity:.5;cursor:not-allowed}.inbox-scope .cmp-type:not(:disabled):hover{border-color:var(--text-muted);color:var(--text)}.inbox-scope .cmp-type.on{border-color:#0000;font-weight:600}.inbox-scope .cmp-type.on[data-type=notification]{background:var(--type-notification);color:var(--on-primary)}.inbox-scope .cmp-type.on[data-type=action]{background:var(--type-action);color:var(--on-primary);box-shadow:0 2px 6px #2563eb4d}.inbox-scope .cmp-type.on[data-type=alarm]{background:var(--type-alarm);color:var(--on-primary);box-shadow:0 2px 6px #dc26264d}.inbox-scope .cmp-type-icon{justify-content:center;align-items:center;width:14px;height:14px;display:inline-flex}.inbox-scope .cmp-typebar-spacer{flex:1}.inbox-scope .cmp-use-template{border-radius:var(--radius-pill);background:var(--surface-hover);border:1px solid var(--border);color:var(--text-muted);font-size:var(--text-sm);cursor:pointer;align-items:center;gap:6px;margin-left:6px;padding:6px 10px;font-family:inherit;font-weight:500;transition:all .15s;display:inline-flex}.inbox-scope .cmp-use-template:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.inbox-scope .cmp-use-template:disabled{opacity:.5;cursor:not-allowed}.inbox-scope .cmp-template-toggle,.cmp-template-toggle{font-family:inherit;font-size:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0 2px;text-decoration:underline}.inbox-scope .cmp-typebar-hint{font-size:var(--text-xs);color:var(--text-faint)}.inbox-scope .cmp-typebar-hint b{color:var(--text-muted);font-weight:600}.inbox-scope .cmp-row{align-items:flex-end;gap:10px;display:flex}.inbox-scope .cmp-mediabtns{flex-direction:column;gap:4px;display:flex}.inbox-scope .cmp-mediabtn{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-muted);cursor:pointer;justify-content:center;align-items:center;font-family:inherit;transition:all .15s;display:flex}.inbox-scope .cmp-mediabtn:hover:not(:disabled){background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.inbox-scope .cmp-mediabtn:disabled{opacity:.4;cursor:not-allowed}.inbox-scope .cmp-textwrap{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-lg);flex:1;transition:border-color .15s;position:relative}.inbox-scope .cmp-textwrap:focus-within{border-color:var(--primary)}.inbox-scope .cmp-textwrap[data-type=alarm]:focus-within{border-color:var(--danger)}.inbox-scope .cmp-textarea{width:100%;min-height:76px;max-height:200px;font:inherit;font-size:var(--text-md);color:var(--text);resize:none;background:0 0;border:none;outline:none;padding:12px 14px;font-family:inherit}.inbox-scope .cmp-textarea::placeholder{color:var(--text-faint)}.inbox-scope .cmp-send{border-radius:var(--radius-md);background:var(--primary);min-width:76px;height:76px;color:var(--on-primary);font-size:var(--text-md);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-weight:600;transition:all .15s;display:flex}.inbox-scope .cmp-send:hover:not(:disabled){background:var(--primary-hover)}.inbox-scope .cmp-send:disabled{opacity:.5;cursor:not-allowed}.inbox-scope .cmp-send[data-type=alarm]{background:var(--danger)}.inbox-scope .cmp-send[data-type=alarm]:hover:not(:disabled){background:var(--danger-hover)}.inbox-scope .cmp-send[data-type=notification]{background:var(--text-muted)}.inbox-scope .cmp-attachments{flex-wrap:wrap;gap:6px;display:flex}.inbox-scope .cmp-att-chip{background:var(--surface-hover);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--text);align-items:center;gap:4px;padding:3px 10px;display:inline-flex}.inbox-scope .cmp-att-chip button{cursor:pointer;color:var(--text-muted);font-size:var(--text-md);background:0 0;border:none;padding:0 0 0 2px;line-height:1}.inbox-scope .emp{color:var(--text-muted);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;padding:40px;display:flex}.inbox-scope .emp-illu{background:var(--surface);border:1px dashed var(--border);width:96px;height:96px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;display:flex;position:relative}.inbox-scope .emp-illu:before,.inbox-scope .emp-illu:after{content:"";border:1px dashed var(--border);opacity:.6;border-radius:50%;position:absolute;inset:-10px}.inbox-scope .emp-illu:after{opacity:.3;inset:-22px}.inbox-scope .emp-title{font-size:var(--text-xl);color:var(--text-strong);letter-spacing:-.01em;font-weight:600}.inbox-scope .emp-body{font-size:var(--text-md);max-width:340px;line-height:1.55}.inbox-scope .emp-empty-thread{text-align:center;flex-direction:column;align-self:center;align-items:center;gap:14px;max-width:360px;padding:32px 0;display:flex}.inbox-scope .emp-empty-thread h3{font-size:var(--text-lg);color:var(--text-strong);margin:0;font-weight:600}.inbox-scope .emp-empty-thread p{font-size:var(--text-md);color:var(--text-muted);margin:0;line-height:1.5}.inbox-scope .multibanner{background:var(--primary-soft);border-bottom:1px solid var(--border-soft);color:var(--primary);font-size:var(--text-md);align-items:center;gap:10px;padding:10px 20px;display:flex}.inbox-scope .multibanner-icon{background:var(--primary);width:24px;height:24px;color:var(--on-primary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.inbox-scope .multibanner-spacer{flex:1}.inbox-scope .multibanner-clear{color:var(--primary);font-size:var(--text-sm);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:4px 10px;font-family:inherit;font-weight:500;transition:all .15s}.inbox-scope .multibanner-clear:hover{background:#2563eb1a}.page-scope .dlg-backdrop{z-index:100;-webkit-backdrop-filter:blur(2px);background:#0f141973;justify-content:center;align-items:center;padding:32px;display:flex;position:fixed;inset:0}[data-theme=dark] .page-scope .dlg-backdrop{background:#000000a6}.page-scope .dlg{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:540px;max-width:100%;max-height:80vh;display:flex;overflow:hidden}.page-scope .dlg.dlg-wide{width:640px}.page-scope .dlg.dlg-narrow{width:420px}.page-scope .dlg-head{border-bottom:1px solid var(--border-soft);align-items:center;gap:12px;padding:16px 20px;display:flex}.page-scope .dlg-head-icon{border-radius:var(--radius-md);background:var(--primary-soft);width:32px;height:32px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-scope .dlg-head-icon[data-tone=danger]{background:var(--danger-soft);color:var(--danger)}.page-scope .dlg-head-textcol{flex:1;min-width:0}.page-scope .dlg-title{font-size:var(--text-lg);color:var(--text-strong);letter-spacing:-.005em;font-weight:600}.page-scope .dlg-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:2px}.page-scope .dlg-close{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .15s;display:flex}.page-scope .dlg-close:hover{background:var(--surface-hover);color:var(--text)}.page-scope .dlg-body{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow-y:auto}.page-scope .dlg-foot{border-top:1px solid var(--border-soft);background:var(--surface);justify-content:flex-end;align-items:center;gap:8px;padding:14px 20px;display:flex}.page-scope .dlg-foot-left{color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:6px;margin-right:auto;display:flex}.page-scope .field{flex-direction:column;gap:6px;display:flex}.page-scope .field-label{font-size:var(--text-sm);color:var(--text);align-items:center;gap:6px;font-weight:500;display:flex}.page-scope .field-label .field-required{color:var(--danger)}.page-scope .field-hint{font-size:var(--text-xs);color:var(--text-muted)}.page-scope .field-error{font-size:var(--text-xs);color:var(--danger);align-items:center;gap:4px;display:flex}.page-scope .field-input,.page-scope .field-textarea{background:var(--surface);border:1.5px solid var(--border);border-radius:var(--radius-md);width:100%;font:inherit;font-size:var(--text-md);color:var(--text);outline:none;padding:8px 12px;transition:border-color .15s}.page-scope .field-input:focus,.page-scope .field-textarea:focus{border-color:var(--primary)}.page-scope .field-input::placeholder,.page-scope .field-textarea::placeholder{color:var(--text-faint)}.page-scope .field-textarea{resize:vertical;min-height:86px;font-family:inherit;line-height:1.5}.page-scope .field-input.has-error,.page-scope .field-textarea.has-error{border-color:var(--danger)}.page-scope .field-row{gap:12px;display:flex}.page-scope .field-row>.field{flex:1}.page-scope .field-counter{font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums;margin-left:auto}.page-scope .btn{border-radius:var(--radius-md);font-size:var(--text-md);cursor:pointer;border:1px solid #0000;align-items:center;gap:6px;padding:8px 14px;font-weight:500;transition:all .15s;display:inline-flex}.page-scope .btn-primary{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}.page-scope .btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.page-scope .btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.page-scope .btn-secondary:hover{background:var(--surface-hover);border-color:var(--text-muted)}.page-scope .btn-danger{background:var(--danger);color:var(--on-primary);border-color:var(--danger)}.page-scope .btn-danger:hover{background:var(--danger-hover);border-color:var(--danger-hover)}.page-scope .btn-ghost{color:var(--text-muted);background:0 0}.page-scope .btn-ghost:hover{background:var(--surface-hover);color:var(--text)}.page-scope .btn-ghost-danger{color:var(--danger);background:0 0}.page-scope .btn-ghost-danger:hover{background:var(--danger-soft)}.page-scope .member-list{background:var(--surface-hover);border:1px solid var(--border-soft);border-radius:var(--radius-md);flex-direction:column;gap:4px;max-height:240px;padding:6px;display:flex;overflow:auto}.page-scope .member-row{border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:8px;padding:6px 8px;transition:background .12s;display:flex}.page-scope .member-row:hover{background:var(--surface)}.page-scope .member-row.on{background:var(--primary-soft)}.page-scope .member-check{border:1.5px solid var(--text-faint);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;transition:all .15s;display:flex}.page-scope .member-row.on .member-check{background:var(--primary);border-color:var(--primary)}.page-scope .member-icon{color:var(--text-muted);flex-shrink:0;display:flex}.page-scope .member-label{font-size:var(--text-md);color:var(--text);flex:1}.page-scope .member-sub{font-size:var(--text-xs);color:var(--text-faint)}.page-scope .selected-chips{border:1px dashed var(--border);border-radius:var(--radius-md);background:var(--surface);flex-wrap:wrap;gap:6px;min-height:44px;padding:8px;display:flex}.page-scope .selected-chip{background:var(--primary-soft);border-radius:var(--radius-pill);color:var(--primary);font-size:var(--text-sm);border:1px solid #0000;align-items:center;gap:5px;padding:4px 4px 4px 9px;font-weight:500;display:inline-flex}.page-scope .selected-chip-remove{width:18px;height:18px;color:var(--primary);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.page-scope .selected-chip-remove:hover{background:#2563eb2e}.page-scope .selected-chip-count{border-radius:var(--radius-pill);font-variant-numeric:tabular-nums;background:#2563eb2e;align-items:center;margin-left:2px;padding:1px 6px;font-size:10px;font-weight:700;display:inline-flex}[data-theme=dark] .page-scope .selected-chip-count{background:#60a5fa38}.page-scope .selected-chip[data-kind=floor]{background:var(--type-action-soft);color:var(--type-action)}.page-scope .selected-chip[data-kind=room]{background:var(--primary-soft);color:var(--primary)}.page-scope .selected-chip[data-kind=group]{background:var(--surface-hover);color:var(--text)}.page-scope .member-tree{background:var(--surface-hover);border:1px solid var(--border-soft);border-radius:var(--radius-md);max-height:240px;margin-top:8px;padding:4px;overflow:auto}.page-scope .mtr-row{border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:5px 8px;transition:background .12s;display:flex;position:relative}.page-scope .mtr-row:hover{background:var(--surface)}.page-scope .mtr-row.state-on{background:var(--primary-soft)}.page-scope .mtr-row.state-on:hover{background:color-mix(in oklab, var(--primary-soft) 65%, var(--primary) 0%)}.page-scope .mtr-rail{background:var(--border-soft);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.page-scope .mtr-check{border:1.5px solid var(--text-faint);border-radius:var(--radius-sm);background:var(--surface);flex-shrink:0;justify-content:center;align-items:center;width:15px;height:15px;transition:all .15s;display:flex}.page-scope .mtr-check.state-on,.page-scope .mtr-check.state-partial{background:var(--primary);border-color:var(--primary)}.page-scope .mtr-check-dash{background:var(--on-primary);border-radius:1px;width:7px;height:2px}.page-scope .mtr-chev{width:14px;height:14px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.page-scope .mtr-chev:disabled{cursor:default}.page-scope .mtr-icon{color:var(--text-muted);flex-shrink:0;display:flex}.page-scope .mtr-row.state-on .mtr-icon,.page-scope .mtr-row.state-partial .mtr-icon{color:var(--primary)}.page-scope .mtr-label{font-size:var(--text-md);color:var(--text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-scope .mtr-spacer{flex:1;min-width:6px}.page-scope .mtr-count{font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums;background:var(--surface);border-radius:var(--radius-pill);border:1px solid var(--border-soft);padding:2px 7px}.page-scope .mtr-row.state-on .mtr-count{color:var(--primary);border-color:var(--primary-soft);background:var(--surface)}.page-scope .mtr-row.state-partial .mtr-count{color:var(--primary)}.page-scope .mtr-count strong{color:var(--primary);font-weight:700}.page-scope .itr-search-clear{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.page-scope .itr-search-clear:hover{background:var(--surface-hover);color:var(--text)}.page-scope .tpl-preview-media{background:#0000002e;border:1px solid #ffffff26;border-radius:6px;margin-top:8px;position:relative;overflow:hidden}.page-scope .tpl-preview-media svg.media-svg{width:100%;height:auto;display:block}.page-scope .tpl-preview-media-meta{color:#ffffffd9;letter-spacing:.04em;background:#0000008c;border-radius:3px;align-items:center;gap:5px;padding:2px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;display:flex;position:absolute;bottom:6px;left:6px}.page-scope .tpl-preview-media-meta:before{content:"";background:var(--read);border-radius:50%;width:5px;height:5px;animation:1.4s ease-in-out infinite tpl-rec-blink;display:inline-block}.page-scope .tpl-preview-media-meta--still:before{background:var(--text-faint);animation:none}@keyframes tpl-rec-blink{0%,to{opacity:1}50%{opacity:.3}}.page-scope .tpl-preview-media .play-overlay{pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#00000080;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;margin:-18px 0 0 -18px;display:flex;position:absolute;top:50%;left:50%}.page-scope .tpl-preview-media .play-overlay.playing{display:none}.page-scope .tpl-preview-toggle{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;bottom:6px;right:6px}.page-scope .tpl-preview-toggle:hover{background:#000000bf}@keyframes tpl-video-pan{0%{transform:translate(0)}50%{transform:translate(-6%,-3%)}to{transform:translate(0)}}@keyframes tpl-video-flicker{0%,to{opacity:.7}50%{opacity:.95}}.page-scope .tpl-video-canvas{transform-origin:50%;animation:6s ease-in-out infinite tpl-video-pan}.page-scope .tpl-video-glow{animation:2.2s ease-in-out infinite tpl-video-flicker}.page-scope .pill-type{border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:5px;padding:3px 9px;font-weight:600;display:inline-flex}.page-scope .pill-type[data-type=notification]{background:var(--type-notification-soft);color:var(--type-notification)}.page-scope .pill-type[data-type=action]{background:var(--type-action-soft);color:var(--type-action)}.page-scope .pill-type[data-type=alarm]{background:var(--type-alarm-soft);color:var(--type-alarm)}.page-scope .pill-type-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.page-scope .type-radio{gap:8px;display:flex}.page-scope .type-radio-opt{border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;flex-direction:column;flex:1;gap:4px;padding:12px;transition:all .15s;display:flex}.page-scope .type-radio-opt:hover{border-color:var(--text-muted)}.page-scope .type-radio-opt.on[data-type=notification]{border-color:var(--type-notification);background:var(--type-notification-soft)}.page-scope .type-radio-opt.on[data-type=action]{border-color:var(--type-action);background:var(--type-action-soft)}.page-scope .type-radio-opt.on[data-type=alarm]{border-color:var(--type-alarm);background:var(--type-alarm-soft)}.page-scope .type-radio-opt-head{font-size:var(--text-sm);color:var(--text);align-items:center;gap:6px;font-weight:600;display:flex}.page-scope .type-radio-opt-desc{font-size:var(--text-xs);color:var(--text-muted);line-height:1.4}.page-scope .type-radio-opt[data-type=notification] .type-radio-opt-icon{color:var(--type-notification)}.page-scope .type-radio-opt[data-type=action] .type-radio-opt-icon{color:var(--type-action)}.page-scope .type-radio-opt[data-type=alarm] .type-radio-opt-icon{color:var(--type-alarm)}.page-scope{background:var(--bg);flex-direction:column;height:100vh;margin:-1.5rem;display:flex}.page-scope .listpage{background:var(--bg);flex-direction:column;flex:1;min-height:0;display:flex}.page-scope .listpage-head-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.page-scope .listpage-search{background:var(--surface-hover);border-radius:var(--radius-md);width:240px;color:var(--text-muted);border:1px solid #0000;align-items:center;gap:6px;padding:7px 10px;transition:all .15s;display:flex}.page-scope .listpage-search:focus-within{border-color:var(--primary);background:var(--surface)}.page-scope .listpage-search input{min-width:0;font:inherit;font-size:var(--text-md);color:var(--text);background:0 0;border:none;outline:none;flex:1}.page-scope .listpage-search input::placeholder{color:var(--text-faint)}.page-scope .listpage-tabs{background:var(--surface);border-bottom:1px solid var(--border);gap:4px;padding:4px 24px 0;display:flex}.page-scope .listpage-tab{font-family:inherit;font-size:var(--text-md);color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:10px 14px;font-weight:500;display:inline-flex}.page-scope .listpage-tab.on{color:var(--text-strong);border-bottom-color:var(--primary);font-weight:600}.page-scope .listpage-tab-count{font-size:var(--text-xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.page-scope .listpage-row-time{font-size:var(--text-sm);color:var(--text-faint);white-space:nowrap;flex-shrink:0}.page-scope .listpage-empty{text-align:center;color:var(--text-muted);font-size:var(--text-md);padding:64px 24px}.page-scope .listpage-head{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:18px 24px 14px;display:flex}.page-scope .listpage-title{font-size:var(--text-xl);color:var(--text-strong);letter-spacing:-.01em;font-weight:600}.page-scope .listpage-counter{font-size:var(--text-sm);color:var(--text-muted);background:var(--surface-hover);border-radius:var(--radius-pill);padding:3px 10px}.page-scope .listpage-body{flex:1;padding:18px 24px;overflow:auto}.page-scope .listpage-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.page-scope .listpage-row{border-bottom:1px solid var(--border-soft);cursor:pointer;align-items:center;gap:14px;padding:12px 16px;transition:background .12s;display:flex}.page-scope .listpage-row:last-child{border-bottom:none}.page-scope .listpage-row:hover{background:var(--surface-hover)}.page-scope .listpage-row.highlight{background:var(--primary-soft);box-shadow:inset 0 0 0 1px var(--primary)}.page-scope .listpage-row-icon{border-radius:var(--radius-md);background:var(--surface-hover);width:32px;height:32px;color:var(--text-muted);flex-shrink:0;justify-content:center;align-items:center;display:flex}.page-scope .listpage-row-textcol{flex:1;min-width:0}.page-scope .listpage-row-title{font-size:var(--text-md);color:var(--text);align-items:center;gap:8px;margin-bottom:2px;font-weight:600;display:flex}.page-scope .listpage-row-sub{font-size:var(--text-sm);color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.page-scope .listpage-row-actions{opacity:0;gap:4px;transition:opacity .12s;display:flex}.page-scope .listpage-row:hover .listpage-row-actions{opacity:1}.page-scope .listpage-row-iconbtn{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;transition:all .15s;display:flex}.page-scope .listpage-row-iconbtn:hover{background:var(--surface-hover);color:var(--text)}.page-scope .listpage-row-iconbtn.danger:hover{background:var(--danger-soft);color:var(--danger)}.page-scope .logs-filterbar{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.page-scope .pill-presence{border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:5px;padding:2px 8px;font-weight:600;display:inline-flex}.page-scope .pill-presence[data-state=ONLINE]{color:var(--read);background:#4ade8026}.page-scope .pill-presence[data-state=OFFLINE]{background:var(--surface-hover);color:var(--text-faint)}.page-scope .pill-presence-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.page-scope .pair-banner{background:var(--primary-soft);border:1px solid var(--primary);border-radius:var(--radius-md);align-items:center;gap:16px;margin-bottom:14px;padding:16px 20px;display:flex}.page-scope .pair-banner-text{flex:1}.page-scope .pair-banner-label{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:2px}.page-scope .pair-banner-code{letter-spacing:.18em;color:var(--primary);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:28px;font-weight:700}.page-scope .pair-banner-meta{font-size:var(--text-xs);color:var(--text-muted)}.page-scope .pair-banner-close{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;font-family:inherit}.page-scope .pair-banner-close:hover{background:var(--surface-hover);color:var(--text)}.page-scope .detail-grid{grid-template-columns:minmax(0,1fr) 320px;align-items:start;gap:18px;display:grid}@media (width<=1100px){.page-scope .detail-grid{grid-template-columns:1fr}}.page-scope .panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:14px;padding:14px 16px}.page-scope .panel-card-title{font-size:var(--text-md);color:var(--text-strong);align-items:center;gap:8px;margin-bottom:10px;font-weight:600;display:flex}.page-scope .stat-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.page-scope .stat-tile{border-radius:var(--radius-md);background:var(--surface-hover);align-items:center;gap:10px;padding:10px 12px;display:flex}.page-scope .stat-tile-icon{font-size:1.2rem;line-height:1}.page-scope .stat-tile-value{font-size:var(--text-lg);color:var(--text-strong);font-variant-numeric:tabular-nums;font-weight:700}.page-scope .stat-tile-label{font-size:var(--text-xs);color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase}.facility-layout{gap:1.5rem;display:flex}.facility-main{flex:1;min-width:0}.facility-infopanel{flex-shrink:0;width:320px}.building-svg{width:100%;height:auto;display:block}.svg-floor-row{cursor:default}.svg-floor-row.svg-clickable{cursor:pointer}.svg-floor-row.svg-clickable:hover rect:first-child{fill:var(--primary-soft)}@keyframes blink-red{0%,to{opacity:1}50%{opacity:.3}}@keyframes blink-blue{0%,to{opacity:1}50%{opacity:.3}}@keyframes blink-orange{0%,to{opacity:1}50%{opacity:.3}}.blink-red,.blink-red-bg{animation:1.5s ease-in-out infinite blink-red}.blink-blue,.blink-blue-bg{animation:1.5s ease-in-out infinite blink-blue}.blink-orange,.blink-orange-bg{animation:1.5s ease-in-out infinite blink-orange}.floor-plan-detail h3{margin-bottom:.75rem;font-size:1rem}.floor-plan-svg{border-radius:4px;width:100%;height:auto;display:block}.info-panel-section{background:var(--surface);border:1px solid var(--border);border-radius:6px;margin-bottom:1rem;padding:1rem}.info-panel-section h3{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem;font-size:.9rem}.stat-cards{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.stat-card{background:var(--bg);border-radius:6px;align-items:center;gap:.6rem;padding:.5rem;display:flex}.stat-card .stat-icon{font-size:1.3rem;line-height:1}.stat-card .stat-info{flex-direction:column;display:flex}.stat-card .stat-value{font-size:1.1rem;font-weight:700;line-height:1.2}.stat-card .stat-label{color:var(--text-muted);font-size:.7rem}.occupancy-list{flex-direction:column;gap:.4rem;display:flex}.occupancy-item{background:var(--bg);border-radius:6px;align-items:center;gap:.5rem;padding:.4rem .6rem;font-size:.85rem;display:flex}.occupancy-icon{font-size:1rem}.occupancy-room{flex:1;font-weight:600}.occupancy-temp{color:var(--text-muted);font-size:.8rem}.alert-badge{border-radius:6px;align-items:center;gap:.5rem;margin-bottom:.5rem;padding:.5rem .75rem;font-size:.85rem;font-weight:600;display:flex}.alert-badge.fire{background:var(--danger-soft);color:var(--danger);animation:1.5s ease-in-out infinite blink-red}.alert-badge.leak{background:var(--primary-soft);color:var(--primary);animation:1.5s ease-in-out infinite blink-blue}.event-log-list{max-height:300px;overflow-y:auto}.event-log-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:.5rem;padding:.4rem 0;font-size:.8rem;display:flex}.event-log-item:last-child{border-bottom:none}.event-log-item .event-time{color:var(--text-muted);white-space:nowrap;min-width:40px}.event-log-item .event-floor{white-space:nowrap;min-width:24px;font-weight:600}.event-log-item .event-icon{font-size:.9rem;line-height:1}.event-log-item .event-message{flex:1}@media (width<=900px){.facility-layout{flex-direction:column}.facility-infopanel{width:100%}}.alerts-layout{align-items:flex-start;gap:1.5rem;display:flex}.alerts-left{flex:1;min-width:0}.alerts-right{flex-shrink:0;width:380px}.section-title{border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem;font-size:1.05rem}.alerts-table{width:100%}.alerts-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);white-space:nowrap;font-size:.78rem}.alerts-table td{white-space:nowrap;font-size:.85rem}.no-wrap{white-space:nowrap}.alert-row-smoke{background:var(--danger-soft)}.alert-row-leak{background:var(--primary-soft)}.alert-type-badge{color:var(--on-primary);white-space:nowrap;border-radius:10px;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-flex}.alert-type-badge.smoke{background:var(--accent-red)}.alert-type-badge.leak{background:var(--accent-blue)}.response-dropdown{outline:none;min-width:120px;position:relative}.response-trigger{border:1px solid var(--border);background:var(--surface);cursor:pointer;width:100%;color:var(--text);white-space:nowrap;border-radius:4px;justify-content:space-between;align-items:center;padding:.3rem .5rem;font-family:inherit;font-size:.8rem;display:flex}.dd-chev{margin-left:.4rem;font-size:.5rem;transition:transform .2s}.dd-chev.open{transform:rotate(90deg)}.alerts-card{min-height:calc(100vh - 130px);overflow:visible}.alerts-table,.alerts-table tbody{overflow:visible}.alerts-table tr{position:relative}.response-menu{background:var(--surface);border:1px solid var(--border);min-width:200px;box-shadow:var(--shadow-md);z-index:9999;border-radius:4px;padding:.25rem 0;position:absolute;top:100%;left:0}.response-menu.open-up{top:auto;bottom:100%}.response-option{cursor:pointer;white-space:nowrap;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.8rem;font-weight:400;display:flex}.response-option:hover{background:var(--bg)}.rules-list{flex-direction:column;gap:.75rem;display:flex}.rule-item{border:1px solid var(--border);background:var(--surface);border-radius:6px;align-items:flex-start;gap:.6rem;padding:.6rem .75rem;transition:opacity .2s;display:flex}.rule-item.disabled{opacity:.45}.rule-content{flex:1;min-width:0}.rule-body{flex-wrap:wrap;align-items:center;gap:.4rem;margin-bottom:.4rem;display:flex}.rule-text{font-size:.85rem}.rule-inline{align-items:center;gap:.25rem;display:inline-flex}.rule-input{text-align:center;border:1px solid var(--border);border-radius:4px;width:52px!important;padding:.2rem .3rem!important;font-size:.85rem!important}.rule-unit{color:var(--text-muted);font-size:.82rem}.rule-scope{border-top:1px solid var(--border);padding-top:.3rem}.rule-scope-label{color:var(--text-muted);margin-bottom:.25rem;font-size:.75rem;display:block}.rule-scope .checkbox-grid{gap:.3rem .5rem}.rule-scope .checkbox-grid label{font-size:.78rem}.rule-floor-rooms{align-items:flex-start;gap:.4rem;margin-top:.25rem;display:flex}.rule-floor-label{min-width:28px;padding-top:2px;font-size:.78rem;font-weight:600}.rule-scope-summary{color:var(--text-muted);margin-top:.3rem;font-size:.75rem;font-style:italic}.rule-toggle{cursor:pointer;flex-shrink:0;width:38px;height:22px;margin-top:2px;display:inline-block;position:relative}.rule-toggle input{opacity:0;width:0;height:0;position:absolute}.toggle-slider{background:var(--control-off);border-radius:22px;transition:background .2s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--surface);border-radius:50%;width:18px;height:18px;transition:transform .2s;position:absolute;top:2px;left:2px}.rule-toggle input:checked+.toggle-slider{background:var(--primary)}.rule-toggle input:checked+.toggle-slider:before{transform:translate(16px)}@media (width<=900px){.alerts-layout{flex-direction:column}.alerts-right{width:100%}}
