:root{color-scheme:light;--font-sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Helvetica Neue", Inter, "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", sans-serif;--font-mono: "SF Mono", ui-monospace, Menlo, Consolas, "Noto Sans Mono CJK TC", monospace;--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 15px;--text-lg: 17px;--text-xl: 21px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--dur-fast: .12s;--dur: .18s;--ease: cubic-bezier(.2, .7, .2, 1);--topbar-h: 60px;--control-h: 40px;--sidebar-w: 216px;--sidebar-w-collapsed: 64px;--bg: #f5f5f7;--panel: #ffffff;--text: #1d1d1f;--muted: #6e6e73;--border: rgba(0, 0, 0, .08);--border-strong: rgba(0, 0, 0, .18);--accent: #0071e3;--accent-hover: #0077ed;--on-accent: #ffffff;--soft: rgba(0, 113, 227, .1);--input: #f5f5f7;--success: #1d8a45;--success-soft: rgba(52, 199, 89, .14);--danger: #d70015;--danger-soft: rgba(255, 59, 48, .12);--warn: #b25000;--warn-soft: rgba(255, 149, 0, .14);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .06);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .14);--tip-bg: rgba(29, 29, 31, .94);--tip-fg: #ffffff;--frame-bg: #0b0b0d}:root[data-theme=dark]{color-scheme:dark;--bg: #000000;--panel: #1c1c1e;--text: #f5f5f7;--muted: #98989d;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .22);--accent: #0a84ff;--accent-hover: #409cff;--soft: rgba(10, 132, 255, .18);--input: #2c2c2e;--success: #30d158;--success-soft: rgba(48, 209, 88, .16);--danger: #ff453a;--danger-soft: rgba(255, 69, 58, .16);--warn: #ff9f0a;--warn-soft: rgba(255, 159, 10, .16);--shadow-sm: none;--shadow-lg: 0 20px 60px rgba(0, 0, 0, .6);--tip-bg: rgba(245, 245, 247, .96);--tip-fg: #1d1d1f}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg: #000000;--panel: #1c1c1e;--text: #f5f5f7;--muted: #98989d;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .22);--accent: #0a84ff;--accent-hover: #409cff;--soft: rgba(10, 132, 255, .18);--input: #2c2c2e;--success: #30d158;--success-soft: rgba(48, 209, 88, .16);--danger: #ff453a;--danger-soft: rgba(255, 69, 58, .16);--warn: #ff9f0a;--warn-soft: rgba(255, 159, 10, .16);--shadow-sm: none;--shadow-lg: 0 20px 60px rgba(0, 0, 0, .6);--tip-bg: rgba(245, 245, 247, .96);--tip-fg: #1d1d1f}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100dvh;background:var(--bg);color:var(--text);font:var(--text-base)/1.4 var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button,select,[role=option]{cursor:pointer;touch-action:manipulation}[hidden]{display:none!important}.grow{flex:1;min-width:0}.truncate{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.nowrap{white-space:nowrap}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.num{font-variant-numeric:tabular-nums}.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.icon{flex:none;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.icon-xl{width:36px;height:36px;stroke-width:1.25}.empty .icon-xl{color:var(--border-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--accent)}.tip{position:relative}.tip:after{content:attr(data-tip);position:absolute;top:calc(100% + var(--space-2));left:50%;z-index:60;padding:6px 10px;border-radius:var(--radius-sm);background:var(--tip-bg);color:var(--tip-fg);font:500 var(--text-xs)/1.3 var(--font-sans);white-space:nowrap;box-shadow:var(--shadow-lg);opacity:0;transform:translate(-50%,-3px);pointer-events:none;transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}.tip:hover:after,.tip:focus-visible:after{opacity:1;transform:translate(-50%)}.tip-end:after{left:auto;right:0;transform:translateY(-3px)}.tip-end:hover:after,.tip-end:focus-visible:after{transform:none}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:6px var(--space-3);background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-weight:500;white-space:nowrap;text-decoration:none;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur-fast) var(--ease),opacity var(--dur) var(--ease)}button:hover:not(:disabled),.button:hover{background:var(--input)}button:active:not(:disabled),.button:active{transform:scale(.98)}button:disabled{opacity:.4;cursor:not-allowed}.primary{min-height:var(--control-h);padding:var(--space-2) var(--space-4);background:var(--accent);color:var(--on-accent);border:0;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:600}.primary:hover:not(:disabled){background:var(--accent-hover);color:var(--on-accent)}.primary:disabled{opacity:.35}.primary.danger-fill,.primary.danger-fill:hover:not(:disabled){background:var(--danger)}.primary.large{min-height:46px;font-size:var(--text-md)}.text-button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:var(--space-1) var(--space-2);border:0;background:transparent;color:var(--accent);font-size:var(--text-sm);font-weight:600;border-radius:var(--radius-sm);text-decoration:none}.text-button:hover:not(:disabled){background:var(--soft)}.text-button.danger{color:var(--danger)}.text-button.danger:hover:not(:disabled){background:var(--danger-soft)}.icon-button{position:relative;flex:none;width:36px;height:36px;min-height:36px;padding:0;border:0;border-radius:var(--radius-pill);color:var(--muted);background:transparent}.icon-button:hover:not(:disabled){color:var(--text);background:var(--input)}.icon-button[aria-pressed=true]{color:var(--accent)}.spinner{flex:none;animation:spin .9s linear infinite}.spinner circle{stroke:currentColor;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-dasharray:44 20}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}select,input,textarea{width:100%;min-width:0;min-height:var(--control-h);padding:0 var(--space-3);color:var(--text);background:var(--input);border:1px solid transparent;border-radius:var(--radius-sm);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}select:hover:not(:disabled),input:hover:not(:disabled),textarea:hover:not(:disabled){border-color:var(--border-strong)}input::placeholder,textarea::placeholder{color:var(--muted)}input[type=number]{font-variant-numeric:tabular-nums}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}textarea{display:block;resize:vertical;padding:var(--space-2) var(--space-3);font:var(--text-xs)/1.7 var(--font-mono);white-space:pre-wrap}input[type=range]{min-height:0;padding:0;background:transparent;border:0;accent-color:var(--accent)}input[type=checkbox],input[type=radio]{width:16px;height:16px;min-height:0;margin:0;padding:0;accent-color:var(--accent)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span,.field-label{display:flex;align-items:center;gap:var(--space-1);min-width:0;font-size:var(--text-xs);font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field small{font-size:var(--text-xs);color:var(--muted);line-height:1.5}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3) var(--space-4)}.form-grid .full{grid-column:1 / -1}.form-error{margin:0;color:var(--danger);font-size:var(--text-sm);font-weight:500;line-height:1.6;white-space:pre-line}.form-error:empty{display:none}.switch{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:500;color:var(--text);cursor:pointer}.switch input{appearance:none;position:relative;width:38px;height:22px;min-height:0;padding:0;border:0;border-radius:var(--radius-pill);background:var(--border-strong);cursor:pointer;transition:background-color var(--dur) var(--ease)}.switch input:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--on-accent);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease)}.switch input:checked{background:var(--success)}.switch input:checked:after{transform:translate(16px)}.panel{min-width:0;min-height:0;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);background:var(--panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.panel-head{position:relative;display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:32px}.panel-head h2,.panel h2{margin:0;min-width:0;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel-body{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.panel-foot{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border)}.empty,.notice{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);color:var(--muted);font-size:var(--text-base);font-weight:500;text-align:center}.notice.error{color:var(--danger)}.badge{display:inline-flex;align-items:center;gap:7px;flex:none;max-width:100%;padding:var(--space-1) 10px;border-radius:var(--radius-pill);background:var(--input);color:var(--muted);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.badge:before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--border-strong)}.badge.busy{background:var(--soft);color:var(--accent)}.badge.busy:before{background:var(--accent);animation:pulse 1.2s ease-in-out infinite}.badge.done{background:var(--success-soft);color:var(--success)}.badge.done:before{background:var(--success)}.badge.error{background:var(--danger-soft);color:var(--danger)}.badge.error:before{background:var(--danger)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.warn:before{background:var(--warn)}.chip{display:inline-flex;align-items:center;gap:var(--space-1);flex:none;max-width:100%;padding:3px var(--space-2);border-radius:6px;background:var(--input);color:var(--muted);font-size:var(--text-xs);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip:empty{display:none}.chip.accent{background:var(--soft);color:var(--accent);font-weight:600}.chip.warn{background:var(--warn-soft);color:var(--warn);font-weight:600}.chip.success{background:var(--success-soft);color:var(--success);font-weight:600}.chip.danger{background:var(--danger-soft);color:var(--danger);font-weight:600}.tabs{display:inline-flex;flex:none;align-self:flex-start;max-width:100%;padding:3px;border-radius:var(--radius-sm);background:var(--input)}.tabs button{min-height:28px;padding:2px var(--space-3);background:transparent;border:0;border-radius:6px;color:var(--muted);font-size:var(--text-sm);font-weight:500}.tabs button:hover:not(:disabled){color:var(--text);background:transparent}.tabs button[aria-selected=true],.tabs button[aria-pressed=true]{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .tabs button[aria-selected=true],:root[data-theme=dark] .tabs button[aria-pressed=true]{background:var(--border)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .tabs button[aria-selected=true],:root:not([data-theme=light]) .tabs button[aria-pressed=true]{background:var(--border)}}dialog.dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 64px);padding:0;border:0;border-radius:var(--radius-lg);background:var(--panel);color:var(--text);box-shadow:var(--shadow-lg);overscroll-behavior:contain}dialog.dialog[open]{animation:pop-in var(--dur) var(--ease)}dialog.dialog::backdrop{background:color-mix(in srgb,var(--frame-bg) 32%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}html:has(dialog.dialog[open]){overflow:hidden}.dialog form,.dialog-body{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6)}.dialog h2{margin:0;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.dialog p{margin:0;color:var(--muted);line-height:1.6}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-2)}.dialog-actions .danger-left{margin-right:auto}.toast{position:fixed;left:50%;bottom:28px;z-index:100;max-width:min(80vw,560px);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--tip-bg);color:var(--tip-fg);font-size:var(--text-sm);font-weight:500;line-height:1.5;white-space:pre-line;box-shadow:var(--shadow-lg);transform:translate(-50%);animation:toast-in var(--dur) var(--ease)}.toast.error{background:var(--danger);color:var(--on-accent)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(max-width:1180px){.panel{padding:var(--space-3) var(--space-4) var(--space-4)}}@media(max-width:860px){.form-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root{--sidebar: var(--panel);--sidebar-2: var(--soft);--panel-soft: var(--input);--line: var(--border);--line-strong: var(--border-strong);--ink: var(--text);--hover: var(--input);--blue: var(--accent);--teal: var(--accent);--amber: var(--warn);--red: var(--danger);--green: var(--success);--shadow: var(--shadow-sm);--sidebar-width: var(--sidebar-w);--bbox-ok: #34c759;--bbox-warn: #ff453a;--bbox-halo: rgba(0, 0, 0, .35);--on-frame-muted: rgba(255, 255, 255, .62);--scrim: rgba(0, 0, 0, .4)}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.event-card,.row-button,.event-filter-menu-header button,.modal-filmstrip button,.sidebar-toggle,.admin-icon-button,.daily-camera-row-button{min-height:0}.event-card:hover:not(:disabled),.row-button:hover:not(:disabled),.event-filter-menu-header button:hover:not(:disabled),.modal-filmstrip button:hover:not(:disabled){background:transparent}.event-card:hover:not(:disabled){background:var(--panel)}.repeated-event-list button:active:not(:disabled){transform:translate(-50%)}.event-card:active:not(:disabled),.daily-camera-row-button:active:not(:disabled){transform:none}.app-shell{--sidebar-width: var(--sidebar-w);display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:100vh}.app-shell.sidebar-collapsed{--sidebar-width: var(--sidebar-w-collapsed)}.app-shell .sidebar{position:sticky;top:0;display:flex;flex-direction:column;gap:var(--space-3);height:100vh;border-right:1px solid var(--border);padding:0 var(--space-2) var(--space-3);color:var(--text);background:var(--sidebar)}.app-shell .brand{display:flex;align-items:center;gap:var(--space-2);min-height:var(--topbar-h);border-bottom:1px solid var(--border)}.app-shell .brand-mark{display:grid;place-items:center;flex:none;width:28px;height:28px;overflow:hidden;border-radius:var(--radius-sm);color:var(--on-accent);background:transparent}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.app-shell .brand strong,.app-shell .brand span{display:block}.app-shell .brand-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell .brand strong{overflow:hidden;color:var(--text);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;text-overflow:ellipsis}.app-shell .sidebar-toggle{display:grid;place-items:center;flex:none;width:36px;height:36px;margin-left:auto;border:0;border-radius:var(--radius-pill);padding:0;color:var(--muted);background:transparent;cursor:pointer}.app-shell .sidebar-toggle:hover:not(:disabled){color:var(--text);background:var(--input)}.nav-list{display:grid;gap:var(--space-3)}.nav-section{display:grid;gap:var(--space-1)}.nav-section-label{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-3);color:var(--muted);font-size:var(--text-xs);font-weight:600;line-height:1;white-space:nowrap}.nav-section-label:after{content:"";flex:1 1 auto;height:1px;background:var(--border)}.app-shell.sidebar-collapsed .sidebar{align-items:center;gap:var(--space-4);padding:0 var(--space-1) var(--space-3)}.app-shell.sidebar-collapsed .brand{display:flex;justify-content:center;width:100%}.app-shell.sidebar-collapsed .brand-text,.app-shell.sidebar-collapsed .brand-mark,.app-shell.sidebar-collapsed .nav-list button span{display:none}.app-shell.sidebar-collapsed .sidebar-toggle{margin:0}.app-shell.sidebar-collapsed .nav-list,.app-shell.sidebar-collapsed .nav-section{width:100%;gap:var(--space-2)}.app-shell.sidebar-collapsed .nav-section-label{display:block;width:26px;height:1px;margin:var(--space-1) auto 0;padding:0;overflow:hidden;color:transparent;font-size:0;background:var(--border)}.app-shell.sidebar-collapsed .nav-section-label:after{display:none}.nav-list button{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);height:var(--control-h);border:0;border-radius:var(--radius-sm);padding:0 var(--space-3);color:var(--muted);background:transparent;cursor:pointer;text-align:left;font-size:var(--text-sm);font-weight:500}.app-shell.sidebar-collapsed .nav-list button{justify-content:center;width:var(--control-h);padding:0;margin:0 auto}.nav-list button:hover:not(:disabled){color:var(--text);background:var(--input)}.nav-list button.active{color:var(--accent);background:var(--soft);font-weight:600}.nav-list button.active:hover:not(:disabled){color:var(--accent);background:var(--soft)}.nav-list button.active:before{content:"";position:absolute;left:0;top:var(--space-3);bottom:var(--space-3);width:3px;border-radius:2px;background:var(--accent)}.nav-list button.active svg{color:var(--accent)}.app-shell>.workspace{min-width:0;overflow-x:hidden;padding:var(--space-3)}.eventlog-main,.counting-page{display:grid;gap:var(--space-3)}.section-kicker{margin:0 0 var(--space-1);color:var(--muted);font-size:var(--text-xs);font-weight:600}h1,h2,h3,p{margin:0}h1{font-size:var(--text-xl);font-weight:700;line-height:1.2;letter-spacing:-.02em}h2{font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em}h3{font-size:var(--text-md);font-weight:600}.page-copy{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm);line-height:1.7}.filter-bar,.metric,.table-panel,.event-card-panel,.detail-drawer,.task-card,.disconnect-panel,.job-progress{border:0;border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.primary-button,.secondary-button,.review-actions button,.pagination button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:36px;border-radius:var(--radius-sm);padding:0 var(--space-3);font-size:var(--text-sm);font-weight:500;text-decoration:none;cursor:pointer}.primary-button{border:0;border-radius:var(--radius-md);padding:0 var(--space-4);color:var(--on-accent);background:var(--accent);font-weight:600}.primary-button:hover:not(:disabled){color:var(--on-accent);background:var(--accent-hover)}.secondary-button,.pagination button{border:1px solid var(--border);color:var(--text);background:var(--panel)}.secondary-button:hover:not(:disabled),.pagination button:hover:not(:disabled){background:var(--input)}.eventlog-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;align-items:start;min-width:0}.eventlog-main{display:flex;flex-direction:column;gap:var(--space-2);height:calc(100dvh - var(--topbar-h) - 2 * var(--space-3));min-width:0;min-height:0;overflow:hidden;padding:0}.eventlog-compact-toolbar{flex:0 0 auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);align-items:center;border:0;border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);background:var(--panel);box-shadow:var(--shadow-sm)}.counting-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-3);align-items:center;border:0;border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);background:var(--panel);box-shadow:var(--shadow-sm)}.eventlog-last-updated{position:absolute;bottom:var(--space-2);right:var(--space-3);margin:0;color:var(--muted);font-size:var(--text-xs);pointer-events:none;z-index:1}.counting-title-block{min-width:0}.counting-heading-row{display:flex;align-items:center;gap:var(--space-3);min-width:0}.counting-camera-meta{display:inline-flex;align-items:center;gap:6px;min-width:max-content;border-left:1px solid var(--line);padding-left:var(--space-3);color:var(--text);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.counting-camera-meta small{color:var(--muted);font-size:var(--text-xs);font-weight:600}.eventlog-compact-toolbar h1,.counting-toolbar h1{font-size:var(--text-lg);line-height:1.1}.eventlog-compact-toolbar .section-kicker,.counting-toolbar .section-kicker{margin-bottom:0;font-size:var(--text-xs)}.counting-toolbar .page-copy{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eventlog-compact-toolbar .time-preset-control{align-self:center;min-width:0}.eventlog-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:max-content}.counting-toolbar .header-actions{justify-content:flex-end;min-width:max-content}.shell-page-toolbar{display:flex;align-items:center;min-width:0;white-space:normal}.shell-page-toolbar:empty{display:none}.shell-page-toolbar .eventlog-compact-toolbar,.shell-page-toolbar .counting-toolbar{flex-wrap:nowrap;gap:var(--space-2);padding:0;border-radius:0;background:transparent;box-shadow:none}.shell-page-toolbar .eventlog-toolbar-actions,.shell-page-toolbar .counting-toolbar .header-actions{gap:var(--space-2)}.page-size-control{min-width:88px}.page-size-control select{height:var(--control-h)}.date-filter-popover,.event-filter-popover{position:relative;min-width:0;align-self:end;justify-self:end}.date-filter-trigger,.event-filter-trigger,.event-filter-menu-list button{display:inline-flex;align-items:center;gap:6px;border:1px solid transparent;border-radius:var(--radius-pill);padding:0 var(--space-3);color:var(--text);background:var(--input);cursor:pointer;font-size:var(--text-sm);font-weight:500;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.date-filter-trigger,.event-filter-trigger{height:var(--control-h);max-width:100%}.date-filter-trigger:hover:not(:disabled),.event-filter-trigger:hover:not(:disabled),.event-filter-menu-list button:hover:not(:disabled){border-color:var(--border-strong);background:var(--input)}.date-filter-trigger.active,.event-filter-trigger.active,.event-filter-menu-list button.active,.date-filter-trigger.active:hover:not(:disabled),.event-filter-trigger.active:hover:not(:disabled),.event-filter-menu-list button.active:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--soft);font-weight:600}.date-filter-trigger span,.event-filter-trigger span,.event-filter-menu-list button span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:var(--radius-pill);padding:0 7px;color:var(--muted);background:var(--input);font-size:var(--text-xs)}.date-filter-trigger.active span,.event-filter-trigger.active span,.event-filter-menu-list button.active span{color:var(--on-accent);background:var(--accent)}.realtime-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-pill);background:var(--danger);animation:realtime-pulse 1.6s ease-out infinite}.date-filter-trigger .realtime-dot{min-width:0;width:8px;height:8px;padding:0;background:currentColor}.realtime-hint{display:flex;align-items:center;gap:var(--space-2);margin:0;color:var(--muted);font-size:var(--text-xs)}@keyframes realtime-pulse{0%{box-shadow:0 0 0 0 var(--danger-soft)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}.date-filter-menu,.event-filter-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:20;display:grid;gap:var(--space-3);border:0;border-radius:var(--radius-lg);padding:var(--space-5);background:var(--panel);box-shadow:var(--shadow-lg);animation:menu-pop-in var(--dur) var(--ease)}.date-filter-menu{width:min(360px,calc(100vw - var(--sidebar-width) - 72px))}.event-filter-menu{width:min(430px,calc(100vw - var(--sidebar-width) - 72px))}.status-filter-menu{width:180px;padding:var(--space-4)}.date-filter-menu .time-preset-control{align-self:auto;grid-template-columns:repeat(5,minmax(0,1fr))}.date-filter-menu .time-preset-control button{padding:0 4px;white-space:nowrap}.date-filter-popover:has(.day-step-button){display:inline-flex;align-items:center;gap:4px}.day-step-button{display:inline-grid;place-items:center;width:var(--control-h);height:var(--control-h);border:1px solid transparent;border-radius:var(--radius-pill);padding:0;color:var(--text);background:var(--input);cursor:pointer}.day-step-button:hover:not(:disabled){border-color:var(--border-strong)}.day-step-button:disabled{opacity:.4;cursor:default}.date-filter-menu .eventlog-custom-range{display:grid;gap:7px;min-width:0}.date-filter-apply{justify-self:end;min-width:88px}.event-filter-menu-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.event-filter-menu-header div{display:grid;gap:3px}.event-filter-menu-header span{color:var(--muted);font-size:var(--text-xs)}.event-filter-menu-header button{border:0;border-radius:var(--radius-sm);padding:var(--space-1) var(--space-2);color:var(--accent);background:transparent;cursor:pointer;font-size:var(--text-sm);font-weight:600}.event-filter-menu-header button:hover:not(:disabled){background:var(--soft)}.event-filter-menu-list{display:flex;flex-wrap:wrap;gap:var(--space-2);max-height:260px;overflow-y:auto;padding-right:2px}.event-filter-menu-list button{min-height:32px}.event-filter-checkbox-list{display:grid;gap:2px;max-height:280px;overflow-y:auto;padding-right:2px}.event-filter-checkbox-item{display:flex;align-items:center;gap:var(--space-2);padding:6px var(--space-1);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-sm);line-height:1.4;-webkit-user-select:none;user-select:none}.event-filter-checkbox-item:hover{background:var(--hover)}.event-filter-checkbox-all{font-weight:600;border-bottom:1px solid var(--line);border-radius:0;margin-bottom:2px;padding-bottom:var(--space-2);position:sticky;top:0;background:var(--panel);z-index:1}.event-filter-checkbox-all:hover{background:var(--panel)}.event-filter-checkbox-item input[type=checkbox]{width:15px;height:15px;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.event-filter-checkbox-label{flex:1;min-width:0}.event-filter-checkbox-count{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;flex-shrink:0}.event-filter-done{justify-self:end;min-width:88px}.header-actions{display:flex;gap:var(--space-2)}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--space-3);align-items:end;padding:var(--space-4)}.filter-title{display:flex;align-items:center;gap:var(--space-2);align-self:center;color:var(--muted);font-size:var(--text-xs);font-weight:600}.filter-bar .primary-button{align-self:end}.counting-filters{grid-template-columns:minmax(180px,max-content) minmax(160px,max-content) auto;justify-content:end}.counting-toolbar .counting-filters{display:flex;align-items:end;justify-content:flex-end;gap:var(--space-3);height:var(--control-h);padding:0;border:0;background:transparent;box-shadow:none}.counting-date-filter{justify-self:start}.counting-date-filter .date-filter-trigger span,.counting-date-filter .date-filter-trigger.active span,.eventlog-compact-toolbar .date-filter-trigger span,.eventlog-compact-toolbar .date-filter-trigger.active span,.eventlog-compact-toolbar .event-filter-trigger span,.eventlog-compact-toolbar .event-filter-trigger.active span{min-width:0;height:auto;padding:0;background:transparent;color:inherit}.eventlog-time-filter{grid-template-columns:auto minmax(320px,360px) minmax(120px,auto);align-items:end}.wide-filter{grid-column:span 2}label{display:grid;gap:6px;color:var(--muted);font-size:var(--text-xs);font-weight:600}textarea{min-height:92px}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none}.time-range-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.time-preset-control{display:grid;grid-template-columns:repeat(4,minmax(64px,1fr));gap:var(--space-2);align-self:end}.time-preset-control button{height:var(--control-h);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:var(--input);cursor:pointer;font-size:var(--text-sm);font-weight:500}.time-preset-control button:hover:not(:disabled){color:var(--text);background:var(--input)}.time-preset-control button.active,.time-preset-control button.active:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--soft);font-weight:600}.eventlog-time-filter .eventlog-custom-range{grid-column:2 / 4;grid-row:2}.eventlog-time-filter .primary-button{grid-column:3;grid-row:1}.search-input{position:relative;display:block}.search-input svg{position:absolute;left:var(--space-3);top:50%;color:var(--muted);transform:translateY(-50%);pointer-events:none}.search-input input{padding-left:36px}.summary-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}.camera-in-hero{min-width:0}.camera-in-grid{display:grid;align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.camera-in-card{container:camera-card / inline-size;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;gap:0;min-width:0;height:100%;overflow:hidden;border:0;border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.camera-in-card>*{min-width:0;max-width:100%}.camera-in-card-summary{display:grid;gap:var(--space-2);width:100%;max-width:100%;min-width:0;overflow:hidden;border:0;padding:var(--space-4) var(--space-4) var(--space-3);color:inherit;background:transparent;text-align:left}.camera-in-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.camera-in-card-title{display:grid;gap:var(--space-1);min-width:0}.camera-in-meta{display:flex;flex-wrap:wrap;gap:0 var(--space-2);margin:0;color:var(--muted);font-size:var(--text-xs);font-weight:500;font-variant-numeric:tabular-nums}.camera-in-meta span+span:before{content:"·";margin-right:var(--space-2)}.camera-card-export-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:var(--space-1);min-height:28px;border:0;border-radius:var(--radius-sm);padding:0 var(--space-2);color:var(--accent);background:transparent;font:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer}.camera-card-export-button:hover:not(:disabled),.camera-card-export-button:focus-visible{background:var(--soft)}.camera-card-export-button:disabled{cursor:not-allowed}.camera-in-name{display:block;overflow:hidden;margin:0;color:var(--ink);font-size:var(--text-lg);font-weight:700;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.camera-in-original-name{margin-left:var(--space-2);color:var(--muted);font-size:var(--text-xs);font-weight:500}.camera-primary-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}.camera-primary-metrics>div{display:grid;gap:var(--space-1);min-width:0;border:0;border-radius:var(--radius-md);padding:var(--space-3);background:var(--input)}.camera-primary-metrics small{overflow:hidden;color:var(--muted);font-size:var(--text-sm);font-weight:600;text-overflow:ellipsis;white-space:nowrap}.camera-primary-metrics strong{color:var(--ink);font-size:36px;font-weight:700;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.camera-in-empty{grid-column:1 / -1;padding:var(--space-5);color:var(--muted);font-size:var(--text-sm);font-weight:600;text-align:center}.camera-outside-info{padding:0 var(--space-4) var(--space-4);background:var(--panel)}.daily-camera-table{display:grid;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid var(--border);border-radius:var(--radius-md);border-collapse:separate;border-spacing:0;color:var(--ink);background:var(--panel);font-size:var(--text-base);line-height:1.25;font-variant-numeric:tabular-nums}.daily-camera-table-head,.daily-camera-table-body{display:grid}.daily-camera-row{display:grid;grid-template-columns:118px repeat(2,minmax(0,1fr)) 104px;align-items:stretch;min-width:440px;border:0;border-bottom:1px solid var(--border);border-radius:0;padding:0;background:var(--panel)}.daily-camera-header-row{border-bottom-color:var(--border);color:var(--muted);background:var(--input);font-size:var(--text-base);font-weight:600;text-align:center}.daily-camera-header-row span{display:grid;place-items:center;min-width:0;border-left:1px solid var(--border);padding:5px var(--space-2);white-space:nowrap}.daily-camera-table-body>.daily-camera-row:last-child{border-bottom:0}.daily-camera-row-button{gap:0;width:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer}.daily-camera-row-button:hover,.daily-camera-row-button:focus-visible{background:var(--input)}.daily-camera-row-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.daily-camera-row-button[aria-expanded=true]{background:var(--soft)}.daily-camera-cell{display:grid;align-content:center;justify-items:center;min-width:0;overflow:hidden;border:0;border-left:1px solid var(--border);border-radius:0;padding:var(--space-2) 10px;text-align:center;white-space:nowrap}.daily-camera-cell:first-child,.daily-camera-header-row span:first-child{border-left:0}.daily-camera-table .date-badge{display:flex;align-items:center;justify-content:center;gap:var(--space-1);height:100%;min-height:28px;border-radius:0;color:var(--ink);background:transparent;font-size:var(--text-base);font-weight:700;white-space:nowrap}.daily-camera-expanded-row{display:block;border:0;border-top:0;border-bottom:1px solid var(--border);border-radius:0;margin:0;padding:10px 10px var(--space-3) var(--space-5);background:var(--input)}.daily-camera-expanded-cell{display:block;min-width:0}.daily-camera-expanded-row .daily-camera-row{border-radius:0;padding:0;background:var(--panel)}.daily-camera-expanded-row .daily-camera-table .date-badge{min-height:24px;font-size:var(--text-sm)}.daily-camera-expanded-row :where(.daily-camera-table) :where(.metric-value,.disconnect-pill){font-size:var(--text-md)}.daily-camera-table .metric-label{color:var(--muted);font-size:var(--text-xs);font-weight:600;line-height:1.1}.daily-camera-table .metric-value{color:var(--ink);font-size:var(--text-lg);font-weight:700;line-height:1.1;white-space:nowrap}.daily-camera-table .disconnect-pill{color:var(--ink);font-size:var(--text-base);font-weight:700;line-height:1.1;white-space:nowrap}.daily-camera-table .disconnect-pill.is-none{color:var(--muted);font-weight:400}.daily-camera-table .disconnect-pill.is-warning{border-radius:999px;padding:2px 6px;color:var(--danger);background:var(--danger-soft);font-size:var(--text-xs)}.daily-camera-table .date-badge-weekday{color:var(--muted);font-size:var(--text-xs);font-weight:500}.counting-today-tag{border-radius:999px;padding:0 6px;color:var(--accent);background:var(--soft);font-size:11px;font-weight:600;line-height:18px}.daily-camera-total-row,.daily-camera-total-row .daily-camera-cell{background:var(--input)}.daily-camera-total-row .date-badge{color:var(--muted)}@container camera-card (max-width: 520px){.camera-primary-metrics small{flex-wrap:wrap;gap:0 var(--space-2)}.camera-primary-metrics strong{font-size:32px}.daily-camera-row{grid-template-columns:76px repeat(2,minmax(0,1fr)) 96px;min-width:0}.daily-camera-table .date-badge{flex-wrap:wrap;row-gap:0}.daily-camera-header-row{font-size:var(--text-sm)}.daily-camera-header-row span{padding:5px var(--space-1)}.daily-camera-cell{padding:var(--space-2) 6px}.daily-camera-table .date-badge{font-size:var(--text-sm)}.daily-camera-table .metric-value,.daily-camera-table .disconnect-pill{font-size:var(--text-md)}.daily-camera-expanded-row{padding:var(--space-2) 6px var(--space-2) var(--space-2)}.daily-camera-expanded-row .daily-camera-table .date-badge{white-space:normal;text-align:center}}@container camera-card (max-width: 360px){.camera-primary-metrics strong{font-size:26px}.daily-camera-row{grid-template-columns:60px repeat(2,minmax(0,1fr)) 60px}.daily-camera-table .disconnect-pill.is-warning{white-space:normal;line-height:1.3}.daily-camera-header-row{font-size:var(--text-xs)}.daily-camera-header-row span{padding:4px 2px;white-space:normal;line-height:1.2}.daily-camera-cell{padding:6px 2px}.daily-camera-table .date-badge{gap:0;font-size:var(--text-xs)}.daily-camera-table .metric-value,.daily-camera-table .disconnect-pill,.daily-camera-expanded-row :where(.daily-camera-table) :where(.metric-value,.disconnect-pill){font-size:var(--text-sm)}.daily-camera-expanded-row{padding:6px 4px 6px 6px}}.metric{display:grid;gap:var(--space-1);padding:var(--space-4)}.metric span,.metric small,.subtle{color:var(--muted);font-size:var(--text-xs)}.metric strong{font-size:var(--text-xl)}.table-panel{min-width:0;overflow:hidden}.event-card-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);flex:1 1 auto;min-width:0;min-height:0;overflow:hidden}.table-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--line)}.table-panel-header h2{display:inline-flex;align-items:center;gap:var(--space-2)}.table-panel-header span{color:var(--muted);font-size:var(--text-sm)}.table-scroll{max-height:calc(100vh - 390px);min-height:360px;overflow:auto}.event-card-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;align-content:start;align-items:stretch;gap:var(--space-5) 14px;flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-4) var(--space-3);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.event-location-list{display:grid;grid-auto-rows:max-content;align-content:start;gap:var(--space-3);min-height:0;overflow-y:auto;padding:var(--space-3) var(--space-3) var(--space-4);scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.event-location-section{overflow:hidden;border:0;border-radius:var(--radius-lg);background:var(--input)}.event-location-header{display:flex;align-items:center;border-bottom:0;padding:var(--space-3) var(--space-4) 0;background:transparent}.event-location-title-row{display:flex;align-items:center;gap:var(--space-2);min-width:0}.event-location-pin{display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border:0;border-radius:var(--radius-sm);color:var(--on-accent);background:var(--accent)}.event-location-title-copy{min-width:0}.event-location-title-copy h2{margin:0;overflow:hidden;color:var(--text);font-size:var(--text-lg);font-weight:700;letter-spacing:-.01em;line-height:1.25;white-space:nowrap;text-overflow:ellipsis}.event-location-card-grid{overflow:visible;padding:var(--space-3) var(--space-4) var(--space-4);scrollbar-gutter:auto}.event-card{display:flex;flex-direction:column;align-self:stretch;position:relative;overflow:hidden;height:100%;min-height:0;align-items:stretch;justify-content:flex-start;gap:0;border:1px solid var(--border);border-radius:var(--radius-lg);padding:0;color:var(--text);background:var(--panel);cursor:pointer;text-align:left;box-shadow:var(--shadow-sm);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),transform var(--dur) var(--ease)}.event-card:hover,.selected-card{border-color:var(--accent);box-shadow:var(--shadow-lg)}.event-card:hover{transform:translateY(-2px)}.event-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.event-group-card{border-color:var(--border-strong)}.event-card.new-event-card{border-color:var(--warn);animation:new-event-glow 1.6s var(--ease) infinite}@keyframes new-event-glow{0%,to{box-shadow:0 0 0 0 var(--warn-soft)}50%{box-shadow:0 0 0 8px var(--warn-soft)}}.event-card-new-badge{position:absolute;top:var(--space-2);left:var(--space-2);z-index:2;padding:2px 10px;border-radius:var(--radius-pill);background:var(--warn);color:var(--on-accent);font-size:var(--text-md);font-weight:700;letter-spacing:1px;box-shadow:var(--shadow-sm);animation:new-event-badge-pop var(--dur) var(--ease)}@keyframes new-event-badge-pop{0%{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}@media(prefers-reduced-motion:reduce){.event-card.new-event-card,.event-card-new-badge{animation:none}}.event-group-card .event-card-image:after{content:"";position:absolute;top:var(--space-2);right:var(--space-2);z-index:2;width:34px;height:22px;border:1px solid rgba(255,255,255,.72);border-radius:4px;background:#ffffff2e;box-shadow:-4px 4px #ffffff38,-8px 8px #ffffff24}.event-card-image{position:relative;display:block;flex:0 0 auto;overflow:hidden;width:100%;height:auto;min-height:0;aspect-ratio:16 / 9;background:var(--frame-bg)}.image-state{position:absolute;inset:0;display:grid;place-items:center;color:var(--on-frame-muted);background:var(--frame-bg);font-size:var(--text-xs);font-weight:600}.event-card-image img,.media-frame img{display:block;width:100%;height:100%}.event-card-image img{position:absolute;inset:0;object-fit:cover}.event-card-body{position:relative;z-index:1;display:flex;flex-direction:column;flex:1 1 auto;gap:10px;min-height:0;padding:var(--space-4) var(--space-4) var(--space-5);background:var(--panel)}.event-card-id{color:var(--accent);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.event-card-title{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--space-2);min-width:0;line-height:1.3}.event-card-title-text{display:-webkit-box;min-width:0;max-width:100%;white-space:normal;overflow:hidden;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.event-card-duration,.event-modal-duration{flex:0 0 auto;border:0;border-radius:var(--radius-pill);padding:3px 10px;color:var(--accent);background:var(--soft);font-size:var(--text-md);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.3;white-space:nowrap}.event-card-time{color:var(--muted);white-space:normal;font-size:var(--text-lg);font-variant-numeric:tabular-nums;line-height:1.45}.event-card-description{display:-webkit-box;white-space:normal;overflow:hidden;color:var(--text);font-size:var(--text-lg);line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.event-card-camera{display:flex;align-items:flex-start;gap:var(--space-2);margin-top:auto;padding-top:10px;overflow:hidden;color:var(--text);font-size:var(--text-lg);font-weight:600;line-height:1.4}.event-card-camera svg{flex:none;margin-top:2px}.event-card-camera-name{display:-webkit-box;min-width:0;overflow:hidden;overflow-wrap:anywhere;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.event-card-repeat-strip{position:relative;display:block;width:100%;height:16px;margin-top:var(--space-1)}.event-card-repeat-strip:before{content:"";position:absolute;top:var(--space-2);right:3px;left:3px;height:2px;border-radius:var(--radius-pill);background:var(--border-strong)}.event-card-repeat-strip i{position:absolute;top:5px;width:8px;height:8px;border:2px solid var(--panel);border-radius:var(--radius-pill);background:var(--accent);box-shadow:0 0 0 1px var(--soft);transform:translate(-50%)}.empty-card-list{grid-column:1 / -1;display:grid;place-items:center;min-height:260px;color:var(--muted)}.counting-table-scroll{max-height:calc(100vh - 470px)}.counting-event-scroll{max-height:440px}table{width:100%;min-width:940px;border-collapse:collapse;font-size:var(--text-sm)}th,td{padding:11px var(--space-3);border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}th{position:sticky;top:0;z-index:1;color:var(--muted);background:var(--input);font-size:var(--text-xs);font-weight:600}td{font-variant-numeric:tabular-nums}td strong,td span{display:block}.selected-row{background:var(--soft)}.row-button{display:block;border:0;padding:0;color:var(--text);background:transparent;cursor:pointer;text-align:left}.row-button:hover strong{color:var(--accent)}.empty-cell,.no-media{color:var(--muted);text-align:center}.no-media{display:grid;place-items:center;gap:var(--space-2);width:100%;height:100%}.status-pill{display:inline-flex;align-items:center;gap:6px;width:max-content;border-radius:var(--radius-pill);padding:var(--space-1) 9px;font-size:var(--text-xs);font-weight:600}.status-tbc{color:var(--warn);background:var(--warn-soft)}.status-confirmed{color:var(--success);background:var(--success-soft)}.status-false-alarm{color:var(--danger);background:var(--danger-soft)}.status-count-chip{display:inline-flex;border-radius:var(--radius-pill);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.event-card-status-summary{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.modal-status-summary{display:flex;flex-wrap:wrap;gap:6px}.pagination{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);border:0;border-radius:var(--radius-lg);padding:var(--space-1) var(--space-4);color:var(--text);background:var(--panel);box-shadow:var(--shadow-sm);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.pagination-summary{min-width:max-content;color:var(--text);font-weight:600}.pagination-controls{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);min-width:0}.page-select-control{display:inline-flex;align-items:center;gap:var(--space-2);min-width:max-content;color:var(--muted);font-size:var(--text-sm);font-weight:600}.page-select-control select{width:86px;height:36px;min-height:36px;padding:0 28px 0 var(--space-3);color:var(--text);background:var(--input)}.page-number-group{display:inline-flex;gap:2px;overflow:hidden;border:0;border-radius:var(--radius-sm);padding:3px;background:var(--input)}.page-number-group button{width:42px;min-width:42px;min-height:30px;border:0;border-radius:6px;padding:0;color:var(--muted);background:transparent;cursor:pointer;font-variant-numeric:tabular-nums}.page-number-group button.active{color:var(--on-accent);background:var(--blue);font-weight:600;box-shadow:var(--shadow-sm)}.page-number-group button:not(:disabled):hover{color:var(--text);background:var(--panel)}.page-number-group button.active:not(:disabled):hover{background:var(--accent)}.page-number-group button:disabled{cursor:not-allowed}.page-arrow svg{pointer-events:none}.detail-drawer{position:sticky;top:28px;display:grid;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);max-height:calc(100vh - 56px);overflow:auto}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.drawer-head h2{margin-top:var(--space-1)}.drawer-head h2 .event-modal-duration{display:inline-block;margin-left:var(--space-2);vertical-align:middle}.status-line{color:var(--muted);font-size:var(--text-sm);font-weight:700}.media-frame{position:relative;display:grid;place-items:center;aspect-ratio:var(--frame-ratio, 1.7778);overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--frame-bg)}.media-frame img{object-fit:contain}.bbox{position:absolute;border:2px solid var(--bbox-ok);border-radius:3px;box-shadow:0 0 0 1px var(--bbox-halo)}.bbox.bbox-warning{border-color:var(--bbox-warn)}.bbox-label{position:absolute;display:block;left:0;top:-4px;width:max-content;max-width:min(280px,calc(100vw - 56px));transform:translateY(-100%);border-radius:4px;padding:2px 5px;color:var(--bbox-ok);background:transparent;font-size:10px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15;text-shadow:0 0 4px rgba(0,0,0,.9),0 1px 2px rgba(0,0,0,.8);overflow-wrap:anywhere;white-space:normal;z-index:2}.bbox.bbox-warning .bbox-label{color:var(--bbox-warn)}.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);margin:0}.detail-list div,.objects-panel,.review-panel{border:0;border-radius:var(--radius-md);padding:var(--space-3);background:var(--input)}.detail-list dt{color:var(--muted);font-size:var(--text-xs);font-weight:600}.detail-list dd{margin:var(--space-1) 0 0;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.objects-panel{display:grid;gap:var(--space-2)}.review-panel{display:grid;gap:var(--space-3);border:0;border-radius:var(--radius-md);padding:var(--space-4);background:var(--input)}.review-panel h3{font-size:var(--text-lg);font-weight:700}.review-feedback{margin:0;font-size:var(--text-sm);color:var(--muted)}.review-feedback-ok{color:var(--success);font-weight:600}.review-feedback-error{color:var(--danger);font-weight:600}.vlm-panel{display:grid;gap:var(--space-3);border:0;border-radius:var(--radius-md);padding:var(--space-4);background:var(--input)}.vlm-panel h3{font-size:var(--text-lg);font-weight:700}.vlm-flow-card{display:grid;gap:var(--space-3)}.review-status-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.review-panel-readonly .review-status-options{display:flex}.review-status-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--panel);font-size:var(--text-sm);font-weight:700;transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.review-status-button.status-tbc:hover:not(:disabled){border-color:var(--warn);background:var(--warn-soft)}.review-status-button.status-confirmed:hover:not(:disabled){border-color:var(--success);background:var(--success-soft)}.review-status-button.status-false-alarm:hover:not(:disabled){border-color:var(--danger);background:var(--danger-soft)}.review-status-button.active,.review-status-button.active:hover:not(:disabled){border-color:transparent;color:var(--on-accent)}.review-status-button.status-tbc.active{background:var(--warn)}.review-status-button.status-confirmed.active{background:var(--success)}.review-status-button.status-false-alarm.active{background:var(--danger)}.review-status-button:disabled{opacity:.6;cursor:progress}.review-status-button kbd{min-width:18px;border:1px solid currentColor;border-radius:4px;padding:0 4px;font:600 10px/16px var(--font-mono, ui-monospace, monospace);opacity:.55}.review-note-input{min-height:64px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--panel);font-size:var(--text-sm);resize:vertical}.review-note-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.review-note-hint{color:var(--muted);font-size:var(--text-xs)}.review-note-hint.review-note-dirty{color:var(--warn);font-weight:600}.review-note-actions button{flex:0 0 auto}.vlm-panel-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--space-1) var(--space-3)}.vlm-subject{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.vlm-summary{display:grid;gap:var(--space-1);border-radius:var(--radius-sm);padding:var(--space-3);background:var(--panel)}.vlm-summary-label{color:var(--muted);font-size:var(--text-xs);font-weight:600}.vlm-summary p{margin:0;color:var(--text);font-size:var(--text-sm);line-height:1.65;overflow-wrap:anywhere}.vlm-flags{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-2);margin:0;padding:0;list-style:none}.vlm-flag{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--panel)}.vlm-flag .vlm-row-key{color:var(--text)}.vlm-flag-value{flex:0 0 auto;border-radius:var(--radius-pill);padding:1px var(--space-2);color:var(--muted);background:var(--input);font-size:var(--text-xs);font-weight:700}.vlm-flag.value-boolean-true{box-shadow:inset 0 0 0 1px var(--danger-soft)}.vlm-flag.value-boolean-true .vlm-flag-value{color:var(--danger);background:var(--danger-soft)}.vlm-flag.value-boolean-false .vlm-row-key{color:var(--muted)}.vlm-result-rows{display:grid;gap:var(--space-2);margin:0}.vlm-result-row{display:grid;grid-template-columns:minmax(96px,.4fr) minmax(0,1fr);gap:var(--space-2)}.vlm-result-row dd{margin:0}.vlm-row-key{color:var(--muted);font-size:var(--text-xs);line-height:1.45;overflow-wrap:anywhere}.vlm-row-value{color:var(--text);font-size:var(--text-xs);font-weight:600;line-height:1.55;overflow-wrap:anywhere}.vlm-source{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin:0;color:var(--muted);font-size:11px}.vlm-group-panel{display:grid;min-width:0;gap:var(--space-3);border-radius:var(--radius-md);padding:var(--space-4);background:var(--input)}.vlm-group-panel h3{font-size:var(--text-lg);font-weight:700}.vlm-group-sentence{margin:0;border-radius:var(--radius-sm);padding:var(--space-3);background:var(--panel);font-size:var(--text-sm);line-height:1.7;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.vlm-group-flags{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.vlm-group-flags li{display:grid;gap:var(--space-1);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--panel)}.vlm-group-flag-head{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--text-sm)}.vlm-group-flag-label{font-weight:600}.vlm-group-ongoing{margin-left:var(--space-2);border-radius:var(--radius-pill);padding:1px 6px;color:var(--danger);background:var(--danger-soft);font-size:11px;font-weight:700;vertical-align:1px}.vlm-group-flag-count{color:var(--danger);font-size:var(--text-xs);font-weight:700;font-variant-numeric:tabular-nums}.vlm-group-cells{display:flex;flex-wrap:wrap;gap:3px}.vlm-group-cell{width:14px;min-height:14px;height:14px;border:0;border-radius:3px;padding:0;background:var(--border-strong)}.vlm-group-cell.is-yes{background:var(--danger)}.vlm-group-cell:hover:not(:disabled){background:var(--muted)}.vlm-group-cell.is-yes:hover:not(:disabled){background:var(--danger);opacity:.75}.vlm-group-cell.is-current{outline:2px solid var(--accent);outline-offset:1px}.vlm-group-times{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.vlm-group-never{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-3);margin:0;color:var(--muted);font-size:var(--text-xs)}.vlm-group-never span{font-weight:600}.object-chips{display:flex;flex-wrap:wrap;gap:6px}.object-chip{border-radius:var(--radius-pill);padding:var(--space-1) 10px;color:var(--success);background:var(--success-soft);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.object-chip.warning{color:var(--warn);background:var(--warn-soft)}pre{max-height:160px;overflow:auto;margin:0;font:var(--text-xs) / 1.7 var(--font-mono);white-space:pre-wrap}.review-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.review-actions button{border:1px solid var(--border);color:var(--text);background:var(--panel)}.empty-detail{display:grid;place-items:center;gap:var(--space-2);min-height:420px;color:var(--muted);text-align:center}.empty-detail h2{color:var(--text)}.empty-detail p{max-width:260px;font-size:var(--text-sm);line-height:1.7}.modal-backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:28px;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.event-modal{display:grid;gap:var(--space-4);width:min(1180px,100%);max-height:calc(100vh - 56px);overflow:auto;border:0;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6) var(--space-6);color:var(--text);background:var(--panel);box-shadow:var(--shadow-lg);animation:menu-pop-in var(--dur) var(--ease);overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.modal-head{border-bottom:1px solid var(--line);padding-bottom:var(--space-4)}.modal-head h2{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.modal-head p{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm)}.modal-head-text{min-width:0}.modal-head .event-switch-actions button:disabled{opacity:.35}.modal-close-button{width:36px;min-height:36px;border:0;border-radius:var(--radius-pill);padding:0;color:var(--muted);background:transparent}.modal-close-button:hover:not(:disabled){color:var(--text);background:var(--input)}.media-caption{display:inline-flex;align-items:center;gap:var(--space-2);min-width:0;color:var(--muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.media-caption-index{border-radius:var(--radius-pill);padding:2px var(--space-2);color:var(--accent);background:var(--soft);font-size:var(--text-xs);font-weight:700}.media-bbox-toggle{width:34px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:0;background:var(--panel)}.media-bbox-toggle[aria-pressed=true]{color:var(--accent)}.modal-head-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:var(--space-2)}.event-modal-content{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);gap:var(--space-4)}.event-modal .media-frame{align-self:start;min-height:420px;overflow:visible}.event-image-column{display:grid;align-content:start;gap:var(--space-3);min-width:0}.event-switch-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.event-switch-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px var(--space-3);color:var(--text);background:var(--panel);cursor:pointer;font-size:var(--text-xs);font-weight:600;transition:transform var(--dur-fast) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.event-switch-actions button:hover:not(:disabled){transform:translateY(-1px);border-color:var(--border-strong);background:var(--input);box-shadow:var(--shadow-sm)}.event-switch-actions button:active:not(:disabled){transform:translateY(0);background:var(--input)}.event-switch-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.event-switch-actions button:disabled{cursor:not-allowed}.media-frame-shell{display:grid;align-content:start;gap:10px;min-width:0}.media-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.media-download-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2);margin-left:auto}.media-download-actions button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px var(--space-3);color:var(--text);background:var(--panel);cursor:pointer;font-size:var(--text-xs);font-weight:600;transition:transform var(--dur-fast) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.media-download-actions button:hover{transform:translateY(-1px);border-color:var(--border-strong);background:var(--input);box-shadow:var(--shadow-sm)}.media-download-actions button:active{transform:translateY(0);background:var(--input)}.media-download-actions button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.media-download-actions button:disabled{cursor:not-allowed}.event-modal-side{display:grid;align-content:start;gap:var(--space-3);min-width:0}.detail-loading-banner{display:flex;align-items:center;gap:var(--space-2);border:0;border-radius:var(--radius-md);padding:10px var(--space-3);color:var(--accent);background:var(--soft);font-size:var(--text-sm);font-weight:600}.detail-loading-banner:before{content:"";width:14px;height:14px;flex:0 0 auto;border:2px solid var(--soft);border-top-color:var(--accent);border-radius:var(--radius-pill);animation:detail-spin .9s linear infinite}@keyframes detail-spin{to{transform:rotate(360deg)}}.repeated-event-timeline{display:grid;gap:var(--space-3);min-width:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);background:var(--input)}.repeated-event-count{margin-left:var(--space-2);color:var(--muted);font-size:var(--text-xs);font-weight:600}.modal-filmstrip{display:flex;gap:var(--space-2);margin:0;padding:2px 2px var(--space-1);list-style:none;overflow-x:auto;scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.modal-filmstrip li{flex:0 0 auto}.modal-filmstrip button{display:grid;justify-items:center;gap:var(--space-1);border:0;padding:0;background:transparent}.modal-filmstrip button:active:not(:disabled){transform:none}.modal-filmstrip-thumb{position:relative;display:grid;place-items:center;width:112px;aspect-ratio:16 / 9;overflow:hidden;border:2px solid transparent;border-radius:var(--radius-sm);color:var(--muted);background:var(--panel);opacity:.7;transition:opacity var(--dur) var(--ease),border-color var(--dur) var(--ease)}.modal-filmstrip-thumb img{width:100%;height:100%;object-fit:cover}.modal-filmstrip button:hover .modal-filmstrip-thumb,.modal-filmstrip button:focus-visible .modal-filmstrip-thumb{opacity:1;border-color:var(--border-strong)}.modal-filmstrip button.active .modal-filmstrip-thumb{opacity:1;border-color:var(--accent)}.modal-strip-dot{position:absolute;top:4px;right:4px;width:10px;height:10px;border:2px solid var(--panel);border-radius:50%}.modal-strip-time{color:var(--muted);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.modal-strip-place{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap}.modal-filmstrip button.active .modal-strip-time{color:var(--accent)}.repeated-event-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.repeated-event-head h3{margin:0;color:var(--ink);font-size:var(--text-md);font-weight:700}.repeated-event-range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:var(--space-3);border:0;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);background:var(--input)}.repeated-event-range-label{overflow:hidden;color:var(--muted);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.repeated-event-range-label:last-child{justify-self:end;text-align:right}.repeated-event-track{position:relative;min-height:88px;overflow:visible;margin:2px 38px 0}.repeated-event-list{position:relative;min-height:88px;overflow:visible;margin:0;padding:0;list-style:none}.repeated-event-list:before{content:"";position:absolute;left:0;right:0;top:24px;height:4px;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--border),var(--soft) 50%,var(--border));box-shadow:inset 0 0 0 1px var(--border)}.repeated-event-list li{position:static;z-index:1}.repeated-event-ticks{position:absolute;inset:0;z-index:2;pointer-events:none}.repeated-event-tick{position:absolute;top:24px;width:1px;height:27px;background:var(--border-strong);transform:translate(-50%)}.repeated-event-tick-label{position:absolute;top:30px;left:50%;border-radius:4px;padding:1px var(--space-1);color:var(--muted);background:var(--panel);font-size:10px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap;transform:translate(-50%)}.timeline-tick-edge-start .repeated-event-tick-label{left:8px;transform:none}.timeline-tick-edge-end .repeated-event-tick-label{right:8px;left:auto;transform:none}.repeated-event-list button{position:absolute;top:var(--space-2);z-index:3;display:grid;grid-template-rows:22px auto;place-items:center;gap:5px;width:70px;min-height:64px;border:1px solid transparent;border-radius:var(--radius-sm);padding:0;color:var(--text);background:transparent;cursor:pointer;transform:translate(-50%);transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.repeated-event-list button:hover,.repeated-event-list button:focus-visible,.repeated-event-list button.active{border-color:var(--border);background:var(--panel);box-shadow:var(--shadow-lg);z-index:3}.repeated-event-dot{width:16px;height:16px;align-self:center;border:2px solid var(--accent);border-radius:var(--radius-pill);background:var(--panel);box-shadow:0 0 0 5px var(--panel)}.repeated-event-list button.active .repeated-event-dot{border-color:var(--accent);background:var(--accent)}.repeated-event-time{display:inline-flex;align-items:center;justify-content:center;max-width:68px;min-height:18px;border-radius:var(--radius-sm);padding:1px var(--space-1);color:var(--muted);background:var(--panel);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1.25;white-space:nowrap}.repeated-event-list button.active .repeated-event-time{color:var(--accent);background:var(--soft)}.repeated-event-tooltip{position:absolute;left:50%;bottom:calc(100% - 4px);z-index:5;border:0;border-radius:var(--radius-sm);padding:6px var(--space-2);color:var(--tip-fg);background:var(--tip-bg);box-shadow:var(--shadow-lg);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums;line-height:1;opacity:0;pointer-events:none;transform:translate(-50%,4px);transition:opacity var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease);white-space:nowrap}.repeated-event-tooltip:after{content:"";position:absolute;left:50%;top:100%;width:8px;height:8px;background:var(--tip-bg);transform:translate(-50%,-4px) rotate(45deg)}.repeated-event-list button:hover .repeated-event-tooltip,.repeated-event-list button:focus-visible .repeated-event-tooltip{opacity:1;transform:translate(-50%)}.timeline-edge-start .repeated-event-tooltip{left:50%;transform:translateY(4px)}.timeline-edge-start .repeated-event-tooltip:after{left:12px}.repeated-event-list button.timeline-edge-start:hover .repeated-event-tooltip,.repeated-event-list button.timeline-edge-start:focus-visible .repeated-event-tooltip{transform:translate(0)}.timeline-edge-end .repeated-event-tooltip{right:50%;left:auto;transform:translateY(4px)}.timeline-edge-end .repeated-event-tooltip:after{right:12px;left:auto}.repeated-event-list button.timeline-edge-end:hover .repeated-event-tooltip,.repeated-event-list button.timeline-edge-end:focus-visible .repeated-event-tooltip{transform:translate(0)}.job-progress{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4);color:var(--muted);font-size:var(--text-sm);font-weight:600}.job-progress span{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.job-progress strong{color:var(--ink);font-variant-numeric:tabular-nums}.job-progress div{overflow:hidden;height:8px;border-radius:var(--radius-pill);background:var(--input)}.job-progress i,.volume-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent)}.job-progress.indeterminate i{width:40%;animation:progress-slide 1.2s ease-in-out infinite}.task-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:var(--space-3)}.counting-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--space-3)}.counting-class-card{display:grid;gap:var(--space-1);border:0;border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);background:var(--panel);box-shadow:var(--shadow-sm)}.counting-class-card span,.counting-class-card small{color:var(--muted);font-size:var(--text-xs)}.counting-class-card strong{font-size:var(--text-xl);font-weight:700;font-variant-numeric:tabular-nums}.muted-card{color:var(--muted)}.counting-chart-panel{overflow:hidden}.counting-chart-scroll{display:grid;gap:var(--space-2);max-height:430px;overflow:auto;padding:var(--space-3) var(--space-4) var(--space-4)}.counting-chart-row{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(260px,2fr) auto;gap:var(--space-3);align-items:center;border:0;border-radius:var(--radius-md);padding:var(--space-3);background:var(--input)}.chart-row-meta{display:grid;gap:var(--space-1);min-width:0}.chart-row-meta strong{font-size:var(--text-sm);font-weight:600}.chart-row-meta span,.counting-chart-row small{color:var(--muted);font-size:var(--text-xs)}.chart-bars{display:grid;gap:6px}.chart-bar-line{display:grid;grid-template-columns:36px minmax(120px,1fr) 64px;gap:var(--space-2);align-items:center;color:var(--muted);font-size:var(--text-xs);font-weight:600}.chart-bar{display:block;height:10px;min-width:4px;border-radius:var(--radius-pill)}.chart-bar.in,.chart-bar.out{background:var(--accent)}.chart-bar-line strong{color:var(--text);text-align:right;font-variant-numeric:tabular-nums}.empty-chart{display:grid;place-items:center;min-height:160px;color:var(--muted);font-size:var(--text-sm)}.task-card{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4)}.task-card strong,.task-card span{display:block}.task-card span{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-xs)}.task-status{width:max-content;border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);color:var(--success);background:var(--success-soft);font-size:var(--text-xs);font-weight:600;white-space:nowrap}.task-status.disconnected{color:var(--danger);background:var(--danger-soft)}.volume-bar{display:block;overflow:hidden;width:120px;max-width:100%;height:8px;border-radius:var(--radius-pill);background:var(--input)}.disconnect-panel{overflow:hidden}.disconnect-list{display:grid;gap:var(--space-2);padding:var(--space-3) var(--space-4) var(--space-4)}.disconnect-list div{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(220px,2fr) auto;gap:var(--space-3);align-items:center;border:0;border-radius:var(--radius-md);padding:10px var(--space-3);background:var(--input);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.disconnect-list span{color:var(--muted)}.disconnect-list small{color:var(--warn);font-weight:600}@keyframes progress-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}.error-banner{border:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--danger);background:var(--danger-soft);font-size:var(--text-sm);font-weight:600}.export-status-banner{border:0;border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);color:var(--accent);background:var(--soft);font-size:var(--text-sm);font-weight:600}@media(max-width:1180px){.eventlog-layout{grid-template-columns:1fr}.detail-drawer{position:static;max-height:none}.filter-bar,.summary-row,.counting-filters,.eventlog-time-filter,.camera-in-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.event-filter-popover{grid-column:auto}.eventlog-toolbar-actions{grid-column:auto;justify-content:flex-end}.eventlog-compact-toolbar .eventlog-custom-range{grid-column:1 / -1}.event-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.eventlog-time-filter .primary-button,.eventlog-time-filter .eventlog-custom-range{grid-column:auto;grid-row:auto}.event-modal-content{grid-template-columns:1fr}.event-modal .media-frame{min-height:0}}@media(max-width:780px){.app-shell,.app-shell.sidebar-collapsed{grid-template-columns:1fr}.app-shell .sidebar{position:static;height:auto}.app-shell.sidebar-collapsed .sidebar{align-items:stretch;padding:0 var(--space-2) var(--space-3)}.app-shell.sidebar-collapsed .brand{display:flex;justify-content:flex-start;min-height:var(--topbar-h)}.app-shell.sidebar-collapsed .brand-text,.app-shell.sidebar-collapsed .brand-mark,.app-shell.sidebar-collapsed .nav-list button span,.app-shell.sidebar-collapsed .nav-section-label{display:block}.app-shell.sidebar-collapsed .nav-list,.app-shell.sidebar-collapsed .nav-section{width:auto;gap:var(--space-3)}.app-shell.sidebar-collapsed .nav-section{gap:var(--space-1)}.app-shell.sidebar-collapsed .nav-section-label{display:flex;width:auto;height:auto;margin:0;padding:0 var(--space-3);overflow:visible;color:var(--muted);font-size:var(--text-xs);background:transparent}.app-shell.sidebar-collapsed .nav-section-label:after{display:block}.app-shell.sidebar-collapsed .nav-list button{justify-content:flex-start;width:auto;padding:0 var(--space-3)}.app-shell.sidebar-collapsed .sidebar-toggle{margin-left:auto}.app-shell>.workspace{padding:var(--space-3)}.eventlog-main{height:auto;min-height:0;overflow:visible}.header-actions{display:grid}.filter-bar,.summary-row,.counting-filters,.eventlog-time-filter,.time-range-inputs,.detail-list,.wide-filter{grid-template-columns:1fr;grid-column:auto}.eventlog-toolbar-actions{display:grid;grid-template-columns:1fr 1fr}.counting-toolbar .header-actions,.counting-toolbar .counting-filters{display:grid;grid-column:auto;grid-row:auto;grid-template-columns:1fr;min-width:0}.eventlog-compact-toolbar .eventlog-custom-range{min-width:0}.eventlog-compact-toolbar,.counting-toolbar{flex-direction:column;align-items:stretch}.eventlog-compact-toolbar .date-filter-popover,.eventlog-compact-toolbar .event-filter-popover{justify-self:auto}.eventlog-compact-toolbar,.counting-toolbar,.pagination{position:static;inset:auto}.pagination{align-items:stretch;flex-direction:column}.pagination-summary{min-width:0}.pagination-controls{justify-content:space-between;flex-wrap:wrap}.page-number-group{max-width:100%;overflow-x:auto}.date-filter-popover,.event-filter-popover{width:100%}.date-filter-trigger,.event-filter-trigger{justify-content:center;width:100%}.date-filter-menu,.event-filter-menu{right:0;width:min(100%,430px)}.status-filter-menu{width:180px}.event-card-panel{display:block;overflow:visible}.event-location-list{overflow-y:visible;padding:0}.event-location-header{padding:var(--space-3)}.event-card-grid{grid-template-columns:1fr;overflow-y:visible}.time-preset-control{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card-grid{grid-template-columns:1fr;padding:var(--space-3)}.camera-in-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.camera-in-card-summary{padding:var(--space-2)}.camera-in-card-header{gap:6px}.camera-in-meta{column-gap:var(--space-3)}.camera-in-meta span+span:before{content:none}.camera-card-export-button{min-height:26px;padding:0 6px;font-size:var(--text-xs)}.camera-in-name{font-size:var(--text-base);line-height:1.25;white-space:normal}.camera-primary-metrics{grid-template-columns:1fr;gap:6px}.camera-primary-metrics>div{padding:var(--space-2)}.camera-primary-metrics small{display:grid;grid-template-columns:1fr;gap:2px;font-size:var(--text-xs);line-height:1.15;white-space:normal}.camera-primary-metrics strong{font-size:32px}.modal-backdrop{align-items:stretch;padding:var(--space-3)}.event-modal{max-height:calc(100vh - 24px);padding:var(--space-4)}.modal-head,.modal-head-actions{display:grid}.disconnect-list div,.counting-chart-row,.chart-bar-line{grid-template-columns:1fr}.chart-bar-line strong{text-align:left}}.admin-page{display:flex;flex-direction:column;gap:var(--space-3);width:100%;max-width:100%;height:calc(100vh - 28px);overflow-y:auto;padding-bottom:var(--space-6)}.admin-title-block h1{font-size:var(--text-xl)}.admin-card{display:grid;gap:var(--space-4);border:0;border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5) var(--space-5)}.admin-card-head{display:flex;align-items:flex-start;gap:var(--space-3)}.admin-card-head h2{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;line-height:1.2}.admin-card-head svg{box-sizing:content-box;flex:0 0 auto;margin-top:0;padding:5px;border-radius:var(--radius-sm);color:var(--on-accent);background:var(--accent)}.admin-card-head p{margin-top:var(--space-1);color:var(--muted);font-size:var(--text-sm);line-height:1.7}.admin-checkbox-list{max-height:320px;overflow-y:auto}.admin-search-input{position:relative;display:flex;align-items:center;flex:1 1 220px}.admin-search-input svg{position:absolute;left:var(--space-3);color:var(--muted);pointer-events:none}.admin-search-input input{padding-left:36px}.admin-number-field{max-width:260px}.admin-actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap}.admin-inline-status{padding:var(--space-2) var(--space-3)}.admin-field-row{display:flex;gap:var(--space-3) var(--space-4);flex-wrap:wrap}.admin-field-row>label{flex:1 1 160px;max-width:320px}.admin-task-profile-list{display:grid;gap:var(--space-3)}.admin-task-profile-card{display:grid;gap:var(--space-3);border:0;border-radius:var(--radius-md);padding:var(--space-4);background:var(--input)}.admin-task-profile-card :is(input,select,textarea){background:var(--panel)}.admin-task-profile-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.admin-task-profile-head h3{margin:0;font-size:var(--text-base);font-weight:600;color:var(--text)}.admin-event-row-list{display:grid;gap:var(--space-2)}.admin-event-row{display:flex;align-items:flex-end;gap:var(--space-2);flex-wrap:wrap}.admin-event-row>label{flex:1 1 140px;max-width:220px}.admin-icon-button{display:inline-flex;align-items:center;gap:6px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--accent);height:32px;padding:0 var(--space-2);cursor:pointer;font-size:var(--text-sm);font-weight:600}.admin-icon-button:hover:not(:disabled){color:var(--accent);background:var(--soft)}.admin-icon-button.danger{color:var(--danger)}.admin-icon-button.danger:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.admin-locked{align-items:center;justify-items:center;text-align:center;padding:40px var(--space-5);color:var(--muted)}.admin-locked svg{color:var(--border-strong)}.admin-password-modal{width:min(380px,100%);border:0;border-radius:var(--radius-lg);padding:var(--space-6);color:var(--text);background:var(--panel);box-shadow:var(--shadow-lg);display:grid;gap:var(--space-4);animation:menu-pop-in var(--dur) var(--ease)}.login-screen{min-height:100vh;display:grid;place-items:center;background:var(--bg);padding:var(--space-6)}.login-screen-card{width:min(380px,100%);border:0;border-radius:var(--radius-lg);padding:var(--space-6);background:var(--panel);box-shadow:var(--shadow-lg);display:grid;gap:var(--space-4)}.admin-password-head{display:flex;align-items:center;gap:var(--space-2)}.admin-password-head svg{color:var(--accent)}.admin-password-form{display:grid;gap:var(--space-4)}.admin-password-label{display:grid;gap:6px;font-size:var(--text-xs);font-weight:600;color:var(--muted)}.admin-password-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}@keyframes menu-pop-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.date-filter-menu,.event-filter-menu,.event-modal,.admin-password-modal,.event-card,.detail-loading-banner:before,.job-progress.indeterminate i,.realtime-dot{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}.event-card:hover{transform:none}}.users-panel-top{display:flex;align-items:flex-start;gap:var(--space-3);flex-wrap:wrap}.users-panel-top .admin-card-head{flex:1;min-width:240px}.users-role-guide{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.users-role-card{display:flex;align-items:flex-start;gap:var(--space-3);min-width:0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--input)}.users-role-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:30px;height:30px;border-radius:var(--radius-sm);background:var(--soft);color:var(--accent)}.users-role-text{display:flex;flex-direction:column;gap:2px;min-width:0}.users-role-text strong{font-size:var(--text-sm);font-weight:600}.users-role-text small{color:var(--muted);font-size:var(--text-xs);line-height:1.5}.users-status{margin:0;color:var(--success);font-size:var(--text-sm);font-weight:500}.users-status:empty{display:none}.users-list{display:flex;flex-direction:column;gap:2px;min-height:120px}.users-row{display:grid;grid-template-columns:34px minmax(0,1fr) minmax(0,1.4fr) 170px 110px 112px;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);white-space:nowrap;transition:background-color var(--dur) var(--ease)}.users-row:not(.users-head):hover{background:var(--input)}.users-head{min-height:32px;padding-top:0;padding-bottom:0;color:var(--muted);font-size:var(--text-xs);font-weight:600}.users-meta{display:contents}.users-avatar{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--accent)}.users-row.is-disabled .users-avatar{background:var(--input);color:var(--muted)}.users-row.is-disabled .users-title strong{color:var(--muted)}.users-name{display:flex;flex-direction:column;gap:2px;min-width:0}.users-title{display:flex;align-items:center;gap:6px;min-width:0}.users-title strong{font-weight:600}.users-username{color:var(--muted);font-size:var(--text-xs)}.users-state{display:flex;align-items:center;gap:6px;min-width:0}.users-login{color:var(--muted);font-size:var(--text-sm)}.users-login .tip{border-radius:4px}.users-actions{display:flex;align-items:center;justify-content:flex-end;gap:2px}.users-sites{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);min-width:0}.users-no-sites{font-size:var(--text-sm)}.users-site-roles{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius-md)}.users-site-role{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-3)}.users-site-role+.users-site-role{border-top:1px solid var(--border)}.users-site-role-name{display:flex;flex-direction:column;gap:2px;min-width:0;cursor:default}.users-site-role-name strong{font-size:var(--text-sm);font-weight:600}.users-site-role-name small{color:var(--muted);font-size:var(--text-xs)}.users-site-role select{flex:none;width:140px}.users-sites-empty{margin:0;font-size:var(--text-sm)}.accounts-page{display:flex;flex-direction:column;gap:var(--space-4)}.users-actions .icon-button.danger:hover:not([aria-disabled=true]){color:var(--danger);background:var(--danger-soft)}.users-actions .icon-button[aria-disabled=true]{opacity:.4;cursor:not-allowed}.users-actions .icon-button[aria-disabled=true]:hover{background:transparent;color:var(--muted)}dialog.users-dialog{width:min(640px,calc(100vw - 32px))}.dialog p.form-error{color:var(--danger);font-weight:500}.users-role-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}.users-role-choice{display:flex;align-items:flex-start;gap:var(--space-2);min-width:0;padding:var(--space-3);border:1.5px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--dur) var(--ease),background-color var(--dur) var(--ease)}.users-role-choice:hover{border-color:var(--border-strong)}.users-role-choice:has(input:checked){border-color:var(--accent);background:var(--soft)}.users-role-choice:has(input:disabled){cursor:not-allowed;opacity:.6}.users-role-choice input{margin-top:2px}.users-role-choice .users-role-text small{white-space:normal}@media(max-width:1180px){.users-row{grid-template-columns:34px minmax(0,1fr) minmax(0,1.2fr) 150px 96px 112px;gap:var(--space-3)}.users-role-guide{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.users-role-guide,.users-role-choices{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.users-head{display:none}.users-row{grid-template-columns:34px minmax(0,1fr) 112px;row-gap:var(--space-2);padding:var(--space-3) var(--space-2)}.users-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);grid-column:2 / -1;grid-row:2}}.review-panel-readonly .review-status-button{cursor:default}.review-note-readonly{margin:0;color:var(--text);font-size:var(--text-sm);line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:560px){.camera-in-grid{grid-template-columns:minmax(0,1fr)}}.event-map-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-3);flex:1;min-height:0}.event-map-stage{position:relative;isolation:isolate;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.event-map-canvas{position:absolute;inset:0;z-index:0;font-family:var(--font-sans)}.event-map-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}.event-map-legend{position:absolute;left:var(--space-3);bottom:var(--space-3);z-index:500;display:flex;flex-wrap:wrap;gap:var(--space-3);padding:6px var(--space-3);border-radius:var(--radius-pill);background:var(--panel);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--border);color:var(--muted);font-size:var(--text-xs)}.event-map-legend span{display:inline-flex;align-items:center;gap:6px}.event-map-legend .map-marker,.event-map-camera .map-marker{width:12px;height:12px;border-width:1.5px}.map-marker-anchor{background:none;border:0}.map-marker{display:grid;place-items:center;width:100%;height:100%;box-sizing:border-box;border:2px solid #fff;border-radius:50%;color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1;box-shadow:0 1px 4px #00000059;cursor:pointer}i.map-marker{display:inline-block;flex:none;cursor:inherit}.map-marker-level-0{background:#8e8e93}.map-marker-level-1{background:#f5a623}.map-marker-level-2{background:#f06a1d}.map-marker-level-3{background:#d70015}.map-marker.selected{box-shadow:0 0 0 3px var(--accent),0 2px 8px #0006}.map-marker.new{animation:map-marker-pulse 1.6s var(--ease) infinite}@keyframes map-marker-pulse{0%{box-shadow:0 0 #d700158c,0 1px 4px #00000059}70%{box-shadow:0 0 0 12px #d7001500,0 1px 4px #00000059}to{box-shadow:0 0 #d7001500,0 1px 4px #00000059}}@media(prefers-reduced-motion:reduce){.map-marker.new{animation:none;box-shadow:0 0 0 3px var(--danger)}}.event-map-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.event-map-panel-head{display:grid;gap:var(--space-1);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border)}.event-map-panel-head h2{margin:0;overflow:hidden;font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap}.event-map-panel-head p{margin:0;color:var(--muted);font-size:var(--text-sm)}.event-map-panel-head .event-map-note{color:var(--warn)}.event-map-back{justify-self:start}.event-map-panel-list{display:grid;align-content:start;gap:var(--space-3);flex:1;min-height:0;overflow-y:auto;padding:var(--space-3)}.event-map-panel-list .empty-card-list{min-height:160px;text-align:center}.map-snapshot{flex:0 0 auto;display:grid;gap:var(--space-2);margin:0;padding:var(--space-3) var(--space-3) 0}.map-snapshot-frame{position:relative;overflow:hidden;aspect-ratio:16 / 9;border-radius:var(--radius-sm);background:var(--frame-bg)}.map-snapshot-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.map-snapshot-frame .no-media{color:var(--on-frame-muted);font-size:var(--text-sm)}.map-snapshot figcaption{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);color:var(--muted);font-size:var(--text-xs)}.map-snapshot-refresh{display:inline-grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);color:var(--text);cursor:pointer}.map-snapshot-refresh:hover:not(:disabled),.map-snapshot-refresh:focus-visible{background:var(--soft)}.map-snapshot-refresh:disabled{cursor:default;opacity:.5}.event-map-camera-list{flex:1;min-height:0;margin:0;padding:var(--space-2);overflow-y:auto;list-style:none}.event-map-camera-list .empty-card-list{min-height:160px;padding:var(--space-4);text-align:center}.event-map-camera{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:40px;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-sm);background:none;color:var(--text);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.event-map-camera:hover,.event-map-camera:focus-visible{background:var(--soft)}.event-map-camera.no-events{color:var(--muted)}.event-map-camera-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.event-map-camera-count{font-variant-numeric:tabular-nums;font-weight:600}.event-map-new{position:static;padding:0 6px;font-size:var(--text-xs);letter-spacing:0}@media(max-width:860px){.event-map-page{height:auto;overflow:visible}.event-map-layout{grid-template-columns:minmax(0,1fr)}.event-map-stage{height:60dvh;min-height:320px}.event-map-panel{max-height:70dvh}}.media-frame-slot{display:block;min-width:0}@media(min-width:1100px)and (min-height:640px){.event-modal{grid-template-rows:auto minmax(0,1fr);gap:var(--space-3);width:min(1880px,100%);height:calc(100vh - 56px);max-height:none;overflow:hidden;padding:var(--space-4) var(--space-5) var(--space-5)}.modal-head{padding-bottom:var(--space-3)}.event-modal-content{grid-template-columns:minmax(0,1.55fr) minmax(380px,1fr);min-height:0}.event-image-column,.event-modal-side{display:flex;flex-direction:column;gap:var(--space-3);min-height:0}.event-image-column>*,.event-modal-side>*{flex:0 0 auto}.event-image-column>.media-frame-shell{flex:1 1 0;grid-template-rows:auto minmax(0,1fr);min-height:160px}.event-modal-side>:last-child{flex:1 1 0;min-height:0;overflow:auto;scrollbar-width:thin}.media-frame-slot{display:grid;place-items:center;min-height:0;container-type:size}.event-modal .media-frame{width:min(100cqw,calc(100cqh * var(--frame-ratio, 1.7778)));min-height:0;aspect-ratio:var(--frame-ratio, 1.7778)}.modal-filmstrip-thumb{width:96px}.repeated-event-timeline,.review-panel,.vlm-panel,.vlm-group-panel{gap:var(--space-2);padding:var(--space-3) var(--space-4)}.review-panel h3,.vlm-panel h3,.vlm-group-panel h3{font-size:var(--text-md)}.review-status-button{min-height:36px}.review-note-input{min-height:40px}.event-image-column .vlm-flags{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2)}.event-image-column .vlm-flag{gap:var(--space-2);padding:3px var(--space-1) 3px var(--space-2)}.event-image-column .vlm-summary,.vlm-group-sentence,.vlm-group-flags li{padding:var(--space-2) var(--space-3)}}@media(min-width:1100px)and (min-height:640px){.event-modal-content{grid-template-columns:minmax(0,1.3fr) minmax(400px,1fr)}.vlm-group-panel,.vlm-panel,.review-panel{align-content:start}.modal-filmstrip-thumb{width:84px}.repeated-event-timeline{padding:var(--space-2) var(--space-3)}.event-image-column .vlm-source{display:none}}@media(min-width:1100px)and (min-height:640px)and (max-height:840px){.review-note-actions:not(.is-dirty){display:none}}@media(min-width:1100px)and (min-height:640px){.event-image-column{container-type:inline-size}.event-image-column>.media-frame-shell{flex-grow:1000;max-height:calc(46px + 100cqw / var(--frame-ratio, 1.7778))}.event-image-column>.media-frame-shell~:last-child{flex-grow:1}}.loading-overlay{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:transparent;cursor:progress;transition:background-color var(--dur) var(--ease)}.loading-overlay.is-visible{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.loading-overlay-card{display:grid;justify-items:center;gap:var(--space-3);min-width:180px;border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);color:var(--text);background:var(--panel);box-shadow:var(--shadow-lg);opacity:0;transform:scale(.96);transition:opacity var(--dur) var(--ease),transform var(--dur) var(--ease)}.loading-overlay.is-visible .loading-overlay-card{opacity:1;transform:none}.loading-overlay-spinner{width:36px;height:36px;border:3px solid var(--soft);border-top-color:var(--accent);border-radius:50%;animation:detail-spin .8s linear infinite}.loading-overlay-label{color:var(--muted);font-size:var(--text-sm);font-weight:600}@media(prefers-reduced-motion:reduce){.loading-overlay-spinner{animation-duration:2.4s}}.track-page-scroll{display:grid;align-content:start;gap:var(--space-3);flex:1;min-height:0;overflow-y:auto;padding-bottom:var(--space-3)}.track-list-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.track-list-title h2{margin:0;font-size:var(--text-lg)}.track-list-card{display:grid;align-content:start;padding-bottom:var(--space-2)}.track-list-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);padding:var(--space-3) var(--space-4)}.track-list-title{display:flex;align-items:baseline;gap:var(--space-2);margin-right:auto}.track-list-title span{color:var(--muted);font-size:var(--text-sm)}.track-switch{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text);font-size:var(--text-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.track-switch input{position:absolute;opacity:0;pointer-events:none}.track-switch-ui{position:relative;width:36px;height:22px;flex:0 0 auto;border-radius:11px;background:var(--border-strong);transition:background var(--dur) var(--ease)}.track-switch-ui:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease)}.track-switch input:checked+.track-switch-ui{background:var(--accent)}.track-switch input:checked+.track-switch-ui:after{transform:translate(14px)}.track-switch input:focus-visible+.track-switch-ui{outline:2px solid var(--accent);outline-offset:2px}.track-note{margin:0 var(--space-4) var(--space-2);color:var(--muted);font-size:var(--text-xs)}.track-row{display:grid;grid-template-columns:112px minmax(200px,260px) minmax(0,1fr) 20px;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-2) var(--space-4)}.track-section-head{display:flex;align-items:baseline;gap:var(--space-2);margin:0;padding:var(--space-3) var(--space-4) var(--space-1);color:var(--text);font-size:var(--text-sm);font-weight:700;font-variant-numeric:tabular-nums}.track-section-head span{color:var(--muted);font-weight:500}.track-rows{display:grid;margin:0;padding:0 var(--space-2);list-style:none}.track-vehicle{border:0;border-radius:var(--radius-md);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;padding-left:var(--space-2);padding-right:var(--space-2);transition:background var(--dur-fast) var(--ease)}.track-vehicle:hover{background:var(--input)}.track-vehicle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.track-vehicle.is-selected{background:var(--soft)}.track-thumb{position:relative;display:grid;place-items:center;width:112px;aspect-ratio:16 / 9;overflow:hidden;border-radius:8px;background:var(--frame-bg);color:var(--on-frame-muted)}.track-thumb img{width:100%;height:100%;object-fit:cover}.track-thumb-count,.track-new-badge{position:absolute;padding:1px 6px;border-radius:var(--radius-pill);font-size:11px;font-weight:600}.track-thumb-count{right:4px;bottom:4px;background:#0000009e;color:#fff}.track-new-badge{left:4px;top:4px;background:var(--warn);color:#fff}.track-vehicle-main{display:grid;gap:2px;min-width:0}.track-vehicle-time{font-size:var(--text-lg);font-weight:700;font-variant-numeric:tabular-nums}.track-vehicle-type{color:var(--text);font-size:var(--text-sm);font-weight:600}.track-vehicle-detail{color:var(--text);font-size:var(--text-sm)}.track-nowrap{white-space:nowrap}.track-vehicle-headline{display:flex;align-items:center;gap:var(--space-2);min-width:0}.track-vehicle-headline .status-pill{padding:1px 8px;font-size:var(--text-xs)}.track-status-summary{display:inline-flex;flex-wrap:wrap;gap:4px}.track-vehicle-chevron{color:var(--muted)}.track-empty{margin:var(--space-3) var(--space-4);min-height:140px;text-align:center}.track-not-configured{padding:var(--space-6) var(--space-4);text-align:center}@media(max-width:860px){.vehicle-track-page{height:auto;overflow:visible}.track-page-scroll{overflow:visible}.track-rows{padding:0}.track-vehicle-detail{white-space:normal}.track-vehicle-time{font-size:var(--text-md, 15px)}.track-row{grid-template-columns:84px minmax(0,1fr) 16px;grid-template-areas:"thumb main chevron" "path path path";gap:var(--space-2) var(--space-3)}.track-thumb{grid-area:thumb;width:84px}.track-vehicle-main{grid-area:main}.track-vehicle-path{grid-area:path;padding-left:calc(84px + var(--space-3))}.track-vehicle-chevron{grid-area:chevron}}.track-list-title{flex-wrap:wrap}.track-list-title .track-appearance-status{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-size:var(--text-xs)}.track-list-title .track-appearance-status.is-off{color:var(--muted)}.track-list-title .track-appearance-spinner{width:10px;height:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:track-spin .9s linear infinite}@keyframes track-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.track-list-title .track-appearance-spinner{animation:none}}.admin-etm-card{grid-template-columns:minmax(0,1fr)}.admin-etm-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.admin-etm-legend-item{display:grid;align-content:start;gap:var(--space-2);border-radius:var(--radius-md);background:var(--input);padding:var(--space-3) var(--space-4)}.admin-etm-legend-head{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;color:var(--text);font-size:var(--text-sm)}.admin-etm-legend-head svg{color:var(--accent);flex:none}.admin-etm-pill{margin-left:auto;border-radius:var(--radius-pill);background:var(--soft);color:var(--accent);padding:1px 8px;font-size:var(--text-xs);font-weight:600;white-space:nowrap}.admin-etm-legend-item p{color:var(--muted);font-size:var(--text-xs);line-height:1.7}.admin-etm-toolbar{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.admin-etm-toolbar .admin-search-input{flex:1 1 240px;max-width:360px}.admin-etm-filters{display:flex;flex-wrap:wrap;min-width:0;gap:var(--space-2)}.admin-etm-filters .admin-etm-filter{min-height:30px;gap:6px;border:1px solid var(--border);border-radius:var(--radius-pill);padding:2px 12px;background:var(--panel);color:var(--text);font-size:var(--text-sm);font-weight:600}.admin-etm-filters .admin-etm-filter.active,.admin-etm-filters .admin-etm-filter.active:hover:not(:disabled){border-color:transparent;background:var(--soft);color:var(--accent)}.admin-etm-filter-count{color:var(--muted);font-size:var(--text-xs);font-weight:600;font-variant-numeric:tabular-nums}.admin-etm-filter.active .admin-etm-filter-count{color:inherit}.admin-etm-table{border:1px solid var(--border);border-radius:var(--radius-md);max-height:520px;overflow-y:auto}.admin-etm-header,.admin-etm-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-4)}.admin-etm-header{position:sticky;top:0;z-index:1;border-bottom:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:var(--text-xs);font-weight:600}.admin-etm-list{margin:0;padding:0;list-style:none}.admin-etm-row+.admin-etm-row{border-top:1px solid var(--border)}.admin-etm-name{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px var(--space-2);min-width:0;font-size:var(--text-sm)}.admin-etm-name-text{color:var(--text);font-weight:600;overflow-wrap:anywhere}.admin-etm-row.is-hidden .admin-etm-name-text{color:var(--muted)}.admin-etm-id{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.admin-etm-segmented{display:grid;grid-template-columns:repeat(4,auto);gap:2px;border-radius:var(--radius-sm);background:var(--input);padding:2px}.admin-etm-segmented .admin-etm-segment{position:relative;display:flex;align-items:center;justify-content:center;min-height:30px;border-radius:6px;padding:0 var(--space-3);color:var(--muted);font-size:var(--text-sm);font-weight:600;white-space:nowrap;cursor:pointer;transition:background-color var(--dur, .15s) var(--ease, ease),color var(--dur, .15s) var(--ease, ease)}.admin-etm-segment:hover{color:var(--text)}.admin-etm-segmented .admin-etm-segment.active{background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--border-strong)}.admin-etm-segmented .admin-etm-segment.active.mode-duration,.admin-etm-segmented .admin-etm-segment.active.mode-occurrence,.admin-etm-segmented .admin-etm-segment.active.mode-tracked{background:var(--accent);color:var(--on-accent);box-shadow:none}.admin-etm-segment input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.admin-etm-segment:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.admin-etm-empty{padding:var(--space-4)}@media(max-width:1180px){.admin-etm-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.admin-etm-legend{grid-template-columns:minmax(0,1fr)}}@media(max-width:640px){.admin-etm-toolbar .admin-search-input{max-width:none}.admin-etm-header{display:none}.admin-etm-row{grid-template-columns:minmax(0,1fr);grid-template-areas:"name" "mode";gap:var(--space-2) var(--space-3);padding:var(--space-3)}.admin-etm-name{grid-area:name}.admin-etm-segmented{grid-area:mode;grid-template-columns:repeat(4,minmax(0,1fr))}.admin-etm-legend-item{padding:var(--space-3)}.admin-etm-filters{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--space-1));padding:0 var(--space-1) 2px;scrollbar-width:none}.admin-etm-filters .admin-etm-filter{flex:none}.admin-etm-segmented .admin-etm-segment{padding:0 var(--space-2)}}.track-vehicle-path{display:grid;gap:4px;min-width:0}.track-vehicle-distance{color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums}.track-camera-chain{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;min-width:0;color:var(--text);font-size:var(--text-xs)}.track-camera-chain-stop{display:inline-flex;align-items:center;min-width:0;max-width:100%}.track-camera-chain-name{overflow:hidden;max-width:220px;padding:2px 8px;border:1px solid var(--border);border-radius:999px;background:var(--panel);text-overflow:ellipsis;white-space:nowrap}.track-camera-chain-arrow{padding:0 6px;color:var(--muted)}.track-path-map{position:relative;isolation:isolate;height:220px;overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel)}.track-path-map-loading{display:grid;place-items:center;color:var(--muted);font-size:var(--text-xs)}.track-path-line{fill:none;stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-opacity:.85}.track-path-stop-anchor{background:none;border:0}.track-path-stop{display:grid;place-items:center;width:100%;height:100%;border:2px solid var(--panel);border-radius:50%;background:var(--accent);color:#fff;font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:0 1px 3px #00000059;cursor:pointer}.track-path-stop.is-current{background:var(--warn);box-shadow:0 0 0 3px var(--accent),0 1px 3px #00000059}.media-caption-place{overflow:hidden;max-width:220px;text-overflow:ellipsis;white-space:nowrap}.modal-filmstrip .modal-strip-place{display:block;overflow:hidden;max-width:96px;text-overflow:ellipsis}.track-camera-chain-more{padding:2px 4px;color:var(--muted);white-space:nowrap}.track-path-panel{display:grid;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-md);background:var(--input)}.track-path-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.track-path-panel-head h3{margin:0;font-size:var(--text-sm)}.track-path-panel-head span,.track-path-panel-hint{margin:0;color:var(--muted);font-size:var(--text-xs)}.accuracy-page{display:grid;gap:var(--space-3)}.accuracy-toolbar{justify-content:space-between}.accuracy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}.accuracy-computed-at{color:var(--muted);font-size:var(--text-xs)}.accuracy-intro{display:grid;gap:var(--space-1)}.accuracy-formula{margin:0;color:var(--text);font-size:var(--text-sm);line-height:1.6}.accuracy-details{color:var(--muted);font-size:var(--text-sm);line-height:1.6}.accuracy-details summary{width:fit-content;color:var(--accent);font-weight:600;cursor:pointer}.accuracy-details ul{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.accuracy-status{color:var(--muted);font-size:var(--text-sm)}.accuracy-empty{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--panel);color:var(--muted);text-align:center}.accuracy-table-card{display:grid;gap:var(--space-2)}.accuracy-scroll-hint{display:none;align-items:center;justify-content:space-between;color:var(--muted);font-size:var(--text-xs)}.accuracy-table-wrap{overflow-x:auto;border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm)}.accuracy-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.accuracy-table th,.accuracy-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);text-align:right;white-space:nowrap}.accuracy-table thead th{color:var(--muted);font-size:var(--text-xs);font-weight:600}.accuracy-table thead small{display:block;color:var(--accent);font-weight:600}.accuracy-table .accuracy-name{position:sticky;left:0;z-index:1;min-width:160px;border-right:1px solid var(--border);background:var(--panel);color:var(--text);text-align:left;font-weight:600;white-space:normal}.accuracy-table thead .accuracy-name{z-index:2;color:var(--muted)}.accuracy-event-id{display:block;color:var(--muted);font-size:var(--text-xs);font-weight:500}.accuracy-table tfoot th,.accuracy-table tfoot td{border-bottom:0;border-top:1px solid var(--border-strong)}.accuracy-table tfoot .accuracy-name{font-weight:700}.accuracy-table thead .accuracy-current-col{background:var(--soft);color:var(--accent)}.accuracy-cell strong{display:block;color:var(--text);font-size:var(--text-base);font-weight:600}.accuracy-cell small{display:block;color:var(--muted);font-size:var(--text-xs);white-space:nowrap}.accuracy-table .accuracy-false-count{display:inline;color:var(--text);font-weight:600}.accuracy-cell.is-warn strong,.accuracy-legend.is-warn{color:var(--warn)}.accuracy-cell.is-bad strong,.accuracy-legend.is-bad{color:var(--danger)}.accuracy-cell.is-empty{color:var(--muted)}.accuracy-total-col{border-left:1px solid var(--border);background:var(--input)}.accuracy-table-note{margin:0;color:var(--muted);font-size:var(--text-xs);line-height:1.6}.accuracy-legend{font-weight:600}@media(max-width:860px){.accuracy-scroll-hint{display:flex}.accuracy-actions{flex:1 1 auto;justify-content:space-between}.accuracy-table .accuracy-name{width:120px;min-width:120px;max-width:120px;border-right-color:var(--border-strong)}.accuracy-table th:not(.accuracy-name),.accuracy-table td{min-width:104px}}.batch-check{position:absolute;z-index:3;display:grid;place-items:center;border-radius:var(--radius-pill);background:#00000059;color:#fff}.batch-check.is-checked{background:#fff;color:var(--accent)}.event-card-check{top:var(--space-2);right:var(--space-2)}.track-vehicle-check{top:4px;right:4px}.event-card.picked-card{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.event-card.picking-card .event-card-image{transition:opacity var(--dur) var(--ease)}.event-card.picking-card:not(.picked-card) .event-card-image{opacity:.85}.track-vehicle.is-picked{background:var(--soft)}.batch-review-bar{position:sticky;bottom:var(--space-2);z-index:5;display:flex;flex:none;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);border:1px solid var(--accent);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);background:var(--panel);box-shadow:var(--shadow-lg)}.batch-review-count{font-size:var(--text-sm);font-weight:700;color:var(--text)}.batch-review-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-left:auto}.shell{--shell-w: var(--sidebar-w);--shell-icon-x: 23px;min-height:100dvh;padding-left:var(--shell-w);background:var(--bg);color:var(--text)}.shell.is-collapsed{--shell-w: var(--sidebar-w-collapsed)}.shell.is-narrow{padding-left:var(--sidebar-w-collapsed)}.shell-sidebar{position:fixed;inset:0 auto 0 0;z-index:45;width:var(--shell-w);display:flex;flex-direction:column;padding:0 var(--space-2) var(--space-3);background:var(--panel);border-right:1px solid var(--border);white-space:nowrap}.shell.is-overlay-open .shell-sidebar{width:min(260px,calc(100vw - 32px));box-shadow:var(--shadow-lg)}.shell-scrim{position:fixed;inset:0;z-index:44;background:color-mix(in srgb,var(--frame-bg) 32%,transparent);animation:fade-in var(--dur) var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.shell-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:18px}.shell.is-collapsed .shell-sidebar .shell-label{display:none}.shell-brand{flex:none;display:flex;align-items:center;gap:10px;min-height:var(--topbar-h);padding:0 0 0 calc(var(--shell-icon-x) + 9px - 14px - var(--space-2));border-bottom:1px solid var(--border);font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;overflow:hidden}.shell-brand-logo{flex:none}.shell-toggle{margin-left:auto}.shell.is-collapsed .shell-brand{padding:0;justify-content:center}.shell.is-collapsed .shell-brand-logo{display:none}.shell.is-collapsed .shell-toggle{margin:0}.shell-nav{flex:1;min-height:0;padding-top:var(--space-3);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}.shell.is-collapsed .shell-nav{overflow:visible}.shell-nav-item{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:var(--space-3);width:100%;min-height:44px;margin:0 0 var(--space-1);padding:var(--space-3) var(--space-3) var(--space-3) calc(var(--shell-icon-x) - var(--space-2) - 1px);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:var(--text-sm);font-weight:500;text-align:left;text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.shell-nav-item:hover,.shell-nav-item:hover:not(:disabled){background:var(--input);color:var(--text)}.shell-nav-item:active:not(:disabled){transform:none}.shell-nav-item[aria-current=page]{background:var(--soft);color:var(--accent);font-weight:600}.shell-nav-item[aria-current=page]:before{content:"";position:absolute;left:0;top:12px;bottom:12px;width:3px;border-radius:2px;background:var(--accent)}.shell-nav-divider{margin:var(--space-4) var(--space-3);border-top:1px solid var(--border)}.shell.is-collapsed .shell-nav-divider{margin:var(--space-4) var(--space-1)}.shell-nav-badge{margin-left:auto;border-radius:999px;background:#c4000f;color:#fff;padding:0 6px;font-size:11px;font-weight:700;line-height:18px}.shell.is-collapsed .shell-nav-badge{position:absolute;top:6px;right:6px;width:8px;height:8px;padding:0;overflow:hidden;color:transparent}.shell:not(.is-collapsed) .shell-sidebar .tip:after,.shell-account.open:after{display:none}.shell.is-collapsed .shell-sidebar .tip:after{top:50%;left:calc(100% + var(--space-2));transform:translate(-3px,-50%)}.shell.is-collapsed .shell-sidebar .tip:hover:after,.shell.is-collapsed .shell-sidebar .tip:focus-visible:after{transform:translateY(-50%)}.shell-footer{position:relative;flex:none;padding-top:var(--space-3);border-top:1px solid var(--border)}.shell-account{min-height:52px;margin-bottom:0;padding:var(--space-2) var(--space-2) var(--space-2) calc(var(--shell-icon-x) + 9px - 17px - var(--space-2) - 1px)}.shell-account.open{background:var(--input);color:var(--text)}.shell-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--soft);color:var(--accent)}.shell-account-label{display:flex;flex-direction:column;gap:2px;min-width:0}.shell-account-label strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-weight:600;line-height:18px}.shell-account-label small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--text-xs);font-weight:500;line-height:14px}.shell-account-menu{position:absolute;bottom:calc(100% + var(--space-2));left:0;z-index:50;width:248px;display:flex;flex-direction:column;gap:2px;padding:var(--space-2);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);box-shadow:var(--shadow-lg);animation:pop-in var(--dur) var(--ease)}.shell.is-collapsed .shell-account-menu{left:calc(100% + var(--space-2));bottom:0}.shell-account-head{display:flex;align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-2) var(--space-2) var(--space-3);margin-bottom:var(--space-1);border-bottom:1px solid var(--border)}.shell-account-head .shell-account-label{flex:1}.shell-menu-group{display:flex;flex-direction:column;gap:2px}.shell-menu-caption{padding:var(--space-1) var(--space-3) 2px;color:var(--muted);font-size:var(--text-xs);font-weight:600}.shell-menu-divider{margin:var(--space-1) var(--space-2);border-top:1px solid var(--border)}.shell-menu-item{justify-content:flex-start;gap:var(--space-2);width:100%;min-height:36px;padding:0 var(--space-3);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:var(--text-sm);text-align:left}.shell-menu-item:hover:not(:disabled),.shell-menu-item:focus-visible{background:var(--input);outline:0}.shell-menu-item .icon{color:var(--muted)}.shell-menu-item[aria-checked=true]{color:var(--accent);font-weight:600}.shell-menu-item[aria-checked=true] .icon{color:var(--accent)}.shell-menu-item.danger,.shell-menu-item.danger .icon{color:var(--danger)}.shell-menu-item.danger:hover:not(:disabled),.shell-menu-item.danger:focus-visible{background:var(--danger-soft)}.shell-body{min-width:0;min-height:100dvh;display:flex;flex-direction:column}.shell-topbar,.site-picker-topbar{position:sticky;top:0;z-index:30;flex:none;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:0 var(--space-5);background:var(--panel);border-bottom:1px solid var(--border);white-space:nowrap}.shell-crumb,.site-picker-brand{display:flex;align-items:center;gap:10px;min-width:0;margin:0;font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em;line-height:1.2}.shell-crumb-icon{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--accent);color:var(--on-accent)}.shell-crumb-icon .icon{stroke-width:2}.shell-crumb-title{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.shell-crumb-divider,.site-picker-divider{flex:none;margin:0 2px;color:var(--border-strong);font-size:var(--text-xl);font-weight:400}.shell-crumb-page,.site-picker-crumb{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:var(--text-base);font-weight:500}.shell-crumb-page{flex:none;margin:0;line-height:inherit}.shell-toolbar{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:none}.shell-main{flex:1;min-width:0;min-height:0;padding:var(--space-3)}.page-content{display:block;max-width:1680px;margin:0 auto;padding:var(--space-6) var(--space-5) 48px}.auth-page{min-height:100dvh;background:var(--bg);color:var(--text)}.auth-theme{position:fixed;top:var(--space-4);right:var(--space-4);z-index:10}.auth-main{display:grid;place-items:center;min-height:100dvh;padding:var(--space-6) var(--space-4)}.auth-card{width:min(400px,100%);display:flex;flex-direction:column;gap:var(--space-6);padding:calc(var(--space-6) + var(--space-2)) calc(var(--space-6) + var(--space-1));border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-lg)}:root[data-theme=dark] .auth-card{box-shadow:inset 0 0 0 1px var(--border),var(--shadow-lg)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .auth-card{box-shadow:inset 0 0 0 1px var(--border),var(--shadow-lg)}}.auth-brand{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);min-width:0;text-align:center}.auth-brand .logo{margin-bottom:var(--space-2)}.auth-brand h1{max-width:100%;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.auth-brand p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.7}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-form .primary{width:100%;margin-top:var(--space-1)}.auth-form[aria-busy=true]{cursor:progress}.auth-back{align-self:center}.site-picker{min-height:100dvh;background:var(--bg);color:var(--text)}.site-picker-brand .logo{flex:none}.site-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:var(--space-4);margin:0;padding:0;list-style:none}.site-grid>li{display:flex;min-width:0}.site-card{flex:1;display:flex;flex-direction:column;gap:var(--space-4);min-width:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);text-decoration:none;box-shadow:var(--shadow-sm);transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.site-card:hover,.site-card:focus-visible{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-lg);outline:0}.site-card-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-md);background:var(--soft);color:var(--accent)}.site-card:hover .site-card-icon,.site-card:focus-visible .site-card-icon{background:var(--accent);color:var(--on-accent)}.site-card-text{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.site-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em;line-height:1.25}.site-card-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:var(--text-sm);line-height:1.7}.site-card-chips{display:flex;flex-wrap:wrap;gap:var(--space-2)}.site-card-action{display:inline-flex;align-items:center;gap:6px;margin-top:auto;color:var(--accent);font-size:var(--text-sm);font-weight:600;white-space:nowrap}.site-card-arrow{transition:transform var(--dur) var(--ease)}.site-card:hover .site-card-arrow,.site-card:focus-visible .site-card-arrow{transform:translate(3px)}.site-picker-state{min-height:50dvh}.site-picker-error-detail{max-width:560px;color:var(--muted);font-size:var(--text-sm);font-weight:400;overflow-wrap:anywhere}@media(max-width:1180px){.shell-topbar,.site-picker-topbar{padding:0 var(--space-4)}.page-content{padding:var(--space-5) var(--space-4) var(--space-6)}}@media(max-width:860px){.shell-topbar,.site-picker-topbar{gap:var(--space-2);padding:0 var(--space-3)}.shell-crumb-title,.shell-crumb-divider,.site-picker-divider,.site-picker-crumb{display:none}.shell-crumb-page{color:var(--text);font-size:var(--text-lg);font-weight:600}.site-card{padding:var(--space-5)}}.password-input{position:relative;display:flex;align-items:center;min-width:0}.password-input>input{width:100%;padding-right:calc(var(--control-h) + var(--space-1))}.password-input.with-actions>input{padding-right:calc(2 * 36px + var(--space-1))}.password-input>.icon-button{position:absolute;top:50%;right:2px;width:36px;height:36px;min-height:36px;transform:translateY(-50%)}.password-input>.icon-button:active:not(:disabled){transform:translateY(-50%) scale(.98)}.password-input.with-actions>.icon-button:nth-last-child(2){right:38px}.auth-remember{display:inline-flex;align-items:center;gap:var(--space-2);align-self:flex-start;font-size:var(--text-sm);cursor:pointer}.auth-switch{align-self:center}.auth-checking{display:grid;place-items:center;min-height:100dvh;background:var(--bg);color:var(--muted);font-size:var(--text-sm)}.auth-checking-inner{display:inline-flex;align-items:center;gap:var(--space-2)}.auth-checking .notice{max-width:420px}.portal-lead{display:flex;align-items:center;gap:var(--space-4);min-width:0}.portal-tabs a{display:inline-flex;align-items:center;min-height:28px;padding:2px var(--space-3);border-radius:6px;color:var(--muted);font-size:var(--text-sm);font-weight:500;text-decoration:none;transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease)}.portal-tabs a:hover{color:var(--text)}.portal-tabs a[aria-current=page]{background:var(--panel);color:var(--text);box-shadow:var(--shadow-sm)}:root[data-theme=dark] .portal-tabs a[aria-current=page]{background:var(--border)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .portal-tabs a[aria-current=page]{background:var(--border)}}.portal-account{position:relative;flex:none}.portal-account-button{gap:var(--space-2);min-height:40px;max-width:220px;padding:3px var(--space-2) 3px 3px;border-color:transparent;border-radius:var(--radius-pill);background:transparent}.portal-account-button.open,.portal-account-button:hover:not(:disabled){background:var(--input)}.portal-account-button .shell-avatar{width:32px;height:32px}.portal-account-name{font-size:var(--text-sm);font-weight:600}.portal-account-button .icon{color:var(--muted)}.portal-account-menu{top:calc(100% + var(--space-2));right:0;bottom:auto;left:auto;width:264px}.portal-account-menu .shell-account-head .chip{flex:none}.portal-section{display:flex;flex-direction:column;gap:var(--space-5)}.portal-head{display:flex;flex-direction:column;gap:var(--space-1)}.portal-head h2{margin:0;font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.portal-head p{margin:0;color:var(--muted);font-size:var(--text-sm);line-height:1.7}.site-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.site-card-role{margin-top:var(--space-1)}.no-site-access{min-height:50dvh;gap:var(--space-3)}.no-site-access h2{margin:0;color:var(--text);font-size:var(--text-xl);font-weight:700}.no-site-access p{max-width:460px;margin:0;line-height:1.7}@media(max-width:860px){.portal-lead{gap:var(--space-2)}.portal-lead .site-picker-brand .truncate,.portal-account-name{display:none}}.ga-figure{margin:var(--space-3) 0 var(--space-4)}.ga-svg{display:block;width:100%;max-width:560px;height:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.ga-svg text{font-family:var(--font-sans)}.ga-figure figcaption{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);max-width:560px;margin-top:var(--space-2);color:var(--muted);font-size:var(--text-sm);line-height:1.6}.ga-toggle{flex-shrink:0;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:transparent;padding:1px var(--space-3);color:var(--text);font-size:var(--text-xs);cursor:pointer}.ga-toggle:hover,.ga-toggle:focus-visible{border-color:var(--accent);color:var(--accent)}.ga-bg{fill:var(--bg)}.ga-panel{fill:var(--panel)}.ga-raised{filter:drop-shadow(0 6px 14px rgba(0,0,0,.18))}.ga-input{fill:var(--input)}.ga-text,.ga-text-fill{fill:var(--text)}.ga-muted{fill:var(--muted)}.ga-strong{font-weight:600}.ga-accent,.ga-accent-text{fill:var(--accent)}.ga-on-accent{fill:var(--on-accent)}.ga-soft{fill:var(--soft)}.ga-success,.ga-success-text{fill:var(--success)}.ga-danger,.ga-danger-text{fill:var(--danger)}.ga-warn,.ga-warn-text{fill:var(--warn)}.ga-success-soft{fill:var(--success-soft)}.ga-danger-soft{fill:var(--danger-soft)}.ga-line,.ga-icon{fill:var(--border-strong)}.ga-line-faint{opacity:.6}.ga-divider{stroke:var(--border);stroke-width:1}.ga-scrim{fill:#000;opacity:.42}.ga-tip{fill:var(--tip-bg)}.ga-tip-text{fill:var(--tip-fg)}.ga-menu-icon rect{fill:var(--text)}.ga-keycap{fill:var(--panel);stroke:var(--border-strong);stroke-width:1.2}.ga-checkbox{fill:none;stroke:var(--border-strong);stroke-width:1.2}.ga-switch-track{fill:var(--border-strong)}.ga-switch-knob{fill:#fff}.ga-chevron{fill:none;stroke:var(--muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ga-check{fill:none;stroke:var(--on-accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.ga-check-success{stroke:var(--success)}.ga-pulse-mark{fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.ga-pulse-accent{stroke:var(--accent)}.ga-photo{fill:#2a2f36}.ga-photo-road{fill:#4a515b}.ga-photo-lane{stroke:#d8dde3;stroke-width:1.2;stroke-dasharray:4 4}.ga-box{fill:none;stroke:var(--warn);stroke-width:2}.ga-highlight{fill:none;stroke:var(--accent);stroke-width:2;opacity:0}.ga-map{fill:var(--input)}.ga-map-water{fill:var(--soft)}.ga-map-road{fill:none;stroke:var(--panel);stroke-width:8;stroke-linecap:round}.ga-map-road-minor{stroke-width:4}.ga-map-level-0{fill:#8e8e93}.ga-map-level-1{fill:#f5a623}.ga-map-level-2{fill:#f06a1d}.ga-map-level-3{fill:#d70015}.ga-map-dot{stroke:#fff;stroke-width:2}.ga-map-ring{fill:none;stroke:#d70015;stroke-width:2}.ga-map-selected{fill:none;stroke:var(--accent);stroke-width:2.5}.ga-cursor path{fill:#fff;stroke:#1d1d1f;stroke-width:1.2;stroke-linejoin:round;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}.ga-svg *{animation-duration:var(--ga-dur);animation-iteration-count:infinite;animation-timing-function:ease-in-out}.ga-ripple{fill:none;stroke:var(--accent);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation-name:ga-ripple;animation-timing-function:ease-out;animation-fill-mode:none}@keyframes ga-ripple{0%{opacity:.9;transform:scale(.3)}6%,to{opacity:0;transform:scale(1.5)}}.ga-svg .ga-live-dot,.ga-svg .ga-ev-badge,.ga-svg .ga-map-ring{animation-duration:1.6s;animation-timing-function:ease-out;transform-box:fill-box;transform-origin:center}.ga-live-dot,.ga-ev-badge{animation-name:ga-blink}.ga-map-ring{animation-name:ga-ring}@keyframes ga-blink{0%,to{opacity:1}50%{opacity:.35}}@keyframes ga-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.7)}}.ga-login-a{animation-name:ga-login-a}.ga-login-b{animation-name:ga-login-b;opacity:0}.ga-login-user{animation-name:ga-login-user}.ga-login-cover{animation-name:ga-login-cover}.ga-login-check{animation-name:ga-login-check;opacity:0}.ga-login-btn{animation-name:ga-login-btn}.ga-login-pick{animation-name:ga-login-pick}.ga-login-cursor{animation-name:ga-login-cursor}@keyframes ga-login-a{0%,55%{opacity:1}60%,95%{opacity:0}to{opacity:1}}@keyframes ga-login-b{0%,55%{opacity:0}60%,94%{opacity:1}99%,to{opacity:0}}@keyframes ga-login-user{0%,9%{opacity:0}11%,94%{opacity:1}96%,to{opacity:0}}@keyframes ga-login-cover{0%,18%{transform:translate(0)}30%,94%{transform:translate(92px)}96%,to{transform:translate(0)}}@keyframes ga-login-check{0%,37%{opacity:0}39%,94%{opacity:1}96%,to{opacity:0}}@keyframes ga-login-btn{0%,49%{opacity:1}50%{opacity:.7}53%,to{opacity:1}}@keyframes ga-login-pick{0%,75%{opacity:0}78%,92%{opacity:1}96%,to{opacity:0}}@keyframes ga-login-cursor{0%{transform:translate(400px,250px)}7%,13%{transform:translate(240px,119px)}16%,32%{transform:translate(240px,159px)}36%,41%{transform:translate(171px,185px)}47%,54%{transform:translate(240px,215px)}70%,86%{transform:translate(135px,128px)}to{transform:translate(400px,250px)}}.ga-layout-sidebar{animation-name:ga-layout-sidebar;transform-box:fill-box;transform-origin:left center}.ga-layout-label{animation-name:ga-layout-label}.ga-layout-main{animation-name:ga-layout-main}.ga-layout-popup{animation-name:ga-layout-popup;opacity:0}.ga-layout-cursor{animation-name:ga-layout-cursor}@keyframes ga-layout-sidebar{0%,20%{transform:scaleX(1)}27%,64%{transform:scaleX(.3333)}71%,to{transform:scaleX(1)}}@keyframes ga-layout-label{0%,20%{opacity:1}24%,66%{opacity:0}71%,to{opacity:1}}@keyframes ga-layout-main{0%,20%{transform:translate(0)}27%,64%{transform:translate(-80px)}71%,to{transform:translate(0)}}@keyframes ga-layout-popup{0%,82%{opacity:0;transform:translateY(6px)}85%,95%{opacity:1;transform:translateY(0)}98%,to{opacity:0;transform:translateY(6px)}}@keyframes ga-layout-cursor{0%{transform:translate(300px,200px)}15%,25%{transform:translate(20px,24px)}38%,52%{transform:translate(250px,150px)}60%,68%{transform:translate(20px,24px)}78%,95%{transform:translate(20px,248px)}to{transform:translate(300px,200px)}}.ga-ev-grid{animation-name:ga-ev-grid}.ga-ev-c0{animation-name:ga-ev-c0;transform:translate(20px,58px)}.ga-ev-c1{animation-name:ga-ev-c1;transform:translate(170px,58px)}.ga-ev-c2{animation-name:ga-ev-c2;transform:translate(320px,58px)}.ga-ev-c3{animation-name:ga-ev-c3;transform:translate(20px,162px)}.ga-ev-c4{animation-name:ga-ev-c4;transform:translate(170px,162px)}.ga-ev-new{animation-name:ga-ev-new;opacity:0;transform:translate(20px,58px)}.ga-ev-new .ga-highlight{animation-name:ga-ev-highlight}.ga-ev-modal{animation-name:ga-ev-modal;opacity:0}.ga-ev-box{animation-name:ga-ev-box;stroke-dasharray:160}.ga-eventlog-cursor{animation-name:ga-eventlog-cursor}@keyframes ga-ev-grid{0%{opacity:0}4%,94%{opacity:1}98%,to{opacity:0}}@keyframes ga-ev-c0{0%,14%{transform:translate(20px,58px)}22%,to{transform:translate(170px,58px)}}@keyframes ga-ev-c1{0%,14%{transform:translate(170px,58px)}22%,to{transform:translate(320px,58px)}}@keyframes ga-ev-c2{0%,14%{transform:translate(320px,58px)}22%,to{transform:translate(20px,162px)}}@keyframes ga-ev-c3{0%,14%{transform:translate(20px,162px)}22%,to{transform:translate(170px,162px)}}@keyframes ga-ev-c4{0%,14%{transform:translate(170px,162px)}22%,to{transform:translate(320px,162px)}}@keyframes ga-ev-new{0%,20%{opacity:0;transform:translate(20px,44px)}26%,to{opacity:1;transform:translate(20px,58px)}}@keyframes ga-ev-highlight{0%,24%{opacity:0}28%,52%{opacity:1}58%,to{opacity:0}}@keyframes ga-ev-modal{0%,57%{opacity:0}61%,92%{opacity:1}96%,to{opacity:0}}@keyframes ga-ev-box{0%,62%{stroke-dashoffset:160}70%,to{stroke-dashoffset:0}}@keyframes ga-eventlog-cursor{0%,40%{transform:translate(420px,240px)}54%,60%{transform:translate(90px,110px)}70%{transform:translate(440px,250px)}to{transform:translate(420px,240px)}}.ga-review-1{animation-name:ga-review-1}.ga-review-2{animation-name:ga-review-2;opacity:0}.ga-review-3{animation-name:ga-review-3;opacity:0}.ga-review-note{animation-name:ga-review-note;opacity:0}.ga-key-1 .ga-keycap{animation-name:ga-key-1}.ga-key-2 .ga-keycap{animation-name:ga-key-2}.ga-key-3 .ga-keycap{animation-name:ga-key-3}@keyframes ga-review-1{0%,22%{opacity:1}24%,86%{opacity:0}88%,to{opacity:1}}@keyframes ga-review-2{0%,22%{opacity:0}24%,57%{opacity:1}59%,to{opacity:0}}@keyframes ga-review-3{0%,57%{opacity:0}59%,86%{opacity:1}88%,to{opacity:0}}@keyframes ga-review-note{0%,32%{opacity:0}36%,95%{opacity:1}98%,to{opacity:0}}@keyframes ga-key-1{0%,84%,92%,to{fill:var(--panel);stroke:var(--border-strong)}86%,90%{fill:var(--soft);stroke:var(--accent)}}@keyframes ga-key-2{0%,20%,28%,to{fill:var(--panel);stroke:var(--border-strong)}22%,26%{fill:var(--soft);stroke:var(--accent)}}@keyframes ga-key-3{0%,55%,63%,to{fill:var(--panel);stroke:var(--border-strong)}57%,61%{fill:var(--soft);stroke:var(--accent)}}.ga-map-list{animation-name:ga-map-list}.ga-map-events{animation-name:ga-map-events;opacity:0}.ga-map-selected{animation-name:ga-map-selected;opacity:0}.ga-map-cursor{animation-name:ga-map-cursor}@keyframes ga-map-list{0%,34%{opacity:1}37%,72%{opacity:0}75%,to{opacity:1}}@keyframes ga-map-events{0%,34%{opacity:0}37%,72%{opacity:1}75%,to{opacity:0}}@keyframes ga-map-selected{0%,34%{opacity:0}37%,72%{opacity:1}75%,to{opacity:0}}@keyframes ga-map-cursor{0%{transform:translate(300px,240px)}26%,38%{transform:translate(118px,92px)}50%,60%{transform:translate(400px,150px)}68%,76%{transform:translate(354px,21px)}90%,to{transform:translate(300px,240px)}}.ga-count-pick{animation-name:ga-count-pick;opacity:0}.ga-count-hourly{animation-name:ga-count-hourly;opacity:0}.ga-count-bar{animation-name:ga-count-bar;transform-box:fill-box;transform-origin:center bottom}.ga-count-file{animation-name:ga-count-file;opacity:0}.ga-counting-cursor{animation-name:ga-counting-cursor}@keyframes ga-count-pick{0%,24%{opacity:0}27%,94%{opacity:1}98%,to{opacity:0}}@keyframes ga-count-hourly{0%,24%{opacity:0}28%,94%{opacity:1}98%,to{opacity:0}}@keyframes ga-count-bar{0%,25%{transform:scaleY(0)}36%,to{transform:scaleY(1)}}@keyframes ga-count-file{0%,71%{opacity:0;transform:translateY(-6px)}75%,94%{opacity:1;transform:translateY(0)}98%,to{opacity:0;transform:translateY(-6px)}}@keyframes ga-counting-cursor{0%{transform:translate(300px,250px)}18%,30%{transform:translate(60px,156px)}50%{transform:translate(240px,250px)}62%,76%{transform:translate(424px,37px)}90%,to{transform:translate(300px,250px)}}.ga-admin-knob{animation-name:ga-admin-knob}.ga-admin-track-on{animation-name:ga-admin-on;opacity:0}.ga-admin-old{animation-name:ga-admin-old}.ga-admin-new{animation-name:ga-admin-new;opacity:0}.ga-admin-save{animation-name:ga-admin-save}.ga-admin-toast{animation-name:ga-admin-toast;opacity:0}.ga-admin-cursor{animation-name:ga-admin-cursor}@keyframes ga-admin-knob{0%,20%{transform:translate(0)}24%,94%{transform:translate(18px)}98%,to{transform:translate(0)}}@keyframes ga-admin-on{0%,20%{opacity:0}24%,94%{opacity:1}98%,to{opacity:0}}@keyframes ga-admin-old{0%,40%{opacity:1}42%,94%{opacity:0}98%,to{opacity:1}}@keyframes ga-admin-new{0%,40%{opacity:0}42%,94%{opacity:1}98%,to{opacity:0}}@keyframes ga-admin-save{0%,61%{opacity:1}63%{opacity:.7}66%,to{opacity:1}}@keyframes ga-admin-toast{0%,63%{opacity:0;transform:translateY(6px)}67%,92%{opacity:1;transform:translateY(0)}96%,to{opacity:0;transform:translateY(6px)}}@keyframes ga-admin-cursor{0%{transform:translate(250px,250px)}14%,24%{transform:translate(392px,81px)}34%,46%{transform:translate(372px,132px)}56%,68%{transform:translate(366px,226px)}85%,to{transform:translate(250px,250px)}}.ga-acct-modal{animation-name:ga-acct-modal;opacity:0}.ga-acct-knob{animation-name:ga-acct-knob}.ga-acct-track-on{animation-name:ga-acct-on;opacity:0}.ga-acct-row{animation-name:ga-acct-row}.ga-acct-disabled{animation-name:ga-acct-disabled;opacity:0}.ga-acct-save{animation-name:ga-acct-save}.ga-accounts-cursor{animation-name:ga-accounts-cursor}@keyframes ga-acct-modal{0%,19%{opacity:0}22%,56%{opacity:1}59%,to{opacity:0}}@keyframes ga-acct-knob{0%,40%{transform:translate(0)}43%,to{transform:translate(18px)}}@keyframes ga-acct-on{0%,40%{opacity:0}43%,to{opacity:1}}@keyframes ga-acct-row{0%,58%{opacity:1}61%,95%{opacity:.45}98%,to{opacity:1}}@keyframes ga-acct-disabled{0%,58%{opacity:0}61%,95%{opacity:1}98%,to{opacity:0}}@keyframes ga-acct-save{0%,53%{opacity:1}55%{opacity:.7}57%,to{opacity:1}}@keyframes ga-accounts-cursor{0%{transform:translate(250px,250px)}14%,22%{transform:translate(388px,98px)}34%,44%{transform:translate(330px,157px)}50%,58%{transform:translate(316px,209px)}72%{transform:translate(250px,240px)}to{transform:translate(250px,250px)}}.ga-figure.is-paused .ga-svg *{animation-play-state:paused}@media(prefers-reduced-motion:reduce){.ga-svg *{animation-delay:calc(var(--ga-still) * -1)!important;animation-play-state:paused!important}.ga-svg .ga-ripple,.ga-toggle{display:none}}@media print{.ga-figure{break-inside:avoid}.ga-svg *{animation-delay:calc(var(--ga-still) * -1)!important;animation-play-state:paused!important}.ga-svg .ga-ripple,.ga-toggle{display:none}}.help-page{--help-sticky-top: calc(var(--topbar-h) + var(--space-3));display:flex;flex-direction:column;gap:var(--space-4);width:100%;padding-bottom:var(--space-6)}.help-hero{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--space-4);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:var(--space-5)}.help-hero-title{font-size:var(--text-xl);font-weight:700;letter-spacing:-.02em}.help-hero p:not(.section-kicker,.help-hero-title){margin-top:var(--space-2);color:var(--muted);font-size:var(--text-sm);line-height:1.7}.help-print{display:inline-flex;align-items:center;gap:var(--space-2)}.help-layout{display:grid;grid-template-columns:200px minmax(0,1fr);align-items:start;gap:var(--space-4)}.help-toc{position:sticky;top:var(--help-sticky-top);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:var(--space-4)}.help-toc-title{margin-bottom:var(--space-2);color:var(--muted);font-size:var(--text-xs);font-weight:600}.help-toc ol{display:grid;gap:2px;margin:0;padding:0;list-style:none}.help-toc a{display:block;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);color:var(--text);font-size:var(--text-sm);text-decoration:none}.help-toc a:hover,.help-toc a:focus-visible{background:var(--soft);color:var(--accent)}.help-content,.release-list{display:grid;gap:var(--space-4);min-width:0}.release-list{margin:0;padding:0;list-style:none}.help-section{scroll-margin-top:var(--help-sticky-top);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-sm);padding:var(--space-5);font-size:var(--text-base);line-height:1.8}.help-section>h2{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--text-lg);font-weight:700}.help-section h3{margin:var(--space-4) 0 var(--space-1);font-size:var(--text-base);font-weight:700}.help-section p+p,.help-section p+ul,.help-section ul+p{margin-top:var(--space-2)}.help-section ul,.help-section ol{display:grid;gap:var(--space-1);margin:0;padding-left:1.4em}.help-audience{border-radius:999px;background:var(--soft);color:var(--accent);padding:2px var(--space-2);font-size:var(--text-xs);font-weight:600;line-height:1.6}.help-kbd{display:inline-block;min-width:1.6em;border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;background:var(--input);padding:0 .4em;font-family:inherit;font-size:var(--text-sm);line-height:1.5;text-align:center}.help-tip{display:flex;gap:var(--space-2);margin-top:var(--space-3);border-radius:var(--radius-sm);background:var(--soft);padding:var(--space-3);font-size:var(--text-sm)}.help-tip .icon{flex:0 0 auto;margin-top:.3em;color:var(--accent)}.help-roles,.help-faq{display:grid;gap:var(--space-3);margin:var(--space-3) 0 0}.help-roles>div{display:grid;grid-template-columns:7em minmax(0,1fr);gap:var(--space-3);border-top:1px solid var(--border);padding-top:var(--space-3)}.help-roles dt,.help-faq dt{font-weight:700}.help-roles dd,.help-faq dd{margin:0;color:var(--muted)}.help-faq>div+div{border-top:1px solid var(--border);padding-top:var(--space-3)}.release-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1)}.release-version{font-size:var(--text-lg);font-weight:700;font-variant-numeric:tabular-nums}.release-head time{margin-left:auto;color:var(--muted);font-size:var(--text-sm)}.release-summary{color:var(--muted)}.help-section .release-changes{margin-top:var(--space-3);padding-left:0;list-style:none}.release-changes li{display:flex;align-items:flex-start;gap:var(--space-3)}.release-kind{flex:0 0 auto;margin-top:.25em;border-radius:6px;padding:0 var(--space-2);font-size:var(--text-xs);font-weight:600;line-height:1.8}.release-kind-new{background:var(--success-soft);color:var(--success)}.release-kind-improved{background:var(--soft);color:var(--accent)}.release-kind-fixed{background:var(--danger-soft);color:var(--danger)}@media(max-width:860px){.help-layout{grid-template-columns:minmax(0,1fr)}.help-toc{position:static}.help-roles>div{grid-template-columns:minmax(0,1fr);gap:var(--space-1)}}@media(prefers-reduced-motion:no-preference){html:has(.help-page){scroll-behavior:smooth}}@media print{.shell:has(.help-page){padding-left:0}.shell:has(.help-page) :is(.shell-sidebar,.shell-topbar,.shell-scrim){display:none}.help-print,.help-toc{display:none}.help-layout{display:block}.help-page,.help-page *{color:#000}.help-hero,.help-section{background:none;box-shadow:none;border:1px solid #ccc;break-inside:avoid-page}.help-section{margin-bottom:12px}}
