*,:before,:after{box-sizing:border-box}:root{color:#ffffffde;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f172a;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;font-weight:400;line-height:1.5}body{min-width:320px;min-height:100vh;margin:0}#root{width:100%;min-height:100vh}.App{background:linear-gradient(135deg,#0f172a 0%,#1e293b 100%);min-height:100vh}.nav{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100;background:#1e293bf2;border-bottom:1px solid #334155;align-items:center;gap:2rem;padding:1rem 2rem;display:flex;position:sticky;top:0;box-shadow:0 4px 6px -1px #0000001a}.nav h1{background:linear-gradient(135deg,#6366f1 0%,#ec4899 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 auto 0 0;font-size:1.5rem;font-weight:700}.nav a{color:#cbd5e1;border-radius:.5rem;padding:.5rem 1rem;font-weight:500;text-decoration:none;transition:all .2s}.nav a:hover{color:#f1f5f9;background:#6366f11a}.nav a.active{color:#6366f1;background:#6366f126}.nav-menu{align-items:center;gap:1rem;margin-left:auto;display:flex}.nav-signout{padding:.25rem .75rem;font-size:.85rem}.nav-toggle{cursor:pointer;background:0 0;border:1px solid #334155;border-radius:.5rem;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:40px;height:40px;margin-left:auto;padding:.5rem;display:none}.nav-toggle-bar{background:#cbd5e1;border-radius:2px;width:20px;height:2px;display:block}.reorder-controls{gap:.25rem;margin-right:.25rem;display:none}.reorder-btn{color:#f1f5f9;cursor:pointer;background:#334155;border:1px solid #475569;border-radius:.375rem;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:1rem;font-weight:600;transition:background .15s;display:inline-flex}.reorder-btn:active{background:#475569}.reorder-btn:disabled{opacity:.35;cursor:not-allowed}.song-table-desktop{display:block}.song-table-mobile{flex-direction:column;gap:.75rem;display:none}.song-card{background:#1e293bf2;border:1px solid #334155;border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.song-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.song-card-title-block{flex:1;min-width:0}.song-card-title{color:#f1f5f9;word-break:break-word;font-size:1rem;font-weight:600}.song-card-artist{color:#94a3b8;margin-top:.15rem;font-size:.85rem}.song-card-meta{flex-wrap:wrap;gap:.4rem;display:flex}.song-card-tag{color:#c7d2fe;background:#6366f11f;border-radius:9999px;padding:.15rem .6rem;font-size:.75rem}.song-card-footer{align-items:center;gap:.5rem;display:flex}.song-card-practice{color:#94a3b8;white-space:nowrap;font-size:.8rem}.song-pick-row:hover,.song-pick-row:active{background:#6366f126!important}.practice-alt-card:hover,.practice-alt-card:active{border-color:#6366f14d!important}.btn{cursor:pointer;border:none;border-radius:.5rem;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:1rem;font-weight:500;text-decoration:none;transition:all .2s;display:inline-flex;box-shadow:0 1px 3px #0000001a}.btn:hover{transform:translateY(-1px);box-shadow:0 4px 6px -1px #0003}.btn:active{transform:translateY(0)}.btn-primary{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%)}.btn-primary:hover{background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%)}.btn-secondary{color:#f1f5f9;background:#334155}.btn-secondary:hover{background:#475569}.btn-success{color:#fff;background:linear-gradient(135deg,#10b981 0%,#059669 100%)}.btn-danger{color:#fff;background:linear-gradient(135deg,#ef4444 0%,#dc2626 100%)}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.card{background:#1e293bf2;border:1px solid #334155;border-radius:.75rem;padding:1.5rem;transition:all .2s;box-shadow:0 4px 6px -1px #0000001a}.card:hover{border-color:#475569;box-shadow:0 10px 15px -3px #0003}.card-header{justify-content:space-between;align-items:start;margin-bottom:1rem;display:flex}.card-title{color:#f1f5f9;margin:0;font-size:1.25rem;font-weight:600}.card-subtitle{color:#94a3b8;margin:.25rem 0 0;font-size:.875rem}.card-body{color:#cbd5e1}.stat-card{text-align:center;background:linear-gradient(135deg,#6366f11a 0%,#ec48991a 100%);border:1px solid #6366f133;border-radius:.75rem;padding:1.5rem;transition:all .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 10px 15px -3px #6366f14d}.stat-icon{margin-bottom:.5rem;font-size:2rem}.stat-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.875rem}.stat-value{color:#f1f5f9;font-size:1.875rem;font-weight:700}.form-group{margin-bottom:1rem}.form-label{color:#cbd5e1;margin-bottom:.5rem;font-size:.875rem;font-weight:500;display:block}.form-input,.form-select,.form-textarea{color:#f1f5f9;background:#334155;border:1px solid #475569;border-radius:.5rem;outline:none;width:100%;padding:.75rem;font-size:1rem;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#6366f1;box-shadow:0 0 0 3px #6366f133}.form-textarea{resize:vertical;font-family:inherit}.badge{text-transform:uppercase;letter-spacing:.05em;border-radius:9999px;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.badge-learning{color:#fff;background:#f59e0b}.badge-comfortable{color:#fff;background:#10b981}.badge-mastered{color:#fff;background:#6366f1}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000bf;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal{background:#1e293b;border:1px solid #334155;border-radius:1rem;width:90%;max-width:600px;max-height:80vh;padding:2rem;animation:.3s ease-out slideUp;overflow-y:auto;box-shadow:0 20px 25px -5px #0000004d}.modal-header{color:#f1f5f9;margin-top:0;margin-bottom:1.5rem;font-size:1.5rem;font-weight:700}.grid{gap:1rem;display:grid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.empty-state{text-align:center;background:#1e293b80;border:2px dashed #334155;border-radius:.75rem;padding:3rem}.empty-state-title{color:#f1f5f9;margin-bottom:.5rem;font-size:1.25rem;font-weight:600}.empty-state-text{color:#94a3b8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes sb-spin{to{transform:rotate(360deg)}}.container{max-width:1200px;margin:0 auto;padding:0 2rem}.page-header{border-bottom:1px solid #334155;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;display:flex}.page-title{color:#f1f5f9;margin:0;font-size:2rem;font-weight:700}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:.5rem}.gap-2{gap:1rem}.gap-3{gap:1.5rem}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#1e293b}::-webkit-scrollbar-thumb{background:#475569;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#64748b}@media (width<=768px){.nav{flex-wrap:wrap;gap:1rem;padding:1rem}.nav h1{font-size:1.25rem}.nav-toggle{display:flex}.nav-menu{flex-direction:column;flex-basis:100%;align-items:stretch;gap:.5rem;margin-top:.5rem;margin-left:0;display:none}.nav-menu.nav-menu-open{display:flex}.nav-menu a{padding:.75rem 1rem}.nav-signout{align-self:flex-start}.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:repeat(1,minmax(0,1fr))}.page-header{flex-direction:column;align-items:flex-start;gap:1rem}.page-title{font-size:1.5rem}.stat-card{padding:1rem}.reorder-controls{display:inline-flex}.song-table-desktop{display:none}.song-table-mobile{display:flex}}@media (width<=480px){.container{padding:0 1rem}}
