@font-face{font-family:DM;src:url('/dm-sans.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{--paper:#f5f2eb;--panel:#fffdf8;--forest:#183e35;--ink:#182b25;--muted:#52665d;--line:#d8dfd6;--soft:#e4eee4;--lime:#d7e98e;--danger:#a03438;--warning:#805418;--radius:14px;color-scheme:light;font-family:DM,"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper);font-size:15px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:96px}body{margin:0;padding-bottom:120px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit;text-underline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--forest);outline-offset:4px}::selection{background:var(--lime);color:var(--forest)}input{caret-color:var(--forest)}input::placeholder{color:#66756c}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#a5b3a7;border:2px solid var(--paper);border-radius:8px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:20px;background:var(--lime);padding:12px;z-index:10}.skip-link:focus{top:12px}
.header{background:var(--forest);color:#fffdf8}.header-inner{max-width:1256px;margin:auto;min-height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 36px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:23px;font-weight:500;letter-spacing:-.02em}.brand b{font-size:17px;font-weight:500;margin-left:9px}.brand-mark{width:36px;height:36px;color:var(--lime)}.header nav{display:flex;gap:28px}.nav-link{text-decoration:none;font-size:14px;padding:12px 0;opacity:.87}.nav-link:hover{opacity:1}.nav-link:focus-visible{outline-color:var(--lime)}#nav-count{font-variant-numeric:tabular-nums;display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;margin-left:5px;background:#31564b;border-radius:5px;font-size:12px}
.shell{max-width:1256px;margin:auto;padding:46px 36px 24px}.intro{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px}h1{font-size:40px;line-height:1.3;font-weight:650;letter-spacing:-.03em;margin:0 0 12px}h2{font-size:21px;line-height:1.4;margin:0;font-weight:650;letter-spacing:-.02em}h3{font-size:19px;line-height:1.6;margin:0 0 10px}p{line-height:1.65;margin:0}.intro p{color:var(--muted)}.connection{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;padding-bottom:3px}.status-chip{font-size:12px;border:1px solid var(--line);border-radius:6px;padding:6px 9px;white-space:nowrap;color:var(--muted)}.status-chip.online{background:var(--soft);border-color:transparent;color:#305644}.status-chip.offline{background:#f2e7d8;color:var(--warning);border-color:transparent}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start}.search-area{min-width:0}.search-form{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid #b6c3b6;border-radius:var(--radius);background:var(--panel)}.search-input-wrap{display:flex;flex:1;min-width:0;align-items:center;padding-left:10px;gap:10px}.icon{width:21px;height:21px;flex:none;stroke:currentColor;fill:none}.search-input-wrap .icon{color:var(--muted)}input,select{color:var(--ink)}#query{min-width:0;width:100%;background:transparent;border:0;height:44px;font-size:15px}#query:focus{outline:none}.search-form:focus-within{outline:2px solid var(--forest);outline-offset:2px}select{border:0;background:transparent;padding:10px 5px;max-width:136px;min-height:44px;font-size:13px}.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:10px;padding:10px 17px;background:var(--soft);color:var(--forest);font-weight:600;white-space:nowrap}.button:hover{filter:brightness(.96)}.primary{background:var(--forest);color:var(--panel)}.results-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:32px 0 10px}.requester-label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);white-space:nowrap}.requester-label input{width:92px;height:44px;border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:5px 8px;font-size:13px}.note{font-size:13px;color:var(--muted);line-height:1.7}.results{margin-top:18px}.empty-state{min-height:330px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:44px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.empty-icon{width:48px;height:48px;stroke:var(--forest);fill:none;margin-bottom:24px}.empty-state p{font-size:14px;color:var(--muted);max-width:36ch}.example{background:transparent;margin-top:18px;font-size:13px}.song-row{display:flex;align-items:center;gap:14px;padding:17px 0;border-bottom:1px solid var(--line);min-width:0}.song-number{font-variant-numeric:tabular-nums;font-size:12px;color:var(--muted);width:22px;text-align:center;flex:none}.song-info{flex:1;min-width:0}.song-title{font-weight:600;font-size:16px;overflow-wrap:anywhere;line-height:1.5}.song-meta{color:var(--muted);font-size:13px;line-height:1.6;overflow-wrap:anywhere;margin-top:3px}.song-source{display:inline-block;color:#3f6251;font-size:11px;line-height:1.4;background:var(--soft);padding:3px 6px;margin-right:6px;border-radius:4px}.song-row .button{padding:9px 13px;flex:none;font-size:13px}.song-row .button.requested{background:transparent;color:var(--muted)}.source-credit{margin-top:22px;color:var(--muted);font-size:12px;line-height:1.8}.queue-area{background:var(--panel);padding:24px;border:1px solid var(--line);border-radius:var(--radius);min-height:330px}.queue-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.queue-heading span{font-size:12px;color:var(--muted)}.queue-list{list-style:none;margin:16px 0 0;padding:0}.queue-item{padding:16px 0;border-top:1px solid var(--line)}.queue-top{display:flex;gap:10px;align-items:flex-start}.queue-number{font-size:12px;color:var(--muted);padding-top:4px;min-width:16px;font-variant-numeric:tabular-nums}.queue-title{font-size:15px;font-weight:600;line-height:1.6;overflow-wrap:anywhere}.queue-meta{color:var(--muted);font-size:12px;line-height:1.7;overflow-wrap:anywhere}.queue-state{font-size:11px;margin-top:7px;color:#3e6350}.queue-state.failed{color:var(--danger)}.queue-state.downloading{color:var(--warning)}.queue-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;margin-left:26px}.queue-actions button{font-size:12px;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--forest);border-radius:6px;padding:5px 8px}.queue-actions button:hover{background:var(--soft)}.queue-empty{padding:38px 0 22px;display:flex;gap:14px;align-items:flex-start;color:var(--muted)}.queue-empty .icon{width:27px;height:27px;margin-top:4px}.queue-empty p{font-size:14px}.queue-empty span{font-size:12px}.footer{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;padding-top:44px}
.now-playing{position:fixed;bottom:0;left:0;right:0;background:var(--forest);color:var(--panel);z-index:5}.now-inner{max-width:1256px;margin:auto;display:flex;align-items:center;gap:18px;min-height:100px;padding:16px 36px}.record{width:54px;height:54px;color:var(--lime);flex:none}.record svg{width:100%;height:100%}.record.playing{animation:spin 12s linear infinite}.now-track{display:flex;flex-direction:column;gap:3px;min-width:0;width:290px}.now-label{color:#c5d7bc;font-size:11px}.now-track strong{font-size:16px;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-track>span:last-child{font-size:12px;color:#d0ddd3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline{flex:1;margin-left:22px}.timeline-text{display:flex;justify-content:space-between;font-size:11px;color:#d0ddd3;font-variant-numeric:tabular-nums;margin-bottom:4px}progress{width:100%;height:4px;appearance:none;border:none;display:block;background:#49675c;accent-color:var(--lime)}progress::-webkit-progress-bar{background:#49675c;border-radius:4px}progress::-webkit-progress-value{background:var(--lime);border-radius:4px}progress::-moz-progress-bar{background:var(--lime)}.now-state{font-size:12px;color:#d0ddd3;margin-left:24px;white-space:nowrap}.toast{position:fixed;left:50%;bottom:124px;transform:translateX(-50%);max-width:min(600px,calc(100vw - 32px));padding:14px 22px;color:var(--panel);background:var(--ink);border-radius:10px;box-shadow:0 8px 26px #182b2524;z-index:20;font-size:14px;line-height:1.6}.toast.error{background:#793135}.login-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid var(--line);background:var(--panel);padding:24px;margin-bottom:28px;border-radius:var(--radius)}.login-panel p{font-size:13px;color:var(--muted);margin-top:8px}.login-panel form{display:flex;gap:8px;flex-wrap:wrap}.login-panel input{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px;min-width:160px;max-width:100%}.admin-panel{padding:16px 0 22px;margin-bottom:24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:22px}.admin-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.small{min-height:44px;padding:8px 12px;font-size:13px}.text-button{border:0;background:transparent;color:var(--muted);min-height:44px;padding:8px;font-size:13px}.loading-dot{width:24px;height:24px;border:2px solid var(--line);border-top-color:var(--forest);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:22px}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1000px){.queue-area{position:sticky;top:24px}}
@media(max-width:1000px){.workspace{grid-template-columns:minmax(0,1fr) 300px;gap:24px}.shell{padding:36px 24px 24px}.header-inner,.now-inner{padding-left:24px;padding-right:24px}.intro{align-items:flex-start}.connection{max-width:160px}.search-form{flex-wrap:wrap}.search-input-wrap{flex-basis:calc(100% - 145px)}.search-form select{order:2;flex:1;max-width:none}.search-form>.button{order:3;min-width:100px}.queue-area{padding:20px}}
@media(max-width:760px){body{padding-bottom:120px}.header-inner{min-height:72px;padding:0 20px}.brand{font-size:21px;gap:8px}.brand b{font-size:14px;margin-left:5px}.brand-mark{width:30px;height:30px}.header nav{gap:16px}.nav-link{font-size:12px}.nav-link:first-child{display:none}#nav-count{display:none}.shell{padding:30px 20px 22px}.intro{display:block;margin-bottom:26px}h1{font-size:31px;line-height:1.4;letter-spacing:-.02em;margin-bottom:8px}.intro p{font-size:14px}.connection{max-width:none;justify-content:flex-start;margin-top:18px}.status-chip{font-size:11px;padding:5px 7px}.workspace{grid-template-columns:1fr;gap:30px}.search-form{padding:7px}.search-input-wrap{flex-basis:100%;padding-left:7px}.search-form select{font-size:13px}.search-form>.button{flex:1}.results-toolbar{margin-top:26px}.results-toolbar h2{font-size:19px}.requester-label{font-size:11px;gap:5px}.requester-label input{width:74px}.song-row{gap:9px;padding:15px 0}.song-title{font-size:15px}.song-meta{font-size:12px}.song-row .button{padding:8px 11px;font-size:12px}.song-number{width:17px;font-size:11px}.empty-state{min-height:290px;padding:32px 18px}.empty-state h3{font-size:17px}.empty-state p{font-size:13px}.empty-icon{width:40px;height:40px;margin-bottom:20px}.queue-area{min-height:250px;padding:20px}.now-inner{padding:14px 20px;gap:12px;min-height:100px;flex-wrap:wrap}.record{width:42px;height:42px}.now-track{width:calc(100% - 160px);flex:1}.now-track strong{font-size:14px}.now-label{font-size:11px}.now-state{font-size:11px;margin:0;max-width:90px;white-space:normal;text-align:right}.timeline{flex-basis:100%;margin:0}.timeline-text{display:none}.toast{bottom:120px;font-size:13px;padding:12px 16px}.login-panel{display:block;padding:20px}.login-panel form{margin-top:18px}.login-panel input{min-width:0;flex:1;width:100px}.admin-panel{display:block}.admin-controls{margin-top:12px}.admin-panel strong{font-size:14px}.footer{padding-top:32px;font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
