:root{--bg: #191919;--surface: #282828;--surface-raised: #3e3e3e;--surface-sunken: #181818;--border: #404040;--border-strong: #535353;--text: #efefef;--text-muted: #b3b3b3;--text-faint: #8a8a8a;--brand: #1bd760;--brand-hover: #1ed760;--on-brand: #000;--danger-bg: #5a2d41;--danger-border: #842029;--danger-text: #f5c2c7;--success-bg: #0f5132;--success-text: #d1e7dd;--warning-bg: #4a3c1d;--warning-border: #8a6d1f;--warning-text: #ffe08a;--radius: 8px;--radius-sm: 4px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg);min-height:100vh;color:var(--text)}.container{max-width:1200px;margin:0 auto;padding:20px}.header{text-align:center;margin-bottom:40px;color:var(--text)}.header img{width:180px;height:180px;object-fit:contain;margin:0 auto;display:block}.header h1{font-size:2rem;margin-top:8px;color:var(--brand);font-weight:700}.header p{font-size:1.2rem;color:var(--text-muted);margin-top:4px}.card{background:var(--surface);border-radius:var(--radius);padding:30px;margin-bottom:30px;box-shadow:0 8px 24px #0006;border:1px solid var(--border)}.panel{background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.panel-muted{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);padding:15px;color:var(--text-muted)}.text-muted{color:var(--text-muted)}.text-faint{color:var(--text-faint);font-size:14px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:var(--text)}.form-input{width:100%;padding:12px 15px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:16px;background:var(--surface-raised);color:var(--text);transition:border-color .2s ease}.form-input:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-color:var(--brand)}.form-input::placeholder{color:var(--text-muted)}.form-hint{font-size:13px;color:var(--text-muted);margin-top:6px}.textarea{min-height:100px;resize:vertical;font-family:inherit}.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-bottom:20px}.btn{background:var(--brand);color:var(--on-brand);border:none;padding:12px 30px;border-radius:50px;font-size:16px;font-weight:700;cursor:pointer;transition:background .2s ease,transform .2s ease;margin-right:10px}.btn:hover:not(:disabled){background:var(--brand-hover);transform:scale(1.04)}.btn:focus-visible,.nav-tab:focus-visible,.track-item:focus-visible,.history-card:focus-visible,.preset-btn:focus-visible,a:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:transparent;color:var(--text-muted);border:1px solid var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--surface);color:var(--text);border-color:var(--text)}.btn-danger{background:transparent;color:var(--danger-text);border:1px solid var(--danger-border)}.btn-danger:hover:not(:disabled){background:var(--danger-bg)}.btn-small{padding:8px 18px;font-size:14px}.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.loading{text-align:center;padding:40px;color:var(--text-muted)}.error{background:var(--danger-bg);color:var(--danger-text);padding:15px;border-radius:var(--radius-sm);margin:20px 0;border:1px solid var(--danger-border)}.success{background:var(--success-bg);color:var(--success-text);padding:15px;border-radius:var(--radius-sm);margin:20px 0;border:1px solid var(--brand)}.warning{background:var(--warning-bg);color:var(--warning-text);padding:15px;border-radius:var(--radius-sm);margin:20px 0;border:1px solid var(--warning-border)}.empty-state{text-align:center;padding:50px 20px;color:var(--text-muted)}.empty-state h3{color:var(--text);margin-bottom:10px}.track-list{margin-top:20px}.track-item{display:flex;align-items:center;width:100%;padding:12px 15px;margin-bottom:10px;background:var(--surface-sunken);border-radius:6px;border:1px solid transparent;transition:background .2s ease,border-color .2s ease;text-align:left;cursor:pointer;color:inherit;font:inherit}.track-item:hover{background:var(--surface)}.track-item.selected{border-color:var(--brand);background:#1a3a1a}.track-item.deselected .track-title,.track-item.deselected .track-artist{opacity:.5}.track-number{width:28px;color:var(--text-faint);font-size:14px;flex-shrink:0}.track-artwork{width:56px;height:56px;border-radius:6px;margin-right:15px;object-fit:cover;flex-shrink:0;background:var(--surface-raised)}.track-info{flex-grow:1;min-width:0}.track-title{font-weight:600;margin-bottom:4px;color:var(--text)}.track-artist{color:var(--text-muted);font-size:14px}.track-checkbox{margin-left:15px;width:18px;height:18px;accent-color:var(--brand);flex-shrink:0;cursor:pointer}.selection-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 0;border-bottom:1px solid var(--border);margin-bottom:15px}.pass-track{display:flex;justify-content:space-between;gap:8px;margin:24px 0}.pass-node{flex:1;text-align:center;padding:12px 6px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-sunken);color:var(--text-faint);font-size:13px;font-weight:600;transition:all .3s ease}.pass-node.active{border-color:var(--brand);color:var(--brand);animation:pulse 1.6s ease-in-out infinite}.pass-node.complete{border-color:var(--brand);background:#1bd7601f;color:var(--brand)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.55}}.found-feed{max-height:260px;overflow-y:auto;margin-top:20px}.preset-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.preset-btn{padding:8px 18px;border-radius:50px;border:1px solid var(--border-strong);background:transparent;color:var(--text-muted);font-weight:600;cursor:pointer;transition:all .2s ease}.preset-btn:hover{border-color:var(--text);color:var(--text)}.preset-btn[aria-pressed=true]{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.slider{width:100%;accent-color:var(--brand)}.steps{display:flex;justify-content:center;margin-bottom:30px}.step{display:flex;align-items:center;margin:0 20px;color:var(--text-muted);opacity:.6}.step.active{opacity:1;color:var(--text)}.step-number{width:30px;height:30px;border-radius:50%;background:var(--border);display:flex;align-items:center;justify-content:center;margin-right:10px;font-weight:600;color:var(--text-muted)}.step.active .step-number{background:var(--brand);color:var(--on-brand)}.nav-tabs{display:flex;background:var(--surface);border-radius:var(--radius);padding:5px;margin-bottom:30px;gap:5px;border:1px solid var(--border)}.nav-tab{flex:1;padding:12px 20px;border:none;background:transparent;color:var(--text-muted);border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center}.nav-tab:hover{background:var(--surface-raised);color:var(--text)}.nav-tab.active{background:var(--brand);color:var(--on-brand)}.history-list{display:grid;gap:15px}.history-card{display:flex;gap:15px;align-items:center;padding:15px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius);text-decoration:none;color:inherit;transition:background .2s ease,border-color .2s ease}.history-card:hover{background:var(--surface);border-color:var(--border-strong)}.history-art{display:grid;grid-template-columns:1fr 1fr;width:80px;height:80px;flex-shrink:0;border-radius:6px;overflow:hidden;background:var(--surface-raised)}.history-art img{width:100%;height:100%;object-fit:cover}.history-art.single{grid-template-columns:1fr}.history-meta{min-width:0}.history-meta h3{color:var(--text);font-size:1.05rem;margin-bottom:4px}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-raised) 50%,var(--surface) 75%);background-size:200% 100%;animation:shimmer 1.4s infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:768px){.profile-grid{grid-template-columns:1fr}.nav-tabs{flex-direction:column}.pass-track{flex-wrap:wrap}.pass-node{min-width:40%}.card{padding:20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.btn:hover:not(:disabled){transform:none}}
