*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#0f0f1a,#1a1a2e,#16213e);min-height:100vh;color:#e0e0e0}#root{min-height:100vh;padding:20px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0f0f1a66;border-radius:4px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#4ecdc466,#6c5ce766);border-radius:4px;transition:background .3s ease}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#4ecdc4b3,#6c5ce7b3)}::-webkit-scrollbar-thumb:active{background:linear-gradient(180deg,#4ecdc4e6,#6c5ce7e6)}::-webkit-scrollbar-corner{background:#0f0f1a66}*{scrollbar-width:thin;scrollbar-color:rgba(78,205,196,.4) rgba(15,15,26,.4)}.custom-select{position:relative;min-width:120px;font-size:13px}.custom-select.disabled{opacity:.5;pointer-events:none}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:#1e1e32cc;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;transition:all .2s ease;color:#e0e0e0}.custom-select-trigger:hover{background:#282841e6;border-color:#4ecdc44d}.custom-select.open .custom-select-trigger{background:#282841f2;border-color:#4ecdc480;box-shadow:0 0 0 2px #4ecdc41a}.custom-select-value{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-select-arrow{display:flex;align-items:center;color:#ffffff80;transition:transform .2s ease}.custom-select.open .custom-select-arrow{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:#19192dfa;border:1px solid rgba(78,205,196,.2);border-radius:10px;box-shadow:0 8px 32px #0006,0 0 0 1px #ffffff0d;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);max-height:240px;overflow-y:auto;animation:selectDropdownFadeIn .15s ease-out}@keyframes selectDropdownFadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;color:silver;transition:all .15s ease;border-bottom:1px solid rgba(255,255,255,.03)}.custom-select-option:last-child{border-bottom:none}.custom-select-option:hover{background:#4ecdc41a;color:#fff}.custom-select-option.selected{background:#4ecdc426;color:#4ecdc4}.custom-select-option.disabled{opacity:.4;cursor:not-allowed}.custom-select-check{font-size:12px;color:#4ecdc4}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.dancer-tooltip{animation:tooltipFadeIn .15s cubic-bezier(.34,1.56,.64,1) forwards}button,.btn,[role=button]{transition:all .2s cubic-bezier(.4,0,.2,1)}.formation-block,.preset-item,.algorithm-option{transition:all .2s ease}.formation-block:hover,.preset-item:hover,.algorithm-option:hover{transform:translateY(-2px)}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #4ecdc426}.password-gate{position:fixed;inset:0;background:linear-gradient(135deg,#0f0f1a,#1a1a2e,#16213e);display:flex;align-items:center;justify-content:center;z-index:9999}.password-modal{background:#1e1e32f2;padding:40px 50px;border-radius:16px;text-align:center;box-shadow:0 20px 60px #00000080;border:1px solid rgba(78,205,196,.2)}.password-modal h2{color:#fff;margin-bottom:8px;font-size:24px}.password-modal p{color:#aaa;margin-bottom:24px;font-size:14px}.password-modal form{display:flex;flex-direction:column;gap:12px}.password-modal input{padding:14px 20px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:18px;text-align:center;letter-spacing:8px;outline:none;transition:all .2s}.password-modal input:focus{border-color:#4ecdc4;box-shadow:0 0 0 3px #4ecdc433}.password-modal input.error{border-color:#ff6b6b;animation:shake .3s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}.password-modal button{padding:14px 24px;border-radius:8px;border:none;background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#1a1a2e;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s}.password-modal button:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4ecdc466}.password-modal .error-msg{color:#ff6b6b;font-size:13px;margin-top:8px}.choreography-container{max-width:1400px;margin:0 auto}.header{text-align:center;margin-bottom:24px}.header h1{font-size:2rem;font-weight:700;background:linear-gradient(90deg,#4ecdc4,#45b7d1,#6c5ce7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px}.header p{color:#aaa;font-size:1rem}.main-content{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap;justify-content:center}.stage-wrapper{display:flex;flex-direction:column;gap:16px}.controls{background:#1e1e32e6;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:16px;border:1px solid rgba(255,255,255,.1)}.timeline-section{display:flex;flex-direction:column;gap:8px}.timeline-section label{font-size:14px;color:#aaa}.timeline-section strong{color:#4ecdc4;font-size:16px}.timeline-slider{width:100%;height:8px;-webkit-appearance:none;appearance:none;background:linear-gradient(90deg,#2a2a3e,#3a3a5e);border-radius:4px;outline:none;cursor:pointer}.timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#4ecdc4,#45b7d1);cursor:grab;border:2px solid #fff;box-shadow:0 2px 8px #4ecdc480}.timeline-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(1.1)}.button-section{display:flex;gap:12px;justify-content:center}.control-btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.control-btn.play{background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#fff}.control-btn.play:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4ecdc466}.control-btn.pause{background:linear-gradient(135deg,#ffd93d,#ff8c42);color:#1a1a2e}.control-btn.pause:hover{transform:translateY(-2px);box-shadow:0 4px 12px #ffd93d66}.control-btn.reset{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.2)}.control-btn.reset:hover{background:#fff3}.speed-section{display:flex;align-items:center;gap:12px;justify-content:center}.speed-section label{font-size:14px;color:#aaa}.speed-buttons{display:flex;gap:8px}.speed-btn{padding:8px 16px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#aaa;font-size:13px;cursor:pointer;transition:all .2s ease}.speed-btn:hover{background:#ffffff1a;color:#fff}.speed-btn.active{background:linear-gradient(135deg,#6c5ce7,#a29bfe);border-color:#6c5ce7;color:#fff}.info-panel{background:#1e1e32e6;border-radius:12px;padding:20px;width:320px;border:1px solid rgba(255,255,255,.1);max-height:600px;overflow-y:auto}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.panel-header h3{font-size:18px;font-weight:600;color:#fff}.toggle-paths{display:flex;align-items:center;gap:8px;font-size:13px;color:#aaa;cursor:pointer}.toggle-paths input{accent-color:#4ECDC4}.dancer-list{display:flex;flex-direction:column;gap:12px}.dancer-info{background:#ffffff08;border-radius:8px;padding:12px;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.dancer-info:hover{background:#ffffff0f}.dancer-info.selected{background:#4ecdc41a;border-color:#4ecdc44d}.dancer-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.dancer-color{width:16px;height:16px;border-radius:50%;flex-shrink:0}.dancer-name{font-weight:600;font-size:14px;flex-grow:1}.dancer-status{font-size:11px;padding:2px 8px;border-radius:10px}.dancer-status.moving{background:#4ecdc433;color:#4ecdc4}.dancer-status.waiting{background:#ffd93d33;color:#ffd93d}.dancer-details{font-size:12px;color:#aaa}.detail-row{display:flex;justify-content:space-between;padding:4px 0}.detail-row span:last-child{color:#bbb;font-family:Monaco,Consolas,monospace}.progress-bar{height:4px;background:#ffffff1a;border-radius:2px;margin-top:8px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .1s ease}.legend{display:flex;justify-content:center;gap:32px;margin-top:24px;padding:16px;background:#1e1e3280;border-radius:8px}.legend-item{display:flex;align-items:center;gap:8px;font-size:13px;color:#aaa}.legend-symbol{font-size:16px;color:#4ecdc4}.legend-symbol.line{letter-spacing:-2px}@media(max-width:900px){.main-content{flex-direction:column;align-items:center}.info-panel{width:100%;max-width:600px}.legend{flex-wrap:wrap;gap:16px}}.info-panel::-webkit-scrollbar{width:6px}.info-panel::-webkit-scrollbar-track{background:#ffffff0d;border-radius:3px}.info-panel::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.info-panel::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.input-section{background:#1e1e32e6;border-radius:12px;padding:24px;margin-bottom:24px;border:1px solid rgba(255,255,255,.1);display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.nlp-input-section{flex:1;min-width:300px}.nlp-input-section h3,.formation-selector h3{font-size:16px;font-weight:600;color:#fff;margin-bottom:12px}.api-warning{background:#ff8c4233;border:1px solid rgba(255,140,66,.4);border-radius:8px;padding:12px;font-size:12px;color:#ff8c42;margin-bottom:12px}.api-warning code{background:#0000004d;padding:2px 6px;border-radius:4px}.nlp-input-section form{display:flex;flex-direction:column;gap:12px}.nlp-input-section textarea{width:100%;padding:12px;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px;resize:vertical;font-family:inherit}.nlp-input-section textarea:focus{outline:none;border-color:#4ecdc4}.nlp-input-section textarea::placeholder{color:#666}.generate-btn{padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.generate-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4ecdc466}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn.small{padding:8px 16px;font-size:13px}.examples{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;align-items:center}.examples>span{font-size:12px;color:#666}.example-btn{padding:6px 12px;border-radius:16px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#aaa;font-size:12px;cursor:pointer;transition:all .2s ease}.example-btn:hover:not(:disabled){background:#ffffff1a;color:#fff;border-color:#ffffff4d}.example-btn:disabled{opacity:.5;cursor:not-allowed}.divider{display:flex;align-items:center;color:#666;font-size:14px;padding:0 16px}.stage-size-selector{background:#1e1e32cc;border-radius:10px;padding:16px;margin-bottom:16px;border:1px solid rgba(255,255,255,.1)}.stage-size-selector h4{font-size:14px;color:#4ecdc4;margin-bottom:12px}.stage-preset-row{margin-bottom:12px}.stage-preset-row select{width:100%;padding:10px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px;cursor:pointer}.stage-preset-row select:focus{outline:none;border-color:#4ecdc4}.stage-custom-inputs{display:flex;gap:16px;margin-bottom:12px}.stage-custom-inputs label{display:flex;align-items:center;gap:8px;font-size:13px;color:#aaa}.stage-custom-inputs input{width:70px;padding:6px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px;text-align:center}.stage-custom-inputs input:focus{outline:none;border-color:#4ecdc4}.stage-info{font-size:12px;color:#aaa;text-align:center;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.formation-selector{flex:0 0 auto}.formation-row{display:flex;align-items:center;gap:12px}.formation-select{display:flex;flex-direction:column;gap:6px}.formation-select label{font-size:12px;color:#aaa}.formation-select select{padding:8px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px;cursor:pointer}.formation-select select:focus{outline:none;border-color:#4ecdc4}.formation-row .arrow{font-size:20px;color:#4ecdc4;margin-top:20px}.side-panels{display:flex;flex-direction:column;gap:16px}.aesthetic-panel{background:#1e1e32e6;border-radius:12px;padding:20px;width:320px;border:1px solid rgba(255,255,255,.1)}.aesthetic-panel h3{font-size:18px;font-weight:600;color:#fff;margin-bottom:16px}.overall-score{display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;border:3px solid;margin:0 auto 20px;background:#ffffff0d}.overall-score .score-value{font-size:28px;font-weight:700;color:#fff}.overall-score .score-label{font-size:10px;color:#aaa}.score-details{display:flex;flex-direction:column;gap:12px}.score-row{display:flex;align-items:center;gap:10px}.score-row .score-label{flex:0 0 80px;font-size:12px;color:#aaa}.score-bar{flex:1;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden}.score-fill{height:100%;border-radius:4px;transition:width .3s ease}.score-row .score-num{flex:0 0 30px;font-size:12px;color:#fff;text-align:right;font-weight:600}.feedback-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.feedback-section h4{font-size:14px;color:#fff;margin-bottom:8px}.feedback-section ul{list-style:none;padding:0}.feedback-section li{font-size:12px;color:#aaa;padding:4px 0 4px 16px;position:relative}.feedback-section li:before{content:"•";position:absolute;left:0;color:#4ecdc4}.metadata-section{display:flex;justify-content:center;gap:32px;margin-top:16px;padding:16px;background:#1e1e3280;border-radius:8px;flex-wrap:wrap}.metadata-item{display:flex;align-items:center;gap:8px;font-size:13px}.metadata-item span{color:#aaa}.metadata-item strong{color:#fff}.error-message{background:#ff6b6b33;border:1px solid rgba(255,107,107,.4);border-radius:8px;padding:12px 16px;color:#ff6b6b;font-size:14px;margin-bottom:16px;text-align:center}.dancer-count-row{display:flex;align-items:center;gap:8px;margin-bottom:16px}.dancer-count-row label{font-size:14px;color:#aaa}.dancer-count-input{width:60px;padding:8px 12px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px;text-align:center}.dancer-count-input:focus{outline:none;border-color:#4ecdc4}.dancer-count-label{font-size:14px;color:#aaa}.formation-select-row{display:flex;gap:8px;align-items:center}.edit-btn{padding:8px 10px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#aaa;cursor:pointer;transition:all .2s ease;font-size:14px}.edit-btn:hover{background:#ffffff1a;border-color:#4ecdc4;color:#fff}.formation-editor-overlay{position:fixed;inset:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.formation-editor{background:#1e1e32;border-radius:16px;padding:24px;max-width:800px;max-height:90vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080}.editor-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.editor-header h3{font-size:20px;font-weight:600;color:#fff}.close-btn{width:32px;height:32px;border-radius:50%;border:none;background:#ffffff1a;color:#aaa;font-size:18px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.close-btn:hover{background:#ff6b6b4d;color:#ff6b6b}.header-actions{display:flex;align-items:center;gap:12px}.undo-redo-btns{display:flex;gap:4px}.undo-btn,.redo-btn{width:32px;height:32px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:18px;cursor:pointer;transition:all .15s ease;display:flex;align-items:center;justify-content:center}.undo-btn:hover:not(:disabled),.redo-btn:hover:not(:disabled){background:#4ecdc433;border-color:#4ecdc4;color:#4ecdc4}.undo-btn:disabled,.redo-btn:disabled{opacity:.3;cursor:not-allowed}.history-badge{position:absolute;top:-4px;right:-4px;min-width:14px;height:14px;background:#4ecdc4;color:#1a1a2e;font-size:9px;font-weight:700;border-radius:7px;display:flex;align-items:center;justify-content:center;padding:0 3px}.undo-btn,.redo-btn{position:relative}.drag-feedback-overlay{position:fixed;inset:0;background:#4ecdc40d;pointer-events:none;z-index:900;border:2px dashed rgba(78,205,196,.4);animation:dragPulse 1s ease-in-out infinite}@keyframes dragPulse{0%,to{border-color:#4ecdc466}50%{border-color:#4ecdc4b3}}.drag-ghost{position:fixed;pointer-events:none;z-index:1000;opacity:.9;transform:scale(1.05);box-shadow:0 8px 32px #0000004d}.drop-target-highlight{outline:2px dashed #4ECDC4;outline-offset:2px;background:#4ecdc41a}.editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.preset-buttons{display:flex;flex-wrap:wrap;gap:8px}.preset-btn{padding:8px 16px;border-radius:20px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:13px;cursor:pointer;transition:all .2s ease}.preset-btn:hover{background:#4ecdc433;border-color:#4ecdc4;color:#fff}.preset-btn.active{background:#4ecdc44d;border-color:#4ecdc4;color:#4ecdc4;font-weight:600}.spread-control{display:flex;align-items:center;gap:12px;background:#0003;padding:10px 14px;border-radius:8px;margin:8px 0}.spread-control label{font-size:13px;color:#aaa;white-space:nowrap}.spread-control input[type=range]{flex:1;min-width:120px;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:3px;outline:none}.spread-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:#4ecdc4;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 6px #0000004d}.spread-control input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#4ecdc4;cursor:pointer;border:2px solid #fff;box-shadow:0 2px 6px #0000004d}.spread-value{font-size:14px;font-weight:600;color:#4ecdc4;min-width:45px;text-align:right}.spread-hint{font-size:11px;color:#666;margin-left:8px}.position-control{display:flex;align-items:center;gap:12px;background:#0003;padding:10px 14px;border-radius:8px;margin:8px 0}.position-control label{font-size:13px;color:#aaa;white-space:nowrap}.position-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.pos-btn{width:32px;height:32px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.pos-btn:hover{background:#4ecdc433;border-color:#4ecdc4;color:#fff}.pos-btn:active{background:#4ecdc466;transform:scale(.95)}.pos-btn.center{background:#4ecdc426;border-color:#4ecdc4;color:#4ecdc4;font-size:16px}.pos-btn.center:hover{background:#4ecdc44d}.snap-controls{display:flex;align-items:center;gap:12px;background:#0003;padding:8px 12px;border-radius:8px}.snap-toggle{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#aaa}.snap-toggle input{accent-color:#4ECDC4;width:16px;height:16px}.snap-toggle span{-webkit-user-select:none;user-select:none}.snap-toggle:has(input:checked) span{color:#4ecdc4}.snap-size-buttons{display:flex;gap:4px}.snap-size-btn{padding:4px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:12px;cursor:pointer;transition:all .2s ease}.snap-size-btn:hover{background:#ffffff1a;color:#fff}.snap-size-btn.active{background:#4ecdc4;border-color:#4ecdc4;color:#1a1a2e;font-weight:600}.position-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;padding:16px;background:#0003;border-radius:8px}.position-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#aaa}.coord-input{width:50px;padding:4px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:12px;text-align:center}.coord-input:focus{outline:none;border-color:#4ecdc4}.editor-footer{display:flex;justify-content:flex-end;margin-top:16px}.done-btn{padding:12px 32px;border-radius:8px;border:none;background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.done-btn:hover{transform:translateY(-2px);box-shadow:0 4px 16px #4ecdc466}.ai-formation-section{margin:16px 0;padding:16px;background:#9370db1a;border-radius:12px;border:1px solid rgba(147,112,219,.3)}.ai-mode-tabs{display:flex;gap:8px;margin-bottom:16px}.ai-tab{flex:1;padding:10px 16px;border:none;border-radius:8px;background:#ffffff0d;color:#aaa;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.ai-tab:hover{background:#ffffff1a;color:#fff}.ai-tab.active{background:linear-gradient(135deg,#9370db,#7b68ee);color:#fff;box-shadow:0 2px 8px #9370db66}.ai-text-section{display:flex;flex-direction:column;gap:12px}.ai-input-group{display:flex;gap:8px}.ai-text-input{flex:1;padding:12px 16px;border:1px solid rgba(147,112,219,.3);border-radius:8px;background:#1e1e32cc;color:#fff;font-size:14px}.ai-text-input:focus{outline:none;border-color:#9370db;box-shadow:0 0 0 2px #9370db33}.ai-text-input::placeholder{color:#666}.ai-generate-btn{padding:12px 24px;border:none;border-radius:8px;background:linear-gradient(135deg,#9370db,#7b68ee);color:#fff;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.ai-generate-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #9370db66}.ai-generate-btn:disabled{opacity:.5;cursor:not-allowed}.ai-examples{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.examples-label{color:#aaa;font-size:12px}.example-chip{padding:6px 12px;border:1px solid rgba(147,112,219,.3);border-radius:16px;background:transparent;color:#9370db;font-size:12px;cursor:pointer;transition:all .2s ease}.example-chip:hover{background:#9370db33;border-color:#9370db}.ai-error{padding:10px 14px;background:#ff6b6b26;border:1px solid rgba(255,107,107,.3);border-radius:8px;color:#ff6b6b;font-size:13px}.ai-generation-info{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#4ecdc41a;border:1px solid rgba(78,205,196,.3);border-radius:8px;font-size:13px}.ai-generation-info .generation-prompt{color:#aaa;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}.ai-generation-info .generation-time{color:#4ecdc4;font-weight:600;background:#4ecdc426;padding:4px 10px;border-radius:12px;flex-shrink:0}.ai-draw-section{display:flex;flex-direction:column;gap:12px}.draw-instruction{color:#aaa;font-size:13px;margin:0}.canvas-container{display:flex;justify-content:center}.drawing-canvas{border:2px solid rgba(147,112,219,.3);border-radius:8px;cursor:crosshair}.canvas-controls{display:flex;gap:12px;justify-content:center}.canvas-btn{padding:10px 20px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:transparent;color:#aaa;font-size:13px;cursor:pointer;transition:all .2s ease}.canvas-btn:hover{background:#ffffff1a;color:#fff}@media(max-width:768px){.input-section{flex-direction:column}.divider{padding:12px 0}.formation-row{flex-wrap:wrap}.side-panels,.aesthetic-panel{width:100%}.formation-editor{max-width:100%;padding:16px}.position-list{flex-direction:column}}.multi-candidate-toggle{display:flex;flex-direction:column;gap:6px;padding:12px 16px;background:#4ecdc41a;border-radius:8px;border:1px solid rgba(78,205,196,.2)}.multi-candidate-toggle .toggle-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:500}.multi-candidate-toggle .toggle-label input[type=checkbox]{width:18px;height:18px;accent-color:#4ECDC4}.multi-candidate-toggle .toggle-hint{font-size:.8rem;color:#aaa;margin-left:26px}.test-case-selector{background:#e056fd1a;border:1px solid rgba(224,86,253,.3);border-radius:8px;padding:12px 16px;margin-bottom:16px}.test-case-selector .test-case-label{display:flex;align-items:center;gap:12px;font-weight:600;color:#e056fd}.test-case-selector .test-case-label select{flex:1;padding:8px 12px;border-radius:6px;border:1px solid rgba(224,86,253,.3);background:#0000004d;color:#fff;font-size:.9rem;cursor:pointer}.test-case-selector .test-case-label select:hover{border-color:#e056fd}.test-case-selector .test-case-info{margin-top:8px;padding-top:8px;border-top:1px solid rgba(224,86,253,.2)}.test-case-selector .test-case-desc{font-size:.85rem;color:#ccc}.pipeline-mode-selector{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 4px 26px}.pipeline-mode-selector .mode-option{display:flex;flex-direction:column;gap:2px;padding:8px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .2s;flex:1}.pipeline-mode-selector .mode-option:hover{background:#ffffff1a}.pipeline-mode-selector .mode-option.active{background:#4ecdc433;border-color:#4ecdc4}.pipeline-mode-selector .mode-option input[type=radio]{display:none}.pipeline-mode-selector .mode-label{font-size:.85rem;font-weight:600;color:#fff}.pipeline-mode-selector .mode-desc{font-size:.7rem;color:#aaa}.pipeline-mode-selector .mode-option.active .mode-label{color:#4ecdc4}.pipeline-mode-selector .mode-option.gemini-only{border-color:#e056fd4d;background:#e056fd0d}.pipeline-mode-selector .mode-option.gemini-only:hover{background:#e056fd26;border-color:#e056fd80}.pipeline-mode-selector .mode-option.gemini-only.active{background:#e056fd33;border-color:#e056fd}.pipeline-mode-selector .mode-option.gemini-only.active .mode-label{color:#e056fd}.assignment-mode-selector{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1)}.assignment-mode-selector .mode-section-label{font-size:.75rem;color:#aaa;margin-right:4px}.assignment-mode-selector .mode-option.small{padding:4px 10px;font-size:.75rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;cursor:pointer;transition:all .2s}.assignment-mode-selector .mode-option.small:hover{background:#ffffff1a}.assignment-mode-selector .mode-option.small.active{background:#4ecdc433;border-color:#4ecdc4}.assignment-mode-selector .mode-option.small input[type=radio]{display:none}.assignment-mode-selector .mode-option.small .mode-label{color:#ccc}.assignment-mode-selector .mode-option.small.active .mode-label{color:#4ecdc4}.assignment-mode-section{background:#4ecdc41a;border:1px solid rgba(78,205,196,.3);border-radius:8px;padding:12px;margin-bottom:12px}.assignment-mode-header{margin-bottom:10px}.assignment-mode-header .section-label{font-size:.85rem;font-weight:600;color:#4ecdc4}.assignment-mode-options{display:flex;gap:8px;flex-wrap:wrap}.assignment-option{flex:1;min-width:120px;padding:10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;gap:4px}.assignment-option:hover{background:#ffffff1a}.assignment-option.active{background:#4ecdc433;border-color:#4ecdc4}.assignment-option input[type=radio]{display:none}.assignment-option .option-label{font-weight:600;color:#ccc;font-size:.85rem}.assignment-option.active .option-label{color:#4ecdc4}.assignment-option .option-desc{font-size:.7rem;color:#aaa}.partial-assignment-hint{margin-top:10px;padding:8px 12px;background:#ffd93d26;border:1px solid rgba(255,217,61,.3);border-radius:6px;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#ffd93d}.partial-assignment-hint .locked-count{font-weight:600}.pre-constraint-info{background:#6c5ce726;border:1px solid rgba(108,92,231,.3);border-radius:8px;padding:12px;margin-bottom:12px}.pre-constraint-info .constraint-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.pre-constraint-info .constraint-label{font-weight:600;color:#6c5ce7;font-size:.85rem}.pre-constraint-info .gemini-badge{background:#6c5ce74d;color:#6c5ce7;padding:2px 6px;border-radius:4px;font-size:.7rem}.pre-constraint-info .constraint-strategy{color:#e0e0e0;font-size:.85rem;margin-bottom:8px;line-height:1.4}.pre-constraint-info .constraint-details{display:flex;gap:12px;flex-wrap:wrap;font-size:.75rem;color:#aaa}.pre-constraint-info .constraint-details span{background:#ffffff0d;padding:2px 6px;border-radius:4px}.header-badges{display:flex;gap:6px}.pipeline-badge{padding:4px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.pipeline-badge.ranking_only{background:#4ecdc433;color:#4ecdc4}.pipeline-badge.pre_and_ranking{background:#6c5ce733;color:#6c5ce7}.candidate-panel{background:#1e1e32e6;border-radius:12px;padding:16px;border:1px solid #333;width:100%;max-height:500px;overflow-y:auto}.candidate-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.candidate-panel-header h3{font-size:1rem;font-weight:600;color:#e0e0e0}.ranking-badge{font-size:.75rem;padding:4px 8px;border-radius:12px;font-weight:500}.ranking-badge.gemini{background:linear-gradient(90deg,#4ecdc4,#6c5ce7);color:#fff}.ranking-badge.local{background:#ffffff1a;color:#aaa}.gemini-status{font-size:.75rem;padding:4px 10px;border-radius:12px;display:flex;align-items:center;gap:6px}.gemini-status.pending{background:#ffd70033;color:gold}.gemini-status .spinner{width:12px;height:12px;border:2px solid rgba(255,215,0,.3);border-top-color:gold;border-radius:50%;animation:spin 1s linear infinite}.gemini-enhancement-banner{background:linear-gradient(90deg,#4ecdc426,#6c5ce726);border:1px solid rgba(78,205,196,.3);border-radius:10px;padding:12px 16px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:center;animation:fadeIn .3s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.banner-content{display:flex;align-items:center;gap:10px}.banner-icon{font-size:1.2rem}.banner-text{font-size:.85rem;color:#ccc}.banner-text strong{color:#4ecdc4}.apply-gemini-btn{background:linear-gradient(90deg,#4ecdc4,#6c5ce7);border:none;padding:8px 16px;border-radius:6px;color:#fff;font-weight:600;font-size:.85rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.apply-gemini-btn:hover{transform:scale(1.05);box-shadow:0 4px 15px #4ecdc44d}.gemini-status-banner{padding:10px 14px;border-radius:8px;margin-bottom:12px;font-size:.85rem}.gemini-status-banner.timeout{background:#ffc1071a;border:1px solid rgba(255,193,7,.3);color:#ffc107}.gemini-status-banner.failed{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);color:#ff6b6b}.ranking-explanation{background:#4ecdc41a;padding:10px 12px;border-radius:8px;margin-bottom:12px;border-left:3px solid #4ECDC4}.ranking-explanation p{font-size:.85rem;color:#ccc;margin:0}.candidate-list{display:flex;flex-direction:column;gap:10px}.candidate-card{background:#28283ccc;border-radius:8px;padding:12px;border:2px solid transparent;cursor:pointer;transition:all .2s ease}.candidate-card:hover{border-color:#4ecdc480;background:#323246cc}.candidate-card.selected{border-color:#4ecdc4;background:#4ecdc426}.candidate-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.candidate-strategy{font-weight:600;font-size:.9rem;color:#e0e0e0}.candidate-rank{font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:10px}.candidate-rank.rank-1{background:linear-gradient(90deg,gold,orange);color:#000}.candidate-rank.rank-2{background:silver;color:#000}.candidate-rank.rank-3{background:#cd7f32;color:#fff}.candidate-rank.rank-4,.candidate-rank.rank-5{background:#ffffff1a;color:#aaa}.selected-badge{font-size:.75rem;color:#4ecdc4;margin-left:auto;font-weight:500}.candidate-metrics{display:flex;flex-direction:column;gap:6px}.candidate-metrics .metric-row{display:flex;align-items:center;gap:8px;font-size:.8rem}.candidate-metrics .metric-label{width:60px;color:#aaa}.candidate-metrics .metric-bar{flex:1;height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.candidate-metrics .metric-fill{height:100%;border-radius:3px;transition:width .3s ease}.candidate-metrics .metric-num{width:30px;text-align:right;color:#ccc;font-weight:500}.candidate-metrics .metric-value{flex:1;font-weight:500}.candidate-reason{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);font-size:.8rem;color:#999;font-style:italic}.collapsible-panel{background:#1e1e32e6;border-radius:12px;border:1px solid #333;overflow:hidden;width:100%}.collapsible-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;cursor:pointer;background:#28283c80;transition:background .2s ease}.collapsible-header:hover{background:#32324680}.collapsible-title{font-size:.9rem;font-weight:600;color:#aaa}.collapsible-icon{font-size:.7rem;color:#666;transition:transform .2s ease}.collapsible-panel.open .collapsible-icon{color:#4ecdc4}.collapsible-content{padding:0}.collapsible-content .info-panel,.collapsible-content .aesthetic-panel{border:none;border-radius:0;background:transparent}.collapsible-content .aesthetic-panel.compact{padding:12px 16px}.collapsible-content .info-panel{max-height:300px}.aesthetic-panel.compact{padding:12px}.aesthetic-panel.compact .overall-score{margin-bottom:12px}.candidate-panel{background:#1e1e32f2;border:2px solid rgba(78,205,196,.3);box-shadow:0 4px 20px #4ecdc41a}.selection-controls{display:flex;align-items:center;gap:10px;background:#0003;padding:8px 12px;border-radius:8px;margin-left:auto}.selection-info{font-size:12px;color:#4ecdc4;font-weight:500;min-width:80px}.selection-btn{padding:5px 12px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:11px;cursor:pointer;transition:all .15s ease}.selection-btn:hover:not(:disabled){background:#4ecdc433;border-color:#4ecdc4;color:#fff}.selection-btn:disabled{opacity:.4;cursor:not-allowed}.gemini-raw-response{margin-top:24px;background:#1e1e32cc;border:1px solid rgba(108,92,231,.3);border-radius:12px;padding:20px;max-width:1200px;margin-left:auto;margin-right:auto}.gemini-raw-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.gemini-raw-header h3{font-size:1.1rem;color:#6c5ce7;margin:0}.gemini-raw-meta{display:flex;gap:8px;flex-wrap:wrap}.gemini-raw-meta .meta-badge{background:#6c5ce733;color:#a89ef0;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500}.gemini-raw-info{background:#14142399;border-radius:8px;padding:12px 16px;margin-bottom:16px}.gemini-raw-info .info-row{margin-bottom:8px;line-height:1.5}.gemini-raw-info .info-row:last-child{margin-bottom:0}.gemini-raw-info .info-row strong{color:#4ecdc4;margin-right:8px}.gemini-raw-details{margin-top:12px}.gemini-raw-details summary{cursor:pointer;padding:10px 16px;background:#6c5ce726;border-radius:8px;color:#a89ef0;font-weight:500;transition:background .2s ease}.gemini-raw-details summary:hover{background:#6c5ce740}.gemini-raw-details[open] summary{border-radius:8px 8px 0 0;margin-bottom:0}.gemini-raw-text{background:#0a0a14cc;border:1px solid rgba(108,92,231,.2);border-top:none;border-radius:0 0 8px 8px;padding:16px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:12px;line-height:1.5;color:#ccc;white-space:pre-wrap;word-break:break-all;max-height:500px;overflow-y:auto;margin:0}.form-input{width:100%;padding:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;outline:none;transition:border-color .2s ease}.form-input:focus{border-color:#4ecdc4}.form-input::placeholder{color:#666}.form-input--small{padding:6px;font-size:13px}.form-textarea{width:100%;padding:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;resize:none;outline:none}.form-textarea:focus{border-color:#4ecdc4}.form-select{width:100%;padding:8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;cursor:pointer;outline:none}.form-label{display:block;font-size:13px;color:#aaa;margin-bottom:4px}.btn{padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#fff}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #4ecdc466}.btn--secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.btn--secondary:hover:not(:disabled){background:#ffffff26}.btn--danger{background:#ff6b6b33;color:#ff6b6b}.btn--danger:hover:not(:disabled){background:#ff6b6b4d}.btn--small{padding:6px 12px;font-size:12px}.btn--icon{padding:6px 10px;font-size:12px}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.flex-1{flex:1}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.text-xs{font-size:11px}.text-sm{font-size:13px}.text-base{font-size:14px}.text-lg{font-size:18px}.text-muted,.text-light{color:#aaa}.text-white{color:#fff}.text-accent{color:#4ecdc4}.font-bold{font-weight:700}.font-semibold{font-weight:600}.italic{font-style:italic}.panel{background:#1e1e32e6;border-radius:12px;padding:20px;border:1px solid rgba(255,255,255,.1)}.panel-title{font-size:16px;font-weight:600;color:#fff;margin-bottom:12px}.panel-section{margin-bottom:16px}.panel-section:last-child{margin-bottom:0}.card{padding:10px;background:#ffffff0d;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.card:hover{background:#ffffff14}.formation-creator{min-height:100vh}.formation-creator__sidebar{width:280px}.formation-creator__panel{width:300px}.formation-list{max-height:300px;overflow-y:auto}.formation-item{padding:10px;margin-bottom:8px;background:#ffffff0d;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.formation-item__name{font-weight:700;color:#fff;margin-bottom:4px}.formation-item__meta{font-size:11px;color:#aaa;margin-bottom:8px}.formation-item__actions{display:flex;gap:6px}.preset-btn{padding:6px 10px;background:#ffffff1a;border:none;border-radius:4px;color:#fff;font-size:12px;cursor:pointer;text-transform:capitalize;transition:all .2s ease}.preset-btn:hover{background:#ffffff26}.preset-btn--active{background:linear-gradient(135deg,#4ecdc4,#45b7d1)}.counter{display:flex;align-items:center;gap:12px}.counter__value{font-size:18px;font-weight:700;color:#4ecdc4}.counter__btn{padding:6px 12px;background:#ffffff1a;border:none;border-radius:4px;color:#fff;cursor:pointer}.counter__btn:hover:not(:disabled){background:#ffffff26}.counter__btn:disabled{color:#666;cursor:not-allowed}.cue-sheet-button{padding:8px 16px;background:linear-gradient(135deg,#6c5ce7,#a29bfe);border:none;border-radius:6px;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-left:auto}.cue-sheet-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #6c5ce766}.cue-sheet-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.cue-sheet-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;width:100%;max-width:800px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1)}.cue-sheet-modal-header{padding:20px 24px;background:#0003;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.cue-sheet-modal-header h2{font-size:1.5rem;background:linear-gradient(90deg,#4ecdc4,#45b7d1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.cue-sheet-header-controls{display:flex;align-items:center;gap:12px}.language-select{padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.language-select:focus{outline:none;border-color:#4ecdc4}.close-button{width:36px;height:36px;background:#ff6b6b33;border:none;border-radius:50%;color:#ff6b6b;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.close-button:hover{background:#ff6b6b4d}.cue-sheet-modal-content{padding:24px;overflow-y:auto;flex:1}.cue-sheet-empty-state{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:16px}.cue-sheet-empty-state p{color:#aaa;margin-bottom:24px;max-width:400px;margin-left:auto;margin-right:auto}.generate-button{padding:12px 32px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease}.generate-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #4ecdc466}.generate-button:disabled{opacity:.6;cursor:not-allowed}.cue-sheet-loading{text-align:center;padding:60px 20px}.loading-spinner{width:48px;height:48px;border:4px solid rgba(78,205,196,.2);border-top-color:#4ecdc4;border-radius:50%;margin:0 auto 16px;animation:spin 1s linear infinite}.cue-sheet-loading p{color:#aaa}.cue-sheet-error{text-align:center;padding:40px 20px}.error-icon{font-size:48px;margin-bottom:16px}.cue-sheet-error p{color:#ff6b6b;margin-bottom:16px}.retry-button{padding:10px 24px;background:#ff6b6b33;border:1px solid #FF6B6B;border-radius:6px;color:#ff6b6b;font-size:14px;cursor:pointer;transition:all .2s ease}.retry-button:hover{background:#ff6b6b4d}.cue-sheet-info{display:flex;gap:24px;margin-bottom:20px;padding:16px;background:#0003;border-radius:8px;flex-wrap:wrap}.info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:12px;color:#aaa;text-transform:uppercase}.info-value{font-size:16px;font-weight:600;color:#4ecdc4}.general-notes{margin-bottom:20px;padding:16px;background:#6c5ce71a;border-radius:8px;border-left:3px solid #6C5CE7}.general-notes h4{font-size:14px;color:#a29bfe;margin-bottom:12px}.general-notes ul{list-style:none;padding:0}.general-notes li{padding:4px 0;color:#ccc;font-size:14px}.general-notes li:before{content:"•";color:#6c5ce7;margin-right:8px}.cue-sheet-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px;flex-wrap:wrap}.dancer-filter{display:flex;align-items:center;gap:12px}.dancer-filter label{font-size:14px;color:#aaa}.dancer-filter select{padding:8px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;cursor:pointer}.dancer-filter select:focus{outline:none;border-color:#4ecdc4}.expand-controls{display:flex;gap:8px}.expand-controls button{padding:8px 16px;background:#ffffff1a;border:none;border-radius:6px;color:#fff;font-size:13px;cursor:pointer;transition:all .2s ease}.expand-controls button:hover{background:#fff3}.dancers-cue-list{display:flex;flex-direction:column;gap:12px}.dancer-cue-card{background:#0003;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1)}.dancer-cue-header{padding:16px;display:flex;justify-content:space-between;align-items:center;cursor:pointer;transition:background .2s ease}.dancer-cue-header:hover{background:#ffffff0d}.dancer-label{display:flex;align-items:center;gap:12px}.dancer-badge{padding:4px 12px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);border-radius:20px;font-size:13px;font-weight:600;color:#fff}.dancer-summary{color:#aaa;font-size:14px}.dancer-actions{display:flex;align-items:center;gap:12px}.copy-button{padding:6px 10px;background:#ffffff1a;border:none;border-radius:4px;cursor:pointer;transition:all .2s ease}.copy-button:hover{background:#fff3}.expand-icon{color:#aaa;font-size:12px}.dancer-cues{padding:0 16px 16px;display:flex;flex-direction:column;gap:12px}.cue-entry{display:flex;gap:16px;padding:12px;background:#ffffff0d;border-radius:6px}.cue-time{min-width:80px;padding:4px 8px;background:#6c5ce733;border-radius:4px;font-size:13px;font-weight:600;color:#a29bfe;text-align:center;white-space:nowrap}.cue-instruction{color:#fff;font-size:14px;line-height:1.5}.cue-notes{margin-top:8px;font-size:13px;color:#aaa;font-style:italic}.cue-sheet-footer{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);text-align:center}.regenerate-button{padding:10px 24px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;font-size:14px;cursor:pointer;transition:all .2s ease}.regenerate-button:hover:not(:disabled){background:#fff3;border-color:#4ecdc4}.regenerate-button:disabled{opacity:.6;cursor:not-allowed}.timeline-editor{display:flex;flex-direction:column;height:100vh;background:#0f0f1a;padding:0;margin:-20px}.timeline-header{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;background:#1e1e32f2;border-bottom:1px solid rgba(255,255,255,.1)}.header-left{display:flex;align-items:center;gap:16px}.back-link{color:#4ecdc4;text-decoration:none;font-size:14px;transition:color .2s}.back-link:hover{color:#6fe8e0}.project-name-input{background:transparent;border:none;color:#fff;font-size:18px;font-weight:600;padding:4px 8px;border-radius:4px;transition:background .2s}.project-name-input:hover,.project-name-input:focus{background:#ffffff1a;outline:none}.header-center{display:flex;gap:20px;color:#aaa;font-size:14px;align-items:center}.header-control{display:flex;align-items:center;gap:8px;user-select:none;-webkit-user-select:none}.header-control label{color:#aaa;font-size:13px;user-select:none;-webkit-user-select:none}.header-number-input{width:60px;padding:6px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:13px;text-align:center}.header-number-input:focus{outline:none;border-color:#4ecdc4}.header-select{padding:6px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:13px;cursor:pointer}.header-select:focus{outline:none;border-color:#4ecdc4}.header-confirm-btn{padding:6px 10px;border-radius:4px;border:1px solid #4ECDC4;background:#4ecdc4;color:#1a1a2e;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s}.header-confirm-btn:hover:not(:disabled){background:#6fe8e0}.header-confirm-btn:disabled{opacity:.4;cursor:default}.audience-toggle-btn{padding:6px 12px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s;min-width:70px}.audience-toggle-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.audience-toggle-btn.top{color:#4ecdc4;border-color:#4ecdc44d}.audience-toggle-btn.bottom{color:#ff6b6b;border-color:#ff6b6b4d}.metronome-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.metronome-label{font-size:13px;color:#aaa;-webkit-user-select:none;user-select:none}.toggle-switch{width:40px;height:22px;background:#ffffff26;border-radius:11px;position:relative;transition:all .25s ease;cursor:pointer}.toggle-switch:hover{background:#fff3}.toggle-switch.active{background:#4ecdc499}.toggle-slider{position:absolute;top:2px;left:2px;width:18px;height:18px;background:#fff;border-radius:50%;transition:all .25s ease;box-shadow:0 2px 4px #0003}.toggle-switch.active .toggle-slider{left:20px}.path-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.collapsible-section .collapsible-header{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.collapsible-section .collapsible-header:hover{color:#4ecdc4}.collapsible-header .collapse-icon{font-size:10px;opacity:.7;transition:transform .2s}.collapsible-section.collapsed .collapse-icon{transform:rotate(0)}.collapsible-header .section-badge{margin-left:auto;font-size:11px;color:#4ade80;background:#4ade801a;padding:2px 6px;border-radius:4px}.collapsible-section.collapsed>*:not(.collapsible-header){display:none}.path-section h4{font-size:13px;font-weight:600;color:#aaa;margin-bottom:12px}.generate-path-btn{width:100%;padding:10px 16px;border-radius:6px;border:1px solid #4ECDC4;background:#4ecdc41a;color:#4ecdc4;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;margin-bottom:8px}.generate-path-btn:hover{background:#4ecdc433}.path-status-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.path-status{font-size:11px;color:#4ade80}.generate-cue-sheet-btn,.view-cue-sheet-btn{padding:4px 10px;font-size:10px;border-radius:4px;border:none;cursor:pointer;transition:all .15s ease}.generate-cue-sheet-btn{background:#f59e0b33;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.generate-cue-sheet-btn:hover:not(:disabled){background:#f59e0b4d}.generate-cue-sheet-btn:disabled{opacity:.5;cursor:not-allowed}.view-cue-sheet-btn{background:#10b98133;color:#10b981;border:1px solid rgba(16,185,129,.3)}.view-cue-sheet-btn:hover{background:#10b9814d}.cue-sheet-algorithm{background:#8b5cf633;color:#a78bfa;padding:2px 8px;border-radius:4px;font-size:11px}.show-path-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:#aaa;cursor:pointer;margin-top:8px}.show-path-toggle input[type=checkbox]{width:16px;height:16px;accent-color:#4ECDC4;cursor:pointer}.path-hint{font-size:12px;color:#666;font-style:italic}.preset-section{margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.preset-section h4{font-size:13px;font-weight:600;color:#aaa;margin-bottom:12px}.preset-list{display:flex;flex-wrap:wrap;gap:6px}.preset-btn{padding:6px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;color:#ccc;font-size:11px;cursor:pointer;transition:all .2s}.preset-btn:hover{background:#4ecdc433;border-color:#4ecdc4;color:#4ecdc4}.preset-btn.small{padding:4px 8px;font-size:10px}.preset-empty{font-size:12px;color:#666}.preset-empty p{margin:4px 0}.preset-hint{font-style:italic;color:#555}.other-presets{margin-top:12px}.other-presets summary{font-size:12px;color:#aaa;cursor:pointer;padding:6px 0}.other-presets summary:hover{color:#aaa}.other-presets-content{margin-top:8px;display:flex;flex-direction:column;gap:8px}.preset-group{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.preset-group-label{font-size:11px;color:#aaa;min-width:70px}.algorithm-selector{display:flex;align-items:center;gap:8px;margin-bottom:12px}.algorithm-selector label{font-size:12px;color:#aaa}.algorithm-selector select{flex:1;padding:6px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:12px}.algorithm-selector select:disabled{opacity:.5;cursor:not-allowed}.algorithm-cards{margin-bottom:12px}.algorithm-cards-header{margin-bottom:8px}.paths-ready-label{font-size:11px;color:#10b981;font-weight:500}.algorithm-cards-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.algorithm-card{position:relative;padding:8px 6px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .15s ease;text-align:center;display:flex;flex-direction:column;align-items:center;min-height:48px}.algorithm-card:hover{background:#ffffff1a;border-color:#fff3}.algorithm-card.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.algorithm-card.selected{background:#3b82f626;border-color:#3b82f6}.algorithm-card.gemini-pick{background:#f59e0b26;border-color:#f59e0b}.algorithm-card.selected.gemini-pick{background:#f59e0b33;border-color:#f59e0b;box-shadow:0 0 8px #f59e0b4d}.algorithm-card-name{font-size:9px;color:#ddd;font-weight:500;line-height:1.2;height:22px;display:flex;align-items:center;justify-content:center}.algorithm-card.selected .algorithm-card-name,.algorithm-card.gemini-pick .algorithm-card-name{color:#fff}.algorithm-card-score{font-size:11px;font-weight:600;color:#aaa}.algorithm-card.selected .algorithm-card-score{color:#3b82f6}.algorithm-card.gemini-pick .algorithm-card-score{color:#f59e0b}.algorithm-card-badge{position:absolute;top:-6px;right:-4px;background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;font-size:8px;font-weight:600;padding:2px 4px;border-radius:4px;white-space:nowrap}.algorithm-card-check{position:absolute;top:-4px;right:-2px;background:#3b82f6;color:#fff;font-size:8px;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center}.gemini-evaluating-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;padding:6px;background:#f59e0b14;border-radius:4px;font-size:10px;color:#f59e0b}.gemini-pick-badge{background:linear-gradient(135deg,#f59e0b,#f97316);color:#fff;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;white-space:nowrap;animation:glow-pulse 2s ease-in-out infinite}@keyframes glow-pulse{0%,to{box-shadow:0 0 4px #f59e0b66}50%{box-shadow:0 0 12px #f59e0bcc}}.gemini-ranking-status{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;font-size:11px;color:#f59e0b;margin:8px 0}.gemini-scores{margin:8px 0}.gemini-scores details{background:#ffffff08;border-radius:6px;border:1px solid rgba(255,255,255,.1)}.gemini-scores summary{padding:8px 12px;font-size:11px;color:#aaa;cursor:pointer;-webkit-user-select:none;user-select:none}.gemini-scores summary:hover{color:#f59e0b}.gemini-scores .score-list{padding:8px;display:flex;flex-direction:column;gap:4px}.gemini-scores .score-item{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-radius:4px;font-size:11px;cursor:pointer;transition:background .15s ease}.gemini-scores .score-item-header{display:flex;align-items:center;gap:8px}.gemini-scores .score-item:hover{background:#ffffff0d}.gemini-scores .score-item.disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.gemini-scores .score-item.selected{background:#4ecdc426;border:1px solid rgba(78,205,196,.3)}.gemini-scores .score-item.pick{background:#f59e0b1a}.gemini-scores .score-item.pick.selected{background:#f59e0b33;border-color:#f59e0b66}.gemini-scores .algo-name{flex:1;color:#ccc}.gemini-scores .algo-score{font-weight:600;color:#4ecdc4;min-width:24px;text-align:right}.gemini-scores .pick-star{color:#f59e0b;font-size:12px}.gemini-scores .algo-reason{font-size:10px;color:#aaa;line-height:1.4;padding-left:2px}.gemini-scores .score-item.pick .algo-reason{color:#c9a227}.gemini-scores .score-breakdown{display:flex;gap:8px;font-size:10px;color:#aaa;padding:4px 0;flex-wrap:wrap}.gemini-scores .score-breakdown span{display:flex;align-items:center;gap:2px;padding:2px 6px;background:#ffffff0d;border-radius:3px;cursor:help}.gemini-scores .score-item.pick .score-breakdown span{background:#f59e0b1a}.gemini-scores .algo-insight{font-size:10px;color:#aaa;line-height:1.4;padding:4px 6px;background:#4ecdc40d;border-radius:3px;font-style:italic}.gemini-scores .score-item.pick .algo-insight{background:#f59e0b14;color:#c9a227}.gemini-pick-reason{padding:10px 12px;margin:0 8px 8px;background:#f59e0b1a;border-radius:6px;border-left:3px solid #f59e0b;font-size:12px;color:#e0e0e0;line-height:1.5}.gemini-pick-reason .pick-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.gemini-pick-reason .pick-label{color:#f59e0b;font-weight:600}.gemini-pick-reason .pick-algorithm{color:#fff;font-weight:600;background:#f59e0b33;padding:2px 8px;border-radius:4px}.gemini-pick-reason .pick-reason{color:#b0b0b0;font-size:11px;line-height:1.4}.gemini-pick-reason .reason-label{color:#4ecdc4;font-weight:500}.transition-context{display:inline-block;padding:4px 10px;margin-bottom:10px;background:#4ecdc426;border:1px solid rgba(78,205,196,.3);border-radius:12px;font-size:12px;font-weight:500;color:#4ecdc4}.gemini-pick-reason strong{color:#f59e0b}.algo-insight .insight-label{color:#4ecdc4;margin-right:4px}.path-generation-status{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:6px;font-size:12px;margin:8px 0}.path-generation-status.loading{background:#4ecdc41a;border:1px solid rgba(78,205,196,.3);color:#4ecdc4}.path-generation-status.success{background:#4ade801a;border:1px solid rgba(74,222,128,.3);color:#4ade80}.generation-progress-container{display:flex;flex-direction:column;gap:6px;width:100%}.generation-progress-header{display:flex;align-items:center;gap:8px}.generation-progress-text{font-weight:500;font-size:12px}.generation-progress-bar{width:100%;height:6px;background:#4ecdc433;border-radius:3px;overflow:hidden}.generation-progress-fill{height:100%;background:linear-gradient(90deg,#4ecdc4,#45b7aa);border-radius:3px;transition:width .3s ease}.generation-progress-algorithm{font-size:11px;color:#ffffffb3;font-style:italic}.loading-spinner{width:14px;height:14px;border:2px solid rgba(78,205,196,.3);border-top-color:#4ecdc4;border-radius:50%;animation:spin .8s linear infinite;filter:drop-shadow(0 0 4px rgba(78,205,196,.5))}@keyframes spin{to{transform:rotate(360deg)}}.loading-spinner.small{width:16px;height:16px;border-width:2px}.loading-spinner.large{width:24px;height:24px;border-width:3px;filter:drop-shadow(0 0 8px rgba(78,205,196,.6))}.generate-path-btn:disabled{opacity:.6;cursor:not-allowed}.playback-btn.generating{cursor:wait}.playback-status{font-size:12px;color:#4ecdc4;margin-left:8px}.cue-sheet-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.cue-sheet-modal{background:#1a1a2e;border-radius:12px;max-width:900px;width:100%;max-height:80vh;overflow-y:auto;border:1px solid rgba(255,255,255,.1);box-shadow:0 20px 60px #00000080}.cue-sheet-header{position:sticky;top:0;background:#1a1a2e;padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;align-items:center;gap:12px}.cue-sheet-header h2{font-size:20px;font-weight:600;color:#fff;margin:0;flex:1}.cue-sheet-meta{display:flex;gap:16px;font-size:13px;color:#aaa}.cue-sheet-header-buttons{display:flex;align-items:center;gap:8px}.cue-sheet-delete{padding:6px 12px;border-radius:6px;border:none;background:#ff6b6b26;color:#ff6b6b;font-size:13px;cursor:pointer;transition:all .2s}.cue-sheet-delete:hover{background:#ff6b6b4d}.cue-sheet-close{width:32px;height:32px;border-radius:50%;border:none;background:#ffffff1a;color:#fff;font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.cue-sheet-close:hover{background:#ff6b6b4d;color:#ff6b6b}.cue-sheet-notes{padding:16px 24px;background:#4ecdc41a;border-bottom:1px solid rgba(255,255,255,.05)}.cue-sheet-notes h4{font-size:14px;font-weight:600;color:#4ecdc4;margin:0 0 8px}.cue-sheet-notes ul{margin:0;padding-left:20px}.cue-sheet-notes li{font-size:13px;color:#ccc;margin-bottom:4px}.cue-sheet-dancers{padding:16px 24px;display:flex;flex-direction:column;gap:16px}.dancer-cue-card{background:#ffffff08;border-radius:8px;border:1px solid rgba(255,255,255,.08);overflow:hidden}.dancer-cue-header{padding:12px 16px;background:#ffffff0d;display:flex;align-items:center;gap:12px}.dancer-label{background:#4ecdc4;color:#1a1a2e;font-weight:700;font-size:13px;padding:4px 10px;border-radius:4px}.dancer-summary{font-size:13px;color:#aaa;font-style:italic}.dancer-cues{padding:12px 16px;display:flex;flex-direction:column;gap:8px}.cue-entry{display:flex;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05)}.cue-entry:last-child{border-bottom:none}.cue-time{min-width:80px;font-size:12px;font-weight:600;color:#aaa;padding-top:2px}.cue-content{flex:1}.cue-instruction{font-size:14px;color:#e0e0e0;margin:0 0 4px;line-height:1.4}.cue-notes{font-size:12px;color:#aaa;margin:0;font-style:italic}.cue-sheet-background-indicator{position:fixed;bottom:20px;right:20px;background:#1e1e32f2;border:1px solid rgba(78,205,196,.3);border-radius:8px;padding:10px 16px;display:flex;align-items:center;gap:10px;font-size:12px;color:#4ecdc4;z-index:500;box-shadow:0 4px 20px #0000004d}.cue-sheet-ready-btn{position:fixed;bottom:20px;right:20px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);border:none;border-radius:8px;padding:12px 20px;font-size:14px;font-weight:600;color:#1a1a2e;cursor:pointer;z-index:500;box-shadow:0 4px 20px #4ecdc44d;transition:all .2s}.cue-sheet-ready-btn:hover{transform:translateY(-2px);box-shadow:0 6px 25px #4ecdc466}.pov-selector{display:flex;align-items:center;gap:8px}.pov-selector label{font-size:12px;color:#ffffffb3;font-weight:500}.pov-select{min-width:130px}.pov-badge{background:#ffd70033;border:1px solid rgba(255,215,0,.4);border-radius:12px;padding:4px 10px;font-size:11px;color:gold;font-weight:500}.cue-sheet-notes-prominent{background:#4ecdc426;border:1px solid rgba(78,205,196,.3);border-radius:8px;padding:16px;margin-bottom:20px}.cue-sheet-notes-prominent h4{color:#4ecdc4;font-size:16px;margin-bottom:12px}.cue-sheet-single-dancer{max-width:100%}.cue-sheet-single-dancer .dancer-cue-card-highlight{background:#ffd7001a;border:2px solid rgba(255,215,0,.4);box-shadow:0 0 20px #ffd70026}.cue-sheet-single-dancer .dancer-cue-card-highlight .dancer-label{color:gold;font-size:18px}.cue-sheet-single-dancer .dancer-cue-card-highlight .cue-entry{padding:12px;background:#ffffff08;border-radius:6px;margin-bottom:8px}.cue-sheet-single-dancer .dancer-cue-card-highlight .cue-time{font-size:14px;font-weight:600;color:gold}.cue-sheet-single-dancer .dancer-cue-card-highlight .cue-instruction{font-size:15px;line-height:1.5}.pov-cue-sheet{background:#14141ebf;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,215,0,.3);border-radius:8px;padding:12px 16px;margin-bottom:12px;max-height:150px;overflow-y:auto;transition:all .2s ease}.pov-cue-sheet:hover{background:#14141ee6}.pov-cue-sheet.collapsed{max-height:44px;overflow:hidden;padding:10px 16px;background:#14141e99}.pov-cue-sheet.collapsed:hover{background:#14141ebf}.pov-cue-card{display:flex;flex-direction:column;gap:8px}.pov-cue-header{display:flex;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,215,0,.2)}.pov-cue-sheet.collapsed .pov-cue-header{padding-bottom:0;border-bottom:none}.pov-cue-toggle{margin-left:auto;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#aaa;font-size:10px;padding:4px 8px;cursor:pointer;transition:all .15s ease}.pov-cue-toggle:hover{background:#fff3;color:#fff}.pov-cue-compact-info{font-size:12px;color:#fffc;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.pov-dancer-label{font-size:14px;font-weight:600;color:gold}.pov-dancer-summary{font-size:12px;color:#fff9}.pov-cue-list{display:flex;flex-direction:column;gap:6px}.pov-cue-item{display:flex;align-items:flex-start;gap:12px;padding:6px 8px;background:#ffffff08;border-radius:4px}.pov-cue-time{font-size:11px;font-weight:600;color:gold;min-width:60px;flex-shrink:0}.pov-cue-instruction{font-size:12px;color:#ffffffe6;line-height:1.4}.pov-general-notes{background:#142828bf;border-color:#4ecdc44d}.pov-general-notes:hover{background:#142828e6}.pov-general-notes.collapsed{background:#14282899}.pov-general-notes .pov-dancer-label{color:#4ecdc4}.pov-general-notes .pov-cue-header{border-bottom-color:#4ecdc433}.pov-general-notes .pov-cue-toggle{border-color:#4ecdc44d}.pov-general-notes .pov-cue-toggle:hover{background:#4ecdc433}.pov-cue-active{background:#ffd70033!important;border-left:3px solid #FFD700;animation:pulse-cue 1.5s infinite}@keyframes pulse-cue{0%,to{background:#ffd70033}50%{background:#ffd70059}}.pov-cue-active .pov-cue-time{color:gold!important}.pov-cue-active .pov-cue-instruction{color:#fff!important;font-weight:500}.pov-cue-current{padding:16px 20px;text-align:center}.pov-cue-time-badge{display:inline-block;background:#ffd70040;color:gold;padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;margin-bottom:10px;letter-spacing:.5px}.pov-anchor-dancers{background:#64c8ff26;color:#64c8ff;padding:6px 12px;border-radius:8px;font-size:14px;margin-bottom:12px;border-left:3px solid #64C8FF}.pov-anchor-dancers strong{margin-right:6px}.pov-cue-instruction-main{font-size:20px;font-weight:500;color:#fff;line-height:1.4;animation:fadeInCue .3s ease-out}.pov-cue-notes{margin-top:8px;font-size:14px;color:#fff9;font-style:italic}.pov-cue-waiting{opacity:.5}.pov-cue-waiting .pov-cue-instruction-main{font-size:16px;color:#ffffff80}@keyframes fadeInCue{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.rehearsal-mode{background:#0a0a12}.rehearsal-mode .timeline-main{grid-template-columns:1fr;max-width:100%}.rehearsal-mode .stage-panel-fullwidth{max-width:900px;margin:0 auto}.rehearsal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background:linear-gradient(135deg,#9333ea26,#4ecdc41a);border-bottom:1px solid rgba(147,51,234,.3)}.rehearsal-title{display:flex;align-items:center;gap:16px}.rehearsal-title h2{font-size:20px;font-weight:600;color:#fff;margin:0}.rehearsal-badge{background:#9333ea4d;border:1px solid rgba(147,51,234,.5);border-radius:16px;padding:4px 12px;font-size:12px;color:#a78bfa;font-weight:500}.rehearsal-controls{display:flex;align-items:center;gap:16px}.rehearsal-controls .play-btn{background:linear-gradient(135deg,#9333ea,#7c3aed);border:none;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease}.rehearsal-controls .play-btn:hover{transform:scale(1.05);box-shadow:0 4px 20px #9333ea66}.rehearsal-controls .play-btn.playing{background:linear-gradient(135deg,#dc2626,#b91c1c)}.count-badge{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;color:#4ecdc4}.mode-toggle-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:8px 14px;font-size:12px;color:#fff;cursor:pointer;transition:all .2s ease}.mode-toggle-btn:hover{background:#fff3;border-color:#fff6}.mode-toggle-btn.rehearsal-btn{background:#9333ea33;border-color:#9333ea66;color:#a78bfa}.mode-toggle-btn.rehearsal-btn:hover{background:#9333ea4d;border-color:#9333ea99}.rehearsal-mode .playback-controls{justify-content:center;background:transparent;border:none;padding:8px}.rehearsal-mode .playback-controls .playback-btn,.rehearsal-mode .playback-controls .speed-control,.rehearsal-mode .playback-controls .zoom-control,.rehearsal-mode .formation-quick-nav{display:none}.quick-swap-overlay{position:fixed;inset:0;z-index:700;background:#0000004d}.quick-swap-popup{position:fixed;transform:translate(-50%,-100%);margin-top:-10px;background:#1e1e2dfa;border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 8px 32px #0006;min-width:180px;max-width:250px;max-height:300px;overflow:hidden;animation:quickSwapFadeIn .15s ease}@keyframes quickSwapFadeIn{0%{opacity:0;transform:translate(-50%,-100%) scale(.95)}to{opacity:1;transform:translate(-50%,-100%) scale(1)}}.quick-swap-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1);font-size:13px;color:#aaa}.quick-swap-close{width:20px;height:20px;border:none;background:#ffffff1a;color:#888;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .15s}.quick-swap-close:hover{background:#fff3;color:#fff}.quick-swap-list{padding:6px;max-height:240px;overflow-y:auto}.quick-swap-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:6px;cursor:pointer;color:#fff;font-size:13px;text-align:left;transition:background .15s}.quick-swap-item:hover{background:#4ecdc426}.quick-swap-badge{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.quick-swap-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toast-container{position:fixed;bottom:80px;right:20px;z-index:600;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 160px);overflow:hidden;pointer-events:none}.toast-notification{position:relative;background:#1e1e32fa;border-radius:8px;padding:14px 20px 18px;display:flex;align-items:center;gap:12px;font-size:14px;box-shadow:0 4px 25px #0006;cursor:pointer;animation:toastSlideIn .3s ease;max-width:350px;min-width:200px;overflow:hidden;pointer-events:auto}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-notification.hiding{animation:toastSlideOut .3s ease forwards}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-notification.success{border:1px solid rgba(74,222,128,.4);color:#4ade80}.toast-notification.error{border:1px solid rgba(255,107,107,.4);color:#ff6b6b}.toast-notification.info{border:1px solid rgba(78,205,196,.4);color:#4ecdc4}.toast-notification:hover{transform:translateY(-2px)}.toast-progress{position:absolute;bottom:0;left:0;height:3px;background:currentColor;opacity:.6;animation:toastProgress linear forwards}.toast-notification.success .toast-progress{background:#4ade80}.toast-notification.error .toast-progress{background:#ff6b6b}.toast-notification.info .toast-progress{background:#4ecdc4}@keyframes toastProgress{0%{width:100%}to{width:0%}}.toast-close{background:none;border:none;color:inherit;font-size:18px;cursor:pointer;opacity:.6;padding:0 4px;margin-left:auto}.toast-close:hover{opacity:1}.onboarding-overlay{position:fixed;inset:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s ease}.onboarding-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;max-width:520px;width:90%;box-shadow:0 25px 80px #00000080,0 0 0 1px #4ecdc433;animation:slideUp .4s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.onboarding-header{padding:24px 28px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.onboarding-header h2{margin:0;font-size:22px;color:#fff}.onboarding-content{padding:24px 28px}.onboarding-steps{display:flex;flex-direction:column;gap:16px;margin-bottom:24px}.onboarding-step{display:flex;gap:14px;align-items:flex-start}.step-number{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#1a1a2e;font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.step-content h4{margin:0 0 4px;color:#fff;font-size:15px}.step-content p{margin:0;color:#aaa;font-size:13px;line-height:1.5}.onboarding-tips{background:#4ecdc41a;border-radius:8px;padding:14px 16px;border:1px solid rgba(78,205,196,.2)}.onboarding-tips h4{margin:0 0 10px;font-size:14px;color:#4ecdc4}.onboarding-tips ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:8px}.onboarding-tips li{font-size:12px;color:#bbb}.onboarding-tips kbd{background:#ffffff1a;padding:2px 6px;border-radius:3px;font-family:monospace;font-size:11px;margin-right:4px}.onboarding-footer{padding:16px 28px 24px;display:flex;justify-content:flex-end}.onboarding-dismiss{padding:12px 28px;border-radius:8px;border:none;background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#1a1a2e;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s}.onboarding-dismiss:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4ecdc466}.header-right{display:flex;align-items:center;gap:8px}.header-divider{width:1px;height:24px;background:#fff3;margin:0 8px}.header-btn{padding:8px 16px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#e0e0e0;font-size:14px;cursor:pointer;transition:all .2s}.header-btn:hover{background:#ffffff1a;border-color:#ffffff4d}.header-btn.primary{background:#4ecdc4;border-color:#4ecdc4;color:#1a1a2e}.header-btn.primary:hover{background:#6fe8e0}.header-btn.generate-all-btn{background:linear-gradient(135deg,#6c5ce7,#a29bfe);border-color:#6c5ce7;color:#fff;font-weight:600;display:flex;align-items:center;gap:6px}.header-btn.generate-all-btn:hover:not(:disabled){background:linear-gradient(135deg,#5b4cdb,#9085f7);border-color:#5b4cdb}.header-btn.generate-all-btn:disabled{opacity:.5;cursor:not-allowed}.header-btn.generate-all-btn.generating{background:linear-gradient(135deg,#636e72,#b2bec3);border-color:#636e72}.transition-progress{display:flex;gap:4px;align-items:center;padding:4px 8px;background:#0003;border-radius:4px}.progress-dot{font-size:12px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .3s ease}.progress-dot.pending{color:#666;background:#64646433}.progress-dot.partial{color:#f39c12;background:#f39c1233;animation:pulse 1s ease-in-out infinite}.progress-dot.complete{color:#2ecc71;background:#2ecc7133}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.timeline-main{display:flex;flex:1;overflow:hidden;justify-content:center}.presets-panel{width:220px;min-width:220px;background:#1e1e32e6;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;overflow:hidden}.presets-panel h3{font-size:14px;font-weight:600;color:#fff;padding:16px;margin:0;border-bottom:1px solid rgba(255,255,255,.1)}.preset-filter{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#00000026;border-bottom:1px solid rgba(255,255,255,.05)}.preset-filter label{font-size:11px;color:#888;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.preset-filter-select{flex:1}.preset-grid-container{flex:1;overflow-y:auto;padding:8px}.preset-group{margin-bottom:16px}.preset-group:last-child{margin-bottom:0}.preset-group-header{display:flex;align-items:center;gap:8px;padding:6px 8px;margin-bottom:8px;font-size:11px;font-weight:600;color:#4ecdc4;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(90deg,rgba(78,205,196,.15) 0%,transparent 100%);border-left:3px solid #4ECDC4;border-radius:0 6px 6px 0}.preset-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;padding:4px;align-content:start}.preset-preview-card{display:flex;flex-direction:column;align-items:center;padding:6px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;cursor:grab;transition:all .15s ease;-webkit-user-select:none;user-select:none}.preset-preview-card:active{cursor:grabbing}.preset-preview-card:hover{background:#4ecdc41a;border-color:#4ecdc44d;transform:translateY(-2px)}.preset-preview-card.selected{background:#4ecdc426;border-color:#4ecdc4}.preset-preview-card.dragging{opacity:.5;transform:scale(.95);cursor:grabbing;border-color:#4ecdc4;box-shadow:0 2px 8px #4ecdc44d}.preset-preview-svg{border-radius:4px;margin-bottom:4px}.preset-preview-label{font-size:9px;color:#ccc;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-preview-count{font-size:8px;color:#4ecdc4;margin-top:2px}.stage-panel{flex:0 1 auto;display:flex;flex-direction:column;padding:20px;overflow:auto;align-items:center}.stage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;width:100%;padding:12px 16px;background:#19192899;border-radius:12px;border:1px solid rgba(255,255,255,.05)}.stage-header-left,.stage-header-right{display:flex;align-items:center;gap:12px}.stage-header h3{font-size:15px;font-weight:600;color:#fff;margin:0;padding:6px 14px;background:#ffffff0f;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.count-display{font-size:13px;color:#4ecdc4;font-weight:600;background:#4ecdc414;padding:6px 14px;border-radius:8px;border:1px solid rgba(78,205,196,.15);font-variant-numeric:tabular-nums}.selection-actions{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#4ecdc41a;border:1px solid rgba(78,205,196,.2);border-radius:8px}.selection-count{font-size:12px;color:#4ecdc4;font-weight:500;margin-right:4px}.rotate-btn{width:28px;height:28px;border:none;border-radius:6px;background:#4ecdc426;color:#4ecdc4;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.rotate-btn:hover{background:#4ecdc44d;transform:scale(1.05)}.rotate-btn:active{transform:scale(.95)}.formation-rotation-controls{display:flex;align-items:center;gap:8px;padding:4px 12px;background:#6c5ce71a;border:1px solid rgba(108,92,231,.2);border-radius:8px;margin-left:8px}.rotation-label{font-size:11px;color:#a29bfe;font-weight:500}.rotation-start-btn{padding:5px 12px;border:none;border-radius:6px;background:linear-gradient(135deg,#6c5ce74d,#a29bfe4d);color:#a29bfe;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease}.rotation-start-btn:hover{background:linear-gradient(135deg,#6c5ce780,#a29bfe80);color:#fff;transform:scale(1.02)}.rotation-slider{width:120px;height:6px;-webkit-appearance:none;appearance:none;background:linear-gradient(to right,#ff6b6b80,#6c5ce74d,#4ecdc480);border-radius:3px;outline:none;cursor:pointer}.rotation-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#a29bfe,#6c5ce7);border:2px solid #fff;cursor:grab;box-shadow:0 2px 6px #0000004d;transition:transform .1s ease}.rotation-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}.rotation-slider::-webkit-slider-thumb:active{cursor:grabbing;transform:scale(.95)}.rotation-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:linear-gradient(135deg,#a29bfe,#6c5ce7);border:2px solid #fff;cursor:grab;box-shadow:0 2px 6px #0000004d}.rotation-angle-display{min-width:40px;font-size:12px;font-weight:600;color:#a29bfe;text-align:center}.rotation-cancel-btn{width:22px;height:22px;border:none;border-radius:50%;background:#ff6b6b33;color:#ff6b6b;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.rotation-cancel-btn:hover{background:#ff6b6b66;color:#fff}.formation-quick-nav{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap;user-select:none;-webkit-user-select:none}.quick-nav-btn{padding:6px 12px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#aaa;font-size:12px;cursor:pointer;transition:all .2s;user-select:none;-webkit-user-select:none}.quick-nav-btn:hover{background:#ffffff1a;color:#fff}.quick-nav-btn.active{background:#4ecdc4;border-color:#4ecdc4;color:#1a1a2e}.properties-panel{width:280px;background:#1e1e32cc;border-left:1px solid rgba(255,255,255,.1);padding:20px;overflow-y:auto}.properties-panel h3{font-size:14px;font-weight:600;color:#fff;margin-bottom:16px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.formation-selection-header{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:16px;background:linear-gradient(135deg,#4ecdc433,#45b7d126);border:1px solid rgba(78,205,196,.4);border-radius:8px;animation:selectionPulse 2s ease-in-out infinite}@keyframes selectionPulse{0%,to{box-shadow:0 0 #4ecdc44d}50%{box-shadow:0 0 8px 2px #4ecdc433}}.formation-selection-badge{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);border-radius:8px;flex-shrink:0}.formation-number{font-size:14px;font-weight:700;color:#1a1a2e}.formation-selection-info{display:flex;flex-direction:column;gap:2px;min-width:0}.formation-selection-label{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.formation-selection-name{font-size:15px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.property-row{margin-bottom:12px}.property-row label{display:block;font-size:12px;color:#aaa;margin-bottom:4px}.property-row input,.property-row select{width:100%;padding:8px 10px;border-radius:4px;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:14px}.property-row input:focus,.property-row select:focus{outline:none;border-color:#4ecdc4}.property-value{color:#4ecdc4;font-size:14px}.formation-actions{display:flex;gap:8px;margin:12px 0;padding:10px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1)}.action-btn{flex:1;padding:8px 12px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff0d;color:#ccc;font-size:12px;cursor:pointer;transition:all .15s ease}.action-btn:hover{background:#ffffff1a;border-color:#ffffff4d;color:#fff}.exit-all-btn:hover{background:#ff6b6b33;border-color:#ff6b6b;color:#ff6b6b}.dancer-names-section{margin:12px 0;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#0003}.dancer-names-section summary{padding:10px 12px;cursor:pointer;font-weight:500;color:#ccc;display:flex;align-items:center;gap:8px}.dancer-names-section summary:hover{color:#fff}.dancer-names-section .swap-hint{font-size:11px;color:#f59e0b;font-weight:400}.dancer-names-grid{padding:8px 12px 12px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px;max-height:200px;overflow-y:auto}.dancer-name-row{display:flex;align-items:center;gap:6px}.dancer-name-row.swap-source{background:#f59e0b33;border-radius:4px;padding:2px;margin:-2px}.dancer-id-badge{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:#fff;flex-shrink:0}.dancer-name-input{flex:1;padding:4px 8px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:#ffffff0d;color:#fff;font-size:11px;min-width:0}.dancer-name-input:focus{border-color:#4ecdc4;outline:none}.dancer-name-input::placeholder{color:#ffffff4d}.dancer-swap-tip{font-size:10px;color:#ffffff80;padding:8px 12px;margin:0;border-top:1px solid rgba(255,255,255,.1)}.no-selection{color:#666;font-size:14px;text-align:center;padding:20px 0}.playback-controls{display:flex;align-items:center;justify-content:center;gap:16px;padding:12px 20px;background:#1e1e32f2;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);user-select:none;-webkit-user-select:none}.playback-btn{width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:#ffffff0d;color:#fff;font-size:16px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none}.playback-btn:hover{background:#ffffff1a}.playback-btn.primary{background:#4ecdc4;border-color:#4ecdc4;color:#1a1a2e}.playback-btn.primary:hover{background:#6fe8e0}.speed-control,.zoom-control{display:flex;align-items:center;gap:8px;color:#aaa;font-size:13px}.speed-control .custom-select{min-width:70px}.speed-control .custom-select-trigger{padding:4px 10px;font-size:13px}.zoom-control input[type=range]{width:100px;height:4px;-webkit-appearance:none;appearance:none;background:#fff3;border-radius:2px;outline:none}.zoom-control input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:#4ecdc4;cursor:pointer}.zoom-control .zoom-level{font-size:11px;color:#4ecdc4;min-width:28px;text-align:center}.timeline-panel{background:#141423f2;border-top:1px solid rgba(255,255,255,.1)}.timeline-container{overflow-x:auto;overflow-y:hidden;padding:0;user-select:none;-webkit-user-select:none}.timeline-ruler{position:relative;height:24px;background:#1e1e32cc;border-bottom:1px solid rgba(255,255,255,.1);user-select:none;-webkit-user-select:none}.ruler-mark{position:absolute;height:100%;display:flex;flex-direction:column;align-items:center;pointer-events:none}.ruler-label{font-size:10px;color:#666;padding-top:2px;pointer-events:none}.ruler-mark.major .ruler-label{color:#999;font-weight:600}.ruler-mark.minor .ruler-label{color:#555;font-size:9px}.ruler-tick{flex:1;width:1px;background:#ffffff26}.ruler-mark.major .ruler-tick{background:#ffffff4d;width:2px}.ruler-mark.minor .ruler-tick{background:#fff3}.timeline-track{position:relative;min-height:90px;cursor:pointer;transition:background .2s ease}.timeline-track.drag-over{background:#4ecdc426;box-shadow:inset 0 0 0 2px #4ecdc480}.drop-indicator{position:absolute;top:0;bottom:0;width:2px;pointer-events:none;z-index:100;transform:translate(-1px)}.drop-indicator .drop-indicator-line{position:absolute;top:0;bottom:0;left:0;width:2px;background:#4ecdc4;box-shadow:0 0 8px #4ecdc4cc}.drop-indicator.move .drop-indicator-line{background:#f59e0b;box-shadow:0 0 8px #f59e0bcc}.drop-indicator .drop-indicator-label{position:absolute;top:-20px;left:50%;transform:translate(-50%);background:#4ecdc4;color:#1a1a2e;font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;white-space:nowrap}.drop-indicator.move .drop-indicator-label{background:#f59e0b}.grid-line{position:absolute;top:0;bottom:0;width:1px;background:#ffffff0d}.grid-line.major{background:#ffffff1a}.playhead{position:absolute;top:-24px;bottom:0;width:16px;margin-left:-7px;z-index:100;pointer-events:auto;cursor:ew-resize;transition:left 33ms linear}.playhead.dragging{transition:none}.playhead-head{width:12px;height:12px;background:#ff6b6b;border-radius:2px;transform:translate(2px) rotate(45deg);margin-bottom:-6px;transition:transform .1s,box-shadow .1s}.playhead:hover .playhead-head,.playhead.dragging .playhead-head{transform:translate(2px) rotate(45deg) scale(1.2);box-shadow:0 0 8px #ff6b6b99}.playhead-line{width:2px;height:calc(100% + 6px);background:#ff6b6b;margin-left:7px}.playhead.dragging .playhead-line{background:#f88;box-shadow:0 0 4px #ff6b6b66}.formation-block{position:absolute;top:4px;height:calc(100% - 8px);background:linear-gradient(180deg,#4ecdc44d,#4ecdc426);border:1px solid rgba(78,205,196,.5);border-radius:6px;cursor:pointer;transition:all .2s;overflow:hidden;user-select:none;-webkit-user-select:none}.formation-block:hover{background:linear-gradient(180deg,#4ecdc466,#4ecdc433);border-color:#4ecdc4}.formation-block.selected{background:linear-gradient(180deg,#4ecdc480,#4ecdc44d);border-color:#4ecdc4;box-shadow:0 0 10px #4ecdc44d}.formation-block.resizing{opacity:.8}.formation-block.dragging{opacity:.7;transform:scale(1.02);cursor:grabbing;box-shadow:0 8px 24px #0006,0 0 0 2px #4ecdc4;z-index:50;transition:none}.formation-block.drag-ghost{position:fixed;pointer-events:none;z-index:1000;opacity:.85;transform:rotate(2deg) scale(1.05);box-shadow:0 12px 40px #00000080,0 0 0 3px #4ecdc499}.formation-block.just-added{animation:formationFlash .6s ease-out}@keyframes formationFlash{0%{background:linear-gradient(180deg,#4ecdc4cc,#4ecdc480);transform:scale(1.02)}to{background:linear-gradient(180deg,#4ecdc44d,#4ecdc426);transform:scale(1)}}.formation-block-content{padding:4px 6px;display:flex;flex-direction:column;gap:2px;height:100%;overflow:hidden}.formation-label{font-size:13px;font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0}.formation-label-input{width:100%;padding:2px 4px;font-size:13px;font-weight:600;background:#0000004d;border:1px solid #4ECDC4;border-radius:2px;color:#fff;outline:none}.formation-count-info{font-size:9px;color:#ffffff80;flex-shrink:0}.formation-mini-preview{margin-top:auto;border-radius:3px;flex-shrink:0}.mini-dancer{position:absolute;width:4px;height:4px;border-radius:50%}.more-dancers{position:absolute;right:2px;bottom:2px;font-size:8px;color:#ffffff80}.formation-action-buttons{position:absolute;top:2px;right:2px;display:flex;gap:2px;opacity:0;transition:opacity .2s}.formation-block.selected .formation-action-buttons{opacity:1}.formation-action-btn{width:16px;height:16px;border-radius:50%;border:none;color:#fff;font-size:10px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.formation-action-btn.duplicate{background:#4ecdc4}.formation-action-btn.duplicate:hover{background:#45b7d1}.formation-action-btn.delete{background:#ff6b6b;font-size:12px}.formation-action-btn.delete:hover{background:#ff5252}.formation-resize-handle{position:absolute;top:0;right:0;bottom:0;width:8px;cursor:ew-resize;background:linear-gradient(to right,transparent,rgba(78,205,196,.3));border-left:2px dotted rgba(78,205,196,.5);transition:all .15s ease}.formation-resize-handle:hover{background:linear-gradient(to right,transparent,rgba(78,205,196,.6));border-left-color:#4ecdc4}.transition-indicator{position:absolute;bottom:4px;right:8px;width:8px;height:8px;border-radius:2px}.transition-indicator.linear{background:#4ecdc4}.transition-indicator.curved{background:#ffd93d}.transition-indicator.hybrid{background:#a8e6cf}.hold-indicator{position:absolute;top:0;right:0;height:100%;background:repeating-linear-gradient(-45deg,#ffc10733,#ffc10733 4px,#ffc10759 4px 8px);border-left:2px solid rgba(255,193,7,.6);display:flex;align-items:center;justify-content:center;pointer-events:none}.hold-label{font-size:9px;color:#ffc107;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.5);white-space:nowrap}.hold-controls{position:absolute;bottom:2px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;background:#141423e6;border-radius:10px;padding:1px 4px;border:1px solid rgba(255,193,7,.4)}.hold-btn{width:14px;height:14px;border-radius:50%;border:none;background:#ffc1074d;color:#ffc107;font-size:10px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;padding:0;line-height:1}.hold-btn:hover:not(:disabled){background:#ffc10780}.hold-btn:disabled{opacity:.3;cursor:not-allowed}.hold-value{font-size:9px;color:#ffc107;min-width:20px;text-align:center}.add-formation-btn{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:50%;border:2px dashed rgba(255,255,255,.3);background:transparent;color:#ffffff80;font-size:18px;cursor:pointer;transition:all .2s}.add-formation-btn:hover{border-color:#4ecdc4;color:#4ecdc4;background:#4ecdc41a}.settings-modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.settings-modal{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;width:100%;max-width:500px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px #00000080;border:1px solid rgba(255,255,255,.1)}.settings-modal-header{padding:16px 20px;background:#0003;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.settings-modal-header h2{font-size:1.25rem;background:linear-gradient(90deg,#4ecdc4,#45b7d1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0}.settings-modal-content{padding:20px;overflow-y:auto;flex:1}.settings-modal-footer{padding:16px 20px;background:#0003;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end;gap:12px}.settings-modal-footer .settings-btn{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.settings-modal-footer .settings-btn.cancel{background:#ffffff1a;color:#ccc}.settings-modal-footer .settings-btn.cancel:hover{background:#ffffff26;color:#fff}.settings-modal-footer .settings-btn.save{background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#1a1a2e}.settings-modal-footer .settings-btn.save:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4ecdc466}.settings-modal-footer .settings-btn.save:disabled{opacity:.5;cursor:not-allowed}.settings-section{margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.settings-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.settings-section h3{font-size:14px;color:#ccc;margin:0 0 12px;display:flex;align-items:center;gap:8px}.settings-section h3 .swap-hint{font-size:11px;color:#f59e0b;font-weight:400}.settings-dancer-names-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;max-height:300px;overflow-y:auto;padding:4px}.dancer-delete-btn{width:22px;height:22px;border-radius:50%;border:none;background:#ff6b6b33;color:#ff6b6b;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.dancer-delete-btn:hover:not(:disabled){background:#ff6b6b66;color:#fff}.dancer-delete-btn:disabled{opacity:.3;cursor:not-allowed}.dancer-delete-btn.restore{background:#4ecdc433;color:#4ecdc4}.dancer-delete-btn.restore:hover{background:#4ecdc466;color:#fff}.dancer-name-row.marked-for-deletion{opacity:.5;background:#ff6b6b1a;border-radius:4px;padding:2px;margin:-2px}.dancer-name-row.marked-for-deletion .dancer-name-input{text-decoration:line-through;color:#888}.delete-hint{font-size:11px;color:#ff6b6b;font-weight:400}.settings-warning{font-size:12px;color:#ff6b6b;margin:0 0 8px;padding:8px;background:#ff6b6b1a;border-radius:6px;border:1px solid rgba(255,107,107,.2)}.settings-tip{font-size:11px;color:#ffffff80;margin:12px 0 0;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.settings-btn{padding:6px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#ccc;font-size:13px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.settings-btn:hover{background:#ffffff26;color:#fff;border-color:#ffffff4d}.settings-btn .settings-icon{font-size:14px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}.settings-row:last-child{border-bottom:none}.settings-row label{font-size:13px;color:#aaa}.settings-select{min-width:160px}.settings-toggle-group{display:flex;gap:4px;background:#0003;border-radius:6px;padding:3px}.settings-toggle-btn{padding:6px 14px;background:transparent;border:none;border-radius:4px;color:#aaa;font-size:12px;cursor:pointer;transition:all .2s}.settings-toggle-btn:hover{color:#ccc}.settings-toggle-btn.active{background:#4ecdc433;color:#4ecdc4}.dancer-count-control{display:flex;align-items:center;gap:8px}.count-btn{width:32px;height:32px;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#ffffff1a;color:#fff;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.count-btn:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.count-btn:disabled{opacity:.3;cursor:not-allowed}.count-display{min-width:40px;text-align:center;font-size:16px;font-weight:600;color:#fff}.count-input{width:50px;padding:6px 4px;text-align:center;font-size:16px;font-weight:600;color:#fff;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;outline:none;-moz-appearance:textfield}.count-input::-webkit-outer-spin-button,.count-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.count-input:focus{border-color:#4ecdc499;background:#ffffff26}.count-input.invalid{border-color:#ff6b6b99;background:#ff6b6b26}.count-apply-btn{padding:6px 12px;background:linear-gradient(135deg,#4ecdc4,#45b7d1);border:none;border-radius:6px;color:#fff;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.count-apply-btn:hover:not(:disabled){transform:scale(1.02);box-shadow:0 2px 8px #4ecdc466}.count-apply-btn:disabled{opacity:.4;cursor:not-allowed}.custom-size-row{margin-top:8px;padding-top:12px;border-top:1px dashed rgba(255,255,255,.1)}.custom-size-inputs{display:flex;align-items:center;gap:8px}.size-input-group{display:flex;align-items:center;gap:4px}.size-label{font-size:11px;color:#aaa;font-weight:500}.size-input{width:60px;padding:6px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#fff;font-size:13px;text-align:center}.size-input:focus{outline:none;border-color:#4ecdc4}.size-separator{color:#666;font-size:14px}.confirm-dialog-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:linear-gradient(135deg,#1e1e32,#252540);padding:28px 32px;border-radius:16px;min-width:360px;max-width:480px;box-shadow:0 20px 60px #00000080;border:1px solid rgba(78,205,196,.2);animation:scaleIn .2s ease}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.confirm-dialog h3{color:#fff;font-size:20px;font-weight:600;margin-bottom:12px}.confirm-message{color:#ccc;font-size:15px;line-height:1.5;margin-bottom:8px}.confirm-details{color:#999;font-size:13px;line-height:1.4;margin-bottom:8px;padding:10px 12px;background:#0003;border-radius:8px}.confirm-buttons{display:flex;gap:12px;margin-top:24px;justify-content:flex-end}.confirm-btn{padding:10px 20px;border-radius:8px;border:none;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.confirm-btn.cancel{background:#ffffff1a;color:#ccc}.confirm-btn.cancel:hover{background:#ffffff26;color:#fff}.confirm-btn.primary{background:linear-gradient(135deg,#4ecdc4,#45b7d1);color:#1a1a2e}.confirm-btn.primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #4ecdc466}.confirm-btn.danger{background:linear-gradient(135deg,#ff6b6b,#ee5a5a);color:#fff}.confirm-btn.danger:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff6b6b66}
