:root{--bg:#f7f6f3;--card:#fff;--line:#e7e5df;--text:#2b2b30;--muted:#8f8d97;--accent:#5b67e8;--btn:#2b2b30}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Hiragino Sans,Noto Sans JP,system-ui,sans-serif;min-height:100vh}header{padding:26px 16px 10px;text-align:center}header h1{font-size:22px;font-weight:700;letter-spacing:1px}header h1 span{color:var(--accent)}header p{color:var(--muted);font-size:12px;margin-top:5px}.wrap{max-width:960px;margin:0 auto;padding:12px 16px 60px;display:flex;flex-direction:column;gap:14px}.panel{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:16px}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}input[type=text]{flex:1 1;min-width:180px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--text);font-size:15px;outline:none}input[type=text]:focus{border-color:var(--accent)}button{background:var(--btn);color:#fff;border:none;border-radius:10px;padding:10px 18px;font-size:14px;font-weight:600;cursor:pointer}button.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}button.primary{background:var(--accent)}select{background:#fff;color:var(--text);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:14px}.seg{display:flex;gap:6px}.seg button{padding:8px 14px;font-size:13px;background:var(--accent)}.seg button.off{background:#fff;color:var(--muted);border:1px solid var(--line)}.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));grid-gap:8px;gap:8px;margin-top:12px;max-height:300px;overflow-y:auto}.result{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;transition:transform .1s}.result:hover{transform:scale(1.03);border-color:var(--accent)}.result img{width:100%;aspect-ratio:1;display:block;object-fit:cover}.result .meta{padding:5px 6px}.result .t{font-size:11px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.result .a{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid{display:grid;grid-gap:6px;gap:6px}.slot{aspect-ratio:1;background:#f1f0ec;border:1.5px dashed #d8d6cf;border-radius:8px;position:relative;overflow:hidden;cursor:pointer}.slot.filled{border:1px solid var(--line);background:#fff}.slot img{width:100%;height:100%;object-fit:cover;display:block}.slot .num{position:absolute;top:4px;left:6px;font-size:10px;color:#bcbab2}.slot.selected{outline:3px solid var(--accent);outline-offset:-3px}.slot .rm{position:absolute;top:2px;right:2px;background:rgba(30,30,35,.7);color:#fff;border-radius:50%;width:20px;height:20px;font-size:11px;line-height:20px;text-align:center;display:none;border:none;padding:0}.slot.filled:hover .rm{display:block}.hint{color:var(--muted);font-size:12px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;align-items:center}.tracklist{margin-top:12px;font-size:12px;color:var(--muted);column-count:2;column-gap:20px}.tracklist div{padding:2px 0;page-break-inside:avoid;break-inside:avoid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracklist b{color:var(--text);font-weight:600}.preview{text-align:center}.preview canvas{max-width:100%;max-height:70vh;border-radius:12px;margin-top:10px;border:1px solid var(--line)}.badge{display:inline-block;background:#eef0ff;color:var(--accent);font-size:11px;padding:3px 12px;margin-top:6px}.badge,.toast{border-radius:99px}.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--btn);color:#fff;padding:10px 20px;font-size:13px;opacity:0;transition:opacity .3s;pointer-events:none;z-index:9}.toast.show{opacity:1}footer{text-align:center;color:var(--muted);font-size:11px;padding:20px}@media (max-width:480px){header{padding:16px 12px 4px}header h1{font-size:20px}.wrap{padding:8px 10px 40px;gap:10px}.panel{padding:10px;border-radius:12px}input[type=text]{font-size:16px;min-width:0}select{font-size:16px;padding:12px 10px}button{padding:12px 16px;font-size:14px}.seg button{padding:12px 14px}.row{gap:6px}.results{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));max-height:250px;gap:6px}.grid{gap:4px}.tracklist{column-count:1;font-size:13px}.tracklist div{padding:4px 0}.toolbar{gap:6px}.toolbar button,.toolbar select{flex:1 1 45%}.toast{width:calc(100% - 40px);text-align:center}}