:root{--bg: #0c0c0c;--surface: #151515;--surface-elevated: #1c1c1c;--border: #2a2a2a;--border-subtle: #222;--text: #f5f5f5;--text-secondary: #a0a0a0;--text-muted: #666;--primary: #6366f1;--primary-hover: #818cf8;--primary-subtle: rgba(99, 102, 241, .12);--danger: #ef4444;--danger-subtle: rgba(239, 68, 68, .12);--success: #22c55e;--success-subtle: rgba(34, 197, 94, .12);--warning: #f59e0b;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .6);--transition-fast: .15s ease;--transition-normal: .2s ease}*{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);height:100%;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;overflow:hidden}.app{height:100%;display:flex;flex-direction:column;overflow:hidden}.app-nav{display:flex;align-items:center;gap:0;height:44px;background:var(--surface);border-bottom:1px solid var(--border-subtle);padding:0 1rem;flex-shrink:0}.app-nav-brand{display:flex;align-items:center;gap:.5rem;margin-right:1.5rem}.app-nav-logo{font-size:1rem;color:var(--primary);font-weight:700;line-height:1}.app-nav-name{font-size:.8125rem;font-weight:600;color:var(--text);letter-spacing:-.01em;white-space:nowrap}.app-nav-tabs{display:flex;align-items:stretch;gap:0;height:100%}.nav-tab{display:inline-flex;align-items:center;gap:.375rem;padding:0 .875rem;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast);white-space:nowrap;height:100%;position:relative}.nav-tab:hover:not(:disabled){color:var(--text);background:#ffffff0a}.nav-tab.active{color:var(--text);border-bottom-color:var(--primary)}.nav-tab:disabled{opacity:.3;cursor:not-allowed}.nav-tab-present.active{border-bottom-color:var(--success);color:var(--success)}.nav-tab-label{font-size:.8125rem}.nav-tab-badge{background:var(--primary);color:#fff;font-size:.5625rem;font-weight:700;border-radius:.75rem;padding:.0625rem .3rem;min-width:1rem;text-align:center}.nav-tab-kbd{display:inline-flex;align-items:center;justify-content:center;font-size:.5625rem;font-weight:600;font-family:inherit;padding:.1rem .3rem;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:.25rem;color:var(--text-muted);line-height:1.4}.app-nav-right{margin-left:auto;display:flex;align-items:center;gap:.5rem}.app-nav-slide-count{font-size:.6875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.toolbar{display:flex;gap:.5rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border-subtle);align-items:center;flex-shrink:0}.preview-toolbar{padding:.375rem 1rem}.toolbar-spacer{flex:1}.toolbar button{display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast)}.toolbar button:hover:not(:disabled){background:var(--primary-subtle);border-color:var(--primary);color:var(--text)}.toolbar button:disabled{opacity:.4;cursor:not-allowed}.btn-icon{font-size:.875rem;opacity:.7}.grid-action-bar{display:flex;align-items:center;gap:.75rem;padding:.5rem 1rem;background:var(--surface);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.grid-add-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast);white-space:nowrap}.grid-add-btn:hover{background:var(--primary-subtle);border-color:var(--primary);color:var(--text)}.grid-action-hint{font-size:.6875rem;color:var(--text-muted)}.kbd-badge{display:inline-flex;align-items:center;justify-content:center;padding:.125rem .375rem;margin-left:.25rem;font-size:.625rem;font-weight:600;font-family:inherit;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em}.kbd-badge-sm{padding:.0625rem .25rem;font-size:.5625rem;margin-left:.125rem;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:.25rem;color:var(--text-muted)}.slide-nav{display:flex;align-items:center;gap:.375rem;margin-left:auto;margin-right:auto}.nav-counter{font-size:.75rem;color:var(--text-muted);min-width:3.5rem;text-align:center;font-variant-numeric:tabular-nums}.present-btn{background:var(--primary)!important;border-color:var(--primary)!important;color:#fff!important}.present-btn .kbd-badge{background:#fff3;border-color:#ffffff59;color:#ffffffe6}.present-corner-controls .exit-btn .kbd-badge-sm{background:#fff3;border-color:#ffffff59;color:#fffffff2}.download-slide-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.4rem .75rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast)}.download-slide-btn:hover:not(:disabled){background:var(--success-subtle);border-color:var(--success);color:var(--success)}.download-slide-btn.downloading{opacity:.7;cursor:not-allowed;border-color:var(--success);color:var(--success)}.download-spinner{display:inline-block;width:.75rem;height:.75rem;border:2px solid rgba(34,197,94,.3);border-top-color:var(--success);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.muted{color:var(--text-muted)}.audio-drop.disabled{opacity:.5;cursor:default;pointer-events:none}.grid-view{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.grid-main{flex:1;display:flex;gap:0;min-height:0;overflow:hidden}.drop-zone{flex:1;border:none;padding:1rem;transition:all var(--transition-normal);overflow-y:auto;background:var(--bg)}.drop-zone.dragging{background:var(--primary-subtle)}.drop-zone.scanning{background:#f59e0b0d;pointer-events:none}.scanning-hint{color:var(--warning)!important;animation:pulse 1s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.6}to{opacity:1}}.grid-empty-wrap{display:flex;align-items:center;justify-content:center;height:100%;padding:2rem}.grid-empty-card{display:flex;flex-direction:column;align-items:center;gap:.625rem;text-align:center;padding:2.5rem 3rem;border:1.5px dashed var(--border);border-radius:var(--radius-xl);background:var(--surface);max-width:360px;width:100%;transition:all var(--transition-normal)}.grid-empty-card.dragging,.drop-zone.dragging .grid-empty-card{border-color:var(--primary);background:var(--primary-subtle)}.grid-empty-icon{width:3rem;height:3rem;border-radius:var(--radius-lg);background:var(--primary-subtle);color:var(--primary);display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}.grid-empty-title{font-size:.9375rem;font-weight:600;color:var(--text)}.grid-empty-sub{font-size:.75rem;color:var(--text-muted);line-height:1.5}.grid-empty-btn{margin-top:.5rem;padding:.5rem 1.25rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-secondary);cursor:pointer;font-size:.8125rem;font-weight:500;transition:all var(--transition-fast)}.grid-empty-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.grid-scanning{display:flex;align-items:center;justify-content:center;height:100%;color:var(--warning);font-size:.875rem;animation:pulse 1s ease-in-out infinite alternate}.slides-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.625rem}.slide-thumb{position:relative;aspect-ratio:9/16;border-radius:var(--radius-md);overflow:hidden;cursor:grab;border:2px solid transparent;transition:all var(--transition-fast);background:var(--surface)}.slide-thumb:hover{border-color:var(--primary)}.slide-thumb.drag-over{border-color:var(--success);transform:scale(1.03)}.slide-thumb img{width:100%;height:100%;object-fit:cover}.slide-thumb video{width:100%;height:100%;object-fit:cover}.slide-index{position:absolute;top:.25rem;left:.25rem;background:#000000bf;color:#fff;padding:.125rem .375rem;border-radius:var(--radius-sm);font-size:.5625rem;font-weight:600}.thumb-text{position:absolute;bottom:0;left:0;right:0;background:#000000d9;color:#fff;padding:.25rem;font-size:.5rem;line-height:1.3;max-height:40%;overflow:hidden}.thumb-actions{position:absolute;top:.25rem;right:.25rem;display:flex;gap:.2rem;opacity:0;transition:opacity var(--transition-fast)}.slide-thumb:hover .thumb-actions{opacity:1}.thumb-action-btn{width:1.25rem;height:1.25rem;border-radius:var(--radius-sm);border:none;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;cursor:pointer;font-size:.6rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.thumb-action-btn.duplicate-btn:hover{background:var(--primary)}.thumb-action-btn.remove-btn:hover{background:var(--danger)}.thumb-audio-badge{position:absolute;bottom:0;left:0;right:0;height:auto;border-radius:0 0 var(--radius-md) var(--radius-md);background:#6366f1e0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:block;padding:.15rem .35rem;font-size:.45rem;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}.side-panel{width:260px;flex-shrink:0;display:flex;flex-direction:column;gap:0;background:var(--surface);border-left:1px solid var(--border-subtle);overflow-y:auto}.panel-section{padding:.875rem;border-bottom:1px solid var(--border-subtle)}.panel-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em}.panel-icon{width:1.25rem;height:1.25rem;border-radius:var(--radius-sm);background:var(--primary-subtle);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700}.drop-area{border:1px dashed var(--border);border-radius:var(--radius-md);transition:all var(--transition-fast);background:var(--bg)}.drop-area.dragging{border-color:var(--primary);background:var(--primary-subtle)}.drop-area textarea{width:100%;min-height:100px;padding:.625rem;border:none;background:transparent;color:var(--text);resize:none;font-family:inherit;font-size:.75rem;line-height:1.5}.drop-area textarea:focus{outline:none}.drop-area textarea::placeholder{color:var(--text-muted)}.audio-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;padding:1rem;cursor:pointer;text-align:center}.audio-drop:hover{border-color:var(--primary);background:var(--primary-subtle)}.drop-icon{font-size:1.25rem;color:var(--text-muted)}.drop-text{font-size:.75rem;color:var(--text-secondary);font-weight:500}.drop-hint{font-size:.625rem;color:var(--text-muted)}.panel-footer{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem}.count-label{font-size:.6875rem;color:var(--text-muted);font-variant-numeric:tabular-nums}.count-label .extra{color:var(--warning)}.count-label .missing{color:var(--danger)}.assign-btn{padding:.375rem .75rem;border-radius:var(--radius-sm);border:none;background:var(--primary);color:#fff;cursor:pointer;font-size:.6875rem;font-weight:600;transition:all var(--transition-fast)}.assign-btn:hover:not(:disabled){background:var(--primary-hover)}.assign-btn:disabled{opacity:.4;cursor:not-allowed}.preview-view{flex:1;display:flex;flex-direction:column;background:var(--bg);min-height:0;overflow:hidden}.preview-container{flex:1;display:flex;gap:0;min-height:0;overflow:hidden}.preview-slide-col{flex:1;display:flex;align-items:center;justify-content:center;padding:1rem;min-height:0;background:var(--bg)}.slide-preview{position:relative;height:100%;max-height:calc(100vh - 120px);aspect-ratio:9/16;border-radius:var(--radius-lg);overflow:hidden;background:var(--surface);flex-shrink:0;border:1px solid var(--border-subtle);box-shadow:var(--shadow-lg)}.slide-preview.media-dragging{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-subtle)}.slide-preview img{width:100%;height:100%;object-fit:scale-down}.slide-preview video{width:100%;height:100%;object-fit:cover}.media-overlay{position:absolute;top:.5rem;right:.5rem;display:flex;gap:.375rem;opacity:0;transition:opacity var(--transition-fast)}.slide-preview:hover .media-overlay{opacity:1}.media-replace-btn,.media-delete-btn{padding:.375rem .625rem;border-radius:var(--radius-sm);border:none;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;font-size:.6875rem;font-weight:500;transition:all var(--transition-fast)}.media-replace-btn:hover{background:var(--primary)}.media-delete-btn:hover{background:var(--danger)}.text-overlay{position:absolute;text-align:center;cursor:move;max-width:90%;-webkit-user-select:none;user-select:none}.text-overlay.dragging{opacity:.8}.tiktok-text{display:inline;font-weight:700;line-height:1.6;border-radius:var(--radius-sm);box-decoration-break:clone;-webkit-box-decoration-break:clone;white-space:pre-wrap}.resize-handle{position:absolute;bottom:-16px;right:-16px;width:20px;height:20px;border-radius:50%;background:var(--primary);border:2px solid white;color:#fff;font-size:10px;cursor:nwse-resize;display:flex;align-items:center;justify-content:center;opacity:.8}.resize-handle:hover{opacity:1;transform:scale(1.1)}.slide-preview .drag-hint{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);background:#000000bf;color:var(--text-muted);padding:.25rem .5rem;border-radius:var(--radius-sm);font-size:.5625rem;white-space:nowrap;pointer-events:none}.editor-panel{width:300px;flex-shrink:0;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border-subtle);overflow-y:auto;padding:.75rem;gap:.5rem}.editor-section-group{display:flex;flex-direction:column;gap:.5rem;padding:.75rem;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-lg)}.editor-section-label{display:flex;align-items:center;gap:.5rem;font-size:.6875rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.editor-section-icon{width:1.25rem;height:1.25rem;border-radius:var(--radius-sm);background:var(--primary-subtle);color:var(--primary);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;flex-shrink:0}.slide-textarea{padding:.625rem;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;font-family:inherit;font-size:.8125rem;width:100%}.slide-textarea:focus{outline:none;border-color:var(--primary)}.control-row{display:flex;align-items:center;gap:.5rem;min-height:1.75rem}.control-label{font-size:.6875rem;color:var(--text-muted);width:2.75rem;flex-shrink:0;text-align:right}.control-value{font-size:.6875rem;color:var(--text-secondary);min-width:3rem;font-variant-numeric:tabular-nums}.control-hint{font-size:.6875rem;color:var(--text-muted)}.size-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;border-radius:2px;background:var(--border);outline:none;cursor:pointer}.size-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--primary);border:2px solid var(--bg);cursor:pointer;transition:transform var(--transition-fast)}.size-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.color-wrap{display:flex;align-items:center;gap:.375rem;flex:1}.color-picker{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;cursor:pointer;padding:1px}.reset-btn{padding:.125rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-muted);font-size:.625rem;cursor:pointer;transition:all var(--transition-fast)}.reset-btn:hover{border-color:var(--primary);color:var(--primary)}.btn-group{display:flex;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;flex:1}.btn-group-item{flex:1;padding:.3rem .375rem;border:none;background:var(--bg);color:var(--text-secondary);font-size:.6875rem;cursor:pointer;transition:all var(--transition-fast);border-right:1px solid var(--border);text-align:center}.btn-group-item:last-child{border-right:none}.btn-group-item.active{background:var(--primary);color:#fff}.btn-group-item:hover:not(.active){background:var(--primary-subtle);color:var(--text)}.format-btn{font-size:.8125rem;letter-spacing:0}.global-apply-grid{display:grid;grid-template-columns:1fr 1fr;gap:.375rem .5rem}.global-apply-item{display:flex;align-items:center;gap:.35rem;font-size:.6875rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.global-apply-item input[type=checkbox]{width:.8rem;height:.8rem;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.global-apply-hint{font-size:.6rem;color:var(--primary);margin-top:.25rem;line-height:1.4;padding:.25rem .375rem;background:var(--primary-subtle);border-radius:var(--radius-sm)}.voiceover-controls{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:var(--surface-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.voiceover-info{display:flex;align-items:center;gap:.375rem;flex:1;min-width:0}.voiceover-icon{font-size:.875rem;color:var(--primary)}.voiceover-name{font-size:.75rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voiceover-actions{display:flex;gap:.25rem}.voiceover-btn{width:1.5rem;height:1.5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text);cursor:pointer;font-size:.625rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.voiceover-btn:hover{background:var(--primary);border-color:var(--primary)}.voiceover-btn.playing{background:var(--success);border-color:var(--success)}.voiceover-btn.remove:hover{background:var(--danger);border-color:var(--danger)}.add-voiceover-btn{padding:.5rem;border-radius:var(--radius-md);border:1px dashed var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.75rem;transition:all var(--transition-fast);text-align:center;width:100%;display:block}.add-voiceover-btn:hover,.add-voiceover-btn.audio-drag-over{border-color:var(--primary);color:var(--primary);background:var(--primary-subtle)}.voiceover-controls.audio-drag-over{border-color:var(--primary);background:var(--primary-subtle)}.slide-thumbs{display:flex;gap:.375rem;overflow-x:auto;padding:.75rem 1rem;background:var(--surface);border-top:1px solid var(--border-subtle)}.thumb{position:relative;width:44px;aspect-ratio:9/16;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;flex-shrink:0;transition:all var(--transition-fast)}.thumb:hover{border-color:var(--text-muted)}.thumb.active{border-color:var(--primary)}.thumb img{width:100%;height:100%;object-fit:cover}.thumb video{width:100%;height:100%;object-fit:cover}.thumb-num{position:absolute;bottom:0;left:0;right:0;background:#000000bf;color:#fff;font-size:.5625rem;text-align:center;padding:.0625rem 0}.thumb .thumb-audio-badge{bottom:0;left:0;right:0;font-size:.4rem;border-radius:0 0 var(--radius-sm) var(--radius-sm)}.present-view{position:fixed;inset:0;background:#000;display:flex;flex-direction:column}.present-main{flex:1;display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative}.slide-fullscreen{position:relative;max-height:100vh;max-width:100vw;aspect-ratio:9/16;height:100vh}.slide-fullscreen img{width:100%;height:100%;object-fit:scale-down}.slide-fullscreen video{width:100%;height:100%;object-fit:cover}.slide-fullscreen .tiktok-text{font-size:1.5rem}.present-corner-controls{position:fixed;top:1rem;right:1rem;display:flex;flex-direction:column;gap:.375rem;align-items:flex-end;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s;z-index:60}.present-view:hover .present-corner-controls,.present-view.show-controls .present-corner-controls{opacity:1;transform:translateY(0)}.present-controls-group{display:flex;flex-direction:column;gap:.25rem;align-items:stretch;background:#141414e6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);padding:.375rem}.present-controls-group:first-child{flex-direction:row;align-items:center}.present-corner-controls button{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.15);background:transparent;color:#fff;cursor:pointer;font-size:.75rem;white-space:nowrap;justify-content:flex-start;transition:all var(--transition-fast)}.present-corner-controls button:hover:not(:disabled){background:#ffffff1a}.present-corner-controls button:disabled{opacity:.3;cursor:not-allowed}.present-corner-controls .exit-btn{background:#ef4444cc;border-color:transparent}.present-corner-controls .exit-btn:hover{background:var(--danger)}.present-controls-group .nav-counter{font-size:.6875rem;color:#ffffffb3;padding:0 .375rem;min-width:3rem;text-align:center;flex:1}.audio-btn{font-size:.875rem}.audio-btn.muted{opacity:.5}.audio-btn.playing{animation:pulse-audio 1.5s ease-in-out infinite}@keyframes pulse-audio{0%,to{opacity:1}50%{opacity:.7}}.progress-bar{height:2px;background:#ffffff1a}.progress-fill{height:100%;background:var(--primary);transition:width .3s}.empty-state{color:var(--text-muted);font-size:1rem}.cursor-mode-laser .present-main,.cursor-mode-laser .present-main *,.cursor-mode-pulse .present-main,.cursor-mode-pulse .present-main *{cursor:none!important}.cursor-mode-marker .present-main,.cursor-mode-marker .present-main *,.cursor-mode-arrow .present-main,.cursor-mode-arrow .present-main *{cursor:crosshair!important}.present-view .slide-fullscreen img,.present-view .slide-fullscreen video{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;pointer-events:none}.cursor-mode-btn{display:inline-flex;align-items:center;gap:.25rem;font-size:.6875rem;padding:.375rem .5rem;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.15);background:transparent;color:#fff;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.cursor-mode-btn:hover{background:#ffffff1a}.cursor-mode-btn--active{background:#ffffff26}.cursor-mode-btn--laser{border-color:#ff3c3c66;color:#ccc}.cursor-mode-btn--laser.cursor-mode-btn--active{border-color:#ff3c3ccc;color:#ff6b6b}.cursor-mode-btn--pulse{border-color:#06b6d466;color:#ccc}.cursor-mode-btn--pulse.cursor-mode-btn--active{border-color:#06b6d4cc;color:#06b6d4}.cursor-mode-btn--marker{border-color:#facc1566;color:#ccc}.cursor-mode-btn--marker.cursor-mode-btn--active{border-color:#facc15cc;color:#facc15}.cursor-mode-btn--arrow{border-color:#ef444466;color:#ccc}.cursor-mode-btn--arrow.cursor-mode-btn--active{border-color:#ef4444cc;color:#ef4444}.cursor-mode-icon{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0}.cursor-mode-icon.laser-icon{background:#f33;box-shadow:0 0 4px 2px #ff1e1eb3}.cursor-mode-icon.pulse-icon{background:#06b6d4;box-shadow:0 0 4px 2px #06b6d4b3}.cursor-mode-icon.marker-icon{background:#facc15;box-shadow:0 0 4px 2px #facc15b3}.cursor-mode-icon.arrow-icon{width:0;height:0;border-radius:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #ef4444;box-shadow:none;transform:rotate(-45deg)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.json-picker{display:flex;flex-direction:column;gap:.375rem;padding:.5rem;background:var(--surface-elevated);border-radius:var(--radius-md);border:1px solid var(--border)}.json-picker-header{display:flex;align-items:center;justify-content:space-between}.json-picker-label{font-size:.6875rem;color:var(--text-secondary);font-weight:500}.json-clear-btn{width:1.25rem;height:1.25rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.6rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.json-clear-btn:hover{background:var(--danger-subtle);border-color:var(--danger);color:var(--danger)}.json-key-list{display:flex;flex-direction:column;gap:.2rem}.json-key-btn{display:flex;align-items:center;justify-content:space-between;padding:.3rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.6875rem;text-align:left;transition:all var(--transition-fast);font-family:SF Mono,Fira Mono,monospace}.json-key-btn:hover{border-color:var(--primary);color:var(--text);background:var(--primary-subtle)}.json-key-btn.active{border-color:var(--primary);background:var(--primary-subtle);color:var(--text)}.json-key-count{font-size:.5625rem;background:#6366f133;color:var(--primary);padding:.0625rem .3rem;border-radius:.75rem;font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:.375rem}.json-preview{display:flex;flex-direction:column;gap:.15rem;padding:.375rem;background:#0000004d;border-radius:var(--radius-sm);max-height:5rem;overflow:hidden}.json-preview-line{font-size:.5625rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.json-preview-more{font-size:.5rem;color:var(--text-muted);font-style:italic}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.watermark-overlay{position:absolute;z-index:8;transform-origin:center center;line-height:1;pointer-events:none;-webkit-user-select:none;user-select:none}.watermark-interactive{pointer-events:auto;cursor:move}.watermark-interactive.wm-dragging{opacity:.75!important}.watermark-overlay img{display:block;object-fit:scale-down}.wm-resize-handle{position:absolute;bottom:-10px;right:-10px;width:18px;height:18px;background:var(--primary);border-radius:50%;cursor:se-resize;border:2px solid rgba(255,255,255,.8);display:flex;align-items:center;justify-content:center;font-size:9px;color:#fff;z-index:9;line-height:1;padding:0;opacity:0;transition:opacity var(--transition-fast)}.watermark-interactive:hover .wm-resize-handle,.watermark-interactive.wm-dragging .wm-resize-handle{opacity:1}.editor-section-label .wm-toggle-btn{margin-left:auto;padding:.125rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.6875rem;font-weight:500;transition:all var(--transition-fast)}.editor-section-label .wm-toggle-btn.active{background:var(--primary-subtle);border-color:var(--primary);color:var(--primary)}.editor-section-label .wm-toggle-btn:hover{border-color:var(--primary);color:var(--text)}.wm-text-input{width:100%;padding:.375rem .5rem;background:var(--surface-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);font-size:.8125rem;outline:none;transition:border-color var(--transition-fast);box-sizing:border-box;margin-bottom:.25rem}.wm-text-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-subtle)}.wm-text-input::placeholder{color:var(--text-muted)}.wm-upload-zone{border:1.5px dashed var(--border);border-radius:var(--radius-sm);padding:.625rem .5rem;text-align:center;font-size:.75rem;color:var(--text-muted);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast);margin-bottom:.25rem}.wm-upload-zone:hover{border-color:var(--primary);background:var(--primary-subtle);color:var(--text-secondary)}.wm-image-info{display:flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.375rem .5rem;font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.wm-image-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slide-thumb.selected{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-subtle),inset 0 0 0 2px var(--primary)}.slide-thumb.selected:after{content:"";position:absolute;inset:0;background:#6366f126;pointer-events:none}.grid-bulk-delete-btn{display:inline-flex;align-items:center;gap:.375rem;padding:.3rem .625rem;border-radius:var(--radius-md);border:1px solid var(--danger);background:var(--danger-subtle);color:var(--danger);cursor:pointer;font-size:.75rem;font-weight:600;transition:all var(--transition-fast);white-space:nowrap}.grid-bulk-delete-btn:hover{background:var(--danger);color:#fff}.grid-select-clear-btn{display:inline-flex;align-items:center;padding:.3rem .625rem;border-radius:var(--radius-md);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;font-size:.75rem;transition:all var(--transition-fast);white-space:nowrap}.grid-select-clear-btn:hover{border-color:var(--text-muted);color:var(--text)}.position-presets{display:flex;gap:.375rem}.position-preset-btn{flex:1;padding:.35rem .25rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);color:var(--text-secondary);cursor:pointer;font-size:.6875rem;font-weight:500;transition:all var(--transition-fast);text-align:center}.position-preset-btn:hover{border-color:var(--primary);color:var(--text);background:var(--primary-subtle)}.position-preset-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.voiceover-meta{display:flex;flex-direction:column;min-width:0;flex:1}.voiceover-duration{font-size:.625rem;color:var(--primary);font-variant-numeric:tabular-nums;font-weight:600}.clear-annotations-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.375rem .625rem;border-radius:var(--radius-sm);border:1px solid rgba(250,204,21,.4);background:#facc151a;color:#facc15;cursor:pointer;font-size:.75rem;font-weight:600;transition:all var(--transition-fast);animation:annotation-appear .2s ease}.clear-annotations-btn:hover{background:#facc1533;border-color:#facc15cc}@keyframes annotation-appear{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
