*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans JP,sans-serif;background:var(--bg);color:var(--fg)}:root{--bg: #0b1020;--panel: #121831;--panel-2: #0f1530;--fg: #e9ecf8;--muted: #a9b1d6;--border: #1e2550;--primary: #6272ff;--primary-2: #5160e6;--success: #2ecc71;--shadow: 0 8px 24px rgba(0,0,0,.25)}@media (prefers-color-scheme: light){:root{--bg: #f7f8fc;--panel: #ffffff;--panel-2: #fafbff;--fg: #101321;--muted: #5a627a;--border: #e7e9f5;--primary: #3b6cff;--primary-2: #2f58d6;--shadow: 0 6px 16px rgba(16,19,33,.08)}}.app{max-width:1100px;margin:36px auto;padding:0 20px 40px}.header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.header h1{font-size:clamp(20px,3vw,28px);margin:0}.header .actions{display:flex;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:10px;border:1px solid var(--border);background:var(--panel);color:var(--fg);box-shadow:var(--shadow);cursor:pointer;transition:transform .06s ease,background .2s ease,border .2s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.primary{background:var(--primary);border-color:transparent;color:#fff}.btn.primary:hover{background:var(--primary-2)}.btn.ghost{background:transparent}.btn.icon{width:38px;padding:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.card{cursor:pointer;overflow:hidden;display:flex;flex-direction:column;transition:transform .08s ease,box-shadow .2s ease,border .2s ease}.card:hover{transform:translateY(-2px);border-color:transparent}.card .thumb{width:100%;aspect-ratio:1 / 1;object-fit:cover;display:block}.card .meta{padding:10px 12px;border-top:1px solid var(--border)}.card .title{font-weight:700;line-height:1.25;margin:0 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card .sub{color:var(--muted);font-size:12px}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.list{overflow:hidden}.row{display:grid;grid-template-columns:1fr 40%;gap:16px;padding:12px 14px;border-top:1px solid var(--border)}.row:first-child{border-top:none}.row:hover{background:var(--panel-2)}.row .name{font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .artists{color:var(--muted);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.empty{padding:28px;text-align:center;color:var(--muted)}.error{padding:14px;border:1px solid #ff5b5b55;background:#ff5b5b11;border-radius:10px;color:#ff8585}.mt-16{margin-top:16px}.mb-16{margin-bottom:16px}.hidden{display:none}
