:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#121417;--panel:#1a1d21;--panel-2:#22262b;--border:#2e333a;--text:#e3e7ea;--muted:#8b949c;--accent:#46dc78;--accent-text:#08130c;--blue:#5abeff;--danger:#e0574a;--mono:ui-monospace, "SF Mono", "Cascadia Mono", "JetBrains Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--bg);color:var(--text);font:14px/1.4 system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,sans-serif}h1,h2{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.ok{color:var(--accent);margin:0}.error{color:#ff8a7e;margin:0}button,select,input[type=text],input[type=password],input[type=number],input[type=date],input[type=time]{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;min-height:34px;padding:6px 12px}input[type=text],input[type=password],input[type=number]{width:100%;min-width:0;padding:6px 8px}button{cursor:pointer;white-space:nowrap}button:hover:not(:disabled){background:#2a2f35;border-color:#464d56}button:disabled,select:disabled,input:disabled{opacity:.45;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--blue);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.primary:hover:not(:disabled){background:#5ce88b;border-color:#5ce88b}button.danger:not(:disabled){color:#ff8a7e}.icon-button{padding:4px 10px;font-size:17px;line-height:1}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:0}label.check{cursor:pointer;align-items:center;gap:8px;display:flex}.segmented{display:inline-flex}.segmented button{border-radius:0;padding:6px 10px}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0;margin-left:-1px}.segmented button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.app{flex-direction:column;min-height:100dvh;display:flex}.top-bar{background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 16px;display:flex}.top-bar h1{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;overflow:hidden}.top-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.banner{margin:12px 16px 0}.empty{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;display:flex}.grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));align-content:start;gap:8px;padding:8px;display:grid}@media (min-width:900px){.grid.count-2,.grid.count-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.app.fit{height:100dvh;min-height:0;overflow:hidden}.grid.fit{place-content:center;min-height:0;overflow:hidden}.tile{border:1px solid var(--border);aspect-ratio:16/9;background:#000;border-radius:8px;width:100%;min-height:0;padding:0;display:block;position:relative;overflow:hidden}.tile:hover:not(:disabled){border-color:var(--accent);background:#000}.tile-name{pointer-events:none;background:#0009;border-radius:4px;padding:2px 8px;font-size:13px;font-weight:600;position:absolute;bottom:8px;left:8px}.live{background:#000;width:100%;height:100%;position:relative}.live video{object-fit:contain;width:100%;height:100%;display:block}.live-status{text-align:center;color:var(--muted);pointer-events:none;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:13px;display:flex;position:absolute;inset:0}.live-status.error{color:#ffb3aa}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.camera-view{background:#000;flex-direction:column;flex:1;min-height:0;display:flex}.view-bar{background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.view-title{font-size:15px;font-weight:600}.view-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.view-video{flex:1;height:auto;min-height:0}.camera-view .view-video video{position:absolute;inset:0}.zoomable{touch-action:none;-webkit-user-select:none;user-select:none;cursor:zoom-in;position:relative;overflow:hidden}.zoomable.zoomed{cursor:grab}.zoomable.zoomed:active{cursor:grabbing}.zoom-content{transform-origin:0 0;will-change:transform;position:absolute;inset:0}.zoom-controls{align-items:center;gap:4px;display:inline-flex}.zoom-level{text-align:center;min-width:3.2em;color:var(--muted);font-size:13px}.camera-view:fullscreen .view-bar{opacity:0;transition:opacity .3s}.camera-view:fullscreen .view-bar:hover{opacity:1}.dialog{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:10px;width:min(480px,100vw - 32px);padding:0;box-shadow:0 20px 60px #0009}.dialog.wide{width:min(760px,100vw - 32px)}.dialog::backdrop{background:#0000008c}.dialog form{flex-direction:column;max-height:calc(100dvh - 48px);padding:18px 20px;display:flex}.dialog h2{margin-bottom:14px;font-size:16px}.dialog-body{flex:auto;min-height:0;margin:-6px;padding:6px;overflow-y:auto}.dialog-actions{border-top:1px solid var(--border);flex:none;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:14px;display:flex}.dialog-extra-actions{align-items:center;gap:8px;margin-right:auto;display:flex}@media (max-width:600px){.dialog,.dialog.wide,.dialog.event-dialog{width:calc(100vw - 16px)}.dialog form{max-height:calc(100dvh - 16px);padding:14px 12px}.dialog-actions{flex-wrap:wrap;margin-top:12px;padding-top:12px}.dialog-extra-actions{flex-wrap:wrap;width:100%;margin-right:0}.event-dialog .dialog-extra-actions .segmented{width:100%}.event-dialog .dialog-extra-actions .segmented button{flex:1;min-height:40px}}.settings-dialog .dialog-body{min-height:min(380px,100dvh - 200px)}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:14px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0}.tabs button:hover:not(:disabled){color:var(--text);background:0 0}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.tab-body{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.form{flex-direction:column;gap:10px;display:flex}.tab-body.form{align-items:stretch}.form label:not(.check){color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.form-row{flex-wrap:wrap;gap:10px;display:flex}.form-row .grow{flex:160px}.form-row .narrow{flex:0 0 96px}.hint{color:var(--muted);margin:-4px 0 0;font-size:12px}.row-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}table.list{border-collapse:collapse;width:100%}table.list th,table.list td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}table.list th{color:var(--muted);font-size:12px;font-weight:500}table.list tr.disabled td:not(.row-actions){opacity:.55}.users{flex-direction:column;align-items:flex-start;gap:12px;width:100%;display:flex}.user-form{border:1px solid var(--border);border-radius:8px;width:100%;padding:12px}@media (max-width:560px){table.list th:nth-child(3),table.list td:nth-child(3){display:none}}.view-switch{margin-left:12px}.tile-badges{pointer-events:none;flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex;position:absolute;top:8px;right:8px}.badge{color:#fff;background:#e0574ae6;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.badge-link{pointer-events:auto;cursor:pointer}.badge-link:hover{background:#f06456;text-decoration:underline}.events{flex:1;padding:8px 16px 16px}.events-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.app.pinned{height:100dvh;min-height:0;overflow:hidden}.app.pinned .events{flex-direction:column;min-height:0;padding:8px 0 0;display:flex}.app.pinned .events-bar,.app.pinned .events>.banner{margin-left:16px;margin-right:16px}.app.pinned .events-scroll{overscroll-behavior:contain;flex:1;min-height:0;padding:0 16px 16px;overflow-y:auto}.events-actions{flex-wrap:wrap;gap:8px;margin-left:auto;display:inline-flex}.event-cell{display:flex;position:relative}.event-cell>.event-card{flex:1;min-width:0}.event-cell.selected>.event-card{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}.event-check{cursor:pointer;background:#0000008c;border-radius:6px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:6px;left:6px}.event-check input{cursor:pointer;width:18px;height:18px;accent-color:var(--accent);margin:0}@media (hover:hover){.event-check{opacity:0;transition:opacity .12s}.event-cell:hover .event-check,.event-check:focus-within,.event-grid.selecting .event-check{opacity:1}}.events-goto{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.events-goto input:disabled{opacity:.5}.events-day{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);grid-column:1/-1;margin:10px 0 0;font-size:13px;font-weight:600}.events-day:first-child{margin-top:0}.events-empty{text-align:center;margin:24px 0}.event-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:10px;display:grid}.event-card{text-align:left;white-space:normal;border-radius:8px;flex-direction:column;padding:0;display:flex;overflow:hidden}.event-card.ongoing{border-color:var(--danger)}.event-meta{flex-direction:column;gap:1px;padding:6px 10px 8px;font-size:13px;display:flex}.event-time{font-size:12px}.live-dot{color:#ff8a7e;font-weight:600}.events-more{justify-content:center;margin-top:14px;display:flex}.snap{background:#000;width:100%;position:relative;overflow:hidden}.snap img{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.snap-preview{object-fit:fill;opacity:0;pointer-events:none;width:100%;height:100%;transition:opacity .15s;position:absolute;inset:0}.snap-preview.on{opacity:1}.snap:has(.snap-preview.on) .snap-box{display:none}.snap-box{pointer-events:none;border:2px solid #ffbe28;border-radius:2px;position:absolute;box-shadow:0 0 0 1px #00000080}.snap-box span{color:#000;white-space:nowrap;background:#ffbe28;padding:0 4px;font-size:11px;font-weight:700;position:absolute;bottom:100%;left:-2px}.event-card .snap-box span{display:none}.dialog.event-dialog{width:min(1000px,100vw - 32px)}.event-detail{margin:8px 0 0;font-size:12px}a.button{font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;align-items:center;min-height:34px;padding:6px 12px;text-decoration:none;display:inline-flex}a.button:hover{background:#2a2f35;border-color:#464d56}.detection fieldset{border:1px solid var(--border);border-radius:8px;margin:0;padding:8px 12px 12px}.detection legend{color:var(--muted);padding:0 4px;font-size:13px}.label-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px 12px;display:grid}.label-grid label.check{color:var(--text);font-size:13px}.detect-status{font-size:13px}table.list.stats td,table.list.stats th{padding:4px 6px;font-size:12px}@media (max-width:560px){.view-switch{margin-left:0}.top-bar{flex-wrap:wrap}}.about-button{color:var(--muted);background:0 0;border-color:#0000;min-height:0;padding:2px 8px;font-size:12px}.about-button:hover:not(:disabled){border-color:var(--border);color:var(--text);background:0 0}.dialog.about-dialog{width:min(420px,100vw - 32px)}.about{text-align:center;flex-direction:column;align-items:center;font-size:13px;line-height:1.5;display:flex}.about-logo{aspect-ratio:1;filter:drop-shadow(0 0 18px #aa3ce64d);width:220px;max-width:70%}.about-name{margin:12px 0 2px;font-size:18px}.about-by{color:var(--muted);margin:0 0 10px}.about p:not(.about-by){margin:0 0 10px}.about a{color:var(--blue)}.about-credits{color:var(--muted);font-size:12px}.sign-in-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.sign-in{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;width:100%;max-width:340px;padding:24px;display:flex}.sign-in img{filter:drop-shadow(0 0 18px #aa3ce64d);align-self:center}.sign-in h1{text-align:center;font-size:20px}.sign-in label:not(.check){color:var(--muted);flex-direction:column;gap:4px;font-size:13px;display:flex}.sign-in input:not([type=checkbox]){font-size:16px}.sign-in p.muted{text-align:center;margin:0;font-size:12px}.recording-player{flex-direction:column;gap:8px;display:flex}.recording-video{aspect-ratio:16/9;background:#000;border-radius:6px;width:100%;max-height:70vh}.time-bar-wrap{flex-direction:column;gap:2px;display:flex;position:relative}.tb-add{z-index:3;color:#000;cursor:pointer;background:#fff;border:1px solid #0009;border-radius:4px;place-items:center;width:20px;height:18px;padding:0;font-size:12px;line-height:1;display:grid;position:absolute;top:32px;transform:translate(-50%)}.tb-add:hover:not(:disabled){background:#ffbe28}.tb-add:disabled{cursor:wait;opacity:.7}.time-bar,.day-bar{background:var(--panel-2);border:1px solid var(--border);cursor:pointer;touch-action:none;border-radius:4px;height:28px;position:relative;overflow:visible}.time-bar:focus-visible,.day-bar:focus-visible{outline:2px solid var(--blue);outline-offset:1px}.tb-recorded{pointer-events:none;background:#2f5d43;position:absolute;top:0;bottom:0}.tb-event{pointer-events:none;background:#ffbe2873;border-left:2px solid #ffbe28;min-width:2px;position:absolute;top:0;bottom:0}.tb-mark{pointer-events:none;background:#ffbe28;width:2px;margin-left:-1px;position:absolute;top:-3px;bottom:-3px}.tb-head{pointer-events:none;background:#fff;border-radius:2px;width:3px;margin-left:-1px;position:absolute;top:-4px;bottom:-4px;box-shadow:0 0 0 1px #0009}.tb-hover{pointer-events:none;background:#ffffff80;width:1px;position:absolute;top:0;bottom:0}.tb-hover span{color:var(--text);white-space:nowrap;background:#000;border-radius:4px;padding:1px 6px;font-size:11px;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.tb-labels{justify-content:space-between;display:flex}.player-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.player-controls .grow{flex:1}.player-controls .play{min-width:44px}.player-time{min-width:150px;font-size:13px}.player-time-edit{color:var(--text);cursor:text;background:0 0;border:1px dashed #0000;justify-content:flex-start;padding:4px 6px}.player-time-edit:hover:not(:disabled){border-color:var(--border);background:0 0}.player-goto{align-items:center;gap:4px;display:flex}.player-goto input{font:inherit}.event-no-video{text-align:center;padding:40px 12px}.recordings{flex-direction:column;flex:1;gap:10px;width:100%;max-width:1400px;margin:0 auto;padding:8px 16px 16px;display:flex}.recordings .events-bar{margin-bottom:0}.recordings .recording-video{min-height:200px;max-height:calc(100vh - 290px)}.day-bar-wrap{flex-direction:column;gap:2px;display:flex}.day-bar{height:34px}.day-mark{cursor:pointer;background:0 0;border:none;border-radius:0;width:9px;min-height:0;margin-left:-4px;padding:0;position:absolute;top:-4px;bottom:-4px}.day-mark:after{content:"";background:#ffbe28;width:2px;position:absolute;top:0;bottom:0;left:3px}.day-mark:hover:after{background:#fff;width:3px}.day-window{border:2px solid var(--blue);pointer-events:none;border-radius:3px;position:absolute;top:0;bottom:0}.day-now{background:var(--danger);pointer-events:none;width:2px;position:absolute;top:-4px;bottom:-4px}.day-labels{height:16px;position:relative}.day-labels span{position:absolute;transform:translate(-50%)}.day-labels span:first-child{transform:none}.day-labels span:last-child{transform:translate(-100%)}.usage{flex-direction:column;gap:4px;display:flex}.usage-bar{background:var(--panel-2);border:1px solid var(--border);border-radius:5px;height:10px;display:flex;overflow:hidden}.usage-rec{background:#2f8a57}.usage-clip{background:#ffbe28}.hint.warn{color:#ffbe28}@media (max-width:600px){.player-time{flex-basis:100%;order:-1;min-width:0}}.tb-sel{pointer-events:none;background:#5abeff47;position:absolute;top:0;bottom:0}.tb-sel-edge{cursor:ew-resize;z-index:2;width:14px;margin-left:-7px;position:absolute;top:-6px;bottom:-6px}.tb-sel-edge:after{content:"";background:var(--blue);border-radius:2px;width:4px;position:absolute;top:0;bottom:0;left:5px;box-shadow:0 0 0 1px #0009}.selection-controls{border-top:1px solid var(--border);padding-top:6px}.selection-text{min-width:0}a.button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}a.button.primary:hover{color:var(--accent-text);filter:brightness(1.1)}.tb-mark{pointer-events:auto;cursor:pointer;z-index:1;background:0 0;width:11px;margin-left:-5px}.tb-mark:after{content:"";background:#ffbe28;width:2px;position:absolute;top:0;bottom:0;left:4px}.tb-mark.on:after,.day-mark.on:after{background:#fff;width:4px;left:3px}.tb-tip{z-index:5;color:var(--text);white-space:nowrap;pointer-events:none;background:#0b0c0e;border:1px solid #ffbe28;border-radius:6px;flex-direction:column;gap:1px;padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:calc(100% + 8px);box-shadow:0 4px 14px #00000080}.tb-tip strong{color:#ffbe28;font-size:13px}.tb-tip .muted{font-size:11px}.day-window{pointer-events:auto;cursor:grab;touch-action:none;z-index:3;background:#5abeff1f;min-width:10px}.day-window:before{content:"";position:absolute;inset:-6px -8px}.day-window:hover{background:#5abeff38}.day-window.dragging{cursor:grabbing;background:#5abeff4d}.share{display:inline-flex;position:relative}.share-menu{position:relative}.share-menu>summary{cursor:pointer;-webkit-user-select:none;user-select:none;font:inherit;color:var(--text);background:var(--panel-2);border:1px solid var(--border);border-radius:6px;align-items:center;min-height:34px;padding:6px 12px;list-style:none;display:inline-flex}.share-menu>summary:hover,.share-menu[open]>summary{background:#2a2f35;border-color:#464d56}.share-menu>summary::-webkit-details-marker{display:none}.share-menu-items{z-index:5;background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;min-width:140px;max-height:60vh;padding:6px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 6px 20px #0006}.share-menu-heading{border-top:1px solid var(--border);margin-top:2px;padding:6px 8px 2px}.share-menu-items>*{white-space:nowrap;justify-content:flex-start}.share-tip{z-index:6;white-space:nowrap;color:var(--text);background:var(--panel-2);border:1px solid var(--border);pointer-events:none;border-radius:6px;padding:4px 10px;font-size:13px;animation:1.8s forwards share-tip;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 4px 14px #0006}@keyframes share-tip{0%{opacity:0;transform:translate(-50%,4px)}10%,75%{opacity:1;transform:translate(-50%)}to{opacity:0}}
