:root{--bg:#f3f4f1;--surface:#fff;--surface2:#eceee9;--text:#1d2321;--muted:#5f6b66;--accent:#2f7d5b;--accent-text:#fff;--success:#2f7d4f;--warning:#b7791f;--danger:#c0392b;--border:#dde1db;--radius:16px;--radius-sm:calc(var(--radius) * .6);--shadow:0 1px 2px #0000000d, 0 4px 16px #0000000d;--shadow-strong:0 8px 30px #00000024;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono:ui-monospace, "SF Mono", "Cascadia Code", "DejaVu Sans Mono", monospace;--space:16px;--nav-w:232px;--topbar-h:56px;--tabbar-h:64px;--z-fullscreen:9000;--z-modal:10000;--z-popover:10100;--z-toast:10200;--z-tooltip:10300;--z-drag:10400;--z-screensaver:10500;--accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);--danger-soft:color-mix(in srgb, var(--danger) 13%, transparent);--warning-soft:color-mix(in srgb, var(--warning) 16%, transparent);--success-soft:color-mix(in srgb, var(--success) 14%, transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-size:15px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0 0 .4em;font-weight:650;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .8em}code,pre,.mono{font-family:var(--mono);font-size:.88em}pre{background:var(--surface2);border-radius:var(--radius-sm);white-space:pre-wrap;word-break:break-word;max-height:420px;padding:12px;overflow:auto}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.85rem}.tiny{font-size:.76rem}.danger-text{color:var(--danger)}.warning-text{color:var(--warning)}.success-text{color:var(--success)}.nowrap{white-space:nowrap}.ellipsis{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.grow{flex:1;min-width:0}.row{align-items:center;gap:10px;display:flex}.row.wrap{flex-wrap:wrap}.row.top{align-items:flex-start}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.stack.tight{gap:6px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.grid.narrow{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.grid.wide{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:720px){.hidden-phone{display:none!important}}.app{min-height:100%;display:flex}.brand-logo{background:var(--accent);width:32px;height:32px;color:var(--accent-text);border-radius:10px;place-items:center;display:grid}.mh-logo{flex-shrink:0;display:block}.mh-wordmark{letter-spacing:-.02em;white-space:nowrap;font-weight:750}.nav-item{color:var(--text);cursor:pointer;font-weight:520;font:inherit;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:9px 12px;display:flex;text-decoration:none!important}.nav-item:hover{background:var(--surface2)}.nav-item.active{background:var(--accent-soft);color:var(--accent)}.nav-item .count{margin-left:auto}.nav-item .nav-ext{color:var(--muted);flex-shrink:0;margin-left:auto}.nav-item .nav-ext+.count{margin-left:6px}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 12px 4px;font-size:.72rem}.sidebar{width:var(--nav-w);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;height:100vh;transition:width .18s;display:flex;position:sticky;top:0}.sidebar.collapsed{width:68px}.sidebar.editing{width:304px}.sidebar-head{align-items:center;gap:6px;padding:14px 10px 12px 16px;display:flex}.sidebar .brand{min-width:0;color:var(--text);flex:1;align-items:center;gap:10px;font-weight:700;display:flex;text-decoration:none!important}.sidebar .brand .mh-wordmark{font-size:1.14rem}.sidebar-toggle{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-shrink:0;place-items:center;display:grid}.sidebar-toggle:hover{background:var(--surface2);color:var(--text)}.sidebar-scroll{flex-direction:column;flex:1;gap:2px;min-height:0;padding:2px 10px 10px;display:flex;overflow:hidden auto}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:2px;max-height:60vh;padding:4px 10px 12px;display:flex;overflow:hidden auto}.sidebar .nav-item{min-height:38px;color:color-mix(in srgb, var(--text) 88%, var(--muted));padding:8px 12px;font-size:.94rem;position:relative}.sidebar .nav-item>svg{color:var(--muted);flex-shrink:0;transition:color .15s}.sidebar .nav-item:hover>svg{color:var(--text)}.sidebar .nav-item.active{color:var(--accent);font-weight:600}.sidebar .nav-item.active>svg{color:var(--accent)}.sidebar .nav-item.active:before{content:"";background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-10px}.sidebar .nav-section{letter-spacing:.08em;align-items:center;gap:6px;padding:16px 12px 4px;font-size:.7rem;font-weight:650;display:flex}.sidebar-foot>.nav-section:first-child{padding-top:10px}.nav-section-toggle{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;font-family:inherit}.nav-section-toggle svg,.sidebar-foot .nav-section svg{margin-left:auto}.nav-section-toggle:hover{color:var(--text)}.sidebar .nav-edit{min-height:34px;color:var(--muted);margin-top:4px;font-size:.88rem}.sidebar .nav-item.locked{cursor:default;opacity:.55}.sidebar .nav-item.locked:hover{background:0 0}.sidebar.collapsed .sidebar-head{flex-direction:column;gap:8px;padding:14px 0 8px}.sidebar.collapsed .brand{flex:none}.sidebar.collapsed .mh-wordmark,.sidebar.collapsed .nav-label,.sidebar.collapsed .nav-ext{display:none}.sidebar.collapsed .sidebar-scroll,.sidebar.collapsed .sidebar-foot{padding-left:8px;padding-right:8px}.sidebar.collapsed .nav-item{justify-content:center;gap:0;padding:8px 0}.sidebar.collapsed .nav-item.active:before{left:-8px}.sidebar.collapsed .nav-item .count{margin:0;position:absolute;top:2px;right:6px;transform:scale(.85)}.sidebar.collapsed .sidebar-scroll .nav-section{background:var(--border);height:1px;margin:8px 10px;padding:0}.sidebar.collapsed .nav-section-toggle{justify-content:center;padding:10px 0 4px}.sidebar.collapsed .nav-section-toggle svg{margin:0}.sidebar.collapsed .nav-sub{background:var(--surface2);border:0;border-radius:10px;margin:0 4px 4px;padding:2px 0}.sidebar.collapsed .nav-item.sub{min-height:30px;padding:5px 0}.sidebar.collapsed .nav-item.sub>svg{width:15px;height:15px}.sidebar.editing .brand{font-size:1rem}.sidebar-scope{padding:0 2px 8px}.sidebar-scope .btn-group{width:100%;display:flex}.sidebar-scope .btn{flex:1;justify-content:center}.sidebar-help{margin:0 4px 8px;line-height:1.4}.nav-edit-row{border-radius:10px;align-items:center;gap:2px;padding:1px 4px 1px 0;display:flex}.nav-edit-row:hover,.nav-edit-row:focus-within{background:var(--surface2)}.nav-edit-row.drop{box-shadow:inset 0 2px 0 var(--accent)}.nav-edit-row.dragging{opacity:.45}.nav-edit-row .grip{width:20px;height:32px;color:var(--muted);cursor:grab;place-items:center;display:grid}.nav-edit-main{min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:7px 4px;font-size:.93rem;display:flex}.nav-edit-main>svg{color:var(--muted);flex-shrink:0}.nav-edit-main .badge{flex-shrink:0}.nav-edit-row.heading .nav-edit-main{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:650}.nav-edit-actions{opacity:0;transition:opacity .12s;display:flex}.nav-edit-row:hover .nav-edit-actions,.nav-edit-row:focus-within .nav-edit-actions{opacity:1}@media (hover:none){.nav-edit-actions{opacity:1}}.nav-edit-actions .btn{width:26px;height:26px;min-height:0;padding:0}.nav-add{border:1px dashed var(--border);color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:9px;font-weight:600;display:flex}.nav-add:hover{border-color:var(--accent);background:var(--accent-soft)}.sidebar-edit-actions{align-items:center;gap:6px;padding-top:10px;display:flex}.nav-kinds{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.nav-kind{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;gap:2px 10px;padding:10px 12px;display:grid}.nav-kind>svg{color:var(--muted);grid-row:1/span 2}.nav-kind .tiny{grid-column:2}.nav-kind-label{font-size:.92rem;font-weight:600}.nav-kind:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.nav-kind.active{border-color:var(--accent);background:var(--accent-soft)}.nav-kind.active>svg{color:var(--accent)}.nav-pages{flex-wrap:wrap;gap:6px;display:flex}.nav-preview{background:var(--surface2);border-radius:12px;flex-direction:column;gap:6px;max-width:280px;padding:10px 12px;display:flex}.nav-preview .nav-item{background:var(--accent-soft);color:var(--accent);cursor:default}.main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:var(--topbar-h);z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb, var(--border) 60%, transparent);align-items:center;gap:10px;padding:0 20px;display:flex;position:sticky;top:0}.topbar-title{font-size:1.05rem;font-weight:650}.content{width:100%;max-width:1400px;margin:0 auto;padding:22px 24px 40px}.content.full{max-width:none;padding:0}.page-head{flex-wrap:wrap;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.page-head h1{margin:0}.page-head .actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:flex}.tabbar{display:none}@media (max-width:860px){.sidebar{display:none}.content{padding:16px 14px calc(var(--tabbar-h) + 24px)}.topbar{padding:0 14px}.tabbar{height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:30;display:flex;position:fixed;bottom:0;left:0;right:0}.tab{color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-family:inherit;font-size:.7rem;display:flex;text-decoration:none!important}.tab.active{color:var(--accent)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);min-width:0;padding:16px}.card.flat{box-shadow:none}.card.pad-lg{padding:22px}.card-title{align-items:center;gap:8px;margin-bottom:10px;font-weight:620;display:flex}.card-title .right{margin-left:auto}.section{margin-bottom:26px}.section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);align-items:center;gap:8px;margin:0 0 10px;font-size:.82rem;font-weight:650;display:flex}.divider{background:var(--border);height:1px;margin:14px 0}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:11px 4px;display:flex}.list-item:last-child{border-bottom:0}.list-item.clickable{cursor:pointer;border-radius:8px}.list-item.clickable:hover{background:var(--surface2)}.empty{text-align:center;color:var(--muted);padding:36px 16px}.empty .icon-big{background:var(--surface2);width:56px;height:56px;color:var(--accent);border-radius:18px;place-items:center;margin:0 auto 12px;display:grid}.btn{border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:560;transition:background .15s,border-color .15s,transform 50ms;display:inline-flex;text-decoration:none!important}.btn:hover{background:var(--surface2)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.primary:hover{background:color-mix(in srgb, var(--accent) 88%, black)}.btn.danger{color:var(--danger);border-color:color-mix(in srgb, var(--danger) 40%, var(--border))}.btn.danger.solid{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--surface2)}.btn.sm{border-radius:8px;height:30px;padding:0 10px;font-size:.86rem}.btn.lg{height:48px;padding:0 22px;font-size:1.02rem}.btn.icon{width:38px;padding:0}.btn.icon.sm{width:30px}.btn.block{width:100%}.btn-group{border:1px solid var(--border);border-radius:10px;display:inline-flex;overflow:hidden}.btn-group .btn{border:0;border-right:1px solid var(--border);border-radius:0}.btn-group .btn:last-child{border-right:0}.btn-group .btn.active{background:var(--accent-soft);color:var(--accent)}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>label,.label{color:var(--text);font-size:.85rem;font-weight:580}.field .help{color:var(--muted);font-size:.8rem}.field .error{color:var(--danger);font-size:.82rem}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);width:100%;height:40px;color:var(--text);font:inherit;border-radius:10px;padding:0 12px}textarea.input{resize:vertical;height:auto;min-height:90px;padding:10px 12px;line-height:1.4}textarea.input.code{font-family:var(--mono);white-space:pre;min-height:260px;font-size:.85rem}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.input.sm{border-radius:8px;height:32px;padding:0 8px;font-size:.88rem}.input-px{border:1px solid var(--border);background:var(--surface);border-radius:8px;align-items:center;height:32px;display:flex;overflow:hidden}.input-px span{color:var(--muted);text-align:center;min-width:18px;padding:0 6px;font-size:.75rem}.input-px input{width:100%;height:100%;color:var(--text);font:inherit;background:0 0;border:0;min-width:0;padding:0 4px;font-size:.88rem}.input-px input:focus{outline:none}.form-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.checkbox{cursor:pointer;align-items:center;gap:8px;font-size:.92rem;display:flex}input[type=range]{accent-color:var(--accent);width:100%}.checkbox input{width:18px;height:18px;accent-color:var(--accent)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;height:30px;font:inherit;color:var(--text);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:.86rem;display:inline-flex}.chip.active{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--accent);font-weight:600}.chip .x{opacity:.6}.scroll-row{align-items:center;gap:6px;min-width:0;display:flex}.scroll-row-track{scrollbar-width:none;flex:1;gap:6px;min-width:0;display:flex;overflow-x:auto}.scroll-row-track::-webkit-scrollbar{display:none}.scroll-row-track>*{white-space:nowrap;flex-shrink:0}.scroll-row-track.more-left{-webkit-mask-image:linear-gradient(90deg,#0000,#000 22px);mask-image:linear-gradient(90deg,#0000,#000 22px)}.scroll-row-track.more-right{-webkit-mask-image:linear-gradient(270deg,#0000,#000 22px);mask-image:linear-gradient(270deg,#0000,#000 22px)}.scroll-row-track.more-left.more-right{-webkit-mask-image:linear-gradient(90deg,#0000,#000 22px calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#0000,#000 22px calc(100% - 22px),#0000)}.scroll-row-arrow{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text);cursor:pointer;border-radius:999px;flex-shrink:0;place-items:center;display:grid}.scroll-row-arrow:hover:not(:disabled){background:var(--surface2)}.scroll-row-arrow:disabled{opacity:.35;cursor:default}.switch{cursor:pointer;background:color-mix(in srgb, var(--muted) 35%, var(--surface2));border:0;border-radius:999px;flex-shrink:0;width:50px;height:30px;padding:0;transition:background .2s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--accent)}.switch.on:after{transform:translate(20px)}.switch.pending{animation:1.2s ease-in-out infinite pulse}.switch.pending:before{content:"";border:2px dashed var(--accent);opacity:.7;border-radius:999px;position:absolute;inset:-4px}.switch:disabled{opacity:.45;cursor:not-allowed}@keyframes pulse{50%{opacity:.7}}.slider{background:var(--surface2);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:12px;height:36px;position:relative;overflow:hidden}.slider-fill{background:var(--accent);opacity:.85;position:absolute;inset:0 auto 0 0}.slider-target{background:var(--text);opacity:.55;border-radius:2px;width:3px;animation:1.2s ease-in-out infinite pulse;position:absolute;top:4px;bottom:4px}.slider-label{pointer-events:none;mix-blend-mode:normal;justify-content:space-between;align-items:center;padding:0 12px;font-size:.86rem;font-weight:600;display:flex;position:absolute;inset:0}.slider.disabled{opacity:.5;pointer-events:none}.badge{background:var(--surface2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.74rem;font-weight:620;display:inline-flex}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warning{background:var(--warning-soft);color:var(--warning)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.sim{background:repeating-linear-gradient(-45deg, var(--warning-soft), var(--warning-soft) 6px, transparent 6px, transparent 12px);color:var(--warning);border:1px solid color-mix(in srgb, var(--warning) 40%, transparent)}.dot{background:var(--muted);border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.ok{background:var(--success)}.dot.warn{background:var(--warning)}.dot.err{background:var(--danger)}.stale{opacity:.55}.spinner{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:currentColor;border-radius:50%;flex-shrink:0;width:16px;height:16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-tile{background:var(--surface2);width:40px;height:40px;color:var(--muted);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.icon-tile.on{background:var(--accent-soft);color:var(--accent)}.icon-tile.warm{color:#d48806;background:#f5a52433}.icon-tile.alert{background:var(--danger-soft);color:var(--danger)}.banner{background:var(--surface2);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:.92rem;display:flex}.banner.info{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 30%, transparent)}.banner.warning{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 35%, transparent)}.banner.danger{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 35%, transparent)}.conn-banner{top:var(--topbar-h);z-index:19;border-radius:0;justify-content:center;margin:0;position:sticky}.toasts{z-index:var(--z-toast);flex-direction:column;gap:8px;max-width:min(420px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}@media (max-width:860px){.toasts{bottom:calc(var(--tabbar-h) + 14px);max-width:none;left:10px;right:10px}}.toast{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);box-shadow:var(--shadow-strong);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;animation:.2s ease-out toast-in;display:flex}.toast.error{border-left-color:var(--danger)}.toast.warning{border-left-color:var(--warning)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.modal-backdrop{z-index:var(--z-modal);background:#0a0f0d73;justify-content:center;align-items:center;padding:16px;animation:.15s fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);color:var(--text);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow-strong);flex-direction:column;width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden}.modal.wide{width:min(900px,100%)}.modal.xwide{width:min(1200px,100%)}.modal-head{align-items:center;gap:10px;padding:16px 18px 10px;display:flex}.modal-head h2{margin:0;font-size:1.12rem}.modal-body{padding:6px 18px 18px;overflow:auto}.modal-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}@media (max-width:600px){.modal-backdrop{align-items:flex-end;padding:0}.modal{border-radius:18px 18px 0 0;max-height:92vh}}.modal.entity-picker{width:min(1040px,100%);height:min(700px,100vh - 32px)}.modal.entity-picker .modal-body{flex-direction:column;flex:1;min-height:0;padding-bottom:14px;display:flex;overflow:hidden}.epick{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.epick-top{align-items:center;gap:12px;display:flex}.epick-search{flex:1;min-width:0;position:relative}.epick-search>svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.epick-search .input{width:100%;padding-left:34px}.epick-empty{border:1px solid var(--border);border-radius:var(--radius);flex:1;place-items:center;display:grid}.epick-panes{border:1px solid var(--border);border-radius:var(--radius);flex:1;grid-template-columns:minmax(250px,5fr) 7fr;min-height:0;display:grid;overflow:hidden}.epick-list{border-right:1px solid var(--border);background:var(--surface2);padding:0 6px 8px;overflow:auto}.epick-room{z-index:1;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface2);padding:10px 8px 5px;font-size:.74rem;font-weight:650;position:sticky;top:0}.epick-source{width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:7px 8px;display:flex}.epick-source>.grow{flex-direction:column;display:flex}.epick-source>svg:last-child{color:var(--muted);flex-shrink:0}.epick-source:hover{background:var(--surface)}.epick-source.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.epick-source-name{font-size:.92rem;font-weight:560}.epick-count{background:var(--accent);color:var(--on-accent,#fff);border-radius:999px;flex-shrink:0;align-items:center;gap:2px;padding:1px 7px;font-size:.72rem;font-weight:650;display:inline-flex}.epick-detail{min-width:0;padding:12px 14px 14px;overflow:auto}.epick-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:4px;padding-bottom:10px;display:flex}.epick-back{display:none}.epick-hint{height:100%;color:var(--muted);text-align:left;justify-content:center;align-items:center;gap:12px;max-width:420px;margin:0 auto;padding:24px;display:flex}.epick-hint b{color:var(--text)}.pick-list{flex-direction:column;gap:6px;display:flex}.pick-entity{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text);text-align:left;cursor:pointer;font:inherit;border-radius:12px;align-items:center;gap:12px;padding:8px 10px;display:flex}.pick-entity .icon-tile{border-radius:10px;width:36px;height:36px}.pick-entity>.grow{flex-direction:column;display:flex}.pick-entity:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.pick-entity.selected{border-color:var(--accent);background:var(--accent-soft)}.pick-entity.selected>svg:last-child{color:var(--accent)}.pick-entity.other{border-style:dashed}.pick-name{font-weight:560}.pick-value{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;max-width:40%;color:var(--muted);flex-shrink:0;font-size:.86rem;overflow:hidden}.pick-caps{flex-wrap:wrap;gap:6px;padding:6px 0 2px 58px;display:flex}.pick-caps .chip{font-size:.82rem}.epick-sub{margin-top:8px}.epick-sub>summary{cursor:pointer;color:var(--muted);padding:6px 2px;font-weight:600}.epick-sub[open]>summary{margin-bottom:6px}@media (max-width:720px){.modal.entity-picker{height:92vh}.epick-top{flex-wrap:wrap}.epick-panes{grid-template-columns:1fr}.epick-list{border-right:0}.epick-panes.detail .epick-list,.epick-panes:not(.detail) .epick-detail{display:none}.epick-back{display:inline-flex}.pick-caps{padding-left:0}}.tabs{border-bottom:1px solid var(--border);scrollbar-width:thin;gap:4px;margin-bottom:16px;display:flex;overflow:auto hidden}.tabs button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 12px;font-weight:560}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}table.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);padding:8px;font-size:.78rem;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:top;padding:9px 8px}.table-wrap{overflow-x:auto}.auth-page{background:radial-gradient(circle at 20% 10%, color-mix(in srgb, var(--accent) 16%, transparent), transparent 50%), var(--bg);place-items:center;min-height:100%;padding:24px 16px;display:grid}.auth-card{width:min(480px,100%)}.auth-card.wide{width:min(680px,100%)}.steps{gap:6px;margin-bottom:18px;display:flex}.steps span{background:var(--surface2);border-radius:2px;flex:1;height:4px}.steps span.done{background:var(--accent)}.keypad{grid-template-columns:repeat(3,1fr);gap:10px;max-width:300px;margin:0 auto;display:grid}.keypad button{border:1px solid var(--border);background:var(--surface);height:56px;font:inherit;color:var(--text);cursor:pointer;border-radius:14px;font-size:1.35rem;font-weight:600}.keypad button:active{background:var(--surface2)}.pin-dots{justify-content:center;gap:10px;margin:10px 0 16px;display:flex}.pin-dots span{border:2px solid var(--muted);border-radius:50%;width:14px;height:14px}.pin-dots span.filled{background:var(--text);border-color:var(--text)}.timeline{padding-left:22px;position:relative}.timeline:before{content:"";background:var(--border);width:2px;position:absolute;top:6px;bottom:6px;left:7px}.tl-step{padding:4px 0 10px;position:relative}.tl-step:before{content:"";background:var(--surface);border:2px solid var(--muted);border-radius:50%;width:10px;height:10px;position:absolute;top:8px;left:-19px}.tl-step.ok:before{border-color:var(--success);background:var(--success)}.tl-step.fail:before{border-color:var(--warning)}.tl-step.error:before{border-color:var(--danger);background:var(--danger)}.tl-step.waiting:before{border-color:var(--accent)}.tl-step.cancelled:before{border-color:var(--muted);background:var(--muted)}.block{border:1px solid var(--border);background:var(--surface);border-radius:12px;padding:12px}.block-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.block-children{border-left:2px solid var(--border);margin-left:14px;padding-left:12px}.block.when{border-left:4px solid #3b82f6}.block.if{border-left:4px solid #f59e0b}.block.then{border-left:4px solid var(--accent)}.explain{background:var(--accent-soft);border-radius:12px;padding:14px 16px;font-size:1.02rem;line-height:1.5}.block-section{border:1px solid var(--border);background:var(--surface);border-radius:14px;padding:14px 14px 12px}.block-section>.block-section-head{align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.block-section-head .block-icon{margin-top:1px}.block-section-head h3{margin:0;font-size:1.02rem}.block-section-head p{margin:2px 0 0}.block-list{flex-direction:column;gap:8px;display:flex}.block-list.compact{gap:6px}.block-empty{border:1px dashed var(--border);border-radius:10px;padding:10px 12px}.block-row{border:1px solid var(--border);background:var(--surface);border-radius:12px;transition:box-shadow .15s,border-color .15s}.block-row.open{box-shadow:var(--shadow)}.block-row.has-error{border-color:color-mix(in srgb, var(--danger) 55%, var(--border))}.block-row.off .block-row-main{opacity:.55}.block-row.drag-over{border-color:var(--accent);box-shadow:0 -3px 0 var(--accent)}.block-row-head{align-items:center;gap:4px;padding:4px 6px 4px 4px;display:flex}.block-grip{cursor:grab;color:var(--muted);touch-action:none;padding:6px 2px;display:inline-flex}.block-row-main{text-align:left;min-width:0;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:10px;padding:6px 4px;display:flex}.block-texts{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.block-title{font-weight:580;line-height:1.3}.block-sub{color:var(--muted);font-size:.8rem;line-height:1.3}.block-badges{align-items:center;gap:6px;display:inline-flex}.block-err-dot{color:var(--danger);display:inline-flex}.block-icon{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:9px;flex:none;justify-content:center;align-items:center;display:inline-flex}.block-icon.big{border-radius:12px;width:42px;height:42px}.block-icon.when{color:#2563eb;background:#3b82f626}.block-icon.if{color:#b45309;background:#f59e0b2e}.block-row-body{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 14px 14px;display:flex}.block-about{line-height:1.4}.block-help{background:var(--surface2);border-radius:10px;margin-top:8px;padding:10px 12px;font-size:.88rem}.block-help p{margin:0 0 6px}.block-help ul{margin:4px 0 0;padding-left:18px}.block-msg{border-radius:8px;align-items:flex-start;gap:6px;padding:6px 10px;font-size:.85rem;display:flex}.block-msg.danger{background:var(--danger-soft);color:var(--danger)}.block-msg.warning{background:var(--warning-soft);color:var(--warning)}.block-msg.collapsed{margin:0 8px 8px}.block-nest{border-left:3px solid var(--border);flex-direction:column;gap:6px;padding-left:12px;display:flex}.block-nest.if{border-left-color:#f59e0b}.block-nest.then{border-left-color:var(--accent)}.block-nest-title{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.82rem;font-weight:640}.link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.link-btn:hover{text-decoration:underline}.value-ref{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.editor-savebar{z-index:5;background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--border);box-shadow:var(--shadow-strong);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;margin-top:20px;padding:10px 12px;position:sticky;bottom:12px}.picker-item-add{display:none}@media (max-width:860px){.editor-savebar{bottom:calc(var(--tabbar-h) + 10px + env(safe-area-inset-bottom,0px))}.editor-savebar .small{display:none}.block-row-head{padding-right:2px}}.block-advanced>summary{cursor:pointer;-webkit-user-select:none;user-select:none}.picker{grid-template-columns:190px minmax(0,1fr) minmax(0,1.05fr);gap:14px;min-height:420px;margin-top:12px;display:grid}.picker-cats{flex-direction:column;gap:2px;display:flex}.picker-cats button{font:inherit;color:var(--text);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;padding:8px 10px;display:flex}.picker-cats button .tab-count{margin-left:auto}.picker-cats button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.picker-list{flex-direction:column;gap:4px;max-height:60vh;padding-right:4px;display:flex;overflow:auto}.picker-item{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.picker-item:hover{background:var(--surface2)}.picker-item.active{border-color:var(--accent);background:var(--accent-soft)}.picker-item.missing{opacity:.6}.picker-item-title{align-items:center;gap:6px;font-weight:600;display:flex}.picker-item-desc{color:var(--muted);font-size:.83rem;line-height:1.35;display:block}.picker-detail{border-left:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:10px;padding-left:16px;display:flex}.picker-detail p{margin:0}.picker-detail .block-help{align-self:stretch;margin:0}@media (max-width:900px){.picker-item.active .picker-item-add{margin-top:8px;display:inline-flex}.picker{grid-template-columns:1fr;min-height:0}.picker-cats{flex-direction:row;overflow-x:auto}.picker-cats button{white-space:nowrap}.picker-cats button .tab-count{display:none}.picker-list{max-height:40vh}.picker-detail{border-left:0;border-top:1px solid var(--border);padding:12px 0 0}}.helper-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;display:grid}.helper-card{flex-direction:column;gap:10px;display:flex}.helper-value{font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:600}.kind-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.kind-card{text-align:left;font:inherit;color:inherit;cursor:pointer;flex-direction:column;gap:6px;display:flex}.kind-card:hover{border-color:var(--accent)}.kind-card ul{color:var(--muted);margin:0;padding-left:16px;font-size:.8rem}.back-link{color:var(--muted);align-items:center;gap:6px;margin-bottom:8px;font-size:.86rem;display:inline-flex}.back-link:hover{color:var(--text);text-decoration:none}.page-head-text{min-width:0}.page-head .actions{align-items:center}.device-avatar{background:var(--surface2);width:40px;height:40px;color:var(--muted);border-radius:12px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.device-avatar.photo{border:1px solid var(--border);background:#fff}.device-avatar img{object-fit:contain;width:100%;height:100%;padding:3px}.device-avatar.sm{border-radius:9px;width:30px;height:30px}.device-avatar.lg{border-radius:18px;width:72px;height:72px}.device-avatar.lg img{padding:6px}.lqi{height:14px;color:var(--muted);align-items:flex-end;gap:2px;display:inline-flex}.lqi i{background:var(--border);border-radius:1px;width:4px;display:block}.lqi i:first-child{height:4px}.lqi i:nth-child(2){height:7px}.lqi i:nth-child(3){height:10px}.lqi i:nth-child(4){height:13px}.lqi-4 i.on,.lqi-3 i.on{background:var(--success)}.lqi-2 i.on{background:var(--warning)}.lqi-1 i.on{background:var(--danger)}.lqi .tiny{margin-left:4px;line-height:1}.menu{display:inline-block;position:relative}.menu-pop{background:var(--surface);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow-strong);z-index:var(--z-popover);border-radius:12px;flex-direction:column;padding:6px;display:flex;position:fixed}.menu-pop button{font:inherit;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:9px 10px;display:flex}.menu-pop button:hover:not(:disabled){background:var(--surface2)}.menu-pop button.danger{color:var(--danger)}.menu-pop button:disabled{opacity:.5;cursor:not-allowed}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:18px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;min-width:0;padding:12px 14px;display:flex}.stat-icon{background:var(--surface2);width:36px;height:36px;color:var(--muted);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.stat.ok .stat-icon{background:var(--success-soft);color:var(--success)}.stat.warn .stat-icon{background:var(--warning-soft);color:var(--warning)}.stat.err .stat-icon{background:var(--danger-soft);color:var(--danger)}.stat-body{min-width:0}.stat-label{color:var(--muted);white-space:nowrap;font-size:.78rem}.stat-value{white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:650;overflow:hidden}.stat-sub{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;overflow:hidden}.tabs button{align-items:center;gap:7px;display:inline-flex}.tab-count{background:var(--surface2);color:var(--muted);border-radius:999px;padding:1px 7px;font-size:.75rem}.tabs button.active .tab-count{background:var(--accent-soft);color:var(--accent)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.toolbar .grow{flex:1}.zdev-table td{vertical-align:middle}.zdev-table tr.clickable{cursor:pointer}.zdev-table tr.clickable:hover td{background:var(--surface2)}.zdev-name{align-items:center;gap:10px;min-width:0;display:flex}.action-list{flex-direction:column;gap:2px;display:flex}.action-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.action-row:last-child{border-bottom:0}.action-row .grow{min-width:0}.action-row .btn{flex-shrink:0}.dropzone{border:2px dashed var(--border);border-radius:var(--radius-sm);text-align:center;color:var(--muted);cursor:pointer;padding:22px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.netmap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);touch-action:none;height:clamp(380px,100vh - 330px,760px);position:relative;overflow:hidden}.netmap svg{cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.netmap svg.dragging{cursor:grabbing}.netmap .node{cursor:pointer}.netmap .node text{fill:var(--text);paint-order:stroke;stroke:var(--surface);stroke-width:3px;pointer-events:none;font-size:11px}.netmap .link{stroke-linecap:round}.netmap-tools{flex-direction:column;gap:6px;display:flex;position:absolute;bottom:10px;right:10px}.netmap-legend{background:color-mix(in srgb, var(--surface) 90%, transparent);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:4px;padding:8px 10px;font-size:.78rem;display:flex;position:absolute;bottom:10px;left:10px}.netmap-legend span{align-items:center;gap:6px;display:inline-flex}.netmap-legend i{border-radius:2px;width:18px;height:3px;display:inline-block}.netmap-tools .btn{background:var(--surface2)}.netmap-side{background:var(--surface);border:1px solid var(--border);width:min(300px,100% - 70px);box-shadow:var(--shadow-strong);border-radius:12px;max-height:calc(100% - 20px);padding:12px;position:absolute;top:10px;right:10px;overflow:auto}.card.settings{padding:4px 18px}.setting{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.settings>.setting:last-child,.settings>.option-block:last-child{border-bottom:0}.setting.wide{flex-direction:column;align-items:stretch;gap:8px}.setting-text{min-width:0}.setting-label{font-weight:580}.setting-help{color:var(--muted);margin-top:2px;font-size:.84rem}.setting-control{flex-shrink:0;max-width:100%}.setting:not(.wide) .setting-control .input:not(.time-input){width:120px}.setting-control .row{flex-wrap:nowrap}.time-input{font-variant-numeric:tabular-nums;width:96px}.option-block{border-bottom:1px solid var(--border)}.option-block>.setting{border-bottom:0}.option-children{border-left:3px solid var(--accent-soft);background:color-mix(in srgb, var(--surface2) 45%, transparent);border-radius:0 10px 10px 0;margin:0 0 14px;padding:0 14px}.option-children>.setting:last-child{border-bottom:0}@media (max-width:600px){.setting{flex-direction:column;align-items:stretch;gap:8px}}.nav-sub{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin:1px 0 4px 22px;padding-left:8px;display:flex}.nav-item.sub{gap:10px;min-width:0;min-height:32px;padding:6px 10px;font-size:.88rem}.sidebar .nav-item.sub.active:before{display:none}.nav-item.sub.drop{box-shadow:inset 0 2px 0 var(--accent)}.nav-item.sub.dragging{opacity:.5}.nav-item.sub .count{color:var(--muted)}.btn.pin-on{color:var(--accent)}.search-box{width:min(320px,100%);position:relative}.search-box svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search-box .input{padding-left:34px}.filter-btn{gap:6px;height:38px;padding:0 12px;font-weight:540}.filter-btn.active{border-color:color-mix(in srgb, var(--accent) 55%, var(--border));color:var(--accent);background:var(--accent-soft)}.filter-count{background:var(--accent);color:var(--accent-text);border-radius:999px;padding:3px 6px;font-size:.72rem;line-height:1}.filter-pop{min-width:240px;max-height:340px;overflow:auto}.filter-opt{cursor:pointer;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;display:flex}.filter-opt:hover{background:var(--surface2)}.filter-opt input{accent-color:var(--accent)}.filter-clear{font:inherit;color:var(--muted);text-align:left;cursor:pointer;border:0;border-top:1px solid var(--border);background:0 0;margin-top:4px;padding:8px 10px;font-size:.84rem}.filter-tags{flex-wrap:wrap;align-items:center;gap:6px;margin:-4px 0 16px;display:flex}.filter-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:4px 6px 4px 11px;font-size:.84rem;font-weight:540;display:inline-flex}.filter-tag button{width:20px;height:20px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.filter-tag button:hover{background:color-mix(in srgb, var(--accent) 20%, transparent)}.filter-reset{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:.84rem;text-decoration:underline}.room-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.room-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.room-card{--room:var(--accent);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;font:inherit;color:var(--text);box-shadow:var(--shadow);flex-direction:column;padding:0;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative;overflow:hidden}.room-card:hover{border-color:color-mix(in srgb, var(--room) 45%, var(--border));transform:translateY(-1px)}.room-card.drop{box-shadow:0 0 0 2px var(--accent)}.room-card.dragging{opacity:.45}.room-cover{height:108px;color:var(--room);background:radial-gradient(circle at 80% 0%, color-mix(in srgb, var(--room) 34%, transparent), transparent 60%), color-mix(in srgb, var(--room) 14%, var(--surface2));place-items:center;display:grid;position:relative}.room-cover img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.room-cover:after{content:"";background:var(--room);height:4px;position:absolute;inset:auto 0 0}.room-actions{opacity:0;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:8px;right:8px}.room-card:hover .room-actions,.room-card:focus-within .room-actions{opacity:1}@media (hover:none){.room-actions{opacity:1}}.room-actions .btn{background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.room-body{flex-direction:column;gap:4px;min-width:0;padding:12px 14px 14px;display:flex}.room-name{align-items:center;gap:8px;min-width:0;font-size:1.02rem;font-weight:650;display:flex}.room-icon{width:26px;height:26px;color:var(--room);background:color-mix(in srgb, var(--room) 16%, transparent);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.room-meta{color:var(--muted);font-size:.82rem}.room-stats{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.room-stats span{background:var(--surface2);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.78rem;display:inline-flex}.room-stats span.on{color:#d48806;background:#f5a5242e}.room-stats span.warn{background:var(--warning-soft);color:var(--warning)}.room-card.add,.tile-card.add{border:2px dashed var(--border);min-height:190px;box-shadow:none;color:var(--muted);background:0 0;justify-content:center;align-items:center;gap:8px;font-weight:560}.room-card.add:hover,.tile-card.add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.room-card.preview{cursor:default;flex-shrink:0;width:240px}.room-card.preview:hover{transform:none}.room-editor{align-items:flex-start;gap:20px;display:flex}.room-editor>.stack{flex:1;min-width:0}@media (max-width:720px){.room-editor{flex-direction:column}.room-card.preview{width:100%}}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatch{cursor:pointer;width:30px;height:30px;color:var(--muted);border:2px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid;position:relative;box-shadow:inset 0 0 0 1px #00000026}.swatch.active{border-color:var(--text)}.swatch.none{background:conic-gradient(var(--accent) 0 50%, var(--surface2) 0 100%)}.swatch.custom{background:var(--surface2)}.swatch.custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.tile-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;display:grid}.tile-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);font:inherit;color:var(--text);flex-direction:column;gap:8px;min-width:0;padding:14px;display:flex}.tile-card.add{cursor:pointer;flex-direction:row;min-height:150px}.tile-card.on{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.tile-head{align-items:center;gap:10px;min-width:0;display:flex}.tile-members{min-height:1.2em}.tile-foot{border-top:1px solid var(--border);align-items:center;gap:10px;margin-top:auto;padding-top:6px;display:flex}.heating-global{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.thermo-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.thermo-card.heating{border-color:color-mix(in srgb, #f59f00 45%, var(--border));background:linear-gradient(180deg, color-mix(in srgb, #f59f00 7%, var(--surface)), var(--surface) 60%)}.thermo-main{justify-content:space-between;align-items:flex-end;gap:12px;margin:4px 0;display:flex}.thermo-value{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:1.7rem;font-weight:650}.thermo-value.accent{color:var(--accent);text-align:center;min-width:92px}.thermo-target{text-align:right}.demand-bar{background:var(--surface2);border-radius:3px;height:6px;overflow:hidden}.demand-bar span{background:#f59f00;height:100%;display:block}.thermo-parts{flex-wrap:wrap;gap:5px;display:flex}.thermo-parts span{background:var(--surface2);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.78rem;display:inline-flex}.thermo-parts span.on{color:#d48806;background:#f59f002e}.thermo-parts span.bad{background:var(--danger-soft);color:var(--danger)}.settings-group{border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 16px}.settings-group>.setting:last-child{border-bottom:0}.settings-title{color:var(--accent);align-items:center;gap:8px;padding:12px 0 4px;font-weight:650;display:flex}.boiler-card.on{border-color:color-mix(in srgb, #f59f00 45%, var(--border))}.heating-global .btn-group{flex-wrap:wrap}.heating-global .grow{min-width:240px}@media (max-width:600px){.heating-global .btn-group{grid-template-columns:repeat(5,minmax(0,1fr));width:100%;display:grid}.heating-global .btn-group .btn{justify-content:center;padding:0 2px;font-size:.8rem}.heating-global .btn-group .btn svg{display:none}.heating-global .grow{min-width:0}}.center-text{text-align:center}.stepper{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-shrink:0;align-items:center;height:40px;display:inline-flex;overflow:hidden}.stepper:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.stepper-btn{width:36px;height:100%;color:var(--text);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.stepper-btn:hover:not(:disabled){background:var(--surface2)}.stepper-btn:disabled{opacity:.35;cursor:default}.stepper-input{width:48px;color:var(--text);font:inherit;font-variant-numeric:tabular-nums;text-align:right;background:0 0;border:0;padding:0;font-weight:620}.stepper-input:focus{outline:none}.stepper-unit{color:var(--muted);padding:0 6px 0 3px;font-size:.85rem}.dial{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.dial-face{aspect-ratio:1;width:100%;max-width:250px;position:relative;container-type:inline-size}.dial-face>svg{touch-action:none;cursor:pointer;outline:none;width:100%;height:100%;display:block;overflow:visible}.dial.locked .dial-face>svg{cursor:default}.dial-track{fill:none;stroke:var(--surface2);stroke-width:16px;stroke-linecap:round}.dial-value{fill:none;stroke-width:16px;stroke-linecap:round}.dial-tick{stroke:color-mix(in srgb, var(--muted) 30%, transparent);stroke-width:1.5px;stroke-linecap:round}.dial-tick.major{stroke:color-mix(in srgb, var(--muted) 65%, transparent);stroke-width:2px}.dial-tick.lit{stroke:var(--accent)}.dial.heating .dial-tick.lit{stroke:#f59f00}.dial-knob circle:first-child{fill:var(--surface);stroke:var(--accent);stroke-width:4px;filter:drop-shadow(0 2px 4px #0000004d);transition:r .15s}.dial-knob .dot{fill:var(--accent)}.dial.heating .dial-knob circle:first-child{stroke:#f59f00}.dial.heating .dial-knob .dot{fill:#f59f00}.dial.dragging .dial-knob circle:first-child,.dial-face>svg:focus-visible .dial-knob circle:first-child{r:16px}.dial-current circle{fill:var(--text);stroke:var(--surface);stroke-width:2.5px}.dial-center{text-align:center;pointer-events:none;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:20% 16% 24%}.dial-status{letter-spacing:.06em;text-transform:uppercase;min-height:1.3em;color:var(--muted);font-size:max(10px,4.8cqw);font-weight:650}.dial.heating .dial-status{color:#d48806}.dial-target{letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:19cqw;font-weight:300;line-height:1.05}.dial-unit{vertical-align:.95em;color:var(--muted);margin-left:2px;font-size:.34em;font-weight:500}.dial.off .dial-target{color:var(--muted);font-size:12cqw;font-weight:550}.dial-current-text{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:4px;margin-top:3px;font-size:max(11px,5.4cqw);display:inline-flex}.dial-btn{border:1px solid var(--border);background:var(--surface);width:15cqw;min-width:32px;max-width:44px;height:15cqw;min-height:32px;max-height:44px;color:var(--text);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:3%}.dial-btn.minus{left:27%}.dial-btn.plus{right:27%}.dial-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.dial-btn:disabled{opacity:.4;cursor:default}.dcard .dial{flex:1;justify-content:center}.thermo-toolbar{align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}@media (max-width:700px){.thermo-toolbar{flex-direction:column;gap:10px}}.thermo-card.view-dial .tile-head{margin-bottom:2px}.zone-value{font-variant-numeric:tabular-nums;font-size:1.8rem;font-weight:650}.zone-value.accent{color:var(--accent)}.zone-plan{align-items:center;gap:5px;margin-top:4px;display:inline-flex}.manual-control{background:color-mix(in srgb, var(--accent) 8%, var(--surface2));border-radius:12px;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;padding:8px;display:flex}.manual-presets{gap:6px;margin-left:auto;display:flex}.manual-value{text-align:center;font-variant-numeric:tabular-nums;min-width:76px;font-size:1.25rem;font-weight:650}.zone-editor .setting:not(.wide) .setting-control select.input:not(.time-input){width:230px}.boiler-groups .setting.wide .setting-control .input{width:96px}.boiler-groups .setting.wide .setting-control select.input{width:120px}.zone-editor .settings-group,.plan-editor .settings-group{padding:4px 18px 6px}.day-bar{background:var(--surface2);border-radius:6px;width:100%;position:relative;overflow:hidden}.day-bar span{opacity:.9;position:absolute;top:0;bottom:0}.day-bar.off{background:repeating-linear-gradient(135deg, var(--surface2) 0 6px, color-mix(in srgb, var(--muted) 22%, var(--surface2)) 6px 12px)}.day-bar.off.hors_gel{background:repeating-linear-gradient(135deg, color-mix(in srgb, #3bc9db 25%, var(--surface2)) 0 6px, color-mix(in srgb, #3bc9db 45%, var(--surface2)) 6px 12px)}.hour-scale{height:14px;color:var(--muted);font-size:.7rem;position:relative}.hour-scale span{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.hour-scale span:first-child{transform:none}.hour-scale span:last-child{transform:translate(-100%)}.temp-chips{flex-wrap:wrap;gap:6px;display:flex}.temp-chip{background:var(--surface2);color:var(--muted);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8rem;display:inline-flex}.temp-chip i,.temp-tile-head i,.week-legend i,.pf .dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;display:inline-block}.temp-chip b{color:var(--text);font-weight:650}.plan-preview{flex-direction:column;gap:6px;padding:4px 0 14px;display:flex}.period-tag{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-weight:600;display:inline-flex}.plan-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-items:start;gap:14px;display:grid}.plan-card{flex-direction:column;gap:12px;display:flex}.plan-card .card-title{margin-bottom:0}.mini-week{flex-direction:column;gap:4px;display:flex}.mini-week-row{color:var(--muted);grid-template-columns:34px 1fr;align-items:center;font-size:.72rem;display:grid}.plan-meta{flex-direction:column;gap:4px;display:flex}.plan-meta span{align-items:center;gap:6px;display:inline-flex}.tile-card.plan-add{align-self:stretch;min-height:160px}.copy-row{gap:6px}.plan-name-row{grid-template-columns:auto minmax(200px,360px) 1fr;align-items:center;gap:12px;display:grid}.temp-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;padding:6px 0 14px;display:grid}.temp-tile{border:1px solid var(--border);background:color-mix(in srgb, var(--surface2) 35%, transparent);border-radius:12px;flex-direction:column;align-items:flex-start;gap:8px;padding:12px 14px;display:flex}.temp-tile-head{align-items:center;gap:8px;font-weight:620;display:flex}.week-editor{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:18px;padding:6px 0 14px;display:grid}.week-grid{flex-direction:column;gap:2px;display:flex}.week-row{color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;grid-template-columns:42px 1fr;align-items:center;gap:8px;padding:5px 8px;display:grid}.week-row:hover{background:var(--surface2)}.week-row.active{background:var(--accent-soft)}.week-row.active .week-day{color:var(--accent);font-weight:650}.week-row.scale{cursor:default;padding-top:0}.week-row.scale:hover{background:0 0}.week-day{color:var(--muted);font-size:.85rem}.week-legend{gap:16px;margin-left:58px;display:flex}.week-legend span{align-items:center;gap:6px;display:inline-flex}.day-editor{border:1px solid var(--border);background:color-mix(in srgb, var(--surface2) 35%, transparent);border-radius:12px;flex-direction:column;gap:8px;padding:12px 14px;display:flex}.day-editor-title{font-weight:650}.slot-row{grid-template-columns:auto 96px minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.slot-row .btn-group{justify-self:start}@media (max-width:900px){.week-editor{grid-template-columns:1fr}.plan-name-row{grid-template-columns:1fr;gap:6px}}@media (max-width:600px){.slot-row{grid-template-columns:96px minmax(0,1fr) auto}.slot-row>span:first-child{display:none}}.periods{padding:6px 0 14px}.period{border:1px solid var(--border);border-radius:12px;padding:10px 12px}.period.open{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.period.disabled .period-head>.icon-tile,.period.disabled .period-head>.grow{opacity:.5}.period-head{align-items:center;gap:10px;display:flex}.period-form{border-top:1px solid var(--border);flex-direction:column;gap:14px;margin-top:10px;padding-top:12px;display:flex}.period-fields{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:end;gap:12px;display:grid}.pf{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.pf>span{align-items:center;gap:6px;font-size:.86rem;font-weight:580;display:inline-flex}.pf .input{max-width:100%}.pf .row select.input{width:auto}.pf .btn-group{max-width:100%}@media (max-width:600px){.zone-editor .settings-group,.plan-editor .settings-group{padding:4px 12px 6px}.period{padding:10px}}.boiler-layout{grid-template-columns:minmax(260px,340px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.boiler-groups{grid-template-columns:repeat(auto-fit,minmax(290px,1fr));align-items:start;gap:12px;transition:opacity .2s;display:grid}.boiler-groups.dimmed{opacity:.6}.boiler-groups .setting{padding:11px 0}.boiler-save{border-top:1px solid var(--border);align-items:center;gap:8px;margin-top:14px;padding-top:12px;display:flex}.boiler-how{border-top:1px solid var(--border);gap:6px;margin-top:14px;padding-top:10px;display:flex}@media (max-width:900px){.boiler-layout{grid-template-columns:1fr}}.app-download-body{align-items:flex-start;gap:18px;display:flex}@media (max-width:600px){.app-download-body{flex-direction:column;align-items:stretch}}.qr-box{text-align:center;flex-direction:column;flex-shrink:0;align-items:center;gap:6px;display:flex}.qr{border:1px solid var(--border);background:#fff;border-radius:10px}.steps-list{flex-direction:column;gap:8px;margin:0;padding-left:20px;font-size:.9rem;display:flex}code.addr{background:var(--surface2);-webkit-user-select:all;user-select:all;border-radius:8px;padding:5px 10px;font-size:.9rem}.phone-stats{flex-wrap:wrap;gap:5px;margin-top:12px;display:flex}.phone-stats span{background:var(--surface2);color:var(--muted);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.78rem;display:inline-flex}.phone-stats span.on{background:var(--accent-soft);color:var(--accent)}.phone-stats span.warn{background:var(--warning-soft);color:var(--warning)}.sensor-list .list-item.off .grow{opacity:.6}.sensor-value{white-space:nowrap;text-overflow:ellipsis;max-width:40%;font-size:.86rem;font-weight:600;overflow:hidden}.embedded .sidebar,.embedded .topbar,.embedded .tabbar,.embedded .back-link{display:none!important}.embedded .content{padding:12px 12px 24px}.embedded .conn-banner{top:0}.embedded .editor-savebar{bottom:10px}.embedded .flow-panel{top:12px}.embedded .toasts{bottom:14px}.mt-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));align-items:stretch;gap:14px;display:grid}.mt-grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,430px),1fr))}.mt-kv td{overflow-wrap:anywhere}.action-list.mt-actions{grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));column-gap:28px;display:grid}.mt-node-table .dot{display:inline-block}.mt-link{font:inherit;color:var(--accent);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;padding:0;text-decoration:underline}.mt-step-num{background:var(--accent);width:22px;height:22px;color:var(--accent-text);border-radius:50%;flex-shrink:0;place-items:center;font-size:.78rem;font-weight:700;display:inline-grid}.mt-choices{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;display:grid}.mt-choice{text-align:left;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;align-items:flex-start;gap:12px;padding:12px;transition:border-color .15s,background .15s,box-shadow .15s;display:flex}.mt-choice:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.mt-choice.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.mt-choice-title{margin-bottom:2px;font-weight:620}@media (max-width:600px){.mt-choices.picked{gap:6px}.mt-choices.picked .mt-choice:not(.active){align-items:center;padding:8px 12px}.mt-choices.picked .mt-choice:not(.active) .tiny{display:none}.mt-choices.picked .mt-choice:not(.active) .icon-tile{width:32px;height:32px}.mt-choices.picked .mt-choice:not(.active) .mt-choice-title{margin:0}}.mt-code-row .input{flex:1}.mt-code-input{font-family:var(--mono);letter-spacing:.06em;font-size:1.05rem}.mt-code{font-family:var(--mono);letter-spacing:.08em;overflow-wrap:anywhere;font-size:1.7rem;font-weight:650;line-height:1.2}.mt-share{align-items:flex-start;gap:20px;display:flex}.mt-share .qr-box .mono{overflow-wrap:anywhere;max-width:180px}.mt-share.expired .qr,.mt-share.expired .mt-code{opacity:.3}@media (max-width:600px){.mt-share{flex-direction:column;align-items:stretch}.mt-code{font-size:1.45rem}}.mt-scan{border-radius:var(--radius-sm);aspect-ratio:4/3;background:#000;position:relative;overflow:hidden}.mt-scan video{object-fit:cover;width:100%;height:100%;display:block}.mt-scan-frame{pointer-events:none;border:3px solid #ffffffd9;border-radius:14px;position:absolute;inset:18% 24%;box-shadow:0 0 0 999px #00000059}.mt-progress{max-width:860px}.mt-progress-head{align-items:center;gap:14px;display:flex}.mt-steps{flex-direction:column;gap:2px;margin:16px 0 0;padding:0;list-style:none;display:flex}.mt-steps li{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 0;font-size:.92rem;display:flex}.mt-steps li:last-child{border-bottom:0}.mt-step-icon{background:var(--success-soft);width:24px;height:24px;color:var(--success);border-radius:50%;flex-shrink:0;place-items:center;display:grid}.mt-steps li.current .mt-step-icon{background:var(--accent-soft);color:var(--accent)}.mt-steps li.current{font-weight:600}.mt-steps li.failed .mt-step-icon{background:var(--danger-soft);color:var(--danger)}.mt-steps li .spinner{width:13px;height:13px}.mt-result{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);align-items:center;gap:12px;padding:10px 12px;display:flex}.mt-node-head{align-items:center;gap:14px;display:flex}.mt-node-name{font-size:1.12rem;font-weight:650}.mt-node-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:22px;display:grid}.mt-node-actions .section-title{margin-bottom:2px}@media (max-width:760px){.mt-node-grid{grid-template-columns:minmax(0,1fr);gap:14px}.mt-node-actions{order:-1}}@media (max-width:600px){.action-row.mt-wrap{flex-wrap:wrap}.action-row.mt-wrap>.grow{flex-basis:100%}}.mt-hw{flex-direction:column;gap:4px;margin:0 0 12px;padding-left:18px;display:flex}.mt-command{background:var(--surface2);border-radius:10px;align-items:center;gap:8px;padding:8px 8px 8px 12px;display:flex}.mt-command code{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;flex:1;min-width:0}.mt-tlv{word-break:break-all;-webkit-user-select:all;user-select:all;max-height:180px;margin:0}textarea.input.mt-tlv-input{word-break:break-all;min-height:110px;font-size:.82rem}.mt-checks{flex-direction:column;display:flex}.mt-check{border-bottom:1px solid var(--border);align-items:flex-start;gap:12px;padding:11px 2px;display:flex}.mt-check:last-child{border-bottom:0}.mt-check-icon{background:var(--surface2);width:30px;height:30px;color:var(--muted);border-radius:9px;flex-shrink:0;place-items:center;display:grid}.mt-check.ok .mt-check-icon{background:var(--success-soft);color:var(--success)}.mt-check.warning .mt-check-icon{background:var(--warning-soft);color:var(--warning)}.mt-check.error .mt-check-icon{background:var(--danger-soft);color:var(--danger)}.mt-check.info .mt-check-icon{background:var(--accent-soft);color:var(--accent)}.mt-check-label{font-weight:600}.mt-fix{background:var(--surface2);border-radius:8px;align-items:flex-start;gap:6px;margin-top:6px;padding:7px 10px;display:flex}.mt-fix svg{color:var(--muted);flex-shrink:0;margin-top:2px}.mt-iface-table td{white-space:nowrap}.mt-iface-table td:nth-child(4){white-space:normal;overflow-wrap:anywhere;min-width:180px}.netmap.mt-threadmap{height:clamp(360px,100vh - 360px,640px)}@media (max-width:600px){.mt-threadmap .netmap-legend{flex-flow:wrap;gap:2px 10px;padding:5px 8px;font-size:.7rem;top:8px;bottom:auto;right:8px}}.kind-pick{gap:8px;display:grid}.kind-choice{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font:inherit;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:12px;padding:12px 14px;display:flex}.kind-choice.on{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 1px var(--accent) inset}.layer-theme{display:contents}.switch-listening{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.switch-dot{background:var(--border-strong,var(--border));border-radius:50%;flex:none;width:9px;height:9px}.switch-dot.on{background:var(--accent);animation:1.4s ease-in-out infinite pulse}.switch-button{border:1px solid var(--border);border-radius:12px;overflow:hidden}.switch-button-title{background:var(--surface-2,var(--bg-soft,transparent));border-bottom:1px solid var(--border);padding:8px 12px;font-size:14px;font-weight:600}.switch-input{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:6px 12px;padding:8px 12px;transition:background .25s;display:flex}.switch-input:last-child{border-bottom:0}.switch-input.pressed{background:var(--accent-soft)}.switch-input-name{flex-wrap:wrap;flex:0 280px;align-items:center;gap:8px;min-width:160px;display:flex}.switch-input-actions{flex-wrap:wrap;flex:240px;align-items:center;gap:6px;min-width:0;display:flex}.switch-action{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;max-width:100%;font-size:13px;display:inline-flex}.switch-action button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0}.switch-action>button:first-child{text-align:left;overflow-wrap:anywhere;align-items:center;gap:6px;min-width:0;padding:3px 4px 3px 10px;display:inline-flex}.switch-action-x{flex:none;padding:4px 8px 4px 4px;display:inline-flex;color:var(--muted)!important}.switch-action-x:hover{color:var(--danger)!important}.switch-more{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:6px 12px;font-size:12px;display:block}.switch-ops{flex-wrap:wrap;gap:6px;display:flex}.content:has(.flow-layout){max-width:1760px}.flow-layout{grid-template-columns:minmax(0,5fr) minmax(400px,4fr);align-items:start;gap:18px;display:grid}.flow-main{min-width:0}.flow-main .section{margin-bottom:14px}.flow-main .explain{padding:10px 14px;font-size:.92rem}.explain-clamp{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flow-main>.stack>.card>.form-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.flow-panel{top:calc(var(--topbar-h) + 12px);border:1px solid var(--border);background:var(--surface);border-radius:14px;flex-direction:column;min-width:0;display:flex;position:sticky;overflow:hidden}.flow-head{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:10px 10px 10px 14px;display:flex}.flow-head h3{margin:0 0 0 6px;font-size:1.02rem}.flow-toggle{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.flow-panel.closed .flow-head{border-bottom:0}.flow-scroll{cursor:grab;flex:1;min-height:0;overflow:auto}.flow-scroll:active{cursor:grabbing}.flow-svg{-webkit-user-select:none;user-select:none;margin:0 auto;display:block}.flow-foot{border-top:1px solid var(--border);padding:8px 14px}.flow-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:28px;display:flex}.flow-big{max-height:78vh;overflow:auto}.flow-node,.flow-group{--c:var(--accent)}.flow-node.tone-when,.flow-group.tone-when{--c:#3b82f6}.flow-node.tone-if{--c:#f59e0b}.flow-node.tone-wait{--c:#8b5cf6}.flow-node.tone-loop,.flow-group.tone-loop{--c:#06b6d4}.flow-node.tone-parallel{--c:#64748b}.flow-node.tone-stop{--c:var(--danger)}.flow-node.tone-neutral{--c:var(--muted)}.flow-shape{fill:color-mix(in srgb, var(--c) 13%, var(--surface));stroke:color-mix(in srgb, var(--c) 62%, var(--border));stroke-width:1.3px;stroke-linejoin:round}.flow-node.row .flow-shape{fill:var(--surface);stroke:color-mix(in srgb, var(--c) 30%, var(--border))}.flow-node.dashed .flow-shape{fill:none;stroke-dasharray:4 3}.flow-node.off,.flow-node.dim,.flow-group.dim,.flow-edge.dim,.flow-label.dim{opacity:.45}.flow-node.off .flow-shape{stroke-dasharray:4 3}.flow-node.error .flow-shape{stroke:var(--danger);stroke-width:1.8px}.flow-error-dot circle{fill:var(--danger)}.flow-error-dot text{fill:#fff;font-size:12px;font-weight:700}.flow-node.clickable{cursor:pointer;outline:none}.flow-node.clickable:hover .flow-shape,.flow-node.clickable:focus-visible .flow-shape{stroke:var(--c);stroke-width:2px;fill:color-mix(in srgb, var(--c) 22%, var(--surface))}.flow-node{animation:.22s ease-out flow-in}@keyframes flow-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.flow-node{animation:none}}.flow-icon{color:var(--c)}.flow-text{fill:var(--text);font-size:12px}.flow-sub{fill:var(--muted);font-size:10.5px}.flow-group rect{fill:color-mix(in srgb, var(--c) 7%, transparent);stroke:color-mix(in srgb, var(--c) 34%, var(--border));stroke-dasharray:5 4}.flow-group.tone-when rect{stroke-dasharray:none}.flow-group-title{fill:var(--muted);font-size:10.5px;font-weight:600}.flow-edge path{fill:none;stroke:color-mix(in srgb, var(--muted) 72%, transparent);stroke-width:1.5px}.flow-edge polygon{fill:color-mix(in srgb, var(--muted) 85%, transparent)}.flow-edge.yes path{stroke:color-mix(in srgb, var(--success) 80%, var(--muted))}.flow-edge.yes polygon{fill:color-mix(in srgb, var(--success) 85%, var(--muted))}.flow-edge.loop path{stroke:#06b6d4;stroke-dasharray:5 3}.flow-edge.loop polygon{fill:#06b6d4}.flow-edge.timeout path{stroke:color-mix(in srgb, var(--danger) 75%, var(--muted));stroke-dasharray:5 3}.flow-edge.timeout polygon{fill:color-mix(in srgb, var(--danger) 80%, var(--muted))}.flow-label{fill:var(--muted);font-size:10.5px;font-weight:600}.flow-label.yes{fill:color-mix(in srgb, var(--success) 85%, var(--text))}.flow-label.no{fill:color-mix(in srgb, var(--danger) 72%, var(--text))}.flow-label.loop{fill:#0891b2}.flow-label.timeout{fill:color-mix(in srgb, var(--danger) 80%, var(--text))}.flow-flash{animation:1.3s ease-out flow-flash}@keyframes flow-flash{0%,45%{box-shadow:0 0 0 3px var(--accent)}to{box-shadow:0 0 0 3px #0000}}@media (max-width:1200px){.flow-layout{grid-template-columns:minmax(0,1fr)}.flow-panel{order:-1;position:static}.flow-panel .flow-scroll{max-height:70vh}}@media (max-width:860px){.editor-savebar.recipe{flex-wrap:wrap;justify-content:flex-end}}.pre-wrap{white-space:pre-wrap}.device-sub{flex-wrap:wrap;align-items:center;gap:4px 14px;display:flex}.device-sub>*{align-items:center;gap:5px;display:inline-flex}.device-sub a{color:inherit}.device-sub a:hover{color:var(--accent);text-decoration:none}.device-panel{margin-bottom:24px;padding:0;overflow:hidden}.device-panel>.tabs{background:color-mix(in srgb, var(--surface2) 45%, transparent);margin:0;padding:0 10px}.device-panel-body{padding:14px 16px 16px}.info-grid{grid-template-columns:repeat(auto-fill,minmax(min(190px,42%),1fr));gap:12px 22px;margin:0;display:grid}.info-cell{min-width:0}.info-cell.full{grid-column:1/-1}.info-cell dt{color:var(--muted);margin-bottom:2px;font-size:.74rem}.info-cell dd{overflow-wrap:anywhere;margin:0;font-size:.92rem}.dev-actions{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(min(340px,100%),1fr));gap:10px;padding-top:14px;display:grid}.dev-action{border:1px solid var(--border);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.dev-action-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.dev-action .btn{flex-shrink:0}.dev-action-text strong{font-size:.9rem;font-weight:600}.dev-action-text span{color:var(--muted);font-size:.76rem;line-height:1.35}.options-grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px 20px;display:grid}.device-section{margin-bottom:22px}.eline-list{padding:2px 10px}.eline-list.flat{padding:0}.eline{border-bottom:1px solid var(--border);cursor:pointer;border-radius:8px;align-items:center;gap:12px;min-width:0;min-height:54px;padding:8px 6px;display:flex}.eline:last-child{border-bottom:0}.eline.static{cursor:default}.eline:not(.static):hover{background:var(--surface2)}.eline:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.eline .device-avatar.sm{width:34px;height:34px}.eline-name{flex:1 1 0;min-width:0}.eline-title{align-items:center;gap:6px;min-width:0;font-weight:560;display:flex}.eline-sub{color:var(--muted);font-size:.76rem}.eline-value{flex:none;justify-content:flex-end;align-items:center;gap:10px;min-width:0;max-width:46%;display:flex}.eline-text{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:620;overflow:hidden}.eline-quick{flex-shrink:0;align-items:center;gap:6px;display:inline-flex}.eline-select{width:auto;max-width:180px}.eline-spark{flex-shrink:0;align-items:center;width:112px;height:30px;display:flex}.eline-spark .spark{width:100%;height:100%}.eline-chevron{color:var(--muted);flex-shrink:0}.spark{display:block;overflow:visible}.spark-base{stroke:var(--border);stroke-width:1px}.eline.compact .eline-spark{width:56px}.eline.compact .eline-spark circle,.eline.compact .eline-value.with-switch .eline-text{display:none}@media (max-width:720px){.eline{gap:10px}.eline-spark,.eline.compact .eline-spark{width:48px}.eline-spark circle{display:none}.eline-value{max-width:48%}.eline-text{font-size:.88rem}.eline-value.with-switch .eline-text{display:none}.eline .eline-sub{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}}@media (max-width:350px){.eline-spark{display:none}}.entity-detail{flex-direction:column;gap:16px;display:flex}.entity-detail-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.entity-detail-value{margin-bottom:4px;font-size:1.7rem;font-weight:650}.entity-detail-controls{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.entity-detail-values{border-top:1px solid var(--border);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px 22px;padding-top:10px;display:grid}.room-badge{--room:var(--accent);width:56px;height:56px;color:var(--room);background:color-mix(in srgb, var(--room) 16%, var(--surface));border:1px solid color-mix(in srgb, var(--room) 30%, transparent);border-radius:16px;flex-shrink:0;place-items:center;display:grid}.room-hero{--room:var(--accent);isolation:isolate;border-radius:var(--radius);background:radial-gradient(circle at 85% 0%, color-mix(in srgb, var(--room) 30%, transparent), transparent 60%), color-mix(in srgb, var(--room) 10%, var(--surface));border:1px solid color-mix(in srgb, var(--room) 22%, var(--border));margin-bottom:22px;position:relative;overflow:hidden}.room-hero.with-image{align-items:flex-end;min-height:210px;display:flex}.room-hero.with-image img{object-fit:cover;z-index:-2;width:100%;height:100%;position:absolute;inset:0}.room-hero.with-image:before{content:"";z-index:-1;background:linear-gradient(#0000 25%,#0000008c);position:absolute;inset:0}.room-hero-stats{flex-wrap:wrap;align-items:center;gap:10px;width:100%;padding:14px;display:flex}.room-hero-stat{background:color-mix(in srgb, var(--surface) 90%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:118px;box-shadow:var(--shadow);border-radius:12px;grid-template-columns:auto 1fr;align-items:center;column-gap:9px;padding:8px 14px 8px 11px;display:grid}.room-hero-stat svg{color:var(--muted);grid-row:1/3}.room-hero-stat strong{white-space:nowrap;font-size:1rem;font-weight:650}.room-hero-stat span{color:var(--muted);white-space:nowrap;font-size:.74rem}.room-hero-stat.warm svg{color:#d48806}.room-hero-stat.on svg{color:var(--accent)}.room-hero-stat.warn svg{color:var(--warning)}.room-hero-stat.danger svg{color:var(--danger)}.room-hero-action{margin-left:auto}.room-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);align-items:start;gap:0 22px;display:grid}@media (max-width:1000px){.room-layout{flex-direction:column;align-items:stretch;display:flex}.room-main,.room-side{display:contents}}.presence-state{color:var(--muted);border-bottom:1px solid var(--border);align-items:center;gap:12px;margin-bottom:2px;padding:2px 4px 10px;display:flex}.presence-state.on{color:var(--accent)}.presence-state strong{color:var(--text);font-weight:620}.room-scenes{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.room-scene{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:left;min-width:0;box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:8px;padding:10px 12px;font-weight:560;display:flex}.room-scene svg:first-child{color:var(--accent);flex-shrink:0}.room-scene span{flex:1;min-width:0}.room-scene svg:last-child{color:var(--muted);flex-shrink:0}.room-scene:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.room-cameras{gap:10px;display:grid}.room-camera{border-radius:var(--radius-sm);cursor:pointer;background:#0b0d0c;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.room-camera-name{color:#fff;background:#0000008c;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:.78rem;display:inline-flex;position:absolute;bottom:8px;left:8px}.section-title .section-link{text-transform:none;letter-spacing:0;align-items:center;gap:2px;margin-left:auto;font-size:.8rem;font-weight:560;display:inline-flex}.dash-wrap{width:100%;position:relative}.dash-canvas{transform-origin:0 0;isolation:isolate;position:relative}.dcard{background:var(--surface);color:var(--text);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid color-mix(in srgb, var(--border) 70%, transparent);padding:var(--card-pad,14px);-webkit-backdrop-filter:var(--card-blur,none);backdrop-filter:var(--card-blur,none);font-size:calc(15px * var(--font-scale,1));flex-direction:column;transition:box-shadow .15s;display:flex;position:absolute;overflow:hidden}.dcard.no-border{border-color:#0000}.dcard.border-accent{border:2px solid var(--accent)}.dcard.shadow-none{box-shadow:none}.dcard.shadow-strong{box-shadow:var(--shadow-strong)}.dcard.align-center{text-align:center;align-items:center}.dcard.align-end{text-align:right;align-items:flex-end}.dcard-head{align-items:center;gap:8px;min-width:0;margin-bottom:8px;font-weight:620;display:flex}.dcard-head .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.dcard-body{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.dcard .big{letter-spacing:-.02em;font-size:2em;font-weight:680;line-height:1.1}.dcard .huge{letter-spacing:-.03em;font-size:3em;font-weight:700;line-height:1}.dcard-error{color:var(--text);font-size:.85rem;background:var(--danger-soft)!important;border:1px dashed var(--danger)!important}.dcard.clickable{cursor:pointer}.dcard.is-on .icon-tile{color:#d48806;background:#f5a52438}.group-inner{gap:var(--group-gap,8px);flex:1;min-height:0;display:flex}.group-inner.column{flex-direction:column}.group-inner.grid{display:grid}.group-inner>.dcard{min-height:0;box-shadow:none;flex:1;position:relative}.dcard.shadow-glow{box-shadow:0 0 22px color-mix(in srgb, var(--accent) 50%, transparent)}.fill-box{flex:1;min-height:0;position:relative}.fill-box-in{position:absolute;inset:0}.chart-minmax{justify-content:space-between;align-items:flex-end;height:18px;display:flex}.icon-tile.tinted{transition:background .3s,color .3s}.br-buttons{gap:8px}.br-value{text-align:center;font-variant-numeric:tabular-nums;font-weight:620}.light-tile{text-align:center;cursor:pointer;border-radius:var(--radius-sm);outline:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:0;display:flex}.light-tile:focus-visible{box-shadow:0 0 0 2px var(--accent)}.light-tile .lt-name{max-width:100%;margin-top:4px;font-weight:620}.light-tile .lt-br{width:100%;margin-top:auto}.scene-btn{min-width:0;height:44px}.scene-btn.tile{flex-direction:column;gap:4px;height:76px}.action-btn{white-space:normal;flex:1;gap:6px;width:100%;height:100%}.action-btn-texts{flex-direction:column;align-items:center;gap:1px;min-width:0;display:flex}.action-btn[style*=row] .action-btn-texts{align-items:flex-start}.action-btn-state{opacity:.75;font-size:.78em;font-weight:500}.action-btn.is-toggle:not(.primary){opacity:.92}.dz{position:absolute;inset:0}.dz-el{box-sizing:border-box;align-items:center;min-width:0;min-height:0;display:flex;position:absolute}.dz-el.stretch>*{flex:1;min-width:0}.dz-el.rule-hidden{opacity:.3}.dz-text{min-width:0;max-width:100%;line-height:1.2}.dz-text.capitalize:first-letter{text-transform:uppercase}.dz-rich{min-width:0;line-height:1.35}.dz-stat{min-width:0}.dz-glyph{place-items:center;line-height:0;display:grid}.dz-glyph.warm{color:#d48806}.dz-glyph.on{color:var(--accent)}.dz-gauge{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex}.dz-btn{width:100%;height:100%;font-size:inherit}.dz-content{flex-direction:column;align-self:stretch;gap:8px;min-height:0;display:flex;overflow:hidden}.dz-scroll{align-self:stretch;min-height:0;overflow:auto}.dz-el .switch{flex-shrink:0}.fx-pulse{animation:1.6s ease-in-out infinite fx-pulse}.fx-breathe{animation:3s ease-in-out infinite fx-breathe}.fx-blink{animation:1s steps(2,jump-none) infinite fx-blink}.fx-glow{filter:drop-shadow(0 0 6px currentColor) drop-shadow(0 0 12px color-mix(in srgb, currentColor 60%, transparent))}.fx-spin>*{animation:2.4s linear infinite spin}.fx-bounce{animation:1.4s ease-in-out infinite fx-bounce}@keyframes fx-pulse{0%,to{opacity:1}50%{opacity:.45}}@keyframes fx-breathe{0%,to{scale:1}50%{scale:1.07}}@keyframes fx-blink{0%{opacity:1}to{opacity:.15}}@keyframes fx-bounce{0%,to{translate:0}50%{translate:0 -8%}}@media (prefers-reduced-motion:reduce){.fx-pulse,.fx-breathe,.fx-blink,.fx-bounce,.fx-spin>*{animation:none}}.wall{flex-direction:column;min-height:100vh;display:flex}.wall-bar{color:var(--muted);align-items:center;gap:10px;padding:6px 14px;font-size:.85rem;display:flex}.wall-dim{z-index:var(--z-screensaver);color:#777;background:#000;place-items:center;font-size:3rem;font-weight:200;display:grid;position:fixed;inset:0}.room-area{margin:calc(var(--card-pad,14px) * -1);height:calc(100% + 2 * var(--card-pad,14px));border-radius:inherit;color:#fff;background-position:50%;background-size:cover;flex-direction:column;justify-content:space-between;display:flex;position:relative;overflow:hidden}.room-area-scrim{pointer-events:none;background:linear-gradient(#00000080,#00000014 45%,#00000073);position:absolute;inset:0}.room-area-top{align-items:flex-start;gap:8px;padding:14px 14px 0;display:flex;position:relative}.room-area-name{text-shadow:0 1px 3px #0006;white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:650;overflow:hidden}.room-area-sub{opacity:.92;text-shadow:0 1px 2px #0006;font-size:.82rem}.room-area .badge{color:#fff;background:#00000059}.room-area-btns{flex-wrap:wrap;gap:8px;padding:0 14px 14px;display:flex;position:relative}.room-btn{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#ffffff38;border:1px solid #ffffff4d;border-radius:50%;place-items:center;width:46px;height:46px;padding:0;display:grid}.room-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.room-btn.on.warm{color:#3a2600;background:#f5b84a;border-color:#f5b84a}.dcard.decor{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:0;padding:0;overflow:visible}.dcard.decor>.dcard-body{gap:0}.dash-canvas .dcard.decor{pointer-events:none}.deco{flex:1;min-width:0;min-height:0;display:flex;position:relative}.deco-h{flex-direction:column;justify-content:center}.deco-h.v-top{justify-content:flex-start}.deco-h.v-bottom{justify-content:flex-end}.deco-h-row{align-items:center;gap:14px;min-width:0;display:flex}.deco-h.a-center .deco-h-row{text-align:center;justify-content:center}.deco-h.a-right .deco-h-row{text-align:right;justify-content:flex-end}.deco-h-main{border-left:0 solid #0000;align-items:center;gap:10px;min-width:0;max-width:100%;display:inline-flex}.deco-h.d-bar .deco-h-main,.deco-h.d-quote .deco-h-main{border-left-style:solid;padding-left:12px}.deco-h.d-pill .deco-h-main{border-radius:999px;padding:.3em .95em}.deco-h.d-box .deco-h-main{border-left-style:solid;border-radius:10px;flex:1;padding:10px 14px}.deco-h-texts{flex-direction:column;min-width:0;display:flex}.deco-h.a-center .deco-h-texts{align-items:center}.deco-h.a-right .deco-h-texts{align-items:flex-end}.deco-h-text,.deco-h-sub{white-space:pre-wrap;overflow-wrap:anywhere}.deco-h-sub{color:var(--muted);margin-top:2px;line-height:1.3}.deco-h-under{border-radius:99px;width:min(64px,60%);margin-top:6px;display:block}.deco-h-side{border-radius:99px;flex:1;min-width:12px}.deco-h-line{border-radius:99px;width:100%;margin-top:8px;display:block}.deco-h-icon{flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.deco-h-icon.circle{border-radius:50%}.deco-h-icon.square{border-radius:28%}.deco-h-quote{align-self:flex-start;font-family:Georgia,Times New Roman,serif;font-weight:700;line-height:.75}.deco-line{justify-content:center;align-items:center}.deco-line.vertical{flex-direction:column}.deco-line-in{align-items:center;display:flex}.deco-line.vertical .deco-line-in{flex-direction:column}.deco-line-part{flex-direction:column;flex:1 1 0;justify-content:center;min-width:0;min-height:0;display:flex}.deco-line.vertical .deco-line-part{flex-direction:row;justify-content:center;align-self:stretch}.deco-line-part.short{flex:0 0 18px}.deco-seg{flex-shrink:0;display:block}.deco-line-label{white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-weight:600;line-height:1.2;display:inline-flex}.deco-line.vertical .deco-line-label{padding:8px 0}.deco-end{flex-shrink:0}.deco-shape{justify-content:center;align-items:center}.deco-shape-css,.deco-shape-svg,.deco-shape-content{position:absolute;top:50%;left:50%;translate:-50% -50%}.deco-shape-content{text-align:center;white-space:pre-wrap;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:4px;line-height:1.1;display:flex;overflow:hidden}.deco-shape-content.row{flex-direction:row;gap:6px}.deco-panel-bg{position:absolute;inset:0;overflow:hidden}.deco-panel-bg img,.deco-image img{width:100%;height:100%;position:absolute;inset:0}.deco-veil{position:absolute;inset:0}.deco-panel-band{position:absolute;top:0;left:0;right:0}.deco-panel-title{white-space:nowrap;align-items:center;gap:8px;font-weight:650;line-height:1.2;display:flex;position:absolute}.deco-panel-title span{text-overflow:ellipsis;overflow:hidden}.deco-panel-title.pos-top-left{top:14px;left:18px;right:18px}.deco-panel-title.pos-top-center{justify-content:center;top:14px;left:18px;right:18px}.deco-panel-title.pos-band{top:0;left:18px;right:18px}.deco-panel-title.pos-border{background:var(--surface);border:1px solid var(--border);border-radius:999px;max-width:calc(100% - 36px);padding:3px 12px;top:0;left:18px;translate:0 -50%}.deco-image{overflow:hidden}.deco-image.empty{text-align:center;color:var(--muted);border:1.5px dashed var(--border);background:repeating-linear-gradient(45deg, color-mix(in srgb, var(--surface2) 70%, transparent) 0 10px, transparent 10px 20px);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;display:flex;position:absolute;inset:0}.deco-image-caption{color:#fff;background:linear-gradient(#0000,#0009);padding:22px 12px 9px;font-weight:600;position:absolute;bottom:0;left:0;right:0}.deco-spacer{border:1.5px dashed color-mix(in srgb, var(--muted) 50%, transparent);color:var(--muted);border-radius:8px;justify-content:center;align-items:center;font-size:12px}.min0{min-width:0}.accent-text{color:var(--accent)}.link-btn{color:var(--accent);cursor:pointer;font:inherit;background:0 0;border:0;align-self:flex-start;align-items:center;gap:4px;padding:0;display:inline-flex}.clickable{cursor:pointer}.icon-tile.sm{border-radius:9px;width:30px;height:30px}.icon-tile.ok{background:var(--success-soft);color:var(--success)}.icon-tile.warn{background:var(--warning-soft);color:var(--warning)}.icon-tile.err{background:var(--danger-soft);color:var(--danger)}.icon-tile.info{background:var(--surface2);color:var(--muted)}.label-dot{vertical-align:1px;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.sec-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:start;gap:14px;display:grid}@media (max-width:1000px){.sec-grid{grid-template-columns:minmax(0,1fr)}}.alarm-panel{text-align:center;flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.alarm-panel.compact{gap:10px}.alarm-parts{justify-content:center}.alarm-status{flex-direction:column;align-items:center;gap:6px;display:flex}.alarm-ring{background:var(--surface2);color:var(--muted);border-radius:50%;flex-shrink:0;place-items:center;transition:background .3s,color .3s,box-shadow .3s;display:grid}.alarm-ring.on{background:var(--success-soft);color:var(--success);box-shadow:0 0 0 6px color-mix(in srgb, var(--success) 8%, transparent)}.alarm-ring.warm{background:var(--warning-soft);color:var(--warning);animation:1.2s ease-in-out infinite alarm-pulse}.alarm-ring.alert{background:var(--danger);color:#fff;animation:.7s ease-in-out infinite alarm-pulse}@keyframes alarm-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 30%, transparent)}50%{box-shadow:0 0 0 12px color-mix(in srgb, currentColor 0%, transparent)}}.alarm-state{letter-spacing:-.01em;font-size:1.45rem;font-weight:720}.alarm-panel.compact .alarm-state{font-size:1.12rem}.alarm-countdown{font-variant-numeric:tabular-nums;font-weight:600}.alarm-partline{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.alarm-alert{text-align:left;border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);align-items:center;gap:10px;padding:10px 12px;display:flex}.alarm-alert.water,.alarm-alert.technical{background:var(--warning-soft);color:var(--warning);border-color:color-mix(in srgb, var(--warning) 30%, transparent)}.alarm-alert .tiny{color:var(--text)}.alarm-modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;max-width:460px;display:grid}.alarm-modes.n1{grid-template-columns:minmax(0,1fr);max-width:220px}.alarm-modes.n2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:340px}.alarm-mode{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;font-weight:620;transition:transform .1s,border-color .15s,background .15s;display:flex}.alarm-mode:hover{border-color:var(--accent);background:var(--accent-soft)}.alarm-mode:active{transform:scale(.97)}.alarm-mode.away{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.alarm-mode.away:hover{filter:brightness(1.06)}.alarm-panel.compact .alarm-mode{padding:10px 6px;font-size:.86rem}.alarm-ready{border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;display:inline-flex}.alarm-ready.ok{color:var(--success);background:var(--success-soft)}.alarm-ready.warn{color:var(--warning);background:var(--warning-soft)}.panic-btn{border:1px dashed color-mix(in srgb, var(--danger) 50%, var(--border));color:var(--danger);font:inherit;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;display:inline-flex;position:relative;overflow:hidden}.panic-fill{background:var(--danger-soft);z-index:-1;position:absolute;inset:0 auto 0 0}.keypad-error{text-align:center;color:var(--danger);margin:-6px 0 10px;font-size:.86rem}.keypad .keypad-ok{background:var(--accent);color:var(--accent-text)}.keypad button:disabled{opacity:.45}.point-row{gap:10px}.point-state{background:var(--success);border-radius:50%;flex-shrink:0;width:10px;height:10px}.point-state.open{background:var(--warning);box-shadow:0 0 0 3px var(--warning-soft)}.point-state.alert{background:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.point-state.warn{background:var(--danger)}.journal .list-item{padding:8px 2px}.video-box{aspect-ratio:16/9;border-radius:var(--radius-sm);color:#fff;background:#0b0d0c;width:100%;position:relative;overflow:hidden}.video-box.clickable:hover .video-el{filter:brightness(1.05)}.video-el{object-fit:contain;background:#0b0d0c;width:100%;height:100%;display:block;position:absolute;inset:0}.video-msg{color:#fffc;text-align:center;background:#00000073;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.85rem;display:flex;position:absolute;inset:0}.video-msg.subtle{background:0 0}.video-msg .spinner{border-color:#fff #ffffff4d #ffffff4d}.video-overlay{pointer-events:none;background:linear-gradient(#0000008c,#0000);justify-content:space-between;align-items:flex-start;gap:8px;padding:8px 10px 22px;display:flex;position:absolute;top:0;left:0;right:0}.video-name{text-shadow:0 1px 2px #0009;align-items:center;gap:6px;min-width:0;font-size:.88rem;font-weight:620;display:flex}.video-tags{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}.video-tag{color:#fff;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:.7rem;font-weight:650;display:inline-flex}.video-rec{letter-spacing:.04em;color:#fff;background:#dc2626d9;border-radius:4px;padding:1px 6px;font-size:.66rem;font-weight:750}.video-controls{opacity:0;background:linear-gradient(#0000,#0000008c);align-items:center;gap:4px;padding:18px 8px 6px;transition:opacity .2s;display:flex;position:absolute;bottom:0;left:0;right:0}.video-box:hover .video-controls,.video-box:focus-within .video-controls{opacity:1}@media (hover:none){.video-controls{opacity:1}}.video-btn{color:#fff;cursor:pointer;min-width:30px;height:30px;font:inherit;background:#00000059;border:0;border-radius:8px;place-items:center;padding:0 7px;font-size:.74rem;font-weight:700;display:grid}.video-btn:hover{background:#0009}.video-chip{color:#fffc;background:#00000059;border-radius:4px;padding:2px 6px;font-size:.68rem}.video-box:fullscreen{aspect-ratio:auto;border-radius:0}.cam-mosaic{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:10px;display:grid}.cam-mosaic.small{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.cam-cell{cursor:pointer;min-width:0;position:relative}.cams-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:12px}.cam-page{--cam-side:320px;flex-direction:column;gap:10px;width:100%;min-width:0;max-width:2200px;margin:0 auto;padding:12px 20px 16px;display:flex}.cam-head{flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0;display:flex}.cam-back{color:var(--muted);flex:none;margin-left:-6px}.cam-title{flex-wrap:wrap;flex:280px;align-items:baseline;gap:2px 14px;min-width:0;display:flex}.cam-title h1{max-width:100%;margin:0;font-size:1.32rem;line-height:1.25}.cam-sub{min-width:0;max-width:100%;color:var(--muted);align-items:center;gap:7px;font-size:.82rem;display:flex}.cam-sub .dot{align-self:center}.cam-actions{flex-wrap:wrap;gap:6px;margin-left:auto;display:flex}.cam-body{grid-template-columns:minmax(0, 1fr) var(--cam-side);align-items:start;gap:12px;min-width:0;display:grid}.cam-body.no-side{grid-template-columns:minmax(0,1fr)}.cam-main{flex-direction:column;gap:10px;min-width:0;display:flex}.cam-stage{justify-content:center;align-items:center;min-width:0;display:flex;position:relative}.cam-stage .video-box{aspect-ratio:var(--cam-ar,16 / 9);border-radius:var(--radius-sm)}.cam-tl{padding:8px 12px 6px}.cam-tl .playback-bar{min-height:38px;margin-bottom:2px}.cam-side{flex-direction:column;gap:12px;min-width:0;display:flex}.cam-panel{padding:12px 14px}.cam-panel .card-title{margin-bottom:8px;font-size:.93rem}.cam-panel .ptz{flex-flow:wrap;justify-content:center;align-items:center;gap:8px 18px}.cam-panel .ptz-zoom{flex-direction:column;margin-top:0}.cam-panel .ptz .chips{flex-basis:100%;justify-content:center;margin-top:2px!important}.cam-kv{flex-direction:column;margin:0;font-size:.82rem;display:flex}.cam-kv>div{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);grid-template-columns:118px minmax(0,1fr);gap:10px;padding:5px 0;display:grid}.cam-kv>div:first-child{border-top:0;padding-top:0}.cam-kv dt{color:var(--muted)}.cam-kv dd{-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;-webkit-box-orient:vertical;min-width:0;margin:0;display:-webkit-box;overflow:hidden}.cam-kv dd.danger{color:var(--danger)}.cam-kv dd.warning{color:var(--warning)}.cam-dets{align-items:stretch;gap:12px;min-width:0;padding:8px 10px 8px 12px;display:flex}.cam-dets-head{flex-direction:column;flex:none;justify-content:space-between;gap:6px;width:92px;padding:2px 0;display:flex}.cam-dets-title{flex-direction:column;gap:4px;font-size:.82rem;font-weight:620;line-height:1.25;display:flex}.cam-dets-title .icon,.cam-dets-title svg{color:var(--muted)}.cam-dets-all{font-size:.8rem;font-weight:560}.cam-dets-row{scrollbar-width:thin;scroll-snap-type:x proximity;overscroll-behavior-x:contain;flex:auto;gap:8px;min-width:0;display:flex;overflow:auto hidden}.cam-det{width:120px;color:var(--text);font:inherit;text-align:left;cursor:pointer;scroll-snap-align:start;background:0 0;border:0;flex-direction:column;flex:none;gap:3px;min-width:0;padding:0;display:flex}.cam-det-img{aspect-ratio:16/9;background:var(--surface2);width:100%;color:var(--muted);border-radius:7px;place-items:center;transition:box-shadow .12s;display:grid;position:relative;overflow:hidden}.cam-det-img .det-image,.cam-det-img .det-image img{width:100%;height:100%}.cam-det:hover .cam-det-img{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent)}.cam-det.active .cam-det-img{box-shadow:0 0 0 2px var(--accent)}.cam-det:focus-visible{outline:none}.cam-det:focus-visible .cam-det-img{box-shadow:0 0 0 2px var(--accent)}.cam-det-live{background:var(--danger);color:#fff;border-radius:5px;padding:1px 5px;font-size:.64rem;font-weight:650;position:absolute;top:4px;right:4px}.cam-det-chip{color:#fff;border-radius:5px;align-items:center;gap:3px;max-width:calc(100% - 8px);padding:1px 5px;font-size:.64rem;font-weight:650;line-height:1.5;display:inline-flex;position:absolute;bottom:4px;left:4px;box-shadow:0 1px 3px #00000059}.cam-det-star{color:#fbbf24;background:#0000008c;border-radius:50%;place-items:center;width:17px;height:17px;display:grid;position:absolute;top:4px;left:4px}.cam-det-text{align-items:center;gap:6px;min-width:0;font-size:.74rem;line-height:1.3;display:flex}.cam-det-label{align-items:center;min-width:0;font-weight:600;display:none}.cam-det-label .label-dot{flex:none;margin-right:4px}.cam-det-time{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}.cam-dets-empty{color:var(--muted);align-self:center;font-size:.82rem}.cam-dets-more{display:none}.embedded .cam-back{display:none!important}@media (min-width:1100px){.cam-page{height:calc(100vh - var(--topbar-h));min-height:520px;overflow:hidden}.embedded .cam-page{height:100vh}.cam-body{flex:1 1 0;align-items:stretch;min-height:0}.cam-main{min-height:0}.cam-stage{flex:1 1 0;min-height:120px;container-type:size}.cam-stage .video-box{width:min(100cqw, 100cqh * var(--cam-ar,1.7778))}.cam-tl,.cam-dets{flex:none}.cam-side{scrollbar-width:thin;min-height:0;overflow-y:auto}.cam-page .tl-hint{display:none}.cam-dets-row{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),#0000)}}@media (min-width:1600px){.cam-page{--cam-side:340px}}@media (min-width:1100px) and (max-height:760px){.cam-page .tl-foot,.cam-live-hint{display:none}}@media (max-width:1099px){.cam-body{grid-template-columns:minmax(0,1fr)}.cam-side{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;display:grid}}@media (max-width:860px){.cam-page{padding:10px 14px calc(var(--tabbar-h) + 24px)}}@media (max-width:720px){.cam-title h1{font-size:1.18rem}.cam-actions{width:100%;margin-left:0}.cam-live-hint{display:none}.cam-dets{flex-direction:column;gap:6px;padding:10px 12px}.cam-dets-head{flex-direction:row;align-items:center;width:auto}.cam-dets-title{flex-direction:row;align-items:center;gap:7px;font-size:.9rem}.cam-dets-row{flex-direction:column;gap:0;overflow:visible}.cam-det{border-top:1px solid color-mix(in srgb, var(--border) 70%, transparent);flex-direction:row;align-items:center;gap:10px;width:100%;padding:5px 0}.cam-det:first-child{border-top:0}.cam-det-img{border-radius:6px;flex:none;width:76px}.cam-det-text{flex:1;font-size:.86rem}.cam-det-label{display:inline-flex}.cam-det-time{margin-left:auto}.cam-det-chip,.cam-det.extra{display:none}.cam-dets-more{align-self:center;display:inline-flex}}.timeline-card{padding:10px 12px}.ptz{flex-direction:column;align-items:center;display:flex}.ptz-pad{background:var(--surface2);border:1px solid var(--border);border-radius:50%;position:relative}.ptz-btn{width:34%;height:34%;color:var(--text);cursor:pointer;touch-action:none;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.ptz-btn:hover{background:var(--accent-soft);color:var(--accent)}.ptz-btn:active{background:var(--accent);color:var(--accent-text)}.ptz-btn.up{top:0;left:33%}.ptz-btn.down{bottom:0;left:33%}.ptz-btn.left{top:33%;left:0}.ptz-btn.right{top:33%;right:0}.ptz-btn.center{background:var(--surface);border:1px solid var(--border);top:33%;left:33%}.ptz-zoom{gap:8px;margin-top:8px;display:flex}.ptz-zoom .ptz-btn{border:1px solid var(--border);background:var(--surface);width:40px;height:40px;position:static}.tl{--tl-track:color-mix(in srgb, var(--text) 4%, var(--surface2));--tl-rec:color-mix(in srgb, var(--accent) 58%, var(--surface2));--tl-head:var(--accent);--tl-head-text:var(--accent-text);--tl-now:var(--danger);position:relative}.tl-head{align-items:center;gap:8px;min-width:0;margin-bottom:2px;display:flex}.tl-title{white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:.84rem;font-weight:600;overflow:hidden}.tl-tools{flex:none;align-items:center;gap:2px;display:flex}.tl-span{text-align:center;font-variant-numeric:tabular-nums;min-width:42px;color:var(--muted);font-size:.75rem}.tl-box{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:pan-y;cursor:grab;border-radius:8px;outline:none;width:100%;position:relative}.tl-box:focus-visible{box-shadow:0 0 0 2px var(--accent-soft), 0 0 0 1px var(--accent)}.tl-box.zone-panning{cursor:grabbing}.tl-box.zone-scrub{cursor:ew-resize}.tl-box.zone-event{cursor:pointer}.tl-box.zone-select{cursor:crosshair}.tl-svg{display:block;overflow:visible}.tl-axis{stroke:var(--border)}.tl-tick-major{stroke:color-mix(in srgb, var(--text) 45%, transparent)}.tl-tick-minor{stroke:color-mix(in srgb, var(--text) 22%, transparent)}.tl-grid{stroke:color-mix(in srgb, var(--text) 9%, transparent)}.tl-grid-day{stroke:color-mix(in srgb, var(--text) 38%, transparent);stroke-dasharray:3 3}.tl-label{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.tl-label-day{fill:var(--text);font-weight:650}.tl-track{fill:var(--tl-track)}.tl-rec{fill:var(--tl-rec)}.tl-ev rect{stroke:var(--surface);stroke-width:1px}.tl-ev.seen{opacity:.62}.tl-ev.ongoing rect{animation:1.6s ease-in-out infinite tl-pulse}@keyframes tl-pulse{50%{opacity:.5}}.tl-ev-icon{color:#fff;pointer-events:none}.tl-row-g.dim{opacity:.5}.tl-hatch{stroke:color-mix(in srgb, var(--text) 11%, transparent);stroke-width:2px}.tl-future{pointer-events:none}.tl-now line{stroke:var(--tl-now);stroke-width:1.5px;stroke-dasharray:4 3}.tl-now circle{fill:var(--tl-now)}.tl-hover{stroke:var(--text);opacity:.5;pointer-events:none}.tl-head-halo{stroke:var(--surface);stroke-width:5px;opacity:.8}.tl-head-line{stroke:var(--tl-head);stroke-width:2px}.tl-head-pill{fill:var(--tl-head)}.tl-head-text{fill:var(--tl-head-text);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11.5px;font-weight:700}.tl-head-g.live{--tl-head:var(--tl-now);--tl-head-text:#fff}.tl-head-g.dragging .tl-head-pill{filter:drop-shadow(0 2px 4px #0000004d)}.tl-head-off path{fill:var(--tl-head)}.tl-sel-out{fill:var(--surface);opacity:.6}.tl-sel-area{fill:color-mix(in srgb, var(--accent) 12%, transparent)}.tl-sel-edge{stroke:var(--accent);stroke-width:2px}.tl-sel-grip{fill:var(--surface);stroke:var(--accent);stroke-width:1.5px}.tl-sel-pill{fill:color-mix(in srgb, var(--accent) 16%, var(--surface));stroke:var(--accent)}.tl-sel-text{fill:var(--accent);font-variant-numeric:tabular-nums;pointer-events:none;font-size:11px;font-weight:650}.tl-rowlabel{font:inherit;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;align-items:center;gap:6px;min-width:0;padding:0 6px;font-size:.78rem;font-weight:550;display:flex;position:absolute;left:0}.tl-rowlabel:hover{background:var(--surface2);color:var(--text)}.tl-rowlabel.active{color:var(--text);font-weight:650}.tl-rowlabel.caption{max-width:calc(100% - 8px);height:16px;padding:0 4px;font-size:.72rem}.tl-rowlabel-dot{background:var(--accent);border-radius:50%;flex:none;width:7px;height:7px}.tl-foot{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:.74rem;display:flex}.tl-legend-item{align-items:center;gap:5px;display:inline-flex}.tl-swatch{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.tl-swatch.rec{background:var(--tl-rec);width:16px}.tl-count{font-variant-numeric:tabular-nums;color:var(--text);font-weight:650}.tl-hint{margin-left:auto}.tl-tip{--tl-rec:color-mix(in srgb, var(--accent) 58%, var(--surface2));z-index:var(--z-tooltip);pointer-events:none;background:var(--surface);color:var(--text);border:1px solid var(--border);box-shadow:var(--shadow-strong);border-radius:10px;padding:4px;position:fixed}.tl-tip-img{background:#0d100f;border-radius:7px;place-items:center;display:grid;position:relative;overflow:hidden}.tl-tip-img img{object-fit:cover;width:100%;height:100%;display:block}.tl-tip-img img.rot{max-width:none;position:absolute;top:50%;left:50%}.tl-tip-img.stale img{opacity:.7}.tl-tip-text{min-width:0;padding:4px 4px 1px}.tl-tip-time{font-variant-numeric:tabular-nums;align-items:baseline;gap:8px;font-size:.86rem;font-weight:700;display:flex}.tl-tip-none{color:var(--muted);font-size:.75rem;font-weight:500}.tl-tip.empty .tl-tip-time{flex-direction:column;align-items:flex-start;gap:0}.tl-tip-cam{color:var(--muted);font-size:.74rem}.tl-tip-ev{align-items:center;gap:6px;min-width:0;margin-top:2px;font-size:.76rem;font-weight:600;display:flex}.tl-tip-ev .muted{white-space:nowrap;font-variant-numeric:tabular-nums;margin-left:auto;font-weight:400}.tl-tip-arrow{background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);width:10px;height:10px;position:absolute;bottom:-6px;transform:translate(-50%)rotate(45deg)}.tl-tip.below .tl-tip-arrow{top:-6px;bottom:auto;transform:translate(-50%)rotate(225deg)}.tl-tip.scrubbing{border-color:var(--accent)}.tl-tip.scrubbing .tl-tip-time{color:var(--accent)}.playback-bar{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.play-btn{background:var(--accent);width:40px;height:40px;color:var(--accent-text);border-color:var(--accent);border-radius:50%}.playback-bar .speed-select{flex:none;width:auto}.playback-time{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600}.live-btn{gap:6px}.live-dot{color:#ef4444;background:#ef4444;border-radius:50%;width:8px;height:8px;animation:1.6s infinite alarm-pulse;display:inline-block}.live-badge{align-items:center;gap:6px;font-size:.85rem;font-weight:650;display:inline-flex}.recordings .rec-toolbar{flex-wrap:wrap;gap:8px;margin-bottom:10px}.day-nav{gap:4px}.rec-grid{gap:8px;margin-bottom:10px;display:grid}.rec-cell{min-width:0;position:relative}.rec-grid .video-box{max-height:62vh}.rec-name{color:#fff;text-shadow:0 1px 2px #000000b3;font-size:.78rem;font-weight:650;position:absolute;top:6px;left:8px}.legend{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:.75rem;display:flex}.legend-item{align-items:center;display:inline-flex}.ev-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.ev-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font:inherit;color:var(--text);text-align:left;box-shadow:var(--shadow);flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.ev-card:hover{border-color:var(--accent)}.ev-card.seen{box-shadow:none}.ev-thumb{aspect-ratio:16/9;color:#fff9;background:#0b0d0c;place-items:center;display:grid;position:relative}.ev-thumb img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ev-label{color:#fff;border-radius:999px;align-items:center;gap:3px;padding:1px 7px;font-size:.7rem;font-weight:650;display:inline-flex;position:absolute;bottom:6px;left:6px}.ev-live{color:#fff;background:#dc2626e6;border-radius:4px;padding:1px 6px;font-size:.66rem;font-weight:700;position:absolute;top:6px;right:24px}.ev-star{color:#facc15;filter:drop-shadow(0 1px 1px #0009);position:absolute;bottom:6px;right:6px}.ev-meta{flex-direction:column;padding:7px 10px 8px;font-size:.86rem;font-weight:600;display:flex}.ev-new{background:var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:8px;right:8px;box-shadow:0 0 0 2px #fff}.ev-thumb-sm{object-fit:cover;background:#0b0d0c;border-radius:6px;flex-shrink:0;width:64px;height:36px}.ev-thumb-md{object-fit:cover;background:#0b0d0c;border-radius:6px;flex-shrink:0;width:96px;height:54px}.event-video{border-radius:var(--radius-sm)}.incident-timeline{flex-direction:column;display:flex}.tl-item{border-left:2px solid var(--border);align-items:center;gap:10px;margin-left:14px;padding:8px 0 8px 14px;display:flex;position:relative}.tl-item>.icon-tile,.tl-item>img{margin-left:-30px}.settings-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (max-width:860px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-nav{overflow-x:auto;flex-direction:row!important}}.settings-nav{top:calc(var(--topbar-h) + 8px);flex-direction:column;gap:2px;display:flex;position:sticky}.settings-nav .nav-item{font:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0}.settings-body{min-width:0}.settings-nav .nav-item svg{flex-shrink:0}.settings-card .setting-control select,.settings .setting-control select{min-width:240px;max-width:100%}.settings-stack{gap:14px}.settings-stack .setting-control .row.wrap{flex-wrap:wrap}.settings-card .setting:last-child{border-bottom:0}.save-bar{top:calc(var(--topbar-h) + 6px);z-index:5;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--accent);box-shadow:var(--shadow-strong);align-items:center;gap:8px;padding:10px 14px;font-size:.9rem;display:flex;position:sticky}.partition-edit,.siren-edit{border-bottom:1px solid var(--border);padding:12px 0}.delay-table{border-collapse:collapse;width:100%;max-width:560px;margin-top:10px;font-size:.86rem}.delay-table th{color:var(--muted);text-align:left;white-space:nowrap;padding:2px 8px;font-weight:600}.delay-table td{padding:3px 8px 3px 0}.delay-table td:first-child{color:var(--muted);white-space:nowrap;padding-right:14px}.schedule-edit{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0;display:flex}.points-list{flex-direction:column;gap:6px;margin-bottom:8px;display:flex}.point-edit{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}.point-edit.open{border-color:var(--accent)}.point-edit.disabled{opacity:.6}.point-head{cursor:pointer;align-items:center;gap:10px;padding:9px 12px;display:flex}.point-body{border-top:1px solid var(--border);padding:4px 12px 12px}.mode-dots{gap:3px;display:flex}.mode-dot{border:1px solid var(--border);background:var(--surface);width:28px;height:26px;color:var(--muted);cursor:pointer;opacity:.55;border-radius:7px;place-items:center;display:grid}.mode-dot.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);opacity:1}.people-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.person-card{flex-direction:column;gap:8px;display:flex}.person-card.dimmed{opacity:.6}.person-head{align-items:center;gap:10px;display:flex}.person-avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.code-dots{letter-spacing:2px;color:var(--muted);margin-left:4px}.code-kinds{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;display:grid}.code-kind{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;flex-direction:column;align-items:flex-start;gap:3px;padding:10px;display:flex}.code-kind.active{border-color:var(--accent);background:var(--accent-soft)}.cam-admin-list{flex-direction:column;gap:10px;display:flex}.cam-admin{align-items:center;gap:14px;display:flex}.cam-admin-thumb{flex-shrink:0;width:180px}.cam-admin-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}@media (max-width:760px){.cam-admin{flex-direction:column;align-items:stretch}.cam-admin-thumb{width:100%}}.brand-help{background:var(--accent-soft);border-radius:var(--radius-sm);padding:10px 14px}.brand-help ol{margin:6px 0;padding-left:20px}.probe-result{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface2);align-items:flex-start;gap:14px;padding:12px;display:flex}.probe-preview{border-radius:var(--radius-sm);aspect-ratio:16/9;object-fit:contain;background:#000;width:280px;max-width:45%}.steps-head{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.step-pill{background:var(--surface2);color:var(--muted);border-radius:999px;padding:4px 12px;font-size:.82rem}.step-pill.active{background:var(--accent);color:var(--accent-text)}.brand-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.brand-card{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:center;flex-direction:column;align-items:center;gap:4px;padding:14px 8px;font-weight:620;display:flex}.brand-card:hover{border-color:var(--accent);background:var(--accent-soft)}.zone-canvas{max-width:820px;position:relative}.zone-canvas .video-box{aspect-ratio:16/9}.zone-svg{width:100%;height:100%;position:absolute;inset:0}.zone-svg.drawing{cursor:crosshair}.zone-poly{fill:#22c55e38;stroke:#22c55e;stroke-width:.4px;cursor:pointer;vector-effect:non-scaling-stroke}.zone-poly.sel{fill:#22c55e59;stroke-width:2px}.zone-mask{fill:#1e1e1ea6;stroke:#9ca3af;stroke-width:1px;stroke-dasharray:4 3;cursor:pointer;vector-effect:non-scaling-stroke}.zone-mask.sel{stroke:#fff;stroke-width:2px}.zone-label{fill:#fff;paint-order:stroke;stroke:#0009;stroke-width:.6px;pointer-events:none;font-size:3px;font-weight:700}.zone-handle{fill:#fff;stroke:#111;stroke-width:.3px;cursor:move}.zone-draft{fill:#22c55e26;stroke:#22c55e;stroke-width:2px;stroke-dasharray:5 3;vector-effect:non-scaling-stroke}.zone-draft.mask{fill:#1e1e1e59;stroke:#e5e7eb}.storage-item{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 0;display:flex}.storage-bar{background:var(--surface2);border-radius:999px;height:10px;display:flex;overflow:hidden}.storage-bar .seg.rec{background:var(--accent)}.storage-bar .seg.other{background:color-mix(in srgb, var(--muted) 45%, transparent)}.card-camera{height:calc(100% + 32px);margin:-16px;position:relative}.card-camera .video-box{aspect-ratio:auto;border-radius:var(--radius);height:100%}.card-ptz{opacity:.85;position:absolute;bottom:8px;right:8px}.card-ptz .ptz-pad{background:#ffffffbf}.card-cameras{align-content:start;gap:6px;height:100%;display:grid;overflow:auto}.card-list{flex-direction:column;height:100%;min-height:0;display:flex}.card-list .list{min-height:0;overflow:auto}.card-security{align-items:center;gap:14px;height:100%;display:flex}.card-missing{text-align:center;place-items:center;height:100%;display:grid}.output-edit{border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;margin-bottom:10px;padding:12px;display:flex}.output-block{border-top:1px dashed var(--border);flex-direction:column;gap:6px;padding-top:8px;display:flex}.output-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}.output-field{color:var(--muted);flex-direction:column;align-self:flex-start;gap:3px;font-size:12px;display:flex}.output-field select{width:auto;min-width:170px}.output-field .input:not(select){width:90px}.signal-list{flex-direction:column;gap:2px;display:flex}.signal-row{border-radius:8px;align-items:center;gap:10px;padding:4px 6px;display:flex}.signal-row.on{background:var(--accent-soft,color-mix(in srgb, var(--accent) 10%, transparent))}.signal-row .checkbox{flex:0 0 170px}@media (max-width:560px){.signal-row{flex-wrap:wrap}.signal-row .grow{flex-basis:calc(100% - 50px);order:3}}.color-swatch{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:40px;height:32px;padding:2px}.add-points .list-item{flex-wrap:wrap}.add-points .list-item>.grow{flex:200px}.add-points .point-type-pick{flex:0 0 220px;margin-left:auto}.add-points .point-type-pick select{width:100%}@media (max-width:560px){.add-points .point-type-pick{flex-basis:100%;padding-left:28px}}.more-row{justify-content:center;gap:6px;margin-top:6px;display:flex}.sec-grid.overview-top{align-items:stretch}.overview-side{flex-direction:column;gap:14px;min-width:0;display:flex}.overview-cams{flex-direction:column;flex:1;min-height:0;display:flex}.cam-mosaic.small.fill{flex:1;grid-auto-rows:1fr;min-height:180px}.cam-mosaic.small.fill.n1{grid-template-columns:minmax(0,1fr)}.cam-mosaic.small.fill .cam-cell .video-box{aspect-ratio:auto;height:100%;min-height:150px}@media (min-width:1100px){.list.activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px;display:grid}}.alarm-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);grid-template-areas:"panel incidents""points journal";align-items:stretch;gap:14px;display:grid}.alarm-area-panel{grid-area:panel}.alarm-area-points{grid-area:points}.alarm-area-incidents{grid-area:incidents}.alarm-area-journal{grid-area:journal}.alarm-layout>.card{flex-direction:column;min-width:0;display:flex}.alarm-layout>.card .more-row{margin-top:auto;padding-top:6px}@media (max-width:1000px){.alarm-layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"panel""points""incidents""journal"}}.ev-ai{-webkit-line-clamp:2;color:var(--muted);text-align:left;-webkit-box-orient:vertical;padding:0 10px 8px;line-height:1.35;display:-webkit-box;overflow:hidden}.ev-ai svg{vertical-align:-2px}.mv{background:color-mix(in srgb, var(--surface2) 80%, var(--bg));touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;cursor:grab;isolation:isolate;outline:none;position:relative;overflow:hidden}.mv:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.mv.panning{cursor:grabbing}.mv.pan-ready{cursor:grab}.mv-tiles{pointer-events:none;position:absolute;inset:0}.mv-tiles.adapt{filter:invert()hue-rotate(180deg)brightness(.92)contrast(.88)saturate(.55)}.mv-tiles.muted{filter:saturate(.35)brightness(1.04)contrast(.9)}.mv-tiles.adapt.muted{filter:invert()hue-rotate(180deg)brightness(.85)contrast(.8)saturate(.2)}.mv-tiles.grayscale{filter:grayscale()contrast(.95)}.mv-tiles.adapt.grayscale{filter:invert()grayscale()brightness(.9)contrast(.85)}.mv-overlay{position:absolute;inset:0}.mv-tile{image-rendering:auto;transform-origin:0 0;max-width:none;position:absolute;top:0;left:0}.mv-tile.under{opacity:.999}.mv-svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.mv-svg>*{pointer-events:auto}.mv-html{pointer-events:none;position:absolute;inset:0}.mv-html>*{pointer-events:auto}.mv-scale{color:var(--text);background:color-mix(in srgb, var(--surface) 80%, transparent);pointer-events:none;border-radius:6px;align-items:center;gap:6px;padding:2px 6px;font-size:.72rem;display:flex;position:absolute;bottom:8px;left:10px}.mv-scale span{border:2px solid var(--text);border-top:0;height:6px}.mv-attrib{background:color-mix(in srgb, var(--surface) 82%, transparent);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;border-top-left-radius:6px;max-width:70%;padding:2px 6px;font-size:.68rem;position:absolute;bottom:0;right:0;overflow:hidden}.mv-attrib a{color:inherit}.mz-fill{fill:var(--zc)}.mz-line{fill:none;stroke:var(--zc);stroke-width:2.2px}.mz.sel .mz-line{stroke-width:3.4px;filter:drop-shadow(0 0 3px color-mix(in srgb, var(--zc) 70%, transparent))}.mz.dim .mz-line{stroke-opacity:.55}.mz-label{white-space:nowrap;color:var(--text);background:color-mix(in srgb, var(--surface) 88%, transparent);border:1.5px solid var(--zc);border-radius:999px;align-items:center;gap:5px;padding:3px 8px;font-size:.78rem;font-weight:650;display:inline-flex;position:absolute;top:0;left:0;translate:-50% -50%;pointer-events:none!important}.mz-label svg{color:var(--zc)}.mz-label.below{translate:-50% 6px}.me-stage .mz-label.below{translate:-50% 22px}.mz-label b{background:var(--zc);color:#fff;border-radius:999px;place-items:center;min-width:18px;height:18px;font-size:.7rem;display:grid}.ml-hit{fill:none;stroke:#0000;stroke-width:14px}.ml-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ml.sel .ml-line{filter:drop-shadow(0 0 3px var(--accent))}.ml-label{background:color-mix(in srgb, var(--surface) 88%, transparent);white-space:nowrap;border-radius:6px;padding:1px 6px;font-size:.72rem;font-weight:650;position:absolute;top:0;left:0;translate:-50% -50%;pointer-events:none!important}.mlb{white-space:nowrap;color:var(--text);text-shadow:0 0 3px var(--surface), 0 0 3px var(--surface), 0 0 6px var(--surface);font-weight:700;position:absolute;top:0;left:0;translate:-50% -50%}.mlb.s{font-size:.75rem}.mlb.m{font-size:.95rem}.mlb.l{font-size:1.3rem}.mlb.sel{outline:2px dashed var(--accent);outline-offset:3px;border-radius:4px}.mk{cursor:pointer;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:0;translate:-50% -100%}.mk-pin{--s:30px;width:var(--s);height:var(--s);background:var(--mc);color:#fff;border-radius:50% 50% 50% 0;place-items:center;display:grid;overflow:hidden;rotate:-45deg;box-shadow:0 2px 6px #00000059,0 0 0 2px #fff}.mk-pin>*{rotate:45deg}.mk-pin img{object-fit:cover;width:140%;height:140%}.mk.s .mk-pin{--s:22px}.mk.l .mk-pin{--s:40px}.mk.sel .mk-pin{box-shadow:0 2px 6px #00000059, 0 0 0 3px var(--accent)}.mk-label{background:color-mix(in srgb, var(--surface) 90%, transparent);box-shadow:var(--shadow);white-space:nowrap;border-radius:6px;gap:4px;margin-top:4px;padding:1px 6px;font-size:.72rem;font-weight:650;display:flex}.mk-label b{color:var(--accent)}.mt{cursor:pointer;width:40px;height:40px;font:inherit;background:0 0;border:0;padding:0;position:absolute;top:0;left:0;translate:-50% -50%}.mt.small{width:30px;height:30px}.mt-face{background:var(--tc);color:#fff;border-radius:50%;place-items:center;font-size:.86rem;font-weight:750;display:grid;position:absolute;inset:0;overflow:hidden;box-shadow:0 0 0 3px #fff,0 3px 8px #00000059}.mt.small .mt-face{font-size:.72rem}.mt-face img{object-fit:cover;width:100%;height:100%}.mt.sel .mt-face{box-shadow:0 0 0 3px #fff, 0 0 0 6px var(--tc), 0 3px 8px #00000059}.mt.stale .mt-face{filter:grayscale(.7);opacity:.8}.mt.live:before{content:"";border:3px solid var(--tc);border-radius:50%;animation:1.6s ease-out infinite mt-pulse;position:absolute;inset:-6px}@keyframes mt-pulse{0%{opacity:.9;transform:scale(.8)}to{opacity:0;transform:scale(1.7)}}.mt-dir{pointer-events:none;position:absolute;inset:-12px}.mt-dir:before{content:"";border:7px solid #0000;border-bottom:10px solid var(--tc);border-top:0;position:absolute;top:0;left:50%;translate:-50%}.mt-acc{fill:color-mix(in srgb, var(--tc) 14%, transparent);stroke:color-mix(in srgb, var(--tc) 55%, transparent);stroke-width:1px;pointer-events:none}.mtr-halo{fill:none;stroke:#fff;stroke-opacity:.85;stroke-width:7px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.mtr-line{fill:none;stroke:var(--tc);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.mtr-line.faded{stroke-opacity:.35}.mtr-stop{fill:#fff;stroke:var(--tc);stroke-width:3px}.map-bar{border-bottom:1px solid var(--border);background:var(--surface);scrollbar-width:none;flex-shrink:0;align-items:center;gap:6px;padding:8px 10px;display:flex;overflow-x:auto}.map-bar::-webkit-scrollbar{display:none}.map-bar>*{flex-shrink:0}.map-title{align-items:center;gap:8px;padding-right:6px;font-weight:650;display:flex}.map-bar>.ellipsis{flex-shrink:1;min-width:0}.map-side .seg span{font-size:.8rem}.map-page{height:calc(100vh - var(--topbar-h));flex-direction:column;min-height:0;display:flex}@media (max-width:760px){.map-page{height:calc(100vh - var(--topbar-h) - var(--tabbar-h))}}.map-body{flex:1;min-height:0;display:flex;position:relative}.map-stage{flex:1;min-width:0;position:relative}.map-stage>.mv{position:absolute;inset:0}.map-side{border-left:1px solid var(--border);background:var(--surface);flex-direction:column;flex-shrink:0;width:340px;min-height:0;display:flex}.map-side-scroll{flex:1;padding:10px;overflow-y:auto}.map-side.closed{display:none}@media (max-width:900px){.map-side{border-left:0;border-top:1px solid var(--border);z-index:6;border-radius:16px 16px 0 0;width:auto;max-height:48%;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px 18px #0000002e}}.map-search{z-index:5;width:min(360px,100% - 140px);position:absolute;top:12px;left:12px}.map-search .input{width:100%;box-shadow:var(--shadow);padding-left:34px}.map-search>.search-ic{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:10px;translate:0 -50%}.map-results{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;max-height:50vh;margin-top:4px;padding:4px;overflow-y:auto}.map-results button{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:7px 8px;display:flex}.map-results button:hover,.map-results button:focus-visible{background:var(--surface2)}.map-results .grp{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 8px 2px;font-size:.72rem}.map-tools{z-index:5;flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;right:12px}.map-tool-group{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;padding:3px;display:flex}.map-tool-group button,.map-tool-group a{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;display:grid}.map-tool-group button:hover,.map-tool-group a:hover{background:var(--surface2)}.map-tool-group button.on{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent)}.map-person{cursor:pointer;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;padding:8px;display:flex}.map-person:hover{background:var(--surface2)}.map-person.on{border-color:color-mix(in srgb, var(--accent) 60%, transparent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.map-avatar{background:var(--tc);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;font-weight:750;display:grid;overflow:hidden}.map-avatar img{object-fit:cover;width:100%;height:100%}.map-detail{border:1px solid var(--border);background:var(--surface);border-radius:14px;margin-bottom:10px;padding:12px}.map-timeline{flex-direction:column;gap:2px;margin-top:8px;display:flex}.map-seg{cursor:pointer;border-radius:8px;gap:10px;padding:6px 4px;font-size:.88rem;display:flex}.map-seg:hover{background:var(--surface2)}.map-seg .dot{justify-content:center;width:12px;padding-top:3px;display:flex}.map-seg .dot i{background:var(--tc);border-radius:50%;width:10px;height:10px}.map-seg.move .dot i{opacity:.6;border-radius:2px;width:3px;height:22px}.map-popup{background:var(--surface);border:1px solid var(--border);min-width:200px;max-width:280px;box-shadow:var(--shadow);z-index:3;cursor:auto;border-radius:12px;padding:10px 12px;position:absolute;top:0;left:0;translate:-50% calc(-100% - 46px)}.map-popup img.photo{object-fit:cover;border-radius:8px;width:100%;max-height:140px;margin-bottom:6px}.map-empty-note{z-index:4;max-width:min(520px,90%);position:absolute;bottom:22px;left:50%;translate:-50%}.me-stage{position:relative}.me-stage>.mv{position:absolute;inset:0}.me-handle{border:2.5px solid var(--accent);cursor:move;background:#fff;border-radius:50%;width:14px;height:14px;position:absolute;top:0;left:0;translate:-50% -50%;box-shadow:0 1px 4px #0006}.me-handle.mid{opacity:.75;cursor:copy;border-style:dashed;width:10px;height:10px}.me-handle.radius{cursor:ew-resize;border-radius:3px}.me-handle.home{color:#fff;background:#2f7d5b;border-color:#fff;place-items:center;width:34px;height:34px;display:grid}.me-preview{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:2px;stroke-dasharray:6 4;pointer-events:none}.me-measure{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-dasharray:2 5;stroke-linecap:round;pointer-events:none}.me-tip{background:var(--text);color:var(--surface);white-space:nowrap;border-radius:7px;padding:3px 8px;font-size:.78rem;font-weight:650;position:absolute;top:0;left:0;translate:14px 14px;pointer-events:none!important}.me-hint{background:color-mix(in srgb, var(--surface) 94%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);z-index:4;text-align:center;border-radius:10px;max-width:80%;padding:6px 12px;font-size:.85rem;position:absolute;bottom:14px;left:50%;translate:-50%}.me-list-item{cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:.88rem;display:flex}.me-list-item:hover{background:var(--surface2)}.me-list-item.on{background:color-mix(in srgb, var(--accent) 14%, transparent)}.me-swatch{border-radius:4px;flex-shrink:0;width:14px;height:14px}.place-picker{grid-template-columns:minmax(180px,230px) 1fr;gap:12px;display:grid}@media (max-width:720px){.place-picker{grid-template-columns:1fr}}.place-list{border:1px solid var(--border);background:var(--surface);border-radius:12px;max-height:260px;padding:4px;overflow-y:auto}.place-list button{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.place-list button:hover{background:var(--surface2)}.place-list button.on{background:color-mix(in srgb, var(--accent) 16%, transparent);font-weight:650}.place-list .pc{color:var(--muted);font-variant-numeric:tabular-nums;min-width:48px;font-size:.82rem}.place-map{border:1px solid var(--border);border-radius:12px;height:220px;position:relative;overflow:hidden}.place-map>.mv{position:absolute;inset:0}.place-pin{color:#d14b4b;filter:drop-shadow(0 2px 3px #0006);position:absolute;top:0;left:0;translate:-50% -100%;pointer-events:none!important}.map-tracker-row{border-top:1px solid var(--border);grid-template-columns:auto 1fr auto;align-items:start;gap:12px;padding:12px 0;display:grid}.map-tracker-row:first-child{border-top:0}.map-source{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.map-source button{border:2px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;font:inherit;color:var(--text);border-radius:12px;padding:0;overflow:hidden}.map-source button.on{border-color:var(--accent)}.map-source img{object-fit:cover;background:var(--surface2);width:100%;height:90px;display:block}.map-source span{padding:6px 8px;font-size:.85rem;font-weight:600;display:block}.map-source small{color:var(--muted);padding:0 8px 6px;display:block}.mrt-case{fill:none;stroke:#fff;stroke-width:9px;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.mrt-line{fill:none;stroke:var(--rc);stroke-width:5.5px;stroke-linecap:round;stroke-linejoin:round}.mrt.trip .mrt-case{stroke-width:7px;opacity:.7}.mrt.trip .mrt-line{stroke-width:4px}.mtf{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:0;translate:-50% -14px}.mtf-dot{color:#fff;background:var(--rc);border-radius:50%;place-items:center;width:28px;height:28px;display:grid;box-shadow:0 2px 6px #0000004d,0 0 0 2px #fff}.mtf.start{translate:-50% -8px}.mtf.start .mtf-dot{width:16px;height:16px;box-shadow:0 1px 4px #00000059, inset 0 0 0 5px var(--rc);background:#fff}.mtf-label{white-space:nowrap;background:color-mix(in srgb, var(--surface) 92%, transparent);border:1.5px solid var(--rc);box-shadow:var(--shadow);border-radius:999px;margin-top:4px;padding:1px 7px;font-size:.72rem;font-weight:650}.rt-panel{flex-direction:column;gap:8px;padding:10px;display:flex}.rt-ends{flex-direction:column;gap:6px;padding-right:34px;display:flex;position:relative}.rt-swap{position:absolute;top:50%;right:0;translate:0 -50%}.rt-place{flex-direction:column;gap:3px;display:flex}.rt-place-label{color:var(--text-muted);font-size:.72rem;font-weight:600}.rt-address{flex-direction:column;gap:4px;display:flex}.rt-result{width:100%;font:inherit;color:inherit;background:0 0;border:0}.rt-summary{background:var(--accent-soft,color-mix(in srgb, var(--accent) 12%, transparent));border-radius:12px;padding:10px 12px}.rt-big{font-size:1.5rem;font-weight:750;line-height:1.1}.rt-links{flex-wrap:wrap;gap:6px;display:flex}.rt-links a{text-decoration:none}.rt-send{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:6px;display:flex}.rt-steps summary{cursor:pointer;padding:4px 0}.rt-step{border-bottom:1px solid var(--border);align-items:flex-start;gap:8px;padding:6px 0;font-size:.85rem;display:flex}.rt-step svg{color:var(--accent);flex:none;margin-top:2px}.map-trip{background:color-mix(in srgb, var(--tc,var(--accent)) 12%, transparent);border:1px solid color-mix(in srgb, var(--tc,var(--accent)) 35%, transparent);border-radius:10px;align-items:flex-start;gap:8px;margin-top:10px;padding:8px 10px;display:flex}.map-trip-line{color:var(--accent);font-weight:600}.dz-tabs.me-tabs{align-items:center;gap:2px;padding:10px 8px}.me-tabs-scroll{scrollbar-width:none;scroll-snap-type:x proximity;flex:1;gap:4px;min-width:0;display:flex;overflow-x:auto}.me-tabs-scroll::-webkit-scrollbar{display:none}.dz-tabs.me-tabs .me-tabs-scroll button{white-space:nowrap;scroll-snap-align:start;flex:1 0 auto;padding:0 10px}.me-tab-arrows{flex:none;display:inline-flex}.dz-tabs.me-tabs button.me-tab-arrow{border-radius:6px;flex:none;width:22px;height:32px;padding:0}.dz-tabs.me-tabs button.me-tab-arrow:disabled{opacity:.3;cursor:default}.dz-tabs.me-tabs button.me-tab-search{flex:none;width:34px}.me-int-group{margin-bottom:8px}.me-int-sub{color:var(--muted);text-transform:none;align-items:center;gap:4px;padding:6px 8px 2px;font-size:.72rem;font-weight:650;display:flex}button.me-int-sub.me-int-toggle{width:100%;font:inherit;color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:0;font-size:.72rem;font-weight:650}.me-int-item{gap:6px}.me-int-item .btn{flex:none}.me-source{background:color-mix(in srgb, var(--accent) 9%, transparent);border-radius:10px;align-items:flex-start;gap:8px;margin:8px 12px 0;padding:8px 10px;font-size:.8rem;display:flex}.map-card-view{height:calc(100% + 2 * var(--card-pad,14px));min-height:0;margin:calc(var(--card-pad,14px) * -1);border-radius:inherit;flex-direction:column;display:flex;position:relative;overflow:hidden}.mc-body{flex-direction:column;flex:1;min-height:0;display:flex}.map-card-view.side .mc-body{flex-direction:row}.mc-stage{flex:1;min-width:0;min-height:0;position:relative}.mc-stage .mv{position:absolute;inset:0}.mc-tools{top:8px;right:8px}.mc-tools .map-tool-group button{width:30px;height:30px}.mc-note{background:color-mix(in srgb, var(--surface) 92%, transparent);box-shadow:var(--shadow);border-radius:10px;padding:6px 10px;font-size:.8rem;position:absolute;bottom:8px;left:8px;right:8px}.mc-name{white-space:nowrap;pointer-events:none;background:color-mix(in srgb, var(--surface) 90%, transparent);box-shadow:var(--shadow);border-radius:999px;padding:0 6px;font-size:.7rem;font-weight:650;position:absolute;top:0;left:0;translate:-50% 20px}.mc-list{background:var(--surface);gap:6px;padding:8px;display:flex;overflow:auto}.mc-list.bottom{border-top:1px solid var(--border);flex:none}.mc-list.side{border-left:1px solid var(--border);flex-direction:column;flex:none;width:34%;max-width:220px}.mc-person{border:1px solid var(--border);background:var(--surface);min-width:150px;color:inherit;font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 8px 4px 4px;display:flex}.mc-list.side .mc-person{border-radius:12px;min-width:0}.mc-person>span{flex-direction:column;display:flex}.mc-person-name{font-size:.82rem;font-weight:650}.me-int-btn{border:1px solid var(--border);flex:none}.me-int-btn.on{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 45%, transparent)}.mm-art{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--surface2) 80%, var(--accent) 6%);color:color-mix(in srgb, var(--muted) 70%, transparent);flex-shrink:0;justify-content:center;align-items:center;width:100%;display:flex;position:relative;overflow:hidden}.mm-art img{object-fit:cover;width:100%;height:100%;display:block}.mm-art.round{border-radius:50%}.mm-progress{background:#00000073;border-radius:4px;height:4px;position:absolute;bottom:8px;left:8px;right:8px;overflow:hidden}.mm-row-main .mm-progress{background:var(--surface2);max-width:220px;margin-top:6px;position:static}.mm-progress span{background:var(--accent);height:100%;display:block}.mm-strip{scroll-snap-type:x proximity;scrollbar-width:thin;grid-auto-columns:168px;grid-auto-flow:column;gap:16px;padding:2px 2px 10px;display:grid;overflow-x:auto}.mm-strip>*{scroll-snap-align:start}.mm-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:18px 16px;display:grid}.mm-strip:has(.mm-tile.wide){grid-auto-columns:260px}.mm-tile{flex-direction:column;gap:8px;min-width:0;display:flex;position:relative}.mm-tile-art,.mm-tile-text{all:unset;cursor:pointer;box-sizing:border-box;text-align:left;width:100%;min-width:0;display:block}.mm-tile-art{border-radius:var(--radius-sm);box-shadow:var(--shadow);transition:transform .15s;position:relative}.mm-tile-art:hover{transform:translateY(-2px)}.mm-tile-art:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mm-tile-text{flex-direction:column;gap:1px;display:flex}.mm-tile-title{font-size:.92rem;font-weight:600}.mm-tile-sub{color:var(--muted);font-size:.8rem}.mm-tile-media{position:relative}.mm-tile-play{background:var(--accent);width:42px;height:42px;color:var(--accent-text);box-shadow:var(--shadow-strong);opacity:0;cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;transition:opacity .15s,transform .15s;display:flex;position:absolute;bottom:10px;right:10px;transform:translateY(6px)}.mm-tile:hover .mm-tile-play,.mm-tile-play:focus-visible{opacity:1;transform:none}@media (hover:none){.mm-tile-play{opacity:.92;width:36px;height:36px;transform:none}}.mm-badge-spotify{color:#fff;background:#1db954;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:8px;left:8px}.mm-section{margin:8px 0 26px}.mm-section-head{align-items:center;gap:10px;margin-bottom:10px;display:flex}.mm-section-head h2{flex:1;min-width:0;margin:0;font-size:1.15rem}.mm-more{align-items:center;gap:2px;font-size:.85rem;display:inline-flex}.mm-subhead{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 6px;font-size:.72rem}.mm-seg{background:var(--surface2);border-radius:999px;flex-wrap:wrap;gap:4px;max-width:100%;margin:0 0 18px;padding:4px;display:inline-flex}.mm-seg button{color:var(--muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:6px 14px;font-size:.88rem;display:inline-flex}.mm-seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-weight:600}.mm-rows{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-direction:column;padding:6px;display:flex}.mm-row{border-radius:var(--radius-sm);align-items:center;gap:12px;min-height:54px;padding:6px 8px;display:flex}.mm-row:hover{background:var(--surface2)}.mm-row.current .mm-row-title{color:var(--accent)}.mm-row.disabled{opacity:.5}.mm-row-lead{all:unset;cursor:pointer;border-radius:var(--radius-sm);justify-content:center;align-items:center;min-width:28px;display:flex;position:relative}.mm-row-num{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9rem}.mm-row-hover{color:#fff;border-radius:inherit;background:#00000073;justify-content:center;align-items:center;display:none;position:absolute;inset:0}.mm-row:hover .mm-row-hover{display:flex}.mm-row-main{cursor:pointer;flex:1;min-width:0}.mm-row-title{font-weight:550}.mm-row-sub{color:var(--muted);font-size:.82rem}.mm-row-sub a{color:inherit}.mm-row-sub a:hover{color:var(--text)}.mm-row-overview{opacity:.85}.mm-row-album{color:var(--muted);flex:0 28%;min-width:0;font-size:.85rem}.mm-row-dur{text-align:right;font-variant-numeric:tabular-nums;min-width:44px}.mm-explicit{background:var(--muted);color:var(--surface);vertical-align:middle;border-radius:3px;margin-left:6px;padding:0 4px;font-size:.62rem;display:inline-block}.mm-fav{color:var(--muted)}.mm-row .menu>.btn,.mm-hero-actions .menu>.btn{background:0 0;border-color:#0000}.mm-row.playing-here .mm-row-title{color:var(--accent)}.mm-row-eq{color:var(--accent);vertical-align:-2px;margin-right:6px;display:inline-flex}.mm-fav.on{color:var(--accent)}.mm-fav.on svg{fill:currentColor}@media (max-width:720px){.hide-sm{display:none!important}.mm-row{gap:8px}.mm-strip{grid-auto-columns:138px;gap:12px}.mm-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px 12px}}.mm-provider{background:var(--surface2);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.7rem}.mm-provider.spotify{color:#138a3e;background:#1db9542e}.mm-search{background:var(--surface);border:1px solid var(--border);width:300px;max-width:100%;height:38px;color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:0 12px;display:flex}@media (max-width:720px){.mm-search{width:100%}}.mm-search input{font:inherit;color:var(--text);background:0 0;border:0;outline:0;width:100%}.mm-search:focus-within{border-color:var(--accent)}.mm-output-btn{max-width:280px}.mm-output-btn .ellipsis{max-width:190px}.mm-output{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;align-items:center;gap:10px;padding:9px 10px;display:flex}.mm-output:hover{background:var(--surface2)}.mm-output.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.mm-output.disabled{opacity:.45;cursor:not-allowed}.mm-output input{width:18px;height:18px;accent-color:var(--accent)}.mm-pick{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:0;align-items:center;gap:10px;display:flex!important}.mm-seek{align-items:center;gap:8px;width:100%;display:flex}.mm-seek.live{color:var(--muted);justify-content:center;font-size:.8rem}.mm-live-dot{background:var(--danger);border-radius:50%;width:8px;height:8px;animation:1.6s infinite mm-pulse}@keyframes mm-pulse{50%{opacity:.35}}.mm-time{font-variant-numeric:tabular-nums;text-align:center;min-width:38px}.mm-seek input[type=range],.mm-volume input[type=range]{appearance:none;background:linear-gradient(to right, var(--accent) var(--p,0%), color-mix(in srgb, var(--muted) 30%, transparent) var(--p,0%));cursor:pointer;border-radius:4px;flex:1;min-width:60px;height:4px}.mm-seek input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0000004d}.mm-volume input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:14px;height:14px;box-shadow:0 1px 3px #0000004d}.mm-seek input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:12px;height:12px}.mm-volume input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:12px;height:12px}.mm-seek.big input[type=range]{height:6px}.mm-seek input:disabled{cursor:default;opacity:.6}.mm-controls{align-items:center;gap:4px;display:flex}.mm-controls.big{justify-content:center;gap:14px}.mm-controls .mm-play{border-radius:50%;width:40px;height:40px}.mm-controls.big .mm-play{width:60px;height:60px}.btn.on{color:var(--accent)}.mm-volume{align-items:center;gap:6px;width:100%;display:flex}.mm-volume.compact{width:150px}.mm-vol-n{text-align:right;font-variant-numeric:tabular-nums;min-width:26px}.mm-bar{z-index:25;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-top:1px solid var(--border);align-items:center;gap:14px;margin-top:auto;padding:8px 18px 10px;display:flex;position:sticky;bottom:0}.mm-bar-main{all:unset;box-sizing:border-box;cursor:pointer;flex:0 300px;align-items:center;gap:12px;min-width:0;display:flex}.mm-bar-text{flex-direction:column;min-width:0;display:flex}.mm-bar-title{font-size:.92rem;font-weight:600}.mm-bar-sub{color:var(--muted);font-size:.78rem}.mm-bar-seek{flex:1;min-width:120px}.mm-bar-progress{background:var(--accent);height:2px;transition:width 1s linear;position:absolute;top:-1px;left:0}@media (max-width:860px){.mm-bar{left:8px;right:8px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 8px);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-strong);gap:6px;padding:6px 8px;position:fixed;overflow:hidden}.mm-bar-main{flex:1}.mm-bar .mm-controls .btn:first-child{display:none}.mm-bar-progress{top:auto;bottom:0}.main:has(.mm-bar) .content{padding-bottom:calc(var(--tabbar-h) + 96px)}}.mm-bar-hide{flex:none;margin-left:-6px}.mm-fab{z-index:25;border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);height:44px;box-shadow:var(--shadow-strong);color:var(--text);cursor:pointer;font:inherit;border-radius:999px;align-items:center;gap:6px;padding:0 12px 0 14px;animation:.15s fade;display:flex;position:fixed;bottom:18px;right:18px}.mm-fab:hover{border-color:color-mix(in srgb, var(--accent) 50%, var(--border))}.mm-eq{width:18px;height:16px;color:var(--accent);align-items:flex-end;gap:2px;display:inline-flex}.mm-eq i{transform-origin:bottom;background:currentColor;border-radius:1px;flex:1;height:100%;transform:scaleY(.3)}.mm-eq i:nth-child(2){transform:scaleY(.6)}.mm-eq i:nth-child(3){transform:scaleY(.45)}.mm-eq.on i{animation:.9s ease-in-out infinite alternate mm-eq}.mm-eq.on i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.mm-eq.on i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}.mm-eq.on i:nth-child(4){animation-duration:.8s;animation-delay:-.15s}@keyframes mm-eq{0%{transform:scaleY(.2)}to{transform:scaleY(1)}}@media (prefers-reduced-motion:reduce){.mm-eq.on i{animation:none}}@media (max-width:860px){.mm-fab{right:12px;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom) + 12px)}}.mm-panel-backdrop{z-index:var(--z-modal);background:#0a0f0d80;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.mm-panel{background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;flex-direction:column;width:min(1100px,100%);height:min(760px,100%);animation:.2s ease-out mm-up;display:flex;position:relative;overflow:hidden}@keyframes mm-up{0%{opacity:0;transform:translateY(40px)}}.mm-panel-bg{filter:blur(50px)saturate(1.3);opacity:.35;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:-40px}.mm-panel-head{align-items:center;gap:8px;padding:10px 16px 0;display:flex;position:relative}.mm-panel-body{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:28px;min-height:0;padding:10px 28px 28px;display:grid;position:relative}.mm-panel-now{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:0;display:flex}.mm-panel-art{width:min(380px,42vh,100%);box-shadow:var(--shadow-strong);border-radius:var(--radius)}.mm-panel-titles{align-items:center;gap:8px;width:min(460px,100%);display:flex}.mm-panel-title{font-size:1.35rem;font-weight:700}.mm-panel-sub{color:var(--muted)}.mm-panel-now .mm-seek,.mm-panel-now .mm-volume{width:min(460px,100%)}.mm-panel-side{background:color-mix(in srgb, var(--surface) 80%, transparent);border-radius:var(--radius);flex-direction:column;min-height:0;padding:12px;display:flex}.mm-panel-tabs{align-self:flex-start;margin-bottom:10px}.mm-queue,.mm-outputs{flex-direction:column;gap:2px;min-height:0;display:flex;overflow-y:auto}.mm-queue-item{all:unset;border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:10px;padding:6px;display:flex}.mm-queue-item:hover{background:var(--surface2)}.mm-queue-item.current{background:var(--accent-soft);color:var(--accent)}.mm-queue-item.past{opacity:.55}.mm-out-row{border-radius:var(--radius-sm);align-items:center;gap:8px;padding:6px;display:flex}.mm-out-row.on{background:var(--accent-soft)}.mm-out-name{all:unset;cursor:pointer;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.mm-out-row .mm-volume.compact{width:130px}@media (max-width:760px){.mm-panel{border-radius:0;height:100%}.mm-panel-body{grid-template-columns:1fr;gap:18px;padding:6px 16px 24px;overflow-y:auto}.mm-panel-art{width:min(320px,78vw)}.mm-panel-side{max-height:none}}.mm-video{z-index:var(--z-fullscreen);color:#fff;background:#000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.mm-video video{object-fit:contain;width:100%;height:100%}.mm-video-top,.mm-video-bottom{opacity:0;--text:#fff;--muted:#c9cfcc;--surface:#1c2220;--surface2:#2a312e;--border:#39413e;align-items:center;gap:10px;padding:14px 18px;transition:opacity .25s;display:flex;position:absolute;left:0;right:0}.mm-video-top{background:linear-gradient(#000000bf,#0000);top:0}.mm-video-bottom{background:linear-gradient(#0000,#000c);flex-direction:column;bottom:0}.mm-video.show .mm-video-top,.mm-video.show .mm-video-bottom{opacity:1}.mm-video .btn.ghost{color:#fff}.mm-video .input{color:#fff;background:#ffffff1f;border-color:#ffffff40;width:auto}.mm-video:not(.show){cursor:none}.btn-link{all:unset;cursor:pointer;color:var(--accent);align-items:center;gap:4px;margin-bottom:12px;font-size:.9rem;display:inline-flex}.mm-crumbs{gap:14px;margin-bottom:12px;font-size:.9rem;display:flex}.mm-hero{border-radius:var(--radius);align-items:flex-end;gap:26px;margin-bottom:26px;padding:0;display:flex;position:relative}.mm-hero.has-backdrop{color:#fff;--muted:#d5dad7;min-height:280px;padding:28px;overflow:hidden}.mm-hero.has-backdrop a{color:#fff;text-decoration:underline}.mm-hero-bg{background-position:50% 25%;background-size:cover;position:absolute;inset:0}.mm-hero-bg:after{content:"";background:linear-gradient(90deg,#000000d9 0%,#0000008c 55%,#00000040 100%);position:absolute;inset:0}.mm-hero-art{width:220px;box-shadow:var(--shadow-strong);flex-shrink:0;position:relative}.mm-hero-text{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex;position:relative}.mm-hero-kicker{text-transform:uppercase;letter-spacing:.05em}.mm-hero-title{margin:0;font-size:clamp(1.6rem,3.4vw,2.6rem);line-height:1.1}.mm-hero-sub{font-size:1.02rem}.mm-hero-overview{-webkit-line-clamp:4;-webkit-box-orient:vertical;max-width:70ch;margin:4px 0;display:-webkit-box;overflow:hidden}.mm-hero-tech{flex-wrap:wrap;gap:14px;display:flex}.mm-hero-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}.mm-hero.has-backdrop .btn:not(.primary){color:#fff;background:#ffffff24;border-color:#ffffff40}@media (max-width:720px){.mm-hero{flex-direction:column;align-items:flex-start;gap:16px}.mm-hero-art{width:min(200px,56vw)}.mm-hero.has-backdrop{padding:18px}}.mm-now-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.mm-now-card{flex-direction:column;gap:10px;padding:12px;display:flex;position:relative;overflow:hidden}.mm-now-main{all:unset;box-sizing:border-box;cursor:pointer;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.mm-now-text{flex-direction:column;gap:2px;min-width:0;display:flex}.mm-now-title{font-size:1.02rem;font-weight:650}.mm-now-ctl{justify-content:space-between;align-items:center;gap:10px;display:flex}.mm-now-progress{background:var(--surface2);height:3px;position:absolute;bottom:0;left:0;right:0}.mm-now-progress span{background:var(--accent);height:100%;transition:width 1s linear;display:block}.mm-speakers{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px;display:grid}.mm-speaker{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);align-items:center;gap:10px;padding:10px 12px;display:flex}.mm-welcome-steps{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:12px;display:grid}.mm-step{border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);flex-direction:column;gap:4px;padding:14px;display:flex}.mm-step:hover{background:var(--accent-soft);text-decoration:none}.mm-search-title{margin-bottom:12px}.mm-tv-view{flex-direction:column;gap:16px;display:flex}.mm-tv-screen{color:#888;background:#111;border:3px solid #2b2b2b;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:96px;height:56px;display:flex;overflow:hidden}.mm-tv-screen img{object-fit:cover;width:100%;height:100%}.mm-tv-screen.off{opacity:.6}.mm-power{border-radius:50%;width:52px;height:52px}.mm-power.on{color:var(--danger)}.mm-chips{flex-wrap:wrap;gap:6px;display:flex}.mm-chips .chip.on{background:var(--accent-soft);border-color:color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--accent)}.mm-tv-cols{grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:16px;display:grid}@media (max-width:860px){.mm-tv-cols{grid-template-columns:1fr}}.mm-remote{outline:none;flex-direction:column;align-items:center;gap:16px;display:flex}.mm-remote:focus-visible{box-shadow:0 0 0 2px var(--accent)}.mm-remote-top,.mm-remote-row{justify-content:center;gap:14px;display:flex}.mm-rkey,.mm-rocker button,.mm-digits button{border:1px solid var(--border);background:var(--surface2);color:var(--text);cursor:pointer;width:50px;height:50px;font:inherit;border-radius:50%;justify-content:center;align-items:center;font-weight:600;transition:transform 60ms;display:flex}.mm-rkey:active,.mm-rocker button:active,.mm-digits button:active,.mm-dpad button:active{background:var(--accent-soft);transform:scale(.93)}.mm-dpad{background:var(--surface2);border:1px solid var(--border);border-radius:50%;width:210px;height:210px;position:relative}.mm-dpad button{color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.mm-dpad .up,.mm-dpad .down{width:70px;height:66px;left:70px}.mm-dpad .up{top:4px}.mm-dpad .down{bottom:4px}.mm-dpad .left,.mm-dpad .right{width:66px;height:70px;top:70px}.mm-dpad .left{left:4px}.mm-dpad .right{right:4px}.mm-dpad .ok{background:var(--surface);border:1px solid var(--border);width:80px;height:80px;font:inherit;box-shadow:var(--shadow);font-weight:700;top:65px;left:65px}.mm-remote-rockers{align-items:center;gap:22px;display:flex}.mm-rocker{background:var(--surface2);border:1px solid var(--border);border-radius:30px;flex-direction:column;align-items:center;gap:2px;padding:2px;display:flex}.mm-rocker button{border:0;width:48px;height:46px}.mm-rocker span{color:var(--muted);font-size:.7rem}.mm-remote-row.colors{gap:10px}.mm-color{cursor:pointer;border:0;border-radius:9px;width:44px;height:18px}.mm-color.red{background:#d93a3a}.mm-color.green{background:#2e9e4f}.mm-color.yellow{background:#e3b62c}.mm-color.blue{background:#2f6fd6}.mm-digits{grid-template-columns:repeat(3,56px);gap:10px;display:grid}.mm-apps{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:12px;display:grid}.mm-app{all:unset;cursor:pointer;border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:6px;min-width:0;max-width:100%;padding:8px 4px;font-size:.8rem;display:flex}.mm-app:hover{background:var(--surface2)}.mm-app-logo{background:var(--app,var(--accent));color:#fff;width:52px;height:52px;box-shadow:var(--shadow);border-radius:14px;justify-content:center;align-items:center;font-size:1.4rem;font-weight:800;display:flex}.mm-player-grid,.mm-zones{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;display:grid}.mm-player{flex-direction:column;gap:10px;padding:12px;display:flex}.mm-player.offline{opacity:.6}.mm-player-head{align-items:center;gap:12px;display:flex}.mm-player-art{all:unset;cursor:pointer}.mm-player-name{font-weight:650}.mm-player-pair{margin:0;font-size:.85rem}.mm-zone{padding:12px}.mm-add-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-bottom:10px;display:grid}.mm-add{color:var(--text);align-items:center;gap:12px;padding:12px 14px;display:flex}.mm-add:hover{box-shadow:var(--shadow-strong);text-decoration:none}.mm-add.disabled{pointer-events:none;opacity:.6}.mm-steps{flex-direction:column;gap:6px;margin:0 0 12px;padding-left:22px;font-size:.92rem;display:flex}.mm-copy{background:var(--surface2);cursor:copy;-webkit-user-select:all;user-select:all;border-radius:4px;margin:0 4px;padding:1px 6px;display:inline-block}.mm-avatar{object-fit:cover;border-radius:50%;width:44px;height:44px}.mm-scan{color:var(--muted);align-items:center;gap:8px;margin-bottom:8px;font-size:.88rem;display:flex}.mm-folder{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px 0;display:flex}.mm-folder:last-of-type{border-bottom:0}.mm-help{margin-top:10px}.mm-help summary{cursor:pointer;color:var(--accent);font-size:.9rem}.mm-dirs{flex-direction:column;max-height:50vh;margin-top:10px;display:flex;overflow-y:auto}
