diff --git a/static/video_editor/video-editor.css b/static/video_editor/video-editor.css index 10874cc8..0187b3b9 100644 --- a/static/video_editor/video-editor.css +++ b/static/video_editor/video-editor.css @@ -1 +1 @@ -#video-editor-trim-root{@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}}#video-editor-trim-root .video-player-container{position:relative;width:100%;background:#000;border-radius:.5rem;overflow:hidden;margin-bottom:1rem;aspect-ratio:16/9;-webkit-user-select:none;-moz-user-select:none;user-select:none}#video-editor-trim-root .video-player-container video{width:100%;height:100%;cursor:pointer;transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-user-select:none;-moz-user-select:none;user-select:none}@supports (-webkit-touch-callout: none){#video-editor-trim-root .video-player-container video{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}}#video-editor-trim-root .play-pause-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;background-color:#0009;border-radius:50%;opacity:0;transition:opacity .3s;pointer-events:none}#video-editor-trim-root .video-player-container:hover .play-pause-indicator{opacity:1}#video-editor-trim-root .play-pause-indicator:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#video-editor-trim-root .play-pause-indicator.play-icon:before{width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:25px solid white;margin-left:3px}#video-editor-trim-root .play-pause-indicator.pause-icon:before{width:20px;height:25px;border-left:6px solid white;border-right:6px solid white}#video-editor-trim-root .ios-first-play-indicator{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10}#video-editor-trim-root .ios-play-message{color:#fff;font-size:1.2rem;text-align:center;padding:1rem;background:#000c;border-radius:.5rem;animation:pulse 2s infinite}#video-editor-trim-root .video-controls{position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(transparent,#000000b3);opacity:0;transition:opacity .3s}#video-editor-trim-root .video-player-container:hover .video-controls{opacity:1}#video-editor-trim-root .video-current-time,#video-editor-trim-root .video-duration{color:#fff;font-size:.875rem}#video-editor-trim-root .video-time-display{display:flex;justify-content:space-between;margin-bottom:.5rem;color:#fff;font-size:.875rem}#video-editor-trim-root .video-progress{position:relative;height:6px;background-color:#ffffff4d;border-radius:3px;cursor:pointer;margin:0 10px;touch-action:none;flex-grow:1}#video-editor-trim-root .video-progress.dragging{height:8px}#video-editor-trim-root .video-progress-fill{position:absolute;top:0;left:0;height:100%;background-color:red;border-radius:3px;pointer-events:none}#video-editor-trim-root .video-scrubber{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;background-color:red;border-radius:50%;cursor:grab;transition:transform .1s ease,width .1s ease,height .1s ease}#video-editor-trim-root .video-progress.dragging .video-scrubber{transform:translate(-50%,-50%) scale(1.2);width:18px;height:18px;cursor:grabbing;box-shadow:0 0 8px #f009}@media (pointer: coarse){#video-editor-trim-root .video-scrubber{width:20px;height:20px}#video-editor-trim-root .video-progress.dragging .video-scrubber{width:24px;height:24px}#video-editor-trim-root .video-scrubber:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px}}#video-editor-trim-root .video-controls-buttons{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}#video-editor-trim-root .mute-button,#video-editor-trim-root .fullscreen-button{min-width:auto;color:#fff;background:none;border:none;cursor:pointer;padding:.25rem;transition:transform .2s}#video-editor-trim-root .mute-button:hover,#video-editor-trim-root .fullscreen-button:hover{transform:scale(1.1)}#video-editor-trim-root .mute-button svg,#video-editor-trim-root .fullscreen-button svg{width:1.25rem;height:1.25rem}#video-editor-trim-root .video-time-tooltip{position:absolute;top:-30px;background-color:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace;pointer-events:none;z-index:1000;white-space:nowrap;box-shadow:0 2px 4px #0000004d}#video-editor-trim-root .video-time-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(0,0,0,.7)}#video-editor-trim-root{@keyframes modal-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes success-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes error-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}}#video-editor-trim-root .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}#video-editor-trim-root .modal-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:modal-fade-in .3s ease-out}#video-editor-trim-root .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}#video-editor-trim-root .modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#333}#video-editor-trim-root .modal-close-button{background:none;border:none;cursor:pointer;color:#666;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}#video-editor-trim-root .modal-close-button:hover{color:#000}#video-editor-trim-root .modal-content{padding:20px;color:#333;font-size:1rem;line-height:1.5;max-height:400px;overflow-y:auto}#video-editor-trim-root .modal-actions{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #eee;gap:12px}#video-editor-trim-root .modal-button{padding:8px 16px;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s;border:none}#video-editor-trim-root .modal-button-primary{background-color:#06c;color:#fff}#video-editor-trim-root .modal-button-primary:hover{background-color:#05a}#video-editor-trim-root .modal-button-secondary{background-color:#f0f0f0;color:#333}#video-editor-trim-root .modal-button-secondary:hover{background-color:#e0e0e0}#video-editor-trim-root .modal-button-danger{background-color:#dc3545;color:#fff}#video-editor-trim-root .modal-button-danger:hover{background-color:#bd2130}#video-editor-trim-root .modal-message{margin-bottom:16px;font-size:1rem}#video-editor-trim-root .modal-spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}#video-editor-trim-root .spinner{border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top:4px solid #0066cc;width:30px;height:30px;animation:spin 1s linear infinite}#video-editor-trim-root .modal-success-icon{display:flex;justify-content:center;margin-bottom:16px;color:#28a745;font-size:2rem}#video-editor-trim-root .modal-success-icon svg{width:60px;height:60px;color:#4caf50;animation:success-pop .5s ease-out}#video-editor-trim-root .modal-error-icon{display:flex;justify-content:center;margin-bottom:16px;color:#dc3545;font-size:2rem}#video-editor-trim-root .modal-error-icon svg{width:60px;height:60px;color:#f44336;animation:error-pop .5s ease-out}#video-editor-trim-root .modal-choices{display:flex;flex-direction:column;gap:10px;margin-top:20px}#video-editor-trim-root .modal-choice-button{padding:12px 16px;border:none;border-radius:4px;background-color:#06c;text-align:center;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-weight:500;text-decoration:none;color:#fff}#video-editor-trim-root .modal-choice-button:hover{background-color:#05a;transform:translateY(-1px);box-shadow:0 2px 5px #0000001a}#video-editor-trim-root .modal-choice-button svg{margin-right:8px}#video-editor-trim-root .success-link{background-color:#4caf50}#video-editor-trim-root .success-link:hover{background-color:#3d8b40}#video-editor-trim-root .centered-choice{margin:0 auto;width:auto;min-width:220px;background-color:#06c;color:#fff}#video-editor-trim-root .centered-choice:hover{background-color:#05a}@media (max-width: 480px){#video-editor-trim-root .modal-container{width:95%}#video-editor-trim-root .modal-actions{flex-direction:column}#video-editor-trim-root .modal-button{width:100%}}#video-editor-trim-root .error-message{color:#f44336;font-weight:500;background-color:#f443361a;padding:10px;border-radius:4px;border-left:4px solid #F44336;margin-top:10px}#video-editor-trim-root .redirect-message{color:#555;font-size:.95rem;padding:0;margin:0}#video-editor-trim-root .countdown{font-weight:700;color:#06c;font-size:1.1rem}#video-editor-trim-root{@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}}#video-editor-trim-root .timeline-container-card{background-color:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .timeline-header{margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center}#video-editor-trim-root .timeline-title{font-size:.875rem;font-weight:500;color:var(--foreground, #333)}#video-editor-trim-root .timeline-title-text{font-weight:700}#video-editor-trim-root .current-time{font-size:.875rem;color:var(--foreground, #333)}#video-editor-trim-root .time-code{font-family:monospace;background-color:#f3f4f6;padding:0 .5rem;border-radius:.25rem}#video-editor-trim-root .duration-time{font-size:.875rem;color:var(--foreground, #333)}#video-editor-trim-root .timeline-scroll-container{position:relative;overflow:visible!important}#video-editor-trim-root .timeline-container{position:relative;min-width:100%;background-color:#fafbfc;height:70px;border-radius:.25rem;overflow:visible!important}#video-editor-trim-root .timeline-marker{position:absolute;height:82px;width:2px;background-color:#000;transform:translate(-50%);z-index:50;pointer-events:none}#video-editor-trim-root .timeline-marker-head{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:16px;height:16px;background-color:#ef4444;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:51}#video-editor-trim-root .timeline-marker-drag{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:16px;height:16px;background-color:#4b5563;border-radius:50%;cursor:grab;display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:51}#video-editor-trim-root .timeline-marker-drag.dragging{cursor:grabbing;background-color:#374151}#video-editor-trim-root .timeline-marker-head-icon{color:#fff;font-size:14px;font-weight:700;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}#video-editor-trim-root .timeline-marker-drag-icon{color:#fff;font-size:12px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:rotate(90deg);display:inline-block}#video-editor-trim-root .trim-line-marker{position:absolute;top:0;bottom:0;width:1px;background-color:#00000080;z-index:20}#video-editor-trim-root .trim-handle{position:absolute;width:10px;height:20px;background-color:#000;cursor:ew-resize}#video-editor-trim-root .trim-handle.left{right:0;top:10px;border-radius:3px 0 0 3px}#video-editor-trim-root .trim-handle.right{left:0;top:10px;border-radius:0 3px 3px 0}#video-editor-trim-root .timeline-thumbnail{display:inline-block;height:70px;border-right:1px solid rgba(0,0,0,.03)}#video-editor-trim-root .split-point{position:absolute;top:0;bottom:0;width:1px;background-color:#ff000080;z-index:15}#video-editor-trim-root .clip-segment{position:absolute;height:70px;border-radius:4px;z-index:10;border:2px solid rgba(0,0,0,.15);cursor:pointer}#video-editor-trim-root .clip-segment:hover{box-shadow:0 0 0 2px #0000004d;border-color:#0006;background-color:#f0f0f0cc!important}#video-editor-trim-root .clip-segment.selected{box-shadow:0 0 0 2px #3b82f6b3;border-color:#3b82f6e6}#video-editor-trim-root .clip-segment.selected:hover{background-color:#f0f8ffd9!important}#video-editor-trim-root .clip-segment-info{position:absolute;bottom:0;left:0;right:0;padding:.4rem;background-color:#0006;color:#fff;opacity:1;transition:background-color .2s;line-height:1.3}#video-editor-trim-root .clip-segment:hover .clip-segment-info{background-color:#00000080}#video-editor-trim-root .clip-segment.selected .clip-segment-info{background-color:#3b82f680}#video-editor-trim-root .clip-segment.selected:hover .clip-segment-info{background-color:#3b82f666}#video-editor-trim-root .clip-segment-name{font-weight:700;font-size:12px}#video-editor-trim-root .clip-segment-time,#video-editor-trim-root .clip-segment-duration{font-size:10px}#video-editor-trim-root .clip-segment-handle{position:absolute;top:0;bottom:0;width:6px;background-color:#0003;cursor:ew-resize}#video-editor-trim-root .clip-segment-handle:hover{background-color:#0006}#video-editor-trim-root .clip-segment-handle.left{left:0;border-radius:2px 0 0 2px}#video-editor-trim-root .clip-segment-handle.right{right:0;border-radius:0 2px 2px 0}@media (pointer: coarse){#video-editor-trim-root .clip-segment-handle{width:14px;background-color:#0006}#video-editor-trim-root .clip-segment-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:20px;background-color:#fffc;border-radius:1px}#video-editor-trim-root .clip-segment-handle.left:after{box-shadow:-2px 0 #00000080}#video-editor-trim-root .clip-segment-handle.right:after{box-shadow:2px 0 #00000080}#video-editor-trim-root .clip-segment-handle:active{background-color:#0009}#video-editor-trim-root .timeline-marker{height:85px}#video-editor-trim-root .timeline-marker-head{width:24px;height:24px;top:-13px}#video-editor-trim-root .timeline-marker-drag{width:24px;height:24px;bottom:-18px}#video-editor-trim-root .timeline-marker-head.dragging{width:28px;height:28px;top:-15px}}#video-editor-trim-root .segment-tooltip,#video-editor-trim-root .empty-space-tooltip{position:absolute;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px #0000004d;padding:.5rem;z-index:1000;min-width:150px;text-align:center;pointer-events:auto;top:-100px!important;transform:translateY(-10px)}#video-editor-trim-root .segment-tooltip:after,#video-editor-trim-root .empty-space-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid white}#video-editor-trim-root .segment-tooltip:before,#video-editor-trim-root .empty-space-tooltip:before{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(0,0,0,.1);z-index:-1}#video-editor-trim-root .tooltip-time{font-weight:600;font-size:.875rem;margin-bottom:.5rem;color:#333}#video-editor-trim-root .tooltip-actions{display:flex;justify-content:center;gap:.5rem}#video-editor-trim-root .tooltip-action-btn{background-color:#f3f4f6;border:none;border-radius:.25rem;padding:.375rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;min-width:20px!important}#video-editor-trim-root .tooltip-action-btn:hover{background-color:#e5e7eb;color:#111827}#video-editor-trim-root .tooltip-action-btn.delete{color:#ef4444}#video-editor-trim-root .tooltip-action-btn.delete:hover{background-color:#fee2e2}#video-editor-trim-root .tooltip-action-btn.new-segment{padding:.375rem .5rem}#video-editor-trim-root .tooltip-action-btn.new-segment .tooltip-btn-text{margin-left:.25rem;font-size:.75rem}#video-editor-trim-root .tooltip-action-btn svg{width:1rem;height:1rem}#video-editor-trim-root .timeline-controls{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}#video-editor-trim-root .time-navigation{display:none;align-items:center;gap:.5rem}#video-editor-trim-root .time-nav-label{font-size:.875rem;font-weight:500}#video-editor-trim-root .time-input{border:1px solid #d1d5db;border-radius:.25rem;padding:.25rem .5rem;width:8rem;font-size:.875rem}#video-editor-trim-root .time-button-group{display:flex}#video-editor-trim-root .time-button{background-color:#e5e7eb;color:#000;padding:.25rem .5rem;font-size:.875rem;border:none;cursor:pointer;margin-right:.5rem}#video-editor-trim-root .time-button:hover{background-color:#d1d5db}#video-editor-trim-root .time-button:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}#video-editor-trim-root .time-button:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#video-editor-trim-root .controls-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}#video-editor-trim-root .zoom-dropdown-container{position:relative;z-index:100;display:none}#video-editor-trim-root .zoom-button{background-color:#374151;color:#fff;border:none;border-radius:.25rem;padding:.25rem .75rem;font-size:.875rem;display:flex;align-items:center;cursor:pointer}#video-editor-trim-root .zoom-button:hover{background-color:#1f2937}#video-editor-trim-root .zoom-button svg{margin-left:.25rem}#video-editor-trim-root .zoom-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;width:9rem;background-color:#374151;color:#fff;border-radius:.25rem;box-shadow:0 4px 6px -1px #0000001a;z-index:50;max-height:300px;overflow-y:auto}#video-editor-trim-root .zoom-option{padding:.25rem .75rem;cursor:pointer}#video-editor-trim-root .zoom-option:hover{background-color:#4b5563}#video-editor-trim-root .zoom-option.selected{background-color:#6b7280;display:flex;align-items:center}#video-editor-trim-root .zoom-option svg{margin-right:.25rem}#video-editor-trim-root .save-buttons-row{display:flex;align-items:center;gap:.5rem;margin:0;flex-wrap:nowrap}#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{color:#fff;background:#06c;border-radius:.25rem;font-size:.75rem;padding:.25rem .5rem;cursor:pointer;border:none;white-space:nowrap;transition:background-color .2s;min-width:-moz-fit-content;min-width:fit-content}#video-editor-trim-root .save-button:hover,#video-editor-trim-root .save-copy-button:hover,#video-editor-trim-root .save-segments-button:hover{background-color:#0056b3}@media (max-width: 576px){#video-editor-trim-root .save-buttons-row{width:100%;justify-content:space-between;gap:.5rem}#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{flex:1;font-size:.7rem;padding:.25rem .35rem}}@media (max-width: 480px){#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{font-size:.675rem;padding:.25rem}#video-editor-trim-root .controls-right,#video-editor-trim-root .controls-right button{margin:0}}#video-editor-trim-root .modal-success-content,#video-editor-trim-root .modal-error-content{display:flex;flex-direction:column;align-items:center;padding:1rem;text-align:center;padding:0;margin:0}#video-editor-trim-root .modal-success-icon,#video-editor-trim-root .modal-error-icon{margin-bottom:1rem}#video-editor-trim-root .modal-success-icon svg{color:#4caf50;animation:fadeIn .5s ease-in-out}#video-editor-trim-root .modal-error-icon svg{color:#f44336;animation:fadeIn .5s ease-in-out}#video-editor-trim-root .success-link{background-color:#4caf50;color:#fff;transition:background-color .3s}#video-editor-trim-root .success-link:hover{background-color:#388e3c}#video-editor-trim-root .error-message{color:#f44336;font-weight:500}#video-editor-trim-root .modal-spinner{display:flex;justify-content:center;margin:2rem 0}#video-editor-trim-root .spinner{width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#06c;animation:spin 1s ease-in-out infinite}#video-editor-trim-root .text-center{text-align:center}#video-editor-trim-root .modal-message{margin-bottom:1rem;line-height:1.5}#video-editor-trim-root .modal-choice-button{display:flex;align-items:center;justify-content:center;padding:.75rem 1.25rem;background-color:#06c;color:#fff;border-radius:4px;text-decoration:none;margin:0 auto;cursor:pointer;font-weight:500;gap:.5rem;border:none;transition:background-color .3s}#video-editor-trim-root .modal-choice-button:hover{background-color:#0056b3}#video-editor-trim-root .modal-choice-button svg{flex-shrink:0}#video-editor-trim-root .centered-choice{margin:0 auto;min-width:180px}.mobile-timeline-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:50;display:flex;justify-content:center;align-items:center;border-radius:.5rem;pointer-events:none}.mobile-timeline-message{background-color:#000c;border-radius:8px;padding:15px 25px;text-align:center;max-width:80%;animation:pulse 2s infinite}.mobile-timeline-message p{color:#fff;font-size:16px;margin:0 0 15px;font-weight:500}.mobile-play-icon{width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:25px solid white;margin:0 auto}@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}.preview-mode .tooltip-action-btn,.preview-mode .tooltip-time-btn{opacity:.5;pointer-events:none;cursor:not-allowed}.timeline-container-card.preview-mode{pointer-events:none}.timeline-container-card.preview-mode .timeline-marker-head,.timeline-container-card.preview-mode .timeline-marker-drag,.timeline-container-card.preview-mode .clip-segment,.timeline-container-card.preview-mode .clip-segment-handle,.timeline-container-card.preview-mode .time-button,.timeline-container-card.preview-mode .zoom-button,.timeline-container-card.preview-mode .save-button,.timeline-container-card.preview-mode .save-copy-button,.timeline-container-card.preview-mode .save-segments-button{opacity:.5;pointer-events:none;cursor:not-allowed}.timeline-container-card.preview-mode .clip-segment:hover{box-shadow:none;border-color:#00000026;background-color:inherit!important}.segments-playback-mode .tooltip-action-btn,.segments-playback-mode .tooltip-time-btn{opacity:.5}.segments-playback-mode .clip-segment:hover{box-shadow:none;border-color:#00000026;background-color:inherit!important}.segments-playback-message{display:flex;align-items:center;background-color:#3b82f61a;color:#3b82f6;padding:6px 12px;border-radius:4px;font-weight:600;font-size:.875rem;animation:pulse 2s infinite}.segments-playback-message svg{height:1.25rem;width:1.25rem;margin-right:.5rem;color:#3b82f6}.two-row-tooltip{display:flex;flex-direction:column;background-color:#fff;padding:6px;border-radius:4px;box-shadow:0 2px 8px #00000026;position:relative;z-index:3000}.tooltip-time-btn[data-tooltip="Decrease by 100ms"],.tooltip-time-btn[data-tooltip="Increase by 100ms"]{display:none!important}.tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:3px}.tooltip-row:first-child{margin-bottom:6px}.tooltip-time-btn{background-color:#f0f0f0!important;border:none!important;border-radius:4px!important;padding:4px 8px!important;font-size:.75rem!important;font-weight:500!important;color:#333!important;cursor:pointer!important;transition:background-color .2s!important;min-width:20px!important}.tooltip-time-btn:hover{background-color:#e0e0e0!important}.tooltip-time-display{font-family:monospace!important;font-size:.875rem!important;font-weight:600!important;color:#333!important;padding:4px 6px!important;background-color:#f7f7f7!important;border-radius:4px!important;min-width:100px!important;text-align:center!important;overflow:hidden!important}.tooltip-actions{display:flex;justify-content:space-between;align-items:center;gap:3px;position:relative;z-index:2500}.tooltip-action-btn{background-color:#f3f4f6;border:none;border-radius:4px;padding:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;width:26px;height:26px;min-width:20px!important;position:relative}.tooltip-action-btn[data-tooltip]:before{content:attr(data-tooltip);position:absolute;height:30px;top:35px;left:50%;transform:translate(-50%);margin-left:0;background-color:#000000d9;color:#fff;text-align:left;padding:6px 12px;border-radius:4px;box-shadow:0 2px 8px #0003;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:2500;pointer-events:none}.tooltip-action-btn[data-tooltip]:after{content:"";position:absolute;top:35px;left:50%;transform:translate(-50%);border-width:4px;border-style:solid;border-color:rgba(0,0,0,.85) transparent transparent transparent;margin-left:0;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:2500;pointer-events:none}@media (hover: hover) and (pointer: fine){.tooltip-action-btn[data-tooltip]:hover:before,.tooltip-action-btn[data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){.tooltip-action-btn[data-tooltip]:before,.tooltip-action-btn[data-tooltip]:after{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;content:none!important}}.tooltip-action-btn:hover{background-color:#e5e7eb;color:#111827}.tooltip-action-btn.delete{color:#ef4444}.tooltip-action-btn.delete:hover{background-color:#fee2e2}.tooltip-action-btn.play{color:#10b981}.tooltip-action-btn.play:hover{background-color:#d1fae5}.tooltip-action-btn.pause{color:#3b82f6}.tooltip-action-btn.pause:hover{background-color:#dbeafe}.tooltip-action-btn.play-from-start{color:#4f46e5}.tooltip-action-btn.play-from-start:hover{background-color:#e0e7ff}.tooltip-action-btn svg{width:16px;height:16px}.tooltip-action-btn.new-segment{width:auto;height:auto;padding:6px 10px;display:flex;flex-direction:row;color:#10b981}.tooltip-action-btn.new-segment:hover{background-color:#d1fae5}.tooltip-action-btn.new-segment .tooltip-btn-text{margin-left:6px;font-size:.75rem;white-space:nowrap}.tooltip-action-btn.disabled{opacity:.5;cursor:not-allowed;background-color:#f3f4f6}.tooltip-action-btn.disabled:hover{background-color:#f3f4f6;color:#9ca3af}.tooltip-action-btn.disabled svg{color:#9ca3af}.tooltip-action-btn.disabled .tooltip-btn-text{color:#9ca3af}@media (max-width: 768px){.two-row-tooltip{padding:4px}.tooltip-row:first-child{margin-bottom:4px}.tooltip-time-btn{min-width:20px!important;font-size:.7rem!important;padding:3px 6px!important}.tooltip-time-display{font-size:.8rem!important;padding:3px 4px!important;min-width:90px!important}.tooltip-action-btn{width:24px;height:24px;padding:4px}.tooltip-action-btn.new-segment{padding:4px 8px}.tooltip-action-btn svg{width:14px;height:14px}.tooltip-action-btn[data-tooltip]:before{min-width:100px;font-size:11px;padding:4px 8px;height:24px;top:33px}.tooltip-action-btn[data-tooltip]:after{top:33px}}#video-editor-trim-root{@keyframes bluePulse{0%{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}to{box-shadow:0 0 #3b82f600}}@keyframes pulse{0%{opacity:.8}50%{opacity:1}to{opacity:.8}}}#video-editor-trim-root .editing-tools-container{background-color:#fff;border-radius:.5rem;padding:1rem;margin-bottom:2.5rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .flex-container{display:flex;justify-content:space-between;align-items:center;position:relative;gap:15px;width:100%}#video-editor-trim-root .flex-container.single-row{flex-wrap:nowrap}#video-editor-trim-root .full-text{display:inline}#video-editor-trim-root .short-text{display:none}#video-editor-trim-root .reset-text{display:inline}#video-editor-trim-root .button-group{display:flex;align-items:center}#video-editor-trim-root .button-group.play-buttons-group{gap:.75rem;justify-content:flex-start;flex:0 0 auto}#video-editor-trim-root .button-group.secondary{gap:.75rem;align-items:center;justify-content:flex-end;margin-left:auto}#video-editor-trim-root .button-group button{display:flex;align-items:center;color:#333;background:none;border:none;cursor:pointer;min-width:auto}#video-editor-trim-root .button-group button:hover:not(:disabled){color:inherit}#video-editor-trim-root .button-group button:disabled{opacity:.5;cursor:not-allowed}#video-editor-trim-root .button-group button svg{height:1.25rem;width:1.25rem;margin-right:.25rem}#video-editor-trim-root .divider{border-right:1px solid #d1d5db;height:1.5rem;margin:0 .5rem}#video-editor-trim-root .play-button,#video-editor-trim-root .preview-button{font-weight:600;display:flex;align-items:center;position:relative;overflow:hidden;min-width:80px;justify-content:center;font-size:.875rem!important}#video-editor-trim-root .play-button.greyed-out{opacity:.5;cursor:not-allowed}#video-editor-trim-root .segments-button.highlighted-stop{background-color:#3b82f61a;color:#3b82f6;border:1px solid #3b82f6;animation:bluePulse 2s infinite}#video-editor-trim-root .play-button:hover:not(:disabled),#video-editor-trim-root .preview-button:hover:not(:disabled){color:inherit!important;transform:none!important;font-size:.875rem!important;width:auto!important;background:none!important}#video-editor-trim-root .play-button svg,#video-editor-trim-root .preview-button svg{height:1.5rem;width:1.5rem;flex-shrink:0}#video-editor-trim-root .preview-mode-message{display:flex;align-items:center;background-color:#3b82f61a;color:#3b82f6;padding:6px 12px;border-radius:4px;font-weight:600;font-size:.875rem;animation:pulse 2s infinite}#video-editor-trim-root .preview-mode-message svg{height:1.25rem;width:1.25rem;margin-right:.5rem;color:#3b82f6}#video-editor-trim-root .button-text{margin-left:.25rem}@media (max-width: 992px){#video-editor-trim-root .button-group.secondary .button-text{display:none}}@media (max-width: 768px){#video-editor-trim-root .flex-container.single-row{justify-content:space-between}#video-editor-trim-root .button-group{gap:.5rem}#video-editor-trim-root .preview-button,#video-editor-trim-root .play-button{font-size:.875rem!important}}@media (max-width: 640px){#video-editor-trim-root .editing-tools-container{padding:.75rem;overflow-x:hidden}#video-editor-trim-root .preview-button{min-width:auto}#video-editor-trim-root .full-text{display:none}#video-editor-trim-root .short-text{display:inline}#video-editor-trim-root .reset-text{display:none}#video-editor-trim-root .button-group.play-buttons-group{flex:initial;justify-content:flex-start;flex-shrink:0}#video-editor-trim-root .button-group.secondary{flex:initial;justify-content:flex-end;flex-shrink:0}#video-editor-trim-root .button-group button{padding:.375rem;min-width:auto}#video-editor-trim-root .button-group button svg{height:1.125rem;width:1.125rem;margin-right:.125rem}}@media (max-width: 576px){#video-editor-trim-root .flex-container.single-row{justify-content:space-between;flex-wrap:nowrap;gap:10px}#video-editor-trim-root .button-group.play-buttons-group{justify-content:flex-start;flex:0 0 auto}#video-editor-trim-root .button-group.secondary{justify-content:flex-end;margin-left:auto}#video-editor-trim-root .button-group button{padding:.25rem}#video-editor-trim-root .preview-mode-message{font-size:.8rem;padding:4px 8px}#video-editor-trim-root .divider{margin:0 .25rem}}@media (max-width: 480px){#video-editor-trim-root .editing-tools-container{padding:.5rem}#video-editor-trim-root .flex-container.single-row{gap:8px}#video-editor-trim-root .button-group.play-buttons-group,#video-editor-trim-root .button-group.secondary{gap:.25rem}#video-editor-trim-root .divider{display:none}#video-editor-trim-root .button-group button{padding:.125rem}#video-editor-trim-root .button-group button svg{height:1rem;width:1rem;margin-right:0}#video-editor-trim-root .button-text,#video-editor-trim-root .reset-text{display:none}}@media (max-width: 640px) and (orientation: portrait){#video-editor-trim-root .editing-tools-container{width:100%;box-sizing:border-box}#video-editor-trim-root .flex-container.single-row{width:100%;padding:0;margin:0}#video-editor-trim-root .button-group{max-width:50%}#video-editor-trim-root .button-group.play-buttons-group{max-width:60%}#video-editor-trim-root .button-group.secondary{max-width:40%}}@media (hover: hover) and (pointer: fine){#video-editor-trim-root [data-tooltip]{position:relative}#video-editor-trim-root [data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px;background-color:#000c;color:#fff;text-align:center;padding:5px 10px;border-radius:3px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:1000;pointer-events:none}#video-editor-trim-root [data-tooltip]:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:rgba(0,0,0,.8) transparent transparent transparent;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}#video-editor-trim-root [data-tooltip]:hover:before,#video-editor-trim-root [data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){#video-editor-trim-root [data-tooltip]:before,#video-editor-trim-root [data-tooltip]:after{display:none!important;content:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}}#video-editor-trim-root .clip-segments-container{margin-top:1rem;background-color:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .clip-segments-title{font-size:.875rem;font-weight:500;color:var(--foreground, #333);margin-bottom:.75rem}#video-editor-trim-root .segment-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border:1px solid #e5e7eb;border-radius:.25rem;margin-bottom:.5rem;transition:box-shadow .2s ease}#video-editor-trim-root .segment-item:hover{box-shadow:0 4px 6px -1px #0000001a}#video-editor-trim-root .segment-content{display:flex;align-items:center}#video-editor-trim-root .segment-thumbnail{width:4rem;height:2.25rem;background-size:cover;background-position:center;border-radius:.25rem;margin-right:.75rem;box-shadow:0 0 0 1px #ffffff4d}#video-editor-trim-root .segment-info{display:flex;flex-direction:column}#video-editor-trim-root .segment-title{font-weight:500;font-size:.875rem;color:#000}#video-editor-trim-root .segment-time{font-size:.75rem;color:#000}#video-editor-trim-root .segment-duration{font-size:.75rem;margin-top:.25rem;display:inline-block;background-color:#f3f4f6;padding:0 .5rem;border-radius:.25rem;color:#000}#video-editor-trim-root .segment-actions{display:flex;align-items:center;gap:.5rem}#video-editor-trim-root .delete-button{padding:.375rem;color:#4b5563;background-color:#e5e7eb;border-radius:9999px;border:none;cursor:pointer;transition:background-color .2s,color .2s;min-width:auto}#video-editor-trim-root .delete-button:hover{color:#000;background-color:#d1d5db}#video-editor-trim-root .delete-button svg{height:1rem;width:1rem}#video-editor-trim-root .empty-message{padding:1rem;text-align:center;color:#333333b3}#video-editor-trim-root .segment-color-1{background-color:#3b82f626}#video-editor-trim-root .segment-color-2{background-color:#10b98126}#video-editor-trim-root .segment-color-3{background-color:#f59e0b26}#video-editor-trim-root .segment-color-4{background-color:#ef444426}#video-editor-trim-root .segment-color-5{background-color:#8b5cf626}#video-editor-trim-root .segment-color-6{background-color:#ec489926}#video-editor-trim-root .segment-color-7{background-color:#06b6d426}#video-editor-trim-root .segment-color-8{background-color:#facc1526}.mobile-play-prompt-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.mobile-play-prompt{background-color:#fff;width:90%;max-width:400px;border-radius:12px;padding:25px;box-shadow:0 4px 20px #00000040;text-align:center}.mobile-play-prompt h3{margin:0 0 15px;font-size:20px;color:#333;font-weight:600}.mobile-play-prompt p{margin:0 0 15px;font-size:16px;color:#444;line-height:1.5}.mobile-prompt-instructions{margin:20px 0;text-align:left;background-color:#f8f9fa;padding:15px;border-radius:8px}.mobile-prompt-instructions p{margin:0 0 8px;font-size:15px;font-weight:500}.mobile-prompt-instructions ol{margin:0;padding-left:22px}.mobile-prompt-instructions li{margin-bottom:8px;font-size:14px;color:#333}.mobile-play-button{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:12px 25px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:5px;min-height:44px;min-width:200px}.mobile-play-button:hover{background-color:#0069d9}.mobile-play-button:active{background-color:#0062cc;transform:scale(.98)}@supports (-webkit-touch-callout: none){.mobile-play-button{padding:14px 25px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{border-color:hsl(var(--border))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.inline{display:inline}.flex{display:flex}.hidden{display:none}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-6xl{max-width:72rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.bg-background{background-color:hsl(var(--background))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-center{text-align:center}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.paused{animation-play-state:paused}:root{--foreground: 20 14.3% 4.1%;--muted: 60 4.8% 95.9%;--muted-foreground: 25 5.3% 44.7%;--popover: 0 0% 100%;--popover-foreground: 20 14.3% 4.1%;--card: 0 0% 100%;--card-foreground: 20 14.3% 4.1%;--border: 20 5.9% 90%;--input: 20 5.9% 90%;--primary: 207 90% 54%;--primary-foreground: 211 100% 99%;--secondary: 30 84% 54%;--secondary-foreground: 60 9.1% 97.8%;--accent: 60 4.8% 95.9%;--accent-foreground: 24 9.8% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 60 9.1% 97.8%;--ring: 20 14.3% 4.1%;--radius: .5rem}.video-player{position:relative;width:100%;background-color:#000;overflow:hidden;border-radius:.5rem}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:1rem;display:flex;flex-direction:column}.video-current-time{color:#fff;font-weight:500}.video-progress{position:relative;height:4px;background-color:#ffffff4d;border-radius:2px;margin-bottom:1rem}.video-progress-fill{position:absolute;left:0;top:0;height:100%;background-color:hsl(var(--primary));border-radius:2px}.video-scrubber{position:absolute;width:12px;height:12px;margin-left:-6px;background-color:#fff;border-radius:50%;top:-4px}.video-player-container{position:relative;overflow:hidden}.play-pause-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;background-color:#00000080;z-index:20;opacity:0;transition:opacity .2s ease;pointer-events:none;background-position:center;background-repeat:no-repeat}.play-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='36' height='36' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E")}.pause-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='36' height='36' fill='white'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E")}.video-player-container:hover .play-pause-indicator{opacity:1}.timeline-scroll-container{height:6rem;border-radius:.375rem;overflow-x:auto;overflow-y:hidden;margin-bottom:.75rem;background-color:#eee;position:relative}.timeline-container{position:relative;background-color:#eee;height:6rem;width:100%;cursor:pointer;transition:width .3s ease}.timeline-marker{position:absolute;top:-10px;height:calc(100% + 10px);width:2px;background-color:red;z-index:100;pointer-events:none;box-shadow:0 0 4px #ff000080}.trim-line-marker{position:absolute;top:0;bottom:0;width:2px;background-color:#007bffe6;z-index:10}.trim-handle{width:8px;background-color:#6c757de6;position:absolute;top:0;bottom:0;cursor:ew-resize;z-index:15}.trim-handle.left{left:-4px}.trim-handle.right{right:-4px}.timeline-thumbnail{height:100%;border-right:1px solid rgba(0,0,0,.1);position:relative;display:inline-block;background-size:cover;background-position:center}.split-point{position:absolute;width:2px;background-color:#6c757de6;top:0;bottom:0;z-index:5}.clip-segment{position:absolute;height:95%;top:0;border-radius:4px;background-size:cover;background-position:center;background-blend-mode:soft-light;box-shadow:0 2px 8px #0003;overflow:hidden;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:box-shadow .2s,transform .1s;z-index:15}.clip-segment:nth-child(odd),.segment-color-1,.segment-color-3,.segment-color-5,.segment-color-7{background-color:transparent;border:2px solid rgba(0,123,255,.9)}.clip-segment:nth-child(2n),.segment-color-2,.segment-color-4,.segment-color-6,.segment-color-8{background-color:transparent;border:2px solid rgba(108,117,125,.9)}.clip-segment:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-1px);filter:brightness(1.1)}.clip-segment:active{cursor:grabbing;box-shadow:0 2px 6px #0000004d;transform:translateY(0)}.clip-segment.selected{border-width:3px;box-shadow:0 4px 12px #0006;z-index:25;filter:brightness(1.2)}.clip-segment-info{background-color:#e2e6eae6;color:#000;padding:6px 8px;font-size:.7rem;position:absolute;top:0;left:0;width:100%;border-radius:4px 4px 0 0;z-index:2;display:flex;flex-direction:column;gap:2px}.clip-segment-name{font-weight:700;color:#000}.clip-segment-time{font-size:.65rem;color:#000}.clip-segment-duration{font-size:.65rem;color:#000;background:#b3d9ff66;padding:1px 4px;border-radius:2px;display:inline-block;margin-top:2px}.clip-segment-handle{position:absolute;width:8px;top:0;bottom:0;background-color:#6c757de6;cursor:ew-resize;z-index:20;display:flex;align-items:center;justify-content:center}.clip-segment-handle:after{content:"↔";color:#fff;font-size:12px;text-shadow:0 0 2px rgba(0,0,0,.8)}.clip-segment-handle.left{left:0}.clip-segment-handle.right{right:0}.clip-segment-handle:hover{background-color:#007bffe6;width:10px}input[type=range]{-webkit-appearance:none;height:6px;background:#e0e0e0;border-radius:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:#007bffe6;cursor:pointer}[data-tooltip]{position:relative;cursor:pointer}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;background-color:#000c;color:#fff;padding:5px 10px;border-radius:4px;font-size:.8rem;white-space:nowrap;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}[data-tooltip]:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:rgba(0,0,0,.8) transparent transparent transparent;margin-bottom:0;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}@media (hover: hover) and (pointer: fine){[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){[data-tooltip]:before,[data-tooltip]:after{display:none!important;content:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}}button[disabled][data-tooltip]:before,button[disabled][data-tooltip]:after{opacity:.5}.tooltip-action-btn{position:relative}.tooltip-action-btn[data-tooltip]:before,.tooltip-action-btn[data-tooltip]:after{opacity:0;visibility:hidden;position:absolute;pointer-events:none;transition:all .3s ease}.tooltip-action-btn[data-tooltip]:before{content:attr(data-tooltip);background-color:#000c;color:#fff;font-size:12px;padding:4px 8px;border-radius:3px;white-space:nowrap;bottom:-35px;left:50%;transform:translate(-50%);z-index:9999}.tooltip-action-btn[data-tooltip]:after{content:"";border-width:5px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.8) transparent;bottom:-15px;left:50%;transform:translate(-50%);z-index:9999}@media (hover: hover) and (pointer: fine){.tooltip-action-btn:hover[data-tooltip]:before,.tooltip-action-btn:hover[data-tooltip]:after{opacity:1;visibility:visible}}.segment-tooltip{background-color:#b3d9fff2;color:#000;border-radius:4px;padding:6px;min-width:140px;z-index:1000;box-shadow:0 3px 10px #0003}.segment-tooltip:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(179,217,255,.95)}.tooltip-time{font-size:.85rem;font-weight:700;text-align:center;margin-bottom:6px;color:#000}.tooltip-actions{display:flex;justify-content:space-between;gap:5px;position:relative}.tooltip-action-btn{background-color:#007bff33;border:none;border-radius:3px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:6px;transition:background-color .2s;min-width:20px!important}.tooltip-action-btn:hover{background-color:#007bff66}.tooltip-action-btn svg{width:100%;height:100%;stroke:currentColor}.tooltip-action-btn.set-in svg,.tooltip-action-btn.set-out svg{width:100%;height:100%;margin:0 auto;fill:currentColor;stroke:none}.empty-space-tooltip{background-color:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;padding:8px;z-index:50;min-width:120px;text-align:center;position:relative}.empty-space-tooltip:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border-width:8px 8px 0;border-style:solid;border-color:white transparent transparent}.tooltip-action-btn.new-segment{width:auto;padding:6px 10px;display:flex;align-items:center;gap:5px}.tooltip-btn-text{font-size:.8rem;white-space:nowrap;color:#000}.icon-new-segment{width:20px;height:20px}.zoom-dropdown-container{position:relative}.zoom-button{display:flex;align-items:center;gap:6px;background-color:#6c757dcc;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-weight:500;cursor:pointer;transition:background-color .2s}.zoom-button:hover{background-color:#6c757d}.zoom-dropdown{background-color:#fff;border-radius:4px;box-shadow:0 2px 10px #00000026;max-height:300px;overflow-y:auto}.zoom-option{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:5px}.zoom-option:hover{background-color:#007bff1a}.zoom-option.selected{background-color:#007bff33;font-weight:500}.save-button,.save-copy-button,.save-segments-button{background-color:#007bffcc;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-weight:500;cursor:pointer;transition:background-color .2s}.save-button:hover,.save-copy-button:hover{background-color:#007bff}.save-copy-button{background-color:#6c757dcc}.save-copy-button:hover{background-color:#6c757d}.time-nav-label{font-weight:500;font-size:.9rem}.time-input{padding:6px 10px;border-radius:4px;border:1px solid #ccc;width:150px;font-family:monospace}.time-button-group{display:flex;gap:5px}.time-button{background-color:#6c757dcc;color:#fff;border:none;border-radius:4px;padding:6px 8px;font-size:.8rem;cursor:pointer;transition:background-color .2s}.time-button:hover{background-color:#6c757d}.timeline-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px;background-color:#f5f5f5;border-radius:6px;margin-top:15px}.time-navigation{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.controls-right{display:flex;align-items:center;gap:10px}@media (max-width: 768px){.timeline-controls{flex-direction:column;align-items:flex-start;gap:15px}.controls-right{margin-top:10px;width:100%;justify-content:flex-start;text-align:center;align-items:center;justify-content:center}}.timeline-header{display:flex;align-items:center;gap:20px;margin-bottom:10px;flex-wrap:wrap}.timeline-title{font-weight:700;margin-right:20px}.timeline-title-text{font-size:1.1rem}.current-time,.duration-time{white-space:nowrap}.time-code{font-family:monospace;font-weight:500}@media (max-width: 480px){.timeline-header{flex-direction:column;align-items:flex-start;gap:8px}.time-navigation{width:100%;flex-direction:column;align-items:flex-start;gap:10px}.time-button-group{width:100%;display:flex;justify-content:space-between;margin-top:10px}.controls-right{flex-wrap:wrap;gap:8px}.save-button,.save-copy-button{margin-top:8px;width:100%}.zoom-dropdown-container{width:100%}.zoom-button{width:100%;justify-content:center}} +#video-editor-trim-root{@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}}#video-editor-trim-root .video-player-container{position:relative;width:100%;background:#000;border-radius:.5rem;overflow:hidden;margin-bottom:1rem;aspect-ratio:16/9;-webkit-user-select:none;-moz-user-select:none;user-select:none}#video-editor-trim-root .video-player-container video{width:100%;height:100%;cursor:pointer;transform:translateZ(0);-webkit-transform:translateZ(0);-webkit-user-select:none;-moz-user-select:none;user-select:none}@supports (-webkit-touch-callout: none){#video-editor-trim-root .video-player-container video{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}}#video-editor-trim-root .play-pause-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;background-color:#0009;border-radius:50%;opacity:0;transition:opacity .3s;pointer-events:none}#video-editor-trim-root .video-player-container:hover .play-pause-indicator{opacity:1}#video-editor-trim-root .play-pause-indicator:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#video-editor-trim-root .play-pause-indicator.play-icon:before{width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:25px solid white;margin-left:3px}#video-editor-trim-root .play-pause-indicator.pause-icon:before{width:20px;height:25px;border-left:6px solid white;border-right:6px solid white}#video-editor-trim-root .ios-first-play-indicator{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10}#video-editor-trim-root .ios-play-message{color:#fff;font-size:1.2rem;text-align:center;padding:1rem;background:#000c;border-radius:.5rem;animation:pulse 2s infinite}#video-editor-trim-root .video-controls{position:absolute;bottom:0;left:0;right:0;padding:.75rem;background:linear-gradient(transparent,#000000b3);opacity:0;transition:opacity .3s}#video-editor-trim-root .video-player-container:hover .video-controls{opacity:1}#video-editor-trim-root .video-current-time,#video-editor-trim-root .video-duration{color:#fff;font-size:.875rem}#video-editor-trim-root .video-time-display{display:flex;justify-content:space-between;margin-bottom:.5rem;color:#fff;font-size:.875rem}#video-editor-trim-root .video-progress{position:relative;height:6px;background-color:#ffffff4d;border-radius:3px;cursor:pointer;margin:0 10px;touch-action:none;flex-grow:1}#video-editor-trim-root .video-progress.dragging{height:8px}#video-editor-trim-root .video-progress-fill{position:absolute;top:0;left:0;height:100%;background-color:red;border-radius:3px;pointer-events:none}#video-editor-trim-root .video-scrubber{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:16px;background-color:red;border-radius:50%;cursor:grab;transition:transform .1s ease,width .1s ease,height .1s ease}#video-editor-trim-root .video-progress.dragging .video-scrubber{transform:translate(-50%,-50%) scale(1.2);width:18px;height:18px;cursor:grabbing;box-shadow:0 0 8px #f009}@media (pointer: coarse){#video-editor-trim-root .video-scrubber{width:20px;height:20px}#video-editor-trim-root .video-progress.dragging .video-scrubber{width:24px;height:24px}#video-editor-trim-root .video-scrubber:before{content:"";position:absolute;top:-10px;left:-10px;right:-10px;bottom:-10px}}#video-editor-trim-root .video-controls-buttons{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}#video-editor-trim-root .mute-button,#video-editor-trim-root .fullscreen-button{min-width:auto;color:#fff;background:none;border:none;cursor:pointer;padding:.25rem;transition:transform .2s}#video-editor-trim-root .mute-button:hover,#video-editor-trim-root .fullscreen-button:hover{transform:scale(1.1)}#video-editor-trim-root .mute-button svg,#video-editor-trim-root .fullscreen-button svg{width:1.25rem;height:1.25rem}#video-editor-trim-root .video-time-tooltip{position:absolute;top:-30px;background-color:#000000b3;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-family:monospace;pointer-events:none;z-index:1000;white-space:nowrap;box-shadow:0 2px 4px #0000004d}#video-editor-trim-root .video-time-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid rgba(0,0,0,.7)}#video-editor-trim-root{@keyframes modal-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes success-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}@keyframes error-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:1}}}#video-editor-trim-root .modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}#video-editor-trim-root .modal-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;animation:modal-fade-in .3s ease-out}#video-editor-trim-root .modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #eee}#video-editor-trim-root .modal-title{margin:0;font-size:1.25rem;font-weight:600;color:#333}#video-editor-trim-root .modal-close-button{background:none;border:none;cursor:pointer;color:#666;padding:4px;display:flex;align-items:center;justify-content:center;transition:color .2s}#video-editor-trim-root .modal-close-button:hover{color:#000}#video-editor-trim-root .modal-content{padding:20px;color:#333;font-size:1rem;line-height:1.5;max-height:400px;overflow-y:auto}#video-editor-trim-root .modal-actions{display:flex;justify-content:flex-end;padding:16px 20px;border-top:1px solid #eee;gap:12px}#video-editor-trim-root .modal-button{padding:8px 16px;border-radius:4px;font-weight:500;cursor:pointer;transition:all .2s;border:none}#video-editor-trim-root .modal-button-primary{background-color:#06c;color:#fff}#video-editor-trim-root .modal-button-primary:hover{background-color:#05a}#video-editor-trim-root .modal-button-secondary{background-color:#f0f0f0;color:#333}#video-editor-trim-root .modal-button-secondary:hover{background-color:#e0e0e0}#video-editor-trim-root .modal-button-danger{background-color:#dc3545;color:#fff}#video-editor-trim-root .modal-button-danger:hover{background-color:#bd2130}#video-editor-trim-root .modal-message{margin-bottom:16px;font-size:1rem}#video-editor-trim-root .modal-spinner{display:flex;align-items:center;justify-content:center;margin:20px 0}#video-editor-trim-root .spinner{border:4px solid rgba(0,0,0,.1);border-radius:50%;border-top:4px solid #0066cc;width:30px;height:30px;animation:spin 1s linear infinite}#video-editor-trim-root .modal-success-icon{display:flex;justify-content:center;margin-bottom:16px;color:#28a745;font-size:2rem}#video-editor-trim-root .modal-success-icon svg{width:60px;height:60px;color:#4caf50;animation:success-pop .5s ease-out}#video-editor-trim-root .modal-error-icon{display:flex;justify-content:center;margin-bottom:16px;color:#dc3545;font-size:2rem}#video-editor-trim-root .modal-error-icon svg{width:60px;height:60px;color:#f44336;animation:error-pop .5s ease-out}#video-editor-trim-root .modal-choices{display:flex;flex-direction:column;gap:10px;margin-top:20px}#video-editor-trim-root .modal-choice-button{padding:12px 16px;border:none;border-radius:4px;background-color:#06c;text-align:center;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-weight:500;text-decoration:none;color:#fff}#video-editor-trim-root .modal-choice-button:hover{background-color:#05a;transform:translateY(-1px);box-shadow:0 2px 5px #0000001a}#video-editor-trim-root .modal-choice-button svg{margin-right:8px}#video-editor-trim-root .success-link{background-color:#4caf50}#video-editor-trim-root .success-link:hover{background-color:#3d8b40}#video-editor-trim-root .centered-choice{margin:0 auto;width:auto;min-width:220px;background-color:#06c;color:#fff}#video-editor-trim-root .centered-choice:hover{background-color:#05a}@media (max-width: 480px){#video-editor-trim-root .modal-container{width:95%}#video-editor-trim-root .modal-actions{flex-direction:column}#video-editor-trim-root .modal-button{width:100%}}#video-editor-trim-root .error-message{color:#f44336;font-weight:500;background-color:#f443361a;padding:10px;border-radius:4px;border-left:4px solid #F44336;margin-top:10px}#video-editor-trim-root .redirect-message{color:#555;font-size:.95rem;padding:0;margin:0}#video-editor-trim-root .countdown{font-weight:700;color:#06c;font-size:1.1rem}#video-editor-trim-root{@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}}#video-editor-trim-root .timeline-container-card{background-color:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .timeline-header{margin-bottom:.75rem;display:flex;justify-content:space-between;align-items:center}#video-editor-trim-root .timeline-title{font-size:.875rem;font-weight:500;color:var(--foreground, #333)}#video-editor-trim-root .timeline-title-text{font-weight:700}#video-editor-trim-root .current-time{font-size:.875rem;color:var(--foreground, #333)}#video-editor-trim-root .time-code{font-family:monospace;background-color:#f3f4f6;padding:0 .5rem;border-radius:.25rem}#video-editor-trim-root .duration-time{font-size:.875rem;color:var(--foreground, #333)}#video-editor-trim-root .timeline-scroll-container{position:relative;overflow:visible!important}#video-editor-trim-root .timeline-container{position:relative;min-width:100%;background-color:#fafbfc;height:70px;border-radius:.25rem;overflow:visible!important}#video-editor-trim-root .timeline-marker{position:absolute;height:82px;width:2px;background-color:#000;transform:translate(-50%);z-index:50;pointer-events:none}#video-editor-trim-root .timeline-marker-head{position:absolute;top:-6px;left:50%;transform:translate(-50%);width:16px;height:16px;background-color:#ef4444;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:51}#video-editor-trim-root .timeline-marker-drag{position:absolute;bottom:-12px;left:50%;transform:translate(-50%);width:16px;height:16px;background-color:#4b5563;border-radius:50%;cursor:grab;display:flex;align-items:center;justify-content:center;pointer-events:auto;z-index:51}#video-editor-trim-root .timeline-marker-drag.dragging{cursor:grabbing;background-color:#374151}#video-editor-trim-root .timeline-marker-head-icon{color:#fff;font-size:14px;font-weight:700;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none}#video-editor-trim-root .timeline-marker-drag-icon{color:#fff;font-size:12px;line-height:1;-webkit-user-select:none;-moz-user-select:none;user-select:none;transform:rotate(90deg);display:inline-block}#video-editor-trim-root .trim-line-marker{position:absolute;top:0;bottom:0;width:1px;background-color:#00000080;z-index:20}#video-editor-trim-root .trim-handle{position:absolute;width:10px;height:20px;background-color:#000;cursor:ew-resize}#video-editor-trim-root .trim-handle.left{right:0;top:10px;border-radius:3px 0 0 3px}#video-editor-trim-root .trim-handle.right{left:0;top:10px;border-radius:0 3px 3px 0}#video-editor-trim-root .timeline-thumbnail{display:inline-block;height:70px;border-right:1px solid rgba(0,0,0,.03)}#video-editor-trim-root .split-point{position:absolute;top:0;bottom:0;width:1px;background-color:#ff000080;z-index:15}#video-editor-trim-root .clip-segment{position:absolute;height:70px;border-radius:4px;z-index:10;border:2px solid rgba(0,0,0,.15);cursor:pointer}#video-editor-trim-root .clip-segment:hover{box-shadow:0 0 0 2px #0000004d;border-color:#0006;background-color:#f0f0f0cc!important}#video-editor-trim-root .clip-segment.selected{box-shadow:0 0 0 2px #3b82f6b3;border-color:#3b82f6e6}#video-editor-trim-root .clip-segment.selected:hover{background-color:#f0f8ffd9!important}#video-editor-trim-root .clip-segment-info{position:absolute;bottom:0;left:0;right:0;padding:.4rem;background-color:#0006;color:#fff;opacity:1;transition:background-color .2s;line-height:1.3}#video-editor-trim-root .clip-segment:hover .clip-segment-info{background-color:#00000080}#video-editor-trim-root .clip-segment.selected .clip-segment-info{background-color:#3b82f680}#video-editor-trim-root .clip-segment.selected:hover .clip-segment-info{background-color:#3b82f666}#video-editor-trim-root .clip-segment-name{font-weight:700;font-size:12px}#video-editor-trim-root .clip-segment-time,#video-editor-trim-root .clip-segment-duration{font-size:10px}#video-editor-trim-root .clip-segment-handle{position:absolute;top:0;bottom:0;width:6px;background-color:#0003;cursor:ew-resize}#video-editor-trim-root .clip-segment-handle:hover{background-color:#0006}#video-editor-trim-root .clip-segment-handle.left{left:0;border-radius:2px 0 0 2px}#video-editor-trim-root .clip-segment-handle.right{right:0;border-radius:0 2px 2px 0}@media (pointer: coarse){#video-editor-trim-root .clip-segment-handle{width:14px;background-color:#0006}#video-editor-trim-root .clip-segment-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:20px;background-color:#fffc;border-radius:1px}#video-editor-trim-root .clip-segment-handle.left:after{box-shadow:-2px 0 #00000080}#video-editor-trim-root .clip-segment-handle.right:after{box-shadow:2px 0 #00000080}#video-editor-trim-root .clip-segment-handle:active{background-color:#0009}#video-editor-trim-root .timeline-marker{height:85px}#video-editor-trim-root .timeline-marker-head{width:24px;height:24px;top:-13px}#video-editor-trim-root .timeline-marker-drag{width:24px;height:24px;bottom:-18px}#video-editor-trim-root .timeline-marker-head.dragging{width:28px;height:28px;top:-15px}}#video-editor-trim-root .segment-tooltip,#video-editor-trim-root .empty-space-tooltip{position:absolute;background-color:#fff;border-radius:4px;box-shadow:0 2px 8px #0000004d;padding:.5rem;z-index:1000;min-width:150px;text-align:center;pointer-events:auto;top:-100px!important;transform:translateY(-10px)}#video-editor-trim-root .segment-tooltip:after,#video-editor-trim-root .empty-space-tooltip:after{content:"";position:absolute;bottom:-5px;left:50%;transform:translate(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid white}#video-editor-trim-root .segment-tooltip:before,#video-editor-trim-root .empty-space-tooltip:before{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(0,0,0,.1);z-index:-1}#video-editor-trim-root .tooltip-time{font-weight:600;font-size:.875rem;margin-bottom:.5rem;color:#333}#video-editor-trim-root .tooltip-actions{display:flex;justify-content:center;gap:.5rem}#video-editor-trim-root .tooltip-action-btn{background-color:#f3f4f6;border:none;border-radius:.25rem;padding:.375rem;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;min-width:20px!important}#video-editor-trim-root .tooltip-action-btn:hover{background-color:#e5e7eb;color:#111827}#video-editor-trim-root .tooltip-action-btn.delete{color:#ef4444}#video-editor-trim-root .tooltip-action-btn.delete:hover{background-color:#fee2e2}#video-editor-trim-root .tooltip-action-btn.new-segment{padding:.375rem .5rem}#video-editor-trim-root .tooltip-action-btn.new-segment .tooltip-btn-text{margin-left:.25rem;font-size:.75rem}#video-editor-trim-root .tooltip-action-btn svg{width:1rem;height:1rem}#video-editor-trim-root .timeline-controls{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem}#video-editor-trim-root .time-navigation{display:none;align-items:center;gap:.5rem}#video-editor-trim-root .time-nav-label{font-size:.875rem;font-weight:500}#video-editor-trim-root .time-input{border:1px solid #d1d5db;border-radius:.25rem;padding:.25rem .5rem;width:8rem;font-size:.875rem}#video-editor-trim-root .time-button-group{display:flex}#video-editor-trim-root .time-button{background-color:#e5e7eb;color:#000;padding:.25rem .5rem;font-size:.875rem;border:none;cursor:pointer;margin-right:.5rem}#video-editor-trim-root .time-button:hover{background-color:#d1d5db}#video-editor-trim-root .time-button:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}#video-editor-trim-root .time-button:last-child{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}#video-editor-trim-root .controls-right{display:flex;align-items:center;gap:.5rem;margin-left:auto}#video-editor-trim-root .zoom-dropdown-container{position:relative;z-index:100;display:none}#video-editor-trim-root .zoom-button{background-color:#374151;color:#fff;border:none;border-radius:.25rem;padding:.25rem .75rem;font-size:.875rem;display:flex;align-items:center;cursor:pointer}#video-editor-trim-root .zoom-button:hover{background-color:#1f2937}#video-editor-trim-root .zoom-button svg{margin-left:.25rem}#video-editor-trim-root .zoom-dropdown{position:absolute;top:100%;left:0;margin-top:.25rem;width:9rem;background-color:#374151;color:#fff;border-radius:.25rem;box-shadow:0 4px 6px -1px #0000001a;z-index:50;max-height:300px;overflow-y:auto}#video-editor-trim-root .zoom-option{padding:.25rem .75rem;cursor:pointer}#video-editor-trim-root .zoom-option:hover{background-color:#4b5563}#video-editor-trim-root .zoom-option.selected{background-color:#6b7280;display:flex;align-items:center}#video-editor-trim-root .zoom-option svg{margin-right:.25rem}#video-editor-trim-root .save-buttons-row{display:flex;align-items:center;gap:.5rem;margin:0;flex-wrap:nowrap}#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{color:#fff;background:#06c;border-radius:.25rem;font-size:.75rem;padding:.25rem .5rem;cursor:pointer;border:none;white-space:nowrap;transition:background-color .2s;min-width:-moz-fit-content;min-width:fit-content}#video-editor-trim-root .save-button:hover,#video-editor-trim-root .save-copy-button:hover,#video-editor-trim-root .save-segments-button:hover{background-color:#0056b3}@media (max-width: 576px){#video-editor-trim-root .save-buttons-row{width:100%;justify-content:space-between;gap:.5rem}#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{flex:1;font-size:.7rem;padding:.25rem .35rem}}@media (max-width: 480px){#video-editor-trim-root .save-button,#video-editor-trim-root .save-copy-button,#video-editor-trim-root .save-segments-button{font-size:.675rem;padding:.25rem}#video-editor-trim-root .controls-right,#video-editor-trim-root .controls-right button{margin:0}}#video-editor-trim-root .modal-success-content,#video-editor-trim-root .modal-error-content{display:flex;flex-direction:column;align-items:center;padding:1rem;text-align:center;padding:0;margin:0}#video-editor-trim-root .modal-success-icon,#video-editor-trim-root .modal-error-icon{margin-bottom:1rem}#video-editor-trim-root .modal-success-icon svg{color:#4caf50;animation:fadeIn .5s ease-in-out}#video-editor-trim-root .modal-error-icon svg{color:#f44336;animation:fadeIn .5s ease-in-out}#video-editor-trim-root .success-link{background-color:#4caf50;color:#fff;transition:background-color .3s}#video-editor-trim-root .success-link:hover{background-color:#388e3c}#video-editor-trim-root .error-message{color:#f44336;font-weight:500}#video-editor-trim-root .modal-spinner{display:flex;justify-content:center;margin:2rem 0}#video-editor-trim-root .spinner{width:50px;height:50px;border:5px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:#06c;animation:spin 1s ease-in-out infinite}#video-editor-trim-root .text-center{text-align:center}#video-editor-trim-root .modal-message{margin-bottom:1rem;line-height:1.5}#video-editor-trim-root .modal-choice-button{display:flex;align-items:center;justify-content:center;padding:.75rem 1.25rem;background-color:#06c;color:#fff;border-radius:4px;text-decoration:none;margin:0 auto;cursor:pointer;font-weight:500;gap:.5rem;border:none;transition:background-color .3s}#video-editor-trim-root .modal-choice-button:hover{background-color:#0056b3}#video-editor-trim-root .modal-choice-button svg{flex-shrink:0}#video-editor-trim-root .centered-choice{margin:0 auto;min-width:180px}.mobile-timeline-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:50;display:flex;justify-content:center;align-items:center;border-radius:.5rem;pointer-events:none}.mobile-timeline-message{background-color:#000c;border-radius:8px;padding:15px 25px;text-align:center;max-width:80%;animation:pulse 2s infinite}.mobile-timeline-message p{color:#fff;font-size:16px;margin:0 0 15px;font-weight:500}.mobile-play-icon{width:0;height:0;border-top:15px solid transparent;border-bottom:15px solid transparent;border-left:25px solid white;margin:0 auto}@keyframes pulse{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}to{opacity:.7;transform:scale(1)}}.preview-mode .tooltip-action-btn,.preview-mode .tooltip-time-btn{opacity:.5;pointer-events:none;cursor:not-allowed}.timeline-container-card.preview-mode{pointer-events:none}.timeline-container-card.preview-mode .timeline-marker-head,.timeline-container-card.preview-mode .timeline-marker-drag,.timeline-container-card.preview-mode .clip-segment,.timeline-container-card.preview-mode .clip-segment-handle,.timeline-container-card.preview-mode .time-button,.timeline-container-card.preview-mode .zoom-button,.timeline-container-card.preview-mode .save-button,.timeline-container-card.preview-mode .save-copy-button,.timeline-container-card.preview-mode .save-segments-button{opacity:.5;pointer-events:none;cursor:not-allowed}.timeline-container-card.preview-mode .clip-segment:hover{box-shadow:none;border-color:#00000026;background-color:inherit!important}.segments-playback-mode .tooltip-time-btn{opacity:1;cursor:pointer}.segments-playback-mode .tooltip-action-btn.set-in,.segments-playback-mode .tooltip-action-btn.set-out,.segments-playback-mode .tooltip-action-btn.play-from-start{opacity:.5;pointer-events:none}.segments-playback-mode .tooltip-action-btn.play,.segments-playback-mode .tooltip-action-btn.pause{opacity:1;cursor:pointer}.segments-playback-message{display:flex;align-items:center;background-color:#3b82f61a;color:#3b82f6;padding:6px 12px;border-radius:4px;font-weight:600;font-size:.875rem;animation:pulse 2s infinite}.segments-playback-message svg{height:1.25rem;width:1.25rem;margin-right:.5rem;color:#3b82f6}.two-row-tooltip{display:flex;flex-direction:column;background-color:#fff;padding:6px;border-radius:4px;box-shadow:0 2px 8px #00000026;position:relative;z-index:3000}.tooltip-time-btn[data-tooltip="Decrease by 100ms"],.tooltip-time-btn[data-tooltip="Increase by 100ms"]{display:none!important}.tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:3px}.tooltip-row:first-child{margin-bottom:6px}.tooltip-time-btn{background-color:#f0f0f0!important;border:none!important;border-radius:4px!important;padding:4px 8px!important;font-size:.75rem!important;font-weight:500!important;color:#333!important;cursor:pointer!important;transition:background-color .2s!important;min-width:20px!important}.tooltip-time-btn:hover{background-color:#e0e0e0!important}.tooltip-time-display{font-family:monospace!important;font-size:.875rem!important;font-weight:600!important;color:#333!important;padding:4px 6px!important;background-color:#f7f7f7!important;border-radius:4px!important;min-width:100px!important;text-align:center!important;overflow:hidden!important}.tooltip-actions{display:flex;justify-content:space-between;align-items:center;gap:3px;position:relative;z-index:2500}.tooltip-action-btn{background-color:#f3f4f6;border:none;border-radius:4px;padding:5px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#4b5563;width:26px;height:26px;min-width:20px!important;position:relative}.tooltip-action-btn[data-tooltip]:before{content:attr(data-tooltip);position:absolute;height:30px;top:35px;left:50%;transform:translate(-50%);margin-left:0;background-color:#000000d9;color:#fff;text-align:left;padding:6px 12px;border-radius:4px;box-shadow:0 2px 8px #0003;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:2500;pointer-events:none}.tooltip-action-btn[data-tooltip]:after{content:"";position:absolute;top:35px;left:50%;transform:translate(-50%);border-width:4px;border-style:solid;border-color:rgba(0,0,0,.85) transparent transparent transparent;margin-left:0;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:2500;pointer-events:none}@media (hover: hover) and (pointer: fine){.tooltip-action-btn[data-tooltip]:hover:before,.tooltip-action-btn[data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){.tooltip-action-btn[data-tooltip]:before,.tooltip-action-btn[data-tooltip]:after{display:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;content:none!important}}.tooltip-action-btn:hover{background-color:#e5e7eb;color:#111827}.tooltip-action-btn.delete{color:#ef4444}.tooltip-action-btn.delete:hover{background-color:#fee2e2}.tooltip-action-btn.play{color:#10b981}.tooltip-action-btn.play:hover{background-color:#d1fae5}.tooltip-action-btn.pause{color:#3b82f6}.tooltip-action-btn.pause:hover{background-color:#dbeafe}.tooltip-action-btn.play-from-start{color:#4f46e5}.tooltip-action-btn.play-from-start:hover{background-color:#e0e7ff}.tooltip-action-btn svg{width:16px;height:16px}.tooltip-action-btn.new-segment{width:auto;height:auto;padding:6px 10px;display:flex;flex-direction:row;color:#10b981}.tooltip-action-btn.new-segment:hover{background-color:#d1fae5}.tooltip-action-btn.new-segment .tooltip-btn-text{margin-left:6px;font-size:.75rem;white-space:nowrap}.tooltip-action-btn.disabled{opacity:.5;cursor:not-allowed;background-color:#f3f4f6}.tooltip-action-btn.disabled:hover{background-color:#f3f4f6;color:#9ca3af}.tooltip-action-btn.disabled svg{color:#9ca3af}.tooltip-action-btn.disabled .tooltip-btn-text{color:#9ca3af}@media (max-width: 768px){.two-row-tooltip{padding:4px}.tooltip-row:first-child{margin-bottom:4px}.tooltip-time-btn{min-width:20px!important;font-size:.7rem!important;padding:3px 6px!important}.tooltip-time-display{font-size:.8rem!important;padding:3px 4px!important;min-width:90px!important}.tooltip-action-btn{width:24px;height:24px;padding:4px}.tooltip-action-btn.new-segment{padding:4px 8px}.tooltip-action-btn svg{width:14px;height:14px}.tooltip-action-btn[data-tooltip]:before{min-width:100px;font-size:11px;padding:4px 8px;height:24px;top:33px}.tooltip-action-btn[data-tooltip]:after{top:33px}}#video-editor-trim-root{@keyframes bluePulse{0%{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 8px #3b82f600}to{box-shadow:0 0 #3b82f600}}@keyframes pulse{0%{opacity:.8}50%{opacity:1}to{opacity:.8}}}#video-editor-trim-root .editing-tools-container{background-color:#fff;border-radius:.5rem;padding:1rem;margin-bottom:2.5rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .flex-container{display:flex;justify-content:space-between;align-items:center;position:relative;gap:15px;width:100%}#video-editor-trim-root .flex-container.single-row{flex-wrap:nowrap}#video-editor-trim-root .full-text{display:inline}#video-editor-trim-root .short-text{display:none}#video-editor-trim-root .reset-text{display:inline}#video-editor-trim-root .button-group{display:flex;align-items:center}#video-editor-trim-root .button-group.play-buttons-group{gap:.75rem;justify-content:flex-start;flex:0 0 auto}#video-editor-trim-root .button-group.secondary{gap:.75rem;align-items:center;justify-content:flex-end;margin-left:auto}#video-editor-trim-root .button-group button{display:flex;align-items:center;color:#333;background:none;border:none;cursor:pointer;min-width:auto}#video-editor-trim-root .button-group button:hover:not(:disabled){color:inherit}#video-editor-trim-root .button-group button:disabled{opacity:.5;cursor:not-allowed}#video-editor-trim-root .button-group button svg{height:1.25rem;width:1.25rem;margin-right:.25rem}#video-editor-trim-root .divider{border-right:1px solid #d1d5db;height:1.5rem;margin:0 .5rem}#video-editor-trim-root .play-button,#video-editor-trim-root .preview-button{font-weight:600;display:flex;align-items:center;position:relative;overflow:hidden;min-width:80px;justify-content:center;font-size:.875rem!important}#video-editor-trim-root .play-button.greyed-out{opacity:.5;cursor:not-allowed}#video-editor-trim-root .segments-button.highlighted-stop{background-color:#3b82f61a;color:#3b82f6;border:1px solid #3b82f6;animation:bluePulse 2s infinite}#video-editor-trim-root .play-button:hover:not(:disabled),#video-editor-trim-root .preview-button:hover:not(:disabled){color:inherit!important;transform:none!important;font-size:.875rem!important;width:auto!important;background:none!important}#video-editor-trim-root .play-button svg,#video-editor-trim-root .preview-button svg{height:1.5rem;width:1.5rem;flex-shrink:0}#video-editor-trim-root .preview-mode-message{display:flex;align-items:center;background-color:#3b82f61a;color:#3b82f6;padding:6px 12px;border-radius:4px;font-weight:600;font-size:.875rem;animation:pulse 2s infinite}#video-editor-trim-root .preview-mode-message svg{height:1.25rem;width:1.25rem;margin-right:.5rem;color:#3b82f6}#video-editor-trim-root .button-text{margin-left:.25rem}@media (max-width: 992px){#video-editor-trim-root .button-group.secondary .button-text{display:none}}@media (max-width: 768px){#video-editor-trim-root .flex-container.single-row{justify-content:space-between}#video-editor-trim-root .button-group{gap:.5rem}#video-editor-trim-root .preview-button,#video-editor-trim-root .play-button{font-size:.875rem!important}}@media (max-width: 640px){#video-editor-trim-root .editing-tools-container{padding:.75rem;overflow-x:hidden}#video-editor-trim-root .preview-button{min-width:auto}#video-editor-trim-root .full-text{display:none}#video-editor-trim-root .short-text{display:inline;margin-left:.15rem}#video-editor-trim-root .reset-text{display:none}#video-editor-trim-root .button-group.play-buttons-group{flex:initial;justify-content:flex-start;flex-shrink:0}#video-editor-trim-root .button-group.secondary{flex:initial;justify-content:flex-end;flex-shrink:0}#video-editor-trim-root .button-group button{padding:.375rem;min-width:auto}#video-editor-trim-root .button-group button svg{height:1.125rem;width:1.125rem;margin-right:.125rem}}@media (max-width: 576px){#video-editor-trim-root .flex-container.single-row{justify-content:space-between;flex-wrap:nowrap;gap:10px}#video-editor-trim-root .button-group.play-buttons-group{justify-content:flex-start;flex:0 0 auto}#video-editor-trim-root .button-group.secondary{justify-content:flex-end;margin-left:auto}#video-editor-trim-root .button-group button{padding:.25rem}#video-editor-trim-root .preview-mode-message{font-size:.8rem;padding:4px 8px}#video-editor-trim-root .divider{margin:0 .25rem}}@media (max-width: 480px){#video-editor-trim-root .editing-tools-container{padding:.5rem}#video-editor-trim-root .flex-container.single-row{gap:8px}#video-editor-trim-root .button-group.play-buttons-group,#video-editor-trim-root .button-group.secondary{gap:.25rem}#video-editor-trim-root .divider{display:none}#video-editor-trim-root .button-group button{padding:.125rem}#video-editor-trim-root .button-group button svg{height:1rem;width:1rem;margin-right:0}#video-editor-trim-root .button-text,#video-editor-trim-root .reset-text{display:none}}@media (max-width: 640px) and (orientation: portrait){#video-editor-trim-root .editing-tools-container{width:100%;box-sizing:border-box}#video-editor-trim-root .flex-container.single-row{width:100%;padding:0;margin:0}#video-editor-trim-root .button-group{max-width:50%}#video-editor-trim-root .button-group.play-buttons-group{max-width:60%}#video-editor-trim-root .button-group.secondary{max-width:40%}}@media (hover: hover) and (pointer: fine){#video-editor-trim-root [data-tooltip]{position:relative}#video-editor-trim-root [data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:5px;background-color:#000c;color:#fff;text-align:center;padding:5px 10px;border-radius:3px;font-size:12px;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:1000;pointer-events:none}#video-editor-trim-root [data-tooltip]:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:rgba(0,0,0,.8) transparent transparent transparent;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}#video-editor-trim-root [data-tooltip]:hover:before,#video-editor-trim-root [data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){#video-editor-trim-root [data-tooltip]:before,#video-editor-trim-root [data-tooltip]:after{display:none!important;content:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}}#video-editor-trim-root .clip-segments-container{margin-top:1rem;background-color:#fff;border-radius:.5rem;padding:1rem;box-shadow:0 1px 2px #0000000d}#video-editor-trim-root .clip-segments-title{font-size:.875rem;font-weight:500;color:var(--foreground, #333);margin-bottom:.75rem}#video-editor-trim-root .segment-item{display:flex;align-items:center;justify-content:space-between;padding:.5rem;border:1px solid #e5e7eb;border-radius:.25rem;margin-bottom:.5rem;transition:box-shadow .2s ease}#video-editor-trim-root .segment-item:hover{box-shadow:0 4px 6px -1px #0000001a}#video-editor-trim-root .segment-content{display:flex;align-items:center}#video-editor-trim-root .segment-thumbnail{width:4rem;height:2.25rem;background-size:cover;background-position:center;border-radius:.25rem;margin-right:.75rem;box-shadow:0 0 0 1px #ffffff4d}#video-editor-trim-root .segment-info{display:flex;flex-direction:column}#video-editor-trim-root .segment-title{font-weight:500;font-size:.875rem;color:#000}#video-editor-trim-root .segment-time{font-size:.75rem;color:#000}#video-editor-trim-root .segment-duration{font-size:.75rem;margin-top:.25rem;display:inline-block;background-color:#f3f4f6;padding:0 .5rem;border-radius:.25rem;color:#000}#video-editor-trim-root .segment-actions{display:flex;align-items:center;gap:.5rem}#video-editor-trim-root .delete-button{padding:.375rem;color:#4b5563;background-color:#e5e7eb;border-radius:9999px;border:none;cursor:pointer;transition:background-color .2s,color .2s;min-width:auto}#video-editor-trim-root .delete-button:hover{color:#000;background-color:#d1d5db}#video-editor-trim-root .delete-button svg{height:1rem;width:1rem}#video-editor-trim-root .empty-message{padding:1rem;text-align:center;color:#333333b3}#video-editor-trim-root .segment-color-1{background-color:#3b82f626}#video-editor-trim-root .segment-color-2{background-color:#10b98126}#video-editor-trim-root .segment-color-3{background-color:#f59e0b26}#video-editor-trim-root .segment-color-4{background-color:#ef444426}#video-editor-trim-root .segment-color-5{background-color:#8b5cf626}#video-editor-trim-root .segment-color-6{background-color:#ec489926}#video-editor-trim-root .segment-color-7{background-color:#06b6d426}#video-editor-trim-root .segment-color-8{background-color:#facc1526}.mobile-play-prompt-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.mobile-play-prompt{background-color:#fff;width:90%;max-width:400px;border-radius:12px;padding:25px;box-shadow:0 4px 20px #00000040;text-align:center}.mobile-play-prompt h3{margin:0 0 15px;font-size:20px;color:#333;font-weight:600}.mobile-play-prompt p{margin:0 0 15px;font-size:16px;color:#444;line-height:1.5}.mobile-prompt-instructions{margin:20px 0;text-align:left;background-color:#f8f9fa;padding:15px;border-radius:8px}.mobile-prompt-instructions p{margin:0 0 8px;font-size:15px;font-weight:500}.mobile-prompt-instructions ol{margin:0;padding-left:22px}.mobile-prompt-instructions li{margin-bottom:8px;font-size:14px;color:#333}.mobile-play-button{background-color:#007bff;color:#fff;border:none;border-radius:8px;padding:12px 25px;font-size:16px;font-weight:500;cursor:pointer;transition:background-color .2s;margin-top:5px;min-height:44px;min-width:200px}.mobile-play-button:hover{background-color:#0069d9}.mobile-play-button:active{background-color:#0062cc;transform:scale(.98)}@supports (-webkit-touch-callout: none){.mobile-play-button{padding:14px 25px}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{border-color:hsl(var(--border))}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.inline{display:inline}.flex{display:flex}.hidden{display:none}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-6xl{max-width:72rem}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:1rem}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.bg-background{background-color:hsl(var(--background))}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.px-4{padding-left:1rem;padding-right:1rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.text-center{text-align:center}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.paused{animation-play-state:paused}:root{--foreground: 20 14.3% 4.1%;--muted: 60 4.8% 95.9%;--muted-foreground: 25 5.3% 44.7%;--popover: 0 0% 100%;--popover-foreground: 20 14.3% 4.1%;--card: 0 0% 100%;--card-foreground: 20 14.3% 4.1%;--border: 20 5.9% 90%;--input: 20 5.9% 90%;--primary: 207 90% 54%;--primary-foreground: 211 100% 99%;--secondary: 30 84% 54%;--secondary-foreground: 60 9.1% 97.8%;--accent: 60 4.8% 95.9%;--accent-foreground: 24 9.8% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 60 9.1% 97.8%;--ring: 20 14.3% 4.1%;--radius: .5rem}.video-player{position:relative;width:100%;background-color:#000;overflow:hidden;border-radius:.5rem}.video-controls{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.8),transparent);padding:1rem;display:flex;flex-direction:column}.video-current-time{color:#fff;font-weight:500}.video-progress{position:relative;height:4px;background-color:#ffffff4d;border-radius:2px;margin-bottom:1rem}.video-progress-fill{position:absolute;left:0;top:0;height:100%;background-color:hsl(var(--primary));border-radius:2px}.video-scrubber{position:absolute;width:12px;height:12px;margin-left:-6px;background-color:#fff;border-radius:50%;top:-4px}.video-player-container{position:relative;overflow:hidden}.play-pause-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70px;height:70px;border-radius:50%;background-color:#00000080;z-index:20;opacity:0;transition:opacity .2s ease;pointer-events:none;background-position:center;background-repeat:no-repeat}.play-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='36' height='36' fill='white'%3E%3Cpath d='M8 5v14l11-7z'/%3E%3C/svg%3E")}.pause-icon{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='36' height='36' fill='white'%3E%3Cpath d='M6 19h4V5H6v14zm8-14v14h4V5h-4z'/%3E%3C/svg%3E")}.video-player-container:hover .play-pause-indicator{opacity:1}.timeline-scroll-container{height:6rem;border-radius:.375rem;overflow-x:auto;overflow-y:hidden;margin-bottom:.75rem;background-color:#eee;position:relative}.timeline-container{position:relative;background-color:#eee;height:6rem;width:100%;cursor:pointer;transition:width .3s ease}.timeline-marker{position:absolute;top:-10px;height:calc(100% + 10px);width:2px;background-color:red;z-index:100;pointer-events:none;box-shadow:0 0 4px #ff000080}.trim-line-marker{position:absolute;top:0;bottom:0;width:2px;background-color:#007bffe6;z-index:10}.trim-handle{width:8px;background-color:#6c757de6;position:absolute;top:0;bottom:0;cursor:ew-resize;z-index:15}.trim-handle.left{left:-4px}.trim-handle.right{right:-4px}.timeline-thumbnail{height:100%;border-right:1px solid rgba(0,0,0,.1);position:relative;display:inline-block;background-size:cover;background-position:center}.split-point{position:absolute;width:2px;background-color:#6c757de6;top:0;bottom:0;z-index:5}.clip-segment{position:absolute;height:95%;top:0;border-radius:4px;background-size:cover;background-position:center;background-blend-mode:soft-light;box-shadow:0 2px 8px #0003;overflow:hidden;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:box-shadow .2s,transform .1s;z-index:15}.clip-segment:nth-child(odd),.segment-color-1,.segment-color-3,.segment-color-5,.segment-color-7{background-color:transparent;border:2px solid rgba(0,123,255,.9)}.clip-segment:nth-child(2n),.segment-color-2,.segment-color-4,.segment-color-6,.segment-color-8{background-color:transparent;border:2px solid rgba(108,117,125,.9)}.clip-segment:hover{box-shadow:0 4px 12px #0000004d;transform:translateY(-1px);filter:brightness(1.1)}.clip-segment:active{cursor:grabbing;box-shadow:0 2px 6px #0000004d;transform:translateY(0)}.clip-segment.selected{border-width:3px;box-shadow:0 4px 12px #0006;z-index:25;filter:brightness(1.2)}.clip-segment-info{background-color:#e2e6eae6;color:#000;padding:6px 8px;font-size:.7rem;position:absolute;top:0;left:0;width:100%;border-radius:4px 4px 0 0;z-index:2;display:flex;flex-direction:column;gap:2px}.clip-segment-name{font-weight:700;color:#000}.clip-segment-time{font-size:.65rem;color:#000}.clip-segment-duration{font-size:.65rem;color:#000;background:#b3d9ff66;padding:1px 4px;border-radius:2px;display:inline-block;margin-top:2px}.clip-segment-handle{position:absolute;width:8px;top:0;bottom:0;background-color:#6c757de6;cursor:ew-resize;z-index:20;display:flex;align-items:center;justify-content:center}.clip-segment-handle:after{content:"↔";color:#fff;font-size:12px;text-shadow:0 0 2px rgba(0,0,0,.8)}.clip-segment-handle.left{left:0}.clip-segment-handle.right{right:0}.clip-segment-handle:hover{background-color:#007bffe6;width:10px}input[type=range]{-webkit-appearance:none;height:6px;background:#e0e0e0;border-radius:3px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;height:16px;width:16px;border-radius:50%;background:#007bffe6;cursor:pointer}[data-tooltip]{position:relative;cursor:pointer}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:8px;background-color:#000c;color:#fff;padding:5px 10px;border-radius:4px;font-size:.8rem;white-space:nowrap;z-index:1000;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}[data-tooltip]:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:5px;border-style:solid;border-color:rgba(0,0,0,.8) transparent transparent transparent;margin-bottom:0;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}@media (hover: hover) and (pointer: fine){[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible}}@media (pointer: coarse){[data-tooltip]:before,[data-tooltip]:after{display:none!important;content:none!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}}button[disabled][data-tooltip]:before,button[disabled][data-tooltip]:after{opacity:.5}.tooltip-action-btn{position:relative}.tooltip-action-btn[data-tooltip]:before,.tooltip-action-btn[data-tooltip]:after{opacity:0;visibility:hidden;position:absolute;pointer-events:none;transition:all .3s ease}.tooltip-action-btn[data-tooltip]:before{content:attr(data-tooltip);background-color:#000c;color:#fff;font-size:12px;padding:4px 8px;border-radius:3px;white-space:nowrap;bottom:-35px;left:50%;transform:translate(-50%);z-index:9999}.tooltip-action-btn[data-tooltip]:after{content:"";border-width:5px;border-style:solid;border-color:transparent transparent rgba(0,0,0,.8) transparent;bottom:-15px;left:50%;transform:translate(-50%);z-index:9999}@media (hover: hover) and (pointer: fine){.tooltip-action-btn:hover[data-tooltip]:before,.tooltip-action-btn:hover[data-tooltip]:after{opacity:1;visibility:visible}}.segment-tooltip{background-color:#b3d9fff2;color:#000;border-radius:4px;padding:6px;min-width:140px;z-index:1000;box-shadow:0 3px 10px #0003}.segment-tooltip:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid rgba(179,217,255,.95)}.tooltip-time{font-size:.85rem;font-weight:700;text-align:center;margin-bottom:6px;color:#000}.tooltip-actions{display:flex;justify-content:space-between;gap:5px;position:relative}.tooltip-action-btn{background-color:#007bff33;border:none;border-radius:3px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:6px;transition:background-color .2s;min-width:20px!important}.tooltip-action-btn:hover{background-color:#007bff66}.tooltip-action-btn svg{width:100%;height:100%;stroke:currentColor}.tooltip-action-btn.set-in svg,.tooltip-action-btn.set-out svg{width:100%;height:100%;margin:0 auto;fill:currentColor;stroke:none}.empty-space-tooltip{background-color:#fff;border-radius:6px;box-shadow:0 2px 8px #00000026;padding:8px;z-index:50;min-width:120px;text-align:center;position:relative}.empty-space-tooltip:after{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border-width:8px 8px 0;border-style:solid;border-color:white transparent transparent}.tooltip-action-btn.new-segment{width:auto;padding:6px 10px;display:flex;align-items:center;gap:5px}.tooltip-btn-text{font-size:.8rem;white-space:nowrap;color:#000}.icon-new-segment{width:20px;height:20px}.zoom-dropdown-container{position:relative}.zoom-button{display:flex;align-items:center;gap:6px;background-color:#6c757dcc;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-weight:500;cursor:pointer;transition:background-color .2s}.zoom-button:hover{background-color:#6c757d}.zoom-dropdown{background-color:#fff;border-radius:4px;box-shadow:0 2px 10px #00000026;max-height:300px;overflow-y:auto}.zoom-option{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:5px}.zoom-option:hover{background-color:#007bff1a}.zoom-option.selected{background-color:#007bff33;font-weight:500}.save-button,.save-copy-button,.save-segments-button{background-color:#007bffcc;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-weight:500;cursor:pointer;transition:background-color .2s}.save-button:hover,.save-copy-button:hover{background-color:#007bff}.save-copy-button{background-color:#6c757dcc}.save-copy-button:hover{background-color:#6c757d}.time-nav-label{font-weight:500;font-size:.9rem}.time-input{padding:6px 10px;border-radius:4px;border:1px solid #ccc;width:150px;font-family:monospace}.time-button-group{display:flex;gap:5px}.time-button{background-color:#6c757dcc;color:#fff;border:none;border-radius:4px;padding:6px 8px;font-size:.8rem;cursor:pointer;transition:background-color .2s}.time-button:hover{background-color:#6c757d}.timeline-controls{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;padding:12px;background-color:#f5f5f5;border-radius:6px;margin-top:15px}.time-navigation{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.controls-right{display:flex;align-items:center;gap:10px}@media (max-width: 768px){.timeline-controls{flex-direction:column;align-items:flex-start;gap:15px}.controls-right{margin-top:10px;width:100%;justify-content:flex-start;text-align:center;align-items:center;justify-content:center}}.timeline-header{display:flex;align-items:center;gap:20px;margin-bottom:10px;flex-wrap:wrap}.timeline-title{font-weight:700;margin-right:20px}.timeline-title-text{font-size:1.1rem}.current-time,.duration-time{white-space:nowrap}.time-code{font-family:monospace;font-weight:500}@media (max-width: 480px){.timeline-header{flex-direction:column;align-items:flex-start;gap:8px}.time-navigation{width:100%;flex-direction:column;align-items:flex-start;gap:10px}.time-button-group{width:100%;display:flex;justify-content:space-between;margin-top:10px}.controls-right{flex-wrap:wrap;gap:8px}.save-button,.save-copy-button{margin-top:8px;width:100%}.zoom-dropdown-container{width:100%}.zoom-button{width:100%;justify-content:center}} diff --git a/static/video_editor/video-editor.js b/static/video_editor/video-editor.js index 22da5558..a5003ec9 100644 --- a/static/video_editor/video-editor.js +++ b/static/video_editor/video-editor.js @@ -1,4 +1,4 @@ -(function(){"use strict";var dm={exports:{}},Kc={exports:{}},rl={exports:{}};rl.exports;var vm;function HS(){return vm||(vm=1,function(T,L){/** +(function(){"use strict";var dm={exports:{}},Kc={exports:{}},rl={exports:{}};rl.exports;var vm;function HS(){return vm||(vm=1,function(C,k){/** * @license React * react.development.js * @@ -6,29 +6,29 @@ * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var pe="18.3.1",Se=Symbol.for("react.element"),ve=Symbol.for("react.portal"),Ee=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),Z=Symbol.for("react.profiler"),ye=Symbol.for("react.provider"),ae=Symbol.for("react.context"),nt=Symbol.for("react.forward_ref"),q=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),ne=Symbol.for("react.memo"),Ne=Symbol.for("react.lazy"),kt=Symbol.for("react.offscreen"),xt=Symbol.iterator,Rt="@@iterator";function Ge(s){if(s===null||typeof s!="object")return null;var h=xt&&s[xt]||s[Rt];return typeof h=="function"?h:null}var xe={current:null},mt={transition:null},Re={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},ut={current:null},B={},Ot=null;function tt(s){Ot=s}B.setExtraStackFrame=function(s){Ot=s},B.getCurrentStack=null,B.getStackAddendum=function(){var s="";Ot&&(s+=Ot);var h=B.getCurrentStack;return h&&(s+=h()||""),s};var ze=!1,ee=!1,Ze=!1,X=!1,At=!1,Xe={ReactCurrentDispatcher:xe,ReactCurrentBatchConfig:mt,ReactCurrentOwner:ut};Xe.ReactDebugCurrentFrame=B,Xe.ReactCurrentActQueue=Re;function $(s){{for(var h=arguments.length,_=new Array(h>1?h-1:0),O=1;O1?h-1:0),O=1;O1){for(var Wt=Array(Nt),qt=0;qt1){for(var it=Array(qt),nn=0;nn is not supported and will be removed in a future major release. Did you mean to render instead?")),h.Provider},set:function(be){h.Provider=be}},_currentValue:{get:function(){return h._currentValue},set:function(be){h._currentValue=be}},_currentValue2:{get:function(){return h._currentValue2},set:function(be){h._currentValue2=be}},_threadCount:{get:function(){return h._threadCount},set:function(be){h._threadCount=be}},Consumer:{get:function(){return _||(_=!0,I("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),h.Consumer}},displayName:{get:function(){return h.displayName},set:function(be){K||($("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",be),K=!0)}}}),h.Consumer=Oe}return h._currentRenderer=null,h._currentRenderer2=null,h}var ya=-1,Kn=0,g=1,V=2;function k(s){if(s._status===ya){var h=s._result,_=h();if(_.then(function(Oe){if(s._status===Kn||s._status===ya){var be=s;be._status=g,be._result=Oe}},function(Oe){if(s._status===Kn||s._status===ya){var be=s;be._status=V,be._result=Oe}}),s._status===ya){var O=s;O._status=Kn,O._result=_}}if(s._status===g){var K=s._result;return K===void 0&&I(`lazy: Expected the result of a dynamic import() call. Instead received: %s + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var me="18.3.1",Se=Symbol.for("react.element"),ve=Symbol.for("react.portal"),Ee=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),Z=Symbol.for("react.profiler"),ye=Symbol.for("react.provider"),oe=Symbol.for("react.context"),rt=Symbol.for("react.forward_ref"),G=Symbol.for("react.suspense"),j=Symbol.for("react.suspense_list"),ne=Symbol.for("react.memo"),Ue=Symbol.for("react.lazy"),kt=Symbol.for("react.offscreen"),xt=Symbol.iterator,Rt="@@iterator";function Xe(s){if(s===null||typeof s!="object")return null;var h=xt&&s[xt]||s[Rt];return typeof h=="function"?h:null}var xe={current:null},mt={transition:null},Re={current:null,isBatchingLegacy:!1,didScheduleLegacyUpdate:!1},et={current:null},B={},Ot=null;function at(s){Ot=s}B.setExtraStackFrame=function(s){Ot=s},B.getCurrentStack=null,B.getStackAddendum=function(){var s="";Ot&&(s+=Ot);var h=B.getCurrentStack;return h&&(s+=h()||""),s};var Fe=!1,ee=!1,Je=!1,X=!1,At=!1,Be={ReactCurrentDispatcher:xe,ReactCurrentBatchConfig:mt,ReactCurrentOwner:et};Be.ReactDebugCurrentFrame=B,Be.ReactCurrentActQueue=Re;function I(s){{for(var h=arguments.length,M=new Array(h>1?h-1:0),O=1;O1?h-1:0),O=1;O1){for(var Wt=Array(jt),qt=0;qt1){for(var lt=Array(qt),nn=0;nn is not supported and will be removed in a future major release. Did you mean to render instead?")),h.Provider},set:function(be){h.Provider=be}},_currentValue:{get:function(){return h._currentValue},set:function(be){h._currentValue=be}},_currentValue2:{get:function(){return h._currentValue2},set:function(be){h._currentValue2=be}},_threadCount:{get:function(){return h._threadCount},set:function(be){h._threadCount=be}},Consumer:{get:function(){return M||(M=!0,$("Rendering is not supported and will be removed in a future major release. Did you mean to render instead?")),h.Consumer}},displayName:{get:function(){return h.displayName},set:function(be){K||(I("Setting `displayName` on Context.Consumer has no effect. You should set it directly on the context with Context.displayName = '%s'.",be),K=!0)}}}),h.Consumer=Oe}return h._currentRenderer=null,h._currentRenderer2=null,h}var ya=-1,Kn=0,y=1,F=2;function _(s){if(s._status===ya){var h=s._result,M=h();if(M.then(function(Oe){if(s._status===Kn||s._status===ya){var be=s;be._status=y,be._result=Oe}},function(Oe){if(s._status===Kn||s._status===ya){var be=s;be._status=F,be._result=Oe}}),s._status===ya){var O=s;O._status=Kn,O._result=M}}if(s._status===y){var K=s._result;return K===void 0&&$(`lazy: Expected the result of a dynamic import() call. Instead received: %s Your code should look like: const MyComponent = lazy(() => import('./MyComponent')) -Did you accidentally put curly braces around the import?`,K),"default"in K||I(`lazy: Expected the result of a dynamic import() call. Instead received: %s +Did you accidentally put curly braces around the import?`,K),"default"in K||$(`lazy: Expected the result of a dynamic import() call. Instead received: %s Your code should look like: - const MyComponent = lazy(() => import('./MyComponent'))`,K),K.default}else throw s._result}function S(s){var h={_status:ya,_result:s},_={$$typeof:Ne,_payload:h,_init:k};{var O,K;Object.defineProperties(_,{defaultProps:{configurable:!0,get:function(){return O},set:function(Oe){I("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),O=Oe,Object.defineProperty(_,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return K},set:function(Oe){I("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),K=Oe,Object.defineProperty(_,"propTypes",{enumerable:!0})}}})}return _}function R(s){s!=null&&s.$$typeof===ne?I("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof s!="function"?I("forwardRef requires a render function but was given %s.",s===null?"null":typeof s):s.length!==0&&s.length!==2&&I("forwardRef render functions accept exactly two parameters: props and ref. %s",s.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),s!=null&&(s.defaultProps!=null||s.propTypes!=null)&&I("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var h={$$typeof:nt,render:s};{var _;Object.defineProperty(h,"displayName",{enumerable:!1,configurable:!0,get:function(){return _},set:function(O){_=O,!s.name&&!s.displayName&&(s.displayName=O)}})}return h}var c;c=Symbol.for("react.module.reference");function p(s){return!!(typeof s=="string"||typeof s=="function"||s===Ee||s===Z||At||s===d||s===q||s===N||X||s===kt||ze||ee||Ze||typeof s=="object"&&s!==null&&(s.$$typeof===Ne||s.$$typeof===ne||s.$$typeof===ye||s.$$typeof===ae||s.$$typeof===nt||s.$$typeof===c||s.getModuleId!==void 0))}function E(s,h){p(s)||I("memo: The first argument must be a component. Instead received: %s",s===null?"null":typeof s);var _={$$typeof:ne,type:s,compare:h===void 0?null:h};{var O;Object.defineProperty(_,"displayName",{enumerable:!1,configurable:!0,get:function(){return O},set:function(K){O=K,!s.name&&!s.displayName&&(s.displayName=K)}})}return _}function w(){var s=xe.current;return s===null&&I(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: + const MyComponent = lazy(() => import('./MyComponent'))`,K),K.default}else throw s._result}function S(s){var h={_status:ya,_result:s},M={$$typeof:Ue,_payload:h,_init:_};{var O,K;Object.defineProperties(M,{defaultProps:{configurable:!0,get:function(){return O},set:function(Oe){$("React.lazy(...): It is not supported to assign `defaultProps` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),O=Oe,Object.defineProperty(M,"defaultProps",{enumerable:!0})}},propTypes:{configurable:!0,get:function(){return K},set:function(Oe){$("React.lazy(...): It is not supported to assign `propTypes` to a lazy component import. Either specify them where the component is defined, or create a wrapping component around it."),K=Oe,Object.defineProperty(M,"propTypes",{enumerable:!0})}}})}return M}function w(s){s!=null&&s.$$typeof===ne?$("forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))."):typeof s!="function"?$("forwardRef requires a render function but was given %s.",s===null?"null":typeof s):s.length!==0&&s.length!==2&&$("forwardRef render functions accept exactly two parameters: props and ref. %s",s.length===1?"Did you forget to use the ref parameter?":"Any additional parameter will be undefined."),s!=null&&(s.defaultProps!=null||s.propTypes!=null)&&$("forwardRef render functions do not support propTypes or defaultProps. Did you accidentally pass a React component?");var h={$$typeof:rt,render:s};{var M;Object.defineProperty(h,"displayName",{enumerable:!1,configurable:!0,get:function(){return M},set:function(O){M=O,!s.name&&!s.displayName&&(s.displayName=O)}})}return h}var c;c=Symbol.for("react.module.reference");function p(s){return!!(typeof s=="string"||typeof s=="function"||s===Ee||s===Z||At||s===d||s===G||s===j||X||s===kt||Fe||ee||Je||typeof s=="object"&&s!==null&&(s.$$typeof===Ue||s.$$typeof===ne||s.$$typeof===ye||s.$$typeof===oe||s.$$typeof===rt||s.$$typeof===c||s.getModuleId!==void 0))}function T(s,h){p(s)||$("memo: The first argument must be a component. Instead received: %s",s===null?"null":typeof s);var M={$$typeof:ne,type:s,compare:h===void 0?null:h};{var O;Object.defineProperty(M,"displayName",{enumerable:!1,configurable:!0,get:function(){return O},set:function(K){O=K,!s.name&&!s.displayName&&(s.displayName=K)}})}return M}function E(){var s=xe.current;return s===null&&$(`Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app -See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`),s}function P(s){var h=w();if(s._context!==void 0){var _=s._context;_.Consumer===s?I("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):_.Provider===s&&I("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return h.useContext(s)}function re(s){var h=w();return h.useState(s)}function H(s,h,_){var O=w();return O.useReducer(s,h,_)}function ce(s){var h=w();return h.useRef(s)}function lt(s,h){var _=w();return _.useEffect(s,h)}function ke(s,h){var _=w();return _.useInsertionEffect(s,h)}function rt(s,h){var _=w();return _.useLayoutEffect(s,h)}function fn(s,h){var _=w();return _.useCallback(s,h)}function _n(s,h){var _=w();return _.useMemo(s,h)}function en(s,h,_){var O=w();return O.useImperativeHandle(s,h,_)}function Ft(s,h){{var _=w();return _.useDebugValue(s,h)}}function _e(){var s=w();return s.useTransition()}function Dt(s){var h=w();return h.useDeferredValue(s)}function Zn(){var s=w();return s.useId()}function yr(s,h,_){var O=w();return O.useSyncExternalStore(s,h,_)}var Va=0,Br,ga,ba,$r,gi,dn,_t;function Sa(){}Sa.__reactDisabledLog=!0;function Ta(){{if(Va===0){Br=console.log,ga=console.info,ba=console.warn,$r=console.error,gi=console.group,dn=console.groupCollapsed,_t=console.groupEnd;var s={configurable:!0,enumerable:!0,value:Sa,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}Va++}}function sa(){{if(Va--,Va===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ke({},s,{value:Br}),info:Ke({},s,{value:ga}),warn:Ke({},s,{value:ba}),error:Ke({},s,{value:$r}),group:Ke({},s,{value:gi}),groupCollapsed:Ke({},s,{value:dn}),groupEnd:Ke({},s,{value:_t})})}Va<0&&I("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var bi=Xe.ReactCurrentDispatcher,Yr;function ao(s,h,_){{if(Yr===void 0)try{throw Error()}catch(K){var O=K.stack.trim().match(/\n( *(at )?)/);Yr=O&&O[1]||""}return` -`+Yr+s}}var Si=!1,ro;{var ol=typeof WeakMap=="function"?WeakMap:Map;ro=new ol}function Yu(s,h){if(!s||Si)return"";{var _=ro.get(s);if(_!==void 0)return _}var O;Si=!0;var K=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Oe;Oe=bi.current,bi.current=null,Ta();try{if(h){var be=function(){throw Error()};if(Object.defineProperty(be.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(be,[])}catch(vn){O=vn}Reflect.construct(s,[],be)}else{try{be.call()}catch(vn){O=vn}s.call(be.prototype)}}else{try{throw Error()}catch(vn){O=vn}s()}}catch(vn){if(vn&&O&&typeof vn.stack=="string"){for(var We=vn.stack.split(` +See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.`),s}function P(s){var h=E();if(s._context!==void 0){var M=s._context;M.Consumer===s?$("Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be removed in a future major release. Did you mean to call useContext(Context) instead?"):M.Provider===s&&$("Calling useContext(Context.Provider) is not supported. Did you mean to call useContext(Context) instead?")}return h.useContext(s)}function ae(s){var h=E();return h.useState(s)}function H(s,h,M){var O=E();return O.useReducer(s,h,M)}function le(s){var h=E();return h.useRef(s)}function Qe(s,h){var M=E();return M.useEffect(s,h)}function _e(s,h){var M=E();return M.useInsertionEffect(s,h)}function ot(s,h){var M=E();return M.useLayoutEffect(s,h)}function fn(s,h){var M=E();return M.useCallback(s,h)}function _n(s,h){var M=E();return M.useMemo(s,h)}function en(s,h,M){var O=E();return O.useImperativeHandle(s,h,M)}function Ft(s,h){{var M=E();return M.useDebugValue(s,h)}}function Me(){var s=E();return s.useTransition()}function Dt(s){var h=E();return h.useDeferredValue(s)}function Zn(){var s=E();return s.useId()}function yr(s,h,M){var O=E();return O.useSyncExternalStore(s,h,M)}var Va=0,Br,ga,ba,$r,gi,dn,_t;function Sa(){}Sa.__reactDisabledLog=!0;function Ta(){{if(Va===0){Br=console.log,ga=console.info,ba=console.warn,$r=console.error,gi=console.group,dn=console.groupCollapsed,_t=console.groupEnd;var s={configurable:!0,enumerable:!0,value:Sa,writable:!0};Object.defineProperties(console,{info:s,log:s,warn:s,error:s,group:s,groupCollapsed:s,groupEnd:s})}Va++}}function sa(){{if(Va--,Va===0){var s={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Ze({},s,{value:Br}),info:Ze({},s,{value:ga}),warn:Ze({},s,{value:ba}),error:Ze({},s,{value:$r}),group:Ze({},s,{value:gi}),groupCollapsed:Ze({},s,{value:dn}),groupEnd:Ze({},s,{value:_t})})}Va<0&&$("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var bi=Be.ReactCurrentDispatcher,Yr;function ao(s,h,M){{if(Yr===void 0)try{throw Error()}catch(K){var O=K.stack.trim().match(/\n( *(at )?)/);Yr=O&&O[1]||""}return` +`+Yr+s}}var Si=!1,ro;{var ol=typeof WeakMap=="function"?WeakMap:Map;ro=new ol}function Yu(s,h){if(!s||Si)return"";{var M=ro.get(s);if(M!==void 0)return M}var O;Si=!0;var K=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var Oe;Oe=bi.current,bi.current=null,Ta();try{if(h){var be=function(){throw Error()};if(Object.defineProperty(be.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(be,[])}catch(vn){O=vn}Reflect.construct(s,[],be)}else{try{be.call()}catch(vn){O=vn}s.call(be.prototype)}}else{try{throw Error()}catch(vn){O=vn}s()}}catch(vn){if(vn&&O&&typeof vn.stack=="string"){for(var qe=vn.stack.split(` `),ft=O.stack.split(` -`),Nt=We.length-1,Wt=ft.length-1;Nt>=1&&Wt>=0&&We[Nt]!==ft[Wt];)Wt--;for(;Nt>=1&&Wt>=0;Nt--,Wt--)if(We[Nt]!==ft[Wt]){if(Nt!==1||Wt!==1)do if(Nt--,Wt--,Wt<0||We[Nt]!==ft[Wt]){var qt=` -`+We[Nt].replace(" at new "," at ");return s.displayName&&qt.includes("")&&(qt=qt.replace("",s.displayName)),typeof s=="function"&&ro.set(s,qt),qt}while(Nt>=1&&Wt>=0);break}}}finally{Si=!1,bi.current=Oe,sa(),Error.prepareStackTrace=K}var it=s?s.displayName||s.name:"",nn=it?ao(it):"";return typeof s=="function"&&ro.set(s,nn),nn}function ll(s,h,_){return Yu(s,!1)}function af(s){var h=s.prototype;return!!(h&&h.isReactComponent)}function Ti(s,h,_){if(s==null)return"";if(typeof s=="function")return Yu(s,af(s));if(typeof s=="string")return ao(s);switch(s){case q:return ao("Suspense");case N:return ao("SuspenseList")}if(typeof s=="object")switch(s.$$typeof){case nt:return ll(s.render);case ne:return Ti(s.type,h,_);case Ne:{var O=s,K=O._payload,Oe=O._init;try{return Ti(Oe(K),h,_)}catch{}}}return""}var Iu={},ul=Xe.ReactDebugCurrentFrame;function Et(s){if(s){var h=s._owner,_=Ti(s.type,s._source,h?h.type:null);ul.setExtraStackFrame(_)}else ul.setExtraStackFrame(null)}function rf(s,h,_,O,K){{var Oe=Function.call.bind(le);for(var be in s)if(Oe(s,be)){var We=void 0;try{if(typeof s[be]!="function"){var ft=Error((O||"React class")+": "+_+" type `"+be+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[be]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ft.name="Invariant Violation",ft}We=s[be](h,be,O,_,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(Nt){We=Nt}We&&!(We instanceof Error)&&(Et(K),I("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",O||"React class",_,be,typeof We),Et(null)),We instanceof Error&&!(We.message in Iu)&&(Iu[We.message]=!0,Et(K),I("Failed %s type: %s",_,We.message),Et(null))}}}function gr(s){if(s){var h=s._owner,_=Ti(s.type,s._source,h?h.type:null);tt(_)}else tt(null)}var Qe;Qe=!1;function sl(){if(ut.current){var s=me(ut.current.type);if(s)return` +`),jt=qe.length-1,Wt=ft.length-1;jt>=1&&Wt>=0&&qe[jt]!==ft[Wt];)Wt--;for(;jt>=1&&Wt>=0;jt--,Wt--)if(qe[jt]!==ft[Wt]){if(jt!==1||Wt!==1)do if(jt--,Wt--,Wt<0||qe[jt]!==ft[Wt]){var qt=` +`+qe[jt].replace(" at new "," at ");return s.displayName&&qt.includes("")&&(qt=qt.replace("",s.displayName)),typeof s=="function"&&ro.set(s,qt),qt}while(jt>=1&&Wt>=0);break}}}finally{Si=!1,bi.current=Oe,sa(),Error.prepareStackTrace=K}var lt=s?s.displayName||s.name:"",nn=lt?ao(lt):"";return typeof s=="function"&&ro.set(s,nn),nn}function ll(s,h,M){return Yu(s,!1)}function af(s){var h=s.prototype;return!!(h&&h.isReactComponent)}function Ti(s,h,M){if(s==null)return"";if(typeof s=="function")return Yu(s,af(s));if(typeof s=="string")return ao(s);switch(s){case G:return ao("Suspense");case j:return ao("SuspenseList")}if(typeof s=="object")switch(s.$$typeof){case rt:return ll(s.render);case ne:return Ti(s.type,h,M);case Ue:{var O=s,K=O._payload,Oe=O._init;try{return Ti(Oe(K),h,M)}catch{}}}return""}var Iu={},ul=Be.ReactDebugCurrentFrame;function Et(s){if(s){var h=s._owner,M=Ti(s.type,s._source,h?h.type:null);ul.setExtraStackFrame(M)}else ul.setExtraStackFrame(null)}function rf(s,h,M,O,K){{var Oe=Function.call.bind(ue);for(var be in s)if(Oe(s,be)){var qe=void 0;try{if(typeof s[be]!="function"){var ft=Error((O||"React class")+": "+M+" type `"+be+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof s[be]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw ft.name="Invariant Violation",ft}qe=s[be](h,be,O,M,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(jt){qe=jt}qe&&!(qe instanceof Error)&&(Et(K),$("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",O||"React class",M,be,typeof qe),Et(null)),qe instanceof Error&&!(qe.message in Iu)&&(Iu[qe.message]=!0,Et(K),$("Failed %s type: %s",M,qe.message),Et(null))}}}function gr(s){if(s){var h=s._owner,M=Ti(s.type,s._source,h?h.type:null);at(M)}else at(null)}var Ke;Ke=!1;function sl(){if(et.current){var s=pe(et.current.type);if(s)return` -Check the render method of \``+s+"`."}return""}function Jn(s){if(s!==void 0){var h=s.fileName.replace(/^.*[\\\/]/,""),_=s.lineNumber;return` +Check the render method of \``+s+"`."}return""}function Jn(s){if(s!==void 0){var h=s.fileName.replace(/^.*[\\\/]/,""),M=s.lineNumber;return` -Check your code at `+h+":"+_+"."}return""}function Ei(s){return s!=null?Jn(s.__source):""}var Ir={};function of(s){var h=sl();if(!h){var _=typeof s=="string"?s:s.displayName||s.name;_&&(h=` +Check your code at `+h+":"+M+"."}return""}function Ei(s){return s!=null?Jn(s.__source):""}var Ir={};function of(s){var h=sl();if(!h){var M=typeof s=="string"?s:s.displayName||s.name;M&&(h=` -Check the top-level render call using <`+_+">.")}return h}function Mn(s,h){if(!(!s._store||s._store.validated||s.key!=null)){s._store.validated=!0;var _=of(h);if(!Ir[_]){Ir[_]=!0;var O="";s&&s._owner&&s._owner!==ut.current&&(O=" It was passed a child from "+me(s._owner.type)+"."),gr(s),I('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',_,O),gr(null)}}}function tn(s,h){if(typeof s=="object"){if(Xt(s))for(var _=0;_",K=" Did you accidentally export a JSX literal instead of a component?"):be=typeof s,I("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",be,K)}var We=Pe.apply(this,arguments);if(We==null)return We;if(O)for(var ft=2;ft10&&$("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),O._updatedFibers.clear()}}}var fl=!1,io=null;function uf(s){if(io===null)try{var h=("require"+Math.random()).slice(0,7),_=T&&T[h];io=_.call(T,"timers").setImmediate}catch{io=function(K){fl===!1&&(fl=!0,typeof MessageChannel>"u"&&I("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Oe=new MessageChannel;Oe.port1.onmessage=K,Oe.port2.postMessage(void 0)}}return io(s)}var Wr=0,Ci=!1;function dl(s){{var h=Wr;Wr++,Re.current===null&&(Re.current=[]);var _=Re.isBatchingLegacy,O;try{if(Re.isBatchingLegacy=!0,O=s(),!_&&Re.didScheduleLegacyUpdate){var K=Re.current;K!==null&&(Re.didScheduleLegacyUpdate=!1,uo(K))}}catch(it){throw br(h),it}finally{Re.isBatchingLegacy=_}if(O!==null&&typeof O=="object"&&typeof O.then=="function"){var Oe=O,be=!1,We={then:function(it,nn){be=!0,Oe.then(function(vn){br(h),Wr===0?oo(vn,it,nn):it(vn)},function(vn){br(h),nn(vn)})}};return!Ci&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){be||(Ci=!0,I("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),We}else{var ft=O;if(br(h),Wr===0){var Nt=Re.current;Nt!==null&&(uo(Nt),Re.current=null);var Wt={then:function(it,nn){Re.current===null?(Re.current=[],oo(ft,it,nn)):it(ft)}};return Wt}else{var qt={then:function(it,nn){it(ft)}};return qt}}}}function br(s){s!==Wr-1&&I("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),Wr=s}function oo(s,h,_){{var O=Re.current;if(O!==null)try{uo(O),uf(function(){O.length===0?(Re.current=null,h(s)):oo(s,h,_)})}catch(K){_(K)}else h(s)}}var lo=!1;function uo(s){if(!lo){lo=!0;var h=0;try{for(;h.")}return h}function Mn(s,h){if(!(!s._store||s._store.validated||s.key!=null)){s._store.validated=!0;var M=of(h);if(!Ir[M]){Ir[M]=!0;var O="";s&&s._owner&&s._owner!==et.current&&(O=" It was passed a child from "+pe(s._owner.type)+"."),gr(s),$('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',M,O),gr(null)}}}function tn(s,h){if(typeof s=="object"){if(Xt(s))for(var M=0;M",K=" Did you accidentally export a JSX literal instead of a component?"):be=typeof s,$("React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",be,K)}var qe=Pe.apply(this,arguments);if(qe==null)return qe;if(O)for(var ft=2;ft10&&I("Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table."),O._updatedFibers.clear()}}}var fl=!1,io=null;function uf(s){if(io===null)try{var h=("require"+Math.random()).slice(0,7),M=C&&C[h];io=M.call(C,"timers").setImmediate}catch{io=function(K){fl===!1&&(fl=!0,typeof MessageChannel>"u"&&$("This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning."));var Oe=new MessageChannel;Oe.port1.onmessage=K,Oe.port2.postMessage(void 0)}}return io(s)}var Wr=0,Ci=!1;function dl(s){{var h=Wr;Wr++,Re.current===null&&(Re.current=[]);var M=Re.isBatchingLegacy,O;try{if(Re.isBatchingLegacy=!0,O=s(),!M&&Re.didScheduleLegacyUpdate){var K=Re.current;K!==null&&(Re.didScheduleLegacyUpdate=!1,uo(K))}}catch(lt){throw br(h),lt}finally{Re.isBatchingLegacy=M}if(O!==null&&typeof O=="object"&&typeof O.then=="function"){var Oe=O,be=!1,qe={then:function(lt,nn){be=!0,Oe.then(function(vn){br(h),Wr===0?oo(vn,lt,nn):lt(vn)},function(vn){br(h),nn(vn)})}};return!Ci&&typeof Promise<"u"&&Promise.resolve().then(function(){}).then(function(){be||(Ci=!0,$("You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);"))}),qe}else{var ft=O;if(br(h),Wr===0){var jt=Re.current;jt!==null&&(uo(jt),Re.current=null);var Wt={then:function(lt,nn){Re.current===null?(Re.current=[],oo(ft,lt,nn)):lt(ft)}};return Wt}else{var qt={then:function(lt,nn){lt(ft)}};return qt}}}}function br(s){s!==Wr-1&&$("You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. "),Wr=s}function oo(s,h,M){{var O=Re.current;if(O!==null)try{uo(O),uf(function(){O.length===0?(Re.current=null,h(s)):oo(s,h,M)})}catch(K){M(K)}else h(s)}}var lo=!1;function uo(s){if(!lo){lo=!0;var h=0;try{for(;h.")}return h}function Mn(s,h){if(!( * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */return function(){var T=Zc(),L=Symbol.for("react.element"),pe=Symbol.for("react.portal"),Se=Symbol.for("react.fragment"),ve=Symbol.for("react.strict_mode"),Ee=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),Z=Symbol.for("react.context"),ye=Symbol.for("react.forward_ref"),ae=Symbol.for("react.suspense"),nt=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),N=Symbol.for("react.lazy"),ne=Symbol.for("react.offscreen"),Ne=Symbol.iterator,kt="@@iterator";function xt(c){if(c===null||typeof c!="object")return null;var p=Ne&&c[Ne]||c[kt];return typeof p=="function"?p:null}var Rt=T.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function Ge(c){{for(var p=arguments.length,E=new Array(p>1?p-1:0),w=1;w=1&&rt>=0&&ce[ke]!==lt[rt];)rt--;for(;ke>=1&&rt>=0;ke--,rt--)if(ce[ke]!==lt[rt]){if(ke!==1||rt!==1)do if(ke--,rt--,rt<0||ce[ke]!==lt[rt]){var fn=` -`+ce[ke].replace(" at new "," at ");return c.displayName&&fn.includes("")&&(fn=fn.replace("",c.displayName)),typeof c=="function"&&Ie.set(c,fn),fn}while(ke>=1&&rt>=0);break}}}finally{at=!1,$t.current=re,st(),Error.prepareStackTrace=P}var _n=c?c.displayName||c.name:"",en=_n?jt(_n):"";return typeof c=="function"&&Ie.set(c,en),en}function Xt(c,p,E){return xn(c,!1)}function cn(c){var p=c.prototype;return!!(p&&p.isReactComponent)}function Yt(c,p,E){if(c==null)return"";if(typeof c=="function")return xn(c,cn(c));if(typeof c=="string")return jt(c);switch(c){case ae:return jt("Suspense");case nt:return jt("SuspenseList")}if(typeof c=="object")switch(c.$$typeof){case ye:return Xt(c.render);case q:return Yt(c.type,p,E);case N:{var w=c,P=w._payload,re=w._init;try{return Yt(re(P),p,E)}catch{}}}return""}var an=Object.prototype.hasOwnProperty,Rn={},U=Rt.ReactDebugCurrentFrame;function W(c){if(c){var p=c._owner,E=Yt(c.type,c._source,p?p.type:null);U.setExtraStackFrame(E)}else U.setExtraStackFrame(null)}function me(c,p,E,w,P){{var re=Function.call.bind(an);for(var H in c)if(re(c,H)){var ce=void 0;try{if(typeof c[H]!="function"){var lt=Error((w||"React class")+": "+E+" type `"+H+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof c[H]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw lt.name="Invariant Violation",lt}ce=c[H](p,H,w,E,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(ke){ce=ke}ce&&!(ce instanceof Error)&&(W(P),Ge("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",w||"React class",E,H,typeof ce),W(null)),ce instanceof Error&&!(ce.message in Rn)&&(Rn[ce.message]=!0,W(P),Ge("Failed %s type: %s",E,ce.message),W(null))}}}var le=Array.isArray;function Ce(c){return le(c)}function De(c){{var p=typeof Symbol=="function"&&Symbol.toStringTag,E=p&&c[Symbol.toStringTag]||c.constructor.name||"Object";return E}}function yt(c){try{return Me(c),!1}catch{return!0}}function Me(c){return""+c}function ct(c){if(yt(c))return Ge("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",De(c)),Me(c)}var wt=Rt.ReactCurrentOwner,un={key:!0,ref:!0,__self:!0,__source:!0},wn,Q;function ge(c){if(an.call(c,"ref")){var p=Object.getOwnPropertyDescriptor(c,"ref").get;if(p&&p.isReactWarning)return!1}return c.ref!==void 0}function Pe(c){if(an.call(c,"key")){var p=Object.getOwnPropertyDescriptor(c,"key").get;if(p&&p.isReactWarning)return!1}return c.key!==void 0}function gt(c,p){typeof c.ref=="string"&&wt.current}function Pt(c,p){{var E=function(){wn||(wn=!0,Ge("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};E.isReactWarning=!0,Object.defineProperty(c,"key",{get:E,configurable:!0})}}function Qt(c,p){{var E=function(){Q||(Q=!0,Ge("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};E.isReactWarning=!0,Object.defineProperty(c,"ref",{get:E,configurable:!0})}}var Kt=function(c,p,E,w,P,re,H){var ce={$$typeof:L,type:c,key:p,ref:E,props:H,_owner:re};return ce._store={},Object.defineProperty(ce._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(ce,"_self",{configurable:!1,enumerable:!1,writable:!1,value:w}),Object.defineProperty(ce,"_source",{configurable:!1,enumerable:!1,writable:!1,value:P}),Object.freeze&&(Object.freeze(ce.props),Object.freeze(ce)),ce};function Dn(c,p,E,w,P){{var re,H={},ce=null,lt=null;E!==void 0&&(ct(E),ce=""+E),Pe(p)&&(ct(p.key),ce=""+p.key),ge(p)&&(lt=p.ref,gt(p,P));for(re in p)an.call(p,re)&&!un.hasOwnProperty(re)&&(H[re]=p[re]);if(c&&c.defaultProps){var ke=c.defaultProps;for(re in ke)H[re]===void 0&&(H[re]=ke[re])}if(ce||lt){var rt=typeof c=="function"?c.displayName||c.name||"Unknown":c;ce&&Pt(H,rt),lt&&Qt(H,rt)}return Kt(c,ce,lt,P,w,wt.current,H)}}var It=Rt.ReactCurrentOwner,Vt=Rt.ReactDebugCurrentFrame;function bt(c){if(c){var p=c._owner,E=Yt(c.type,c._source,p?p.type:null);Vt.setExtraStackFrame(E)}else Vt.setExtraStackFrame(null)}var ua;ua=!1;function ha(c){return typeof c=="object"&&c!==null&&c.$$typeof===L}function Yn(){{if(It.current){var c=X(It.current.type);if(c)return` + */return function(){var C=Zc(),k=Symbol.for("react.element"),me=Symbol.for("react.portal"),Se=Symbol.for("react.fragment"),ve=Symbol.for("react.strict_mode"),Ee=Symbol.for("react.profiler"),d=Symbol.for("react.provider"),Z=Symbol.for("react.context"),ye=Symbol.for("react.forward_ref"),oe=Symbol.for("react.suspense"),rt=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),ne=Symbol.for("react.offscreen"),Ue=Symbol.iterator,kt="@@iterator";function xt(c){if(c===null||typeof c!="object")return null;var p=Ue&&c[Ue]||c[kt];return typeof p=="function"?p:null}var Rt=C.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;function Xe(c){{for(var p=arguments.length,T=new Array(p>1?p-1:0),E=1;E=1&&ot>=0&&le[_e]!==Qe[ot];)ot--;for(;_e>=1&&ot>=0;_e--,ot--)if(le[_e]!==Qe[ot]){if(_e!==1||ot!==1)do if(_e--,ot--,ot<0||le[_e]!==Qe[ot]){var fn=` +`+le[_e].replace(" at new "," at ");return c.displayName&&fn.includes("")&&(fn=fn.replace("",c.displayName)),typeof c=="function"&&We.set(c,fn),fn}while(_e>=1&&ot>=0);break}}}finally{it=!1,$t.current=ae,st(),Error.prepareStackTrace=P}var _n=c?c.displayName||c.name:"",en=_n?Nt(_n):"";return typeof c=="function"&&We.set(c,en),en}function Xt(c,p,T){return xn(c,!1)}function cn(c){var p=c.prototype;return!!(p&&p.isReactComponent)}function Yt(c,p,T){if(c==null)return"";if(typeof c=="function")return xn(c,cn(c));if(typeof c=="string")return Nt(c);switch(c){case oe:return Nt("Suspense");case rt:return Nt("SuspenseList")}if(typeof c=="object")switch(c.$$typeof){case ye:return Xt(c.render);case G:return Yt(c.type,p,T);case j:{var E=c,P=E._payload,ae=E._init;try{return Yt(ae(P),p,T)}catch{}}}return""}var an=Object.prototype.hasOwnProperty,Rn={},U=Rt.ReactDebugCurrentFrame;function Y(c){if(c){var p=c._owner,T=Yt(c.type,c._source,p?p.type:null);U.setExtraStackFrame(T)}else U.setExtraStackFrame(null)}function pe(c,p,T,E,P){{var ae=Function.call.bind(an);for(var H in c)if(ae(c,H)){var le=void 0;try{if(typeof c[H]!="function"){var Qe=Error((E||"React class")+": "+T+" type `"+H+"` is invalid; it must be a function, usually from the `prop-types` package, but received `"+typeof c[H]+"`.This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.");throw Qe.name="Invariant Violation",Qe}le=c[H](p,H,E,T,null,"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED")}catch(_e){le=_e}le&&!(le instanceof Error)&&(Y(P),Xe("%s: type specification of %s `%s` is invalid; the type checker function must return `null` or an `Error` but returned a %s. You may have forgotten to pass an argument to the type checker creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and shape all require an argument).",E||"React class",T,H,typeof le),Y(null)),le instanceof Error&&!(le.message in Rn)&&(Rn[le.message]=!0,Y(P),Xe("Failed %s type: %s",T,le.message),Y(null))}}}var ue=Array.isArray;function Ce(c){return ue(c)}function De(c){{var p=typeof Symbol=="function"&&Symbol.toStringTag,T=p&&c[Symbol.toStringTag]||c.constructor.name||"Object";return T}}function yt(c){try{return Le(c),!1}catch{return!0}}function Le(c){return""+c}function ct(c){if(yt(c))return Xe("The provided key is an unsupported type %s. This value must be coerced to a string before before using it here.",De(c)),Le(c)}var wt=Rt.ReactCurrentOwner,un={key:!0,ref:!0,__self:!0,__source:!0},wn,Q;function ge(c){if(an.call(c,"ref")){var p=Object.getOwnPropertyDescriptor(c,"ref").get;if(p&&p.isReactWarning)return!1}return c.ref!==void 0}function Pe(c){if(an.call(c,"key")){var p=Object.getOwnPropertyDescriptor(c,"key").get;if(p&&p.isReactWarning)return!1}return c.key!==void 0}function gt(c,p){typeof c.ref=="string"&&wt.current}function Pt(c,p){{var T=function(){wn||(wn=!0,Xe("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};T.isReactWarning=!0,Object.defineProperty(c,"key",{get:T,configurable:!0})}}function Qt(c,p){{var T=function(){Q||(Q=!0,Xe("%s: `ref` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://reactjs.org/link/special-props)",p))};T.isReactWarning=!0,Object.defineProperty(c,"ref",{get:T,configurable:!0})}}var Kt=function(c,p,T,E,P,ae,H){var le={$$typeof:k,type:c,key:p,ref:T,props:H,_owner:ae};return le._store={},Object.defineProperty(le._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:!1}),Object.defineProperty(le,"_self",{configurable:!1,enumerable:!1,writable:!1,value:E}),Object.defineProperty(le,"_source",{configurable:!1,enumerable:!1,writable:!1,value:P}),Object.freeze&&(Object.freeze(le.props),Object.freeze(le)),le};function Dn(c,p,T,E,P){{var ae,H={},le=null,Qe=null;T!==void 0&&(ct(T),le=""+T),Pe(p)&&(ct(p.key),le=""+p.key),ge(p)&&(Qe=p.ref,gt(p,P));for(ae in p)an.call(p,ae)&&!un.hasOwnProperty(ae)&&(H[ae]=p[ae]);if(c&&c.defaultProps){var _e=c.defaultProps;for(ae in _e)H[ae]===void 0&&(H[ae]=_e[ae])}if(le||Qe){var ot=typeof c=="function"?c.displayName||c.name||"Unknown":c;le&&Pt(H,ot),Qe&&Qt(H,ot)}return Kt(c,le,Qe,P,E,wt.current,H)}}var It=Rt.ReactCurrentOwner,Vt=Rt.ReactDebugCurrentFrame;function bt(c){if(c){var p=c._owner,T=Yt(c.type,c._source,p?p.type:null);Vt.setExtraStackFrame(T)}else Vt.setExtraStackFrame(null)}var ua;ua=!1;function ha(c){return typeof c=="object"&&c!==null&&c.$$typeof===k}function Yn(){{if(It.current){var c=X(It.current.type);if(c)return` -Check the render method of \``+c+"`."}return""}}function nr(c){return""}var Vr={};function Pr(c){{var p=Yn();if(!p){var E=typeof c=="string"?c:c.displayName||c.name;E&&(p=` +Check the render method of \``+c+"`."}return""}}function nr(c){return""}var Vr={};function Pr(c){{var p=Yn();if(!p){var T=typeof c=="string"?c:c.displayName||c.name;T&&(p=` -Check the top-level render call using <`+E+">.")}return p}}function hr(c,p){{if(!c._store||c._store.validated||c.key!=null)return;c._store.validated=!0;var E=Pr(p);if(Vr[E])return;Vr[E]=!0;var w="";c&&c._owner&&c._owner!==It.current&&(w=" It was passed a child from "+X(c._owner.type)+"."),bt(c),Ge('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',E,w),bt(null)}}function Ha(c,p){{if(typeof c!="object")return;if(Ce(c))for(var E=0;E",ce=" Did you accidentally export a JSX literal instead of a component?"):ke=typeof c,Ge("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",ke,ce)}var rt=Dn(c,p,E,P,re);if(rt==null)return rt;if(H){var fn=p.children;if(fn!==void 0)if(w)if(Ce(fn)){for(var _n=0;_n0?"{key: someKey, "+Ft.join(": ..., ")+": ...}":"{key: someKey}";if(!Kn[en+_e]){var Dt=Ft.length>0?"{"+Ft.join(": ..., ")+": ...}":"{}";Ge(`A props object containing a "key" prop is being spread into JSX: +Check the top-level render call using <`+T+">.")}return p}}function hr(c,p){{if(!c._store||c._store.validated||c.key!=null)return;c._store.validated=!0;var T=Pr(p);if(Vr[T])return;Vr[T]=!0;var E="";c&&c._owner&&c._owner!==It.current&&(E=" It was passed a child from "+X(c._owner.type)+"."),bt(c),Xe('Each child in a list should have a unique "key" prop.%s%s See https://reactjs.org/link/warning-keys for more information.',T,E),bt(null)}}function Ha(c,p){{if(typeof c!="object")return;if(Ce(c))for(var T=0;T",le=" Did you accidentally export a JSX literal instead of a component?"):_e=typeof c,Xe("React.jsx: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: %s.%s",_e,le)}var ot=Dn(c,p,T,P,ae);if(ot==null)return ot;if(H){var fn=p.children;if(fn!==void 0)if(E)if(Ce(fn)){for(var _n=0;_n0?"{key: someKey, "+Ft.join(": ..., ")+": ...}":"{key: someKey}";if(!Kn[en+Me]){var Dt=Ft.length>0?"{"+Ft.join(": ..., ")+": ...}":"{}";Xe(`A props object containing a "key" prop is being spread into JSX: let props = %s; <%s {...props} /> React keys must be passed directly to JSX without using spread: let props = %s; - <%s key={someKey} {...props} />`,_e,en,Dt,en),Kn[en+_e]=!0}}return c===Se?ya(rt):Fa(rt),rt}}function V(c,p,E){return g(c,p,E,!0)}function k(c,p,E){return g(c,p,E,!1)}var S=k,R=V;il.Fragment=Se,il.jsx=S,il.jsxs=R}(),il}dm.exports=FS();var m=dm.exports,hm={exports:{}},Jc={exports:{}},ef={},ym;function VS(){return ym||(ym=1,function(T){/** + <%s key={someKey} {...props} />`,Me,en,Dt,en),Kn[en+Me]=!0}}return c===Se?ya(ot):Fa(ot),ot}}function F(c,p,T){return y(c,p,T,!0)}function _(c,p,T){return y(c,p,T,!1)}var S=_,w=F;il.Fragment=Se,il.jsx=S,il.jsxs=w}(),il}dm.exports=FS();var m=dm.exports,hm={exports:{}},Jc={exports:{}},ef={},ym;function VS(){return ym||(ym=1,function(C){/** * @license React * scheduler.development.js * @@ -57,7 +57,7 @@ React keys must be passed directly to JSX without using spread: * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var L=!1,pe=5;function Se(Q,ge){var Pe=Q.length;Q.push(ge),d(Q,ge,Pe)}function ve(Q){return Q.length===0?null:Q[0]}function Ee(Q){if(Q.length===0)return null;var ge=Q[0],Pe=Q.pop();return Pe!==ge&&(Q[0]=Pe,Z(Q,Pe,0)),ge}function d(Q,ge,Pe){for(var gt=Pe;gt>0;){var Pt=gt-1>>>1,Qt=Q[Pt];if(ye(Qt,ge)>0)Q[Pt]=ge,Q[gt]=Qt,gt=Pt;else return}}function Z(Q,ge,Pe){for(var gt=Pe,Pt=Q.length,Qt=Pt>>>1;gtPe&&(!Q||U()));){var gt=Ze.callback;if(typeof gt=="function"){Ze.callback=null,X=Ze.priorityLevel;var Pt=Ze.expirationTime<=Pe,Qt=gt(Pt);Pe=T.unstable_now(),typeof Qt=="function"?Ze.callback=Qt:Ze===ve(tt)&&Ee(tt),et(Pe)}else Ee(tt);Ze=ve(tt)}if(Ze!==null)return!0;var Kt=ve(ze);return Kt!==null&&ct(ht,Kt.startTime-Pe),!1}function Ae(Q,ge){switch(Q){case ae:case nt:case q:case N:case ne:break;default:Q=q}var Pe=X;X=Q;try{return ge()}finally{X=Pe}}function st(Q){var ge;switch(X){case ae:case nt:case q:ge=q;break;default:ge=X;break}var Pe=X;X=ge;try{return Q()}finally{X=Pe}}function $t(Q){var ge=X;return function(){var Pe=X;X=ge;try{return Q.apply(this,arguments)}finally{X=Pe}}}function Ye(Q,ge,Pe){var gt=T.unstable_now(),Pt;if(typeof Pe=="object"&&Pe!==null){var Qt=Pe.delay;typeof Qt=="number"&&Qt>0?Pt=gt+Qt:Pt=gt}else Pt=gt;var Kt;switch(Q){case ae:Kt=mt;break;case nt:Kt=Re;break;case ne:Kt=Ot;break;case N:Kt=B;break;case q:default:Kt=ut;break}var Dn=Pt+Kt,It={id:ee++,callback:ge,priorityLevel:Q,startTime:Pt,expirationTime:Dn,sortIndex:-1};return Pt>gt?(It.sortIndex=Pt,Se(ze,It),ve(tt)===null&&It===ve(ze)&&($?wt():$=!0,ct(ht,Pt-gt))):(It.sortIndex=Dn,Se(tt,It),!Xe&&!At&&(Xe=!0,Me(Ke))),It}function jt(){}function at(){!Xe&&!At&&(Xe=!0,Me(Ke))}function Ie(){return ve(tt)}function Jt(Q){Q.callback=null}function xn(){return X}var Xt=!1,cn=null,Yt=-1,an=pe,Rn=-1;function U(){var Q=T.unstable_now()-Rn;return!(Q125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}Q>0?an=Math.floor(1e3/Q):an=pe}var le=function(){if(cn!==null){var Q=T.unstable_now();Rn=Q;var ge=!0,Pe=!0;try{Pe=cn(ge,Q)}finally{Pe?Ce():(Xt=!1,cn=null)}}else Xt=!1},Ce;if(typeof Fe=="function")Ce=function(){Fe(le)};else if(typeof MessageChannel<"u"){var De=new MessageChannel,yt=De.port2;De.port1.onmessage=le,Ce=function(){yt.postMessage(null)}}else Ce=function(){I(le,0)};function Me(Q){cn=Q,Xt||(Xt=!0,Ce())}function ct(Q,ge){Yt=I(function(){Q(T.unstable_now())},ge)}function wt(){He(Yt),Yt=-1}var un=W,wn=null;T.unstable_IdlePriority=ne,T.unstable_ImmediatePriority=ae,T.unstable_LowPriority=N,T.unstable_NormalPriority=q,T.unstable_Profiling=wn,T.unstable_UserBlockingPriority=nt,T.unstable_cancelCallback=Jt,T.unstable_continueExecution=at,T.unstable_forceFrameRate=me,T.unstable_getCurrentPriorityLevel=xn,T.unstable_getFirstCallbackNode=Ie,T.unstable_next=st,T.unstable_pauseExecution=jt,T.unstable_requestPaint=un,T.unstable_runWithPriority=Ae,T.unstable_scheduleCallback=Ye,T.unstable_shouldYield=U,T.unstable_wrapCallback=$t,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)})()}(ef)),ef}var gm;function PS(){return gm||(gm=1,Jc.exports=VS()),Jc.exports}var la={},bm;function BS(){if(bm)return la;bm=1;/** + */(function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var k=!1,me=5;function Se(Q,ge){var Pe=Q.length;Q.push(ge),d(Q,ge,Pe)}function ve(Q){return Q.length===0?null:Q[0]}function Ee(Q){if(Q.length===0)return null;var ge=Q[0],Pe=Q.pop();return Pe!==ge&&(Q[0]=Pe,Z(Q,Pe,0)),ge}function d(Q,ge,Pe){for(var gt=Pe;gt>0;){var Pt=gt-1>>>1,Qt=Q[Pt];if(ye(Qt,ge)>0)Q[Pt]=ge,Q[gt]=Qt,gt=Pt;else return}}function Z(Q,ge,Pe){for(var gt=Pe,Pt=Q.length,Qt=Pt>>>1;gtPe&&(!Q||U()));){var gt=Je.callback;if(typeof gt=="function"){Je.callback=null,X=Je.priorityLevel;var Pt=Je.expirationTime<=Pe,Qt=gt(Pt);Pe=C.unstable_now(),typeof Qt=="function"?Je.callback=Qt:Je===ve(at)&&Ee(at),nt(Pe)}else Ee(at);Je=ve(at)}if(Je!==null)return!0;var Kt=ve(Fe);return Kt!==null&&ct(ht,Kt.startTime-Pe),!1}function Ne(Q,ge){switch(Q){case oe:case rt:case G:case j:case ne:break;default:Q=G}var Pe=X;X=Q;try{return ge()}finally{X=Pe}}function st(Q){var ge;switch(X){case oe:case rt:case G:ge=G;break;default:ge=X;break}var Pe=X;X=ge;try{return Q()}finally{X=Pe}}function $t(Q){var ge=X;return function(){var Pe=X;X=ge;try{return Q.apply(this,arguments)}finally{X=Pe}}}function Ie(Q,ge,Pe){var gt=C.unstable_now(),Pt;if(typeof Pe=="object"&&Pe!==null){var Qt=Pe.delay;typeof Qt=="number"&&Qt>0?Pt=gt+Qt:Pt=gt}else Pt=gt;var Kt;switch(Q){case oe:Kt=mt;break;case rt:Kt=Re;break;case ne:Kt=Ot;break;case j:Kt=B;break;case G:default:Kt=et;break}var Dn=Pt+Kt,It={id:ee++,callback:ge,priorityLevel:Q,startTime:Pt,expirationTime:Dn,sortIndex:-1};return Pt>gt?(It.sortIndex=Pt,Se(Fe,It),ve(at)===null&&It===ve(Fe)&&(I?wt():I=!0,ct(ht,Pt-gt))):(It.sortIndex=Dn,Se(at,It),!Be&&!At&&(Be=!0,Le(Ze))),It}function Nt(){}function it(){!Be&&!At&&(Be=!0,Le(Ze))}function We(){return ve(at)}function Jt(Q){Q.callback=null}function xn(){return X}var Xt=!1,cn=null,Yt=-1,an=me,Rn=-1;function U(){var Q=C.unstable_now()-Rn;return!(Q125){console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported");return}Q>0?an=Math.floor(1e3/Q):an=me}var ue=function(){if(cn!==null){var Q=C.unstable_now();Rn=Q;var ge=!0,Pe=!0;try{Pe=cn(ge,Q)}finally{Pe?Ce():(Xt=!1,cn=null)}}else Xt=!1},Ce;if(typeof Ve=="function")Ce=function(){Ve(ue)};else if(typeof MessageChannel<"u"){var De=new MessageChannel,yt=De.port2;De.port1.onmessage=ue,Ce=function(){yt.postMessage(null)}}else Ce=function(){$(ue,0)};function Le(Q){cn=Q,Xt||(Xt=!0,Ce())}function ct(Q,ge){Yt=$(function(){Q(C.unstable_now())},ge)}function wt(){He(Yt),Yt=-1}var un=Y,wn=null;C.unstable_IdlePriority=ne,C.unstable_ImmediatePriority=oe,C.unstable_LowPriority=j,C.unstable_NormalPriority=G,C.unstable_Profiling=wn,C.unstable_UserBlockingPriority=rt,C.unstable_cancelCallback=Jt,C.unstable_continueExecution=it,C.unstable_forceFrameRate=pe,C.unstable_getCurrentPriorityLevel=xn,C.unstable_getFirstCallbackNode=We,C.unstable_next=st,C.unstable_pauseExecution=Nt,C.unstable_requestPaint=un,C.unstable_runWithPriority=Ne,C.unstable_scheduleCallback=Ie,C.unstable_shouldYield=U,C.unstable_wrapCallback=$t,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error)})()}(ef)),ef}var gm;function PS(){return gm||(gm=1,Jc.exports=VS()),Jc.exports}var la={},bm;function BS(){if(bm)return la;bm=1;/** * @license React * react-dom.development.js * @@ -65,15 +65,15 @@ React keys must be passed directly to JSX without using spread: * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */return function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var T=Zc(),L=PS(),pe=T.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Se=!1;function ve(e){Se=e}function Ee(e){if(!Se){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a1?t-1:0),a=1;a2&&(e[0]==="o"||e[0]==="O")&&(e[1]==="n"||e[1]==="N")}function Kt(e,t,n,a){if(n!==null&&n.type===Ce)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":{if(a)return!1;if(n!==null)return!n.acceptsBooleans;var r=e.toLowerCase().slice(0,5);return r!=="data-"&&r!=="aria-"}default:return!1}}function Dn(e,t,n,a){if(t===null||typeof t>"u"||Kt(e,t,n,a))return!0;if(a)return!1;if(n!==null)switch(n.type){case Me:return!t;case ct:return t===!1;case wt:return isNaN(t);case un:return isNaN(t)||t<1}return!1}function It(e){return bt.hasOwnProperty(e)?bt[e]:null}function Vt(e,t,n,a,r,i,o){this.acceptsBooleans=t===yt||t===Me||t===ct,this.attributeName=a,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var bt={},ua=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];ua.forEach(function(e){bt[e]=new Vt(e,Ce,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0],n=e[1];bt[t]=new Vt(t,De,!1,n,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){bt[e]=new Vt(e,yt,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){bt[e]=new Vt(e,yt,!1,e,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(e){bt[e]=new Vt(e,Me,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){bt[e]=new Vt(e,Me,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){bt[e]=new Vt(e,ct,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){bt[e]=new Vt(e,un,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){bt[e]=new Vt(e,wt,!1,e.toLowerCase(),null,!1,!1)});var ha=/[\-\:]([a-z])/g,Yn=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){bt[e]=new Vt(e,De,!1,e.toLowerCase(),null,!1,!1)});var nr="xlinkHref";bt[nr]=new Vt("xlinkHref",De,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){bt[e]=new Vt(e,De,!1,e.toLowerCase(),null,!0,!0)});var Vr=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,Pr=!1;function hr(e){!Pr&&Vr.test(e)&&(Pr=!0,d("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(e)))}function Ha(e,t,n,a){if(a.mustUseProperty){var r=a.propertyName;return e[r]}else{an(n,t),a.sanitizeURL&&hr(""+n);var i=a.attributeName,o=null;if(a.type===ct){if(e.hasAttribute(i)){var l=e.getAttribute(i);return l===""?!0:Dn(t,n,a,!1)?l:l===""+n?n:l}}else if(e.hasAttribute(i)){if(Dn(t,n,a,!1))return e.getAttribute(i);if(a.type===Me)return n;o=e.getAttribute(i)}return Dn(t,n,a,!1)?o===null?n:o:o===""+n?n:o}}function Fa(e,t,n,a){{if(!Pt(t))return;if(!e.hasAttribute(t))return n===void 0?void 0:null;var r=e.getAttribute(t);return an(n,t),r===""+n?n:r}}function ya(e,t,n,a){var r=It(t);if(!Qt(t,r,a)){if(Dn(t,n,r,a)&&(n=null),a||r===null){if(Pt(t)){var i=t;n===null?e.removeAttribute(i):(an(n,t),e.setAttribute(i,""+n))}return}var o=r.mustUseProperty;if(o){var l=r.propertyName;if(n===null){var u=r.type;e[l]=u===Me?!1:""}else e[l]=n;return}var f=r.attributeName,v=r.attributeNamespace;if(n===null)e.removeAttribute(f);else{var b=r.type,y;b===Me||b===ct&&n===!0?y="":(an(n,f),y=""+n,r.sanitizeURL&&hr(y.toString())),v?e.setAttributeNS(v,f,y):e.setAttribute(f,y)}}}var Kn=Symbol.for("react.element"),g=Symbol.for("react.portal"),V=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),R=Symbol.for("react.provider"),c=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),E=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),re=Symbol.for("react.lazy"),H=Symbol.for("react.scope"),ce=Symbol.for("react.debug_trace_mode"),lt=Symbol.for("react.offscreen"),ke=Symbol.for("react.legacy_hidden"),rt=Symbol.for("react.cache"),fn=Symbol.for("react.tracing_marker"),_n=Symbol.iterator,en="@@iterator";function Ft(e){if(e===null||typeof e!="object")return null;var t=_n&&e[_n]||e[en];return typeof t=="function"?t:null}var _e=Object.assign,Dt=0,Zn,yr,Va,Br,ga,ba,$r;function gi(){}gi.__reactDisabledLog=!0;function dn(){{if(Dt===0){Zn=console.log,yr=console.info,Va=console.warn,Br=console.error,ga=console.group,ba=console.groupCollapsed,$r=console.groupEnd;var e={configurable:!0,enumerable:!0,value:gi,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Dt++}}function _t(){{if(Dt--,Dt===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:_e({},e,{value:Zn}),info:_e({},e,{value:yr}),warn:_e({},e,{value:Va}),error:_e({},e,{value:Br}),group:_e({},e,{value:ga}),groupCollapsed:_e({},e,{value:ba}),groupEnd:_e({},e,{value:$r})})}Dt<0&&d("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Sa=pe.ReactCurrentDispatcher,Ta;function sa(e,t,n){{if(Ta===void 0)try{throw Error()}catch(r){var a=r.stack.trim().match(/\n( *(at )?)/);Ta=a&&a[1]||""}return` -`+Ta+e}}var bi=!1,Yr;{var ao=typeof WeakMap=="function"?WeakMap:Map;Yr=new ao}function Si(e,t){if(!e||bi)return"";{var n=Yr.get(e);if(n!==void 0)return n}var a;bi=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=Sa.current,Sa.current=null,dn();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(M){a=M}Reflect.construct(e,[],o)}else{try{o.call()}catch(M){a=M}e.call(o.prototype)}}else{try{throw Error()}catch(M){a=M}e()}}catch(M){if(M&&a&&typeof M.stack=="string"){for(var l=M.stack.split(` + */return function(){typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error);var C=Zc(),k=PS(),me=C.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Se=!1;function ve(e){Se=e}function Ee(e){if(!Se){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a1?t-1:0),a=1;a2&&(e[0]==="o"||e[0]==="O")&&(e[1]==="n"||e[1]==="N")}function Kt(e,t,n,a){if(n!==null&&n.type===Ce)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":{if(a)return!1;if(n!==null)return!n.acceptsBooleans;var r=e.toLowerCase().slice(0,5);return r!=="data-"&&r!=="aria-"}default:return!1}}function Dn(e,t,n,a){if(t===null||typeof t>"u"||Kt(e,t,n,a))return!0;if(a)return!1;if(n!==null)switch(n.type){case Le:return!t;case ct:return t===!1;case wt:return isNaN(t);case un:return isNaN(t)||t<1}return!1}function It(e){return bt.hasOwnProperty(e)?bt[e]:null}function Vt(e,t,n,a,r,i,o){this.acceptsBooleans=t===yt||t===Le||t===ct,this.attributeName=a,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var bt={},ua=["children","dangerouslySetInnerHTML","defaultValue","defaultChecked","innerHTML","suppressContentEditableWarning","suppressHydrationWarning","style"];ua.forEach(function(e){bt[e]=new Vt(e,Ce,!1,e,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0],n=e[1];bt[t]=new Vt(t,De,!1,n,null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){bt[e]=new Vt(e,yt,!1,e.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){bt[e]=new Vt(e,yt,!1,e,null,!1,!1)}),["allowFullScreen","async","autoFocus","autoPlay","controls","default","defer","disabled","disablePictureInPicture","disableRemotePlayback","formNoValidate","hidden","loop","noModule","noValidate","open","playsInline","readOnly","required","reversed","scoped","seamless","itemScope"].forEach(function(e){bt[e]=new Vt(e,Le,!1,e.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(e){bt[e]=new Vt(e,Le,!0,e,null,!1,!1)}),["capture","download"].forEach(function(e){bt[e]=new Vt(e,ct,!1,e,null,!1,!1)}),["cols","rows","size","span"].forEach(function(e){bt[e]=new Vt(e,un,!1,e,null,!1,!1)}),["rowSpan","start"].forEach(function(e){bt[e]=new Vt(e,wt,!1,e.toLowerCase(),null,!1,!1)});var ha=/[\-\:]([a-z])/g,Yn=function(e){return e[1].toUpperCase()};["accent-height","alignment-baseline","arabic-form","baseline-shift","cap-height","clip-path","clip-rule","color-interpolation","color-interpolation-filters","color-profile","color-rendering","dominant-baseline","enable-background","fill-opacity","fill-rule","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","glyph-name","glyph-orientation-horizontal","glyph-orientation-vertical","horiz-adv-x","horiz-origin-x","image-rendering","letter-spacing","lighting-color","marker-end","marker-mid","marker-start","overline-position","overline-thickness","paint-order","panose-1","pointer-events","rendering-intent","shape-rendering","stop-color","stop-opacity","strikethrough-position","strikethrough-thickness","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-anchor","text-decoration","text-rendering","underline-position","underline-thickness","unicode-bidi","unicode-range","units-per-em","v-alphabetic","v-hanging","v-ideographic","v-mathematical","vector-effect","vert-adv-y","vert-origin-x","vert-origin-y","word-spacing","writing-mode","xmlns:xlink","x-height"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,null,!1,!1)}),["xlink:actuate","xlink:arcrole","xlink:role","xlink:show","xlink:title","xlink:type"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(ha,Yn);bt[t]=new Vt(t,De,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(e){bt[e]=new Vt(e,De,!1,e.toLowerCase(),null,!1,!1)});var nr="xlinkHref";bt[nr]=new Vt("xlinkHref",De,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(e){bt[e]=new Vt(e,De,!1,e.toLowerCase(),null,!0,!0)});var Vr=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,Pr=!1;function hr(e){!Pr&&Vr.test(e)&&(Pr=!0,d("A future version of React will block javascript: URLs as a security precaution. Use event handlers instead if you can. If you need to generate unsafe HTML try using dangerouslySetInnerHTML instead. React was passed %s.",JSON.stringify(e)))}function Ha(e,t,n,a){if(a.mustUseProperty){var r=a.propertyName;return e[r]}else{an(n,t),a.sanitizeURL&&hr(""+n);var i=a.attributeName,o=null;if(a.type===ct){if(e.hasAttribute(i)){var l=e.getAttribute(i);return l===""?!0:Dn(t,n,a,!1)?l:l===""+n?n:l}}else if(e.hasAttribute(i)){if(Dn(t,n,a,!1))return e.getAttribute(i);if(a.type===Le)return n;o=e.getAttribute(i)}return Dn(t,n,a,!1)?o===null?n:o:o===""+n?n:o}}function Fa(e,t,n,a){{if(!Pt(t))return;if(!e.hasAttribute(t))return n===void 0?void 0:null;var r=e.getAttribute(t);return an(n,t),r===""+n?n:r}}function ya(e,t,n,a){var r=It(t);if(!Qt(t,r,a)){if(Dn(t,n,r,a)&&(n=null),a||r===null){if(Pt(t)){var i=t;n===null?e.removeAttribute(i):(an(n,t),e.setAttribute(i,""+n))}return}var o=r.mustUseProperty;if(o){var l=r.propertyName;if(n===null){var u=r.type;e[l]=u===Le?!1:""}else e[l]=n;return}var f=r.attributeName,v=r.attributeNamespace;if(n===null)e.removeAttribute(f);else{var b=r.type,g;b===Le||b===ct&&n===!0?g="":(an(n,f),g=""+n,r.sanitizeURL&&hr(g.toString())),v?e.setAttributeNS(v,f,g):e.setAttribute(f,g)}}}var Kn=Symbol.for("react.element"),y=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),S=Symbol.for("react.profiler"),w=Symbol.for("react.provider"),c=Symbol.for("react.context"),p=Symbol.for("react.forward_ref"),T=Symbol.for("react.suspense"),E=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),ae=Symbol.for("react.lazy"),H=Symbol.for("react.scope"),le=Symbol.for("react.debug_trace_mode"),Qe=Symbol.for("react.offscreen"),_e=Symbol.for("react.legacy_hidden"),ot=Symbol.for("react.cache"),fn=Symbol.for("react.tracing_marker"),_n=Symbol.iterator,en="@@iterator";function Ft(e){if(e===null||typeof e!="object")return null;var t=_n&&e[_n]||e[en];return typeof t=="function"?t:null}var Me=Object.assign,Dt=0,Zn,yr,Va,Br,ga,ba,$r;function gi(){}gi.__reactDisabledLog=!0;function dn(){{if(Dt===0){Zn=console.log,yr=console.info,Va=console.warn,Br=console.error,ga=console.group,ba=console.groupCollapsed,$r=console.groupEnd;var e={configurable:!0,enumerable:!0,value:gi,writable:!0};Object.defineProperties(console,{info:e,log:e,warn:e,error:e,group:e,groupCollapsed:e,groupEnd:e})}Dt++}}function _t(){{if(Dt--,Dt===0){var e={configurable:!0,enumerable:!0,writable:!0};Object.defineProperties(console,{log:Me({},e,{value:Zn}),info:Me({},e,{value:yr}),warn:Me({},e,{value:Va}),error:Me({},e,{value:Br}),group:Me({},e,{value:ga}),groupCollapsed:Me({},e,{value:ba}),groupEnd:Me({},e,{value:$r})})}Dt<0&&d("disabledDepth fell below zero. This is a bug in React. Please file an issue.")}}var Sa=me.ReactCurrentDispatcher,Ta;function sa(e,t,n){{if(Ta===void 0)try{throw Error()}catch(r){var a=r.stack.trim().match(/\n( *(at )?)/);Ta=a&&a[1]||""}return` +`+Ta+e}}var bi=!1,Yr;{var ao=typeof WeakMap=="function"?WeakMap:Map;Yr=new ao}function Si(e,t){if(!e||bi)return"";{var n=Yr.get(e);if(n!==void 0)return n}var a;bi=!0;var r=Error.prepareStackTrace;Error.prepareStackTrace=void 0;var i;i=Sa.current,Sa.current=null,dn();try{if(t){var o=function(){throw Error()};if(Object.defineProperty(o.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(o,[])}catch(L){a=L}Reflect.construct(e,[],o)}else{try{o.call()}catch(L){a=L}e.call(o.prototype)}}else{try{throw Error()}catch(L){a=L}e()}}catch(L){if(L&&a&&typeof L.stack=="string"){for(var l=L.stack.split(` `),u=a.stack.split(` `),f=l.length-1,v=u.length-1;f>=1&&v>=0&&l[f]!==u[v];)v--;for(;f>=1&&v>=0;f--,v--)if(l[f]!==u[v]){if(f!==1||v!==1)do if(f--,v--,v<0||l[f]!==u[v]){var b=` -`+l[f].replace(" at new "," at ");return e.displayName&&b.includes("")&&(b=b.replace("",e.displayName)),typeof e=="function"&&Yr.set(e,b),b}while(f>=1&&v>=0);break}}}finally{bi=!1,Sa.current=i,_t(),Error.prepareStackTrace=r}var y=e?e.displayName||e.name:"",D=y?sa(y):"";return typeof e=="function"&&Yr.set(e,D),D}function ro(e,t,n){return Si(e,!0)}function ol(e,t,n){return Si(e,!1)}function Yu(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function ll(e,t,n){if(e==null)return"";if(typeof e=="function")return Si(e,Yu(e));if(typeof e=="string")return sa(e);switch(e){case E:return sa("Suspense");case w:return sa("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case p:return ol(e.render);case P:return ll(e.type,t,n);case re:{var a=e,r=a._payload,i=a._init;try{return ll(i(r),t,n)}catch{}}}return""}function af(e){switch(e._debugOwner&&e._debugOwner.type,e._debugSource,e.tag){case ne:return sa(e.type);case Ot:return sa("Lazy");case Re:return sa("Suspense");case ee:return sa("SuspenseList");case ye:case nt:case B:return ol(e.type);case xe:return ol(e.type.render);case ae:return ro(e.type);default:return""}}function Ti(e){try{var t="",n=e;do t+=af(n),n=n.return;while(n);return t}catch(a){return` +`+l[f].replace(" at new "," at ");return e.displayName&&b.includes("")&&(b=b.replace("",e.displayName)),typeof e=="function"&&Yr.set(e,b),b}while(f>=1&&v>=0);break}}}finally{bi=!1,Sa.current=i,_t(),Error.prepareStackTrace=r}var g=e?e.displayName||e.name:"",D=g?sa(g):"";return typeof e=="function"&&Yr.set(e,D),D}function ro(e,t,n){return Si(e,!0)}function ol(e,t,n){return Si(e,!1)}function Yu(e){var t=e.prototype;return!!(t&&t.isReactComponent)}function ll(e,t,n){if(e==null)return"";if(typeof e=="function")return Si(e,Yu(e));if(typeof e=="string")return sa(e);switch(e){case T:return sa("Suspense");case E:return sa("SuspenseList")}if(typeof e=="object")switch(e.$$typeof){case p:return ol(e.render);case P:return ll(e.type,t,n);case ae:{var a=e,r=a._payload,i=a._init;try{return ll(i(r),t,n)}catch{}}}return""}function af(e){switch(e._debugOwner&&e._debugOwner.type,e._debugSource,e.tag){case ne:return sa(e.type);case Ot:return sa("Lazy");case Re:return sa("Suspense");case ee:return sa("SuspenseList");case ye:case rt:case B:return ol(e.type);case xe:return ol(e.type.render);case oe:return ro(e.type);default:return""}}function Ti(e){try{var t="",n=e;do t+=af(n),n=n.return;while(n);return t}catch(a){return` Error generating stack: `+a.message+` -`+a.stack}}function Iu(e,t,n){var a=e.displayName;if(a)return a;var r=t.displayName||t.name||"";return r!==""?n+"("+r+")":n}function ul(e){return e.displayName||"Context"}function Et(e){if(e==null)return null;if(typeof e.tag=="number"&&d("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case V:return"Fragment";case g:return"Portal";case S:return"Profiler";case k:return"StrictMode";case E:return"Suspense";case w:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case c:var t=e;return ul(t)+".Consumer";case R:var n=e;return ul(n._context)+".Provider";case p:return Iu(e,e.render,"ForwardRef");case P:var a=e.displayName||null;return a!==null?a:Et(e.type)||"Memo";case re:{var r=e,i=r._payload,o=r._init;try{return Et(o(i))}catch{return null}}}return null}function rf(e,t,n){var a=t.displayName||t.name||"";return e.displayName||(a!==""?n+"("+a+")":n)}function gr(e){return e.displayName||"Context"}function Qe(e){var t=e.tag,n=e.type;switch(t){case Xe:return"Cache";case Rt:var a=n;return gr(a)+".Consumer";case Ge:var r=n;return gr(r._context)+".Provider";case ze:return"DehydratedFragment";case xe:return rf(n,n.render,"ForwardRef");case kt:return"Fragment";case ne:return n;case N:return"Portal";case q:return"Root";case Ne:return"Text";case Ot:return Et(n);case xt:return n===k?"StrictMode":"Mode";case X:return"Offscreen";case mt:return"Profiler";case Ze:return"Scope";case Re:return"Suspense";case ee:return"SuspenseList";case $:return"TracingMarker";case ae:case ye:case tt:case nt:case ut:case B:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n;break}return null}var sl=pe.ReactDebugCurrentFrame,Jn=null,Ei=!1;function Ir(){{if(Jn===null)return null;var e=Jn._debugOwner;if(e!==null&&typeof e<"u")return Qe(e)}return null}function of(){return Jn===null?"":Ti(Jn)}function Mn(){sl.getCurrentStack=null,Jn=null,Ei=!1}function tn(e){sl.getCurrentStack=e===null?null:of,Jn=e,Ei=!1}function Wu(){return Jn}function Ma(e){Ei=e}function ea(e){return""+e}function Pa(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return le(e),e;default:return""}}var lf={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0};function cl(e,t){lf[t.type]||t.onChange||t.onInput||t.readOnly||t.disabled||t.value==null||d("You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`."),t.onChange||t.readOnly||t.disabled||t.checked==null||d("You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.")}function qu(e){var t=e.type,n=e.nodeName;return n&&n.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function fl(e){return e._valueTracker}function io(e){e._valueTracker=null}function uf(e){var t="";return e&&(qu(e)?t=e.checked?"true":"false":t=e.value),t}function Wr(e){var t=qu(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);le(e[t]);var a=""+e[t];if(!(e.hasOwnProperty(t)||typeof n>"u"||typeof n.get!="function"||typeof n.set!="function")){var r=n.get,i=n.set;Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(l){le(l),a=""+l,i.call(this,l)}}),Object.defineProperty(e,t,{enumerable:n.enumerable});var o={getValue:function(){return a},setValue:function(l){le(l),a=""+l},stopTracking:function(){io(e),delete e[t]}};return o}}function Ci(e){fl(e)||(e._valueTracker=Wr(e))}function dl(e){if(!e)return!1;var t=fl(e);if(!t)return!0;var n=t.getValue(),a=uf(e);return a!==n?(t.setValue(a),!0):!1}function br(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var oo=!1,lo=!1,uo=!1,Gu=!1;function Xu(e){var t=e.type==="checkbox"||e.type==="radio";return t?e.checked!=null:e.value!=null}function vl(e,t){var n=e,a=t.checked,r=_e({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??n._wrapperState.initialChecked});return r}function Qu(e,t){cl("input",t),t.checked!==void 0&&t.defaultChecked!==void 0&&!lo&&(d("%s contains an input of type %s with both checked and defaultChecked props. Input elements must be either controlled or uncontrolled (specify either the checked prop, or the defaultChecked prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Ir()||"A component",t.type),lo=!0),t.value!==void 0&&t.defaultValue!==void 0&&!oo&&(d("%s contains an input of type %s with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://reactjs.org/link/controlled-components",Ir()||"A component",t.type),oo=!0);var n=e,a=t.defaultValue==null?"":t.defaultValue;n._wrapperState={initialChecked:t.checked!=null?t.checked:t.defaultChecked,initialValue:Pa(t.value!=null?t.value:a),controlled:Xu(t)}}function s(e,t){var n=e,a=t.checked;a!=null&&ya(n,"checked",a,!1)}function h(e,t){var n=e;{var a=Xu(t);!n._wrapperState.controlled&&a&&!Gu&&(d("A component is changing an uncontrolled input to be controlled. This is likely caused by the value changing from undefined to a defined value, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),Gu=!0),n._wrapperState.controlled&&!a&&!uo&&(d("A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen. Decide between using a controlled or uncontrolled input element for the lifetime of the component. More info: https://reactjs.org/link/controlled-components"),uo=!0)}s(e,t);var r=Pa(t.value),i=t.type;if(r!=null)i==="number"?(r===0&&n.value===""||n.value!=r)&&(n.value=ea(r)):n.value!==ea(r)&&(n.value=ea(r));else if(i==="submit"||i==="reset"){n.removeAttribute("value");return}t.hasOwnProperty("value")?Oe(n,t.type,r):t.hasOwnProperty("defaultValue")&&Oe(n,t.type,Pa(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(n.defaultChecked=!!t.defaultChecked)}function _(e,t,n){var a=e;if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type,i=r==="submit"||r==="reset";if(i&&(t.value===void 0||t.value===null))return;var o=ea(a._wrapperState.initialValue);n||o!==a.value&&(a.value=o),a.defaultValue=o}var l=a.name;l!==""&&(a.name=""),a.defaultChecked=!a.defaultChecked,a.defaultChecked=!!a._wrapperState.initialChecked,l!==""&&(a.name=l)}function O(e,t){var n=e;h(n,t),K(n,t)}function K(e,t){var n=t.name;if(t.type==="radio"&&n!=null){for(var a=e;a.parentNode;)a=a.parentNode;an(n,"name");for(var r=a.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),i=0;i.")))}):t.dangerouslySetInnerHTML!=null&&(ft||(ft=!0,d("Pass a `value` prop if you set dangerouslyInnerHTML so React knows which value should be selected.")))),t.selected!=null&&!be&&(d("Use the `defaultValue` or `value` props on instead of setting `selected` on