:root{--bg:#111113;--panel:#1b1b1f;--panel-2:#24242a;--line:#34343c;--text:#ececf1;--muted:#9a9aa6;--accent:#4f8cff;--accent-text:#fff;--warn:#f5a524;--danger:#ff5c5c;--ok:#3ecf8e;--snap:#ff3b30;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:14px/1.4 -apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}kbd{border:1px solid var(--line);background:var(--panel-2);border-bottom-width:2px;border-radius:5px;padding:1px 6px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace}.spacer{flex:1}.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 260px;height:100dvh;display:grid}.topbar{border-bottom:1px solid var(--line);background:var(--panel);-webkit-app-region:drag;grid-column:1/-1;align-items:center;gap:8px;padding:8px 12px;display:flex}.topbar>*{-webkit-app-region:no-drag}.main{min-width:0;min-height:0;position:relative;overflow:hidden}.rail{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;gap:10px;min-height:0;padding:12px;display:flex;overflow:hidden}@media (width<=720px){.app{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr)}.rail{border-left:0;border-top:1px solid var(--line);flex-direction:row;align-items:stretch}.rail .pip{flex:none;width:140px}.rail .snap{flex:1;min-height:64px;margin-top:0}.rail-link{display:none}}.btn{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;align-items:center;gap:6px;height:36px;padding:0 14px;display:inline-flex}.btn:hover:not(:disabled){border-color:#4a4a55}.btn-ghost{background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--panel-2)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}.select{border:1px solid var(--line);background:var(--panel-2);border-radius:8px;max-width:240px;height:36px;padding:0 8px}.seg{background:var(--bg);border:1px solid var(--line);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.seg-btn{height:30px;color:var(--muted);background:0 0;border:0;border-radius:7px;padding:0 12px}.seg-btn.on{background:var(--panel-2);color:var(--text)}.count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:2px}.pill{background:var(--accent);color:var(--accent-text);white-space:nowrap;border-radius:99px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-block}.pill-muted{background:var(--panel-2);color:var(--muted)}.pill-warn{background:var(--warn);color:#000}.link{color:var(--accent);background:0 0;border:0;padding:0}.danger{color:var(--danger)!important}.menu{position:relative}.session-title{text-overflow:ellipsis;white-space:nowrap;max-width:34vw;font-weight:600;overflow:hidden}.caret{color:var(--muted)}.menu-pop{z-index:20;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);min-width:260px;max-height:60vh;padding:6px;position:absolute;top:40px;left:0;overflow:auto;box-shadow:0 12px 40px #00000080}.menu-item{text-align:left;background:0 0;border:0;border-radius:6px;width:100%;padding:8px 10px;display:block}.menu-item:hover,.menu-item.on{background:var(--panel-2)}.menu-sep{background:var(--line);height:1px;margin:6px 0}.live-full{background:#000;position:absolute;inset:0;overflow:hidden}.live-video{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.live-msg{color:var(--muted);text-align:center;padding:24px;position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.hints{color:var(--muted);background:#0000008c;border-radius:8px;flex-wrap:wrap;gap:4px 14px;margin:0;padding:8px 12px;font-size:12px;list-style:none;display:flex;position:absolute;bottom:12px;left:12px}.pip{aspect-ratio:16/10;background:#000;border-radius:8px;flex:none;position:relative;overflow:hidden}.pip-video{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.pip-overlay{color:var(--muted);text-align:center;background:#000000b3;border:0;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:12px;display:flex;position:absolute;inset:0}.pip-retry{color:var(--accent);font-weight:600}.pip-off{color:var(--text);opacity:0;background:#0009;border:0;border-radius:6px;padding:3px 8px;font-size:11px;transition:opacity .15s;position:absolute;top:6px;right:6px}.pip:hover .pip-off,.pip-off:focus-visible{opacity:1}.live-msg p{margin:0 0 10px}.drop-overlay{z-index:40;border:3px dashed var(--accent);pointer-events:none;background:#111113bf;place-items:center;display:grid;position:fixed;inset:0}.drop-card{background:var(--panel);border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:20px 28px;font-size:16px;display:flex}.effect-warning{border:1px solid var(--warn);color:var(--text);background:#f5a5241f;border-radius:8px;margin:0;padding:8px 10px;font-size:12px}.effect-warning strong{color:var(--warn)}.review-badge{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel-2);color:var(--muted);text-align:left;align-items:center;gap:10px;padding:10px 12px;display:flex}.review-badge.has-items{color:var(--text);border-color:var(--warn)}.review-badge.active{background:#2e2616}.review-count{font-variant-numeric:tabular-nums;min-width:28px;font-size:22px;font-weight:700}.review-badge.has-items .review-count{color:var(--warn)}.rail-link{justify-content:center}.snap{border:1px solid var(--line);background:var(--panel-2);-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:120px;margin-top:auto;display:flex}.snap:active:not(:disabled){background:#2c2c33;transform:scale(.97)}.snap-dot{background:var(--snap);width:56px;height:56px;box-shadow:0 0 0 4px var(--panel-2), 0 0 0 6px var(--snap);border-radius:50%}.snap-label{font-weight:600}.editor{background:#000;flex-direction:column;display:flex;position:absolute;inset:0}.editor-empty{color:var(--muted);justify-content:center;align-items:center;gap:12px}.editor-stage-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:20px;display:flex;overflow:hidden}.editor-stage{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;flex:none;position:relative}.editor-img{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.editor-svg{pointer-events:none;position:absolute;inset:0;overflow:visible}.editor-mask{fill:#00000080}.editor-quad{fill:none;stroke:var(--accent);stroke-width:2px}.editor-quad.invalid{stroke:var(--danger);stroke-dasharray:6 4}.handle{cursor:grab;touch-action:none;border-radius:50%;width:44px;height:44px;position:absolute;top:-22px;left:-22px}.handle:after{content:"";border:2px solid var(--accent);background:#4f8cff40;border-radius:50%;position:absolute;inset:13px}.handle.selected:after{background:var(--accent);border-color:#fff}.is-dragging,.is-dragging .handle{cursor:grabbing}.loupe{z-index:2;pointer-events:none;background-repeat:no-repeat;border:2px solid #fff;border-radius:50%;width:150px;height:150px;position:absolute;box-shadow:0 6px 24px #0009}.loupe:before,.loupe:after{content:"";background:var(--accent);position:absolute}.loupe:before{width:2px;height:40px;top:55px;left:74px}.loupe:after{width:40px;height:2px;top:74px;left:55px}.editor-bar{z-index:3;border-top:1px solid var(--line);background:var(--panel);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:10px 12px;display:flex;position:relative}.editor-meta{align-items:center;gap:6px;display:flex}.label-input{border:1px solid var(--line);background:var(--bg);border-radius:8px;flex:1;min-width:140px;height:36px;padding:0 10px}.label-input:focus{outline:2px solid var(--accent);outline-offset:-1px}.slide-nav{align-items:center;gap:4px;display:inline-flex}.slide-nav .icon-btn{min-width:30px;font-size:16px;line-height:1}.slide-pos{text-align:center;min-width:52px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.pill-dup{color:var(--warn);cursor:pointer;background:#f5a5242e;border:0}.pill-dup:hover{background:#f5a5244d}.edge-notice{z-index:5;border:1px solid var(--line);color:var(--text);pointer-events:none;background:#1b1b1feb;border-radius:12px;padding:12px 22px;font-size:16px;font-weight:600;animation:1.6s forwards edge-notice;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 30px #00000080}@keyframes edge-notice{0%{opacity:0;transform:translate(-50%,-40%)}12%{opacity:1;transform:translate(-50%,-50%)}75%{opacity:1}to{opacity:0}}.confirm{justify-content:center;min-width:120px;height:44px;font-size:15px}.gallery{flex-direction:column;display:flex;position:absolute;inset:0}.gallery-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 12px;display:flex}.sensitivity{color:var(--muted);align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.threshold-field{text-align:center;border:1px solid var(--line);background:var(--bg);font-variant-numeric:tabular-nums;border-radius:6px;flex:none;width:3.2em;height:26px;padding:0 4px;font-size:13px}.threshold-field:hover{border-color:#4a4a55}.threshold-field:focus{outline:2px solid var(--accent);outline-offset:-1px}.empty{color:var(--muted);margin:auto}.grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));align-content:start;gap:14px;margin:0;padding:14px;list-style:none;display:grid;overflow:auto}.tile{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);flex-direction:column;gap:6px;padding:8px;display:flex;position:relative}.tile.is-unreviewed{border-color:#6b5520}.tile.is-dup{border-color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}.tile.is-dragging{opacity:.4}.tile.drop-before:before,.tile.drop-after:after{content:"";background:var(--accent);border-radius:2px;width:3px;position:absolute;top:6px;bottom:6px}.tile.drop-before:before{left:-9px}.tile.drop-after:after{right:-9px}.tile-thumb{aspect-ratio:16/9;background:#000;border:0;border-radius:6px;padding:0;display:block;position:relative;overflow:hidden}.tile-thumb img,.tile-thumb .img-placeholder{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.tile-num{font-variant-numeric:tabular-nums;background:#000000b3;border-radius:6px;min-width:22px;padding:1px 6px;font-size:12px;font-weight:600;position:absolute;top:6px;left:6px}.badge{border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;position:absolute;top:6px;right:6px}.badge-review{background:var(--warn);color:#000}.tile-busy{text-align:center;background:#000000b3;padding:3px;font-size:11px;position:absolute;inset:auto 0 0}.tile-label{background:0 0;border:1px solid #0000;border-radius:6px;height:30px;padding:0 6px;font-weight:600}.tile-label:hover:not(:disabled),.tile-label:focus{border-color:var(--line);background:var(--bg);outline:none}.tile-meta{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:0 6px;font-size:12px;overflow:hidden}.scrub-bar{background:var(--accent);height:3px;position:absolute;bottom:0;left:0}.motion-row{color:var(--text);background:#4f8cff1a;border-radius:6px;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:flex}.motion-row.muted{background:var(--panel-2);color:var(--muted)}.motion-row.warn{color:var(--warn);background:#f5a5241f}.motion-row span,.motion-row label{flex:1;min-width:0}.motion-row label{align-items:center;gap:6px;display:flex}.motion-row input{margin:0}.motion-remove{flex:none;font-size:12px}.dup-bar{color:var(--warn);background:#f5a5241f;border-radius:6px;align-items:center;gap:10px;padding:5px 8px;font-size:12px;display:flex}.dup-bar span{flex:1}.tile-actions{align-items:center;gap:4px;display:flex}.icon-btn{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;min-width:28px;height:28px;padding:0 8px;font-size:12px}.toasts{z-index:50;pointer-events:none;flex-direction:column;gap:6px;display:flex;position:fixed;top:62px;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--line);background:#2a2a31;border-radius:8px;padding:8px 14px;box-shadow:0 8px 24px #00000080}.toast-error{border-color:var(--danger)}
