:root,[data-theme=dark]{--app-bg:#0b0d12;--scene-bg:#141820;--scene-floor:#1a2030;--scene-wall:#222a3a;--scene-accent:#60a5fa;--scene-canvas-border:#ffffff14;--glass-bg:#161a2485;--glass-bg-strong:#10141ead;--glass-border:#ffffff24;--glass-border-soft:#ffffff14;--glass-blur:blur(28px) saturate(1.35);--glass-shadow:0 8px 32px #00000059,0 2px 8px #0003;--shell-bg:linear-gradient(155deg,#0b0d12,#12151d 42%,#0e1016);--shell-glow:radial-gradient(ellipse 70% 55% at 12% 8%,#60a5fa24,#0000 58%),radial-gradient(ellipse 60% 45% at 88% 92%,#818cf81a,#0000 52%),radial-gradient(ellipse 50% 40% at 50% 50%,#1e293b59,#0000 70%);--surface-inset:#0003;--surface-hover:#ffffff0f;--surface-active:#ffffff14;--surface-muted:#00000040;--overlay-nav:#0f141cb8;--overlay-nav-text:#ffffff9e;--overlay-nav-text-hover:#ffffffeb;--overlay-nav-active-bg:#ffffff24;--overlay-nav-active-text:#fff;--glass-pill-bg:#ffffff1a;--glass-btn-bg:#ffffff1a;--glass-btn-hover:#ffffff2e;--glass-btn-solid-bg:#ffffffeb;--glass-btn-solid-text:#121214;--glass-segmented-bg:#00000047;--glass-segment-active-bg:#ffffff29;--glass-toggle-bg:#00000059;--glass-toggle-on-bg:#ffffff47;--glass-toggle-thumb:#fff;--glass-input-bg:#00000040;--glass-input-focus-border:#ffffff59;--glass-slider-track:#ffffff1f;--glass-slider-fill:#fff;--glass-spinner-track:#ffffff40;--glass-spinner-head:#fff;--glass-mark-border:#ffffff2e;--glass-mark-gradient:linear-gradient(135deg,#93c5fd73,#6366f133);--glass-mark-shadow:0 0 20px #60a5fa33;--glass-live-bg:#00000040;--text-primary:#fffffff5;--text-secondary:#ffffff8c;--text-tertiary:#ffffff61;--text-on-accent:#121214;--accent:#fff;--accent-glow:#ffffff8c;--success:#4ade80;--warn:#fbbf24;--danger:#f87171;--success-soft:#bbf7d0;--danger-soft:#fecaca;--focus-ring:#ffffff80;--selection-bg:#fff3;--radius-card:24px;--radius-md:14px;--radius-pill:999px;--font-display:"Instrument Sans",-apple-system,sans-serif;--font-body:"DM Sans",-apple-system,sans-serif;--ease:cubic-bezier(0.22,1,0.36,1);color-scheme:dark}[data-theme=light]{--app-bg:#e4e9f2;--scene-bg:#c5ced9;--scene-floor:#cfd6e2;--scene-wall:#e6eaf2;--scene-accent:#2563eb;--scene-canvas-border:#0f172a1a;--glass-bg:#ffffffc7;--glass-bg-strong:#ffffffeb;--glass-border:#0f172a1a;--glass-border-soft:#0f172a0f;--glass-blur:blur(28px) saturate(1.2);--glass-shadow:0 8px 32px #0f172a14,0 2px 8px #0f172a0a;--shell-bg:linear-gradient(155deg,#eef2f8,#e2e8f2 42%,#d8e0ec);--shell-glow:radial-gradient(ellipse 70% 55% at 12% 8%,#3b82f61f,#0000 58%),radial-gradient(ellipse 60% 45% at 88% 92%,#6366f114,#0000 52%),radial-gradient(ellipse 50% 40% at 50% 50%,#94a3b833,#0000 70%);--surface-inset:#0f172a0a;--surface-hover:#0f172a0d;--surface-active:#0f172a12;--surface-muted:#0f172a0f;--overlay-nav:#ffffffe0;--overlay-nav-text:#0f172a8c;--overlay-nav-text-hover:#0f172ae0;--overlay-nav-active-bg:#0f172a14;--overlay-nav-active-text:#0f172a;--glass-pill-bg:#0f172a0f;--glass-btn-bg:#0f172a0f;--glass-btn-hover:#0f172a1a;--glass-btn-solid-bg:#0f172a;--glass-btn-solid-text:#f8fafc;--glass-segmented-bg:#0f172a0f;--glass-segment-active-bg:#fffffff2;--glass-toggle-bg:#0f172a1f;--glass-toggle-on-bg:#2563eb59;--glass-toggle-thumb:#fff;--glass-input-bg:#ffffffe6;--glass-input-focus-border:#2563eb73;--glass-slider-track:#0f172a1a;--glass-slider-fill:#0f172a;--glass-spinner-track:#0f172a26;--glass-spinner-head:#0f172a;--glass-mark-border:#0f172a14;--glass-mark-gradient:linear-gradient(135deg,#3b82f659,#6366f126);--glass-mark-shadow:0 0 20px #3b82f626;--glass-live-bg:#0f172a0d;--text-primary:#0f172aeb;--text-secondary:#0f172a94;--text-tertiary:#0f172a6b;--text-on-accent:#f8fafc;--accent:#0f172a;--accent-glow:#2563eb59;--success:#16a34a;--warn:#d97706;--danger:#dc2626;--success-soft:#166534;--danger-soft:#991b1b;--focus-ring:#2563eb73;--selection-bg:#2563eb33;color-scheme:light}.glass{backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-card);box-shadow:var(--glass-shadow)}.glass--strong{background:var(--glass-bg-strong)}.glass-pill{align-items:center;background:var(--glass-pill-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);color:var(--text-secondary);display:inline-flex;font-size:.72rem;font-weight:500;gap:.35rem;padding:.35rem .65rem}.glass-pill strong,.glass-title{color:var(--text-primary);font-weight:600}.glass-title{font-family:var(--font-display);letter-spacing:-.03em}.glass-title--lg{font-size:1.5rem}.glass-title--md{font-size:1.05rem}.glass-muted{color:var(--text-secondary);font-size:.85rem}.glass-label{color:var(--text-tertiary);font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.glass-btn{align-items:center;background:var(--glass-btn-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:.82rem;font-weight:600;gap:.4rem;justify-content:center;min-height:40px;padding:.5rem 1rem;transition:background .2s,transform .15s var(--ease)}.glass-btn:hover:not(:disabled){background:var(--glass-btn-hover)}.glass-btn:active:not(:disabled){transform:scale(.97)}.glass-btn:disabled{cursor:not-allowed;opacity:.45}.glass-btn--solid{background:var(--glass-btn-solid-bg);border-color:#0000;color:var(--glass-btn-solid-text)}.glass-btn--danger{background:#f8717133;border-color:#f8717159;color:var(--danger-soft)}.glass-btn--sm{font-size:.78rem;min-height:32px;padding:.35rem .7rem}.glass-btn--lg{font-size:.92rem;min-height:48px;padding:.75rem 1.25rem}.glass-btn--success{background:#4ade802e;border-color:#4ade8059;color:var(--success-soft)}.glass-segmented{background:var(--glass-segmented-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);display:inline-flex;padding:4px}.glass-segment{background:#0000;border:none;border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;font-size:.78rem;font-weight:600;padding:.4rem .85rem;transition:background .2s,color .2s}.glass-segment.is-active{background:var(--glass-segment-active-bg);color:var(--text-primary)}.glass-toggle{background:var(--glass-toggle-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);cursor:pointer;flex-shrink:0;height:26px;position:relative;transition:background .25s;width:44px}.glass-toggle.is-on{background:var(--glass-toggle-on-bg)}.glass-toggle-thumb{background:var(--glass-toggle-thumb);border-radius:50%;box-shadow:0 2px 6px #00000059;height:18px;left:3px;position:absolute;top:3px;transition:transform .25s var(--ease);width:18px}.glass-toggle.is-on .glass-toggle-thumb{transform:translateX(18px)}.glass-slider{-webkit-appearance:none;appearance:none;background:var(--glass-slider-track);border-radius:3px;height:6px;outline:none;width:100%}.glass-slider::-webkit-slider-thumb{-webkit-appearance:none;height:0;width:0}.glass-slider-fill{background:var(--glass-slider-track);border-radius:3px;height:6px;overflow:hidden;position:relative}.glass-slider-fill-bar{background:var(--glass-slider-fill);border-radius:3px;box-shadow:0 0 12px var(--accent-glow);height:100%}.glass-spinner{animation:glass-spin .6s linear infinite;border:2px solid var(--glass-spinner-track);border-radius:50%;border-top-color:var(--glass-spinner-head);height:.85em;width:.85em}@keyframes glass-spin{to{transform:rotate(1turn)}}.glass-input{background:var(--glass-input-bg);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);color:var(--text-primary);font-size:.9rem;padding:.7rem .85rem;resize:vertical;width:100%}.glass-input:focus{border-color:var(--glass-input-focus-border);outline:none}.glass-err{color:var(--danger);font-size:.85rem}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;background:var(--app-bg);color:var(--text-primary);font-family:var(--font-body);font-size:15px;line-height:1.45;transition:background .35s var(--ease),color .35s var(--ease)}#root{height:100%;min-height:100dvh}::selection{background:var(--selection-bg)}button,input,textarea{color:inherit;font:inherit}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.glass-shell{display:flex;flex-direction:column;height:100%;min-height:100dvh;overflow:hidden;position:relative;width:100%}.glass-shell-bg{background:var(--shell-bg);z-index:0}.glass-shell-bg,.glass-shell-glow{inset:0;position:fixed;transition:background .35s var(--ease)}.glass-shell-glow{background:var(--shell-glow);pointer-events:none;z-index:1}.glass-topbar{align-items:center;border-radius:20px;display:flex;flex-wrap:wrap;gap:.75rem 1rem;justify-content:space-between;margin:max(1rem,env(safe-area-inset-top)) 1.5rem 0;padding:.75rem 1.15rem;position:relative;z-index:10}.glass-topbar-brand{align-items:center;display:flex;gap:.7rem}.glass-mark{background:var(--glass-mark-gradient);border:1px solid var(--glass-mark-border);border-radius:11px;box-shadow:var(--glass-mark-shadow);height:36px;width:36px}.glass-brand-name{display:block;font-family:var(--font-display);font-size:1rem;font-weight:700;letter-spacing:-.03em}.glass-brand-sub{color:var(--text-tertiary);display:block;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase}.glass-topbar-nav .glass-segment{align-items:center;display:inline-flex;gap:.35rem}.glass-topbar-meta{font-feature-settings:"tnum";align-items:center;color:var(--text-secondary);display:flex;font-size:.78rem;font-variant-numeric:tabular-nums;gap:1rem}.glass-live{background:var(--glass-live-bg);gap:.35rem;padding:.3rem .65rem}.glass-live,.glass-theme-btn{align-items:center;border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);display:inline-flex}.glass-theme-btn{background:var(--glass-btn-bg);color:var(--text-secondary);cursor:pointer;height:34px;justify-content:center;padding:0;transition:background .2s,color .2s,border-color .2s;width:34px}.glass-theme-btn:hover{background:var(--glass-btn-hover);border-color:var(--glass-border);color:var(--text-primary)}.glass-live.is-on{color:var(--success)}.glass-main{margin:1.25rem 1.5rem 1.5rem;position:relative;z-index:5}.glass-main,.glass-main-inner{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden}@media (max-width:768px){.glass-topbar{margin-left:1rem;margin-right:1rem}.glass-main{margin:1rem 1rem 1.25rem}.glass-brand-sub,.glass-topbar-nav .glass-segment span:not(:first-child){display:none}}.door-log-pop{position:relative}.door-log-trigger{align-items:center;background:var(--surface-muted);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:.78rem;font-weight:600;gap:.35rem;padding:.32rem .7rem;transition:background .2s,color .2s,border-color .2s}.door-log-trigger.is-open,.door-log-trigger:hover{background:var(--glass-btn-hover);border-color:var(--glass-border);color:var(--text-primary)}.door-log-trigger.has-logs .door-log-badge{display:block}.door-log-badge{background:var(--warn);border-radius:50%;box-shadow:0 0 6px #fbbf2499;display:none;height:6px;width:6px}.door-log-panel{animation:door-log-in .2s var(--ease);display:flex;flex-direction:column;max-height:min(360px,50vh);padding:.75rem 0;position:absolute;right:0;top:calc(100% + .5rem);width:min(320px,calc(100vw - 2rem));z-index:100}@keyframes door-log-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.door-log-panel-head{border-bottom:1px solid var(--glass-border-soft);display:flex;flex-direction:column;gap:.35rem;padding:0 .85rem .65rem}.door-log-panel-meta{align-items:center;display:flex;gap:.5rem;justify-content:space-between}.door-log-sd-pill{background:var(--surface-muted);border:1px solid var(--glass-border-soft);border-radius:var(--radius-pill);font-size:.68rem;font-weight:700;letter-spacing:.02em;padding:.15rem .45rem}.door-log-sd-pill.tone-ok{border-color:color-mix(in srgb,var(--success) 35%,#0000);color:var(--success)}.door-log-sd-pill.tone-err{border-color:color-mix(in srgb,var(--warn) 35%,#0000);color:var(--warn)}.door-log-sd-tag{background:color-mix(in srgb,#93c5fd 12%,#0000);border:1px solid color-mix(in srgb,#93c5fd 28%,#0000);border-radius:4px;color:#93c5fd;display:inline-block;font-size:.62rem;font-weight:700;letter-spacing:.04em;margin-right:.35rem;padding:.05rem .3rem;vertical-align:.05em}.door-log-list li.is-sd{background:color-mix(in srgb,#93c5fd 6%,#0000)}.door-log-latest{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.8rem;font-weight:600;word-break:break-word}.door-log-empty{color:var(--text-tertiary);font-size:.78rem;line-height:1.45;padding:.85rem}.door-log-list{display:flex;flex-direction:column;gap:.2rem;list-style:none;overflow-y:auto;padding:.35rem .5rem}.door-log-list li{align-items:flex-start;border-radius:8px;display:flex;font-size:.76rem;gap:.65rem;justify-content:space-between;padding:.45rem .5rem}.door-log-list li:hover{background:var(--surface-hover)}.door-log-msg{flex:1 1;font-family:ui-monospace,SF Mono,Menlo,monospace;word-break:break-word}.door-log-time{font-feature-settings:"tnum";color:var(--text-tertiary);flex-shrink:0;font-size:.68rem;font-variant-numeric:tabular-nums}.door-log-latest.tone-ok,.tone-ok .door-log-msg{color:var(--success)}.door-log-latest.tone-err,.tone-err .door-log-msg{color:var(--danger)}.door-log-latest.tone-active,.tone-active .door-log-msg{color:#93c5fd}.door-log-latest.tone-info,.tone-info .door-log-msg{color:var(--text-secondary)}@media (max-width:768px){.door-log-trigger-label{display:none}.door-log-panel{left:auto;max-height:min(420px,60vh);position:fixed;right:3.5rem;top:calc(env(safe-area-inset-top, 0px) + 6rem);width:min(340px,calc(100vw - 2rem))}}.room-canvas-shell{height:100%;min-height:0;position:relative;width:100%}.room-canvas-shell .room-canvas{display:block;height:100%!important;inset:0;position:absolute;width:100%!important}.room-unit-nav{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:var(--overlay-nav);border:1px solid var(--glass-border-soft);border-radius:999px;bottom:.75rem;display:flex;flex-wrap:wrap;gap:.35rem;justify-content:center;left:50%;max-width:calc(100% - 1.5rem);padding:.35rem .45rem;pointer-events:auto;position:absolute;transform:translateX(-50%);z-index:6}.room-unit-nav-btn{-webkit-appearance:none;appearance:none;background:#0000;border:1px solid #0000;border-radius:999px;color:var(--overlay-nav-text);cursor:pointer;font-size:.72rem;font-weight:500;letter-spacing:.02em;padding:.32rem .62rem;transition:color .15s ease,background .15s ease,border-color .15s ease;white-space:nowrap}.room-unit-nav-btn:hover{background:var(--surface-hover);color:var(--overlay-nav-text-hover)}.room-unit-nav-btn.is-active{background:var(--overlay-nav-active-bg);border-color:var(--glass-border);color:var(--overlay-nav-active-text)}.home-view{flex:1 1;min-height:0;overflow-y:auto}.home-bento{grid-gap:1.15rem;align-items:stretch;display:grid;gap:1.15rem;grid-template-columns:repeat(12,1fr);grid-template-rows:auto minmax(360px,auto);margin:0 auto;max-width:1240px}.home-card{display:flex;flex-direction:column;padding:1.25rem 1.35rem}.home-card-top{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-bottom:.85rem}.home-card--door{grid-column:span 4}.home-card--climate{align-items:center;grid-column:span 4}.home-card--toggles{grid-column:span 4}.home-card--room{display:flex;flex-direction:column;grid-column:span 7;overflow:hidden;padding:.65rem;position:relative}.home-card--chart,.home-card--room{grid-row:2;height:100%;min-height:360px}.home-card--chart{grid-column:span 5}.home-door-visual{align-items:center;color:var(--text-primary);display:flex;height:100px;justify-content:center;margin:.5rem 0 1rem;opacity:.9}.home-stats-row{align-items:center;display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin:1rem 0 .75rem}.home-stats-row strong{display:block;font-size:.95rem;margin-top:.2rem}.home-stat-divider{background:var(--glass-border-soft);height:32px;width:1px}.home-log{color:var(--warn);font-size:.75rem;margin-bottom:.75rem;word-break:break-word}.home-door-actions{display:flex;gap:.5rem;margin-top:auto}.home-door-actions .glass-btn{flex:1 1}.home-pill-ok{color:var(--success)}.home-pill-warn{color:var(--warn)}.home-climate-foot{color:var(--text-secondary);display:flex;font-size:.82rem;justify-content:space-between;margin-top:.75rem;width:100%}.home-climate-foot span:first-child{align-items:center;display:flex;gap:.35rem}.home-toggle-grid{grid-gap:.65rem;display:grid;flex:1 1;gap:.65rem;grid-template-columns:1fr 1fr;margin-top:.75rem}.home-ac-temp{align-items:center;background:var(--surface-inset);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);display:flex;gap:.75rem;justify-content:space-between;margin-top:.75rem;padding:.75rem 1rem}.home-ac-temp-label{align-items:center;color:var(--text-secondary);display:inline-flex;font-size:.82rem;font-weight:600;gap:.45rem}.home-ac-temp-stepper{align-items:center;display:inline-flex;gap:.5rem}.home-ac-temp-btn{background:#ffffff0f;background:var(--surface-raised,#ffffff0f);border:1px solid var(--glass-border-soft);border-radius:50%;color:var(--text-primary);cursor:pointer;font-size:1.1rem;font-weight:700;height:2rem;line-height:1;transition:background .2s,border-color .2s,opacity .2s;width:2rem}.home-ac-temp-btn:hover:not(:disabled){border-color:#5b9dff;border-color:var(--accent,#5b9dff)}.home-ac-temp-btn:disabled{cursor:not-allowed;opacity:.4}.home-ac-temp-value{color:var(--text-primary);font-size:1rem;font-weight:700;min-width:3.5rem;text-align:center}.home-toggle-card{align-items:flex-start;background:var(--surface-inset);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:flex;flex-direction:column;font-size:.82rem;font-weight:600;gap:.65rem;padding:1rem;text-align:left;transition:background .2s,border-color .2s}.home-toggle-card:hover:not(:disabled){background:var(--surface-hover);border-color:var(--glass-border)}.home-toggle-card.is-on{border-color:var(--glass-border);color:var(--text-primary)}.home-toggle-card:disabled{cursor:wait;opacity:.5}.home-toggle-card.is-readonly{cursor:default;pointer-events:none}.home-room-canvas{background:var(--scene-bg);border:1px solid var(--scene-canvas-border,var(--glass-border-soft));border-radius:calc(var(--radius-card) - 10px);box-shadow:inset 0 1px 0 var(--glass-border-soft);box-shadow:inset 0 1px 0 var(--scene-canvas-border,var(--glass-border-soft));flex:1 1 auto;height:100%;min-height:0;overflow:hidden;position:relative;transition:background .35s var(--ease),border-color .35s var(--ease);width:100%}.home-room-canvas .room-canvas-shell{inset:0;position:absolute}.home-room-pills{display:flex;flex-wrap:wrap;gap:.45rem;left:1.35rem;position:absolute;top:1.35rem;z-index:5}.home-chart-wrap{flex:1 1;margin:.5rem 0;min-height:160px}.home-sensor-list{border-top:1px solid var(--glass-border-soft);display:flex;flex-direction:column;gap:.35rem;list-style:none;padding-top:.75rem}.home-sensor-list button{background:#0000;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.78rem;justify-content:space-between;padding:.45rem .5rem;transition:background .15s;width:100%}.home-sensor-list button.is-selected,.home-sensor-list button:hover{background:var(--surface-active);color:var(--text-primary)}@media (max-width:1100px){.home-bento{grid-template-columns:repeat(6,1fr)}.home-card--climate,.home-card--door,.home-card--toggles{grid-column:span 6}.home-card--chart,.home-card--room{grid-column:span 6;grid-row:auto;min-height:320px}.home-bento{grid-template-rows:auto}}@media (max-width:600px){.home-bento{grid-template-columns:1fr}.home-card--chart,.home-card--climate,.home-card--door,.home-card--room,.home-card--toggles{grid-column:span 1}}.gauge-ring{margin:0 auto;position:relative}.gauge-ring-center{align-items:center;display:flex;flex-direction:column;inset:0;justify-content:center;position:absolute;text-align:center}.gauge-ring-value{font-family:var(--font-display);font-size:1.75rem;font-weight:700;letter-spacing:-.04em;line-height:1}.gauge-ring-value small{font-size:.95rem;font-weight:600;opacity:.75}.gauge-ring-range{color:var(--text-tertiary);font-size:.68rem;letter-spacing:.04em;margin-top:.35rem}.comms-view{flex:1 1;min-height:0;overflow-y:auto;padding:0}.comms-view-head{align-items:flex-end;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem;margin-left:auto;margin-right:auto;max-width:1280px}.comms-grid{grid-gap:1.1rem;display:grid;gap:1.1rem;grid-template-columns:minmax(280px,360px) 1fr;margin:0 auto;max-width:1280px;min-height:0}.comms-archive,.comms-intercom{display:flex;flex-direction:column;min-height:0;padding:1.35rem}.comms-archive{overflow:hidden}.comms-section-label{align-items:center;display:flex;font-family:var(--font-display);font-size:.95rem;font-weight:600;gap:.45rem;margin-bottom:.35rem}.comms-archive-count{color:var(--text-tertiary);font-size:.75rem;margin-left:auto}.comms-lead{margin-bottom:1.25rem}.comms-mic-ring{align-items:center;border:2px solid var(--glass-border);border-radius:50%;display:flex;height:120px;justify-content:center;margin:0 auto 1.5rem;width:120px}.comms-mic-ring.is-live{animation:comms-pulse 1.4s ease-in-out infinite;border-color:var(--danger);box-shadow:0 0 0 8px #f8717126}@keyframes comms-pulse{50%{transform:scale(1.03)}}.comms-mic-core{background:var(--glass-slider-track);border-radius:50%;height:48px;width:48px}.comms-mic-ring.is-live .comms-mic-core{background:var(--danger)}.comms-intercom-actions{display:flex;flex-direction:column;gap:.55rem}.comms-status{color:var(--text-primary);font-size:.85rem;margin-top:1rem}.comms-list{display:flex;flex:1 1;flex-direction:column;gap:.75rem;list-style:none;margin-top:.75rem;overflow-y:auto}.comms-item{background:var(--surface-inset);border:1px solid var(--glass-border-soft);border-radius:var(--radius-md);padding:1rem}.comms-item-meta{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.55rem}.comms-item-meta time{color:var(--text-tertiary);font-size:.75rem;margin-left:auto}.comms-audio{border-radius:8px;height:36px;margin-bottom:.55rem;width:100%}.comms-item-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.5rem}.comms-transcript{background:var(--surface-hover);border-left:3px solid var(--glass-border);border-radius:0 var(--radius-md) var(--radius-md) 0;font-size:.875rem;margin:.5rem 0;padding:.65rem .85rem}.comms-item .glass-input{margin:.5rem 0}@media (max-width:960px){.comms-grid{grid-template-columns:1fr}}.signage-view{flex:1 1;min-height:0;overflow-y:auto;padding:0}.signage-head{align-items:flex-end;display:flex;justify-content:space-between;margin-bottom:1.25rem;margin-left:auto;margin-right:auto;max-width:1280px}.signage-split{grid-gap:1.1rem;display:grid;gap:1.1rem;grid-template-columns:1fr minmax(300px,400px);margin:0 auto;max-width:1280px}.signage-led-wrap .glass-label{display:block;margin-bottom:.65rem}.signage-led-frame{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--surface-muted);border:1px solid var(--glass-border);border-radius:var(--radius-card);padding:1rem}.signage-led-screen{background:#050506;border:2px solid #1a1a1e;border-radius:var(--radius-md);min-height:88px;overflow:hidden;padding:1.25rem 1rem}.signage-led-text{animation:signage-scroll 18s linear infinite;color:#ff5c5c;font-family:ui-monospace,Menlo,monospace;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-shadow:0 0 12px #ff5c5c73;text-transform:uppercase;white-space:nowrap}@keyframes signage-scroll{0%{transform:translateX(20%)}to{transform:translateX(-80%)}}.signage-led-meta{margin-top:.85rem}.signage-editor{padding:1.35rem}.signage-textarea{margin-top:.5rem;min-height:140px}.signage-count{margin:.35rem 0 1rem;text-align:right}.signage-count,.signage-foot{color:var(--text-tertiary);font-size:.75rem}.signage-foot{margin-top:1rem}@media (max-width:900px){.signage-split{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.signage-led-text{animation:none;white-space:normal}}.login-view{align-items:center;justify-content:center;min-height:100dvh;overflow:hidden;padding:1.5rem}.login-card,.login-view{display:flex;position:relative;width:100%}.login-card{border-radius:var(--radius-card);flex-direction:column;max-width:360px;padding:2rem 1.75rem;text-align:center;z-index:5}.login-mark{align-self:center;margin-bottom:1rem}.login-card .glass-title{margin-bottom:.25rem}.login-card .glass-muted{margin-bottom:1.5rem}.login-card .glass-label{margin-bottom:.4rem;margin-top:.85rem;text-align:left}.login-card .glass-err{margin-bottom:.5rem}.login-submit{justify-content:center;margin-top:1.5rem}
/*# sourceMappingURL=main.47348b41.css.map*/