.music-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.music-tabs button{height:52px;border:1px solid var(--border);border-radius:14px;background:var(--card);color:var(--dim);font-size:14px;font-weight:800;cursor:pointer;transition:.18s}.music-tabs button.on{border-color:rgba(var(--primary-rgb),.72);background:linear-gradient(145deg,rgba(var(--primary-rgb),.2),var(--card-2));color:var(--text);box-shadow:0 12px 30px rgba(var(--primary-rgb),.14)}.music-layout{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,.75fr);gap:16px;align-items:start}.music-options-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.music-option-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.music-choice-row{display:flex;gap:8px;flex-wrap:wrap}.music-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.music-mini-card{display:grid;gap:9px;padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.02)}.music-mini-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.music-mini-head span{color:var(--faint);font-size:11px}.music-file-button{display:flex;align-items:center;justify-content:center;min-height:40px;border:1px dashed rgba(var(--primary-rgb),.45);border-radius:10px;color:var(--primary);font-size:12px;font-weight:700;cursor:pointer;transition:.18s}.music-file-button:hover{background:rgba(var(--primary-rgb),.08);border-color:var(--primary)}.music-link-danger{border:0;background:none;color:var(--danger);font-size:11px;cursor:pointer;padding:2px}.music-submit-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.music-cost-preview{font-size:12px;color:var(--dim)}.music-cost-preview b{color:var(--primary);font-size:16px}.music-running-log{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:12px;background:rgba(0,0,0,.16);color:var(--dim);font-size:12px;line-height:1.8}.music-running-log b{display:block;color:var(--text);margin-bottom:4px}.music-result-list{display:grid;gap:12px}.music-result-card{border:1px solid var(--border);border-radius:15px;background:var(--card-2);padding:12px}.music-result-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.music-result-card audio,.music-result-card video{width:100%;display:block;border-radius:11px;background:#0d1018}.music-result-card video{aspect-ratio:16/9;object-fit:contain}.music-result-meta{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:var(--faint);font-size:11px}.music-result-empty{min-height:96px;display:grid;place-items:center;gap:10px;padding:14px;border:1px dashed var(--border);border-radius:13px;color:var(--faint);text-align:center}.music-progress{width:min(220px,80%);height:6px;overflow:hidden;border-radius:999px;background:rgba(255,255,255,.08)}.music-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(var(--primary-rgb),.65),rgb(var(--primary-rgb)));transition:width .3s}.music-use-track{margin-top:10px;width:100%}.music-selected-track{display:grid;gap:10px;padding:12px;margin-bottom:14px;border:1px solid rgba(var(--primary-rgb),.25);border-radius:14px;background:rgba(var(--primary-rgb),.06)}.music-selected-track>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.music-selected-track span{color:var(--faint);font-size:11px}.music-selected-track audio{width:100%}.music-upload{display:block;cursor:pointer;overflow:hidden;border:1px dashed var(--border);border-radius:14px;background:rgba(255,255,255,.02);transition:.18s}.music-upload:hover{border-color:rgba(var(--primary-rgb),.55);background:rgba(var(--primary-rgb),.05)}.music-upload>div{min-height:150px;display:grid;place-items:center;gap:7px;text-align:center;padding:18px}.music-upload img{width:100%;height:210px;display:block;object-fit:contain;background:#0d1018}.music-upload small{display:block;color:var(--faint);font-size:11px}.music-upload>small{padding:0 0 12px;text-align:center}.music-track-tags{display:flex;gap:6px;flex-wrap:wrap;margin:9px 0}.music-track-tags span{padding:3px 8px;border-radius:999px;background:rgba(var(--primary-rgb),.09);color:var(--dim);font-size:10px}.music-library-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.music-library-actions .btn{height:34px;padding:0 10px;font-size:11px;white-space:nowrap}.music-format{width:88px!important;min-width:88px;height:34px!important;padding:0 8px!important;font-size:11px}.music-danger-btn{color:var(--danger)!important;border-color:rgba(239,68,68,.28)!important}.music-lyrics-box{margin-top:10px;padding:11px;border-radius:10px;background:rgba(0,0,0,.19);color:var(--dim);font-size:12px;line-height:1.85;white-space:pre-wrap;word-break:break-word}.music-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px}.music-pagination span{color:var(--faint);font-size:12px}.music-pagination .btn{height:34px;padding:0 12px;font-size:12px}.music-empty-action{gap:14px}.music-empty-action .btn{min-width:160px}@media(max-width:1050px){.music-options-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.music-layout{grid-template-columns:1fr}.music-option-grid{grid-template-columns:1fr}.music-tabs button{height:48px;font-size:13px}.music-upload img{height:190px}}@media(max-width:620px){.music-options-grid,.music-upload-grid{grid-template-columns:1fr}.music-submit-row{align-items:stretch;flex-direction:column}.music-submit-row .btn{width:100%;height:48px}.music-result-card audio,.music-result-card video{border-radius:9px}.music-upload img{height:170px}.music-library-actions .btn{flex:1}.music-format{flex:1;width:auto!important}}

.music-field-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}.music-field-head label{margin:0}.music-generate-lyrics{height:32px;padding:0 12px;border:1px solid rgba(var(--primary-rgb),.45);border-radius:9px;background:rgba(var(--primary-rgb),.08);color:var(--primary);font-size:12px;font-weight:700;cursor:pointer}.music-generate-lyrics:hover{background:rgba(var(--primary-rgb),.15)}.music-generate-lyrics:disabled{opacity:.55;cursor:wait}


#generateMusic{min-width:220px;white-space:nowrap}


.music-sync-current{position:sticky;top:0;z-index:2;padding:10px 11px;border-radius:9px;background:rgba(var(--primary-rgb),.13);color:var(--text);font-size:13px;font-weight:800;line-height:1.6;margin-bottom:8px}.music-sync-lines{max-height:260px;overflow:auto;display:grid;gap:3px;padding-right:4px}.music-sync-line{margin:0;padding:6px 8px;border-radius:7px;color:var(--faint);font-size:12px;line-height:1.65;transition:.18s}.music-sync-line.on{background:rgba(var(--primary-rgb),.18);color:var(--primary);font-weight:800;transform:translateX(3px)}


.music-library-delete-row{display:flex;width:100%;margin-top:8px}.music-library-delete-row .btn{height:34px;padding:0 14px;font-size:11px;white-space:nowrap}


.music-mv-job-card{display:grid;gap:9px;padding:12px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.025)}.music-mv-job-card video{width:100%;aspect-ratio:16/9;object-fit:contain;border-radius:10px;background:#0d1018}.music-mv-stage{display:flex;justify-content:space-between;gap:10px;color:var(--dim);font-size:12px}.music-mv-stage b{color:var(--primary)}.music-mv-history{display:grid;gap:10px;margin-top:8px;padding-top:10px;border-top:1px solid var(--border)}.music-mv-history>b{font-size:12px;color:var(--dim)}.music-mv-error{padding:9px 10px;border-radius:8px;background:rgba(239,68,68,.09);color:var(--danger);font-size:12px;line-height:1.6}

.music-download-delete-row{display:flex;align-items:center;gap:7px;flex-wrap:nowrap;margin-top:8px}.music-download-delete-row .btn{height:34px;padding:0 10px;font-size:11px;white-space:nowrap}.music-download-delete-row .music-format{flex:0 0 auto}

.mv-stepper{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:12px 0}.mv-step{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 5px;border:1px solid var(--border);border-radius:10px;background:rgba(255,255,255,.02);color:var(--faint);text-align:center;font-size:10px;line-height:1.25}.mv-step i{width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.08);font-style:normal;font-weight:800;font-size:10px}.mv-step.on{border-color:rgba(var(--primary-rgb),.65);background:rgba(var(--primary-rgb),.11);color:var(--primary)}.mv-step.on i{background:var(--primary);color:#fff}.mv-step.done{border-color:rgba(34,197,94,.32);background:rgba(34,197,94,.07);color:#7fe0a3}.mv-step.done i{background:#22c55e;color:#fff}.mv-stepper-preview{opacity:.72}.mv-assets,.mv-shots{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:11px;background:rgba(0,0,0,.12)}.mv-assets>b,.mv-shots>b{font-size:12px;color:var(--text)}.mv-assets-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.mv-asset-card{display:grid;gap:5px;min-width:0}.mv-asset-card img,.mv-asset-placeholder{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:8px;background:rgba(255,255,255,.05)}.mv-asset-placeholder{display:grid;place-items:center;font-size:22px}.mv-asset-card span{font-size:10px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mv-shots-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mv-shot-card{display:grid;gap:5px}.mv-shot-card>div{display:flex;justify-content:space-between;gap:6px;font-size:11px;color:var(--dim)}.mv-shot-card video{width:100%;aspect-ratio:16/9;object-fit:contain;border-radius:8px;background:#0d1018}@media(max-width:700px){.mv-stepper{grid-template-columns:repeat(3,minmax(0,1fr))}.mv-assets-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.mv-shots-grid{grid-template-columns:1fr}}

.music-format-row{display:flex;justify-content:flex-start;margin-top:8px}.music-format-row .music-format{width:110px!important;min-width:110px;height:32px!important;font-size:11px}.music-action-row{display:flex;flex-wrap:nowrap!important;gap:4px;margin-top:6px;overflow-x:auto;padding-bottom:2px}.music-action-row .btn{flex:1 1 0;min-width:0;height:32px;padding:0 6px;font-size:10px;white-space:nowrap}.music-action-row .music-danger-btn{flex:0 0 auto;padding:0 8px}@media(max-width:560px){.music-action-row{justify-content:flex-start}.music-action-row .btn{flex:0 0 auto;min-width:62px}}

.mv-stage-actions{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border:1px solid rgba(var(--primary-rgb),.28);border-radius:10px;background:rgba(var(--primary-rgb),.06)}.mv-stage-actions .btn{height:34px;padding:0 12px;font-size:11px}.mv-action-running{color:var(--primary);font-size:12px;font-weight:700}.mv-plan{display:grid;gap:8px;padding:10px;border:1px solid var(--border);border-radius:11px;background:rgba(0,0,0,.12)}.mv-plan>b{font-size:12px;color:var(--text)}.mv-plan-list{display:grid;gap:7px;max-height:340px;overflow:auto}.mv-plan-item{padding:8px 9px;border-radius:8px;background:rgba(255,255,255,.035)}.mv-plan-head{display:flex;justify-content:space-between;gap:8px;font-size:11px}.mv-plan-head span{color:var(--faint)}.mv-plan-item p{margin:5px 0;color:var(--dim);font-size:11px;line-height:1.55}.mv-plan-item small{color:var(--faint);font-size:10px}

#generateMV:disabled{opacity:.55;cursor:not-allowed;pointer-events:none;filter:grayscale(.15);box-shadow:none}

.mv-plan-field{display:grid;gap:4px;margin-top:6px;color:var(--faint);font-size:10px}.mv-plan-field .input{font-size:11px}.mv-plan-row{display:flex;align-items:center;gap:8px;margin-top:6px}.mv-plan-check{display:flex;align-items:center;gap:5px;color:var(--dim);font-size:11px;white-space:nowrap}.mv-shot-model{flex:1;min-width:0;height:32px!important;font-size:10px!important}.mv-asset-card small,.mv-shot-card small{display:block;color:var(--faint);font-size:9px;line-height:1.35;overflow:hidden;text-overflow:ellipsis}.mv-shot-card small{text-align:center}

.mv-step-section{display:none}.mv-step-section.on{display:block}.mv-stepper .mv-step{font:inherit;cursor:pointer;border:1px solid var(--border)}.mv-stepper .mv-step:hover{border-color:rgba(var(--primary-rgb),.5)}.mv-asset-plan-list{display:grid;gap:7px}.mv-asset-plan-item{display:flex;gap:8px;align-items:flex-start;padding:8px;border-radius:8px;background:rgba(255,255,255,.035)}.mv-asset-plan-item>span{font-size:18px}.mv-asset-plan-item b{display:block;font-size:11px;color:var(--text)}.mv-asset-plan-item small{display:block;color:var(--faint);font-size:10px;line-height:1.45;margin-top:3px}

.music-left-stack{display:grid;gap:16px;min-width:0}.mv-operation-card{min-height:260px}.mv-operation-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px}.mv-operation-head b{font-size:15px}.mv-operation-head span{font-size:11px;color:var(--primary)}.music-mv-progress-card video{width:100%;aspect-ratio:16/9;object-fit:contain;border-radius:10px;background:#0d1018}

.music-tabs button:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.25)}

@media(max-width:720px){.music-tabs{gap:8px;margin-bottom:12px}.music-tabs button{height:44px;padding:0 8px;font-size:12px}.music-layout{gap:12px}.music-layout>.card,.music-left-stack>.card{padding:14px;border-radius:14px}.music-options-grid,.music-option-grid,.music-upload-grid{grid-template-columns:1fr;gap:10px}.music-field-head{align-items:flex-start;flex-wrap:wrap;gap:8px}.music-generate-lyrics{margin-left:auto}.music-submit-row{align-items:stretch;flex-direction:column;gap:10px}.music-submit-row .btn{width:100%;height:46px}.music-selected-track>div{align-items:flex-start;flex-direction:column;gap:4px}.music-result-head{align-items:flex-start;flex-wrap:wrap}.music-result-head b{min-width:0;overflow-wrap:anywhere}.music-result-meta{flex-wrap:wrap}.music-library-actions.music-action-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible}.music-action-row .btn,.music-action-row .music-format{width:100%!important;min-width:0;flex:none;height:38px!important}.music-pagination{flex-wrap:wrap;gap:8px}.music-pagination .btn{min-width:88px}.music-upload img{height:180px}.music-upload>div{min-height:130px}.mv-stepper{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mv-stepper .mv-step{min-height:54px;padding:8px 6px}.mv-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mv-stage-actions{display:grid;grid-template-columns:1fr}.mv-stage-actions .btn{width:100%}.mv-operation-head{align-items:flex-start;flex-wrap:wrap}.mv-plan-row{flex-wrap:wrap}.mv-shot-model{flex:1 0 100%}.mv-asset-plan-item{align-items:flex-start}}
@media(max-width:390px){.music-tabs{grid-template-columns:1fr}.music-library-actions.music-action-row,.mv-stepper,.mv-assets-grid{grid-template-columns:1fr}.music-result-card{padding:10px}}

.music-choice-row .pill{height:38px;padding:0 16px;border-radius:12px;background:var(--card-2);cursor:pointer}.music-choice-row .pill.on{border-color:rgba(var(--primary-rgb),.78);background:linear-gradient(135deg,rgba(var(--primary-rgb),.34),rgba(var(--primary-rgb),.14));color:#fff;font-weight:700;box-shadow:0 0 0 2px rgba(var(--primary-rgb),.14)}
.music-choice-row .pill.on::after{content:"✓";margin-left:6px;color:#d8ccff;font-weight:800}.music-mode-current{margin-left:auto;align-self:center;color:var(--dim);font-size:12px}

/* 2026-09-27 mobile: music option dropdowns arranged two per row, adaptive */
@media(max-width:720px){
  .music-options-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 10px}
  .music-options-grid>.field{margin-bottom:0;min-width:0}
}

/* 2026-09-27 mobile: music mode choice pills equal adaptive width */
@media(max-width:720px){
  .music-choice-row{gap:8px}
  .music-choice-row .pill{flex:1 1 0;min-width:0;justify-content:center;padding:0 10px;white-space:nowrap}
  .music-mode-current{flex:1 0 100%;margin-left:0;text-align:right}
}
/* 2026-09-27 mobile: music cost badge inline with title */
.music-create-head-main{min-width:0}
.music-create-title-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.music-cost-inline{display:none}
@media(max-width:720px){
  .music-create-head-main{width:100%}
  .music-create-title-row{justify-content:space-between;flex-wrap:nowrap}
  .music-create-title-row h3{min-width:0}
  .music-cost-inline{display:inline-flex;flex:0 0 auto;white-space:nowrap;margin-left:auto}
  .music-cost-side{display:none}
}
/* 2026-09-27 music voice: record button beside upload button */
.music-voice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
.music-voice-actions .music-file-button{margin:0;padding:0 8px;text-align:center}
.music-record-button{display:flex;align-items:center;justify-content:center;min-height:40px;padding:0 8px;border:1px dashed rgba(239,68,68,.45);border-radius:10px;background:transparent;color:#fca5a5;font-size:12px;font-weight:700;cursor:pointer;transition:.18s;text-align:center}
.music-record-button:hover{background:rgba(239,68,68,.08);border-color:#ef4444}
.music-record-button.on{border-style:solid;border-color:#ef4444;background:rgba(239,68,68,.16);color:#fff}
.music-record-button[disabled]{opacity:.65;cursor:wait}
/* 2026-09-27 narrow phones: keep voice action labels on one line */
@media(max-width:380px){
  .music-voice-actions .music-file-button,.music-record-button{font-size:11px;padding:0 4px;letter-spacing:0}
}
/* 2026-09-29 音乐 MV 工作台：说明与栏目名称同排 */
.music-page-title{display:flex;align-items:baseline;gap:10px;min-width:0;overflow:hidden}
.music-page-title-name{flex:0 0 auto;white-space:nowrap}
.music-page-description{flex:1 1 auto;min-width:0;font-size:12px;font-weight:400;color:var(--dim);line-height:1.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:620px){.music-page-title{gap:6px}.music-page-description{font-size:11px}}
