:root{--bg: #0d0e13;--panel: #15171f;--panel-2: #1b1e28;--border: #262a36;--text: #edeff3;--muted: #8b91a3;--accent: #8266ff;--accent-strong: #6d4dff;--accent-2: #22c55e;--danger: #ef4444;--warn: #f59e0b;--accent-rgb: 130, 102, 255;--accent-2-rgb: 34, 197, 94;--danger-rgb: 239, 68, 68;--warn-rgb: 245, 158, 11;--radius: 12px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .25), 0 12px 24px -16px rgba(0, 0, 0, .55);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--text);background:radial-gradient(1100px 560px at 12% -12%,rgba(var(--accent-rgb),.1),transparent 60%),var(--bg)}.layout{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:2rem;padding:.85rem 1.5rem;background:#15171fd1;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.1rem;letter-spacing:.02em;color:var(--accent)}.brand-mark{width:26px;height:26px;flex-shrink:0}.topbar nav{display:flex;gap:1.5rem}.topbar nav a{display:inline-flex;align-items:center;gap:.4rem;color:var(--muted);text-decoration:none;font-size:.88rem;font-weight:500;padding:.35rem 0;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.topbar nav a svg{opacity:.75;transition:opacity .15s ease}.topbar nav a.active,.topbar nav a:hover{color:var(--text);border-bottom-color:var(--accent)}.topbar nav a.active svg,.topbar nav a:hover svg{opacity:1}.content{flex:1;padding:1.5rem;max-width:1100px;width:100%;margin:0 auto}h1{font-size:1.65rem;font-weight:700;letter-spacing:-.01em;margin:0 0 1.1rem}h2{font-size:1.05rem;font-weight:600;margin:0 0 .7rem}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;margin-bottom:1rem;box-shadow:var(--shadow-card)}.row{display:flex;gap:.6rem;align-items:center}input[type=text],input[type=number],input[type=password],input[type=url]{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:.5rem .7rem;color:var(--text);font-size:.92rem;flex:1}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--panel-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%238b91a3' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E") no-repeat right .6rem center;background-size:14px;border:1px solid var(--border);border-radius:6px;padding:.5rem 2rem .5rem .7rem;color:var(--text);font-size:.88rem;cursor:pointer}select:hover{border-color:var(--accent)}select option{background:var(--panel-2);color:var(--text)}button{background:linear-gradient(180deg,#9782ff,var(--accent-strong));color:#fff;border:none;border-radius:8px;padding:.55rem 1rem;font-size:.88rem;font-weight:600;cursor:pointer;white-space:nowrap;box-shadow:0 1px #ffffff1a inset,0 8px 16px -10px rgba(var(--accent-rgb),.7);transition:transform .1s ease,filter .15s ease,box-shadow .15s ease}button:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 1px #ffffff1a inset,0 12px 20px -10px rgba(var(--accent-rgb),.8)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel-2);border:1px solid var(--border);box-shadow:none;font-weight:500}button.secondary:hover:not(:disabled){border-color:var(--accent);filter:none;background:var(--panel-2)}button.danger{background:var(--danger);box-shadow:0 1px #ffffff1a inset,0 8px 16px -10px rgba(var(--danger-rgb),.7)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--border)}th{color:var(--muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}tr:hover td{background:#ffffff05}.badge{display:inline-block;padding:.2rem .6rem;border-radius:999px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.badge.wanted,.badge.queued{background:rgba(var(--warn-rgb),.15);color:var(--warn)}.badge.searching,.badge.in_progress,.badge.downloading,.badge.tagging{background:rgba(var(--accent-rgb),.15);color:var(--accent)}.badge.done,.badge.downloaded,.badge.completed{background:rgba(var(--accent-2-rgb),.15);color:var(--accent-2)}.badge.failed,.badge.not_found,.badge.cancelled{background:rgba(var(--danger-rgb),.15);color:var(--danger)}.badge.awaiting_review{background:#38bdf826;color:#38bdf8}.badge.in-library{background:#94a3b826;color:var(--muted);flex-shrink:0}.muted{color:var(--muted)}.empty{color:var(--muted);padding:1.5rem;text-align:center}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.9rem}.stat-tile{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem 1.2rem;color:inherit;text-decoration:none;box-shadow:var(--shadow-card);transition:transform .15s cubic-bezier(.2,.8,.2,1),border-color .15s ease,box-shadow .15s ease}.stat-tile:hover{border-color:var(--accent);transform:translateY(-3px);box-shadow:0 4px 10px #0000004d,0 20px 30px -18px rgba(var(--accent-rgb),.5)}.stat-tile-label{color:var(--muted);font-size:.8rem;font-weight:600}.stat-tile-value{font-size:2.1rem;font-weight:600;line-height:1.25;margin-top:.15rem}.stat-tile-sub{margin-top:.4rem;font-size:.78rem}.artist-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1.15rem}.artist-card{display:block;position:relative;aspect-ratio:1 / 1.15;border-radius:14px;overflow:hidden;background:var(--panel-2);border:1px solid var(--border);color:inherit;text-decoration:none;box-shadow:var(--shadow-card);transition:transform .18s cubic-bezier(.2,.8,.2,1),border-color .18s ease,box-shadow .18s ease}.artist-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 6px 14px #00000059,0 24px 38px -18px rgba(var(--accent-rgb),.55)}.artist-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.artist-card:hover img{transform:scale(1.05)}.artist-card-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.6rem;font-weight:700;color:#ffffff73;background:linear-gradient(160deg,rgba(var(--accent-rgb),.22),var(--bg))}.artist-card-gap-badge{position:absolute;top:.5rem;right:.5rem;z-index:1}.artist-card-label{position:absolute;left:0;right:0;bottom:0;padding:.8rem .75rem .65rem;background:linear-gradient(to top,rgba(0,0,0,.92) 0%,rgba(0,0,0,.55) 60%,transparent 100%)}.artist-card-name{color:#fff;font-weight:700;font-size:.92rem;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artist-card-meta{color:#ffffffb8;font-size:.74rem;margin-top:.15rem}.progress-bar{height:6px;background:var(--panel-2);border-radius:999px;overflow:hidden;width:100px}.progress-bar>div{height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent))}.error-text{color:var(--danger);font-size:.82rem}form.inline{display:flex;gap:.6rem;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field label{font-size:.82rem;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;padding:1.5rem}.modal-panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;width:100%;max-width:560px;max-height:85vh;overflow-y:auto;box-shadow:0 2px 4px #0000004d,0 30px 60px -20px #000000b3}.modal-panel-wide{max-width:760px}.discography-row{display:flex;align-items:center;gap:.7rem;padding:.5rem .4rem;border-bottom:1px solid var(--border);cursor:pointer}.discography-row:last-child{border-bottom:none}.discography-row:hover{background:#ffffff05}.discography-row-cover,.discography-row-cover-fallback{width:48px;height:48px;border-radius:6px;flex-shrink:0}.discography-row-cover{object-fit:cover;display:block}.discography-row-cover-fallback{background:linear-gradient(160deg,rgba(var(--accent-rgb),.18),var(--bg))}.discography-row-info{display:flex;flex-direction:column;gap:.15rem;font-size:.88rem;flex:1}.discography-row-owned{opacity:.55}.poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.6rem}.poster-option{position:relative;aspect-ratio:1 / 1;padding:0;border-radius:6px;overflow:hidden;background:var(--panel-2);border:2px solid var(--border)}.poster-option img{width:100%;height:100%;object-fit:cover;display:block}.poster-option-selected{border-color:var(--accent)}.poster-option-busy{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000b3;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem}.image-edit-trigger{position:relative;display:inline-block;border:none;padding:0;background:none;cursor:pointer;border-radius:8px}.image-edit-trigger img,.image-edit-trigger .artist-card-fallback{display:block}.image-edit-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:600;border-radius:8px;opacity:0;transition:opacity .1s ease}.image-edit-trigger:hover .image-edit-overlay{opacity:1}.detail-hero{position:relative;border-radius:var(--radius);overflow:hidden;margin-bottom:1.3rem;padding:1.75rem;border:1px solid var(--border);box-shadow:var(--shadow-card)}.detail-hero-backdrop{position:absolute;top:-25%;right:-25%;bottom:-25%;left:-25%;background-size:cover;background-position:center;filter:blur(40px) saturate(1.3) brightness(.55);transform:scale(1.15);z-index:0}.detail-hero-backdrop-fallback{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(var(--accent-rgb),.32),var(--panel) 75%);z-index:0}.detail-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0d0e1359,#0d0e13e0);z-index:1}.detail-hero-content{position:relative;z-index:2;display:flex;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}.image-edit-trigger.detail-hero-art{width:156px;height:156px;border-radius:12px;flex-shrink:0;box-shadow:0 16px 32px #0000008c,0 2px 8px #0006}.detail-hero-art .image-edit-overlay{border-radius:12px}.detail-hero-title{margin:0;font-size:2rem;font-weight:800;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.5)}.detail-hero-meta{margin:.4rem 0 0;color:#ffffffc7;font-size:.95rem}
