:root{color:#1f2430;background:#eef1ed;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding:24px;background:linear-gradient(135deg,rgba(58,85,92,.16),transparent 42%),linear-gradient(315deg,rgba(196,93,62,.12),transparent 38%),#eef1ed}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1440px;margin:0 auto 18px;padding:12px 14px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#ffffffd1;box-shadow:0 12px 40px #1f24300f}.top-nav>div:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px}.top-nav span{color:#69717c;font-size:13px}.nav-actions{align-items:center;display:flex;gap:8px}.nav-actions button{min-height:36px;padding:0 14px;border:1px solid rgba(31,36,48,.12);border-radius:8px;color:#1f4f5f;background:#fff;font-weight:800}.nav-actions button.selected{color:#fff;background:#1f4f5f}.user-badge{display:inline-grid;min-height:34px;max-width:220px;padding:0 10px;place-items:center;border:1px solid rgba(31,36,48,.1);border-radius:8px;color:#343b47;background:#ffffffb8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-shell{display:grid;min-height:calc(100vh - 114px);place-items:center}.login-card{display:grid;gap:18px;width:min(460px,100%);padding:24px;border:1px solid rgba(31,36,48,.12);border-radius:8px;background:#ffffffe0;box-shadow:0 20px 70px #1f243014}.workspace{display:grid;grid-template-columns:minmax(360px,430px) minmax(0,1fr);gap:20px;max-width:1440px;margin:0 auto}.creation-panel,.result-panel{min-height:calc(100vh - 48px);border:1px solid rgba(31,36,48,.12);background:#ffffffd1;box-shadow:0 20px 70px #1f243014;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.creation-panel{display:flex;flex-direction:column;gap:24px;padding:24px;border-radius:8px}.result-panel{padding:30px;border-radius:8px;overflow:hidden}.brand-row{display:flex;gap:14px;align-items:center}.brand-mark{display:grid;width:46px;height:46px;place-items:center;border-radius:50%;color:#fff;background:#1f4f5f;font-size:23px;font-weight:800}h1,h2,h3,p{margin:0}h1{font-size:25px;letter-spacing:0}.brand-row p,.song-header p,.empty-state p,.player-copy p,.song-list-item small{color:#69717c}.creator-form{display:grid;gap:18px}label{display:grid;gap:8px}label span,.eyebrow,dt{color:#69717c;font-size:13px;font-weight:700}textarea,input,select{width:100%;border:1px solid rgba(31,36,48,.14);border-radius:8px;color:#1f2430;background:#fff;outline:none;transition:border-color .16s ease,box-shadow .16s ease}textarea{resize:vertical;min-height:150px;padding:14px;line-height:1.65}input,select{height:44px;padding:0 12px}textarea:focus,input:focus,select:focus{border-color:#1f4f5f;box-shadow:0 0 0 4px #1f4f5f1f}.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.consent-row{display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#1f4f5f0d}.consent-row input{flex:0 0 auto;width:18px;height:18px;margin-top:1px;padding:0}.consent-row span{color:#343b47;font-size:13px;line-height:1.45}.primary-action,.feedback-row button{min-height:46px;border:0;border-radius:8px;color:#fff;background:#c45d3e;font-weight:800}.primary-action:disabled{cursor:not-allowed;opacity:.55}.error-box{padding:12px;border:1px solid rgba(196,93,62,.35);border-radius:8px;color:#8a351f;background:#c45d3e14}.library{display:grid;gap:10px;margin-top:auto}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h2{font-size:18px}.ghost-button{height:34px;border:1px solid rgba(31,36,48,.12);border-radius:8px;color:#1f4f5f;background:#fff;font-weight:700}.song-list-item{display:grid;gap:5px;width:100%;padding:12px;border:1px solid rgba(31,36,48,.1);border-radius:8px;text-align:left;background:#fff}.song-list-item.selected{border-color:#1f4f5f73;background:#1f4f5f12}.song-list-item span{overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.empty-text{padding:12px;color:#69717c}.empty-state{display:grid;min-height:calc(100vh - 108px);place-items:center;align-content:center;gap:18px;text-align:center}.meter-disc{display:grid;width:148px;height:148px;place-items:center;border-radius:50%;background:radial-gradient(circle at center,#eef1ed 0 28%,transparent 29%),conic-gradient(from 20deg,#1f4f5f,#c45d3e,#e0ba68,#1f4f5f)}.meter-disc span{width:42px;height:42px;border-radius:50%;background:#1f2430}.song-header{display:flex;align-items:center;justify-content:space-between;gap:20px}.song-header h2{margin:4px 0 8px;font-size:clamp(28px,4vw,48px);letter-spacing:0}.progress-ring{display:grid;flex:0 0 auto;width:82px;height:82px;place-items:center;border-radius:50%;color:#1f4f5f;background:radial-gradient(circle at center,#fff 0 54%,transparent 55%),conic-gradient(#1f4f5f var(--progress, 75%),rgba(31,36,48,.12) 0)}.progress-track{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:28px 0}.progress-step{display:flex;align-items:center;gap:8px;min-height:42px;padding:10px;border-radius:8px;color:#69717c;background:#1f24300f;font-size:14px;font-weight:700}.progress-step i{width:10px;height:10px;border-radius:50%;background:#aab1b9}.progress-step.active{color:#1f4f5f}.progress-step.done i{background:#2f8c63}.version-list{display:grid;gap:12px}.version-player{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(260px,1fr) auto;align-items:center;gap:16px;padding:16px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.version-player.selected{border-color:#1f4f5f73;box-shadow:0 0 0 4px #1f4f5f14}.version-select{display:grid;gap:4px;padding:0;border:0;color:inherit;text-align:left;background:transparent}.version-select span{color:#1f4f5f;font-size:13px;font-weight:800}.version-select strong{font-size:18px}.version-select small{color:#69717c;line-height:1.45}audio{width:100%}.download-actions{display:flex;gap:8px}.download-actions a,.download-actions button{display:inline-grid;min-width:54px;min-height:34px;place-items:center;border:1px solid rgba(31,36,48,.12);border-radius:8px;color:#1f4f5f;background:#fff;font-size:13px;font-weight:800;text-decoration:none}.song-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px;margin-top:18px}.lyrics-panel,.meta-panel,.revision-panel{border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.lyrics-panel,.meta-panel{padding:20px}.lyrics-panel pre{overflow:auto;min-height:420px;max-height:58vh;margin:18px 0 0;color:#1f2430;font-family:inherit;font-size:16px;line-height:1.9;white-space:pre-wrap}.version-pills{display:flex;flex-wrap:wrap;gap:8px}.version-pills button,.quick-actions button{min-height:34px;border:1px solid rgba(31,36,48,.12);border-radius:8px;color:#1f4f5f;background:#fff;font-weight:800}.version-pills button.selected{color:#fff;background:#1f4f5f}.meta-panel h2{margin-bottom:16px;font-size:18px}dl{display:grid;gap:18px;margin:0}dd{margin:6px 0 0;color:#343b47;line-height:1.7}.revision-panel{display:grid;gap:14px;margin-top:18px;padding:18px}.version-feedback-panel{display:grid;gap:14px;margin-top:18px;padding:18px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.rating-row{display:flex;gap:8px}.rating-row button{display:grid;width:42px;height:38px;place-items:center;border:1px solid rgba(31,36,48,.12);border-radius:8px;color:#1f4f5f;background:#fff;font-weight:900}.rating-row button.selected,.quick-actions button.selected{color:#fff;background:#1f4f5f}.contact-panel{display:grid;gap:12px;padding-top:18px;border-top:1px solid rgba(31,36,48,.1)}.contact-panel textarea{min-height:108px}.send-button{width:100%}.success-text{color:#2f8c63;font-weight:800}.admin-shell{max-width:1440px;min-height:calc(100vh - 114px);margin:0 auto;padding:28px;border:1px solid rgba(31,36,48,.12);border-radius:8px;background:#ffffffdb;box-shadow:0 20px 70px #1f243014}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.admin-header h1{margin-top:4px;font-size:32px}.admin-actions{display:flex;gap:8px}.admin-login{display:grid;gap:14px;max-width:420px;padding:20px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.stats-grid article{display:grid;gap:8px;min-height:102px;padding:18px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.stats-grid span{color:#69717c;font-size:13px;font-weight:800}.stats-grid strong{font-size:34px}.admin-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr);gap:18px;margin-bottom:18px}.admin-card{padding:20px;border:1px solid rgba(31,36,48,.1);border-radius:8px;background:#fff}.admin-card h2{margin-bottom:14px;font-size:18px}.admin-wide-card{margin-top:0}.call-table-wrap{overflow-x:auto}.call-table{min-width:980px}.status-pill{display:inline-grid;min-height:28px;padding:0 10px;place-items:center;border-radius:999px;color:#1f4f5f;background:#eef4f2;font-size:12px;font-weight:900}.status-succeeded{color:#2f6d4f;background:#e7f4ec}.status-failed,.status-retryable{color:#9f452a;background:#fff0ea}.status-generating,.status-running,.status-downloading{color:#8a6224;background:#fff6df}.error-cell{max-width:320px;color:#9f452a;line-height:1.5}table{width:100%;border-collapse:collapse}th,td{padding:11px 8px;border-bottom:1px solid rgba(31,36,48,.08);text-align:left}th{color:#69717c;font-size:13px}.feedback-item{display:grid;gap:8px;padding:14px 0;border-bottom:1px solid rgba(31,36,48,.08)}.feedback-item div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}.feedback-item span{color:#69717c;font-size:13px}.feedback-item p{color:#343b47;line-height:1.7}.quick-actions{display:flex;flex-wrap:wrap;gap:10px}.quick-actions button{padding:0 12px}.feedback-row{display:grid;grid-template-columns:minmax(0,1fr) 140px;gap:10px}@media(max-width:1100px){.workspace,.song-detail-grid,.admin-grid,.stats-grid{grid-template-columns:1fr}.creation-panel,.result-panel{min-height:auto}}@media(max-width:700px){.app-shell{padding:12px}.creation-panel,.result-panel{padding:18px}.field-grid,.progress-track,.feedback-row{grid-template-columns:1fr}.top-nav,.admin-header{align-items:stretch;flex-direction:column}.version-player{align-items:stretch;grid-template-columns:1fr}.song-header{align-items:stretch;flex-direction:column}}
