:root{--bg:#f6f6f4;--surface:#ffffff;--text:#17171a;--muted:#6b6b73;--border:#e3e3df;--accent:#1f4fd8;--accent-text:#ffffff;--danger:#c0312b;--ok:#1d7a46;--warn:#9a6400;--radius:10px;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111114;--surface:#1b1b20;--text:#ececee;--muted:#9a9aa3;--border:#2d2d35;--accent:#6f93ff;--accent-text:#0b0b10;--danger:#ff6b63;--ok:#4ccf86;--warn:#e6b04a;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:15px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--accent)}h1{font-size:22px;margin:0 0 16px}h2{font-size:17px;margin:24px 0 10px}.muted{color:var(--muted)}.small{font-size:13px}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.spacer{flex:1 1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.stack>*+*{margin-top:12px}button,input,select,textarea{font:inherit;color:inherit}input[type=date],input[type=datetime-local],input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:7px 10px;min-width:0}textarea{width:100%;min-height:70px}label{display:block;font-size:13px;color:var(--muted);margin-bottom:4px}.field{display:flex;flex-direction:column}.field input,.field select,.field textarea{width:100%}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:12px;gap:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);padding:7px 14px;border-radius:8px;cursor:pointer;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn.danger{color:var(--danger);border-color:var(--danger);background:transparent}.btn.small{padding:3px 9px;font-size:13px}table.data{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}table.data td,table.data th{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}table.data th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}table.data tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.badge{display:inline-block;font-size:12px;padding:1px 8px;border-radius:999px;border:1px solid}.badge.ok{color:var(--ok)}.badge.exhausted,.badge.expired,.badge.revoked,.error{color:var(--danger)}.success{color:var(--ok)}.admin-nav{background:var(--surface);border-bottom:1px solid var(--border)}.admin-nav .inner{max-width:1200px;margin:0 auto;padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}.admin-nav a{text-decoration:none;color:var(--text)}.admin-nav a.brand{font-weight:700}.admin-main{max-width:1200px;margin:0 auto;padding:20px 16px 60px}.thumb{width:36px;height:36px;border-radius:6px;object-fit:cover;background:var(--border);display:block}.pager{display:flex;gap:8px;align-items:center;margin-top:12px}.listener{max-width:640px;margin:0 auto;padding:24px 16px 80px}.listener header{margin-bottom:20px}.listener .brand{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.track{display:flex;gap:12px;align-items:center;padding:10px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border)}.track+.track{margin-top:8px}.track.active{border-color:var(--accent)}.track .cover{width:52px;height:52px;border-radius:8px;object-fit:cover;background:var(--border);flex-shrink:0}.track .meta{flex:1 1;min-width:0}.track .title{font-weight:600}.track .sub,.track .title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track .sub{font-size:13px;color:var(--muted)}.playbtn{width:40px;height:40px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-text);cursor:pointer;font-size:16px;flex-shrink:0}.nowplaying{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--border);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}.nowplaying .inner{max-width:640px;margin:0 auto}.seek{width:100%;accent-color:var(--accent)}.center-page{min-height:70vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:24px}.listener.wide{max-width:760px}.brand-line{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.me-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.ai-box{display:grid;grid-gap:8px;gap:8px;margin-bottom:14px}.ai-label{font-size:15px;font-weight:700;color:var(--text);margin:0}.ai-row{display:flex;gap:8px;flex-wrap:wrap}.ai-row input{flex:1 1 260px}.tabs-row{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:12px;overflow-x:auto}.tabs-row button{border:0;background:none;padding:8px 12px;border-bottom:2px solid transparent;cursor:pointer;font-weight:500;white-space:nowrap}.tabs-row button.on{border-bottom-color:var(--accent)}.me-filter{width:100%;margin-bottom:10px}.songlist{display:grid;grid-gap:8px;gap:8px}.songlist .track+.track{margin-top:0}.track.dim{opacity:.55}.track .tags{font-size:12px}.track select.btn{padding:3px 6px}.fav-on{color:var(--warn);border-color:var(--warn)}.plrow{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}.playbtn:disabled{opacity:.4;cursor:not-allowed}.chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--border);border-radius:999px;padding:3px 10px;color:var(--text);font-size:14px;margin:0}.pick-list{border:1px solid var(--border);border-radius:8px;max-height:200px;overflow-y:auto;padding:6px 10px;margin-top:6px}.check-line{display:flex;gap:8px;align-items:center;color:var(--text);font-size:14px;margin:2px 0}fieldset{border:1px solid var(--border)}