@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-italic-Q0qr0lrZ.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Figtree Variable;font-style:italic;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-italic-BEAWuiTz.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}button{font:inherit;color:inherit}:root{--color-viewer-bg:#0f0f0f;--color-primary-bright:#3aa0ff;--color-on-primary:#fff;--avatar-gradient:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--cal-reference:#e8b34a;--cal-manual:#5ee68c;--cal-auto:#46c8d0;--cal-review:#ff9a3c;--cal-open:#5a5a5a;--font-body:"Figtree Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Instrument Serif", Georgia, serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-base:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:38px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--leading-none:1;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.4;--leading-relaxed:1.5;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.05em;--tracking-wider:.08em}:root,[data-theme=solarized-dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-subtle:#00212b;--color-bg-base:#002b36;--color-bg-elevated:#073642;--color-bg-input:#001d26;--color-bg-hover:#0a4a58;--color-bg-muted:#001b24;--color-bg-disabled:#073642;--color-border-base:#0d3d4a;--color-border-medium:#10495a;--color-border-strong:#14515f;--color-text-bright:#cdd9d9;--color-text-primary:#93a1a1;--color-text-secondary:#839496;--color-text-tertiary:#657b83;--color-text-muted:#586e75;--color-text-faint:#475b62;--color-primary-base:#268bd2;--color-primary-hover:#1f7ab8;--color-primary-active:#1a679c;--color-primary-light:#0d475f;--color-primary-text:#5eb0e5;--color-primary-border:#2b7fb8;--color-error-text:#eb6b64;--color-error-bg:#3a1f24;--color-error-border:#5c2f30;--color-error-fill:#a5322c;--color-error-base:#dc322f;--color-success:#a5b84a;--color-success-fill:#4a5a16;--color-success-border:#6b8020;--color-success-bg:#1c2610;--color-success-base:#859900;--color-warning-text:#c9a84a;--color-warning-strong:#d9bd6a;--color-warning-bg:#2a2411;--color-warning-border:#4a3f1a;--color-warning-base:#b58900;--color-info-base:#2aa198;--color-selected-bg:#0e3a52;--color-odk-o:#93c04a;--color-odk-d:#e0776f;--color-odk-k:#c9a84a;--color-timeline-progress-1:#268bd2;--color-timeline-progress-2:#1a679c;--color-timeline-playhead:#2aa198;--color-timeline-playhead-hi:#4fd1c5;--color-timeline-mark:#cb4b16;--color-timeline-key:#b58900}[data-theme=cool]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg-subtle:#fafaf9;--color-bg-base:#fff;--color-bg-elevated:#fff;--color-bg-input:#fff;--color-bg-hover:#f5f5f4;--color-bg-muted:#f5f5f4;--color-bg-disabled:#e7e5e4;--color-border-base:#e7e5e4;--color-border-medium:#d6d3d1;--color-border-strong:#a8a29e;--color-text-bright:#1c1917;--color-text-primary:#1c1917;--color-text-secondary:#44403c;--color-text-tertiary:#78716c;--color-text-muted:#a8a29e;--color-text-faint:#d6d3d1;--color-primary-base:#3d74c4;--color-primary-hover:#2f63ad;--color-primary-active:#264f8a;--color-primary-light:#dde8f6;--color-primary-text:#1e478a;--color-primary-border:#3d74c4;--color-error-text:#991b1b;--color-error-bg:#fee2e2;--color-error-border:#fca5a5;--color-error-fill:#ef4444;--color-error-base:#ef4444;--color-success:#059669;--color-success-fill:#10b981;--color-success-border:#34d399;--color-success-bg:#d1fae5;--color-success-base:#10b981;--color-warning-text:#9a3412;--color-warning-strong:#b45309;--color-warning-bg:#fed7aa;--color-warning-border:#fdba74;--color-warning-base:#f59e0b;--color-info-base:#06b6d4;--color-selected-bg:#dde8f6;--color-odk-o:#047857;--color-odk-d:#b91c1c;--color-odk-k:#b45309;--color-timeline-progress-1:#5b93d6;--color-timeline-progress-2:#3d74c4;--color-timeline-playhead:#0891b2;--color-timeline-playhead-hi:#06b6d4;--color-timeline-mark:#c2410c;--color-timeline-key:#ca8a04}[data-theme=midnight]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg-subtle:#08090a;--color-bg-base:#0f1011;--color-bg-elevated:#161718;--color-bg-input:#0b0c0d;--color-bg-hover:#1c1d20;--color-bg-muted:#0c0d0e;--color-bg-disabled:#161718;--color-border-base:#23252a;--color-border-medium:#2c2e33;--color-border-strong:#43464d;--color-text-bright:#fff;--color-text-primary:#f7f8f8;--color-text-secondary:#c2c7d0;--color-text-tertiary:#8a8f98;--color-text-muted:#62666d;--color-text-faint:#4a4d54;--color-primary-base:#5e6ad2;--color-primary-hover:#6e79e8;--color-primary-active:#545ecb;--color-primary-light:#1e2033;--color-primary-text:#8d97f2;--color-primary-border:#4d58bf;--color-error-text:#ff7b72;--color-error-bg:#2b1617;--color-error-border:#5c2a29;--color-error-fill:#da3633;--color-error-base:#f85149;--color-success:#57d364;--color-success-fill:#2ea043;--color-success-border:#2a5c34;--color-success-bg:#16261a;--color-success-base:#3fb950;--color-warning-text:#e3b341;--color-warning-strong:#d9bd6a;--color-warning-bg:#271c0d;--color-warning-border:#4a3a1a;--color-warning-base:#d29922;--color-info-base:#39c5cf;--color-selected-bg:#1e2033;--color-odk-o:#6ec06a;--color-odk-d:#e0776f;--color-odk-k:#d9bd6a;--color-timeline-progress-1:#5e6ad2;--color-timeline-progress-2:#545ecb;--color-timeline-playhead:#39c5cf;--color-timeline-playhead-hi:#6ee0e6;--color-timeline-mark:#db6d28;--color-timeline-key:#d29922}.playbar{background:var(--color-bg-subtle);border-top:1px solid var(--color-border-base);-webkit-user-select:none;user-select:none}.playbar-track{background:var(--color-bg-base);border:1px solid var(--color-border-base);cursor:pointer;touch-action:none;border-radius:3px;height:32px;margin:14px 12px 4px;position:relative}.playbar-played{background:linear-gradient(180deg, var(--color-timeline-progress-1), var(--color-timeline-progress-2));pointer-events:none;border-radius:2px 0 0 2px;position:absolute;inset:0 auto 0 0}.playbar-mark{background:color-mix(in srgb, var(--color-success) 18%, transparent);border-left:1px solid color-mix(in srgb, var(--color-success) 50%, transparent);border-right:1px solid color-mix(in srgb, var(--color-success) 50%, transparent);pointer-events:none;position:absolute;top:0;bottom:0}.playbar-mark.focused{background:color-mix(in srgb, var(--color-success) 32%, transparent);border-left-color:color-mix(in srgb, var(--color-success) 85%, transparent);border-right-color:color-mix(in srgb, var(--color-success) 85%, transparent)}.playbar-pin{cursor:pointer;pointer-events:auto;background:0 0;border:0;flex-direction:column;align-items:center;width:14px;height:22px;margin:0;padding:0;display:flex;position:absolute;top:-14px;transform:translate(-50%)}.playbar-pin-dot{background:var(--color-timeline-playhead);width:8px;height:8px;box-shadow:0 0 4px color-mix(in srgb, var(--color-timeline-playhead) 55%, transparent);border-radius:50%}.playbar-pin-stem{background:color-mix(in srgb, var(--color-timeline-playhead) 55%, transparent);flex:1;width:1.5px}.playbar-pin:hover .playbar-pin-dot{background:var(--color-timeline-playhead-hi);box-shadow:0 0 6px color-mix(in srgb, var(--color-timeline-playhead-hi) 90%, transparent)}.playbar-pin:hover .playbar-pin-stem{background:color-mix(in srgb, var(--color-timeline-playhead-hi) 85%, transparent)}.playbar-pin:focus-visible{outline:2px solid var(--color-timeline-playhead);outline-offset:2px;border-radius:2px}.playbar-snap{cursor:pointer;pointer-events:auto;z-index:2;background:0 0;border:0;width:12px;margin:0;padding:0;position:absolute;top:-12px;bottom:0;transform:translate(-50%)}.playbar-snap-flag{background:var(--color-timeline-mark);clip-path:polygon(0 0,100% 0,100% 70%,0 100%);width:9px;height:7px;box-shadow:0 0 4px color-mix(in srgb, var(--color-timeline-mark) 60%, transparent);position:absolute;top:0;left:50%}.playbar-snap-line{background:var(--color-timeline-mark);width:2px;box-shadow:0 0 4px color-mix(in srgb, var(--color-timeline-mark) 50%, transparent);position:absolute;top:12px;bottom:0;left:50%;transform:translate(-50%)}.playbar-snap:hover .playbar-snap-flag,.playbar-snap:hover .playbar-snap-line{background:var(--color-timeline-mark)}.playbar-snap:focus-visible{outline:2px solid var(--color-timeline-mark);outline-offset:2px;border-radius:2px}.playbar-divider{background:var(--color-border-strong);align-self:stretch;width:1px;margin:2px 4px}.playbar-buttons button.playbar-snap-btn:disabled,.playbar-buttons button.playbar-retime-btn:disabled{opacity:.4;cursor:default}.playbar-buttons button.playbar-snap-btn.active{background:color-mix(in srgb, var(--color-timeline-mark) 22%, var(--color-bg-base));border-color:var(--color-timeline-mark);color:var(--color-warning-strong)}.playbar-buttons button.playbar-snap-btn.active:hover{background:color-mix(in srgb, var(--color-timeline-mark) 22%, var(--color-bg-base));border-color:var(--color-timeline-mark)}.playbar-mark-in{background:var(--color-timeline-key);pointer-events:none;width:2px;box-shadow:0 0 4px color-mix(in srgb, var(--color-timeline-key) 60%, transparent);position:absolute;top:-3px;bottom:-3px}.playbar-tick{pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.playbar-tick.major{background:color-mix(in srgb, var(--color-text-primary) 22%, transparent)}.playbar-tick.minor{background:color-mix(in srgb, var(--color-text-primary) 12%, transparent);top:55%}.playbar-tick-label{font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);pointer-events:none;white-space:nowrap;position:absolute;top:3px;left:3px}.playbar-playhead{pointer-events:none;width:0;position:absolute;top:-10px;bottom:-2px}.playbar-playhead-bubble{background:var(--color-border-strong);color:var(--color-on-primary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:2px;padding:1px 6px;position:absolute;top:-18px;left:50%;transform:translate(-50%)}.playbar-playhead-bubble:after{content:"";border-left:3px solid #0000;border-right:3px solid #0000;border-top:3px solid var(--color-border-strong);width:0;height:0;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.playbar-playhead-line{background:var(--color-error-base);border-radius:1px;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.playbar-controls{justify-content:space-between;align-items:center;gap:12px;padding:4px 12px 8px;display:flex}.playbar-buttons{gap:4px;display:flex}.playbar-buttons button{background:var(--color-border-base);border:1px solid var(--color-border-strong);color:var(--color-text-primary);cursor:pointer;width:28px;height:24px;font-size:var(--text-xs);line-height:var(--leading-none);border-radius:3px;justify-content:center;align-items:center;padding:0;display:inline-flex}.playbar-buttons button:hover{background:var(--color-bg-hover);border-color:var(--color-border-strong)}.playbar-buttons button:active{background:var(--color-bg-hover)}.playbar-buttons button.primary{background:var(--color-primary-base);border-color:var(--color-primary-border);color:var(--color-on-primary);width:36px}.playbar-buttons button.primary:hover{background:var(--color-primary-hover)}.playbar-zoom{align-items:center;gap:6px;display:flex}.playbar-zoom button{background:var(--color-border-base);border:1px solid var(--color-border-strong);color:var(--color-text-primary);cursor:pointer;width:24px;height:22px;font-size:var(--text-sm);line-height:var(--leading-none);border-radius:3px;justify-content:center;align-items:center;padding:0;display:inline-flex}.playbar-zoom button:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong)}.playbar-zoom button:disabled{opacity:.4;cursor:default}.playbar-zoom-slider{appearance:none;background:var(--color-border-base);border-radius:2px;outline:none;width:100px;height:4px;margin:0}.playbar-zoom-slider::-webkit-slider-thumb{appearance:none;background:var(--color-primary-hover);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.playbar-zoom-slider::-moz-range-thumb{background:var(--color-primary-hover);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.playbar-zoom-pct{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;text-align:right;min-width:36px}.playbar-readout{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums}.playbar-readout-sep{color:var(--color-text-faint);margin:0 8px}.context-menu{z-index:1100;background:var(--color-bg-elevated);border:1px solid var(--color-border-base);border-radius:4px;flex-direction:column;gap:1px;min-width:200px;padding:4px;display:flex;position:fixed;box-shadow:0 6px 18px #0000008c}.context-menu-item{width:100%;color:var(--color-text-secondary);font-size:var(--text-sm);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:2px;padding:6px 10px;display:block}.context-menu-item:hover{background:var(--color-primary-base);color:var(--color-on-primary)}.context-menu-item:disabled{opacity:.4;cursor:not-allowed}.context-menu-item:disabled:hover{color:var(--color-text-secondary);background:0 0}.context-menu-item.danger{color:var(--color-error-text)}.context-menu-item.danger:hover:not(:disabled){background:var(--color-error-bg)}.player{grid-template-rows:1fr auto auto;grid-template-columns:minmax(0,1fr);height:100%;min-height:0;display:grid}.player .stage{background:var(--color-viewer-bg);min-height:0;position:relative;overflow:hidden}.player .zoom-wrap{transform-origin:50%;will-change:transform;touch-action:none;width:100%;height:100%;position:relative}.player .zoom-wrap.drawing{cursor:crosshair}.player .frame-canvas{object-fit:contain;background:#000;width:100%;height:100%;display:block}.player .overlay-canvas{object-fit:contain;pointer-events:none;background:0 0;width:100%;height:100%;position:absolute;inset:0}.player .player-error{background:var(--color-bg-base);color:var(--color-text-primary);font-size:var(--text-base);line-height:var(--leading-relaxed);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.player .player-error-inner{max-width:520px}.player .player-error-title{color:var(--color-error-text);font-weight:var(--font-weight-semibold);margin-bottom:8px}.player .player-noclip{background:var(--color-bg-base);color:var(--color-text-tertiary);font-size:var(--text-base);line-height:var(--leading-relaxed);text-align:center;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.player .player-noclip-inner{max-width:420px}.player .player-noclip-title{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);margin-bottom:8px}.player .hud{background:var(--color-bg-base);border-top:1px solid var(--color-border-base);font-family:var(--font-mono);font-size:var(--text-sm);white-space:pre;color:var(--color-text-primary);padding:8px 12px}.modal-backdrop{z-index:1000;background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);width:520px;max-width:90vw;max-height:80vh;color:var(--color-text-primary);border-radius:8px;padding:20px 24px;overflow-y:auto}.modal h2{font-size:var(--text-lg);margin:0 0 8px}.modal h3{font-size:var(--text-sm);text-transform:uppercase;color:var(--color-text-tertiary);letter-spacing:var(--tracking-wide);margin:0 0 4px}.modal p{font-size:var(--text-sm);margin:0 0 12px}.modal .muted{color:var(--color-text-tertiary)}.modal .actions{border-top:1px solid var(--color-border-base);justify-content:flex-end;gap:8px;margin-top:16px;padding-top:12px;display:flex}.btn-primary,.btn-secondary,.btn-danger{border:1px solid var(--color-border-base);background:var(--color-bg-elevated);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-base);border-radius:4px;padding:6px 14px}.btn-primary{background:var(--color-primary-base);border-color:var(--color-primary-border);color:var(--color-on-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-secondary:hover:not(:disabled){background:var(--color-border-base)}.btn-secondary:disabled{opacity:.4;cursor:not-allowed}.btn-danger{background:var(--color-error-base);border-color:var(--color-error-border);color:var(--color-on-primary)}.btn-danger:hover:not(:disabled){background:var(--color-error-fill)}.btn-danger:disabled{opacity:.4;cursor:not-allowed}.confirm-dialog{width:440px}.removed-elsewhere-dialog{width:520px}.removed-list{background:var(--color-bg-input);border:1px solid var(--color-border-base);max-height:180px;color:var(--color-text-bright);border-radius:4px;margin:10px 0;padding:8px 12px 8px 26px;overflow-y:auto}.removed-list li{margin:2px 0}.removed-note{color:var(--color-text-secondary);font-size:var(--text-sm)}.save-game-row{flex-direction:column;gap:6px;margin:12px 0 4px;display:flex}.save-game-row label{font-size:var(--text-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.save-game-row input{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-bright);font-size:var(--text-md);border-radius:4px;padding:8px 10px}.save-game-row input:focus{border-color:var(--color-primary-base);outline:none}.reconnect-list{margin:12px 0 0;padding:0;list-style:none}.reconnect-item{border-bottom:1px solid var(--color-border-base);font-size:var(--text-base);grid-template-columns:24px 1fr auto;align-items:center;gap:12px;padding:8px 10px;display:grid}.reconnect-item:last-child{border-bottom:none}.reconnect-item .reconnect-status{color:var(--color-text-tertiary);text-align:center;font-size:var(--text-md)}.reconnect-item.resolved .reconnect-status{color:var(--color-success)}.reconnect-item .reconnect-name{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);overflow:hidden}.reconnect-error{color:var(--color-error-text);font-size:var(--text-sm);margin-top:8px}.lib{background:var(--color-bg-subtle);height:100%;min-height:0;color:var(--color-text-primary);font-family:var(--font-body);font-size:var(--text-sm);flex-direction:column;display:flex}.lib-actions{border-bottom:1px solid var(--color-border-base);background:var(--color-bg-base);align-items:center;gap:6px;padding:6px 10px;display:flex}.lib-action{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);border-radius:6px;padding:4px 10px}.lib-action:hover{border-color:var(--color-primary-border);color:var(--color-text-bright)}.lib-spacer{flex:auto}.lib-bar{border-bottom:1px solid var(--color-border-base);background:var(--color-bg-base);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px;display:flex}.lib-search{border:1px solid var(--color-border-medium);background:var(--color-bg-input);min-width:120px;color:var(--color-text-bright);font:inherit;border-radius:6px;flex:140px;padding:5px 9px}.lib-search:focus{border-color:var(--color-primary-border);outline:none}.lib-sort{color:var(--color-text-tertiary);font-size:var(--text-xs);align-items:center;gap:5px;display:flex}.lib-sort select,.lib-field select{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-bright);font:inherit;border-radius:6px;padding:4px 6px}.lib-viewtoggle{border:1px solid var(--color-border-medium);border-radius:6px;display:inline-flex;overflow:hidden}.lib-viewtoggle button{background:var(--color-bg-input);color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-xs);border:none;padding:4px 10px}.lib-viewtoggle button.on{background:var(--color-primary-base);color:var(--color-on-primary)}.lib-selbtn{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-xs);border-radius:6px;padding:4px 10px}.lib-selbtn.on{background:var(--color-primary-light);color:var(--color-primary-text);border-color:var(--color-primary-border)}.lib-chips{border-bottom:1px solid var(--color-border-base);background:var(--color-bg-subtle);flex-wrap:wrap;gap:6px;padding:6px 10px;display:flex}.lib-chip{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-2xs);border-radius:999px;padding:3px 10px}.lib-chip.on{background:var(--color-selected-bg);color:var(--color-text-bright);border-color:var(--color-primary-border)}.lib-roots{border-bottom:1px solid var(--color-border-base);background:var(--color-bg-subtle);font-size:var(--text-2xs);flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.lib-roots-label{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.04em}.lib-roots-hint{color:var(--color-text-tertiary);font-style:italic}.lib-root{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-secondary);border-radius:999px;align-items:center;gap:5px;padding:2px 4px 2px 8px;display:inline-flex}.lib-root--connected{border-color:var(--color-primary-border);color:var(--color-text-bright)}.lib-root--needsPermission,.lib-root--disconnected,.lib-root--denied{opacity:.7}.lib-root-count{color:var(--color-text-tertiary)}.lib-root-btn{border:1px solid var(--color-primary-border);background:var(--color-selected-bg);color:var(--color-text-bright);cursor:pointer;font-size:var(--text-2xs);border-radius:999px;padding:1px 7px}.lib-root-x{color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-xs);background:0 0;border:none;padding:0 4px;line-height:1}.lib-root-x:hover{color:var(--color-text-bright)}.lib-flash{background:var(--color-primary-light);color:var(--color-primary-text);border-bottom:1px solid var(--color-primary-border);font-size:var(--text-xs);cursor:pointer;padding:6px 10px}.lib-body{flex:auto;min-height:0;padding:4px 0;overflow:auto}.lib-row{align-items:center;gap:4px;min-height:26px;padding-right:8px;display:flex}.lib-row:hover{background:var(--color-bg-hover)}.lib-rowmain{text-align:left;cursor:pointer;min-width:0;color:inherit;background:0 0;border:none;flex:auto;align-items:center;gap:6px;padding:3px 0;display:flex}.lib-caret{width:12px;color:var(--color-text-muted);flex:0 0 12px;font-size:10px}.lib-caret--none{visibility:hidden}.lib-glyph{flex:none;font-size:12px}.lib-label{color:var(--color-text-bright);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.lib-meta{color:var(--color-text-muted);font-size:var(--text-2xs);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.lib-badge{background:var(--color-success-bg);color:var(--color-success);border:1px solid var(--color-success-border);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);border-radius:999px;flex:none;padding:1px 6px}.lib-badge--share{color:var(--color-primary-text);border-color:var(--color-primary-border);background:0 0}.lib-badge--unsure{color:var(--color-text-muted);border-style:dashed;border-color:var(--color-border-medium);font-weight:var(--font-weight-normal)}.lib-badges{flex:none;gap:2px;display:inline-flex}.lib-loc{cursor:default;font-size:11px;line-height:1}.lib-label--strong{font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.lib-label[title]{cursor:pointer}.lib-label[title]:hover{text-decoration:underline}.lib-stream{flex:none}.lib-check{accent-color:var(--color-primary-base);flex:none;margin-left:6px}.lib-share{width:22px;height:22px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex:none}.lib-row:hover .lib-share{border-color:var(--color-border-medium);background:var(--color-bg-input)}.lib-share:hover{color:var(--color-primary-text)}.lib-danger{width:22px;height:22px;color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex:none}.lib-row:hover .lib-danger{border-color:var(--color-error-border);background:var(--color-error-bg)}.lib-danger:hover{color:var(--color-error-text)}.lib-health{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:5px;flex:none;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;line-height:1;display:inline-flex}.lib-health--problems{color:var(--color-error-text)}.lib-health--incomplete{color:var(--color-warning-text)}.lib-health:hover{border-color:var(--color-border-medium);background:var(--color-bg-input)}.lib-row--action .lib-label{color:var(--color-primary-text)}.lib-row--action{cursor:pointer}.lib-row--clip{min-height:24px}.lib-thumb{background:var(--color-viewer-bg);border-radius:3px;flex:0 0 28px;justify-content:center;align-items:center;width:28px;height:18px;margin-right:4px;font-size:11px;display:inline-flex}.lib-clip-label{color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.lib-clip-meta{color:var(--color-text-muted);font-size:var(--text-2xs);flex:auto}.lib-mini{border:1px solid var(--color-border-medium);background:var(--color-bg-input);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-2xs);border-radius:5px;flex:none;padding:2px 8px}.lib-row--dim{opacity:.55}.lib-more{color:var(--color-text-muted);font-size:var(--text-2xs);padding:2px 0;font-style:italic}.lib-empty{color:var(--color-text-muted);text-align:center;padding:20px}.lib-table{border-collapse:collapse;width:100%;font-size:var(--text-xs)}.lib-table thead th{text-align:left;background:var(--color-bg-base);border-bottom:1px solid var(--color-border-base);color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);padding:6px 10px;position:sticky;top:0}.lib-table tbody tr{border-bottom:1px solid var(--color-border-base);cursor:pointer}.lib-table tbody tr:hover{background:var(--color-bg-hover)}.lib-table td{padding:6px 10px}.lib-td-film{color:var(--color-text-bright);font-weight:var(--font-weight-medium)}.lib-muted{color:var(--color-text-muted)}.lib-th-check,.lib-td-check{text-align:center;width:26px}.lib-td-check input{accent-color:var(--color-primary-base)}.lib-cutups-note{background:var(--color-bg-muted);font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-snug);border-radius:6px;margin:8px 10px 10px;padding:8px 10px}.lib-quota{border-top:1px solid var(--color-border-base);background:var(--color-bg-base);gap:14px;padding:8px 10px;display:flex}.lib-meter{flex:1 1 0;min-width:0}.lib-meter-head{font-size:var(--text-2xs);color:var(--color-text-secondary);justify-content:space-between;margin-bottom:3px;display:flex}.lib-meter-track{background:var(--color-bg-muted);border-radius:999px;height:6px;overflow:hidden}.lib-meter-fill{background:var(--color-primary-base);border-radius:999px;height:100%}.lib-meter-fill.hot{background:var(--color-warning-base)}.lib-selbar{border-top:1px solid var(--color-border-base);background:var(--color-bg-elevated);align-items:center;gap:10px;padding:8px 10px;display:flex}.lib-selbar>span{color:var(--color-text-secondary);font-size:var(--text-xs)}.lib-primary{background:var(--color-primary-base);color:var(--color-on-primary);cursor:pointer;font-weight:var(--font-weight-semibold);font-size:var(--text-xs);border:none;border-radius:6px;padding:6px 14px}.lib-primary:hover{background:var(--color-primary-hover)}.lib-primary:disabled,.lib-mini:disabled,.lib-action:disabled{opacity:.45;cursor:not-allowed}.lib-primary:disabled:hover{background:var(--color-primary-base)}.lib-mini:disabled:hover,.lib-action:disabled:hover{background:var(--color-bg-input);color:var(--color-text-secondary);border-color:var(--color-border-medium)}.lib-modal-backdrop{z-index:50;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lib-modal{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);width:min(420px,92vw);color:var(--color-text-primary);border-radius:10px;max-height:90vh;padding:18px;overflow-y:auto}.lib-modal h3{font-size:var(--text-lg);color:var(--color-text-bright);margin:0 0 2px}.lib-modal-sub{color:var(--color-text-tertiary);font-size:var(--text-xs);margin:0 0 10px}.lib-modal-note{background:var(--color-bg-muted);font-size:var(--text-xs);color:var(--color-text-secondary);line-height:var(--leading-snug);border-radius:6px;margin:0 0 14px;padding:8px 10px}.lib-field{font-size:var(--text-xs);color:var(--color-text-tertiary);flex-direction:column;gap:4px;margin-bottom:10px;display:flex}.lib-modal-actions{justify-content:flex-end;gap:8px;margin-top:6px;display:flex}.lib-modal--wide{width:min(520px,94vw)}.lib-modal-error{background:var(--color-error-bg);color:var(--color-error-text);font-size:var(--text-xs);line-height:var(--leading-snug);border-radius:6px;margin:0 0 10px;padding:7px 9px}.lib-modal h4{font-size:var(--text-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);margin:0 0 6px}.lib-share-list{border-top:1px solid var(--color-border-base);margin-top:16px;padding-top:12px}.lib-share-row{font-size:var(--text-xs);align-items:center;gap:8px;padding:5px 0;display:flex}.lib-share-who{color:var(--color-text-bright);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.lib-share-what{color:var(--color-text-tertiary);flex:auto}.lib-share-note{font-size:var(--text-2xs);flex:none}.lib-incoming{border:1px solid var(--color-primary-border);background:var(--color-bg-elevated);border-radius:8px;margin:0 10px 8px;padding:8px 10px}.lib-incoming-head{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);margin-bottom:6px}.lib-incoming-row{align-items:center;gap:8px;padding:4px 0;display:flex}.lib-incoming-main{flex-direction:column;flex:auto;gap:1px;min-width:0;display:flex}.lib-incoming-label{color:var(--color-text-bright);font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.lib-incoming-row .lib-muted{font-size:var(--text-2xs)}.lib--sidebar{border-right:1px solid var(--color-border-base)}.lib--landing{max-width:720px}.account{position:relative}.account-trigger{cursor:pointer;background:0 0;border:none;border-radius:50%;padding:0;transition:transform .15s;display:block}.account-trigger:hover{transform:scale(1.05)}.account-trigger:active{transform:scale(.98)}.account-trigger:focus-visible{outline:2px solid var(--color-primary-base);outline-offset:2px}.account-avatar{background:var(--avatar-gradient);width:32px;height:32px;color:var(--color-on-primary);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.account-avatar--lg{width:40px;height:40px;font-size:var(--text-md);flex-shrink:0}.account-panel{z-index:1000;text-align:left;background:var(--color-bg-elevated);border:1px solid var(--color-border-base);border-radius:8px;width:240px;padding:4px 0;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 25px #00000059}.account-info{align-items:center;gap:10px;padding:10px 12px;display:flex}.account-id{min-width:0}.account-name,.account-email{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-name{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.account-email{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:1px}.account-divider{background:var(--color-border-base);height:1px;margin:4px 0}.account-item{text-align:left;width:100%;color:var(--color-text-primary);font-size:var(--text-base);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:7px 12px;transition:background-color .15s;display:flex}.account-item:hover{background:var(--color-bg-hover)}.account-glyph{text-align:center;width:14px;color:var(--color-text-tertiary)}.account-item--danger,.account-item--danger .account-glyph{color:var(--color-error-text)}.account-item--danger:hover{background:var(--color-error-bg)}.licence-banner{border:1px solid var(--color-border-base);background:var(--color-bg-elevated);border-left-width:3px;border-radius:8px;align-items:flex-start;gap:16px;margin-bottom:18px;padding:12px 16px;display:flex}.licence-banner-text{flex:1;min-width:0}.licence-banner-title{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.licence-banner-body{font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-text-secondary);max-width:68ch;margin:4px 0 0}.licence-banner-action{background:var(--color-primary-base);color:#fff;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);white-space:nowrap;border-radius:6px;flex:none;align-self:center;padding:7px 14px;text-decoration:none}.licence-banner-action:hover{background:var(--color-primary-bright)}.licence-banner-action:focus-visible{outline:2px solid var(--color-primary-bright);outline-offset:2px}.licence-banner.tone-info{border-left-color:var(--color-info-base)}.licence-banner.tone-warn{border-left-color:var(--color-warning-base);background:var(--color-warning-bg)}.licence-banner.tone-warn .licence-banner-title{color:var(--color-warning-text)}.licence-banner.tone-blocked{border-left-color:var(--color-error-base)}@media (width<=640px){.licence-banner{flex-direction:column;gap:10px}.licence-banner-action{align-self:flex-start}}.home{background:radial-gradient(120% 80% at 50% -10%, color-mix(in srgb, var(--color-primary-base) 18%, transparent), transparent 60%), var(--color-bg-subtle);justify-content:center;height:100%;display:flex;overflow-y:auto}.home-inner{flex-direction:column;gap:36px;width:100%;max-width:720px;padding:64px 32px 48px;display:flex}.home-head{text-align:center;position:relative}.home-account{position:absolute;top:0;right:0}.home-brand{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-tight);color:var(--color-text-bright);margin:0}.home-tagline{font-size:var(--text-md);color:var(--color-text-tertiary);margin:8px 0 0}.home-section-title{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wider);color:var(--color-text-muted);margin:0 0 14px}.home-library{margin-top:8px}.home-library-panel{border:1px solid var(--color-border-base);border-radius:10px;height:460px;overflow:hidden}.home-tiles{grid-template-columns:1fr 1fr;gap:12px;display:grid}.home-tile{text-align:left;background:var(--color-bg-base);border:1px solid var(--color-border-base);cursor:pointer;border-radius:8px;flex-direction:column;align-items:flex-start;gap:4px;padding:16px 18px;transition:border-color .12s,background .12s,transform 60ms;display:flex}.home-tile:hover{background:var(--color-bg-elevated);border-color:var(--color-primary-border)}.home-tile:active{transform:translateY(1px)}.home-tile:focus-visible{outline:2px solid var(--color-primary-bright);outline-offset:1px}.home-tile:disabled{cursor:not-allowed;opacity:.45}.home-tile:disabled:hover{background:var(--color-bg-base);border-color:var(--color-border-base)}.home-tile:disabled:active{transform:none}.home-recent-card.is-locked{cursor:not-allowed;opacity:.55}.home-tile-quiet{opacity:.78}.home-tile-icon{font-size:var(--text-xl);line-height:var(--leading-none)}.home-tile-label{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-bright)}.home-tile-sub{font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-snug)}.home-recent-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.home-recent-card{background:var(--color-bg-base);border:1px solid var(--color-border-base);cursor:pointer;border-radius:6px;grid-template-columns:1fr auto 24px;grid-template-areas:"name time remove""file time remove";align-items:center;column-gap:12px;padding:12px 14px;transition:border-color .12s,background .12s;display:grid}.home-recent-card:hover{background:var(--color-bg-elevated);border-color:var(--color-border-strong)}.home-recent-card:focus-visible{outline:2px solid var(--color-primary-bright);outline-offset:1px}.home-recent-name{font-size:var(--text-md);font-weight:var(--font-weight-semibold);color:var(--color-text-bright);text-overflow:ellipsis;white-space:nowrap;grid-area:name;overflow:hidden}.home-recent-file{font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-muted);text-overflow:ellipsis;white-space:nowrap;grid-area:file;overflow:hidden}.home-recent-time{font-size:var(--text-xs);color:var(--color-text-tertiary);white-space:nowrap;grid-area:time}.home-recent-remove{color:var(--color-text-tertiary);font-size:var(--text-lg);line-height:var(--leading-none);cursor:pointer;background:0 0;border:none;border-radius:3px;grid-area:remove;padding:4px 6px}.home-recent-remove:hover{color:var(--color-error-text);background:var(--color-bg-hover)}.home-muted{font-size:var(--text-base);color:var(--color-text-tertiary);line-height:var(--leading-relaxed);margin:0}.home-link{color:var(--color-primary-bright);font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;margin-top:12px;padding:0}.home-link:hover{text-decoration:underline}.home-foot{text-align:center;margin-top:4px}.home-foot .home-link{margin-top:0}@media (width<=560px){.home-tiles{grid-template-columns:1fr}.home-inner{padding:40px 20px 32px}}.hamburger{position:relative}.ham-trigger{border:1px solid var(--color-border-base);background:var(--color-bg-subtle);width:32px;height:30px;color:var(--color-text-secondary);font-size:var(--text-xl);line-height:var(--leading-none);cursor:pointer;border-radius:4px;place-items:center;padding:0;display:grid}.ham-trigger:hover{background:var(--color-bg-elevated);color:var(--color-text-bright)}.ham-trigger[aria-expanded=true]{background:var(--color-primary-base);color:var(--color-on-primary);border-color:var(--color-primary-border)}.ham-panel{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);z-index:50;border-radius:6px;flex-direction:column;min-width:200px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 6px 20px #00000080}.ham-item{color:var(--color-text-primary);text-align:left;cursor:pointer;font-size:var(--text-base);background:0 0;border:0;border-radius:4px;padding:6px 12px}.ham-item:hover:not(:disabled){background:var(--color-border-base)}.ham-item:disabled{color:var(--color-text-faint);cursor:default}.ham-divider{background:var(--color-border-base);height:1px;margin:4px 0}.toolbar{background:var(--color-bg-subtle);border-bottom:1px solid var(--color-border-base);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;display:flex}.brand-group{align-items:baseline;gap:12px;min-width:0;margin-right:auto;display:flex}.toolbar .brand{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-normal);line-height:var(--leading-none);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.adhoc-exit{background:var(--color-bg-subtle);border:1px solid var(--color-border-base);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-base);border-radius:6px;padding:6px 14px}.adhoc-exit:hover{background:var(--color-bg-hover);color:var(--color-text-bright)}.open-btn{background:var(--color-primary-active);border:1px solid var(--color-primary-base);color:var(--color-on-primary);cursor:pointer;font-size:var(--text-base);border-radius:4px;padding:6px 14px}.open-btn:hover{background:var(--color-primary-base)}.angle-switch{background:var(--color-bg-subtle);border:1px solid var(--color-border-base);border-radius:6px;gap:4px;padding:2px;display:inline-flex}.angle-switch button{color:var(--color-text-tertiary);cursor:pointer;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);background:0 0;border:0;border-radius:4px;padding:4px 10px}.angle-switch button.active{background:var(--color-primary-hover);color:var(--color-on-primary)}.angle-switch button:hover:not(.active):not(.unaligned){background:var(--color-bg-base);color:var(--color-text-bright)}.angle-switch button.unaligned{color:var(--color-text-muted);border-bottom:1px dashed var(--color-border-strong);cursor:not-allowed}.align-received-cta{border:1px dashed var(--color-warning-base);color:var(--color-warning-base);cursor:pointer;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;background:0 0;border-radius:4px;padding:4px 10px}.align-received-cta:hover{background:var(--color-bg-subtle)}.cloud-film-hint{border:1px solid var(--color-border-base);color:var(--color-text-tertiary);font-size:var(--text-xs);white-space:nowrap;cursor:default;border-radius:4px;padding:3px 8px}.dock-toggle{align-items:center;gap:6px;display:inline-flex}.dock-toggle .dock-label{font-size:var(--text-sm);color:var(--color-text-tertiary)}.dock-toggle button{background:var(--color-bg-subtle);border:1px solid var(--color-border-base);color:var(--color-text-tertiary);cursor:pointer;width:28px;height:26px;font-size:var(--text-md);line-height:var(--leading-none);border-radius:4px}.dock-toggle button.active{background:var(--color-primary-base);color:var(--color-on-primary);border-color:var(--color-primary-border)}.file-pick input[type=file]{font-size:var(--text-xs);color:var(--color-text-tertiary);max-width:14em}.file-pick.adhoc{opacity:.7;font-size:var(--text-xs)}.save-status{font-size:var(--text-xs);color:var(--color-text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap}.save-status.save-saving{color:var(--color-warning-text)}.save-status.save-saved{color:var(--color-success)}.save-status.save-error,.save-status.save-conflict{color:var(--color-error-text)}.save-status.save-merged{color:var(--color-success)}.save-status.save-cloudpending{color:var(--color-warning-text)}.save-status.save-readonly{color:var(--color-text-tertiary)}.cut-chip{font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;border:1px solid var(--color-border-base);cursor:pointer;background:0 0;border-radius:6px;padding:2px 10px}.cut-chip:hover{background:var(--color-bg-hover)}.cut-chip.cut-running{color:var(--color-warning-text)}.cut-chip.cut-done{color:var(--color-success)}.cut-chip.cut-error{color:var(--color-error-text)}.sidebar{background:var(--color-bg-subtle);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-section{border-bottom:1px solid var(--color-bg-hover);flex-direction:column;flex:none;min-height:0;display:flex}.panel-section.scrollable{flex:auto;overflow-y:auto}.panel-header{background:var(--color-bg-elevated);align-items:center;gap:6px;padding:8px 12px;display:flex}.panel-header h3{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);margin:0}.panel-header .chev{font-size:var(--text-2xs);color:var(--color-text-tertiary)}.panel-header-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.panel-header-toggle:hover h3,.panel-header-toggle:hover .chev{color:var(--color-text-secondary)}.panel-body{padding:10px 12px}.panel-body.muted{color:var(--color-text-muted);font-size:var(--text-sm)}.muted{color:var(--color-text-tertiary);font-size:var(--text-sm)}.possession-row{align-items:center;gap:10px;display:flex}.bubble{background:var(--color-border-base);width:28px;height:28px;color:var(--color-text-tertiary);font-size:var(--text-sm);font-weight:var(--font-weight-semibold);cursor:pointer;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;font-family:inherit;display:grid}.bubble:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-primary)}.bubble:disabled{opacity:.4;cursor:not-allowed}.bubble.active{background:var(--color-primary-hover);color:var(--color-on-primary);border-color:var(--color-primary-border)}.score{color:var(--color-text-secondary);font-size:var(--text-md);align-items:center;gap:4px;display:inline-flex}.score .dash{color:var(--color-text-faint)}.quarter{margin-left:auto}.stepper{background:var(--color-bg-hover);color:var(--color-text-secondary);font-size:var(--text-base);font-variant-numeric:tabular-nums;cursor:pointer;text-align:center;border:1px solid #0000;border-radius:4px;min-width:26px;padding:2px 8px}.stepper:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong)}.stepper:disabled{opacity:.4;cursor:not-allowed}.stepper.quarter{font-size:var(--text-sm)}.stepper.staged{border-color:var(--color-primary-border);color:var(--color-primary-text)}.panel-header .header-action{margin-left:auto;display:inline-flex}.watch-toggle{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;place-items:center;padding:2px;display:grid}.watch-toggle:hover{color:var(--color-text-primary);background:var(--color-bg-hover)}.watch-toggle.active{color:var(--color-primary-text)}.watch-badge{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-primary-text);border:1px solid var(--color-primary-border);border-radius:999px;padding:0 6px;line-height:1.6}.bubble.preview{background:var(--color-bg-input);color:var(--color-text-secondary);border:1px dashed var(--color-primary-border)}.picker-row{gap:8px;display:flex}.col-picker{flex-direction:column;flex:1;align-items:center;gap:4px;display:flex}.col-label{font-size:var(--text-2xs);text-transform:uppercase;color:var(--color-text-tertiary);letter-spacing:var(--tracking-wide)}.col-stack{border:1px solid var(--color-border-base);border-radius:6px;width:100%;overflow:hidden}.col-cell{text-align:center;font-variant-numeric:tabular-nums;font-size:var(--text-base);color:var(--color-text-secondary);background:var(--color-bg-input);border:none;width:100%;padding:6px 0;font-family:inherit;display:block}button.col-cell{cursor:pointer}button.col-cell:hover:not(:disabled){background:var(--color-bg-elevated);color:var(--color-text-primary)}button.col-cell:disabled{cursor:default;opacity:.4}.col-cell.ghost{color:var(--color-text-faint);background:var(--color-bg-muted);font-size:var(--text-xs);padding:2px 0}.col-cell.active{background:var(--color-primary-hover);color:var(--color-on-primary);font-weight:var(--font-weight-semibold)}.col-cell.active.untagged{background:var(--color-bg-input);color:var(--color-text-tertiary);font-weight:var(--font-weight-normal)}.col-cell.active.untagged:hover{color:var(--color-text-primary);background:var(--color-bg-elevated)}.col-cell.active.draggable{cursor:ns-resize;touch-action:none;-webkit-user-select:none;user-select:none}.hash-row{justify-content:center;gap:6px;margin-top:8px;display:flex}.action-stub{align-items:center;gap:8px;display:flex}.action-stub .time-display{font-family:var(--font-mono);font-size:var(--text-md);color:var(--color-text-secondary);background:var(--color-bg-subtle);line-height:var(--leading-tight);border-radius:4px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 10px;display:flex}.action-stub .tabnum{font-variant-numeric:tabular-nums}.action-stub .mark-pending{font-size:var(--text-xs);color:var(--color-primary-text);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.action-stub .mark-pending:hover{color:var(--color-primary-text)}.action-btn{background:var(--color-border-base);color:var(--color-text-secondary);border:1px solid var(--color-border-medium);font-size:var(--text-sm);cursor:pointer;border-radius:4px;padding:6px 10px;transition:background .1s,color .1s,border-color .1s}.action-btn:hover:not(:disabled){background:var(--color-border-base);color:var(--color-text-bright);border-color:var(--color-border-strong)}.action-btn:disabled{color:var(--color-text-muted);cursor:not-allowed;opacity:.6}.tag-group{margin-bottom:12px}.tag-group-name{font-size:var(--text-xs);color:var(--color-text-tertiary);text-align:center;text-transform:capitalize;margin-bottom:6px}.tag-pills{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pill{border:1px solid var(--color-border-strong);color:var(--color-text-tertiary);font-size:var(--text-sm);cursor:pointer;background:0 0;border-radius:999px;padding:4px 10px;transition:background .1s,color .1s,border-color .1s}.pill:hover:not(:disabled){background:var(--color-bg-elevated);color:var(--color-text-primary)}.pill:disabled{opacity:.4;cursor:not-allowed}.pill.active.green{background:var(--color-success-fill);color:var(--color-on-primary);border-color:var(--color-success-border)}.pill.active.blue{background:var(--color-primary-base);color:var(--color-on-primary);border-color:var(--color-primary-border)}.tool-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.tool-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);color:var(--color-text-secondary);cursor:pointer;height:36px;font-size:var(--text-lg);border-radius:4px;place-items:center;display:grid}.tool-btn:hover{background:var(--color-bg-hover);color:var(--color-text-bright)}.tool-btn.active{background:var(--color-primary-base);color:var(--color-on-primary);border-color:var(--color-primary-border)}.tool-btn.disabled,.tool-btn:disabled{opacity:.35;cursor:not-allowed}.tool-btn.disabled:hover,.tool-btn:disabled:hover{background:var(--color-bg-elevated);color:var(--color-text-secondary)}.fav-btn{font-weight:var(--font-weight-semibold)}.fav-empty{color:var(--color-text-muted);font-size:var(--text-xs);font-style:italic;line-height:var(--leading-relaxed)}.color-row{flex-wrap:wrap;gap:6px;display:flex}.color-swatch{border:1px solid var(--color-border-strong);cursor:pointer;border-radius:50%;width:22px;height:22px;padding:0}.color-swatch:hover{transform:scale(1.1)}.color-swatch.active{outline:2px solid var(--color-text-bright);outline-offset:1px}.annot-mode{gap:6px;display:flex}.annot-mode .pill{text-align:center;flex:1}.annot-mode .pill:disabled{opacity:.4;cursor:not-allowed}.annot-mode .pill:disabled:hover{color:var(--color-text-tertiary);background:0 0}.prop-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}.prop-row:last-child{margin-bottom:0}.prop-label{font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary);flex:0 0 50px}.prop-controls{flex-wrap:wrap;flex:1;gap:4px;display:flex}.prop-controls .pill{text-align:center;flex:1}.prop-controls.color-row{gap:6px}.prop-timing{flex:1}.prop-slider-row{flex-wrap:nowrap;align-items:center;gap:8px}.prop-slider{appearance:none;cursor:pointer;background:0 0;flex:1;height:18px;margin:0;padding:0}.prop-slider::-webkit-slider-runnable-track{background:var(--color-border-strong);border-radius:2px;height:4px}.prop-slider::-moz-range-track{background:var(--color-border-strong);border-radius:2px;height:4px}.prop-slider::-webkit-slider-thumb{appearance:none;background:var(--color-primary-base);border:1px solid var(--color-primary-border);cursor:pointer;border-radius:50%;width:14px;height:14px;margin-top:-5px}.prop-slider::-moz-range-thumb{background:var(--color-primary-base);border:1px solid var(--color-primary-border);cursor:pointer;border-radius:50%;width:14px;height:14px}.prop-slider:focus{outline:none}.prop-slider:focus::-webkit-slider-thumb{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary-bright) 35%, transparent)}.prop-slider:focus::-moz-range-thumb{box-shadow:0 0 0 2px color-mix(in srgb, var(--color-primary-bright) 35%, transparent)}.prop-slider-readout{text-align:right;min-width:36px;font-size:var(--text-xs);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex:none}.btn-delete{background:var(--color-error-bg);border:1px solid var(--color-error-border);width:100%;color:var(--color-error-text);font-size:var(--text-sm);cursor:pointer;border-radius:4px;margin-top:4px;padding:6px 10px}.btn-delete:hover{background:var(--color-error-fill);color:var(--color-error-text);border-color:var(--color-error-border)}.btn-action{background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);width:100%;color:var(--color-text-primary);font-size:var(--text-sm);cursor:pointer;border-radius:4px;margin-top:4px;padding:6px 10px}.btn-action:hover{background:var(--color-bg-hover);color:var(--color-text-bright);border-color:var(--color-border-strong)}.auto-calib-status{border:1px solid var(--color-border-strong);background:var(--color-bg-input);font-size:var(--text-sm);border-radius:6px;margin-top:8px;padding:8px}.auto-calib-line{color:var(--color-text-bright)}.auto-calib-sub{color:var(--color-text-tertiary);margin-top:2px}.auto-calib-status .btn-secondary{margin-top:6px}.formation-hud-icon{z-index:5;width:28px;height:28px;font-size:var(--text-lg);line-height:var(--leading-none);color:var(--color-text-bright);background:var(--color-bg-elevated);border:1px solid var(--color-border-medium);cursor:grab;opacity:.85;touch-action:none;border-radius:6px;justify-content:center;align-items:center;display:flex;position:absolute;top:8px;right:8px}.formation-hud-icon:hover{opacity:1}.formation-hud-icon:active{cursor:grabbing}.formation-hud{z-index:5;background:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:6px;flex-direction:column;max-width:70%;display:flex;position:absolute;top:8px;right:8px;overflow:hidden;box-shadow:0 4px 16px #00000073}.formation-hud-header{background:var(--color-bg-base);border-bottom:1px solid var(--color-border-medium);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none;flex:none;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.formation-hud-title{font-size:var(--text-xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary)}.formation-hud-actions{align-items:center;gap:4px;display:flex}.formation-hud-btn{height:18px;font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);line-height:var(--leading-none);color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;padding:0 5px;display:flex}.formation-hud-btn:hover:not(:disabled){color:var(--color-text-bright);background:var(--color-bg-hover)}.formation-hud-btn:disabled{opacity:.4;cursor:default}.formation-hud-collapse{width:18px;font-size:var(--text-xs);font-weight:var(--font-weight-normal);padding:0}.formation-hud-body{flex:none;position:relative}.formation-hud-canvas{width:100%;height:100%;display:block}.formation-hud-resize{cursor:nwse-resize;touch-action:none;background:linear-gradient(135deg,#0000 0 6px,#ffffff73 6px 7px,#0000 7px 10px,#ffffff73 10px 11px,#0000 11px);width:16px;height:16px;position:absolute;bottom:0;right:0}.pf-control{z-index:3;position:absolute;top:6px}.pf-control.dock-bottom{right:38px}.pf-control.dock-left{right:40px}.pf-control-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);height:18px;color:var(--color-text-tertiary);font-size:var(--text-xs);line-height:var(--leading-none);cursor:pointer;border-radius:3px;align-items:center;gap:3px;padding:0 6px;display:inline-flex}.pf-control-btn:hover{background:var(--color-primary-base);border-color:var(--color-primary-border);color:var(--color-on-primary)}.pf-control-btn.active{border-color:var(--color-primary-border);color:var(--color-text-bright)}.pf-funnel{display:block}.pf-badge{background:var(--color-primary-hover);min-width:13px;height:13px;color:var(--color-on-primary);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;border-radius:7px;justify-content:center;align-items:center;padding:0 3px;display:inline-flex}.pf-drawer{z-index:60;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);border-radius:6px;width:260px;max-width:calc(100vw - 16px);padding:10px 12px;position:fixed;overflow-y:auto;box-shadow:0 6px 20px #00000073}.pf-group{margin-bottom:12px}.pf-group:last-of-type{margin-bottom:8px}.pf-group-head{text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--text-2xs);color:var(--color-text-tertiary);margin-bottom:6px}.pf-options{flex-wrap:wrap;gap:6px;display:flex}.pf-opt{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;border-radius:999px;align-items:baseline;gap:5px;padding:2px 10px;display:inline-flex}.pf-opt:hover{border-color:var(--color-border-strong);color:var(--color-text-bright)}.pf-opt.sel{background:var(--color-primary-base);border-color:var(--color-primary-border);color:var(--color-on-primary)}.pf-opt.zero{opacity:.45}.pf-opt-count{font-size:var(--text-2xs);font-variant-numeric:tabular-nums;color:var(--color-text-tertiary)}.pf-opt.sel .pf-opt-count{color:#ffffffb3}.pf-group-head{justify-content:space-between;align-items:baseline;display:flex}.pf-group-reset{color:var(--color-primary-bright);font-size:var(--text-2xs);text-transform:none;letter-spacing:var(--tracking-normal);cursor:pointer;background:0 0;border:none;padding:0}.pf-group-reset:hover{text-decoration:underline}.pf-range{padding:2px 4px 0}.pf-range-hist{align-items:flex-end;gap:1px;height:38px;display:flex}.pf-rbar{background:var(--color-border-strong);border-radius:1px 1px 0 0;flex:1 1 0;min-height:1px}.pf-rbar.in{background:var(--color-primary-hover)}.pf-range-track{height:16px;margin-top:2px;position:relative}.pf-range-track:before{content:"";background:var(--color-border-strong);border-radius:1px;height:2px;position:absolute;top:7px;left:0;right:0}.pf-range-fill{background:var(--color-primary-bright);border-radius:1px;height:2px;position:absolute;top:7px}.pf-thumb{background:var(--color-bg-elevated);border:2px solid var(--color-primary-bright);cursor:ew-resize;touch-action:none;border-radius:50%;width:14px;height:14px;margin-left:-7px;padding:0;position:absolute;top:0}.pf-thumb:hover{background:var(--color-primary-base)}.pf-range-labels{color:var(--color-text-secondary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:2px;display:flex}.pf-drawer-foot{border-top:1px solid var(--color-border-base);color:var(--color-text-tertiary);font-size:var(--text-xs);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;padding-top:8px;display:flex}.pf-clear-all{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;border-radius:4px;padding:2px 10px}.pf-clear-all:hover:not(:disabled){border-color:var(--color-border-strong);color:var(--color-text-bright)}.pf-clear-all:disabled{opacity:.4;cursor:default}.play-browser{background:var(--color-bg-subtle);flex-direction:column;min-height:0;display:flex;position:relative;overflow:hidden}.play-browser.table.dock-bottom{border-top:1px solid var(--color-border-base)}.play-browser.table.dock-left,.play-browser.compact{border-right:1px solid var(--color-border-base)}.ph-resize{z-index:2;background:0 0;transition:background .1s;position:absolute}.ph-resize:hover,.ph-resize:active{background:var(--color-primary-hover)}.ph-resize-bottom{cursor:ns-resize;height:5px;top:0;left:0;right:0}.ph-resize-left{cursor:ew-resize;width:5px;top:0;bottom:0;right:0}.ph-collapse-btn{z-index:3;background:var(--color-bg-elevated);border:1px solid var(--color-border-base);width:22px;height:18px;color:var(--color-text-tertiary);font-size:var(--text-2xs);line-height:var(--leading-none);cursor:pointer;border-radius:3px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute}.ph-collapse-btn:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}.ph-collapse-btn.dock-bottom{top:6px;right:8px}.ph-collapse-btn.dock-left{top:6px;right:10px}.play-browser.collapsed{background:var(--color-bg-elevated);align-items:center;display:flex;position:relative}.play-browser.collapsed.dock-bottom{border-top:1px solid var(--color-border-base);cursor:pointer;flex-direction:row;justify-content:flex-end;padding:0 8px}.play-browser.collapsed.dock-bottom:hover .ph-expand-btn{background:var(--color-primary-hover);color:var(--color-on-primary)}.play-browser.collapsed.dock-bottom:hover .ph-collapsed-hint{color:var(--color-text-secondary)}.play-browser.collapsed.dock-left{border-right:1px solid var(--color-border-base);flex-direction:column;justify-content:flex-start;padding:8px 0}.ph-collapsed-hint{color:var(--color-text-tertiary);font-size:var(--text-sm);text-align:right;letter-spacing:var(--tracking-normal);-webkit-user-select:none;user-select:none;flex:auto;margin-right:12px}.ph-collapsed-hint.dock-left{display:none}.ph-collapsed-label{color:var(--color-text-tertiary);font-size:var(--text-xs);font-weight:var(--font-weight-semibold);-webkit-user-select:none;user-select:none;margin-right:8px}.ph-collapsed-label.dock-left{writing-mode:vertical-rl;letter-spacing:var(--tracking-wide);order:2;margin-top:8px;margin-right:0;transform:rotate(180deg)}.ph-expand-btn{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);width:22px;height:18px;color:var(--color-text-tertiary);font-size:var(--text-2xs);line-height:var(--leading-none);cursor:pointer;border-radius:3px;flex:none;justify-content:center;align-items:center;padding:0;display:flex}.ph-expand-btn:hover{background:var(--color-primary-hover);color:var(--color-on-primary)}.ph-expand-btn.dock-left{order:1}.ph-body{flex:auto;min-height:0;overflow-y:auto}.ph-empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:24px}.table .ph-row{font-size:var(--text-sm);cursor:pointer;border-bottom:1px solid var(--color-bg-elevated);align-items:center;gap:10px;padding:6px 14px;display:grid;position:relative}.table .ph-row .tabnum{font-variant-numeric:tabular-nums}.table .ph-cell{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.table .ph-row .src-cell{font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.table .ph-row:hover{background:var(--color-bg-base)}.table .ph-row.focused{background:var(--color-selected-bg)}.table .ph-row .num{color:var(--color-text-tertiary)}.table .ph-row.ph-head{background:var(--color-bg-elevated);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);font-size:var(--text-2xs);cursor:default;border-bottom:1px solid var(--color-border-base);position:sticky;top:0}.table .ph-row.ph-head:hover{background:var(--color-bg-elevated)}.table .ph-th{cursor:pointer;-webkit-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;position:relative;overflow:hidden}.table .ph-th:hover,.table .ph-th.sorted{color:var(--color-text-secondary)}.table .ph-th.dragging{opacity:.4}.table .ph-th.drop-before:before,.table .ph-th.drop-after:after{content:"";background:var(--color-primary-hover);pointer-events:none;width:2px;position:absolute;top:-6px;bottom:-6px}.table .ph-th.drop-before:before{left:-6px}.table .ph-th.drop-after:after{right:-6px}.muted{color:var(--color-text-muted)}.drawn-mark{color:var(--color-warning-strong)}.cell.pill-mini{font-size:var(--text-xs);border:1px solid var(--color-border-medium);border-radius:999px;padding:1px 8px;display:inline-block}.cell.pill-mini.green{background:color-mix(in srgb, var(--color-success) 18%, transparent);color:var(--color-success);border-color:var(--color-success-border)}.cell.pill-mini.blue{background:color-mix(in srgb, var(--color-primary-base) 22%, transparent);color:var(--color-primary-text);border-color:var(--color-primary-border)}.cell.odk{text-align:center;width:22px;font-size:var(--text-xs);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;border-radius:3px;padding:1px 0;display:inline-block}.cell.odk-o{background:color-mix(in srgb, var(--color-odk-o) 22%, transparent);color:var(--color-success)}.cell.odk-d{background:color-mix(in srgb, var(--color-odk-d) 22%, transparent);color:var(--color-error-text)}.cell.odk-k{background:color-mix(in srgb, var(--color-odk-k) 22%, transparent);color:var(--color-warning-strong)}.compact{width:100%}.compact .ph-card{border-bottom:1px solid var(--color-bg-elevated);cursor:pointer;font-size:var(--text-sm);padding:8px 10px;position:relative}.compact .ph-card:hover{background:var(--color-bg-base)}.compact .ph-card.focused{background:var(--color-selected-bg)}.compact .ph-card-row{align-items:center;gap:8px;margin-bottom:2px;display:flex}.compact .ph-card-row .num{width:20px;color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);display:inline-block}.compact .ph-card-row .dd{color:var(--color-text-tertiary)}.ph-del{width:20px;height:20px;color:var(--color-error-text);font-size:var(--text-lg);line-height:var(--leading-none);cursor:pointer;background:#1e1e1eeb;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;display:none;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.ph-del:hover{background:var(--color-error-fill);color:var(--color-error-text)}.table .ph-row:hover .ph-del,.table .ph-row.focused .ph-del,.compact .ph-card:hover .ph-del,.compact .ph-card.focused .ph-del{display:flex}.cal-tag{font-size:var(--text-xs);color:var(--color-text-tertiary);letter-spacing:var(--tracking-normal)}.cal-tag-open{color:var(--color-text-faint)}.cal-tag-review{color:var(--cal-review)}.diff-section{margin:12px 0}.diff-section ul{font-size:var(--text-sm);color:var(--color-text-secondary);margin:4px 0;padding-left:18px}.diff-section li{margin:1px 0}.csv-import-modal{width:600px}.csv-file-row{align-items:center;gap:10px;display:flex}.csv-filename{font-size:var(--text-sm)}.csv-error{color:var(--color-error-text);font-size:var(--text-sm);margin-top:6px}.csv-dialect-row{font-size:var(--text-sm);align-items:center;gap:8px;display:flex}.csv-select{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-primary);font-size:var(--text-sm);border-radius:4px;padding:4px 8px}.csv-mode-row{flex-direction:column;gap:4px;margin-bottom:8px;display:flex}.csv-mode-row label{font-size:var(--text-base);color:var(--color-text-secondary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:4px 6px;display:flex}.csv-mode-row label.active{background:var(--color-bg-hover);color:var(--color-text-bright)}.csv-mode-row input[type=radio]{accent-color:var(--color-primary-border)}.csv-source-row{font-size:var(--text-sm);color:var(--color-text-tertiary);align-items:center;gap:8px;margin:8px 0;display:flex}.csv-validation-ok,.csv-validation-err{font-size:var(--text-sm);border-radius:4px;margin:6px 0 0;padding:6px 8px}.csv-validation-ok{color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border)}.csv-validation-err{color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border)}.csv-preview-list{font-size:var(--text-sm);color:var(--color-text-secondary);margin:0;padding:0;list-style:none}.csv-preview-list li{border-bottom:1px solid var(--color-bg-hover);word-wrap:break-word;padding:4px 6px}.csv-preview-list li:last-child{border-bottom:none}.csv-diagnostics{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:8px}.csv-diagnostics summary{cursor:pointer;color:var(--color-warning-text)}.csv-diagnostics ul{margin:4px 0;padding-left:18px}.csv-append-row{font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;align-items:center;gap:6px;margin:6px 0;display:flex}.csv-append-row input[type=checkbox]{accent-color:var(--color-primary-border)}.csv-anchor-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.csv-anchor-readout{font-size:var(--text-sm);color:var(--color-success);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:4px;margin:6px 0 0;padding:6px 8px}.csv-row-list{border:1px solid var(--color-border-base);max-height:200px;font-size:var(--text-sm);border-radius:4px;margin:8px 0 0;padding:0;list-style:none;overflow-y:auto}.csv-row-list li{border-bottom:1px solid var(--color-bg-base);cursor:pointer;color:var(--color-text-secondary);grid-template-columns:28px 1fr auto 64px;align-items:center;gap:8px;padding:4px 8px;display:grid}.csv-row-list li:last-child{border-bottom:none}.csv-row-list li:hover{background:var(--color-bg-elevated)}.csv-row-list li.selected{background:var(--color-selected-bg);color:var(--color-text-bright)}.csv-row-list li.anchored{box-shadow:inset 3px 0 0 var(--color-primary-border)}.csv-row-num{color:var(--color-text-tertiary);text-align:right}.csv-row-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.csv-row-tags{font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.csv-row-pos{text-align:right;font-variant-numeric:tabular-nums;color:var(--color-text-tertiary)}.export-modal{width:680px}.export-format-note{font-weight:var(--font-weight-normal)}.export-preview-scroll{border:1px solid var(--color-bg-hover);border-radius:4px;max-width:100%;overflow-x:auto}.export-preview-table{border-collapse:collapse;font-size:var(--text-xs);color:var(--color-text-secondary);white-space:nowrap}.export-preview-table th,.export-preview-table td{border-bottom:1px solid var(--color-bg-hover);border-right:1px solid var(--color-bg-elevated);text-align:left;padding:3px 8px}.export-preview-table th{background:var(--color-bg-elevated);color:var(--color-warning-text);font-weight:var(--font-weight-semibold);position:sticky;top:0}.export-preview-table tbody tr:last-child td{border-bottom:none}.export-preview-table td.empty{color:var(--color-text-faint)}.export-clip-modal .export-clip-filename{box-sizing:border-box;width:100%;font:inherit;font-size:var(--text-sm);color:var(--color-text-bright);background:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:6px;padding:8px 10px}.export-clip-modal .export-clip-filename:focus{border-color:var(--color-primary-bright);outline:none}.export-clip-modal .export-clip-progress{background:var(--color-bg-elevated);border:1px solid var(--color-border-medium);border-radius:4px;width:100%;height:8px;overflow:hidden}.export-clip-modal .export-clip-progress-fill{background:var(--color-primary-bright);height:100%;transition:width .12s linear}.cut-clips-modal .cut-angle-list{flex-direction:column;gap:4px;display:flex}.cut-clips-modal .cut-angle{cursor:pointer;align-items:baseline;gap:8px;display:flex}.cut-clips-modal .cut-angle.disabled{cursor:default;opacity:.6}.cut-clips-modal .cut-angle-label{color:var(--color-text-bright)}.cut-clips-modal .cut-mode-row{flex-direction:column;align-items:stretch;gap:6px}.cut-clips-modal .cut-clip-subbar{opacity:.75;height:5px;margin-top:6px}.cut-clips-modal .cut-summary .cut-failed ul{font-size:var(--text-sm);color:var(--color-text);margin:4px 0 0;padding-left:18px}.cut-clips-modal .cut-summary .cut-failed li{margin:2px 0}.settings-modal{width:min(820px,94vw)}.settings-search{margin:4px 0 14px}.settings-search input{box-sizing:border-box;background:var(--color-bg-input);border:1px solid var(--color-border-base);width:100%;color:var(--color-text-bright);font-size:var(--text-base);border-radius:4px;padding:8px 10px}.settings-search input:focus{border-color:var(--color-primary-base);outline:none}.settings-body{gap:18px;min-height:340px;display:flex}.settings-nav{border-right:1px solid var(--color-border-base);flex-direction:column;flex:0 0 150px;gap:2px;padding-right:12px;display:flex}.settings-nav button{color:var(--color-text-secondary);text-align:left;font-size:var(--text-base);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:7px 10px}.settings-nav button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.settings-nav button.active{background:var(--color-primary-base);color:var(--color-on-primary)}.settings-pane{flex:1;min-width:0;max-height:52vh;padding-right:4px;overflow-y:auto}.settings-pane h3{margin:2px 0 10px}.settings-results{max-height:52vh;padding-right:4px;overflow-y:auto}.settings-breadcrumb{color:var(--color-text-muted);font-size:var(--text-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.settings-empty{color:var(--color-text-tertiary);font-size:var(--text-base);padding:8px 0}.settings-row{font-size:var(--text-base);justify-content:space-between;align-items:center;gap:12px;margin:10px 0;display:flex}.settings-label{color:var(--color-text-secondary);flex-direction:column;gap:2px;display:flex}.settings-hint{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--font-weight-normal)}.settings-row select{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-primary);font-size:var(--text-sm);border-radius:4px;flex-shrink:0;padding:5px 6px}.settings-segmented{border:1px solid var(--color-border-base);border-radius:4px;flex-shrink:0;display:inline-flex;overflow:hidden}.settings-segmented button{background:var(--color-bg-base);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);white-space:nowrap;border:none;padding:5px 10px}.settings-segmented button+button{border-left:1px solid var(--color-border-base)}.settings-segmented button:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.settings-segmented button.active{background:var(--color-primary-base);color:var(--color-on-primary)}.settings-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.settings-checkbox input[type=checkbox]{accent-color:var(--color-primary-border)}.settings-number{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;text-align:right;border-radius:4px;width:70px;padding:4px 6px}.settings-text{background:var(--color-bg-input);border:1px solid var(--color-border-base);color:var(--color-text-primary);font-size:var(--text-sm);border-radius:4px;flex-shrink:0;width:180px;padding:4px 6px}.settings-text::placeholder{color:var(--color-text-muted)}.settings-number-pair{flex-shrink:0;gap:6px;display:inline-flex}.keybindings-dialog{width:560px}.kb-groups{flex-direction:column;gap:18px;margin-top:4px;display:flex}.kb-group h3{margin-bottom:8px}.kb-rows{grid-template-columns:200px 1fr;align-items:center;gap:6px 16px;display:grid}.kb-row{display:contents}.kb-keys{font-size:var(--text-sm);flex-wrap:wrap;align-items:center;gap:4px;display:flex}.kb-combo{align-items:center;gap:4px;display:inline-flex}.kb-or{color:var(--color-text-muted);font-size:var(--text-xs);margin:0 4px}.kb-ellipsis{color:var(--color-text-tertiary);padding:0 2px}.keybindings-dialog kbd{border:1px solid var(--color-border-base);background:var(--color-bg-base);min-width:18px;color:var(--color-text-primary);font-family:var(--font-mono);font-size:var(--text-xs);line-height:var(--leading-tight);text-align:center;border-bottom-width:2px;border-radius:4px;padding:2px 6px;display:inline-block}.kb-label{color:var(--color-text-secondary);font-size:var(--text-base)}.recent-list{margin:12px 0 0;padding:0;list-style:none}.recent-item{border-bottom:1px solid var(--color-border-base);cursor:pointer;font-size:var(--text-base);grid-template-columns:1fr auto 24px;align-items:center;gap:12px;padding:10px;display:grid}.recent-item:last-child{border-bottom:none}.recent-item:hover{background:var(--color-bg-hover)}.recent-item:focus{outline:1px solid var(--color-primary-base);outline-offset:-1px}.recent-main{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-name{color:var(--color-text-bright);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-file{color:var(--color-text-tertiary);font-size:var(--text-xs);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-time{color:var(--color-text-tertiary);font-size:var(--text-xs);white-space:nowrap}.recent-remove{color:var(--color-text-tertiary);font-size:var(--text-lg);line-height:var(--leading-none);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 6px}.recent-remove:hover{color:var(--color-error-text);background:var(--color-bg-hover)}.calibration-modal{width:min(1200px,96vw);max-height:92vh}.calibration-modal.maximized{flex-direction:column;width:98vw;max-width:98vw;height:96vh;max-height:96vh;display:flex}.calibration-canvas{object-fit:contain;touch-action:none;width:100%;height:auto;max-height:72vh;display:block}.calibration-modal.maximized .calibration-canvas{height:100%;max-height:none}.calibration-zoom-readout{font:var(--text-sm) var(--font-mono);color:var(--color-text-tertiary);text-align:center;min-width:40px}.btn-toggle{border:1px solid var(--color-border-base);color:var(--color-text-primary);cursor:pointer;font-size:var(--text-sm);background:0 0;border-radius:4px;padding:4px 10px}.btn-toggle.active{background:var(--color-primary-bright);border-color:var(--color-primary-bright);color:#08203a}.calibration-swatch{border:1px solid #fff6;border-radius:3px;width:16px;height:16px;display:inline-block}.calibration-map-pane{flex-direction:column;flex:none;gap:4px;width:min(420px,48%);display:flex}.calibration-map-label{font-size:var(--text-xs);color:var(--color-text-tertiary)}.calibration-map{border:1px solid var(--color-border-base);cursor:crosshair;background:#0d1f14;border-radius:4px;width:auto;max-width:100%;height:auto;max-height:58vh;margin:0 auto;display:block}.calibration-map.disabled{cursor:default;opacity:.55}.calibration-point-list{flex-direction:column;flex:auto;gap:3px;min-width:0;max-height:30vh;display:flex;overflow-y:auto}.calibration-empty{font-size:var(--text-sm);color:var(--color-text-tertiary);line-height:var(--leading-normal);padding:4px 0}.calibration-point-row{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:4px 6px;display:flex}.calibration-point-row:hover{background:var(--color-bg-hover)}.calibration-point-row.selected{background:color-mix(in srgb, var(--color-primary-bright) 18%, transparent)}.calibration-point-label{min-width:0;font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.calibration-point-res{font:var(--text-xs) var(--font-mono);color:var(--color-text-tertiary);text-align:right;min-width:52px}.calibration-point-res.bad{color:var(--color-warning-strong)}.btn-icon{color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 6px}.btn-icon:hover{color:var(--color-error-text);background:color-mix(in srgb, var(--color-error-text) 12%, transparent)}.cnav-pager{align-items:center;gap:4px;display:flex}.cnav-btn{border:1px solid var(--color-border-strong);background:var(--color-bg-base);width:28px;height:28px;color:var(--color-text-primary);font-size:var(--text-lg);line-height:var(--leading-none);cursor:pointer;border-radius:6px}.cnav-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-bright)}.cnav-btn:disabled{opacity:.4;cursor:default}.cnav-pos{text-align:center;min-width:96px;font-size:var(--text-base);color:var(--color-text-bright);line-height:var(--leading-tight);flex-direction:column;display:inline-flex}.cnav-pos small{color:var(--color-text-muted);font-size:var(--text-2xs);font-variant-numeric:tabular-nums}.cnav-next-flagged{cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--cal-review);background:var(--color-warning-bg);border:1px solid var(--color-warning-border);border-radius:7px;padding:6px 13px}.cnav-next-flagged:hover:not(:disabled){background:var(--color-warning-bg)}.cnav-next-flagged:disabled{opacity:.5;cursor:default}.cal-seg{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:6px;gap:2px;padding:2px;display:inline-flex}.cal-seg button{color:var(--color-text-secondary);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;border-radius:4px;padding:4px 12px}.cal-seg button.on{background:var(--color-primary-base);color:var(--color-on-primary);font-weight:var(--font-weight-semibold)}.cal-chev{color:var(--color-text-muted);font-size:var(--text-2xs);transition:transform .15s}.cal-assist-dot{background:var(--cal-manual,#5ee68c);border-radius:50%;width:6px;height:6px}.calibration-assist-row{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:6px;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;padding:7px 9px;display:flex}.cal-assist-div{background:var(--color-border-strong);width:1px;height:18px;margin:0 3px}.cal-autoaim{cursor:pointer;font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--cal-auto,#46c8d0);background:color-mix(in srgb, var(--cal-auto,#46c8d0) 12%, var(--color-bg-input));border:1px solid color-mix(in srgb, var(--cal-auto,#46c8d0) 45%, var(--color-border-base));border-radius:5px;align-items:center;gap:5px;padding:5px 12px;display:inline-flex}.cal-autoaim:hover:not(:disabled){background:color-mix(in srgb, var(--cal-auto,#46c8d0) 20%, var(--color-bg-input))}.cal-autoaim:disabled{opacity:.6;cursor:default}.cal-header{border-bottom:1px solid var(--color-border-base);align-items:center;gap:12px;padding:6px 0 8px;display:flex}.cal-clip-status{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-bright);background:var(--color-bg-input);border:1px solid var(--color-border-strong);border-radius:99px;align-items:center;gap:6px;padding:3px 10px;display:inline-flex}.cal-clip-status:before{content:"";background:var(--c,var(--cal-open));border-radius:50%;flex:none;width:7px;height:7px}.cal-status{font:var(--text-sm) var(--font-mono);color:var(--color-text-tertiary)}.cal-status.ok{color:var(--cal-manual,#5ee68c)}.cal-status-msg{font-size:var(--text-sm);color:var(--color-text-tertiary)}.cal-header-sp{flex:1}.cal-refine-strip{flex-wrap:wrap;align-items:center;gap:8px;padding:8px 0 4px;display:flex}.cal-strip-sp{flex:1}.cal-disc{border:1px solid var(--color-border-base);color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-sm);background:0 0;border-radius:6px;align-items:center;gap:5px;padding:4px 10px;display:inline-flex}.cal-disc:hover,.cal-disc.on{background:var(--color-bg-hover);color:var(--color-text-bright)}.cal-disc.on .cal-chev{transform:rotate(90deg)}.cal-dock-toggle{color:var(--color-text-tertiary)}.calibration-setup-row{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:6px;flex-wrap:wrap;align-items:center;gap:14px;margin-top:6px;padding:8px 10px;display:flex}.calibration-setup-row label{font-size:var(--text-sm);color:var(--color-text-tertiary)}.calibration-setup-row select{margin-left:3px}.calibration-setup-row input{width:50px;margin-left:3px}.cal-body{gap:10px;min-height:0;margin-top:8px;display:flex}.cal-body[data-dock=bottom]{flex-direction:column}.cal-body[data-dock=right]{flex-direction:row;align-items:stretch}.calibration-modal.maximized .cal-body{flex:auto;min-height:0}.cal-canvas-area{background:var(--color-bg-muted);border:1px solid var(--color-border-base);border-radius:4px;flex:auto;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}.cal-canvas-area .calibration-canvas{object-fit:contain;touch-action:none;width:100%;height:auto;max-height:58vh;display:block}.cal-body[data-dock=right] .cal-canvas-area .calibration-canvas{max-height:80vh}.calibration-modal.maximized .cal-canvas-area .calibration-canvas{width:auto;max-width:100%;height:100%;max-height:none}.cal-zoom-overlay{background:color-mix(in srgb, var(--color-bg-muted) 80%, transparent);border:1px solid var(--color-border-strong);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;align-items:center;gap:3px;padding:2px 4px;display:flex;position:absolute;bottom:8px;right:8px}.cal-zoom-overlay .btn-toggle{padding:2px 7px}.cal-zoom-overlay .calibration-zoom-readout{text-align:center;min-width:38px}.cal-body[data-dock=bottom] .cal-pins-panel{flex-direction:row;align-items:flex-start;gap:14px;max-height:34vh;display:flex}.cal-body[data-dock=right] .cal-pins-panel{flex-direction:column;flex:0 0 320px;gap:8px;width:320px;display:flex;overflow-y:auto}.cal-body[data-dock=right] .calibration-map-pane{width:100%}.calibration-modal.maximized .cal-body[data-dock=bottom] .cal-pins-panel{max-height:30vh}.cal-setup-div{background:var(--color-border-strong);align-self:stretch;width:1px;margin:0 4px}.cal-angle-label{font-size:var(--text-sm);color:var(--color-text-tertiary)}.cal-batch-btn{font-size:var(--text-sm);cursor:pointer;border:1px solid var(--color-border-strong);background:var(--color-bg-base);color:var(--color-text-primary);border-radius:6px;padding:4px 10px}.cal-batch-btn:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text-bright)}.cal-batch-btn:disabled{opacity:.5;cursor:default}.cal-batch-btn.danger{color:var(--color-error-text);border-color:var(--color-error-border)}.cal-batch-btn.danger:hover:not(:disabled){background:var(--color-error-bg)}.cal-batch-status{font-size:var(--text-sm);color:var(--color-text-secondary);background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:6px;align-items:center;gap:10px;margin-top:6px;padding:6px 10px;display:flex}.cal-log{background:var(--color-bg-input);border:1px solid var(--color-border-base);font:var(--text-xs) var(--font-mono);color:var(--color-text-secondary);border-radius:6px;max-height:30vh;margin-top:8px;padding:8px 10px;overflow-y:auto}.cal-log-head{align-items:center;gap:10px;margin-bottom:6px;display:flex}.cal-log-title{font-weight:var(--font-weight-bold);color:var(--color-text-bright)}.cal-log-sub{color:var(--color-text-tertiary)}.cal-log-head .btn-secondary{font-size:var(--text-xs);padding:3px 9px}.cal-log-line{padding:3px 0}.cal-log-line.bad{color:var(--cal-review,#ff9a3c)}.cal-log-line b{color:var(--color-text-primary);font-weight:var(--font-weight-bold)}.cal-log-table{border-collapse:collapse;width:100%;margin:4px 0}.cal-log-table th{text-align:left;color:var(--color-text-tertiary);font-weight:var(--font-weight-semibold);border-bottom:1px solid var(--color-border-base);padding:2px 8px 2px 0}.cal-log-table td{white-space:nowrap;padding:2px 8px 2px 0}.cal-log-table tr.bad td{color:var(--cal-review,#ff9a3c)}.cal-log-hint{color:var(--color-text-faint);margin-top:6px}.cal-log-hint code{color:var(--color-text-tertiary)}.mapping-modal{width:620px}.mapping-list{flex-direction:column;gap:8px;margin:12px 0;display:flex}.mapping-row{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:6px;align-items:center;gap:12px;padding:8px 10px;display:flex}.mapping-folder{flex:1;min-width:0}.mapping-folder .folder-name{font-weight:var(--font-weight-semibold);font-size:var(--text-base);color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mapping-folder .folder-meta{font-size:var(--text-xs);color:var(--color-text-tertiary);margin-top:2px}.mapping-controls{align-items:center;gap:6px;display:flex}.mapping-controls select,.mapping-controls input[type=text]{background:var(--color-bg-subtle);border:1px solid var(--color-border-base);color:var(--color-text-primary);font-size:var(--text-sm);border-radius:4px;padding:4px 8px}.mapping-controls input[type=text]{width:12em}.mapping-section+.mapping-section{margin-top:14px}.mapping-section-title{font-size:var(--text-sm);font-weight:var(--font-weight-semibold);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-text-tertiary);margin:0 0 6px}.mapping-folder .folder-meta code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-bg-hover);border-radius:3px;padding:0 4px}.classify-grid{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.classify-row{grid-template-columns:96px 1fr;align-items:center;gap:10px;display:grid}.classify-row>label{font-size:var(--text-xs);color:var(--color-text-tertiary)}.classify-pick,.classify-create,.classify-create-btns{align-items:center;gap:6px;display:flex}.classify-in{border:1px solid var(--color-border-medium);background:var(--color-bg-input);min-width:0;color:var(--color-text-bright);font:inherit;border-radius:6px;flex:auto;padding:6px 8px}.classify-in--sm{flex:none;width:92px}.classify-in:focus{border-color:var(--color-primary-border);outline:none}.classify-new{border:1px solid var(--color-border-medium);background:var(--color-bg-input);width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;border-radius:6px;flex:none}.classify-new:hover:not(:disabled){border-color:var(--color-primary-border);color:var(--color-primary-text)}.classify-new:disabled{opacity:.5;cursor:default}.classify-side{font-size:var(--text-xs);color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:12px;display:flex}.classify-side label{align-items:center;gap:4px;display:inline-flex}.classify-hint{min-width:0;color:var(--color-text-muted);font-size:var(--text-2xs);line-height:var(--leading-snug);flex:100%}.classify-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);font-size:var(--text-xs);border-radius:6px;margin-bottom:10px;padding:7px 10px}.scheck-scope{font-size:var(--text-xs);margin:0 0 12px}.scheck-head{border:1px solid var(--color-border-base);background:var(--color-bg-elevated);border-radius:6px;margin-bottom:12px;padding:10px 12px}.scheck-head p{margin:0}.scheck-head p+p{margin-top:6px}.scheck-lead{font-size:var(--text-base);font-weight:var(--font-weight-medium);color:var(--color-text-bright)}.scheck-head .muted{font-size:var(--text-xs);line-height:var(--leading-snug)}.scheck-when{font-size:var(--text-2xs);color:var(--color-text-muted);margin-top:8px!important}.scheck-head--ok{background:var(--color-success-bg);border-color:var(--color-success-border)}.scheck-head--ok .scheck-lead{color:var(--color-success)}.scheck-head--problems{background:var(--color-error-bg);border-color:var(--color-error-border)}.scheck-head--problems .scheck-lead{color:var(--color-error-text)}.scheck-head--incomplete{background:var(--color-warning-bg);border-color:var(--color-warning-border)}.scheck-head--incomplete .scheck-lead{color:var(--color-warning-text)}.scheck-head--unchecked{background:var(--color-bg-muted)}.scheck-note{background:var(--color-bg-muted);border:1px solid var(--color-border-base);color:var(--color-text-secondary);font-size:var(--text-xs);line-height:var(--leading-snug);border-radius:6px;margin:0 0 12px;padding:8px 10px}.scheck-findings{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.scheck-detail{border:1px solid var(--color-border-base);font-size:var(--text-xs);border-radius:6px;padding:8px 10px}.scheck-detail summary{cursor:pointer;color:var(--color-text-bright)}.scheck-detail summary:hover{color:var(--color-primary-text)}.scheck-detail p{margin:8px 0 6px}.scheck-detail ul{color:var(--color-text-secondary);margin:0;padding-left:18px}.scheck-detail li{margin-bottom:2px}.scheck-detail code{font-family:var(--font-mono);font-size:var(--text-2xs);word-break:break-all}.scheck-detail--quiet summary{color:var(--color-text-tertiary)}.scheck-warn{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);line-height:var(--leading-snug);border-radius:5px;padding:7px 9px}.scheck-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);font-size:var(--text-xs);border-radius:6px;margin-bottom:10px;padding:7px 10px}.scheck-error code{font-family:var(--font-mono)}.download-review,.download-progress{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.download-stats{gap:20px;margin:0;display:flex}.download-stats>div{flex-direction:column;gap:2px;display:flex}.download-stats dt{font-size:var(--text-xs);color:var(--color-text-tertiary)}.download-stats dd{font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--color-text-bright);margin:0}.download-bar{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:4px;height:8px;display:flex;overflow:hidden}.download-bar .got{background:var(--color-primary-base)}.download-detail{border:1px solid var(--color-border-base);font-size:var(--text-xs);border-radius:6px;padding:8px 10px}.download-detail summary{cursor:pointer;color:var(--color-text-secondary)}.download-detail summary:hover{color:var(--color-text-bright)}.download-detail ul{color:var(--color-text-secondary);margin:8px 0 0;padding-left:18px}.download-detail li{margin-bottom:2px}.download-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);font-size:var(--text-xs);border-radius:6px;margin-bottom:10px;padding:7px 10px}.upload-review,.upload-progress{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.upload-stats{gap:20px;margin:0;display:flex}.upload-stats>div{flex-direction:column;gap:2px;display:flex}.upload-stats dt{font-size:var(--text-xs);color:var(--color-text-tertiary)}.upload-stats dd{font-size:var(--text-lg);font-weight:var(--font-weight-medium);color:var(--color-text-bright);margin:0}.upload-quota-bar{background:var(--color-bg-input);border:1px solid var(--color-border-base);border-radius:4px;height:8px;display:flex;overflow:hidden}.upload-quota-bar .used{background:var(--color-primary-base)}.upload-quota-bar .adding{background:var(--color-primary-border)}.upload-quota.over .upload-quota-bar .adding{background:var(--color-error-text)}.upload-quota{flex-direction:column;gap:6px;display:flex}.upload-quota p{font-size:var(--text-xs);margin:0}.upload-quota-over{color:var(--color-error-text)}.upload-note{background:var(--color-bg-elevated);border:1px solid var(--color-border-base);color:var(--color-text-secondary);font-size:var(--text-xs);border-radius:6px;padding:8px 10px}.upload-detail{border:1px solid var(--color-border-base);font-size:var(--text-xs);border-radius:6px;padding:8px 10px}.upload-detail summary{cursor:pointer;color:var(--color-text-secondary)}.upload-detail summary:hover{color:var(--color-text-bright)}.upload-detail p{margin:8px 0 6px}.upload-detail ul{color:var(--color-text-secondary);margin:0;padding-left:18px}.upload-detail li{margin-bottom:2px}.upload-link{color:var(--color-primary-text);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.upload-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);font-size:var(--text-xs);border-radius:6px;margin-bottom:10px;padding:7px 10px}.upload-error code{font-family:var(--font-mono)}.upload-whoami{font-family:var(--font-mono);opacity:.8;margin-top:6px}.merge-report-dialog h4{font-size:var(--text-sm);font-weight:var(--font-weight-medium);color:var(--color-text-bright);margin:16px 0 4px}.merge-rule{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0 0 8px}.merge-list{border:1px solid var(--color-border-base);border-radius:6px;max-height:40vh;margin:0;padding:0;list-style:none;overflow-y:auto}.merge-list li{font-size:var(--text-xs);flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:7px 10px;display:flex}.merge-list li+li{border-top:1px solid var(--color-border-base)}.merge-where{min-width:6.5em;color:var(--color-text-bright);font-weight:var(--font-weight-medium)}.merge-field{min-width:8em;font-family:var(--font-mono);color:var(--color-text-secondary)}.merge-values{color:var(--color-text-secondary)}.merge-values b{color:var(--color-text-bright);font-weight:var(--font-weight-medium)}.merge-vs{color:var(--color-text-muted)}.align-angles-dialog{width:min(1100px,94vw);max-width:none}.align-pick{align-items:center;gap:12px;margin-bottom:8px;display:flex}.align-pick label{font-size:var(--text-xs);color:var(--color-text-tertiary);align-items:center;gap:6px;display:inline-flex}.align-lead{font-size:var(--text-xs);color:var(--color-text-secondary);margin:0 0 8px}.align-lead b{color:var(--color-text-bright)}.align-muted{color:var(--color-text-muted);font-size:var(--text-xs)}.align-warn{font-size:var(--text-xs);color:var(--color-warning-base);margin:0 0 10px}.align-warn b{color:var(--color-text-bright)}.align-preview{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px;display:grid}.align-pane{background:var(--color-bg-subtle);border:1px solid var(--color-border-base);border-radius:6px;justify-content:center;align-items:center;min-height:180px;display:flex;position:relative;overflow:hidden}.align-pane video{width:100%;max-height:34vh;display:block}.align-pane-label{z-index:1;font-size:var(--text-xs);color:var(--color-text-tertiary);background:var(--color-bg-base);border-radius:3px;padding:1px 6px;position:absolute;top:4px;left:6px}.align-pane-empty{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;padding:20px}.align-table-wrap{border:1px solid var(--color-border-base);border-radius:6px;max-height:34vh;overflow-y:auto}.align-table{border-collapse:collapse;width:100%;font-size:var(--text-xs)}.align-table th{z-index:1;background:var(--color-bg-subtle);text-align:left;font-weight:var(--font-weight-medium);color:var(--color-text-tertiary);border-bottom:1px solid var(--color-border-base);padding:6px 10px;position:sticky;top:0}.align-table th:nth-child(2),.align-table td:nth-child(4){border-left:2px solid var(--color-border-strong)}.align-table td{color:var(--color-text-secondary);padding:4px 10px}.align-table tbody tr+tr td{border-top:1px solid var(--color-border-base)}.align-table tbody tr{cursor:pointer}.align-table tbody tr:hover td{background:var(--color-bg-subtle)}.align-table tbody tr.selected td{background:var(--color-bg-base)}.align-table tbody tr.selected .align-name{color:var(--color-text-bright)}.align-table tbody tr.lone .align-name{color:var(--color-text-muted);font-style:italic}.align-name{min-width:8em}.align-table .num{text-align:right;font-family:var(--font-mono);white-space:nowrap;width:4em}.align-moves{white-space:nowrap;width:3.5em}.align-moves button{border:1px solid var(--color-border-base);color:var(--color-text-tertiary);cursor:pointer;line-height:1.4;font-size:var(--text-xs);background:0 0;border-radius:3px;padding:0 4px}.align-moves button:hover:not(:disabled){background:var(--color-bg-base);color:var(--color-text-bright)}.align-moves button:disabled{opacity:.3;cursor:default}.align-add label{cursor:pointer;color:var(--color-text-tertiary);white-space:nowrap;align-items:center;gap:4px;display:inline-flex}.align-outcome{font-size:var(--text-xs);color:var(--color-text-secondary);margin:10px 0 0}.align-outcome b{color:var(--color-text-bright)}html,body,#root{height:100%;margin:0}body{background:var(--color-bg-subtle);color:var(--color-text-primary);font:var(--text-base)/var(--leading-normal) var(--font-body)}.app{grid-template-rows:auto 1fr;grid-template-columns:1fr 300px;height:100%;min-height:0;display:grid}.app>.toolbar{grid-area:1/1}.app>.layout{grid-area:2/1}.app>.side-panel-header{grid-area:1/2}.app>.sidebar{grid-area:2/2}.app.adhoc>.sidebar{grid-row:1/3}.app-home-root{height:100%;min-height:0}.layout{min-height:0;display:grid;overflow:hidden}.app.dock-bottom .layout{grid-template-rows:1fr;grid-template-columns:1fr}.app.dock-bottom .stage-area{grid-area:1/1}.app.dock-left .layout{grid-template-rows:1fr;grid-template-columns:240px 1fr}.app.dock-left .play-browser{grid-area:1/1}.app.dock-left .stage-area{grid-area:1/2}.app.adhoc .layout{grid-template-rows:1fr;grid-template-columns:1fr}.app.adhoc .stage-area{grid-area:1/1}.sidebar,.side-panel-header{border-left:1px solid var(--color-border-base)}.side-panel-header{background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-base);gap:2px;min-height:0;padding:6px;display:flex;overflow:hidden}.side-panel-header .mode-tab{color:var(--color-text-secondary);cursor:pointer;font-size:var(--text-base);font-weight:var(--font-weight-medium);background:0 0;border:1px solid #0000;border-radius:5px;flex:1;padding:6px 0}.side-panel-header .mode-tab.active{background:var(--color-primary-base);color:var(--color-on-primary)}.side-panel-header .mode-tab:hover:not(.active){background:var(--color-bg-hover);color:var(--color-text-bright)}.stage-area{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0;display:grid;position:relative;overflow:hidden}.stage-area .player{grid-row:1;min-height:0}.stage-area .play-browser.table{grid-row:2;min-height:0}.auth-splash{background:var(--color-bg-subtle);min-height:100vh;color:var(--color-text-tertiary);font:var(--font-weight-medium) var(--text-lg)/var(--leading-normal) var(--font-body);justify-content:center;align-items:center;display:flex}.auth-screen{background:var(--color-bg-subtle);min-height:100vh;color:var(--color-text-primary);justify-content:center;align-items:center;padding:24px;display:flex}.auth-card{background:var(--color-bg-base);border:1px solid var(--color-border-base);border-radius:12px;width:100%;max-width:400px;padding:32px 28px;box-shadow:0 8px 30px #00000040}.auth-brand{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-weight-normal);letter-spacing:var(--tracking-tight);color:var(--color-text-bright);margin:0}.auth-tagline{color:var(--color-text-tertiary);font-size:var(--text-base);margin:6px 0 24px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-field{font-size:var(--text-base);color:var(--color-text-secondary);flex-direction:column;gap:5px;display:flex}.auth-field input{background:var(--color-bg-input);border:1px solid var(--color-border-medium);color:var(--color-text-primary);font-size:var(--text-md);border-radius:6px;padding:9px 11px}.auth-field input:focus{border-color:var(--color-primary-base);outline:none}.auth-primary{font-size:var(--text-md);font-weight:var(--font-weight-semibold);cursor:pointer;background:var(--color-primary-base);color:var(--color-on-primary);border:1px solid #0000;border-radius:6px;padding:10px 14px}.auth-primary:hover:not(:disabled){background:var(--color-primary-hover)}.auth-primary:disabled{opacity:.55;cursor:default}.auth-reset{color:var(--color-text-tertiary);font-size:var(--text-sm);align-self:flex-end;margin-top:-6px;text-decoration:none}.auth-reset:hover{color:var(--color-primary-text);text-decoration:underline}.auth-error{color:var(--color-error-text);font-size:var(--text-base);margin:0}.auth-notice{color:var(--color-success);font-size:var(--text-base);margin:0}.auth-muted{text-align:center;color:var(--color-text-tertiary);font-size:var(--text-base);margin:16px 0 0}.auth-link{color:var(--color-primary-text);font-size:var(--text-base);font-weight:var(--font-weight-semibold);cursor:pointer;background:0 0;border:none;padding:0}.auth-link:disabled{opacity:.55;cursor:default}.mask-test-page{color:#e8e8e8;min-height:100vh;font-family:var(--font-body);box-sizing:border-box;background:#1a1a1a;padding:16px 24px}.mask-test-page header{border-bottom:1px solid #333;align-items:center;gap:16px;margin-bottom:16px;padding-bottom:12px;display:flex}.mask-test-page header h1{font-size:var(--text-lg);font-weight:var(--font-weight-semibold);flex-shrink:0;margin:0}.mask-test-page header .hint{color:#888;font-size:var(--text-sm)}.mask-test-page header .back-link{color:#6cf;font-size:var(--text-base);margin-left:auto;text-decoration:none}.mask-test-page .empty{color:#888;min-height:60vh;font-size:var(--text-md);border:2px dashed #333;border-radius:8px;justify-content:center;align-items:center;margin-top:16px;display:flex}.mask-test-page .controls{background:#222;border-radius:6px;grid-template-columns:1fr 1fr 1fr;gap:24px;margin-bottom:16px;padding:12px;display:grid}.mask-test-page .controls h3{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:var(--tracking-wide);color:#888;margin:0 0 6px}.mask-test-page .controls p{font-size:var(--text-sm);color:#888;margin:0 0 8px}.mask-test-page .marker-row{font-size:var(--text-sm);font-family:var(--font-mono);align-items:center;gap:8px;margin-bottom:4px;display:flex}.mask-test-page .swatch{border:1px solid #555;border-radius:3px;flex-shrink:0;width:16px;height:16px}.mask-test-page .marker-row button{color:#ccc;cursor:pointer;width:20px;height:20px;line-height:var(--leading-none);background:0 0;border:1px solid #555;border-radius:3px;margin-left:auto}.mask-test-page .sliders label{font-size:var(--text-sm);align-items:center;gap:8px;margin-bottom:6px;display:flex}.mask-test-page .sliders input[type=range]{flex:1}.mask-test-page .seg-control{flex-direction:column;gap:8px;display:flex}.mask-test-page .seg-control button{color:#fff;font-size:var(--text-base);cursor:pointer;background:#2d5cf5;border:0;border-radius:4px;padding:8px 14px}.mask-test-page .seg-control button:disabled{cursor:default;background:#444}.mask-test-page .seg-control .error{color:#ff7a7a;font-size:var(--text-sm)}.mask-test-page .seg-control .note{color:#888;font-size:var(--text-xs)}.mask-test-page .canvases{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.mask-test-page figure{background:#111;border-radius:4px;flex-direction:column;margin:0;display:flex;overflow:hidden}.mask-test-page figcaption{font-size:var(--text-sm);color:#ccc;background:#222;justify-content:space-between;padding:6px 10px;display:flex}.mask-test-page figcaption .timing{color:#6cf;font-family:var(--font-mono)}.mask-test-page canvas{cursor:crosshair;width:100%;height:auto;display:block}.mask-test-page figure:not(.clickable) canvas{cursor:default}.mask-test-page .source-wrap{position:relative}.mask-test-page .marker-overlay{pointer-events:none;position:absolute;inset:0}.mask-test-page .marker-dot{border:2px solid #fff;border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 6px #000000b3}.mask-test-page .fc-slot{width:100%}.mask-test-page .fc-slot .fc-canvas{cursor:crosshair;width:100%;height:auto;display:block}.mask-test-page .video-bar{background:#222;border-radius:6px;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.mask-test-page .transport{align-items:center;gap:6px;display:flex}.mask-test-page .transport button{color:#e8e8e8;font-size:var(--text-base);cursor:pointer;background:#333;border:1px solid #444;border-radius:3px;min-width:32px;padding:4px 10px}.mask-test-page .transport button:disabled{opacity:.4;cursor:default}.mask-test-page .transport input[type=range]{flex:1}.mask-test-page .transport .readout{font-family:var(--font-mono);font-size:var(--text-sm);color:#ccc;text-align:right;min-width:140px}.mask-test-page .live-toggles{font-size:var(--text-base);align-items:center;gap:16px;display:flex}.mask-test-page .live-toggles label{cursor:pointer;align-items:center;gap:6px;display:flex}.mask-test-page .live-toggles label input[disabled]+*{opacity:.5}.mask-test-page .metrics-reset{color:#ccc;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #555;border-radius:3px;margin-left:auto;padding:3px 10px}.mask-test-page .metrics{font-family:var(--font-mono);font-size:var(--text-sm);color:#ccc;flex-direction:column;gap:3px;display:flex}.mask-test-page .metric b{color:#6cf;min-width:50px;display:inline-block}.mask-test-page .metric.over-budget{color:#ff9a6a}.mask-test-page .video-error{color:#ff7a7a;font-size:var(--text-sm)}
