*{box-sizing:border-box}body{margin:0;background:#f3f6fa;color:#182a40;font:15px/1.65 system-ui,sans-serif}aside{position:fixed;width:230px;height:100vh;background:#11283e;color:#afc0d1;padding:36px 25px}.logo{font-size:25px;color:#fff;font-weight:800}aside p{font-size:12px}nav{display:grid;gap:12px;margin:46px 0}nav a{color:#dbe9f5;text-decoration:none;padding:10px;border-radius:8px}nav a:hover{background:#24455f}aside small{position:absolute;bottom:30px}main{margin-left:230px;padding:36px 4%;max-width:1600px}header{display:flex;justify-content:space-between;align-items:center}h1{font-size:28px;margin:8px 0 30px}h2{font-size:20px;margin:30px 0 16px}h3{margin-top:0}small,.muted{color:#6a7d91}.notice{background:#fff4d9;border:1px solid #f0dba9;padding:14px 20px;border-radius:10px}.grid,.stats{display:grid;grid-template-columns:1fr 1fr;gap:20px}.stats{grid-template-columns:repeat(4,1fr);margin:24px 0}.stats article strong{font-size:28px;display:block}article{background:white;padding:23px;border:1px solid #e0e7ef;border-radius:12px;margin-bottom:14px}input,textarea,select{width:100%;padding:11px 13px;border:1px solid #cfd9e4;border-radius:7px;font:inherit;margin-bottom:12px;background:white;color:#182a40}input[type=checkbox]{width:auto}button,.button{cursor:pointer;border:0;border-radius:7px;padding:10px 17px;background:#087f78;color:white;font:inherit;text-decoration:none;display:inline-block;margin:4px 6px 4px 0}button.secondary{background:#e6f3f1;color:#087f78}button.danger{background:#ae4a4a}label{display:block}textarea{resize:vertical}.row{border-top:1px solid #edf0f5;padding:12px 0}.badge{display:inline-block;background:#e5f4ef;color:#087f78;font-size:12px;padding:3px 10px;border-radius:20px;margin:0 8px}.jobhead{display:flex;justify-content:space-between;gap:16px}.preview{max-width:220px;max-height:300px;border-radius:8px;background:#11283e}pre{white-space:pre-wrap;font:inherit;background:#f5f7fa;padding:12px;border-radius:8px}#message{position:sticky;top:10px;background:#142f47;color:white;border-radius:8px;z-index:5;padding:0 15px}#message:not(:empty){padding:12px 15px}footer{text-align:center;padding:40px;color:#6a7d91}[hidden]{display:none!important}@media(max-width:850px){aside{position:static;width:100%;height:auto;padding:18px}aside small{display:none}nav{display:flex;flex-wrap:wrap;margin:10px 0;gap:2px}main{margin:0;padding:20px}.grid{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}h1{font-size:22px}}
.music-studio{scroll-margin-top:20px}.music-hero{border-radius:16px;background:linear-gradient(125deg,#11283e,#155c61);color:white;padding:30px;margin:35px 0 18px}.music-hero h2{font-size:28px;margin:8px 0}.music-hero small{color:#a8e6d5}.music-hero p{color:#d0e5ea}.music-steps{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0}.music-steps a{padding:9px 14px;border:1px solid #bfd5d9;border-radius:24px;text-decoration:none;color:#145963;background:#e9f5f2}.music-studio .stats strong{font-size:23px}.music-studio select[multiple]{min-height:110px}.checkline{display:flex;align-items:flex-start;gap:9px;margin:12px 0;font-size:13px}.checkline input{margin:5px 0 0;flex:0 0 auto}.music-asset audio{display:block;width:100%;height:34px;margin:8px 0}.music-asset .muted{font-size:12px}.music-progress{width:100%;height:8px;margin:10px 0;accent-color:#098f83}.music-track{padding:12px;border:1px solid #e0e7ef;background:#f8fafc;border-radius:10px}.music-track audio{width:100%;height:36px;margin-top:8px}.music-tracks{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:16px 0}.music-job .badge.demo{background:#fff0d2;color:#936517}.music-job .badge.real{background:#e2f5ea;color:#126e4f}.music-review{border-top:1px solid #e5ebef;padding-top:12px}.music-job pre{max-height:260px;overflow:auto}.music-job code{font-size:12px;overflow-wrap:anywhere}.music-job summary{cursor:pointer}.music-job h4{margin:0}.music-cost{font-size:13px;color:#64768a}.music-warning{color:#996522}.music-asset button{font-size:12px;padding:5px 9px}.music-job progress{display:block}.music-studio input[type=file]{font-size:12px}.music-studio .grid article{min-width:0}#musicUploadStatus{font-size:12px;color:#087f78}aside{overflow-y:auto}aside small{position:static}nav{margin:24px 0;gap:4px}@media(max-width:850px){.music-hero{padding:20px}.music-hero h2{font-size:22px}.music-studio .stats{grid-template-columns:1fr 1fr}.music-steps{gap:6px}.music-steps a{font-size:12px;padding:7px 10px}}

dialog{border:1px solid #ccd9e3;border-radius:14px;padding:24px;width:min(520px,calc(100vw - 32px));box-shadow:0 24px 80px #10283e40;color:#182a40}dialog::backdrop{background:#10283e88}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}dialog p{white-space:pre-wrap}dialog textarea{max-height:40vh}

.mic-panel{padding:18px;border:1px solid #b5d6cd;border-radius:14px;background:#f3faf7;margin-bottom:20px}.mic-actions{display:flex;gap:8px;flex-wrap:wrap}.mic-panel progress,.mic-panel audio{width:100%;margin-top:12px}.mic-panel [role=status]{min-height:2em}

body:not(.music-page) #music{display:none}body.music-page #workspace>section:not(#music),body.music-page #workspace>.notice{display:none}body.music-page .music-hero{margin-top:10px}#voiceReuseStatus{padding:12px 16px;background:#e5f5ef;border-radius:10px;color:#176148}#voiceRecorderPanel>summary{cursor:pointer;padding:10px 0;font-weight:600}#voiceRecorderPanel[open]{margin-bottom:16px}

.music-panel>summary{cursor:pointer;display:list-item;padding:10px 0}.music-panel>summary h3{display:inline;font-size:16px;margin:0}.music-studio article:has(>.music-panel){padding:12px 20px;margin-bottom:10px}.music-panel[open]>summary{margin-bottom:14px;border-bottom:1px solid #e3eaf0;padding-bottom:14px}.music-fold-tools{display:flex;gap:8px;justify-content:flex-end;margin:12px 0}.music-fold-tools button{font-size:12px;padding:5px 10px}.music-task-tabs{display:flex;gap:8px;margin:14px 0}.music-task-tabs button{background:#edf2f5;color:#526477;font-size:13px;padding:7px 16px;border:1px solid transparent}.music-task-tabs button.active{background:#087f78;color:#fff}.music-job.compact-job{padding:0;margin:8px 0;border-radius:10px}.compact-job>.job-detail>summary{list-style:none;display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;min-height:48px}.compact-job>.job-detail>summary::-webkit-details-marker{display:none}.compact-title{font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-type{font-size:12px;color:#697c8b}.compact-status{font-size:12px;border-radius:20px;padding:2px 9px;background:#edf2f6}.compact-status.processing{color:#176a8a;background:#e9f5fc}.compact-status.failed{color:#a34742;background:#fceeed}.compact-status.completed{color:#177353;background:#e4f6eb}.compact-percent{width:40px;text-align:right;font-size:12px;color:#728191}.compact-arrow{transition:transform .15s}.job-detail[open]>.compact-arrow{transform:rotate(180deg)}.job-detail-body{padding:4px 16px 16px;border-top:1px solid #edf1f5}.job-detail-body .jobhead{display:none}.job-detail-body button,.job-detail-body .button{font-size:12px;padding:6px 10px}.job-detail-body p{margin:8px 0;font-size:13px}.job-detail-body .music-progress{height:5px}.music-task-tabs button:focus-visible,.music-panel>summary:focus-visible,.job-detail>summary:focus-visible{outline:3px solid #73c9bd;outline-offset:2px}@media(max-width:650px){.compact-type{display:none}.compact-job>.job-detail>summary{gap:8px;padding:10px}.music-task-tabs{gap:5px}.music-task-tabs button{padding:7px 10px}}

/* Music studio visual theme: quiet paper, ink, lilac and sea glass. */
body.music-page{background:#f6f5f9;color:#292735;background-image:radial-gradient(ellipse at 90% 0,#e9e3fa88,transparent 48%)}
.music-page aside{background:#211f30;border-right:1px solid #ffffff0a;padding-top:30px}.music-page .logo{letter-spacing:1px}.music-page aside>p{color:#a5a1b6;line-height:1.9}.music-page nav{gap:7px}.music-page nav a{color:#b9b6ca;font-size:14px;transition:background .18s,color .18s;padding:11px 14px}.music-page nav a:hover{background:#ffffff0a;color:white}.music-page nav a[href="/music"]{background:#b7a2f124;color:#e0d2ff;box-shadow:inset 3px 0 #b9a1f2}.music-page aside small{display:block;border-top:1px solid #ffffff12;padding-top:24px;color:#8d889f;font-size:11px;line-height:2}
.music-page main{padding:30px 4%;max-width:1520px}.music-page header{margin-bottom:18px}.music-page header small{color:#8a809d;font-size:11px;letter-spacing:2px}.music-page header h1{font-size:26px;letter-spacing:-.6px;margin:7px 0 12px}.music-page #logout{background:transparent;border:1px solid #dcd8e6;color:#716780;font-size:12px;padding:7px 14px;border-radius:9px}
.music-page .music-hero{isolation:isolate;position:relative;overflow:hidden;min-height:245px;padding:30px 34px;border-radius:20px;background:linear-gradient(110deg,#302b49 0%,#3a3455 55%,#665680 100%);box-shadow:0 16px 40px #302b4912;margin-bottom:16px;border:1px solid #ffffff22}.music-page .music-hero:before{content:"";position:absolute;z-index:-1;right:-34px;top:-72px;width:380px;height:380px;border-radius:50%;background:repeating-radial-gradient(circle at center,transparent 0 4px,#ffffff0b 5px 6px),radial-gradient(circle,#e2d1ff 0 8px,#b49bd1 9px 33px,#29243e 34px 36px,#282539ba 37px 100%);border:1px solid #ffffff20;box-shadow:-24px 16px 70px #211a3766;transform:rotate(-15deg)}.music-page .music-hero:after{content:"MUSIC / YOUR VOICE";position:absolute;right:25px;bottom:22px;font-size:10px;letter-spacing:3px;color:#e7dcf7a6}.music-page .music-hero>h2{font-size:29px;line-height:1.35;font-weight:650;letter-spacing:-.8px;margin:13px 0 12px;max-width:70%}.music-page .music-hero>small{font-size:10px;letter-spacing:2.5px;color:#d4bffe}.music-page .music-hero>p{font-size:12px;max-width:65%;color:#d3cde0;line-height:1.9}.music-page .music-hero #musicConnection{max-width:66%}.music-page .music-hero #musicConnection p{font-size:11px;color:#c4bbd2;margin:7px 0}.music-page .music-hero .badge{background:#d8f2e6;color:#23654d;font-size:11px;margin-left:0}.music-page #musicCheckConnection{padding:7px 12px;font-size:11px;background:#ffffff12;border:1px solid #ffffff25;color:#eee5ff;border-radius:8px}.music-page #musicCheckResult:empty{display:none}
.music-page #music>.notice{font-size:12px;line-height:1.8;background:#efedf5;border:1px solid #e4dfed;color:#7e738e;border-left:3px solid #b5a0d8;padding:12px 16px;border-radius:10px;margin-bottom:18px}
.music-page #musicMetrics{gap:12px;margin:18px 0 10px}.music-page #musicMetrics article{position:relative;padding:17px 20px;border-radius:14px;box-shadow:0 3px 12px #302b4903;border-color:#e8e4ee;margin:0}.music-page #musicMetrics article small{font-size:11px;color:#92899f}.music-page #musicMetrics article strong{font-size:27px;line-height:1.4;letter-spacing:-1px;color:#3f3655}.music-page #musicMetrics article:after{position:absolute;right:17px;top:20px;font-size:17px;color:#9c88bf;background:#f3eff9;width:32px;height:32px;border-radius:10px;text-align:center;line-height:32px;content:"♫"}.music-page #musicMetrics article:nth-child(2):after{content:"◉";background:#edf5f0;color:#6b9e83}.music-page #musicMetrics article:nth-child(3):after{content:"¥";background:#faf3e8;color:#b99760}.music-page #musicMetrics article:nth-child(4):after{content:"◷";background:#eef1f8;color:#8399c1}
.music-page .music-fold-tools{margin:12px 0 8px}.music-page .music-fold-tools button{background:transparent;color:#9a8eaa;margin-right:0;padding:4px 7px}.music-page .music-steps{gap:8px;margin:8px 0 18px}.music-page .music-steps a{font-size:12px;border:1px solid #e2dce9;background:#fff;color:#766788;padding:8px 13px;border-radius:9px;transition:border-color .15s,background .15s}.music-page .music-steps a:hover{background:#f0eaf9;border-color:#c6b4df}
.music-page #music article{border-color:#e7e2ed;box-shadow:0 2px 7px #302b4903}.music-page #music article:has(>.music-panel){border-radius:13px;padding:8px 18px;margin-bottom:9px;transition:border-color .15s,box-shadow .15s}.music-page #music article:has(>.music-panel):hover{border-color:#cfc2df;box-shadow:0 4px 14px #302b4906}.music-page .music-panel>summary{color:#4b405f;padding:10px 0}.music-page .music-panel>summary::marker{color:#b5a3ce;font-size:12px}.music-page .music-panel>summary h3{font-size:14px;font-weight:550;letter-spacing:.1px}.music-page .music-panel[open]>summary{border-color:#eee9f3;margin-bottom:18px}.music-page #musicCreate{gap:12px}.music-page input,.music-page textarea,.music-page select{background:#fcfbfe;border-color:#e0dae9;border-radius:9px;font-size:13px;padding:11px 12px}.music-page input:focus,.music-page textarea:focus,.music-page select:focus{outline:3px solid #b9a1de26;border-color:#ad94cb}.music-page label{font-size:12px;color:#7e718d}.music-page button,.music-page .button{background:#76618f;border-radius:9px;font-size:13px;transition:filter .15s,transform .15s}.music-page button:hover:not(:disabled),.music-page .button:hover{filter:brightness(1.07)}.music-page button:disabled{opacity:.45;cursor:not-allowed}.music-page button.secondary{background:#f0eaf6;color:#847099}.music-page button.danger{background:#bd7378}.music-page input[type=checkbox]{accent-color:#8f73aa}.music-page .mic-panel{background:#f6f2fa;border-color:#e0d4eb}.music-page #voiceReuseStatus{background:#edf6f1;color:#658a75;font-size:12px}.music-page .music-asset{border-color:#eee9f3}.music-page .music-warning{color:#b16c49}
.music-page #musicHistory{margin-top:24px;padding:22px;border:1px solid #e4ddeb;background:#ffffffa6;border-radius:16px}.music-page #musicHistory>h3{font-size:16px;color:#514260;margin-bottom:8px}.music-page #musicHistory>.muted{font-size:11px;color:#a397af;margin:0 0 16px;line-height:1.8}.music-page .music-task-tabs{border-bottom:1px solid #e9e3ef;gap:4px;margin-bottom:14px;padding-bottom:10px}.music-page .music-task-tabs button{background:transparent;color:#9b8ca7;border-radius:8px;padding:7px 14px;font-size:12px}.music-page .music-task-tabs button.active{background:#eae1f4;color:#70538c;font-weight:600}.music-page .music-job.compact-job{border-radius:10px;box-shadow:none;background:white;border-color:#e9e4ef}.music-page .compact-job>.job-detail>summary{padding:11px 14px;min-height:46px}.music-page .compact-title{font-size:13px;color:#655472}.music-page .compact-type{color:#ad9eb8;font-size:11px}.music-page .compact-status{font-size:10px;padding:3px 9px}.music-page .compact-status.processing{background:#ece7f9;color:#8871ae}.music-page .compact-status.failed{background:#faecec;color:#ba8083}.music-page .compact-status.completed{background:#e9f5ee;color:#719680}.music-page .compact-percent{color:#afa0bb}.music-page .compact-arrow{color:#b8a7c7}.music-page .job-detail[open]>summary .compact-arrow{transform:rotate(180deg)}.music-page .music-progress{accent-color:#a389c2}.music-page .job-detail-body{border-color:#eee8f4}.music-page .music-track{background:#faf8fd;border-color:#eae2f1}.music-page footer{font-size:11px;color:#b2a8bc;padding:28px}
@media(max-width:1100px){.music-page .music-hero:before{right:-140px}.music-page .music-hero>h2{max-width:85%;font-size:25px}.music-page .music-hero>p,.music-page .music-hero #musicConnection{max-width:80%}}
@media(max-width:850px){.music-page aside{padding:16px 20px}.music-page aside>p{margin:3px 0}.music-page aside small{display:none}.music-page nav{gap:3px;margin:12px 0 0}.music-page nav a{font-size:12px;padding:7px 10px}.music-page main{padding:20px 16px}.music-page .music-hero{padding:24px;min-height:225px}.music-page .music-hero:before{width:280px;height:280px;right:-140px;top:-40px}.music-page .music-hero>h2{font-size:24px;max-width:90%}.music-page .music-hero:after{display:none}.music-page #musicHistory{padding:16px}.music-page #musicMetrics article{padding:14px}.music-page #musicMetrics article:after{right:12px;top:17px;width:26px;height:26px;line-height:26px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.music-page *{transition:none!important;scroll-behavior:auto!important}}

/* Reading contrast and independent card heights. */
.music-page #musicCreate{align-items:start}.music-page #musicMetrics article small,.music-page #musicHistory>.muted,.music-page .compact-type,.music-page .compact-percent,.music-page .music-fold-tools button{color:#81728f}.music-page .compact-status.processing{color:#71568f}.music-page .compact-status.failed{color:#a2545b}.music-page .compact-status.completed{color:#48785c}
