:root{--color-background: #ffffff;--color-background-soft: #f9f9f9;--color-background-mute: #f1f1f1;--color-border: #b0b0b0;--color-border-hover: #d3d3d3;--color-heading: #2c3e50;--color-text: #213547;--color-text-light: #5a6a7a;--color-text-inverted: #ffffff;--color-primary: #3498db;--color-primary-hover: #2980b9;--color-primary-soft: #e0f2fe;--color-secondary: #e9ecef;--color-secondary-hover: #dae0e5;--color-success: #2ecc71;--color-warning: #f39c12;--color-error: #e74c3c;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--color-text);background-color:var(--color-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html.dark{--color-background: #1a1a1a;--color-background-soft: #242424;--color-background-mute: #2f2f2f;--color-border: #3a3a3a;--color-border-hover: #555555;--color-heading: #e0e0e0;--color-text: #cccccc;--color-text-light: #aaaaaa;--color-text-inverted: #ffffff;--color-primary: #3498db;--color-primary-hover: #4aa7ec;--color-primary-soft: rgba(52, 152, 219, .2);--color-secondary: #3a3a3a;--color-secondary-hover: #4e4e4e;--color-success: #27ae60;--color-warning: #d68910;--color-error: #c0392b}a{font-weight:500;color:var(--color-primary);text-decoration:inherit}a:hover{color:var(--color-primary-hover)}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--color-background);color:var(--color-text);transition:background-color .3s,color .3s}h1{font-size:3.2em;line-height:1.1;color:var(--color-heading)}#app{width:100%;margin:0 auto;padding:0}.compact-nav[data-v-08c12094]{background:var(--color-background);border-bottom:2px solid var(--color-border);padding:.5rem 0;margin-bottom:.5rem;position:relative}.collapse-toggle[data-v-08c12094]{display:none}.nav-content[data-v-08c12094]{display:flex;justify-content:space-between;align-items:center;margin:0;padding:0 1rem;position:relative}.nav-left h2[data-v-08c12094]{margin:0;font-size:1.25rem;color:var(--color-heading);font-weight:600;white-space:nowrap}.nav-center[data-v-08c12094]{display:flex;justify-content:center;gap:.5rem;flex-wrap:nowrap;position:absolute;left:50%;transform:translate(-50%)}.nav-right[data-v-08c12094]{display:flex;align-items:center;gap:1rem;white-space:nowrap}.sync-btn[data-v-08c12094]{background-color:var(--color-success);color:var(--color-text-inverted);border-color:var(--color-success)}.sync-btn[data-v-08c12094]:hover{background-color:var(--color-success);border-color:var(--color-success)}.user-info[data-v-08c12094]{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.avatar[data-v-08c12094]{width:24px;height:24px;border-radius:50%}.nav-link[data-v-08c12094]{display:flex;align-items:center;gap:.35rem;padding:.5rem .75rem;background:transparent;border:1px solid transparent;border-radius:6px;font-size:.85rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:all .2s}.nav-link[data-v-08c12094]:hover{background:var(--color-background-soft);border-color:var(--color-border-hover)}.nav-link.active[data-v-08c12094]{background:var(--color-primary);color:var(--color-text-inverted);border-color:var(--color-primary-hover)}.nav-link.active .badge[data-v-08c12094]{background:#ffffff4d;color:var(--color-text-inverted)}.badge[data-v-08c12094]{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 .4rem;background:var(--color-secondary);border-radius:10px;font-size:.7rem;font-weight:600;color:var(--color-text)}@media(max-width:1000px){.compact-nav[data-v-08c12094]{position:fixed;inset:auto 0 0;margin-bottom:0;border-bottom:none;border-top:2px solid var(--color-border);padding:0;background:var(--color-background);box-shadow:0 -2px 10px #0000001a;z-index:1000;transition:all .3s ease}.collapse-toggle[data-v-08c12094]{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.6rem 1rem;background:var(--color-background-soft);border:none;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background-color .2s;gap:1rem}.collapse-toggle[data-v-08c12094]:hover{background:var(--color-background-mute)}.toggle-text[data-v-08c12094]{display:flex;align-items:center;gap:.5rem;flex:1;overflow:hidden}.toggle-label[data-v-08c12094]{font-size:.9rem;font-weight:600;color:var(--color-heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toggle-nav-hint[data-v-08c12094]{font-size:.75rem;color:var(--color-text-light);white-space:nowrap}.toggle-icon[data-v-08c12094]{font-size:.8rem;color:var(--color-text);flex-shrink:0}.nav-content[data-v-08c12094]{flex-direction:column;gap:.5rem;padding:.5rem 1rem;max-height:400px;overflow-y:auto;transition:max-height .3s ease,opacity .3s ease,padding .3s ease}.nav-content.is-collapsed[data-v-08c12094]{max-height:0;opacity:0;padding:0 1rem;overflow:hidden}.nav-left[data-v-08c12094]{display:flex;justify-content:center;width:100%}.nav-left h2[data-v-08c12094]{font-size:1rem;margin:0}.nav-center[data-v-08c12094]{position:static;transform:none;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%}.nav-center .nav-link[data-v-08c12094]:nth-child(3),.nav-center .nav-link[data-v-08c12094]:nth-child(4){grid-column:span 1}.nav-right[data-v-08c12094]{display:flex;justify-content:space-between;align-items:center;gap:.5rem;width:100%}.nav-link[data-v-08c12094]{flex-direction:row;justify-content:center;padding:1rem;font-size:1rem;gap:.5rem;min-height:48px;white-space:nowrap}.nav-right .nav-link[data-v-08c12094]{flex:0 0 auto}.nav-label[data-v-08c12094]{font-size:.9rem}.badge[data-v-08c12094]{font-size:.75rem;min-width:20px;height:20px;padding:0 .4rem}.user-info[data-v-08c12094]{font-size:.85rem;justify-content:center}.user-info span[data-v-08c12094]{display:inline}.avatar[data-v-08c12094]{width:24px;height:24px}}.modal-overlay[data-v-9e642c49]{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-9e642c49]{position:relative;background:var(--color-background);padding:2rem;border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.close-button[data-v-9e642c49]{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-text)}.playlist-list[data-v-597ef0d1]{padding:0 1rem;max-width:800px;margin:0 auto}.action-bar[data-v-597ef0d1]{display:flex;align-items:center;width:100%;gap:.75rem;margin-bottom:1rem}.btn-create[data-v-597ef0d1]{display:inline-flex;align-items:center;gap:.45rem;padding:.6rem .9rem;border:1px solid var(--color-primary);border-radius:8px;background:var(--color-primary);color:var(--color-text-inverted);font-weight:600;cursor:pointer}.btn-create[data-v-597ef0d1]:hover{background:var(--color-primary-hover)}.btn-import[data-v-597ef0d1]{padding:.6rem .9rem;border:1px solid var(--color-primary);border-radius:8px;background:var(--color-primary);color:var(--color-text-inverted);font-weight:600;cursor:pointer;margin-left:auto}.btn-import[data-v-597ef0d1]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-import[data-v-597ef0d1]:disabled{opacity:.6;cursor:not-allowed}h2[data-v-597ef0d1]{margin-bottom:1rem;color:var(--color-heading)}.loading[data-v-597ef0d1],.empty[data-v-597ef0d1]{padding:2rem;text-align:center;color:var(--color-text-light)}.error[data-v-597ef0d1]{padding:2rem;text-align:center;color:var(--color-error)}.playlists[data-v-597ef0d1]{display:flex;flex-direction:column;gap:.75rem}.playlist-card[data-v-597ef0d1]{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background-color .2s,transform .1s}.playlist-card[data-v-597ef0d1]:hover{background:var(--color-background-mute);transform:translate(4px)}.playlist-info[data-v-597ef0d1]{flex:1}.playlist-title-row[data-v-597ef0d1]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.25rem}.playlist-info h3[data-v-597ef0d1]{margin:0;font-size:1.1rem;color:var(--color-heading)}.spotify-linked-badge[data-v-597ef0d1]{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:999px;border:1px solid #1db954;background:#1db95424;color:#1db954;font-size:.75rem;font-weight:600}.description[data-v-597ef0d1]{margin:0 0 .5rem;color:var(--color-text-light);font-size:.9rem}.meta[data-v-597ef0d1]{display:flex;gap:.5rem;font-size:.85rem;color:var(--color-text-light)}.playlist-actions[data-v-597ef0d1]{display:flex;gap:.5rem}.btn-icon[data-v-597ef0d1]{padding:.5rem;background:transparent;border:none;cursor:pointer;font-size:1rem;border-radius:4px;transition:background-color .2s;color:var(--color-text)}.btn-icon[data-v-597ef0d1]:hover{background:var(--color-background-mute)}.spotify-import-modal h3[data-v-597ef0d1]{margin:0 0 .5rem;color:var(--color-heading)}.modal-subtitle[data-v-597ef0d1]{margin:0 0 1rem;color:var(--color-text-light);font-size:.9rem}.modal-state[data-v-597ef0d1]{padding:1rem 0;color:var(--color-text-light)}.modal-error[data-v-597ef0d1]{padding:.75rem;border:1px solid rgba(239,68,68,.3);background:#ef444414;color:#ef4444;border-radius:8px}.spotify-playlist-table[data-v-597ef0d1]{max-height:360px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem;margin:.5rem 0 1rem}.spotify-playlist-row[data-v-597ef0d1]{display:flex;align-items:center;gap:.75rem;width:100%;padding:.6rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-background-soft);cursor:pointer;text-align:left}.spotify-playlist-row[data-v-597ef0d1]:hover{border-color:var(--color-border-hover);background:var(--color-background-mute)}.spotify-playlist-row.selected[data-v-597ef0d1]{border-color:var(--color-primary);background:var(--color-primary-soft)}.spotify-playlist-image[data-v-597ef0d1]{width:48px;height:48px;border-radius:6px;object-fit:cover;flex-shrink:0}.spotify-playlist-image.placeholder[data-v-597ef0d1]{display:flex;align-items:center;justify-content:center;background:var(--color-background-mute)}.spotify-playlist-meta[data-v-597ef0d1]{min-width:0}.spotify-playlist-name[data-v-597ef0d1]{font-weight:600;color:var(--color-heading)}.spotify-playlist-count[data-v-597ef0d1]{font-size:.85rem;color:var(--color-text-light)}.modal-actions[data-v-597ef0d1]{display:flex;justify-content:flex-end;gap:.5rem}.btn-secondary[data-v-597ef0d1]{padding:.6rem .9rem;border-radius:8px;border:1px solid var(--color-border);background:var(--color-secondary);color:var(--color-text);cursor:pointer}.btn-secondary[data-v-597ef0d1]:hover:not(:disabled){background:var(--color-secondary-hover)}.btn-secondary[data-v-597ef0d1]:disabled{opacity:.6;cursor:not-allowed}.playlist-form[data-v-0e233fc9]{padding:1rem;background-color:var(--color-background-soft);border-radius:8px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--color-border)}h2[data-v-0e233fc9]{margin:0 0 1.5rem;color:var(--color-heading)}.form-group[data-v-0e233fc9]{margin-bottom:1rem}label[data-v-0e233fc9]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}input[data-v-0e233fc9],textarea[data-v-0e233fc9]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background-color:var(--color-background);color:var(--color-text);font-family:inherit;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input[data-v-0e233fc9]:focus,textarea[data-v-0e233fc9]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[data-v-0e233fc9]:disabled,textarea[data-v-0e233fc9]:disabled{background-color:var(--color-background-mute);cursor:not-allowed}textarea[data-v-0e233fc9]{resize:vertical;min-height:80px}.form-actions[data-v-0e233fc9]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn[data-v-0e233fc9]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.btn[data-v-0e233fc9]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-0e233fc9]{background-color:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-0e233fc9]:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary[data-v-0e233fc9]{background-color:var(--color-secondary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary[data-v-0e233fc9]:hover:not(:disabled){background-color:var(--color-secondary-hover)}.filter-container[data-v-61c7747c]{background:var(--color-background-soft);padding:1rem;border-radius:8px;margin-bottom:1.5rem}.main-filter[data-v-61c7747c]{display:flex;gap:1rem;align-items:center}.main-filter .filter-group[data-v-61c7747c]{flex:1;min-width:0}.advanced-toggle[data-v-61c7747c]{display:flex;justify-content:space-between;align-items:center;cursor:pointer;margin-top:1rem}.advanced-toggle h3[data-v-61c7747c]{color:var(--color-heading);margin:0;font-size:1.1rem}.advanced-arrow[data-v-61c7747c]{transition:transform .2s;display:inline-block;color:var(--color-heading)}.advanced-arrow.rotated[data-v-61c7747c]{transform:rotate(180deg)}.advanced-filters[data-v-61c7747c]{margin-top:1rem;border-top:1px solid var(--color-border);padding-top:1rem}.song-filter[data-v-61c7747c]{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.filter-group[data-v-61c7747c]{flex:1;min-width:150px}.filter-group.full-width[data-v-61c7747c]{flex-basis:100%}.duration-row[data-v-61c7747c]{display:flex;gap:1rem;width:100%}.filter-group label[data-v-61c7747c]{display:block;font-size:.8rem;font-weight:500;margin-bottom:.25rem;color:var(--color-text-light)}.duration-container[data-v-61c7747c]{min-width:120px}.duration-group[data-v-61c7747c]{display:flex;gap:.5rem}.duration-group input[data-v-61c7747c]{width:50%}.form-input[data-v-61c7747c],.form-select[data-v-61c7747c],.filter-btn[data-v-61c7747c]{width:100%;padding:.6rem .8rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-background);color:var(--color-text);font-size:.9rem;text-align:left;box-sizing:border-box}.filter-btn[data-v-61c7747c]{cursor:pointer}.filter-btn[data-v-61c7747c]:hover{background-color:var(--color-background-mute)}.filter-footer[data-v-61c7747c]{display:flex;justify-content:flex-end;align-items:center;gap:1rem;margin-top:1rem;min-height:24px}.btn-link[data-v-61c7747c]{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:.85rem}.btn-link[data-v-61c7747c]:hover{text-decoration:underline}.modal-header[data-v-61c7747c]{margin-top:0;margin-bottom:1.5rem}.checklist[data-v-61c7747c]{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;max-height:50vh;overflow-y:auto;padding:.5rem;background-color:var(--color-background-soft);border-radius:6px}.checklist-item[data-v-61c7747c]{display:flex;align-items:center;gap:.75rem;padding:.5rem;border-radius:4px;cursor:pointer;transition:background-color .2s}.checklist-item[data-v-61c7747c]:hover{background-color:var(--color-background-mute)}.checklist-item input[data-v-61c7747c]{width:16px;height:16px}.modal-actions[data-v-61c7747c]{display:flex;justify-content:flex-end;gap:.5rem}.tag-pill[data-v-61c7747c]{padding:.25rem .6rem;border-radius:12px;font-size:.85rem;font-weight:500;color:var(--color-text-inverted)}.btn[data-v-61c7747c]{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.btn-primary[data-v-61c7747c]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-61c7747c]:hover{background:var(--color-primary-hover)}.btn-secondary[data-v-61c7747c]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-61c7747c]:hover{background:var(--color-secondary-hover)}.playlist-detail[data-v-3b4625df]{padding:0 1rem}.header[data-v-3b4625df]{margin-bottom:2rem;max-width:1200px;margin-left:auto;margin-right:auto}.header-content.wide-header[data-v-3b4625df]{display:grid;grid-template-columns:1fr 2fr;gap:2rem;min-height:140px}.header-content.wide-header .stat-item[data-v-3b4625df]{min-width:0}.header-content.wide-header .weight-list-wide[data-v-3b4625df]{display:flex;flex-wrap:wrap;gap:.5rem}.btn-back[data-v-3b4625df]{padding:.5rem 1rem;margin-bottom:1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s;color:var(--color-text)}.btn-back[data-v-3b4625df]:hover{background:var(--color-background-mute)}.header-info[data-v-3b4625df]{display:flex;flex-direction:column;justify-content:space-between}.header-info h2[data-v-3b4625df]{margin-bottom:0}.header-info p.description[data-v-3b4625df]{margin-top:0;margin-bottom:.25rem;color:var(--color-text-light)}.header-info .meta[data-v-3b4625df]{display:flex;gap:.25rem;color:var(--color-text-light);font-size:1rem;font-weight:700}.spotify-playlist-id[data-v-3b4625df]{margin:.4rem 0 0;padding-bottom:.5rem;color:#1db954;font-size:.85rem}.spotify-playlist-id code[data-v-3b4625df]{padding:.1rem .35rem;border-radius:4px;border:1px solid #1db954;background:#1db95424;color:#1db954}.playlist-stats-container[data-v-3b4625df]{max-width:800px;margin:0 auto 2rem;border:1px solid var(--color-border);border-radius:8px;padding:.5rem 1rem}.playlist-stats-container summary[data-v-3b4625df]{cursor:pointer;font-weight:500}.stats-section[data-v-3b4625df]{background:var(--color-background-soft);padding:1rem;border-radius:8px;margin-top:1rem}.stats-section h4[data-v-3b4625df]{margin:0 0 1rem;color:var(--color-heading)}.stats-content[data-v-3b4625df]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stat-item h5[data-v-3b4625df]{margin-top:0;margin-bottom:.1rem;color:var(--color-text)}.stat-item p[data-v-3b4625df],.stat-item .tag-list[data-v-3b4625df]{margin:0;color:var(--color-text-light)}.tag-list[data-v-3b4625df]{display:flex;flex-wrap:wrap;gap:.5rem}.tag-stat[data-v-3b4625df]{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:var(--color-background-mute);border-radius:4px}.tag-info[data-v-3b4625df]{display:flex;align-items:center;gap:.5rem}.tag-color-dot[data-v-3b4625df]{width:12px;height:12px;border-radius:50%}.tag-count[data-v-3b4625df]{font-weight:500;color:var(--color-text)}.weight-list[data-v-3b4625df]{display:flex;flex-wrap:wrap;gap:.5rem}.weight-stat[data-v-3b4625df]{padding:.25rem .6rem;background:var(--color-background-mute);border-radius:4px;display:flex;align-items:center;justify-content:center}.weight-stat.weight-light span[data-v-3b4625df]{font-weight:700;color:var(--color-success)}.weight-stat.weight-normal span[data-v-3b4625df]{font-weight:700;color:var(--color-warning)}.weight-stat.weight-heavy span[data-v-3b4625df]{font-weight:700;color:var(--color-error)}.stats-wide[data-v-3b4625df]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.stats-wide .tag-list-wide[data-v-3b4625df]{display:flex;flex-wrap:wrap;gap:.5rem;max-height:250px;overflow-y:auto}.section[data-v-3b4625df]{margin-bottom:2rem;max-width:800px;margin-left:auto;margin-right:auto}.section-header[data-v-3b4625df]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.section h3[data-v-3b4625df]{margin:0 0 1rem;color:var(--color-heading);font-size:1.1rem}.section-header h3[data-v-3b4625df]{margin-bottom:0}.button-group[data-v-3b4625df]{display:flex;gap:.5rem}.empty[data-v-3b4625df]{padding:1.5rem;text-align:center;color:var(--color-text-light);background:var(--color-background-soft);border-radius:8px}.song-list[data-v-3b4625df]{display:flex;flex-direction:column;gap:.5rem}.song-item[data-v-3b4625df]{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:6px;transition:background-color .2s;color:var(--color-text);cursor:pointer}.song-item[data-v-3b4625df]:hover{background:var(--color-background-mute)}.song-item.selected[data-v-3b4625df]{background-color:var(--color-primary);border:3px solid var(--color-primary-hover)}.song-item.selected .song-name[data-v-3b4625df]{color:var(--color-text-inverted);font-weight:600}.song-item.selected .song-meta[data-v-3b4625df],.song-item.selected .song-number[data-v-3b4625df]{color:var(--color-text-inverted)}.song-album-art[data-v-3b4625df]{width:50px;height:50px;flex-shrink:0;border-radius:4px;overflow:hidden}.song-album-art img[data-v-3b4625df]{width:100%;height:100%;object-fit:cover}.song-album-art-placeholder[data-v-3b4625df]{width:50px;height:50px;flex-shrink:0;border-radius:4px;background-color:var(--color-background-mute);display:flex;align-items:center;justify-content:center;font-size:1.25rem}.handle[data-v-3b4625df]{cursor:grab;font-size:1.2rem;color:var(--color-text-light)}.handle[data-v-3b4625df]:active{cursor:grabbing}.song-number[data-v-3b4625df]{width:24px;text-align:center;color:var(--color-text-light);font-weight:500}.song-info[data-v-3b4625df]{flex:1;display:flex;flex-direction:column;gap:.25rem;min-width:0}.song-name[data-v-3b4625df]{font-weight:500;color:var(--color-heading)}.song-meta[data-v-3b4625df]{font-size:.85rem;color:var(--color-text-light);display:flex;flex-wrap:wrap;gap:.5rem 1rem}.song-meta span[data-v-3b4625df]{display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.spotify-link[data-v-3b4625df]{padding:.1rem .4rem;border-radius:999px;border:1px solid #1db954;background:#1db95424;color:#1db954;font-size:.75rem;font-weight:600}.song-item.selected .spotify-link[data-v-3b4625df],html.dark .song-list.available .song-item.selected .spotify-link[data-v-3b4625df]{border-color:currentColor;background:transparent;color:inherit}.song-meta .tags[data-v-3b4625df]{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.tag-pill[data-v-3b4625df]{padding:.25rem .6rem;border-radius:12px;font-size:.75rem;font-weight:500;color:var(--color-text-inverted);display:inline-flex;align-items:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.weights.weight-light[data-v-3b4625df]{font-weight:700;color:var(--color-success)}.weights.weight-normal[data-v-3b4625df]{font-weight:700;color:var(--color-warning)}.weights.weight-heavy[data-v-3b4625df]{font-weight:700;color:var(--color-error)}.actions-bar[data-v-3b4625df]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:.75rem;background-color:var(--color-background-soft);border-radius:8px}.actions-bar .button-group[data-v-3b4625df]{display:flex;gap:.5rem}.selection-controls[data-v-3b4625df]{display:flex;align-items:center;gap:.5rem}.selection-controls label[data-v-3b4625df]{font-size:.9rem;color:var(--color-text)}.btn[data-v-3b4625df]{padding:.5rem 1rem;background:var(--color-primary);color:var(--color-text-inverted);border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn[data-v-3b4625df]:hover:not(:disabled){background:var(--color-primary-hover)}.btn[data-v-3b4625df]:disabled{background-color:var(--color-background-mute);color:var(--color-text-light);cursor:not-allowed}.btn-danger[data-v-3b4625df]{background-color:var(--color-error)}.btn-danger[data-v-3b4625df]:hover:not(:disabled){background-color:var(--color-error)}.btn-secondary[data-v-3b4625df]{background-color:var(--color-background-mute);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary[data-v-3b4625df]:hover{background-color:var(--color-border-hover)}.btn-spotify-sync[data-v-3b4625df]{background-color:#1db954;color:#fff}.btn-spotify-sync[data-v-3b4625df]:hover:not(:disabled){background-color:#18a44a}.btn-spotify-pull[data-v-3b4625df]{background-color:var(--color-warning);color:#fff}.btn-spotify-pull[data-v-3b4625df]:hover:not(:disabled){filter:brightness(.95)}.btn-small[data-v-3b4625df]{padding:.4rem .8rem;font-size:.85rem}.btn-icon[data-v-3b4625df]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;cursor:pointer;font-size:1rem;transition:background-color .2s}.btn-add[data-v-3b4625df]{color:var(--color-success);font-size:1.2rem;font-weight:700}.btn-add[data-v-3b4625df]:hover{background:var(--color-background-mute)}.btn-remove[data-v-3b4625df]{color:var(--color-error)}.btn-remove[data-v-3b4625df]:hover{background:var(--color-background-mute)}.selected-songs-bubble[data-v-3b4625df]{position:fixed;right:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border-radius:999px;border:1px solid var(--color-primary-hover);background:var(--color-primary);color:var(--color-text-inverted);box-shadow:0 8px 18px #0003;font-size:.9rem;font-weight:600;z-index:1100}.selected-songs-bubble-count[data-v-3b4625df]{white-space:nowrap}.selected-songs-bubble-divider[data-v-3b4625df]{opacity:.8}.selection-bubble-fade-enter-active[data-v-3b4625df],.selection-bubble-fade-leave-active[data-v-3b4625df]{transition:opacity .18s ease,transform .18s ease}.selection-bubble-fade-enter-from[data-v-3b4625df],.selection-bubble-fade-leave-to[data-v-3b4625df]{opacity:0;transform:translateY(8px)}.song-list.available .song-item[data-v-3b4625df]{background:var(--color-background-soft);border:1px solid var(--color-border)}.song-list.available .song-item[data-v-3b4625df]:hover{border-color:var(--color-primary)}.song-list.available .song-item.selected[data-v-3b4625df]{background-color:var(--color-primary);border:3px solid var(--color-primary-hover)}.song-list.available .song-item.selected .song-name[data-v-3b4625df]{color:var(--color-text-inverted);font-weight:600}.song-list.available .song-item.selected .song-meta[data-v-3b4625df],.song-list.available .song-item.selected .song-meta span[data-v-3b4625df]{color:var(--color-text-inverted)}html.dark .song-list.available .song-item.selected[data-v-3b4625df]{background-color:#3498db4d;border:3px solid var(--color-primary)}html.dark .song-list.available .song-item.selected .song-name[data-v-3b4625df]{color:var(--color-heading);font-weight:600}html.dark .song-list.available .song-item.selected .song-meta[data-v-3b4625df],html.dark .song-list.available .song-item.selected .song-meta span[data-v-3b4625df]{color:var(--color-text)}.song-list.available .song-info[data-v-3b4625df]{flex:1;min-width:0}.spotify-sync-action-row[data-v-3b4625df]{display:flex;justify-content:flex-start;gap:.5rem;flex-wrap:wrap;margin:0 0 1rem}.spotify-update-modal h3[data-v-3b4625df]{margin:0 0 .75rem;color:var(--color-heading)}.spotify-update-modal p[data-v-3b4625df]{margin:0 0 1rem;color:var(--color-text-light)}.spotify-update-counts[data-v-3b4625df]{border:1px solid var(--color-border);border-radius:8px;padding:.75rem;margin-bottom:1rem;background:var(--color-background-soft)}.spotify-update-count-row[data-v-3b4625df]{display:flex;justify-content:space-between;align-items:center}.spotify-update-count-row+.spotify-update-count-row[data-v-3b4625df]{margin-top:.5rem}.count-linked[data-v-3b4625df]{color:#1db954}.count-unlinked[data-v-3b4625df]{color:var(--color-warning)}.spotify-update-actions[data-v-3b4625df]{display:flex;justify-content:flex-end;gap:.5rem}.spotify-overwrite-modal h3[data-v-3b4625df]{margin:0 0 .75rem;color:var(--color-heading)}.spotify-overwrite-modal p[data-v-3b4625df]{margin:0 0 1rem;color:var(--color-text-light)}.overwrite-warning[data-v-3b4625df]{color:var(--color-warning)}.song-form[data-v-84dd1f87]{padding:1rem;background-color:var(--color-background-soft);border-radius:8px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--color-border)}h2[data-v-84dd1f87]{margin:0 0 1.5rem;color:var(--color-heading)}.form-group[data-v-84dd1f87]{margin-bottom:1rem}label[data-v-84dd1f87]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}input[data-v-84dd1f87]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background-color:var(--color-background);color:var(--color-text);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input[data-v-84dd1f87]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[data-v-84dd1f87]:disabled{background-color:var(--color-background-mute);cursor:not-allowed}.hint[data-v-84dd1f87]{display:block;margin-top:.25rem;color:var(--color-text-light);font-size:.85rem}.duration-inputs[data-v-84dd1f87]{display:flex;gap:1rem}.duration-field[data-v-84dd1f87]{display:flex;align-items:center;gap:.5rem}.duration-field input[data-v-84dd1f87]{width:80px;text-align:center}.duration-field span[data-v-84dd1f87]{color:var(--color-text-light)}.checkbox-group[data-v-84dd1f87],.radio-option[data-v-84dd1f87]{display:flex;align-items:center;gap:.75rem}.checkbox-group input[data-v-84dd1f87],.radio-group input[data-v-84dd1f87]{width:auto;accent-color:var(--color-primary)}.checkbox-group label[data-v-84dd1f87],.radio-option label[data-v-84dd1f87]{margin:0;font-weight:400;color:var(--color-text)}.radio-group[data-v-84dd1f87]{display:flex;gap:1.5rem;margin-top:.5rem}.class-chips[data-v-84dd1f87]{display:flex;flex-wrap:wrap;gap:.5rem}.chip[data-v-84dd1f87]{padding:.5rem 1rem;background-color:var(--color-secondary);border:2px solid transparent;border-radius:20px;font-size:.9rem;color:var(--color-text);cursor:pointer;transition:all .2s}.chip[data-v-84dd1f87]:hover:not(:disabled){background-color:var(--color-secondary-hover)}.chip.selected[data-v-84dd1f87]{background-color:var(--color-primary);color:var(--color-text-inverted);border-color:var(--color-primary-hover)}.chip[data-v-84dd1f87]:disabled{opacity:.6;cursor:not-allowed}.form-actions[data-v-84dd1f87]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn[data-v-84dd1f87]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn[data-v-84dd1f87]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-84dd1f87]{background-color:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-84dd1f87]:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn-secondary[data-v-84dd1f87]{background-color:var(--color-secondary);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary[data-v-84dd1f87]:hover:not(:disabled){background-color:var(--color-secondary-hover)}.spotify-search-section[data-v-84dd1f87]{margin-bottom:1.5rem;padding:1.5rem;border:2px solid var(--color-border);border-radius:8px;background-color:var(--color-background-soft)}.spotify-search-title[data-v-84dd1f87]{margin:0 0 1rem;font-size:1.1rem;color:var(--color-heading);font-weight:600}.search-box[data-v-84dd1f87]{position:relative;margin-bottom:1rem}.spotify-search-input[data-v-84dd1f87]{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background-color:var(--color-background);color:var(--color-text)}.search-loading[data-v-84dd1f87]{position:absolute;right:1rem;top:50%;transform:translateY(-50%);animation:spin-84dd1f87 1s linear infinite}@keyframes spin-84dd1f87{0%{transform:translateY(-50%) rotate(0)}to{transform:translateY(-50%) rotate(360deg)}}.spotify-error[data-v-84dd1f87]{padding:.75rem;background-color:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:.9rem}.spotify-results[data-v-84dd1f87]{display:flex;flex-direction:column;gap:.5rem;overflow:visible}.search-pager[data-v-84dd1f87]{display:flex;justify-content:flex-end;gap:.3rem;margin-top:.4rem}.pager-btn[data-v-84dd1f87]{width:26px;height:26px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-background);color:var(--color-text);font-size:1rem;line-height:1;padding:0;cursor:pointer}.pager-btn[data-v-84dd1f87]:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.pager-btn[data-v-84dd1f87]:disabled{opacity:.4;cursor:not-allowed}.spotify-track[data-v-84dd1f87]{display:flex;align-items:center;gap:1rem;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-background);cursor:pointer;transition:all .2s}.spotify-track[data-v-84dd1f87]:hover{background-color:var(--color-background-mute);border-color:var(--color-primary);transform:translate(4px)}.track-image[data-v-84dd1f87]{width:50px;height:50px;border-radius:4px;object-fit:cover;flex-shrink:0}.track-image-placeholder[data-v-84dd1f87]{width:50px;height:50px;border-radius:4px;display:flex;align-items:center;justify-content:center;background-color:var(--color-background-mute);font-size:1.5rem;flex-shrink:0}.track-details[data-v-84dd1f87]{flex:1;min-width:0}.track-name[data-v-84dd1f87]{font-weight:600;color:var(--color-heading);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-artist[data-v-84dd1f87]{font-size:.9rem;color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-album[data-v-84dd1f87]{font-size:.85rem;color:var(--color-text-light);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-duration[data-v-84dd1f87]{font-size:.9rem;color:var(--color-text-light);flex-shrink:0}.search-divider[data-v-84dd1f87]{margin-top:.5rem;text-align:center}.search-divider span[data-v-84dd1f87]{font-size:.85rem;color:var(--color-text-light);font-style:italic}.selected-spotify-banner[data-v-84dd1f87]{display:flex;align-items:center;gap:1rem;padding:1rem;margin-bottom:1.5rem;background:linear-gradient(135deg,#1ed7601a,#1ed7600d);border:2px solid rgba(30,215,96,.3);border-radius:8px}.banner-image[data-v-84dd1f87]{width:80px;height:80px;border-radius:6px;object-fit:cover;flex-shrink:0}.banner-info[data-v-84dd1f87]{flex:1}.banner-title[data-v-84dd1f87]{font-size:.85rem;color:#1ed760;font-weight:600;margin-bottom:.25rem}.banner-track[data-v-84dd1f87]{font-size:1.1rem;font-weight:600;color:var(--color-heading);margin-bottom:.25rem}.banner-artist[data-v-84dd1f87]{font-size:.9rem;color:var(--color-text)}.btn-clear-spotify[data-v-84dd1f87]{padding:.5rem 1rem;border:1px solid var(--color-border);border-radius:6px;background-color:var(--color-background);color:var(--color-text);cursor:pointer;transition:all .2s;font-size:.9rem;white-space:nowrap}.btn-clear-spotify[data-v-84dd1f87]:hover{background-color:var(--color-background-mute);border-color:var(--color-border-hover)}input.from-spotify[data-v-84dd1f87]{background-color:#1ed7600d;border-color:#1ed7604d}input.from-spotify[data-v-84dd1f87]:focus{border-color:#1ed76080;box-shadow:0 0 0 3px #1ed7601a}@media(max-width:640px){.selected-spotify-banner[data-v-84dd1f87]{flex-direction:column;align-items:flex-start}.btn-clear-spotify[data-v-84dd1f87]{width:100%}}.bulk-edit-modal h3[data-v-e9422358]{margin-top:0;margin-bottom:.5rem}.selected-count[data-v-e9422358]{margin-top:0;margin-bottom:1rem;color:var(--color-text-light)}.form-group[data-v-e9422358]{margin-bottom:1rem}.section-toggle[data-v-e9422358]{display:flex;align-items:center;gap:.5rem;font-weight:600}.mode-options[data-v-e9422358]{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem}.mode-option[data-v-e9422358]{display:flex;align-items:center;gap:.4rem}.chip-list[data-v-e9422358]{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.chip[data-v-e9422358]{padding:.45rem .9rem;background:var(--color-secondary);border:2px solid transparent;border-radius:20px;font-size:.9rem;color:var(--color-text);cursor:pointer;transition:all .2s}.chip[data-v-e9422358]:hover:not(:disabled){background:var(--color-secondary-hover)}.chip.selected[data-v-e9422358]{background:var(--color-primary);color:var(--color-text-inverted);border-color:var(--color-primary-hover)}.chip[data-v-e9422358]:disabled{opacity:.6;cursor:not-allowed}.modal-actions[data-v-e9422358]{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.btn[data-v-e9422358]{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer}.btn[data-v-e9422358]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-e9422358]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-e9422358]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary[data-v-e9422358]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-e9422358]:hover:not(:disabled){background:var(--color-secondary-hover)}.song-library[data-v-75cf800f]{padding:0 1rem;max-width:800px;margin-left:auto;margin-right:auto}.header[data-v-75cf800f]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.header h2[data-v-75cf800f]{margin:0;color:var(--color-heading)}.header-actions[data-v-75cf800f]{display:flex;gap:.5rem}.loading[data-v-75cf800f],.empty-state[data-v-75cf800f]{text-align:center;padding:3rem;color:var(--color-text-light)}.empty-state p[data-v-75cf800f]{margin-bottom:1.5rem}.song-list[data-v-75cf800f]{display:flex;flex-direction:column;gap:.75rem}.song-card[data-v-75cf800f]{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:8px;transition:box-shadow .2s,border-color .2s;gap:1rem}.song-card[data-v-75cf800f]:hover{box-shadow:0 2px 8px #0000001a;border-color:var(--color-primary)}.song-card.bulk-mode[data-v-75cf800f]{align-items:center}.song-card.bulk-selected[data-v-75cf800f]{border-color:var(--color-primary);background:var(--color-primary-soft)}.bulk-checkbox[data-v-75cf800f]{display:flex;align-items:center}.bulk-checkbox input[data-v-75cf800f]{width:18px;height:18px;cursor:pointer}.song-album-art[data-v-75cf800f]{width:60px;height:60px;flex-shrink:0;border-radius:6px;overflow:hidden}.song-album-art img[data-v-75cf800f]{width:100%;height:100%;object-fit:cover}.song-album-art-placeholder[data-v-75cf800f]{width:60px;height:60px;flex-shrink:0;border-radius:6px;background-color:var(--color-background-mute);display:flex;align-items:center;justify-content:center;font-size:1.5rem}.song-info[data-v-75cf800f]{flex:1;min-width:0}.song-name[data-v-75cf800f]{margin:0 0 .5rem;font-size:1.1rem;color:var(--color-heading)}.song-title-row[data-v-75cf800f]{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-bottom:.5rem}.song-title-row .song-name[data-v-75cf800f]{margin:0}.song-meta[data-v-75cf800f]{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;color:var(--color-text-light)}.song-meta span[data-v-75cf800f]{display:flex;align-items:center;gap:.25rem}.spotify-link[data-v-75cf800f]{padding:.15rem .45rem;border-radius:999px;border:1px solid #1db954;background:#1db95424;color:#1db954;font-size:.75rem;font-weight:600}.tag-pill[data-v-75cf800f]{padding:.25rem .6rem;border-radius:12px;font-size:.75rem;font-weight:500;color:var(--color-text-inverted);margin-left:.25rem;display:inline-flex;align-items:center;text-shadow:1px 1px 2px rgba(0,0,0,.2)}.weights.weight-light[data-v-75cf800f]{font-weight:700;color:var(--color-success)}.weights.weight-normal[data-v-75cf800f]{font-weight:700;color:var(--color-warning)}.weights.weight-heavy[data-v-75cf800f]{font-weight:700;color:var(--color-error)}.song-actions[data-v-75cf800f]{display:flex;gap:.5rem;margin-left:1rem}.btn[data-v-75cf800f]{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s;white-space:nowrap}.btn-primary[data-v-75cf800f]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-75cf800f]:hover{background:var(--color-primary-hover)}.btn-secondary[data-v-75cf800f]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-75cf800f]:hover{background:var(--color-secondary-hover)}.btn-icon[data-v-75cf800f]{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s;color:var(--color-text)}.btn-icon[data-v-75cf800f]:hover{background:var(--color-background-mute)}.btn-icon.btn-danger[data-v-75cf800f]:hover{background:var(--color-primary-soft)}@media(max-width:600px){.song-meta[data-v-75cf800f]{flex-direction:column;gap:.25rem}.header[data-v-75cf800f]{flex-direction:column;align-items:stretch}.header-actions[data-v-75cf800f]{width:100%;justify-content:stretch}.header-actions .btn[data-v-75cf800f]{flex:1}}.song-edit[data-v-7747e4f3]{padding:1rem;background:var(--color-bg);border-radius:8px;box-shadow:0 2px 8px #0000001a}h2[data-v-7747e4f3]{margin:0 0 1.5rem;color:var(--color-text)}.form-group[data-v-7747e4f3]{margin-bottom:1rem}label[data-v-7747e4f3]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}input[data-v-7747e4f3]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background:var(--color-bg);color:var(--color-text);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input[data-v-7747e4f3]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3498db33}input[data-v-7747e4f3]:disabled{background:var(--color-secondary);cursor:not-allowed}.hint[data-v-7747e4f3]{display:block;margin-top:.25rem;color:var(--color-text-light);font-size:.85rem}.duration-inputs[data-v-7747e4f3]{display:flex;gap:1rem}.duration-field[data-v-7747e4f3]{display:flex;align-items:center;gap:.5rem}.duration-field input[data-v-7747e4f3]{width:80px;text-align:center}.duration-field span[data-v-7747e4f3]{color:var(--color-text-light)}.checkbox-group[data-v-7747e4f3],.radio-option[data-v-7747e4f3]{display:flex;align-items:center;gap:.75rem}.checkbox-group input[data-v-7747e4f3],.radio-group input[data-v-7747e4f3]{width:auto;accent-color:var(--color-primary)}.checkbox-group label[data-v-7747e4f3],.radio-option label[data-v-7747e4f3]{margin:0;font-weight:400;color:var(--color-text)}.radio-group[data-v-7747e4f3]{display:flex;gap:1.5rem;margin-top:.5rem}.class-chips[data-v-7747e4f3]{display:flex;flex-wrap:wrap;gap:.5rem}.chip[data-v-7747e4f3]{padding:.5rem 1rem;background:var(--color-secondary);border:2px solid transparent;border-radius:20px;font-size:.9rem;color:var(--color-text);cursor:pointer;transition:all .2s}.chip[data-v-7747e4f3]:hover:not(:disabled){background:var(--color-secondary-hover)}.chip.selected[data-v-7747e4f3]{background:var(--color-primary);color:var(--color-text-inverted);border-color:var(--color-primary-hover)}.chip[data-v-7747e4f3]:disabled{opacity:.6;cursor:not-allowed}.form-actions[data-v-7747e4f3]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn[data-v-7747e4f3]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn[data-v-7747e4f3]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-7747e4f3]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-7747e4f3]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary[data-v-7747e4f3]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-7747e4f3]:hover:not(:disabled){background:var(--color-secondary-hover)}.tag-manager[data-v-99d5caed]{padding:0 1rem;max-width:800px;margin:0 auto}.header[data-v-99d5caed]{margin-bottom:1.5rem}.header h2[data-v-99d5caed]{margin:0;color:var(--color-heading)}.action-bar[data-v-99d5caed]{margin-bottom:1rem}.empty-state[data-v-99d5caed]{text-align:center;padding:3rem;color:var(--color-text-light)}.empty-state p[data-v-99d5caed]{margin:.5rem 0}.hint[data-v-99d5caed]{font-size:.9rem;color:var(--color-text-light)}.tag-list[data-v-99d5caed]{display:flex;flex-direction:column;gap:.5rem}.tag-item[data-v-99d5caed]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:8px;transition:box-shadow .2s}.tag-item[data-v-99d5caed]:hover{box-shadow:0 2px 8px #0000001a}.tag-display[data-v-99d5caed]{display:flex;align-items:center;gap:.75rem}.tag-color[data-v-99d5caed]{display:block;width:24px;height:24px;border-radius:50%;border:2px solid var(--color-background-soft);box-shadow:0 0 0 1px var(--color-border)}.tag-name[data-v-99d5caed]{font-weight:500;color:var(--color-heading)}.tag-actions[data-v-99d5caed]{display:flex;gap:.5rem}.btn-icon[data-v-99d5caed]{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s;color:var(--color-text)}.btn-icon[data-v-99d5caed]:hover{background:var(--color-background-mute)}.btn-icon.btn-danger[data-v-99d5caed]:hover{background:var(--color-primary-soft)}.tag-form[data-v-99d5caed]{background:var(--color-background-soft);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.tag-form h3[data-v-99d5caed]{margin:0 0 1.5rem;color:var(--color-heading)}.form-group[data-v-99d5caed]{margin-bottom:1.5rem}label[data-v-99d5caed]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}input[data-v-99d5caed]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;background:var(--color-background);color:var(--color-text);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input[data-v-99d5caed]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[data-v-99d5caed]:disabled{background:var(--color-background-mute);cursor:not-allowed}.color-picker[data-v-99d5caed]{display:flex;flex-wrap:wrap;gap:.5rem}.color-option[data-v-99d5caed]{width:48px;height:48px;border-radius:8px;border:3px solid transparent;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.2rem;font-weight:700}.color-option[data-v-99d5caed]:hover:not(:disabled){transform:scale(1.1)}.color-option.selected[data-v-99d5caed]{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-background-soft),0 0 0 4px var(--color-primary)}.color-option[data-v-99d5caed]:disabled{opacity:.6;cursor:not-allowed}.form-actions[data-v-99d5caed]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn[data-v-99d5caed]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn[data-v-99d5caed]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-99d5caed]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-99d5caed]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary[data-v-99d5caed]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-99d5caed]:hover:not(:disabled){background:var(--color-secondary-hover)}.class-manager[data-v-1045dcc2]{padding:0 1rem;max-width:800px;margin:0 auto}.header[data-v-1045dcc2]{margin-bottom:1.5rem}.header h2[data-v-1045dcc2]{margin:0 0 .5rem;color:var(--color-heading)}.limit-info[data-v-1045dcc2]{margin:0;font-size:.9rem;color:var(--color-text-light)}.action-bar[data-v-1045dcc2]{margin-bottom:1rem}.empty-state[data-v-1045dcc2]{text-align:center;padding:3rem;color:var(--color-text-light)}.empty-state p[data-v-1045dcc2]{margin:.5rem 0}.hint[data-v-1045dcc2]{font-size:.9rem;color:var(--color-text-light)}.class-list[data-v-1045dcc2]{display:flex;flex-direction:column;gap:.5rem}.class-item[data-v-1045dcc2]{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-background-soft);border:1px solid var(--color-border);border-radius:8px;transition:box-shadow .2s}.class-item[data-v-1045dcc2]:hover{box-shadow:0 2px 8px #0000001a}.class-display[data-v-1045dcc2]{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.class-name[data-v-1045dcc2]{font-weight:500;color:var(--color-heading);font-size:1rem}.class-description[data-v-1045dcc2]{font-size:.85rem;color:var(--color-text-light);margin-top:.25rem}.class-actions[data-v-1045dcc2]{display:flex;gap:.5rem}.btn-icon[data-v-1045dcc2]{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.5rem;border-radius:4px;transition:background-color .2s;color:var(--color-text)}.btn-icon[data-v-1045dcc2]:hover{background:var(--color-background-mute)}.btn-icon.btn-danger[data-v-1045dcc2]:hover{background:var(--color-primary-soft)}.class-form[data-v-1045dcc2]{background:var(--color-background-soft);padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a}.class-form h3[data-v-1045dcc2]{margin:0 0 1.5rem;color:var(--color-heading)}.form-group[data-v-1045dcc2]{margin-bottom:1.5rem}label[data-v-1045dcc2]{display:block;margin-bottom:.5rem;font-weight:500;color:var(--color-text)}input[data-v-1045dcc2],textarea[data-v-1045dcc2]{width:100%;padding:.75rem;border:1px solid var(--color-border);border-radius:6px;font-size:1rem;font-family:inherit;background:var(--color-background);color:var(--color-text);transition:border-color .2s,box-shadow .2s;box-sizing:border-box}input[data-v-1045dcc2]:focus,textarea[data-v-1045dcc2]:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input[data-v-1045dcc2]:disabled,textarea[data-v-1045dcc2]:disabled{background:var(--color-background-mute);cursor:not-allowed}textarea[data-v-1045dcc2]{resize:vertical}.form-actions[data-v-1045dcc2]{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.5rem}.btn[data-v-1045dcc2]{padding:.75rem 1.5rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn[data-v-1045dcc2]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-1045dcc2]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-1045dcc2]:hover:not(:disabled){background:var(--color-primary-hover)}.btn-secondary[data-v-1045dcc2]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-1045dcc2]:hover:not(:disabled){background:var(--color-secondary-hover)}.notification[data-v-ec2d64ac]{position:fixed;top:20px;right:20px;padding:1rem;border-radius:8px;color:#fff;font-weight:500;z-index:1000;transition:opacity .5s}.notification.success[data-v-ec2d64ac]{background-color:#4caf50}.notification.error[data-v-ec2d64ac]{background-color:#f44336}.settings-page[data-v-41af5c9f]{padding:0 1rem;max-width:800px;margin:0 auto}.setting-section[data-v-41af5c9f]{background-color:var(--color-background-soft);padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;box-shadow:0 2px 4px #0000000d}.setting-section h3[data-v-41af5c9f]{margin-top:0;margin-bottom:1rem;color:var(--color-heading);font-size:1.25rem;border-bottom:1px solid var(--color-border);padding-bottom:.5rem}.setting-section p[data-v-41af5c9f]{color:var(--color-text);margin-bottom:1rem}.spotify-connected[data-v-41af5c9f]{color:var(--color-success);font-weight:600}.user-profile[data-v-41af5c9f]{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.user-profile div[data-v-41af5c9f]{flex-grow:1}.user-profile button[data-v-41af5c9f]{margin-left:auto}.avatar[data-v-41af5c9f]{width:60px;height:60px;border-radius:50%;object-fit:cover;border:2px solid var(--color-border-hover)}.btn[data-v-41af5c9f]{padding:.75rem 1.25rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background-color .2s,transform .1s}.btn-primary[data-v-41af5c9f]{background:var(--color-primary);color:var(--color-text-inverted)}.btn-primary[data-v-41af5c9f]:hover{background:var(--color-primary-hover);transform:translateY(-1px)}.btn-secondary[data-v-41af5c9f]{background:var(--color-secondary);color:var(--color-text)}.btn-secondary[data-v-41af5c9f]:hover{background:var(--color-secondary-hover);transform:translateY(-1px)}.btn-success[data-v-41af5c9f]{background:var(--color-success);color:var(--color-text-inverted)}.btn-success[data-v-41af5c9f]:hover{background:var(--color-success-hover);transform:translateY(-1px)}.btn[data-v-41af5c9f]:disabled{background-color:var(--color-disabled);cursor:not-allowed;transform:none}.toggle-switch[data-v-41af5c9f]{position:relative;display:inline-flex;align-items:center;width:140px;height:24px}.toggle-switch input[data-v-41af5c9f]{opacity:0;width:0;height:0}.slider[data-v-41af5c9f]{position:absolute;cursor:pointer;top:0;left:0;width:40px;bottom:0;background-color:var(--color-secondary);transition:.4s;border-radius:24px;border:1px solid var(--color-heading)}.slider[data-v-41af5c9f]:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:var(--color-heading);transition:.4s;border-radius:50%}input:checked+.slider[data-v-41af5c9f]{background-color:var(--color-primary);border-color:var(--color-primary)}input:focus+.slider[data-v-41af5c9f]{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-soft)}input:checked+.slider[data-v-41af5c9f]:before{transform:translate(16px)}.toggle-switch span[data-v-41af5c9f]:last-child{margin-left:48px;color:var(--color-text)}.conflict-overlay[data-v-603b0f40]{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.conflict-modal[data-v-603b0f40]{background:var(--color-bg);border-radius:12px;padding:2rem;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #0000004d}.conflict-modal h2[data-v-603b0f40]{margin:0 0 .5rem;color:var(--color-warning)}.conflict-description[data-v-603b0f40]{color:var(--color-text-light);margin-bottom:2rem}.conflict-item[data-v-603b0f40]{border:1px solid var(--color-border);border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.conflict-item h3[data-v-603b0f40]{margin:0 0 1rem;color:var(--color-primary)}.conflict-versions[data-v-603b0f40]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}@media(max-width:640px){.conflict-versions[data-v-603b0f40]{grid-template-columns:1fr}}.version[data-v-603b0f40]{border:1px solid var(--color-border);border-radius:8px;padding:1rem}.local-version[data-v-603b0f40]{background:#3b82f60d;border-color:var(--color-primary)}.server-version[data-v-603b0f40]{background:#22c55e0d;border-color:var(--color-success)}.version h4[data-v-603b0f40]{margin:0 0 .75rem;font-size:.9rem;text-transform:uppercase;letter-spacing:.5px}.version-details[data-v-603b0f40]{font-size:.9rem}.version-details p[data-v-603b0f40]{margin:.5rem 0}.changes ul[data-v-603b0f40],.server-data[data-v-603b0f40]{margin:.5rem 0;padding-left:1.25rem}.changes li[data-v-603b0f40]{margin:.25rem 0;word-break:break-word}.conflict-actions[data-v-603b0f40]{display:flex;gap:1rem;justify-content:center}.btn[data-v-603b0f40]{padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s}.btn[data-v-603b0f40]:disabled{background-color:var(--color-background-mute);color:var(--color-text-light);cursor:not-allowed;opacity:.6}.btn-local[data-v-603b0f40]{background:var(--color-primary);color:#fff}.btn-local[data-v-603b0f40]:not(:disabled):hover{background:var(--color-primary-hover);transform:translateY(-1px)}.btn-server[data-v-603b0f40]{background:var(--color-success);color:#fff}.btn-server[data-v-603b0f40]:not(:disabled):hover{background:var(--color-success-hover);transform:translateY(-1px)}.sync-status[data-v-dbe204a6]{position:fixed;bottom:4rem;right:1rem;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;font-size:.85rem;color:var(--color-text-light);box-shadow:0 2px 8px #0000001a;transition:all .2s ease;cursor:default;z-index:100}.sync-status__icon[data-v-dbe204a6]{font-size:1rem;display:flex;align-items:center;justify-content:center}.sync-status__text[data-v-dbe204a6]{white-space:nowrap}.sync-status--syncing[data-v-dbe204a6]{border-color:var(--color-primary);color:var(--color-primary)}.sync-status--syncing .sync-status__icon[data-v-dbe204a6]{animation:spin-dbe204a6 1s linear infinite}.sync-status--success[data-v-dbe204a6]{border-color:#27ae60;color:#27ae60}.sync-status--error[data-v-dbe204a6]{border-color:#e74c3c;color:#e74c3c;cursor:pointer}.sync-status--error[data-v-dbe204a6]:hover{background:#e74c3c1a}.sync-status--idle[data-v-dbe204a6]{opacity:.7}@keyframes spin-dbe204a6{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:600px){.sync-status[data-v-dbe204a6]{bottom:3.5rem;right:.5rem;font-size:.8rem;padding:.4rem .6rem}}.app[data-v-f656ed32]{min-height:100vh;display:flex;flex-direction:column}.app-main[data-v-f656ed32]{flex:1;padding:0 0 1rem;max-width:800px;margin:0 auto;width:100%}@media(max-width:1000px){.app-main[data-v-f656ed32]{padding-top:1rem;padding-bottom:36px}body.nav-expanded{padding-bottom:229px}}.loading-screen[data-v-f656ed32]{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-text-light)}.app-footer[data-v-f656ed32]{text-align:center;padding:1rem 0;border-top:1px solid var(--color-border);color:var(--color-text-light);font-size:.85rem;margin:0 auto;max-width:800px;width:100%}@media(max-width:1000px){.app-footer[data-v-f656ed32]{margin-bottom:36px}}.app-footer p[data-v-f656ed32]{margin:0}
