:root{--font:"SF Pro Text", "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Noto Sans CJK SC", "Source Han Sans SC", "Microsoft YaHei UI", system-ui, sans-serif;--bg:#e8ebee;--surface:#fff;--surface-2:#f3f5f7;--surface-3:#e3e7eb;--ink:#14181d;--ink-2:#545c66;--ink-3:#8a929b;--line:#d4d9de;--line-strong:#b9c0c7;--accent:#2545d4;--accent-hover:#1c37b0;--accent-soft:#e2e7fb;--accent-ink:#fff;--live:#df3539;--ok:#17895a;--warn:#b26b00;--danger:#c4262c;--stage:#07090b;--seg:#2545d4;--seg-soft:#2545d42e;--sel:#c97a00;--sel-soft:#e8961442;--scrim:#0c0f136b;--shadow-pop:0 18px 48px -12px #141c2847, 0 2px 6px #141c2814;--r-stage:16px;--r-panel:12px;--r-ctl:10px;--hit:40px;--ease:cubic-bezier(.2, .7, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#15171a;--surface:#1c1f23;--surface-2:#23272c;--surface-3:#2c3137;--ink:#e6e9ed;--ink-2:#a0a8b1;--ink-3:#6f7882;--line:#2f343a;--line-strong:#444b53;--accent:#8399ff;--accent-hover:#a2b2ff;--accent-soft:#252c4d;--accent-ink:#0d1330;--live:#ff5a5e;--ok:#4cc38a;--warn:#f0a63a;--danger:#ff6b6f;--stage:#000;--seg:#8399ff;--seg-soft:#8399ff33;--sel:#f0a63a;--sel-soft:#f0a63a42;--scrim:#0009;--shadow-pop:0 18px 48px -12px #000000b3, 0 0 0 1px var(--line);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (pointer:coarse){:root{--hit:48px}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tnum,.timecode,.zoom-label,.clip-time{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--ink-3);font-size:13px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{width:var(--hit);height:var(--hit);border-radius:var(--r-ctl);color:var(--ink-2);background:0 0;border:0;flex:none;place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon-btn:disabled{opacity:.38}@media (hover:hover){.icon-btn:not(:disabled):hover{background:var(--surface-3);color:var(--ink)}}.icon-btn:not(:disabled):active{background:var(--surface-3)}.btn{min-height:var(--hit);border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface);color:var(--ink);white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:550;transition:background .15s,border-color .15s,transform 80ms;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.45}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.ghost{color:var(--ink-2);background:0 0;border-color:#0000}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.block{width:100%}.btn.sm{min-height:34px;padding:0 12px;font-size:13px}@media (hover:hover){.btn:not(:disabled):hover{border-color:var(--ink-3)}.btn.primary:not(:disabled):hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost:not(:disabled):hover{background:var(--surface-3)}}@media (pointer:coarse){.btn.sm{min-height:40px}}.link{color:var(--accent);background:0 0;border:0;padding:0 4px;font-weight:550}.segmented{background:var(--surface-3);border-radius:calc(var(--r-ctl) + 2px);gap:2px;padding:3px;display:inline-flex}.segmented button{min-height:calc(var(--hit) - 6px);color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:0 16px;font-weight:550;transition:background .15s,color .15s}.segmented button.is-on{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000001f}.segmented button:disabled{opacity:.4}.segmented.sm button{min-height:32px;padding:0 12px;font-size:13px}@media (pointer:coarse){.segmented.sm button{min-height:40px}}.brand-mark{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.brand-mark.cowelf{background:#e09a1a}.brand-mark.yoosee{background:#2aa6a0;border-radius:50%}.brand-mark.aijia{background:linear-gradient(135deg,#1678df,#47c6d1);border-radius:35%}.brand-mark.lg{border-radius:5px;width:18px;height:18px}.brand-mark.lg.yoosee{border-radius:50%}.dot{border-radius:50%;flex:none;width:8px;height:8px}.dot.on{background:var(--ok);box-shadow:0 0 0 3px color-mix(in srgb, var(--ok) 22%, transparent)}.dot.off{background:var(--ink-3)}.dot.unknown{border:1.5px solid var(--ink-3);background:0 0}.gate-lens{background:radial-gradient(circle at 50% 50%, var(--accent) 0 22%, transparent 23%), radial-gradient(circle, transparent 0 46%, var(--ink) 47% 62%, transparent 63%);border:2px solid var(--line-strong);border-radius:50%;width:56px;height:56px;display:block;position:relative}.gate-lens:after{content:"";background:var(--live);border-radius:50%;width:9px;height:9px;position:absolute;top:6px;right:6px}.gate-lens.sm{border-width:1.5px;width:28px;height:28px}.gate-lens.sm:after{width:6px;height:6px;top:1px;right:1px}.boot,.gate,.welcome{text-align:center;place-items:center;gap:16px;min-height:100%;padding:24px;display:grid}.boot{align-content:center}.gate-card{background:var(--surface);border-radius:var(--r-stage);border:1px solid var(--line);justify-items:center;gap:16px;width:min(380px,100%);padding:32px 24px;display:grid}.gate-card h1{font-size:22px;font-weight:650}.gate-card p{color:var(--ink-2);font-size:14px}.gate-card .field{text-align:left;width:100%}.auth-form{width:100%;margin-top:4px}.auth-switch{color:var(--ink-2);font-size:13px}.welcome{align-content:center;position:relative}.theme-corner{position:absolute;top:16px;right:16px}.welcome-actions{align-items:center;gap:4px;display:flex;position:absolute;top:16px;right:16px}.welcome-inner{justify-items:center;gap:18px;width:min(720px,100%);display:grid}.welcome h1{letter-spacing:-.01em;max-width:16em;font-size:clamp(26px,4.4vw,40px);font-weight:300;line-height:1.18}.welcome-inner>p{color:var(--ink-2);max-width:32em}.welcome-brands{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));align-items:start;gap:12px;width:100%;margin-top:8px;display:grid}.welcome-brand{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);text-align:left;overflow:hidden}.welcome-brand.is-open{border-color:var(--accent)}.welcome-pick{background:0 0;border:0;align-items:center;gap:12px;width:100%;min-height:64px;padding:16px 18px;display:flex}.welcome-pick strong{font-size:17px;font-weight:600}.welcome-pick span:last-child{color:var(--accent);margin-left:auto;font-size:14px;font-weight:550}.welcome-brand .account-form{padding:0 18px 18px}.field{gap:6px;display:grid}.field span{color:var(--ink-2);font-size:13px;font-weight:550}.field input{min-height:calc(var(--hit) + 4px);border:1px solid var(--line-strong);border-radius:var(--r-ctl);background:var(--surface-2);padding:0 12px;font-size:16px;transition:border-color .15s,background .15s}.field input:focus{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.account-form{gap:12px;display:grid}.form-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.form-error,.inline-error{color:var(--danger);font-size:13px}.form-note{color:var(--ink-3);font-size:12.5px;line-height:1.55}.confirm-text{color:var(--ink-2);margin-right:auto;font-size:13px}.shell{grid-template-columns:264px 1fr;height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--line);min-height:0;padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);flex-direction:column;display:flex}.brandbar{align-items:center;gap:10px;padding:16px 12px 8px 16px;display:flex}.brandbar strong{letter-spacing:.01em;font-size:15px;font-weight:650}.drawer-close{margin-left:auto;display:none}.sidebar-foot{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);gap:6px;display:flex}.sidebar-foot .btn{justify-content:flex-start}.user-role{color:var(--ink-3);white-space:nowrap;align-self:center;margin-right:auto;font-size:12px}.sidebar-foot:has(.user-role){flex-wrap:wrap}.sidebar-foot:has(.user-role) .user-role{width:100%;padding:0 4px 2px}.content{overscroll-behavior:contain;min-width:0;min-height:0;overflow:auto}.scrim{display:none}.empty{text-align:center;place-content:center;justify-items:center;gap:12px;height:100%;padding:24px;display:grid}.menu-inline{display:none}@media (width<=1023px){.shell{grid-template-columns:1fr}.sidebar{z-index:30;width:min(320px,86vw);transition:transform .28s var(--ease);box-shadow:var(--shadow-pop);border-right:0;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.drawer-open .sidebar{transform:none}.scrim{z-index:29;background:var(--scrim);opacity:0;pointer-events:none;transition:opacity .25s;display:block;position:fixed;inset:0}.drawer-open .scrim{opacity:1;pointer-events:auto}.drawer-close{display:inline-grid}.menu-inline{display:inline-flex}}.devices{flex:1;min-height:0;padding:4px 8px 12px;overflow:auto}.devices-head{justify-content:space-between;align-items:center;padding:8px 4px 4px 8px;display:flex}.devices-head h2{color:var(--ink-3);font-size:13px;font-weight:600}.device-group{margin-top:10px}.device-group h3{color:var(--ink-2);align-items:center;gap:8px;padding:6px 8px;font-size:13px;font-weight:600;display:flex}.device-group .count{color:var(--ink-3);margin-left:auto;font-weight:500}.device-group ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.device{text-align:left;border-radius:var(--r-ctl);background:0 0;border:0;grid-template-rows:auto auto;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;width:100%;min-height:52px;padding:9px 10px;transition:background .15s;display:grid}.device .dot{grid-row:1/span 2}.device-name{text-overflow:ellipsis;white-space:nowrap;font-weight:550;overflow:hidden}.device-meta{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;grid-column:2;font-size:12px;overflow:hidden}.device-meta:empty{display:none}@media (hover:hover){.device:hover{background:var(--surface-2)}}.device.is-selected{background:var(--accent-soft)}.device.is-selected .device-name{color:var(--accent)}.device-setup{text-align:left;border:1px dashed var(--line-strong);border-radius:var(--r-ctl);width:100%;min-height:44px;color:var(--accent);background:0 0;padding:8px 12px;font-size:14px;font-weight:550}.device-setup.is-error{color:var(--danger);border-style:solid;border-color:color-mix(in srgb, var(--danger) 40%, transparent);font-size:13px;font-weight:500}.device-empty{color:var(--ink-3);padding:4px 10px;font-size:13px}.device-skeleton{gap:6px;padding:4px 6px;display:grid}.device-skeleton span{border-radius:var(--r-ctl);background:var(--surface-2);height:40px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.view{max-width:1600px;padding:16px 24px 28px;padding-top:calc(16px + env(safe-area-inset-top));margin:0 auto}.view-head{align-items:center;gap:12px;margin-bottom:14px;display:flex}.menu-btn{display:none}.view-title{min-width:0;margin-right:auto}.view-title h1{letter-spacing:-.005em;white-space:nowrap;text-overflow:ellipsis;font-size:22px;font-weight:650;overflow:hidden}.view-title p{color:var(--ink-3);align-items:center;gap:7px;font-size:13px;display:flex}.offline-tag{background:var(--surface-3);color:var(--ink-2);border-radius:4px;padding:0 6px;font-size:12px}.view-body{gap:20px;display:grid}.view.mode-live .view-body{grid-template-columns:minmax(0,1fr) 288px;align-items:start}.view-main{gap:16px;min-width:0;display:grid}@media (width<=1023px){.menu-btn{margin-left:-8px;display:inline-grid}.view{padding:12px 16px 24px;padding-top:calc(12px + env(safe-area-inset-top))}}@media (width<=899px){.view.mode-live .view-body{grid-template-columns:1fr}}@media (width<=639px){.view{padding:8px 0 calc(24px + env(safe-area-inset-bottom));padding-top:calc(8px + env(safe-area-inset-top))}.view-head{flex-wrap:wrap;gap:6px 8px;margin-bottom:10px;padding:0 12px}.view-head .segmented{order:3;width:100%}.view-head .segmented button{flex:1}.view-title h1{font-size:18px}.view-body{gap:14px}.view-main{gap:12px}.view .stage{border-radius:0}.view.mode-cloud .stage{z-index:5;position:sticky;top:0}.timeline,.cloud,.view-side{margin:0 12px}}.wall{max-width:1800px;padding:16px 24px 28px;padding-top:calc(16px + env(safe-area-inset-top));margin:0 auto}.wall.is-full{background:var(--stage);max-width:none;height:100%;padding:12px;overflow:auto}.wall.is-full .view-head{display:none}.wall-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px;display:grid}@media (width>=1280px){.wall-grid.n3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width>=900px){.wall-grid.n2,.wall-grid.n4{grid-template-columns:repeat(2,minmax(0,1fr))}}.wall.is-full .wall-grid{gap:8px}.wall.is-full .tile-foot{display:none}.wall.is-full .tile-stage{border-radius:8px}.wall-add{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.wall-add .device-setup{align-items:center;gap:8px;width:auto;display:inline-flex}.tile{gap:8px;min-width:0;display:grid}.tile-stage{aspect-ratio:16/9;isolation:isolate;background:var(--stage);border-radius:var(--r-stage);color:#fff;cursor:pointer;width:100%;transition:transform .18s var(--ease), box-shadow .18s;border:0;padding:0;display:block;position:relative;overflow:hidden}.tile-stage video{object-fit:contain;opacity:0;pointer-events:none;background:#000;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.tile-stage video.is-playing{opacity:1}@media (hover:hover){.tile-stage:hover{box-shadow:0 0 0 2px var(--accent), var(--shadow-pop)}}.tile-stage:active{transform:scale(.995)}.tile-stage:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.tile-wait{text-align:center;color:#ffffffb8;place-content:center;justify-items:center;gap:10px;padding:16px;font-size:13px;display:grid;position:absolute;inset:0}.aperture.sm{width:34px;height:34px}.tile-top{z-index:2;pointer-events:none;background:linear-gradient(#00000073,#0000);align-items:center;gap:6px;padding:10px 12px 24px;display:flex;position:absolute;top:0;left:0;right:0}.tile-viewers{font-variant-numeric:tabular-nums;background:#00000073;border-radius:6px;align-items:center;gap:4px;height:22px;margin-left:auto;padding:0 7px;font-size:12px;display:inline-flex}.tile-foot{align-items:center;gap:8px;min-width:0;padding:0 4px;display:flex}.tile-foot strong{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tile-meta{color:var(--ink-3);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12.5px}.wall-entry{grid-template-rows:auto;grid-template-columns:auto 1fr;min-height:44px;margin:4px 0 2px}.wall-entry svg{color:var(--ink-2)}.wall-entry.is-selected svg{color:var(--accent)}.share-hint{text-align:left}@media (width<=1023px){.wall{padding:12px 16px 24px;padding-top:calc(12px + env(safe-area-inset-top))}}@media (width<=639px){.wall{padding:8px 0 calc(24px + env(safe-area-inset-bottom));padding-top:calc(8px + env(safe-area-inset-top))}.wall .view-head{padding:0 12px}.wall-grid{gap:14px}.tile-stage{border-radius:0}.tile-foot,.wall-add{padding:0 12px}}.stage{isolation:isolate;aspect-ratio:16/9;background:var(--stage);border-radius:var(--r-stage);color:#fff;-webkit-user-select:none;user-select:none;width:100%;max-height:calc(100dvh - 140px);position:relative;overflow:hidden}.view.mode-sd .stage{min-height:200px;max-height:calc(100dvh - 360px)}.stage video{object-fit:contain;opacity:0;background:#000;width:100%;height:100%;transition:opacity .35s;position:absolute;inset:0}.stage video.is-playing{opacity:1}.stage.is-full{aspect-ratio:auto;border-radius:0;max-height:none}.stage-hit{z-index:1;position:absolute;inset:0}.stage-flash{z-index:6;pointer-events:none;background:#fff;animation:.22s ease-out forwards flash;position:absolute;inset:0}@keyframes flash{0%{opacity:.7}to{opacity:0}}.stage-center{z-index:3;text-align:center;pointer-events:none;place-content:center;justify-items:center;gap:14px;padding:24px;display:grid;position:absolute;inset:0}.stage-center>*{pointer-events:auto}.stage-start{color:#0c0f13;min-height:52px;transition:transform .12s var(--ease), background .15s;background:#fff;border:0;border-radius:999px;align-items:center;gap:10px;padding:0 26px;font-size:16px;font-weight:650;display:inline-flex}.stage-start:active{transform:scale(.97)}.stage-start.ghost{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24}@media (hover:hover){.stage-start:not(.ghost):hover{background:#e9ecff}}.stage-hint{color:#ffffffb8;max-width:26em;font-size:14px}.stage-error{color:#fff;background:#df353947;border:1px solid #ff6e6e66;border-radius:10px;max-width:28em;padding:10px 14px;font-size:15px}.aperture{background:conic-gradient(from 0deg, #ffffffe6 0 12%, transparent 12% 25%, #ffffffe6 25% 37%, transparent 37% 50%, #ffffffe6 50% 62%, transparent 62% 75%, #ffffffe6 75% 87%, transparent 87%);width:54px;height:54px;animation:iris 1.6s var(--ease) infinite;border:2px solid #ffffff38;border-radius:50%;-webkit-mask:radial-gradient(circle,#0000 0 34%,#000 35%);mask:radial-gradient(circle,#0000 0 34%,#000 35%)}@keyframes iris{0%{transform:rotate(0)scale(.92)}50%{transform:rotate(140deg)scale(1.04)}to{transform:rotate(360deg)scale(.92)}}.stage-top,.stage-bar{z-index:4;transition:opacity .25s, transform .25s var(--ease);align-items:center;gap:6px;display:flex;position:absolute;left:0;right:0}.stage-top{pointer-events:none;background:linear-gradient(#00000080,#0000);padding:12px 14px 28px;top:0}.stage-bar{background:linear-gradient(#0000,#0000009e);padding:28px 8px 8px;bottom:0}.stage:not(.chrome-on) .stage-top{opacity:0;transform:translateY(-6px)}.stage:not(.chrome-on) .stage-bar{opacity:0;pointer-events:none;transform:translateY(6px)}.stage:not(.chrome-on){cursor:none}.stage-detail{color:#ffffffbf;font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.stage-caption{text-shadow:0 1px 2px #0009;flex:1;min-width:0;padding:0 6px;font-size:14px;font-weight:600}.stage-audio-note{text-overflow:ellipsis;white-space:nowrap;color:#ffffffc7;background:#0000006b;border-radius:5px;flex:none;max-width:min(44vw,360px);padding:3px 7px;font-size:11px;overflow:hidden}.badge{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.02em;background:#00000073;border-radius:6px;align-items:center;gap:6px;height:24px;padding:0 9px;font-size:12px;font-weight:650;display:inline-flex}.badge.live i{background:#ffffff80;border-radius:50%;width:7px;height:7px}.badge.live.is-on{background:var(--live)}.badge.live.is-on i{background:#fff;animation:1.6s ease-in-out infinite blink}@keyframes blink{50%{opacity:.35}}.icon-btn.on-dark{color:#ffffffeb}@media (hover:hover){.icon-btn.on-dark:not(:disabled):hover{color:#fff;background:#ffffff29}}.icon-btn.on-dark:not(:disabled):active{background:#fff3}.icon-btn.nudge{animation:2.4s ease-in-out 1s 2 nudge}@keyframes nudge{0%,to{box-shadow:none}50%{box-shadow:0 0 0 4px #ffffff47}}.view-side{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);gap:18px;padding:18px;display:grid}.ctl-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.ctl-label{color:var(--ink-2);font-size:13px;font-weight:600}.ctl-hint{color:var(--ink-3);text-align:center;font-size:12.5px}.ctl-stack{gap:10px;display:grid}@media (width>=560px) and (width<=899px){.view-side{grid-template-columns:auto 1fr;align-items:center;column-gap:28px}.view-side .ctl-row,.view-side .inline-error{grid-column:1/-1}}.ptz{justify-items:center;gap:10px;display:grid}.ptz-ring{background:repeating-conic-gradient(from -1deg, var(--line-strong) 0 2deg, transparent 2deg 15deg), var(--surface-2);border:1px solid var(--line);touch-action:none;border-radius:50%;width:196px;height:196px;position:relative}.ptz-ring:before{content:"";background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);border-radius:50%;position:absolute;inset:12px}.ptz-ring:focus-visible{outline-offset:4px}.ptz-btn{z-index:1;width:64px;height:64px;color:var(--ink-2);transition:background .12s, color .12s, transform .12s var(--ease);touch-action:none;-webkit-touch-callout:none;background:0 0;border:0;border-radius:50%;place-items:center;display:grid;position:absolute}.ptz-up{top:14px;left:50%;translate:-50%}.ptz-down{bottom:14px;left:50%;translate:-50%}.ptz-left{top:50%;left:14px;translate:0 -50%}.ptz-right{top:50%;right:14px;translate:0 -50%}@media (hover:hover){.ptz-btn:not(:disabled):hover{background:var(--surface-3);color:var(--ink)}}.ptz-btn.is-active{background:var(--accent);color:var(--accent-ink);transform:scale(.94)}.ptz-lens{background:var(--surface);width:54px;height:54px;box-shadow:0 0 0 1px var(--line), 0 2px 6px #00000014;pointer-events:none;border-radius:50%;place-items:center;margin:auto;display:grid;position:absolute;inset:0}.ptz-lens span{background:radial-gradient(circle at 35% 35%, var(--accent) 0 30%, var(--ink) 70%);border-radius:50%;width:18px;height:18px}.ptz.is-disabled .ptz-ring{opacity:.5}.talk{isolation:isolate;background:var(--ink);width:100%;min-height:60px;color:var(--bg);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;border:0;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:16px;font-weight:650;transition:background .15s,transform .1s;display:flex;position:relative;overflow:hidden}.talk:disabled{background:var(--surface-3);color:var(--ink-3)}.talk.is-starting,.talk.is-sending{background:var(--accent);color:var(--accent-ink)}.talk.is-talking{background:var(--live);color:#fff;transform:scale(.985)}.talk-wave{z-index:-1;width:calc(var(--level,0) * 100%);background:#ffffff38;transition:width 80ms linear;position:absolute;top:0;bottom:0;left:0}.talk:not(.is-talking) .talk-wave{display:none}.light{border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);text-align:left;align-items:center;gap:12px;width:100%;min-height:56px;padding:8px 14px;transition:background .2s,border-color .2s;display:flex}.light-text{margin-right:auto;line-height:1.3;display:grid}.light-text strong{font-size:14px;font-weight:600}.light-text small{color:var(--ink-3);font-size:12px}.light.is-on{background:color-mix(in srgb, #f5c542 18%, var(--surface));border-color:color-mix(in srgb, #f5c542 50%, var(--line))}.light.is-on svg{color:#d39b00}.light:disabled{opacity:.5}.light.is-busy{opacity:.75}.switch-track{background:var(--line-strong);border-radius:999px;flex:none;width:42px;height:26px;padding:3px;transition:background .2s}.switch-track span{width:20px;height:20px;transition:transform .2s var(--ease);background:#fff;border-radius:50%;display:block;box-shadow:0 1px 2px #0003}.light.is-on .switch-track{background:var(--accent)}.light.is-on .switch-track span{transform:translate(16px)}.light.toggle.is-on{background:var(--surface-2);border-color:var(--line)}.light.toggle.is-on svg{color:var(--accent)}.timeline{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);gap:10px;padding:14px 16px 10px;display:grid}.timeline-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.timecode{letter-spacing:-.02em;color:var(--ink);font-size:clamp(30px,5vw,44px);font-weight:250;line-height:1;transition:color .15s;display:grid}.timecode.is-scrubbing{color:var(--accent)}.timecode-note{letter-spacing:0;color:var(--ink-3);min-height:1.2em;margin-top:6px;font-size:12.5px;font-weight:500}.timeline-track{margin:0 -16px;position:relative}.timeline-track canvas{touch-action:none;cursor:grab;outline-offset:-2px;display:block}.timeline-track canvas:active{cursor:grabbing}.timeline-track canvas.is-loading{opacity:.55}.playhead{background:var(--live);pointer-events:none;border-radius:1px;width:2px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px;left:50%}.playhead:before{content:"";border:6px solid #0000;border-top-color:var(--live);border-bottom:0;position:absolute;top:0;left:50%;translate:-50%}.timeline-foot{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.zoom{align-items:center;gap:2px;display:flex}.zoom-label{text-align:center;min-width:64px;color:var(--ink-2);font-size:13px}.timeline-extra{align-items:center;gap:12px;margin-left:auto;font-size:13px;display:flex}.date-nav{align-items:center;gap:2px;display:flex}.date-label{min-height:var(--hit);border-radius:var(--r-ctl);background:var(--surface-2);white-space:nowrap;cursor:pointer;align-items:center;gap:7px;padding:0 12px;font-size:14px;font-weight:550;display:inline-flex;position:relative}.date-label input{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.date-label:focus-within{outline:2px solid var(--accent);outline-offset:2px}.cloud{gap:12px;display:grid}.cloud-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.cloud-head h2{font-size:16px;font-weight:650}.clips{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.clip{text-align:left;border-radius:var(--r-ctl);background:0 0;border:0;gap:4px;width:100%;padding:0 0 8px;display:grid}.cover{aspect-ratio:16/9;border-radius:var(--r-ctl);background:var(--surface-3);color:var(--ink-3);place-items:center;display:grid;position:relative;overflow:hidden}.cover img{object-fit:cover;width:100%;height:100%;transition:opacity .3s;display:block}.cover.is-loading img{opacity:0}.cover.is-loading{animation:1.4s ease-in-out infinite pulse}.clip-time{padding:0 2px;font-size:15px;font-weight:600}.clip-meta{color:var(--ink-3);min-height:1.2em;padding:0 2px;font-size:12px}.clip.is-playing .cover{box-shadow:0 0 0 2px var(--accent)}.clip.is-playing .clip-time{color:var(--accent)}@media (hover:hover){.clip:hover .cover img{transform:scale(1.03)}.cover img{transition:transform .3s var(--ease), opacity .3s}}.list-note{text-align:center;color:var(--ink-3);padding:28px 8px}.list-note.is-error{color:var(--danger)}@media (width<=639px){.clips{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.sheet{border-radius:var(--r-stage);background:var(--surface);width:min(480px,100vw - 32px);max-height:min(86dvh,820px);color:var(--ink);box-shadow:var(--shadow-pop);border:0;padding:0;overflow:hidden}.sheet.wide{width:min(600px,100vw - 32px)}.sheet::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sheet[open]{animation:sheet-in .24s var(--ease)}@keyframes sheet-in{0%{opacity:0;transform:translateY(12px)scale(.985)}}.sheet-body{max-height:inherit;flex-direction:column;display:flex}.sheet-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:14px 10px 10px 20px;display:flex;position:relative}.sheet-head h2{text-overflow:ellipsis;white-space:nowrap;margin-right:auto;font-size:17px;font-weight:650;overflow:hidden}.sheet-grip{display:none}.sheet-content{overscroll-behavior:contain;padding:18px 20px 24px;overflow:auto}@media (width<=639px){.sheet,.sheet.wide{width:100%;max-width:100%;max-height:92dvh;padding-bottom:env(safe-area-inset-bottom);border-radius:18px 18px 0 0;margin:auto 0 0}.sheet[open]{animation:sheet-up .3s var(--ease)}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-grip{background:var(--line-strong);border-radius:2px;width:36px;height:4px;display:block;position:absolute;top:6px;left:50%;translate:-50%}.sheet-head{padding-top:18px}}.settings{gap:12px;display:grid}.settings-h{color:var(--ink-3);margin-top:10px;font-size:13px;font-weight:650}.settings-h:first-child{margin-top:0}.account-card{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface-2);gap:12px;padding:14px 16px;display:grid}.account-card>header{align-items:center;gap:10px;display:flex}.account-title{min-width:0;margin-right:auto;line-height:1.3;display:grid}.account-title strong{font-size:15px}.account-title small{color:var(--ink-3);text-overflow:ellipsis;font-size:13px;overflow:hidden}.account-card .field input{background:var(--surface)}.account-msg{color:var(--danger);font-size:13px}.state-pill{background:var(--surface-3);color:var(--ink-2);border-radius:999px;flex:none;padding:2px 9px;font-size:12px;font-weight:600}.state-pill.ok{background:color-mix(in srgb, var(--ok) 16%, transparent);color:var(--ok)}.state-pill.error{background:color-mix(in srgb, var(--danger) 14%, transparent);color:var(--danger)}.state-pill.offline{background:color-mix(in srgb, var(--warn) 16%, transparent);color:var(--warn)}.theme-pick{align-items:center;gap:12px;display:flex}.theme-icons{color:var(--ink-3);display:inline-grid}.device-info{gap:14px;display:grid}.kv{margin:0;display:grid}.kv>div{border-bottom:1px solid var(--line);grid-template-columns:7em 1fr;gap:12px;padding:9px 0;display:grid}.kv>div:last-child{border-bottom:0}.kv dt{color:var(--ink-3);font-size:13px}.kv dd{word-break:break-all;margin:0;font-size:14px}.setting-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.setting{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.setting-text{margin-right:auto;line-height:1.35;display:grid}.setting-text strong{font-size:14px;font-weight:600}.setting-text small{color:var(--ink-3);font-size:12px}.setting-ctl{align-items:center;gap:6px;display:flex}.setting-ctl select{border:1px solid var(--line-strong);background:var(--surface-2);border-radius:8px;min-height:34px;padding:0 8px}.setting-ctl input[type=range]{width:120px;accent-color:var(--accent)}.range-val{text-align:right;min-width:2.5em;font-size:13px}.toasts{z-index:100;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));pointer-events:none;justify-items:center;gap:8px;width:min(92vw,440px);display:grid;position:fixed;translate:-50%}.toast{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-pop);animation:toast-in .24s var(--ease);border-radius:12px;padding:10px 16px;font-size:14px}.toast.error{background:var(--danger);color:#fff}.toast.ok{background:var(--ok);color:#fff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.badge-host{position:relative}.count-dot{background:var(--accent);min-width:16px;height:16px;color:var(--accent-ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;padding:0 4px;font-size:10.5px;font-weight:700;line-height:16px;position:absolute;top:3px;right:2px}.clip-pick{background:var(--surface);border:1px solid color-mix(in srgb, var(--sel) 55%, var(--line));border-radius:var(--r-panel);gap:10px;padding:12px 16px 14px;display:grid}.clip-pick-head{align-items:center;gap:8px;display:flex}.clip-pick-head svg{color:var(--sel)}.clip-pick-head strong{font-size:15px}.clip-pick-head .icon-btn{margin-left:auto}.clip-pick-fields{flex-wrap:wrap;gap:8px 20px;display:flex}.clip-pick-row{align-items:center;gap:6px;display:flex}.clip-pick-time{color:var(--ink-3);align-items:center;gap:8px;font-size:13px;display:flex}.clip-pick-time input{min-height:var(--hit);border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);font-variant-numeric:tabular-nums;padding:0 10px;font-size:15px}.clip-pick-time input:focus{border-color:var(--sel);box-shadow:0 0 0 3px var(--sel-soft);outline:none}.clip-pick-sum{flex-wrap:wrap;gap:4px 12px;font-size:14px;font-weight:550;display:flex}.clip-pick-sum .muted{font-weight:400}.clip-pick-actions{justify-content:flex-end;display:flex}@media (width<=639px){.clip-pick{margin:0 12px}.clip-pick-fields{flex-direction:column}.clip-pick-actions .btn{width:100%}}.clips>li{position:relative}.clip-dl{color:#fff;background:#00000080;border-radius:8px;width:32px;min-width:32px;height:32px;min-height:32px;position:absolute;top:6px;right:6px}@media (hover:hover){.clip-dl:not(:disabled):hover{background:#000000b3}}.jobs{gap:10px;margin:0;padding:0;list-style:none;display:grid}.job{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface-2);gap:8px;padding:12px 14px;display:grid}.job-head{align-items:flex-start;gap:8px;display:flex}.job-title{min-width:0;margin-right:auto;line-height:1.35;display:grid}.job-title strong{font-size:15px}.job-title small{color:var(--ink-3);font-size:12.5px}.job-state{align-items:center;gap:10px;display:flex}.job-bar{background:var(--surface-3);border-radius:3px;flex:1;height:6px;overflow:hidden}.job-bar span{background:var(--accent);height:100%;transition:width .4s var(--ease);border-radius:3px;display:block}.job-files{gap:4px;margin:0;padding:0;list-style:none;display:grid}.job-file{border-radius:var(--r-ctl);background:var(--surface);min-height:36px;color:var(--accent);align-items:center;gap:8px;padding:0 10px;font-size:13.5px;font-weight:550;text-decoration:none;display:flex}.job-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.job-file small{color:var(--ink-3);flex:none;margin-left:auto;font-weight:400}@media (hover:hover){.job-file:hover{background:var(--accent-soft)}}
