@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";
:root{--font-sans:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--bg-base:#f5f7f8;--bg-surface:#fff;--bg-surface-hover:#f9fbfb;--border-color:#e2e8f0;--border-color-hover:#cbd5e1;--text-primary:#1e293b;--text-secondary:#475569;--text-muted:#64748b;--accent-color:#92cfbb;--accent-on-color:#1e293b;--accent-glow:#92cfbb40;--accent-glow-soft:#92cfbb1f;--accent-glow-medium:#92cfbb59;--accent-hover:#7db09f;--accent-text-dark:#5a8070;--color-state-1:#0d9488;--color-state-1-glow:#0d94881f;--color-state-2:#0891b2;--color-state-2-glow:#0891b21f;--color-state-3:#6d28d9;--color-state-3-glow:#6d28d91f;--color-state-4:#d97706;--color-state-4-glow:#d977061f;--color-state-0:#64748b;--color-state-0-glow:#64748b0f;--shadow-sm:0 1px 3px #0000000d;--shadow-md:0 4px 6px -1px #0000000d, 0 2px 4px -1px #00000008;--shadow-lg:0 10px 15px -3px #0000000d, 0 4px 6px -2px #00000005;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.25s ease}*{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);scroll-behavior:smooth;min-height:100vh;overflow-x:hidden}body{flex-direction:column;display:flex}a{color:inherit;transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-color)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--border-color-hover)}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 24px}header{-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-color);z-index:100;background:#ffffffd9;padding:16px 0;position:sticky;top:0}header .header-content{justify-content:space-between;align-items:center;display:flex}header h1{letter-spacing:-.5px;background:linear-gradient(135deg, var(--accent-text-dark), var(--accent-color));-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:22px;font-weight:700}.auth-nav{align-items:center;gap:12px;display:flex}.card-el{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:transform var(--transition-normal), border-color var(--transition-normal), box-shadow var(--transition-normal);padding:24px}.card-el:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-md)}.form-input{background-color:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);font-family:var(--font-sans);border-radius:var(--radius-sm);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);width:100%;padding:12px 16px;font-size:14px}.form-input:focus{border-color:var(--accent-color);box-shadow:0 0 0 3px var(--accent-glow);outline:none}.btn{font-family:var(--font-sans);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:none;justify-content:center;align-items:center;padding:10px 18px;font-size:14px;font-weight:500;display:inline-flex}.btn-primary{background-color:var(--accent-color);color:var(--accent-on-color);font-weight:600}.btn-primary:hover{background-color:var(--accent-hover);color:var(--accent-on-color);box-shadow:0 0 16px var(--accent-glow)}.btn-secondary{background-color:var(--accent-glow-soft);color:var(--accent-color);border:1px solid var(--accent-glow-medium)}.btn-secondary:hover{background-color:var(--accent-glow-medium);border-color:var(--accent-color);color:var(--accent-color)}.btn-danger{color:#fff;background-color:#ef4444}.btn-danger:hover{background-color:#dc2626}.floating-save-btn{z-index:1000;background:var(--accent-color);color:var(--accent-on-color);border-radius:var(--radius-full);box-shadow:0 10px 30px var(--accent-glow);cursor:pointer;border:none;align-items:center;gap:10px;padding:16px 28px;font-size:15px;font-weight:600;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),box-shadow .2s,background .2s;display:flex;position:fixed;bottom:32px;right:32px}.floating-save-btn:hover{background:var(--accent-hover);color:var(--accent-on-color);box-shadow:0 15px 35px var(--accent-glow-medium);transform:scale(1.05)translateY(-2px)}.floating-save-btn:active{transform:scale(.98)translateY(0)}.floating-save-btn .badge{background:var(--accent-on-color);color:var(--accent-color);border-radius:var(--radius-full);padding:2px 8px;font-size:12px;font-weight:700}.filter-panel{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);grid-template-columns:2fr 1fr 1fr;gap:16px;margin:24px 0;padding:20px;display:grid}@media (max-width:768px){.filter-panel{grid-template-columns:1fr}}.songs-grid{grid-template-columns:1fr;gap:16px;margin-bottom:80px;display:grid}.song-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);justify-content:space-between;align-items:center;padding:20px;display:flex}.song-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-sm)}@media (max-width:900px){.song-card{flex-direction:column;align-items:flex-start;gap:16px}}.song-info{flex-direction:column;gap:6px;max-width:60%;display:flex}@media (max-width:900px){.song-info{max-width:100%}}.song-title-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.song-title{color:var(--text-primary);font-size:18px;font-weight:600}.song-badge{border-radius:var(--radius-full);text-transform:uppercase;padding:2px 8px;font-size:11px;font-weight:500}.badge-brand{background-color:var(--accent-glow-soft);color:var(--accent-text-dark)}.badge-type{color:var(--text-secondary);background-color:#0000000a}.song-meta{color:var(--text-secondary);font-size:13px}.song-members{color:var(--text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:12px;line-height:1.5;transition:all .3s;display:-webkit-box;position:relative;overflow:hidden}.song-members.expanded{-webkit-line-clamp:unset;display:block;overflow:visible}.familiarity-options{flex-wrap:wrap;gap:8px;display:flex}.familiarity-btn{background-color:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);padding:8px 16px;font-size:13px;font-weight:500}.familiarity-btn:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.familiarity-btn.state-1.active{background-color:var(--color-state-1-glow);border-color:var(--color-state-1);color:var(--color-state-1);box-shadow:0 0 12px var(--color-state-1-glow)}.familiarity-btn.state-2.active{background-color:var(--color-state-2-glow);border-color:var(--color-state-2);color:var(--color-state-2);box-shadow:0 0 12px var(--color-state-2-glow)}.familiarity-btn.state-3.active{background-color:var(--color-state-3-glow);border-color:var(--color-state-3);color:var(--color-state-3);box-shadow:0 0 12px var(--color-state-3-glow)}.familiarity-btn.state-4.active{background-color:var(--color-state-4-glow);border-color:var(--color-state-4);color:var(--color-state-4);box-shadow:0 0 12px var(--color-state-4-glow)}.familiarity-btn.state-0.active{background-color:var(--color-state-0-glow);border-color:var(--color-state-0);color:var(--text-secondary)}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;background:#0f172a99;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:450px;box-shadow:var(--shadow-lg);padding:32px;position:relative}.modal-content h2{margin-bottom:20px;font-size:20px;font-weight:600}.modal-content .form-group{margin-bottom:16px}.modal-content label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.autocomplete-dropdown{background:var(--bg-surface);border:1px solid var(--border-color);z-index:100;border-radius:8px;max-height:200px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0003}.autocomplete-item{cursor:pointer;color:var(--text-primary);border-bottom:1px solid var(--border-color);align-items:center;padding:10px 12px;font-size:14px;display:flex}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover{background:var(--bg-surface-hover)}.familiarity-definitions-card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);margin-bottom:24px;padding:20px}.definitions-title{color:var(--text-primary);align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}.definitions-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;display:grid}.def-item{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;display:flex}.def-badge{border-radius:var(--radius-sm);text-align:center;align-self:flex-start;padding:4px 8px;font-size:11px;font-weight:600;display:inline-block}.def-badge.state-1{background-color:var(--color-state-1-glow);color:var(--color-state-1);border:1px solid var(--color-state-1)}.def-badge.state-2{background-color:var(--color-state-2-glow);color:var(--color-state-2);border:1px solid var(--color-state-2)}.def-badge.state-3{background-color:var(--color-state-3-glow);color:var(--color-state-3);border:1px solid var(--color-state-3)}.def-badge.state-4{background-color:var(--color-state-4-glow);color:var(--color-state-4);border:1px solid var(--color-state-4)}.def-badge.state-0{background-color:var(--color-state-0-glow);color:var(--text-secondary);border:1px solid var(--border-color)}.badge-pitch{color:#fb7185;background-color:#f43f5e1f;border:1px solid #f43f5e33}.pitch-modal{max-width:500px!important}.pitch-table-container{border:1px solid var(--border-color);border-radius:var(--radius-sm);max-height:450px;overflow-y:auto}.pitch-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.pitch-table th{background-color:var(--bg-surface);color:var(--text-secondary);border-bottom:1px solid var(--border-color);opacity:1;z-index:1;padding:12px;font-weight:600;position:sticky;top:0}.pitch-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:10px 12px}.pitch-table tbody tr:hover{background-color:var(--bg-surface-hover)}
