@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff) format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2) format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff")}:root{--ground: #F4F6F9;--surface: #FFFFFF;--surface-2: #EDF1F6;--surface-3: #E3E9F1;--line: #D9E0E9;--line-strong: #B9C3D1;--ink: #0E1726;--ink-2: #5B6779;--ink-3: #8A95A6;--accent: #1758D6;--accent-hover: #1249B3;--accent-ink: #FFFFFF;--accent-soft: #E6EEFB;--good: #168A50;--good-soft: #E3F4EA;--warn: #B76E00;--warn-soft: #FBF0DC;--bad: #C62828;--bad-soft: #FBE4E4;--pulse: 22, 138, 80;--sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-xs: 12px;--fs-sm: 13.5px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 22px;--fs-2xl: 28px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 28px;--sp-7: 40px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow: 0 1px 2px rgba(14, 23, 38, .06), 0 8px 24px -12px rgba(14, 23, 38, .18);--t-fast: .16s;--t-base: .22s;--ease: cubic-bezier(.2, .7, .2, 1);--tap: 44px}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ground: #0B1220;--surface: #121B2B;--surface-2: #182336;--surface-3: #1F2C42;--line: #243247;--line-strong: #34465F;--ink: #E6ECF5;--ink-2: #A9B5C6;--ink-3: #7A889C;--accent: #5B8DEF;--accent-hover: #7AA3F5;--accent-ink: #0B1220;--accent-soft: #1A2A47;--good: #3DBD7A;--good-soft: #123324;--warn: #E0A03A;--warn-soft: #3A2B10;--bad: #EF6B6B;--bad-soft: #3E1A1A;--pulse: 61, 189, 122;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6)}}:root[data-theme=dark]{--ground: #0B1220;--surface: #121B2B;--surface-2: #182336;--surface-3: #1F2C42;--line: #243247;--line-strong: #34465F;--ink: #E6ECF5;--ink-2: #A9B5C6;--ink-3: #7A889C;--accent: #5B8DEF;--accent-hover: #7AA3F5;--accent-ink: #0B1220;--accent-soft: #1A2A47;--good: #3DBD7A;--good-soft: #123324;--warn: #E0A03A;--warn-soft: #3A2B10;--bad: #EF6B6B;--bad-soft: #3E1A1A;--pulse: 61, 189, 122;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--sans);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}h1,h2,h3,h4{margin:0;text-wrap:balance;font-weight:600;letter-spacing:-.01em}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{font:inherit;color:inherit}code,.mono{font-family:var(--mono);font-size:.93em;font-variant-numeric:tabular-nums}.num{font-variant-numeric:tabular-nums}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.eyebrow{font-family:var(--mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-4);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font-weight:600;font-size:var(--fs-sm);cursor:pointer;user-select:none;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),transform 80ms var(--ease),opacity var(--t-fast)}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.btn.primary:hover{background:var(--accent-hover)}.btn.quiet{border-color:transparent;background:transparent;color:var(--accent)}.btn.quiet:hover{background:var(--accent-soft)}.btn.sm{min-height:34px;padding:0 var(--sp-3);font-size:var(--fs-xs)}.btn svg{width:16px;height:16px}.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.info{background:var(--accent-soft);color:var(--accent)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.field{display:grid;gap:var(--sp-1)}.field label{font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}.field .hint{font-size:var(--fs-xs);color:var(--ink-3)}.input{width:100%;min-height:var(--tap);padding:0 var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:inherit;transition:border-color var(--t-fast),box-shadow var(--t-fast)}.input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea.input{min-height:96px;padding:var(--sp-3);font-family:var(--mono);font-size:var(--fs-sm);resize:vertical}.notice{display:flex;gap:var(--sp-2);align-items:flex-start;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);border:1px solid var(--line);background:var(--surface-2)}.notice.bad{background:var(--bad-soft);border-color:transparent;color:var(--bad)}.notice.good{background:var(--good-soft);border-color:transparent;color:var(--good)}.notice.warn{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.notice svg{width:18px;height:18px;flex:none;margin-top:1px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pulse{0%{box-shadow:0 0 rgba(var(--pulse),.45)}70%{box-shadow:0 0 0 8px rgba(var(--pulse),0)}to{box-shadow:0 0 rgba(var(--pulse),0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}.rise{animation:rise var(--t-base) var(--ease) both}.spin{animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:200% 100%;animation:shimmer 1.4s linear infinite;border-radius:var(--r-sm);color:transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.shell{display:grid;grid-template-rows:auto 1fr;min-height:100vh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-4);height:52px;background:var(--surface);border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:var(--sp-2);font-weight:600;letter-spacing:-.01em}.brand .mark{width:24px;height:24px;border-radius:7px;background:linear-gradient(135deg,var(--accent),#2FB1D8);flex:none}.brand small{font-weight:500;color:var(--ink-3);font-size:var(--fs-xs)}.crumbs{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-2);min-width:0;overflow:hidden;white-space:nowrap}.crumbs a{color:var(--ink-2)}.crumbs .sep{color:var(--ink-3)}.crumbs b{color:var(--ink);font-weight:600;font-family:var(--mono);font-size:var(--fs-xs)}.topbar .who{margin-left:auto;display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-2);white-space:nowrap}.topbar .who .avatar{width:28px;height:28px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-size:12px}.body{display:grid;grid-template-columns:216px minmax(0,1fr)}.nav{border-right:1px solid var(--line);background:var(--surface-2);padding:var(--sp-3) var(--sp-2);position:sticky;top:52px;height:calc(100vh - 52px);overflow:auto;display:flex;flex-direction:column;gap:2px}.nav .group{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);padding:var(--sp-3) 12px 4px}.nav a{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--r-md);color:var(--ink-2);font-size:var(--fs-sm);font-weight:500;min-height:38px;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.nav a:hover{background:var(--surface);color:var(--ink);text-decoration:none}.nav a.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav a svg{width:17px;height:17px;flex:none}.nav .spacer{flex:1}.nav .foot{padding:var(--sp-3) 12px 0;font-size:var(--fs-xs);color:var(--ink-3);line-height:1.4}.page{padding:var(--sp-5) var(--sp-6) var(--sp-7);width:100%;max-width:1440px;animation:fade var(--t-base) var(--ease) both}.page>header{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.page>header h2{font-size:var(--fs-xl)}.page>header .sub{color:var(--ink-2);font-size:var(--fs-sm)}.page>header .right{margin-left:auto;display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap}.page section{margin-top:var(--sp-6)}.page section>h3{margin-bottom:var(--sp-3);display:flex;align-items:center;gap:8px}.page section>h3 svg{width:16px;height:16px;color:var(--ink-3)}.tabs{display:none}.subnav{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:var(--sp-4);overflow-x:auto}.subnav a{padding:10px 14px;font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:7px}.subnav a svg{width:15px;height:15px}.subnav a:hover{color:var(--ink);text-decoration:none}.subnav a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}@media(max-width:860px){.body{grid-template-columns:1fr}.nav{display:none}.page{padding:var(--sp-4) var(--sp-4) calc(72px + env(safe-area-inset-bottom))}.crumbs{display:none}.tabs{position:fixed;bottom:0;left:0;right:0;z-index:10;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabs a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 9px;font-size:10.5px;color:var(--ink-3);min-height:56px;justify-content:center}.tabs a.on{color:var(--accent);font-weight:600}.tabs a svg{width:20px;height:20px}}.skip{position:absolute;left:-9999px;top:8px;z-index:20;background:var(--accent);color:var(--accent-ink);padding:8px 12px;border-radius:var(--r-md)}.skip:focus{left:8px}.tiles{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.tile{padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);display:grid;gap:2px;align-content:start;min-height:92px;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}a.tile{color:inherit}a.tile:hover{transform:translateY(-1px);box-shadow:var(--shadow);text-decoration:none}.tile .k{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--ink-3)}.tile .k svg{width:14px;height:14px}.tile .v{font-size:22px;font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.2;margin-top:3px}.tile .s{font-size:var(--fs-xs);color:var(--ink-2)}.tile.good .v{color:var(--good)}.tile.warn .v{color:var(--warn)}.tile.bad .v{color:var(--bad)}.tile .bar{height:6px;border-radius:999px;background:var(--surface-2);margin-top:var(--sp-2);overflow:hidden}.tile .bar i{display:block;height:100%;width:var(--w, 0%);background:var(--accent);border-radius:999px;transition:width .8s var(--ease)}.tile.warn .bar i{background:var(--warn)}.tile.bad .bar i{background:var(--bad)}.toolbar{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);flex-wrap:wrap}.toolbar:not(:first-child){margin-top:var(--sp-4)}.search{position:relative;flex:1;min-width:200px;max-width:420px}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-3)}.search .input{padding-left:36px}.toolbar>select.input{width:auto;max-width:260px}.input.sm,select.input.sm{min-height:36px;font-size:var(--fs-sm)}.select{appearance:none;padding-right:30px;background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%;background-size:5px 5px;background-repeat:no-repeat}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:var(--fs-xs);padding:5px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-2);min-height:28px;font-family:var(--mono)}button.chip{cursor:pointer;min-height:32px;padding:0 12px;font-weight:600;font-family:var(--sans);transition:background var(--t-fast),color var(--t-fast)}.chip.on{background:var(--accent-soft);color:var(--accent);border-color:transparent}.scroll{overflow:auto;max-height:max(320px,calc(100vh - 180px));border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overscroll-behavior:contain}.scroll>.table{border:0;border-radius:0}.table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.table th,.table td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);white-space:normal;overflow-wrap:break-word;vertical-align:top}.table th,.table td.num,.table td.mono{white-space:nowrap}.table tr:last-child td{border-bottom:0}.table th{font-size:var(--fs-xs);color:var(--ink-2);font-weight:600;background:var(--surface-2);position:sticky;top:0;z-index:1}.table td.num,.table th.num{font-family:var(--mono);font-size:var(--fs-xs);text-align:right;font-variant-numeric:tabular-nums}.table td.mono{font-family:var(--mono);font-size:var(--fs-xs)}.table tr.link{cursor:pointer;transition:background var(--t-fast)}.table tr.link:hover td{background:var(--surface-2)}.table td .sub{display:block;font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}.table .empty td{text-align:center;color:var(--ink-3);padding:var(--sp-6);white-space:normal}.table td.wrap{white-space:normal;overflow-wrap:anywhere;min-width:220px;max-width:560px}.table td.wrap-sm{white-space:normal;overflow-wrap:anywhere;min-width:120px;max-width:300px}.table td.clip,.table td.clip-sm{white-space:nowrap}.table td.clip{max-width:240px;overflow:hidden;text-overflow:ellipsis}.table td.clip .sub{overflow:hidden;text-overflow:ellipsis}.table td.clip-sm{max-width:180px;overflow:hidden;text-overflow:ellipsis}.cut{max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cut .sub{overflow:hidden;text-overflow:ellipsis}.cut.sm{max-width:130px}.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.detail-full{margin:0;font-family:var(--mono);font-size:var(--fs-xs);white-space:pre-wrap;overflow-wrap:anywhere;max-height:360px;overflow:auto;background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px}.more{border:0;background:none;padding:0;margin-top:2px;color:var(--accent);font-size:var(--fs-xs);font-weight:600;cursor:pointer}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-3);margin-right:7px;vertical-align:middle}.dot.good{background:var(--good);box-shadow:0 0 0 3px var(--good-soft)}.dot.warn{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}.dot.bad{background:var(--bad);box-shadow:0 0 0 3px var(--bad-soft)}.split{display:grid;gap:var(--sp-4);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start}.block{padding:0}.block>h3,.block .block-head{padding:var(--sp-3) var(--sp-4) 0}.block-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.block-head h3{display:flex;align-items:center;gap:8px;margin-right:auto;font-size:var(--fs-md)}.block-head h3 svg{width:16px;height:16px;color:var(--ink-3)}.block .notice{margin:var(--sp-3) var(--sp-4) 0}.block .btns{display:flex;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);flex-wrap:wrap}.block:not(.form)>:not(h3,.block-head,.notice,.btns,.kv,.block-sub,.block-empty,.rv-disks,.form){margin-left:var(--sp-4);margin-right:var(--sp-4)}.block:not(.form)>.block-head+:not(.notice,.btns,.kv,.block-sub,.block-empty,.form){margin-top:var(--sp-3)}.block:not(.form)>:last-child:not(.btns,.kv,.form,.block-head){margin-bottom:var(--sp-4)}.block:not(.form)>.block-head:last-child{padding-bottom:var(--sp-3)}.block-head>.faint{flex:1 1 260px;min-width:0}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px var(--sp-4);font-size:var(--fs-sm);padding:var(--sp-3) var(--sp-4)}.kv b{font-weight:500;color:var(--ink-3)}.kv span{font-family:var(--mono);font-size:var(--fs-xs);text-align:right;overflow-wrap:anywhere}.kv span.warn{color:var(--warn)}.kv span.bad{color:var(--bad)}.kv span.good{color:var(--good)}.form{display:grid;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4)}.form .row{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:start}.form .btns{padding:0}.events{display:grid;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);overflow:hidden}.events .ev{display:grid;grid-template-columns:110px 220px 1fr;gap:var(--sp-3);padding:9px var(--sp-4);border-top:1px solid var(--line);font-size:var(--fs-sm);animation:fade var(--t-base) both}.events .ev:first-child{border-top:0}.events .ev time{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);padding-top:2px;white-space:nowrap}.events .ev .kind{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.events .ev .kind.bad{color:var(--bad)}.events .ev .kind.warn{color:var(--warn)}.events .ev .detail{color:var(--ink);overflow-wrap:anywhere}.events .ev .detail .subj{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-2);margin-right:8px}.events .empty{padding:var(--sp-4);color:var(--ink-3);font-size:var(--fs-sm)}@media(max-width:700px){.events .ev{grid-template-columns:90px 1fr}.events .ev .kind,.events .ev .detail{grid-column:2}}.attn{display:grid;gap:var(--sp-2)}.attn .row{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);animation:rise var(--t-base) var(--ease) both}.attn .row .text b{font-weight:600}.attn .row .text .why{color:var(--ink-2)}.attn .row .act{margin-left:auto;white-space:nowrap}.attn .none{display:flex;align-items:center;gap:var(--sp-2);color:var(--good);font-size:var(--fs-sm);padding:var(--sp-2) 0}.attn .none svg{width:18px;height:18px}.center{display:grid;place-items:center;padding:var(--sp-7);color:var(--ink-3);font-size:var(--fs-sm)}.stack{display:grid;gap:var(--sp-3)}.actions{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center}.btn.danger{background:var(--bad);border-color:transparent;color:#fff}.btn.danger:hover{filter:brightness(1.08)}.confirm{display:flex;gap:var(--sp-2);flex-wrap:wrap;align-items:center;padding:var(--sp-2);border:1px dashed var(--line-strong);border-radius:var(--r-md)}.confirm .input{max-width:260px}pre.json{margin:0;padding:var(--sp-3) var(--sp-4);font-family:var(--mono);font-size:var(--fs-xs);background:var(--surface-2);border-radius:var(--r-md);overflow:auto;max-height:320px;white-space:pre-wrap}.charts{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fill,minmax(420px,1fr))}@media(max-width:500px){.charts{grid-template-columns:1fr}}.chart{padding:var(--sp-2) var(--sp-3) var(--sp-3)}.chart canvas{display:block;width:100%;height:150px}.chart-hover{font-family:var(--mono);font-size:var(--fs-xs);color:var(--ink-3);min-height:18px;padding-top:4px}.coverage{display:flex;height:14px;border-radius:7px;overflow:hidden;background:var(--surface-3)}.coverage i{display:block;height:100%;background:var(--good)}.coverage i.gap{background:transparent}.player{background:#000;border-radius:0 0 var(--r-md) var(--r-md);overflow:hidden}.player video{display:block;width:100%;aspect-ratio:16 / 9;background:#000}.snaps{display:grid;gap:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.snapcard{display:grid;gap:2px;text-align:left;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;font-size:var(--fs-xs);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.snapcard:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.snapview{padding:0 var(--sp-4) var(--sp-4)}.snapview img{display:block;width:100%;max-height:70vh;object-fit:contain;background:#10161f;border-radius:var(--r-md)}.tree{display:grid;gap:var(--sp-2)}.node{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.node.block{border-radius:var(--r-sm, 6px);margin:4px 0 4px 24px;background:var(--surface-2)}.node-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:none;border:0;color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-height:42px}.node-head:hover{background:var(--surface-2)}.node-head svg{width:16px;height:16px;color:var(--ink-3);flex:none}.node-head .name{font-weight:600;font-size:var(--fs-sm);display:flex;align-items:center}.node-head .meta{color:var(--ink-3);font-size:var(--fs-xs);font-family:var(--mono);margin-left:4px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-head .count{margin-left:auto;font-size:var(--fs-xs);font-variant-numeric:tabular-nums;color:var(--good);white-space:nowrap}.node-head .count.warn{color:var(--warn)}.node-body{border-top:1px solid var(--line);padding:4px 0}.leaf{padding:0 12px 0 36px}.leaf-head{display:flex;align-items:center;gap:10px;width:100%;padding:7px 8px;background:none;border:0;border-radius:var(--r-sm, 6px);color:var(--ink);font:inherit;text-align:left;cursor:pointer;min-height:34px}.leaf-head:hover{background:var(--accent-soft)}.leaf-head .name{font-size:var(--fs-sm)}.leaf-head .meta{color:var(--ink-3);font-size:var(--fs-xs);display:inline-flex;align-items:center;gap:4px}.leaf-head .meta.bad{color:var(--bad)}.leaf-head .meta svg{width:12px;height:12px}.leaf .cams{display:flex;flex-wrap:wrap;gap:6px;padding:0 8px 8px 30px}.leaf .cams .chip{display:inline-flex;align-items:center;gap:5px;font-family:inherit}.leaf .cams .chip svg{width:12px;height:12px;color:var(--ink-3)}.table tr.on td{background:var(--accent-soft)}.picker{position:relative;display:grid;gap:4px}.picker .hint{font-size:10.5px}.picker-list{position:absolute;top:calc(100% - 14px);left:0;min-width:100%;width:max-content;max-width:min(560px,90vw);z-index:30;max-height:320px;overflow:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 12px 32px #00000024;padding:4px}.picker-opt{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:var(--r-sm, 6px);background:none;color:var(--ink);font:inherit;cursor:pointer}.picker-opt.on{background:var(--accent-soft)}.picker-opt .label{font-size:var(--fs-sm);font-weight:500;white-space:nowrap}.picker-opt .sub{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}.picker-opt .id{font-size:10.5px;color:var(--ink-3)}.picker-empty{display:flex;align-items:center;gap:6px;padding:8px 10px;font-size:var(--fs-xs);color:var(--ink-3)}.picker-empty svg{width:13px;height:13px}.ptz{display:flex;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4) var(--sp-4);align-items:flex-start;flex-wrap:wrap;border-top:1px solid var(--line)}.ptz-pad{display:grid;grid-template-columns:repeat(3,44px);grid-auto-rows:44px;gap:6px}.ptz-pad .btn,.ptz-zoom .btn{min-height:44px;padding:0;justify-content:center;touch-action:none;user-select:none}.ptz-pad .btn:active,.ptz-zoom .btn:active{background:var(--accent-soft);border-color:var(--accent)}.ptz-side{display:grid;gap:var(--sp-2);min-width:240px;flex:1;max-width:420px}.ptz-zoom{display:flex;gap:6px}.ptz-zoom .btn{width:44px}.ptz-speed{display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--ink-2)}.ptz-speed input{flex:1}.ptz-presets{display:flex;gap:6px;align-items:center}.ptz-presets .select{flex:1;min-width:0}.ptz-none{padding:var(--sp-3) var(--sp-4);font-size:var(--fs-xs);color:var(--ink-3);border-top:1px solid var(--line)}.badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;margin-left:auto}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.bad{background:var(--bad-soft);color:var(--bad)}.nav a .badge{margin-left:auto}.node-head .badge{margin-left:8px}.wall-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-3)}.wall-head h2{margin:0}.wall-head .wall-project{width:auto;max-width:280px}.wall-kpis{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-left:auto}.wall-kpi{display:grid;gap:1px;padding:5px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);min-width:96px}.wall-kpi b{font-size:var(--fs-lg);font-variant-numeric:tabular-nums;line-height:1.2}.wall-kpi b small{font-size:var(--fs-xs);color:var(--ink-3);font-weight:500}.wall-kpi span{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.wall-kpi.good b{color:var(--good)}.wall-kpi.warn b{color:var(--warn)}.wall-kpi.bad b{color:var(--bad)}.wall-clock{display:grid;justify-items:end;padding:3px 4px 3px 12px;border-left:1px solid var(--line)}.wall-clock b{font-family:var(--mono);font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1.1}.wall-clock span{font-size:11px;color:var(--ink-3)}.wall-notice{margin-bottom:var(--sp-3)}.wall-page{display:grid;grid-template-columns:320px minmax(0,1fr);gap:var(--sp-3);min-height:320px}.wall-page.closed{grid-template-columns:minmax(0,1fr)}.wall-side{display:flex;flex-direction:column;min-height:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.ws-tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);flex:none}.ws-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;border-bottom:2px solid transparent}.ws-tabs button svg{width:15px;height:15px}.ws-tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.ws-tabs button:hover{background:var(--surface-2)}.wall-side .ws-search{max-width:none;margin:var(--sp-2);flex:none;min-width:0}.ws-search .ws-x{position:absolute;right:6px;top:50%;transform:translateY(-50%)}.ws-x{width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:50%;background:none;color:var(--ink-3);cursor:pointer;padding:0}.ws-x:hover{background:var(--surface-2);color:var(--ink)}.ws-x svg{position:static!important;transform:none!important;width:14px!important;height:14px!important}.ws-list{flex:1;min-height:0;overflow:auto}.ws-rows{position:relative}.ws-row{position:absolute;left:0;right:0;height:30px;display:flex;align-items:center;gap:2px;padding-right:6px;box-sizing:border-box;font-size:var(--fs-sm)}.ws-row:hover{background:var(--surface-2)}.ws-row .ws-main{display:flex;align-items:center;gap:6px;flex:1;min-width:0;height:100%;padding:0 6px 0 10px;border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.ws-row .ws-main svg{width:14px;height:14px;flex:none;color:var(--ink-3)}.ws-row.head .ws-main{font-weight:600}.ws-row .name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-row .code{color:var(--ink-3);font-size:11px;font-family:var(--mono);white-space:nowrap;flex:none}.ws-row.cam .ws-main{font-weight:400}.ws-row.cam.on{background:var(--accent-soft)}.ws-row.cam.on .ws-main,.ws-row.cam.on .ws-main svg{color:var(--accent)}.ws-row[draggable=true]{cursor:grab}.ws-row.over{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}.ws-row.target{background:var(--accent-soft)}.ws-row.note{padding-left:12px;color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ws-row.note:hover{background:none}.ws-row.note.bad{color:var(--bad)}.ws-row.more:hover{background:none}.ws-check{width:14px;height:14px;color:var(--accent);flex:none}.ws-count{font-family:var(--mono);font-size:11px;color:var(--ink-3);white-space:nowrap;padding:1px 6px;border-radius:999px;flex:none}.ws-count.good{color:var(--good);background:var(--good-soft)}.ws-count.warn{color:var(--warn);background:var(--warn-soft)}.ws-count.bad{color:var(--bad);background:var(--bad-soft)}.ws-dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--ink-3)}.ws-dot.rec{background:var(--good)}.ws-dot.warn{background:var(--warn)}.ws-dot.off{background:transparent;border:1.5px solid var(--ink-3);box-sizing:border-box}.ws-act{width:24px;height:24px;display:grid;place-items:center;flex:none;border:0;border-radius:var(--r-sm);background:none;color:var(--ink-3);cursor:pointer;padding:0;opacity:0;transition:opacity var(--t-fast) var(--ease)}.ws-act svg{width:14px;height:14px}.ws-act:hover{background:var(--surface-3);color:var(--accent)}.ws-act.on{opacity:1;color:var(--accent)}.ws-act:disabled{opacity:0!important;cursor:default}.ws-row:hover .ws-act,.ws-row:focus-within .ws-act,.ws-trees .ws-act{opacity:1}.ws-empty{padding:var(--sp-4);color:var(--ink-3);font-size:var(--fs-sm);display:grid;gap:var(--sp-3);justify-items:start}.ws-empty p{margin:0}.ws-trees{display:flex;gap:4px;align-items:center;padding:var(--sp-2);flex:none}.ws-trees select{flex:1;min-width:0}.ws-treebar{display:flex;align-items:center;gap:var(--sp-2);padding:0 var(--sp-2) var(--sp-2);font-size:var(--fs-xs);flex:none;border-bottom:1px solid var(--line)}.ws-treebar .faint{color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.ws-treebar .spacer{flex:1}.ws-name{padding:2px var(--sp-2);flex:1}.ws-name .input{width:100%;box-sizing:border-box;min-height:28px;padding:2px 8px}.ws-note{padding:0 var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3);flex:none}.ws-drop{flex:1;min-height:0;display:flex;flex-direction:column}.ws-drop.over{background:var(--accent-soft)}.ws-target{display:flex;align-items:center;gap:6px;padding:6px var(--sp-2);background:var(--accent-soft);color:var(--accent);font-size:var(--fs-xs);flex:none}.ws-target>svg{width:14px;height:14px;flex:none}.ws-target span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-target .btn.sm{min-height:26px;padding:0 8px}.wall-main{container-type:inline-size;position:relative;display:flex;flex-direction:column;min-width:0;min-height:0;background:#07090d;border-radius:var(--r-md);overflow:hidden;color:#e8edf5}.wall-main.full{border-radius:0}.wall-bar{position:relative;z-index:6;display:flex;align-items:center;gap:6px;flex-wrap:nowrap;padding:8px 10px;background:#10141c;border-bottom:1px solid rgba(255,255,255,.08);flex:none;transition:opacity var(--t-fast) var(--ease)}.wall-main.full .wall-bar{position:absolute;top:0;left:0;right:0;background:#10141cf0}.wall-main.full .wall-bar.hidden{opacity:0;pointer-events:none}.wall-bar .spacer{flex:1}.wb-sep{width:1px;height:22px;background:#ffffff1f;margin:0 2px}.wb-btn{height:32px;min-width:32px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);background:#ffffff0a;color:#d9e0ea;font:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}.wb-btn svg{width:15px;height:15px;flex:none}.wb-btn:hover:not(:disabled){background:#ffffff1a;color:#fff}.wb-btn.on{background:#5b8def38;border-color:#5b8def8c;color:#fff}.wb-btn.primary{background:#3b74e0;border-color:transparent;color:#fff}.wb-btn.primary:hover:not(:disabled){background:#5286ea}.wb-btn:disabled{opacity:.45;cursor:default}.wb-btn.wide{padding:0 10px}.wb-btn .lbl.name{max-width:150px;overflow:hidden;text-overflow:ellipsis}@container (max-width: 1000px){.wb-btn .lbl.name,.wb-btn .lbl.opt,.wall-bar .wb-sep{display:none}}@container (max-width: 860px){.wb-btn .lbl{display:none}.wb-btn.wide{padding:0 8px}}@container (max-width: 760px){.wall-bar{flex-wrap:wrap}}.wb-seg{display:inline-flex;border:1px solid rgba(255,255,255,.12);border-radius:var(--r-sm);overflow:hidden;height:32px}.wb-seg button{border:0;background:#ffffff0a;color:#b9c3d1;font:inherit;font-size:var(--fs-xs);padding:0 10px;cursor:pointer}.wb-seg button+button{border-left:1px solid rgba(255,255,255,.12)}.wb-seg button.on{background:#5b8def47;color:#fff;font-weight:600}.wb-seg button:hover:not(.on){background:#ffffff1a}.wall-bar .input.wb-every{width:auto;min-height:32px;height:32px;padding-top:0;padding-bottom:0;background-color:#ffffff0a;color:#d9e0ea;border-color:#ffffff1f;font-size:var(--fs-xs)}.wall-bar .input.wb-every option{color:#0e1726}.wb-menu{position:relative}.wb-pop{position:absolute;top:calc(100% + 6px);left:0;z-index:20;width:340px;padding:10px;border-radius:var(--r-md);background:#151b26;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 48px #0000008c;display:grid;gap:8px;color:#e8edf5}.wb-pop.right{left:auto;right:0}.wb-pop-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8a95a6}.wb-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.wb-presets button{display:grid;justify-items:center;gap:4px;padding:8px 4px 6px;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);background:#ffffff08;color:#c8d0dc;font:inherit;font-size:11px;cursor:pointer}.wb-presets button:hover{background:#ffffff14;color:#fff}.wb-presets button.on{border-color:#5b8def;background:#5b8def2e;color:#fff}.preset-icon rect{fill:currentColor;opacity:.55}.wb-presets button.on .preset-icon rect,.wb-presets button:hover .preset-icon rect{opacity:.9}.wb-cols{display:flex;gap:4px;flex-wrap:wrap}.wb-cols button{min-width:34px;height:28px;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);background:#ffffff08;color:#c8d0dc;font:inherit;font-size:var(--fs-xs);cursor:pointer}.wb-cols button.on{border-color:#5b8def;background:#5b8def38;color:#fff}.wb-pop-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.wb-pop .btn.sm{min-height:30px}.wb-pop .btn.quiet{color:#9cbcf7}.wb-pop .btn.quiet:hover{background:#5b8def26}.wb-pop .btn:not(.quiet):not(.primary){background:#ffffff0f;color:#e8edf5;border-color:#ffffff24}.wb-pop .input{background:#ffffff0f;color:#fff;border-color:#ffffff29;flex:1;min-width:0}.wb-hint{margin:0;font-size:11.5px;color:#8a95a6;line-height:1.45}.wb-view{display:flex;align-items:center;gap:4px;border-radius:var(--r-sm)}.wb-view>button:first-child{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:7px 8px;border:0;background:none;color:#e8edf5;font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;border-radius:var(--r-sm)}.wb-view>button:first-child span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wb-view>button:first-child small{color:#8a95a6;font-size:11px}.wb-view svg{width:15px;height:15px;flex:none;color:#8a95a6}.wb-view:hover{background:#ffffff0f}.wb-view.on>button:first-child{color:#9cbcf7;font-weight:600}.wb-view .del{width:28px;height:28px;border:0;background:none;border-radius:var(--r-sm);display:grid;place-items:center;cursor:pointer;opacity:0}.wb-view:hover .del{opacity:1}.wb-view .del:hover svg{color:#ef6b6b}.wb-pop.keys{width:240px}.wb-pop dl{display:grid;grid-template-columns:auto 1fr;gap:6px 12px;margin:0;font-size:var(--fs-xs)}.wb-pop dt{font-family:var(--mono);color:#fff;background:#ffffff14;border-radius:4px;padding:1px 6px;justify-self:start}.wb-pop dd{margin:0;color:#c8d0dc}.wall-stage{position:relative;flex:1;min-height:0;margin:6px}.wall-main.full .wall-stage{margin:4px}.wall-stage.drop-here{outline:2px dashed rgba(91,141,239,.8);outline-offset:-2px;border-radius:var(--r-sm)}.wall-stage.resizing{user-select:none;cursor:nwse-resize}.wt{position:absolute;top:0;left:0;background:#000;border-radius:4px;overflow:hidden;outline:1px solid rgba(255,255,255,.06);outline-offset:-1px;transition:transform .24s cubic-bezier(.2,.8,.2,1),width .24s cubic-bezier(.2,.8,.2,1),height .24s cubic-bezier(.2,.8,.2,1),opacity var(--t-fast);will-change:transform;cursor:grab}.wall-stage.resizing .wt.sizing{transition:none}.wt.over{outline:2px solid #5b8def;outline-offset:-2px}.wt.focused{z-index:5;border-radius:0;cursor:default}.wt.behind{opacity:0;pointer-events:none}.wt .bare-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;display:block}.wall-stage.cover .wt .bare-video{object-fit:cover}.wt-title{position:absolute;left:0;right:0;top:0;display:flex;align-items:baseline;gap:6px;padding:5px 8px 14px;background:linear-gradient(rgba(0,0,0,.72),transparent);font-size:12px;pointer-events:none;min-width:0}.wt-title b{font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.8);flex:0 0 auto;max-width:100%}.wt-sub{color:#ffffffb8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;flex:1 1 0;min-width:0}.wt-dot{width:7px;height:7px;border-radius:50%;flex:none;align-self:center;background:#8a95a6}.wt-dot.live{background:#e53935;box-shadow:0 0 6px #e53935;animation:wt-pulse 2s ease-in-out infinite}.wt-dot.starting{background:#e0a03a}.wt-dot.error,.wt-dot.off{background:#8a95a6}@keyframes wt-pulse{50%{opacity:.45}}.wt-badge{position:absolute;left:6px;bottom:6px;font-family:var(--mono);font-size:10px;padding:1px 5px;border-radius:3px;background:#0000008c;color:#ffffffbf;pointer-events:none;opacity:0;transition:opacity var(--t-fast)}.wt:hover .wt-badge{opacity:1}.wt-state{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:8px;padding:12px;text-align:center;color:#ffffffb8;font-size:12px;pointer-events:none}.wt-state svg{width:22px;height:22px}.wt-state span{max-width:100%;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wt-state.bad{color:#ff8a80;background:#28080859}.wt-state.bad .btn{pointer-events:auto;background:#ffffff1a;color:#fff;border-color:#fff3;min-height:28px}.wt-spin{width:20px;height:20px;border-radius:50%;border:2px solid rgba(255,255,255,.18);border-top-color:#fffc;animation:wt-spin .9s linear infinite}@keyframes wt-spin{to{transform:rotate(360deg)}}.wt-tools{position:absolute;top:4px;right:4px;display:flex;gap:3px;opacity:0;transition:opacity var(--t-fast) var(--ease);z-index:2}.wt:hover .wt-tools,.wt:focus-within .wt-tools{opacity:1}.wt-tools button{width:26px;height:26px;display:grid;place-items:center;border:0;border-radius:50%;background:#000000a6;color:#fff;cursor:pointer;padding:0}.wt-tools button:hover:not(:disabled){background:#3b74e0}.wt-tools button:disabled{opacity:.35;cursor:default}.wt-tools svg{width:14px;height:14px}.wt-edge{position:absolute;z-index:3;touch-action:none}.wt-edge.e{top:12px;bottom:12px;right:0;width:8px;cursor:ew-resize}.wt-edge.s{left:12px;right:12px;bottom:0;height:8px;cursor:ns-resize}.wt-edge.se{right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize}.wt-edge.se:after{content:"";position:absolute;right:3px;bottom:3px;width:9px;height:9px;border-right:2px solid rgba(255,255,255,.8);border-bottom:2px solid rgba(255,255,255,.8);border-bottom-right-radius:2px;opacity:0;transition:opacity var(--t-fast)}.wt-edge.e:hover,.wt-edge.s:hover{background:#5b8def73}.wt:hover .wt-edge.se:after,.wt.sizing .wt-edge.se:after{opacity:1}.wt.empty{background:#ffffff06;outline:1px dashed rgba(255,255,255,.18);cursor:pointer}.wt.empty:hover{background:#ffffff0d}.wt.empty.target{outline:2px solid #5b8def;background:#5b8def24}.wt-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:4px;color:#fff6;font-size:12px;pointer-events:none}.wt-empty svg{width:20px;height:20px}.wt.empty.target .wt-empty{color:#9cbcf7}.wt-ghost{position:absolute;top:0;left:0;z-index:8;border:2px solid #5b8def;border-radius:4px;background:#5b8def1f;pointer-events:none;box-shadow:0 0 0 9999px #0000002e}.wall-hint{position:absolute;left:50%;top:10px;transform:translate(-50%);z-index:9;display:flex;align-items:center;gap:8px;padding:6px 8px 6px 12px;border-radius:999px;background:#151b26f2;border:1px solid rgba(91,141,239,.6);color:#cfe0ff;font-size:var(--fs-xs);white-space:nowrap}.wall-hint svg{width:14px;height:14px}.wall-hint button{border:0;background:none;color:inherit;cursor:pointer;display:grid;place-items:center;padding:2px}.wall-empty{position:absolute;inset:0;display:grid;place-items:center;align-content:center;gap:10px;padding:var(--sp-5);text-align:center;color:#a9b5c6}.wall-empty>svg{width:40px;height:40px;color:#5b8def;opacity:.8}.wall-empty h3{margin:0;color:#fff;font-size:var(--fs-xl);font-weight:600}.wall-empty p{margin:0;max-width:460px;font-size:var(--fs-sm);line-height:1.5}.wall-empty-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:6px}.wall-empty-actions .btn{background:#ffffff0f;color:#e8edf5;border-color:#ffffff24}.wall-empty-actions .btn:hover{background:#ffffff1f}.wall-empty-actions .btn.primary{background:#3b74e0;border-color:transparent;color:#fff}.wall-empty-actions .preset-icon{margin-right:2px}.wall-pager{position:absolute;left:50%;bottom:14px;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:4px;padding:4px;border-radius:999px;background:#10141ce0;border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 24px #00000073;font-size:var(--fs-xs);color:#c8d0dc;max-width:calc(100% - 24px);transition:opacity var(--t-base)}.wall-pager.dim{opacity:.25}.wall-pager:hover{opacity:1}.wall-pager span{padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.wall-pager b{color:#fff}.wall-pager button{width:28px;height:28px;flex:none;display:grid;place-items:center;border:0;border-radius:50%;background:#ffffff0f;color:#fff;cursor:pointer;padding:0}.wall-pager button:hover:not(:disabled){background:#3b74e0}.wall-pager button:disabled{opacity:.35;cursor:default}.wall-pager svg{width:15px;height:15px}.wall-toast{position:absolute;right:14px;bottom:14px;z-index:9;max-width:min(420px,calc(100% - 28px));padding:8px 12px;border-radius:var(--r-md);background:#151b26f5;border:1px solid rgba(255,255,255,.14);color:#e8edf5;font-size:var(--fs-xs);box-shadow:0 8px 24px #00000073}.wall-corner{position:absolute;top:10px;right:14px;z-index:7;pointer-events:none;padding:4px 10px;border-radius:var(--r-sm);background:#00000073}.wall-corner .wall-clock{border:0;padding:0}.wall-corner .wall-clock b{color:#fff;font-size:var(--fs-lg)}.wall-corner .wall-clock span{color:#ffffffa6}@media(max-width:900px){.wall-page{grid-template-columns:1fr;grid-template-rows:280px minmax(320px,1fr);height:auto!important}.wall-page.closed{grid-template-rows:minmax(320px,1fr)}.wall-kpis{margin-left:0}.wall-kpi{min-width:0}.wall-main{min-height:60vh}}@media(prefers-reduced-motion:reduce){.wt{transition:none}.wt-dot.live,.wt-spin{animation:none}}.player.compact video{width:100%;height:100%;object-fit:contain;aspect-ratio:auto}.player.compact .overlay{position:absolute;left:0;right:0;bottom:0;display:flex;gap:8px;align-items:center;padding:4px 8px;font-size:11px;color:#fff;background:linear-gradient(transparent,#000000b3)}.player.compact .overlay .label{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player.compact .overlay .bad{color:#ff8a80}.player.compact .overlay .faint{color:#ffffffb3}.player{position:relative}.player:fullscreen video{height:100%;aspect-ratio:auto;object-fit:contain}.player-bar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:6px;padding:6px 10px;color:#fff;font-size:var(--fs-xs);background:linear-gradient(transparent,#000000a6);opacity:.8;transition:opacity var(--t-fast) var(--ease)}.player:hover .player-bar,.player:focus-within .player-bar{opacity:1}.player-bar .spacer{flex:1}.player-bar .live-mark{display:inline-flex;align-items:center;gap:6px;font-weight:600;letter-spacing:.06em}.player-bar .live-mark i{width:8px;height:8px;border-radius:50%;background:#e53935;box-shadow:0 0 6px #e53935}.player-bar button{width:30px;height:30px;border:0;border-radius:50%;background:#00000080;color:#fff;display:grid;place-items:center;cursor:pointer}.player-bar button svg{width:16px;height:16px}.player-bar button.on{background:var(--accent);color:var(--accent-ink)}.player-bar .faint{color:#fff9;font-size:11px}.table.rc-table th,.table.rc-table td{text-align:left;vertical-align:top;white-space:normal}.table.rc-table tr:not(.rc-inline)>td:first-child,.table.rc-table tr:not(.rc-inline)>td:nth-child(3){white-space:nowrap}.table.rc-table td.rc-actions{white-space:normal;text-align:right}.table.rc-table td.rc-actions>*{margin:2px 0 2px 4px}.table.rc-table td.rc-wrap{overflow-wrap:anywhere}.rc-inline>td{background:var(--surface-2)}.rc-form{padding:var(--sp-2) 0}.rc-form h3{font-size:var(--fs-sm)}.rc-grid{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start}.rc-grid .field{min-width:0;align-content:start}.rc-grid .input{width:100%;box-sizing:border-box}.rc-grid .hint{white-space:normal;font-size:var(--fs-xs);color:var(--ink-3)}.rc-warn,.table td .sub.rc-warn,.rc-grid .hint.rc-warn{color:var(--warn);white-space:normal}.rv-disks{display:grid;gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:var(--sp-3)}.rv-disk{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-2) var(--sp-3)}.rv-disk-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-sm)}.rv-disk-head svg{width:14px;height:14px;vertical-align:-2px;color:var(--ink-3)}.rv-bar{height:6px;border-radius:999px;background:var(--surface-2);margin:var(--sp-2) 0 4px;overflow:hidden}.rv-bar i{display:block;height:100%;background:var(--accent);border-radius:999px}.rv-disk .sub{font-size:var(--fs-xs);color:var(--ink-3)}.rv-live{max-width:640px;padding:var(--sp-2) 0}.rv-footage{display:grid;gap:var(--sp-2);padding:var(--sp-2) 0;min-width:0}.rv-footage-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.rv-day{display:inline-flex;align-items:center;gap:6px}.rv-day svg{width:16px;height:16px;color:var(--ink-3)}.rv-timeline{position:relative;height:24px;border-radius:6px;background:var(--surface-2);overflow:hidden}.rv-timeline .rv-rec{position:absolute;top:0;bottom:0;padding:0;border:0;background:var(--good);opacity:.8;cursor:pointer;min-width:2px}.rv-timeline .rv-rec:hover,.rv-timeline .rv-rec:focus-visible{opacity:1;outline:2px solid var(--accent);outline-offset:-2px}.rv-timeline .rv-sel{position:absolute;top:0;bottom:0;background:var(--accent);opacity:.45;pointer-events:none;min-width:3px}.rv-timeline .rv-now{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);pointer-events:none}.rv-ticks{position:relative;height:14px;font-size:10.5px;color:var(--ink-3)}.rv-ticks span{position:absolute;transform:translate(-50%)}.rv-ticks span:first-child{transform:none}.rv-ticks span:last-child{transform:translate(-100%)}.kv.rv-kv{padding:0}.rv-footage .card.block{margin:var(--sp-2) 0 0}.kv.rv-kv span{text-align:left}.block .rv-disks{padding:var(--sp-3) var(--sp-4) 0;margin-bottom:var(--sp-2)}.disc-others{display:grid;gap:var(--sp-2);margin:var(--sp-2) 0 0}.disc-toggle{display:inline-flex;align-items:center;gap:6px;justify-self:start;background:none;border:0;padding:var(--sp-1) 0;color:var(--ink-2);font:inherit;font-size:var(--fs-sm);cursor:pointer}.disc-toggle:hover{color:var(--accent)}.disc-toggle svg{width:14px;height:14px}.disc-onboard{margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);display:grid;gap:var(--sp-3);border-color:var(--accent-soft)}.disc-onboard-head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap}.disc-onboard-head h3{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-md)}.disc-onboard-head h3 svg{width:16px;height:16px;color:var(--ink-3)}.disc-onboard-head .chips{flex:1}.disc-onboard-row{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.disc-onboard-row .field{flex:0 1 240px;min-width:160px}.disc-onboard-hint{display:flex;align-items:flex-start;gap:6px;margin:0;font-size:var(--fs-xs);color:var(--ink-3)}.disc-onboard-hint svg{width:12px;height:12px;flex:none;margin-top:2px}.disc-onboard-row .btn{min-height:36px}.block .block-sub{margin:var(--sp-1) var(--sp-4) 0;font-size:var(--fs-xs);color:var(--ink-3);max-width:80ch}.block .block-empty{margin:var(--sp-3) var(--sp-4) var(--sp-4);padding:var(--sp-3);border:1px dashed var(--line);border-radius:var(--r-md, 8px);font-size:var(--fs-sm);color:var(--ink-3);text-align:center}.block .block-table{margin-top:var(--sp-3)}.table tr.faint-row td{color:var(--ink-3)}.getting-started{margin-bottom:var(--sp-4)}.gs-steps{list-style:none;margin:0;padding:var(--sp-3) var(--sp-4);display:grid;gap:var(--sp-2)}.gs-steps li{display:flex;gap:var(--sp-2);align-items:flex-start}.gs-steps li svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--ink-3)}.gs-steps li svg.good{color:var(--good)}.gs-steps li .sub{display:block}.gs-steps li.done b{color:var(--ink-3);text-decoration:line-through}.coverage-wrap{display:grid;gap:4px}.coverage-axis{position:relative;height:14px;font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--mono, monospace)}.coverage-axis span{position:absolute;transform:translate(-50%);white-space:nowrap}.coverage-axis span:first-child{transform:none}.coverage-axis span:last-child{transform:translate(-100%)}.lanes{display:grid;gap:6px}.lane-head{display:flex;gap:var(--sp-2);align-items:baseline;font-size:var(--fs-xs);flex-wrap:wrap}.lane .coverage{position:relative;display:block}.lane .coverage i{position:absolute;top:0}.lane-edge i{background:var(--accent, #4f7cff)}.lane-recorder i{background:var(--warn)}.cfg{display:grid;grid-template-columns:200px minmax(0,1fr);gap:var(--sp-4);align-items:start}@media(max-width:1100px){.cfg{grid-template-columns:1fr}}.cfg-rail{position:sticky;top:var(--sp-3);display:grid;gap:var(--sp-2)}.cfg-search{position:relative}.cfg-search svg{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:14px;height:14px;color:var(--ink-3);pointer-events:none}.cfg-search .input{padding-left:26px;width:100%}.cfg-only{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--ink-2)}.cfg-groups{display:grid;gap:1px;max-height:52vh;overflow:auto}.cfg-group{display:flex;align-items:center;gap:4px;width:100%;padding:5px 6px;border:0;border-radius:var(--r-sm);background:none;cursor:pointer;font:inherit;font-size:var(--fs-sm);color:var(--ink-2);text-align:left}.cfg-group:hover{background:var(--surface-2);color:var(--ink)}.cfg-group.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.cfg-group svg{width:13px;height:13px;flex:none;opacity:.5}.cfg-group.on svg{opacity:1}.cfg-group-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.cfg-n{font-size:var(--fs-xs);font-variant-numeric:tabular-nums;background:var(--surface-3);color:var(--ink-2);border-radius:999px;padding:0 6px}.cfg-group.on .cfg-n{background:var(--accent);color:var(--accent-ink)}.cfg-n.hit{background:var(--warn-soft);color:var(--warn)}.cfg-tabs{display:flex;gap:var(--sp-1);border-top:1px solid var(--line);padding-top:var(--sp-2)}.cfg-tabs .btn{flex:1}.cfg-pane{display:grid;gap:var(--sp-3);min-width:0}.cfg-pane-head h4{margin:0;font-size:var(--fs-md)}.cfg-group-help{margin:4px 0 0;font-size:var(--fs-sm);color:var(--ink-3);max-width:78ch}.cfg-field{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3);background:var(--surface)}.cfg-field.on{border-color:var(--accent);background:var(--surface-2)}.cfg-field-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.cfg-spacer{flex:1}.cfg-key{font-size:var(--fs-sm);font-weight:600;color:var(--ink)}.cfg-help{margin:4px 0 var(--sp-2);font-size:var(--fs-sm);color:var(--ink-2);max-width:78ch}.cfg-field-body{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-sm);flex-wrap:wrap}.cfg-field-body .input{max-width:420px}.cfg-bool,.cfg-num{display:inline-flex;align-items:center;gap:6px}.cfg-num .input{width:10ch}.cfg-meta{display:flex;gap:var(--sp-3);flex-wrap:wrap;margin-top:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-3)}.cfg-meta b{font-weight:600;color:var(--ink-2)}.cfg-json{width:100%}.cfg-json textarea{width:100%;max-width:none}.cfg-json-bar{display:flex;align-items:center;gap:var(--sp-2);margin-top:4px;flex-wrap:wrap}.cfg-doc textarea{width:100%}.cfg-rows{display:grid;gap:var(--sp-2);width:100%;min-width:0}.cfg-row{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;padding:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface)}.cfg-row-tight{padding:2px 4px;border:0;background:none}.cfg-days{display:inline-flex;gap:2px;align-items:center}.cfg-day{min-height:28px;padding:0 7px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--surface);color:var(--ink-3);font:inherit;font-size:var(--fs-xs);cursor:pointer}.cfg-day.on{background:var(--accent-soft);color:var(--accent);border-color:transparent;font-weight:600}.cfg-times{display:inline-flex;align-items:center;gap:6px}.cfg-hm{width:7ch;font-family:var(--mono)}.input.bad{border-color:var(--bad)}.cfg-empty{font-size:var(--fs-sm);color:var(--ink-3);padding:var(--sp-2) 0}.cfg-card{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.cfg-card-head{display:flex;align-items:flex-end;gap:var(--sp-3);flex-wrap:wrap}.cfg-inline{display:grid;gap:2px}.cfg-lbl{font-size:var(--fs-xs);font-weight:600;color:var(--ink-2)}.cfg-lbl .faint{font-weight:400}.cfg-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--sp-2) var(--sp-3)}.cfg-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--sp-2) var(--sp-3)}.cfg-grid2 .input,.cfg-grid3 .input{max-width:none;width:100%}.cfg-more summary{cursor:pointer;font-size:var(--fs-xs);color:var(--accent)}.cfg-more[open] summary{margin-bottom:var(--sp-2)}.cfg-warnings{margin:0;padding-left:1.2em;font-size:var(--fs-xs);color:var(--warn)}.cfg-table td{vertical-align:middle}.cfg-table .sub{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-family:var(--sans)}.cfg-rule{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}@media(max-width:900px){.cfg-rule{grid-template-columns:1fr}}.cfg-ladder{display:flex;align-items:center;gap:4px;flex-wrap:wrap;font-size:var(--fs-xs)}.cfg-rung{padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-3)}.cfg-rung.above{color:var(--ink-2)}.cfg-rung.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.cfg-rung+.cfg-rung:before{content:"›";margin-right:4px;color:var(--ink-3)}.cfg-ladder .hint{margin-left:var(--sp-2)}.cfg-new{display:grid;gap:var(--sp-3)}.cfg-scope-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-2)}.cfg-scope-card{display:grid;gap:4px;text-align:left;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font:inherit;cursor:pointer;color:var(--ink-2)}.cfg-scope-card span{font-size:var(--fs-xs);color:var(--ink-3)}.cfg-scope-card:hover{border-color:var(--accent)}.cfg-scope-card.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.cfg-scope-card.on span{color:var(--ink-2)}.cfg-blank{flex-direction:column;gap:var(--sp-2);max-width:60ch;margin:0 auto;text-align:center}.cmd{display:grid;grid-template-columns:180px minmax(0,1fr);gap:var(--sp-3);align-items:start}@media(max-width:900px){.cmd{grid-template-columns:1fr}}.cmd-rail{display:grid;gap:var(--sp-2)}.cmd-list{display:grid;gap:4px;max-height:46vh;overflow:auto;padding-right:2px}.cmd-item{display:grid;gap:2px;text-align:left;padding:var(--sp-2) var(--sp-3);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font:inherit;cursor:pointer;color:var(--ink)}.cmd-item:hover{border-color:var(--accent)}.cmd-item.on{border-color:var(--accent);background:var(--accent-soft)}.cmd-item.off{opacity:.55}.cmd-title{font-weight:600;font-size:var(--fs-sm);display:flex;align-items:center;gap:6px}.cmd-guard{width:14px;height:14px;color:var(--warn)}.cmd-help{font-size:var(--fs-xs);color:var(--ink-2)}.cmd-meta{font-size:var(--fs-xs);color:var(--ink-3)}.cmd-form{display:grid;gap:var(--sp-2);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3);background:var(--surface-2)}.cmd-form-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.cmd-form-head h4{margin:0;font-size:var(--fs-md)}.cmd-approval{display:grid;gap:4px;padding:var(--sp-2) var(--sp-3);border-left:3px solid var(--warn);background:var(--surface);border-radius:var(--r-sm)}.cmd-approval .cfg-lbl{display:flex;align-items:center;gap:6px}.cmd-approval .cfg-lbl svg{width:14px;height:14px;color:var(--warn)}.cmd-quick{display:flex;gap:var(--sp-2);flex-wrap:wrap}.cfg-scope-card.off{opacity:.5}.bad{color:var(--bad)}.cfg-cell{display:inline-flex;align-items:center;gap:6px;min-width:0}.cfg-cell-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media print{body:has(.print-card) *{visibility:hidden}body:has(.print-card) .print-card,body:has(.print-card) .print-card *{visibility:visible}body:has(.print-card) .print-card{position:fixed;inset:24px auto auto 24px;width:520px}.print-card .qr{width:240px}}.rec-strip{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:stretch;margin-bottom:var(--sp-4)}.rec-tile{display:grid;gap:2px;align-content:start;min-width:170px;flex:1;padding:var(--sp-3) var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.rec-tile .k{display:flex;align-items:center;gap:6px;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3)}.rec-tile .k svg{width:13px;height:13px}.rec-tile b{font-size:var(--fs-xl);font-variant-numeric:tabular-nums}.rec-tile .s{font-size:var(--fs-xs);color:var(--ink-3)}.rec-tile.warn{border-color:var(--warn);background:var(--warn-soft)}.rec-tile.warn b{color:var(--warn)}.rec-tile.info{border-color:var(--accent);background:var(--accent-soft)}.rec-strip-note{flex-basis:100%;font-size:11px;color:var(--ink-3)}.rec-zone{font-size:var(--fs-xs)}.block-head .spacer{flex:1}.rec-lib .block-head,.rec-day .block-head,.rec-files .block-head,.rec-gallery .block-head{flex-wrap:wrap;gap:var(--sp-2)}.rec-grid-wrap{overflow:auto;max-height:460px;padding:0 var(--sp-4) var(--sp-2)}.rec-grid{border-collapse:separate;border-spacing:2px;font-size:var(--fs-xs)}.rec-grid.loading{opacity:.6}.rec-grid th.cam{position:sticky;left:0;z-index:1;background:var(--surface);text-align:left;font-weight:500;padding-right:var(--sp-3);max-width:210px;min-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rec-grid thead th{position:sticky;top:0;z-index:2;background:var(--surface)}.rec-grid thead th.cam{z-index:3;color:var(--ink-3);font-weight:500}.rec-grid th.day button{display:grid;justify-items:center;width:22px;padding:2px 0;border:0;border-radius:4px;background:none;color:var(--ink-2);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;line-height:1.15}.rec-grid th.day small{font-size:9.5px;color:var(--ink-3)}.rec-grid th.day small.month{color:var(--accent);font-weight:600}.rec-grid th.day.today button{color:var(--accent);font-weight:700}.rec-grid th.day.sel button{background:var(--accent-soft);color:var(--accent)}.rec-grid th.day button:hover{background:var(--surface-2)}.rec-grid tr.sel th.cam{color:var(--accent);font-weight:600}.rec-grid td{padding:0}.rec-cell{position:relative;display:block;width:22px;height:18px;padding:0;border:0;border-radius:3px;cursor:pointer;background:var(--surface-3)}.rec-cell.full{background:var(--good)}.rec-cell.part{background:color-mix(in srgb,var(--good) 60%,var(--surface-3))}.rec-cell.low{background:color-mix(in srgb,var(--good) 28%,var(--surface-3))}.rec-cell.proxy{background:repeating-linear-gradient(135deg,var(--accent) 0 3px,color-mix(in srgb,var(--accent) 35%,var(--surface-3)) 3px 6px)}.rec-cell.has-proxy{box-shadow:inset 0 -3px 0 var(--accent)}.rec-cell:hover{outline:2px solid var(--ink-2);outline-offset:1px}.rec-grid td.sel .rec-cell{outline:2px solid var(--accent);outline-offset:1px}.rec-cell>i{position:absolute;right:2px;top:2px;width:5px;height:5px;border-radius:50%;background:var(--ink);opacity:.7}.rec-cell>i.clip{background:var(--warn);opacity:1}.rec-legend{display:flex;flex-wrap:wrap;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4) var(--sp-3);font-size:11px;color:var(--ink-3)}.rec-legend span{display:inline-flex;align-items:center;gap:5px}.rec-legend .rec-cell{width:14px;height:11px;cursor:default;display:inline-block}.rec-legend .rec-cell>i{width:4px;height:4px;right:1px;top:1px}.rec-day{margin-top:var(--sp-4)}.rec-tl{padding:0 var(--sp-4) var(--sp-2)}.rec-tl-axis,.rec-tl-row{display:grid;grid-template-columns:190px minmax(0,1fr);gap:var(--sp-3);align-items:center}.rec-tl-axis .ticks{position:relative;height:18px;font-size:10.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.rec-tl-axis .ticks span{position:absolute;transform:translate(-50%)}.rec-tl-axis .ticks span:first-child{transform:none}.rec-tl-row{min-height:30px;border-top:1px solid var(--line)}.rec-tl-row .cam{display:grid;min-width:0;font-size:var(--fs-xs)}.rec-tl-row .cam b{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rec-tl-row .cam small{color:var(--ink-3);font-size:10.5px}.rec-tl-row.sel .cam b{color:var(--accent);font-weight:600}.rec-tl-row .track{position:relative;height:22px;border-radius:4px;background:repeating-linear-gradient(90deg,var(--surface-2) 0 calc(100% / 24 - 1px),var(--line) calc(100% / 24 - 1px) calc(100% / 24));cursor:pointer;overflow:visible}.rec-tl-row .track>i{position:absolute}.rec-tl-row .track .full{top:3px;bottom:3px;background:var(--good);border-radius:2px}.rec-tl-row .track .px{top:3px;bottom:3px;background:repeating-linear-gradient(135deg,var(--accent) 0 3px,color-mix(in srgb,var(--accent) 40%,transparent) 3px 6px);border-radius:2px}.rec-tl-row .track .ssd{bottom:0;height:3px;background:var(--warn)}.rec-tl-row .track .nvr{top:0;height:3px;background:#8b5cf6}.rec-tl-row .track .mk{top:-2px;bottom:-2px;width:2px;margin-left:-1px;border-radius:1px;background:var(--ink);opacity:.55}.rec-tl-row .track .mk.clip{width:4px;margin-left:-2px;background:var(--warn);opacity:1}.rec-tl-row .track .now{top:-4px;bottom:-4px;width:2px;background:var(--bad)}.rec-tl-row .track .playhead{top:-5px;bottom:-5px;width:2px;background:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.rec-tl-row .track .hover{position:absolute;bottom:calc(100% + 4px);transform:translate(-50%);display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:4px;background:var(--ink);color:var(--surface);font-size:11px;font-variant-numeric:tabular-nums;pointer-events:none;white-space:nowrap;z-index:2}.rec-tl-row .track .hover svg{width:10px;height:10px}.rec-tl-row .track:hover{outline:1px solid var(--accent)}.rec-tl .rec-legend{padding-left:0}.rec-legend .lg{display:inline-block;width:16px;height:8px;border-radius:2px}.rec-legend .lg.full{background:var(--good)}.rec-legend .lg.px{background:repeating-linear-gradient(135deg,var(--accent) 0 3px,color-mix(in srgb,var(--accent) 40%,transparent) 3px 6px)}.rec-legend .lg.ssd{height:3px;background:var(--warn)}.rec-legend .lg.nvr{height:3px;background:#8b5cf6}.rec-legend .lg.snap{width:2px;height:12px;background:var(--ink);opacity:.55}.rec-legend .lg.clip{width:4px;height:12px;background:var(--warn)}.rec-files,.rec-gallery{margin-top:var(--sp-4)}.rec-files .rec-cam{width:auto;max-width:240px}.rec-bulk{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;margin:0 var(--sp-4) var(--sp-3);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);background:var(--accent-soft);font-size:var(--fs-sm)}.rec-bulk .spacer{flex:1}.rec-confirm{margin:0 var(--sp-4) var(--sp-3);padding:var(--sp-3);border:1px solid var(--bad);border-radius:var(--r-md);background:var(--bad-soft);font-size:var(--fs-sm);display:grid;gap:var(--sp-2)}.rec-confirm p{margin:0;display:block;line-height:1.5}.rec-confirm p svg{width:15px;height:15px;vertical-align:-3px;color:var(--bad);margin-right:4px}.rec-confirm .row{display:flex;gap:var(--sp-2);flex-wrap:wrap}.rec-confirm .row .input{flex:1;min-width:220px}.rec-why{margin:0 0 var(--sp-2);padding-left:1.2em;font-size:var(--fs-xs);color:var(--ink-2)}.rec-table td,.rec-table th{white-space:nowrap}.rec-table tr.sel td{background:var(--accent-soft)}.rec-table .pick{width:30px}.rec-table td.act{text-align:right}.rec-table td.mono[title]{max-width:120px;overflow:hidden;text-overflow:ellipsis}.rec-check{display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;background:none;color:var(--ink-2);cursor:pointer;border-radius:4px}.rec-check svg{width:16px;height:16px}.rec-check:hover{color:var(--accent);background:var(--surface-2)}.rec-more{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) var(--sp-3);font-size:var(--fs-xs)}.rec-thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:var(--sp-2);padding:0 var(--sp-4) var(--sp-3)}.rec-thumb{position:relative;border-radius:var(--r-sm);overflow:hidden;background:#10161f;outline:1px solid var(--line)}.rec-thumb.sel{outline:3px solid var(--accent)}.rec-thumb .img{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}.rec-thumb .thumb{display:grid;place-items:center;aspect-ratio:16 / 9;color:#5b6779}.rec-thumb .thumb img{width:100%;height:100%;object-fit:cover;display:block}.rec-thumb .rec-check{position:absolute;top:4px;left:4px;background:#0000008c;color:#fff}.rec-thumb.sel .rec-check{background:var(--accent)}.rec-thumb .cap{position:absolute;left:0;right:0;bottom:0;display:flex;gap:6px;align-items:baseline;padding:14px 6px 4px;background:linear-gradient(transparent,#000000b8);color:#fff;font-size:11px;pointer-events:none}.rec-thumb .cap span{opacity:.8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rec-lightbox{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--sp-4);background:#05080ec7}.rec-lightbox .inner{width:min(1200px,100%);max-height:100%;display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:var(--r-md);overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.rec-lightbox .bar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);font-size:var(--fs-sm)}.rec-lightbox .bar .spacer{flex:1}.rec-lightbox .pic{display:grid;place-items:center;background:#0b0f16;min-height:240px}.rec-lightbox .pic img{max-width:100%;max-height:calc(100vh - 140px);object-fit:contain;display:block}@media(max-width:800px){.rec-tl-axis,.rec-tl-row{grid-template-columns:110px minmax(0,1fr)}}.rec-confirm.done{border-color:var(--line);background:var(--surface-2)}.dlv{display:grid;gap:var(--sp-3)}.dlv h4{margin:var(--sp-2) 0 0;font-size:var(--fs-sm)}.dlv .notice ul{margin:4px 0 0;padding-left:1.2em}.dlv-loc{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-3);display:grid;gap:var(--sp-2)}.dlv-loc.rec{border-color:var(--good)}.dlv-loc-head{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap;font-size:var(--fs-sm)}.dlv-loc-head .faint{font-size:var(--fs-xs)}.dlv-path{display:flex;align-items:center;gap:var(--sp-2);flex-wrap:wrap}.dlv-path code{font-family:var(--mono);font-size:var(--fs-md);padding:6px 10px;border-radius:var(--r-sm);background:var(--surface-2);word-break:break-all}.dlv-msg{white-space:pre-wrap;font-size:var(--fs-sm);margin:0;padding:var(--sp-3);background:var(--surface-2);border-radius:var(--r-md)}.cam-stream{white-space:nowrap;font-size:var(--fs-xs)}.cam-total{margin:-4px 0 var(--sp-3);font-size:var(--fs-xs)}.warn-text{color:var(--warn)!important}.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--ground)}.auth-brand{position:relative;overflow:hidden;color:#e6ecf5;padding:var(--sp-7) clamp(28px,6vw,72px);display:flex;flex-direction:column;justify-content:space-between;min-height:100vh;background:radial-gradient(60% 50% at 20% 15%,rgba(91,141,239,.35),transparent 70%),radial-gradient(50% 40% at 85% 85%,rgba(47,177,216,.22),transparent 70%),linear-gradient(160deg,#0b1220,#101b33 55%,#0b1220)}.auth-brand:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:48px 48px;mask-image:radial-gradient(80% 80% at 50% 40%,#000 30%,transparent 100%)}.auth-brand>*{position:relative}.auth-brand .wordmark{display:flex;align-items:center;gap:12px;font-weight:600;font-size:var(--fs-lg);letter-spacing:-.01em}.auth-brand .wordmark .mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#5b8def,#2fb1d8);box-shadow:0 8px 24px -8px #5b8defcc}.auth-brand .wordmark small{color:#e6ecf58c;font-weight:500;font-size:var(--fs-xs);margin-left:2px}.auth-brand h1{font-size:clamp(28px,3.4vw,40px);line-height:1.12;font-weight:600;letter-spacing:-.02em;max-width:14ch;margin:var(--sp-6) 0 var(--sp-4);animation:rise var(--t-base) var(--ease) both}.auth-brand .lede{color:#e6ecf5b8;font-size:var(--fs-md);max-width:44ch;line-height:1.6;animation:rise var(--t-base) var(--ease) .06s both}.auth-brand .facts{list-style:none;margin:var(--sp-7) 0 0;padding:0;display:grid;gap:var(--sp-3);max-width:46ch}.auth-brand .facts li{display:flex;gap:12px;align-items:flex-start;font-size:var(--fs-sm);color:#e6ecf5d1;animation:rise var(--t-base) var(--ease) both}.auth-brand .facts li:nth-child(1){animation-delay:.12s}.auth-brand .facts li:nth-child(2){animation-delay:.18s}.auth-brand .facts li:nth-child(3){animation-delay:.24s}.auth-brand .facts svg{width:18px;height:18px;flex:none;margin-top:2px;color:#8fb3ff}.auth-brand .facts b{display:block;font-weight:600;color:#fff}.auth-brand .foot{display:flex;justify-content:space-between;gap:var(--sp-3);font-size:var(--fs-xs);color:#e6ecf580;margin-top:var(--sp-7);font-family:var(--mono);letter-spacing:.04em}.auth-brand .foot .live{display:inline-flex;align-items:center;gap:7px;margin:0;color:#e6ecf5b3}.auth-brand .foot .live .dot{width:7px;height:7px;border-radius:50%;background:#3dbd7a;box-shadow:0 0 #3dbd7a80;animation:pulse 2.4s infinite}.auth-form{display:grid;place-items:center;padding:var(--sp-7) clamp(24px,6vw,80px)}.auth-form form,.auth-form .panel{width:100%;max-width:400px;display:grid;gap:var(--sp-4);animation:rise var(--t-base) var(--ease) .1s both}.auth-form .eyebrow{margin-bottom:-6px}.auth-form h2{font-size:var(--fs-2xl);letter-spacing:-.02em}.auth-form .lead{color:var(--ink-2);font-size:var(--fs-sm);margin-top:-6px}.auth-form .input{min-height:48px;font-size:var(--fs-md)}.auth-form .btn.primary{min-height:48px;font-size:var(--fs-md);margin-top:var(--sp-1)}.auth-form .fine{font-size:var(--fs-xs);color:var(--ink-3);line-height:1.5}.auth-form .fine a{color:var(--ink-2)}.auth-form .qr{display:grid;place-items:center;padding:var(--sp-3);background:#fff;border:1px solid var(--line);border-radius:var(--r-md)}.auth-form .qr svg{width:176px;height:176px}.auth-form .secret{font-family:var(--mono);font-size:var(--fs-xs);word-break:break-all;text-align:center;color:var(--ink-2)}.auth-form .code-row{display:grid;grid-template-columns:1fr auto;gap:var(--sp-2);align-items:end}.auth-form .code-row .input{font-family:var(--mono);letter-spacing:.32em;text-align:center;font-size:22px}@media(max-width:900px){.auth{grid-template-columns:1fr}.auth-brand{min-height:0;padding:var(--sp-5) var(--sp-5) var(--sp-6)}.auth-brand h1{font-size:26px;margin:var(--sp-4) 0 var(--sp-2)}.auth-brand .facts,.auth-brand .foot{display:none}.auth-form{padding:var(--sp-6) var(--sp-4) var(--sp-7);align-items:start}}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .auth-form .qr{background:#fff}}
