:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:hsl(var(--background));color:hsl(var(--foreground));font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--background: 150 14% 96%;--foreground: 170 9% 12%;--card: 0 0% 100%;--card-foreground: 170 9% 12%;--popover: 0 0% 100%;--popover-foreground: 170 9% 12%;--primary: 185 100% 35%;--primary-foreground: 180 100% 97%;--secondary: 150 13% 92%;--secondary-foreground: 170 9% 16%;--muted: 150 13% 92%;--muted-foreground: 165 6% 42%;--accent: 184 55% 91%;--accent-foreground: 187 78% 20%;--destructive: 8 54% 51%;--destructive-foreground: 0 0% 98%;--border: 160 12% 83%;--input: 160 10% 70%;--ring: 185 100% 35%;--radius: .5rem;--ink: hsl(var(--foreground));--paper: hsl(var(--background));--panel: hsl(var(--card));--panel-alt: hsl(var(--muted));--line: hsl(var(--border));--line-strong: hsl(var(--input));--stage: #070b0b;--stage-soft: #101616;--glass: hsl(180 22% 4% / .66);--cyan: hsl(var(--primary));--cyan-soft: hsl(var(--accent));--orange: hsl(23 84% 55%);--green: hsl(148 43% 42%);--red: hsl(var(--destructive));--shadow: 0 18px 44px hsl(170 9% 12% / .12);--shadow-soft: 0 10px 26px hsl(170 9% 12% / .08)}:root[data-theme=dark]{color-scheme:dark;--background: 180 7% 7%;--foreground: 150 12% 94%;--card: 180 7% 10%;--card-foreground: 150 12% 94%;--popover: 180 7% 10%;--popover-foreground: 150 12% 94%;--primary: 184 86% 43%;--primary-foreground: 180 100% 8%;--secondary: 180 6% 15%;--secondary-foreground: 150 12% 92%;--muted: 180 6% 15%;--muted-foreground: 160 7% 66%;--accent: 184 55% 17%;--accent-foreground: 180 80% 86%;--destructive: 8 62% 52%;--destructive-foreground: 0 0% 98%;--border: 180 6% 20%;--input: 180 6% 27%;--ring: 184 86% 43%;--stage: #030606;--stage-soft: #080d0d;--glass: hsl(180 10% 7% / .72);--orange: hsl(25 92% 62%);--green: hsl(148 48% 52%);--shadow: 0 20px 54px hsl(0 0% 0% / .36);--shadow-soft: 0 12px 30px hsl(0 0% 0% / .24)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px;background:linear-gradient(90deg,hsl(var(--foreground) / .035) 1px,transparent 1px),linear-gradient(180deg,hsl(var(--foreground) / .028) 1px,transparent 1px),linear-gradient(180deg,hsl(var(--background)),hsl(var(--muted)));background-size:32px 32px}button,textarea,input{font:inherit}button,.button-like{min-height:38px;border:1px solid hsl(var(--input));border-radius:var(--radius);background:hsl(var(--secondary));color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px;font-size:.84rem;font-weight:700;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease,color .16s ease}button:hover:not(:disabled),.button-like:hover{border-color:hsl(var(--ring));background:hsl(var(--accent));color:hsl(var(--accent-foreground));box-shadow:var(--shadow-soft);transform:translateY(-1px)}button:focus-visible,.button-like:focus-visible,.button-like:focus-within,textarea:focus-visible,input:focus-visible{outline:3px solid hsl(var(--ring) / .28);outline-offset:2px}button:disabled{color:hsl(var(--muted-foreground) / .58);cursor:not-allowed;transform:none}.primary-button{border-color:hsl(var(--primary));background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.primary-button:hover:not(:disabled),.primary-button.button-like:hover{border-color:hsl(var(--primary));background:hsl(var(--primary) / .9);color:hsl(var(--primary-foreground))}.wide{width:100%}.spin{animation:spin .85s linear infinite}.app-shell{height:100dvh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;overflow:hidden;position:relative}.app-shell.viewer-expanded{grid-template-columns:minmax(0,1fr);gap:0;padding:0;min-height:100dvh;background:var(--stage)}.viewer-expanded .inspector{display:none}.viewer-expanded .workbench{height:100dvh;border:0;border-radius:0;box-shadow:none;grid-template-columns:minmax(0,1fr) 146px;grid-template-rows:minmax(0,1fr);background:var(--stage)}.viewer-expanded.has-focus-notes .workbench,.viewer-expanded.has-bookmarks.has-focus-notes .workbench{grid-template-columns:minmax(0,1fr) minmax(280px,320px) 146px}.viewer-expanded .top-bar{display:none}.workbench,.inspector{border:1px solid var(--line);background:hsl(var(--card) / .94);box-shadow:var(--shadow);min-width:0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.inspector{border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:auto}.inspector{display:none}.workbench{border:0;border-radius:0;box-shadow:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;overflow:hidden;min-height:0;position:relative}.file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.field-label{color:hsl(var(--muted-foreground));font-size:.78rem;font-weight:800}.note-box{width:100%;height:100%;border:0;resize:none;background:transparent;color:var(--ink);line-height:1.42}.note-box:focus{outline:none}.button-like{position:relative}.status-pill{display:flex;align-items:center;gap:8px;min-height:40px;border-radius:var(--radius);background:hsl(var(--muted));border:1px solid var(--line);padding:9px 10px;color:hsl(var(--secondary-foreground));font-size:.82rem;line-height:1.35;box-shadow:inset 0 1px hsl(var(--foreground) / .04)}.status-pill span{width:8px;height:8px;border-radius:999px;background:hsl(var(--muted-foreground));flex:0 0 auto;box-shadow:0 0 0 3px hsl(var(--muted-foreground) / .12)}.status-pill.ready span{background:var(--green);box-shadow:0 0 0 3px #4abf8129}.status-pill.loading span{background:var(--cyan);box-shadow:0 0 0 3px hsl(var(--ring) / .16)}.status-pill.error span{background:var(--red);box-shadow:0 0 0 3px hsl(var(--destructive) / .16)}.panel-title{display:flex;align-items:center;gap:8px;color:hsl(var(--card-foreground));font-size:.84rem;font-weight:850}.top-bar{position:relative;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:40px;margin:0;padding:4px 8px 4px 12px;border:1px solid var(--line);border-top:0;border-right:0;border-left:0;border-radius:0;background:hsl(var(--card) / .9);box-shadow:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.top-title{min-width:0}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0}.top-icon-button{width:30px;min-width:30px;min-height:30px;padding:0}.top-icon-button.active{border-color:hsl(var(--primary) / .55);background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.top-bar h1{margin:0;font-size:1rem;line-height:1.1;overflow-wrap:anywhere}.video-stat-chip{border:1px solid var(--line);border-radius:999px;background:hsl(var(--secondary));padding:5px 8px;color:hsl(var(--secondary-foreground));font-size:.72rem;font-weight:800;white-space:nowrap}.viewer{grid-row:2;min-height:0;background:var(--stage-soft);display:grid;place-items:center;position:relative;overflow:hidden;overscroll-behavior:contain;touch-action:none;-webkit-user-select:none;user-select:none}.viewer.is-dragging-file{background:linear-gradient(180deg,hsl(var(--primary) / .08),transparent 45%),var(--stage-soft);outline:2px solid hsl(var(--primary) / .78);outline-offset:-10px}.viewer.has-frame{cursor:default}.viewer.is-zoomed{cursor:grab}.viewer.is-dragging{cursor:grabbing}.viewer .capture-video{display:block;width:100%;height:100%;object-fit:contain;background:var(--stage)}.viewer .hidden-capture{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.viewer canvas{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;background:var(--stage);pointer-events:none;transform-origin:center center;will-change:transform}.empty-viewer{color:#e8f0ec;display:grid;place-items:center;gap:10px;font-weight:900;width:min(520px,calc(100% - 48px));min-height:240px;border:1px dashed rgba(232,240,236,.22);border-radius:8px;background:#ffffff09;padding:30px;text-align:center;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}.empty-viewer.is-dragging-file{border-color:var(--cyan);background:var(--cyan-soft);box-shadow:inset 0 0 0 2px hsl(var(--ring) / .22)}.empty-viewer svg{color:#e8f0ec}.empty-viewer strong{color:#e8f0ec;font-size:1.2rem}.empty-viewer span{color:#e8f0ecb3;font-size:.84rem}.empty-upload{margin-top:6px}.render-badge{position:absolute;right:14px;bottom:14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#111616c7;color:#eef6f3;font-size:.76rem;font-weight:850;padding:7px 9px;box-shadow:0 10px 28px #00000042}.detection-badge{position:absolute;top:14px;right:14px;display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(34,211,238,.36);border-radius:8px;background:#061012c7;color:#a8fbff;font-size:.75rem;font-weight:850;padding:7px 9px;box-shadow:0 10px 28px #00000042}.transport{position:relative;grid-row:4;z-index:7;display:grid;grid-template-columns:40px minmax(140px,1fr) 40px 40px 40px minmax(112px,136px) 40px 40px 40px minmax(58px,70px) 40px 40px 40px;align-items:center;gap:8px;margin:0;padding:6px 8px;border:1px solid var(--line);border-right:0;border-bottom:0;border-left:0;border-radius:0;background:hsl(var(--card) / .9);box-shadow:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.transport button{min-width:40px;padding:0}.transport button.active{border-color:hsl(var(--primary) / .55);background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.frame-jump{min-width:0;min-height:38px;border:1px solid var(--line);border-radius:var(--radius);background:hsl(var(--background));display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:6px;padding:0 8px;box-shadow:inset 0 1px hsl(var(--foreground) / .04)}.frame-jump label{color:hsl(var(--muted-foreground));font-size:.68rem;font-weight:900;text-transform:uppercase}.frame-jump input{min-width:0;width:100%;border:0;background:transparent;color:hsl(var(--foreground));font-size:.84rem;font-weight:900;font-variant-numeric:tabular-nums;outline:none}.frame-jump:focus-within{outline:3px solid hsl(var(--ring) / .28);outline-offset:2px}.scrub-readout{--progress: 0%;position:relative;display:block;min-width:0;min-height:38px;border:1px solid var(--line);border-radius:var(--radius);background:hsl(var(--background));overflow:hidden;box-shadow:inset 0 1px hsl(var(--foreground) / .04)}.scrub-readout:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,hsl(var(--primary) / .26) 0 var(--progress),transparent var(--progress) 100%),linear-gradient(180deg,hsl(var(--card) / .08),transparent);pointer-events:none}.scrub-readout:after{content:"";position:absolute;top:6px;bottom:6px;left:var(--progress);width:2px;border-radius:999px;background:var(--orange);opacity:.9;pointer-events:none;transform:translate(-1px)}.scrub-readout.is-disabled{opacity:.72}.scrub-readout.is-disabled:before,.scrub-readout.is-disabled:after{display:none}.scrub-readout:focus-within{outline:3px solid hsl(var(--ring) / .28);outline-offset:2px}.scrub-readout-label{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 11px;pointer-events:none}.scrub-readout span{font-variant-numeric:tabular-nums;font-weight:900}.scrub-readout small{color:hsl(var(--muted-foreground));font-size:.76rem;font-weight:800;white-space:nowrap}.zoom-readout{min-height:38px;border:1px solid var(--line);border-radius:var(--radius);background:hsl(var(--background));color:hsl(var(--foreground));display:grid;place-items:center;font-size:.8rem;font-weight:900;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px hsl(var(--foreground) / .04)}.frame-range{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;background:transparent;cursor:pointer;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.frame-range:disabled{cursor:not-allowed}.frame-range::-webkit-slider-runnable-track{height:100%;background:transparent}.frame-range::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;height:38px;background:transparent}.frame-range::-moz-range-track{height:100%;background:transparent}.frame-range::-moz-range-progress{height:100%;background:transparent}.frame-range::-moz-range-thumb{width:28px;height:38px;border:0;background:transparent}.bookmark-strip{position:relative;grid-row:3;z-index:7;max-height:104px;margin:0;border:1px solid hsl(180 7% 24%);border-right:0;border-left:0;border-radius:0;background:#202525;padding:8px;display:flex;align-items:stretch;gap:8px;overflow-x:auto;overflow-y:hidden;box-shadow:var(--shadow-soft)}.bookmark-strip.is-empty{display:none}.bookmark-empty{min-width:100%;display:grid;place-items:center;border:1px dashed rgba(255,255,255,.25);border-radius:8px;color:#ffffffb8;font-size:.86rem;font-weight:800;gap:8px}.bookmark-empty svg{color:#ffffff80}.bookmark-tile{position:relative;flex:0 0 112px;min-height:82px;border-color:#ffffff29;background:#151a1a;color:#f4f8f5;padding:5px;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:5px;box-shadow:none}.bookmark-tile:hover:not(:disabled),.bookmark-tile.selected{border-color:var(--cyan);transform:translateY(-2px)}.bookmark-tile.selected{box-shadow:inset 0 0 0 2px #00a7b580}.bookmark-tile img{width:100%;height:58px;object-fit:cover;border-radius:5px;background:#050707}.bookmark-tile span{justify-self:start;color:#d5ded9;font-size:.76rem;font-weight:900}.bookmark-tile svg{position:absolute;right:8px;bottom:8px;color:var(--orange);fill:currentColor}.viewer-expanded .viewer{grid-row:1;grid-column:1;width:100%;height:100dvh;background:var(--stage)}.viewer-expanded.has-focus-notes:not(.has-bookmarks) .viewer{grid-column:1}.viewer-expanded.has-bookmarks.has-focus-notes .viewer{grid-column:1}.viewer-expanded .video-stat-chip{display:none}.viewer-expanded .transport{position:absolute;z-index:6;display:grid;top:50%;right:14px;bottom:auto;left:auto;width:118px;grid-template-columns:1fr;gap:6px;padding:7px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:var(--glass);box-shadow:0 18px 46px #00000057;opacity:.42;transform:translateY(-50%);transition:opacity .16s ease;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.viewer-expanded .transport:hover,.viewer-expanded .transport:focus-within{opacity:1}.viewer-expanded .transport button,.viewer-expanded .scrub-readout,.viewer-expanded .frame-jump,.viewer-expanded .zoom-readout{min-height:36px;border-color:#ffffff21;border-radius:12px;background:#ffffff14;color:#f7faf7}.viewer-expanded .transport button{width:100%;min-width:0;padding:0}.viewer-expanded .transport button:hover:not(:disabled){border-color:#ffffff6b;background:#ffffff24}.viewer-expanded .transport button.active{border-color:#77f5ff6b;background:#77f5ff2e;color:#f7ffff}.viewer-expanded .transport button:disabled{color:#f7faf757}.viewer-expanded .scrub-readout-label{flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 8px}.viewer-expanded .frame-jump{grid-template-columns:1fr;justify-items:center;padding:4px}.viewer-expanded .frame-jump label{color:#f7faf785;font-size:.58rem}.viewer-expanded .frame-jump input{color:#f7faf7;text-align:center}.viewer-expanded .scrub-readout small{color:#f7faf794;font-size:.68rem}.viewer-expanded .focus-notes-panel{z-index:6;grid-column:2;grid-row:1;align-self:stretch;min-height:0;margin:14px 0;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#070b0ba8;color:#f7faf7;display:flex;flex-direction:column;gap:12px;padding:12px;overflow:auto;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.focus-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.viewer-expanded .focus-panel-head .panel-title{color:#f7faf7d1}.viewer-expanded .focus-panel-head button{width:34px;min-width:34px;min-height:34px;padding:0;border-color:#ffffff21;border-radius:10px;background:#ffffff14;color:#f7faf7cc}.viewer-expanded .focus-notes-panel .field-label{color:#f7faf799}.viewer-expanded .focus-notes-panel .note-box{flex:1 1 auto;min-height:180px;border-color:#ffffff21;background:#ffffff14;color:#f7faf7}.viewer-expanded .focus-notes-panel .export-stack{margin-top:auto}.viewer-expanded .focus-notes-panel button{border-color:#ffffff21;background:#ffffff14;color:#f7faf7}.viewer-expanded .focus-notes-panel button:hover:not(:disabled){border-color:#ffffff6b;background:#ffffff24}.viewer-expanded .bookmark-strip{position:absolute;z-index:6;right:146px;bottom:14px;left:14px;top:auto;width:auto;max-height:110px;margin:0;flex-direction:row;align-items:stretch;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#070b0b85;opacity:.34;overflow-x:auto;overflow-y:hidden;transition:opacity .16s ease;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.viewer-expanded .bookmark-strip.is-empty{display:none}.viewer-expanded .bookmark-strip:hover,.viewer-expanded .bookmark-strip:focus-within{opacity:1}.viewer-expanded .bookmark-tile{flex:0 0 112px;width:auto;min-height:82px}.viewer-expanded .bookmark-tile img{height:56px}.viewer-expanded .render-badge{right:18px;bottom:66px;background:#070b0bb8}.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}.facts div{border:1px solid var(--line);border-radius:var(--radius);background:hsl(var(--background));padding:10px;min-width:0;box-shadow:inset 0 1px hsl(var(--foreground) / .04)}.facts dt,.facts dd{margin:0}.facts dt{color:hsl(var(--muted-foreground));font-size:.72rem;font-weight:900}.facts dd{margin-top:6px;color:hsl(var(--foreground));font-size:1rem;font-weight:950;font-variant-numeric:tabular-nums;word-break:break-word}.flag-button.active{border-color:var(--orange);background:#fde7d8;color:#a24916}:root[data-theme=dark] .flag-button.active{background:#572a0a;color:#fec190}.flag-button.active svg{fill:currentColor}.note-box{min-height:142px;border:1px solid var(--line);border-radius:var(--radius);background:hsl(var(--background));padding:10px}.export-stack{display:grid;grid-template-columns:1fr 1fr;gap:8px}.clear-source{margin-top:auto}@media(max-width:760px){.app-shell{grid-template-columns:1fr;padding:0;height:auto;min-height:100vh;overflow:visible}.workbench{min-height:100dvh}.transport{display:flex;flex-wrap:wrap;gap:6px}.top-actions{flex:0 0 auto}.transport button{flex:0 0 38px;min-width:38px}.frame-jump{flex:0 0 112px}.scrub-readout{flex:1 1 calc(100% - 88px);min-width:0}.zoom-readout{flex:0 0 64px}.inspector{display:flex}.app-shell.viewer-expanded{height:100dvh;min-height:100dvh;padding:0;overflow:hidden}.viewer-expanded .workbench,.viewer-expanded .viewer{height:100dvh;min-height:100dvh}.viewer-expanded .workbench{grid-template-columns:minmax(0,1fr) 96px}.viewer-expanded.has-focus-notes .workbench,.viewer-expanded.has-bookmarks.has-focus-notes .workbench{grid-template-columns:minmax(0,1fr) 96px;grid-template-rows:minmax(0,1fr) minmax(160px,34dvh)}.viewer-expanded.has-focus-notes .viewer,.viewer-expanded.has-bookmarks.has-focus-notes .viewer{grid-column:1;grid-row:1;height:100%;min-height:0}.viewer-expanded.has-focus-notes:not(.has-bookmarks) .workbench{grid-template-columns:minmax(0,1fr) 96px}.viewer-expanded.has-focus-notes:not(.has-bookmarks) .viewer{grid-column:1}.viewer-expanded .video-stat-chip{display:none}.viewer-expanded .transport{display:grid;top:50%;right:8px;bottom:auto;left:auto;width:84px;grid-template-columns:1fr;padding:6px;border-radius:16px;transform:translateY(-50%)}.viewer-expanded .transport button[aria-label="Reset view"],.viewer-expanded .frame-jump label,.viewer-expanded .scrub-readout small{display:none}.viewer-expanded .scrub-readout-label{font-size:.72rem;padding:6px}.viewer-expanded .focus-notes-panel,.viewer-expanded.has-bookmarks .focus-notes-panel{position:relative;z-index:8;top:auto;right:auto;bottom:auto;left:auto;grid-column:1;grid-row:2;margin:0 0 8px}.viewer-expanded .bookmark-strip{top:auto;right:96px;bottom:8px;left:8px;width:auto;max-height:96px;margin:0}}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
