:root{--paper:#f5f4ed;--ink:#173c39;--muted:#71817a;--green:#174e45;--line:#e2e6dc;--accent:#d7ef97;--white:#fffefa;--red:#ad4840;font-family:Inter,-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}a{color:var(--green)}[hidden]{display:none!important}.shell{max-width:1200px;margin:auto;padding:0 36px}.topbar{height:102px;display:flex;align-items:center;gap:22px;border-bottom:1px solid var(--line)}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;font-size:32px;font-weight:700}.brand span{font-size:23px}.brand small{display:block;font-size:9px;letter-spacing:2px;margin-top:5px;font-weight:600}.badge{border:1px solid #cad5bb;padding:5px 10px;border-radius:20px;font-size:11px;letter-spacing:1px;background:#edf1e3}.topbar>button{margin-left:auto}.eyebrow{display:block;font-size:12px;letter-spacing:2px;font-weight:600;color:var(--muted)}h1{font-size:46px;line-height:1.2;font-weight:650;letter-spacing:-1px;margin:18px 0}h2{font-size:23px;font-weight:650;margin:13px 0}h3{font-size:15px;font-weight:650;margin:0}p{line-height:1.8}.muted{font-size:13px;color:var(--muted)}.panel{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:28px}.login-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:70px;align-items:center;padding:64px 35px}.intro{position:relative;min-height:460px}.intro h1{font-size:60px}.intro>p{font-size:15px;color:var(--muted)}.record-art{position:absolute;right:10px;bottom:5px;width:210px;height:210px;border-radius:50%;background:repeating-radial-gradient(circle,#193e37 0,#193e37 3px,#275145 4px,#193e37 5px);display:flex;align-items:center;justify-content:center;box-shadow:8px 16px 0 #e1e6d5;transform:rotate(-18deg);opacity:.95}.record-label{width:85px;height:85px;border-radius:50%;display:grid;place-items:center;background:var(--accent);font-size:36px}.footnote{position:absolute;bottom:0;font-size:11px!important}.login-panel{padding:38px;box-shadow:0 20px 60px #15392f06}.login-panel h2{margin-top:20px}.login-panel form{margin-top:32px}label{display:block;font-size:13px;font-weight:600}input:not([type=radio]):not([type=checkbox]),textarea{display:block;width:100%;background:#f9faf5;border:1px solid var(--line);border-radius:9px;padding:14px;margin:10px 0 20px;color:var(--ink);outline:none}input:focus,textarea:focus{border-color:#5a8871;box-shadow:0 0 0 3px #dbe6d950}.primary{display:flex;justify-content:space-between;align-items:center;gap:25px;background:var(--green);color:white;border:0;border-radius:9px;padding:15px 20px;font-size:14px;font-weight:600}.full{width:100%}.quiet{background:transparent;border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:12px;color:var(--ink)}.quiet:hover{background:#f0f3e7}.primary:hover{background:#276554}.note{font-size:11px;line-height:1.9;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.error{color:var(--red);font-size:13px;min-height:0}.error:empty{display:none}.welcome{padding:40px 0 30px;display:flex;justify-content:space-between;align-items:center;gap:24px}.welcome h1{font-size:38px;margin-bottom:8px}.credit{padding:18px 24px;font-size:12px;min-width:225px;background:#e9efd9;border-color:#dce5c7}.credit strong{font-size:36px;margin:0 8px}.credit small{display:block;font-size:11px;color:#61715c;margin-top:6px}.workspace{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px;align-items:start}.composer{padding:24px}.tabs{display:flex;border-bottom:1px solid var(--line);margin-bottom:22px;gap:24px}.tab{border:0;background:transparent;padding:0 0 13px;font-size:14px;font-weight:650;color:var(--muted)}.tab.active{color:var(--ink);border-bottom:2px solid var(--green)}.sources{display:flex;gap:15px;margin:20px 0 25px}.sources label{display:flex;align-items:center;font-size:11px;gap:3px}input[type=radio],input[type=checkbox]{accent-color:var(--green)}.section-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin:28px 0 15px}.task-list{display:grid;gap:8px}.task-chip{text-align:left;display:block;width:100%;border:1px solid var(--line);border-radius:9px;background:#f8f9f2;padding:12px;color:var(--ink)}.task-chip.active{border-color:#719579;background:#eaf0dd}.task-chip strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-chip small{display:block;margin-top:6px;color:var(--muted);font-size:10px}.results{min-height:460px}.empty-state{display:grid;place-items:center;text-align:center;padding:80px 0}.empty-state h2{font-size:20px}.empty-icon{width:76px;height:76px;border-radius:50%;background:#e9efd9;display:grid;place-items:center;font-size:35px}.result-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.result-head h2{overflow-wrap:anywhere}.status{font-size:11px;white-space:nowrap;background:#edf1e3;border-radius:20px;padding:6px 10px}.status.failed{color:var(--red);background:#faeee9}.status.success{color:var(--green);background:#e4efda}.track-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--line)}.track-row:last-child{border-bottom:0}.track-number{font-size:11px;color:#98a492;width:23px;flex-shrink:0}.track-main{min-width:0;flex:1}.track-main strong{font-size:13px;display:block;overflow-wrap:anywhere}.track-main small{display:block;margin-top:6px;color:var(--muted);font-size:11px;overflow-wrap:anywhere}.track-row a{font-size:11px;flex-shrink:0}.track-row>span:last-child{font-size:11px;color:var(--muted)}.rights{display:flex;align-items:flex-start;gap:8px;font-size:11px;font-weight:400;line-height:1.8;margin:20px 0}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.archives{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.archives a{text-decoration:none;border:1px solid #b7c9a5;border-radius:8px;padding:9px 12px;font-size:12px;background:#edf3e4}progress{width:100%;height:8px;accent-color:var(--green);margin:15px 0 5px}.pagination{display:flex;gap:10px;align-items:center;justify-content:center;margin-top:20px;font-size:12px}.admin-form{display:grid;grid-template-columns:1fr 1fr 2fr auto;gap:18px;align-items:end}.admin-form input{margin-bottom:0!important}.admin-form button{height:48px}.preset-row{display:flex;align-items:center;gap:10px;margin-top:20px}.admin-section{margin-top:24px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:12px}th,td{text-align:left;padding:15px 10px;border-bottom:1px solid var(--line)}th{color:var(--muted);font-weight:500}td input{width:85px!important;margin:0!important;padding:8px!important}td small{display:block;color:var(--muted);font-size:10px;margin-top:5px}td .quiet{margin:3px}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:10px;padding:13px 22px;font-size:13px;box-shadow:0 6px 30px #0002;max-width:90%;z-index:99}footer{padding:35px 0;text-align:center;font-size:10px;color:#94a08c}textarea{resize:vertical}button:focus-visible,a:focus-visible{outline:3px solid #94b779;outline-offset:3px}@media(max-width:800px){.shell{padding:0 20px}.topbar{height:80px}.login-layout{grid-template-columns:1fr;gap:24px;padding:30px 0}.intro{min-height:240px;padding-bottom:15px}.intro h1{font-size:40px}.record-art{width:120px;height:120px;right:15px;bottom:30px}.record-label{width:50px;height:50px;font-size:22px}.footnote{display:none}.login-panel{padding:28px}.workspace{grid-template-columns:1fr}.welcome{padding:28px 0;align-items:flex-start}.welcome h1{font-size:27px}.credit{min-width:140px;padding:12px}.credit strong{font-size:26px}.credit small{font-size:9px}.admin-form{grid-template-columns:1fr 1fr}.admin-form label:nth-child(3){grid-column:1/-1}.admin-form button{grid-column:1/-1}.results{min-height:300px}.empty-state{padding:35px 0}.panel{padding:22px}.track-row{gap:8px}}@media(prefers-reduced-motion:no-preference){button,a,input{transition:background .15s,border-color .15s}}

.track-main small.error { color: var(--danger, #a43d38); }
.qq-import {margin:20px 0; font-size:13px}.qq-import summary{cursor:pointer}#qq-qrcode{padding:18px 0}#qq-qr-image{display:block;max-width:100%;border:1px solid var(--line);border-radius:8px;background:white}
