@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap);body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}.App{background:radial-gradient(circle at 20% 50%,#7877c64d 0,#0000 50%),radial-gradient(circle at 80% 20%,#ff77c64d 0,#0000 50%),radial-gradient(circle at 40% 80%,#78dbff4d 0,#0000 50%),linear-gradient(135deg,#1e1e2e,#2d1b69 50%,#11998e);background-attachment:fixed;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;text-align:center}.App-header{color:#fff;flex-direction:column;justify-content:flex-start;min-height:100vh;padding:3rem 2rem 2rem}.App-header,.nav-bar{align-items:center;display:flex}.nav-bar{justify-content:space-between;margin-bottom:1rem;max-width:1200px;padding:0 1rem;width:100%}.nav-spacer{flex:1 1}.hero-section{margin-bottom:2rem;max-width:600px;text-align:center}.hero-header{flex-direction:column;gap:1rem;width:100%}.hero-header,.return-button{align-items:center;display:flex;position:relative}.return-button{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#fffc;font-size:.85rem;font-weight:500;height:fit-content;overflow:hidden;padding:8px 16px;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.return-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.return-button:hover:before{left:100%}.return-button:hover{background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 12px #00000026;color:#fff;text-decoration:none;transform:translateY(-2px)}.return-button:active{transform:translateY(0) scale(.98)}@media (min-width:1024px){.return-button{font-size:.9rem;padding:10px 18px}}@media (min-width:768px) and (max-width:1023px){.return-button{font-size:.85rem;padding:8px 16px}}@media (max-width:767px){.nav-bar{padding:0 .5rem}.return-button{font-size:.8rem;padding:6px 12px}}.tab-navigation{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 8px 32px #0000001f;display:flex;justify-content:center;margin-bottom:3rem;padding:8px}.tab-button{background:#0000;border:none;border-radius:12px;color:#ffffffb3;cursor:pointer;font-size:1.1rem;font-weight:600;margin:0 4px;overflow:hidden;padding:12px 32px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.tab-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.tab-button:hover:before{left:100%}.tab-button:hover{background:#ffffff1a;color:#ffffffe6}.tab-button.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 6px 20px #3b82f64d,inset 0 1px 0 #ffffff1a;color:#fff}.tab-button.active:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 8px 25px #3b82f666,inset 0 1px 0 #ffffff26}.App-header h1{-webkit-text-fill-color:#0000;animation:gradientShift 3s ease-in-out infinite;background:linear-gradient(135deg,#fff,#a78bfa 50%,#06b6d4);-webkit-background-clip:text;background-clip:text;background-size:200% 200%;font-size:4rem;font-weight:700;line-height:1.1;margin-bottom:1rem}@keyframes gradientShift{0%,to{background-position:0 50%}50%{background-position:100% 50%}}.App-header p{color:#e5e7eb;font-size:1.3rem;font-weight:400;line-height:1.6;margin:0;opacity:.85}.panels-container{flex-wrap:wrap;justify-content:center;max-width:1400px;width:100%}.left-panel{flex:1 1;gap:4rem;max-width:600px;min-width:480px}.note-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;margin-bottom:2rem;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.note-selection-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.note-selection-panel:hover{background:#ffffff1f;border-color:#ffffff4d;box-shadow:0 16px 48px #00000040,inset 0 1px 0 #ffffff40;transform:translateY(-6px)}.note-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.note-selection-panel p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.right-panel{max-width:600px;min-width:480px}.desktop-only{display:block}.mobile-only{display:none}.exercise-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;height:fit-content;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.exercise-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.exercise-panel:hover{background:#ffffff1f;border-color:#ffffff4d;box-shadow:0 16px 48px #00000040,inset 0 1px 0 #ffffff40;transform:translateY(-6px)}.exercise-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.exercise-panel p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.chord-progression{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;flex:1 1;margin-bottom:2rem;max-width:600px;min-width:480px;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.chord-progression:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.chord-progression:hover{background:#ffffff1f;border-color:#ffffff4d;box-shadow:0 16px 48px #00000040,inset 0 1px 0 #ffffff40;transform:translateY(-6px)}.chord-progression h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#a78bfa);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.chord-progression p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.random-note{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;flex:1 1;max-width:600px;min-width:480px;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.random-note:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.random-note:hover{background:#ffffff1f;border-color:#ffffff4d;box-shadow:0 16px 48px #00000040,inset 0 1px 0 #ffffff40;transform:translateY(-6px)}.random-note h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem}.random-note h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.random-note p{color:#d1d5db;font-size:1.1rem;font-weight:400;margin-bottom:1.8rem;opacity:.8}.note-selection{margin-bottom:0}.key-selector{margin-bottom:2rem}.key-selector h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.key-buttons{grid-gap:8px;gap:8px;margin-bottom:1rem}.key-button{border-radius:10px;font-size:.9rem;padding:10px 8px}.key-button:before{transition:left .5s ease}.key-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 6px 20px #00000026;transform:translateY(-2px) scale(1.02)}.key-button.selected{background:linear-gradient(135deg,#06b6d4,#0891b2);border-color:#06b6d4;box-shadow:0 6px 20px #06b6d44d,inset 0 1px 0 #fff3}.key-button.selected:hover{background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 8px 25px #06b6d466,inset 0 1px 0 #ffffff40;transform:translateY(-2px) scale(1.02)}.key-button:disabled:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:none}.progression-selector{margin-bottom:2rem}.progression-selector h3{color:#f3f4f6;font-size:1.4rem;font-weight:500;margin-bottom:1.2rem}.progression-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr;margin-bottom:1rem}.progression-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;overflow:hidden;padding:12px 16px;position:relative;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1)}.progression-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.progression-button:hover:before{left:100%}.progression-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 6px 20px #00000026;transform:translateY(-2px) scale(1.02)}.progression-button.selected{background:linear-gradient(135deg,#f59e0b,#d97706);border-color:#f59e0b;box-shadow:0 6px 20px #f59e0b4d,inset 0 1px 0 #fff3;color:#fff}.progression-button.selected:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b66,inset 0 1px 0 #ffffff40;transform:translateY(-2px) scale(1.02)}.progression-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.progression-button:disabled:hover{background:#ffffff14;border-color:#ffffff26;box-shadow:none;transform:none}.note-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(6,1fr);margin-bottom:1.5rem;margin-left:auto;margin-right:auto;max-width:480px}.note-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;overflow:hidden;padding:16px 12px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.note-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.note-button:hover:before{left:100%}.note-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 8px 25px #00000026;transform:translateY(-3px) scale(1.02)}.note-button.selected{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;box-shadow:0 8px 25px #10b9814d,inset 0 1px 0 #fff3;color:#fff}.note-button.selected:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 30px #10b98166,inset 0 1px 0 #ffffff40;transform:translateY(-3px) scale(1.02)}.selection-info{color:#d1d5db;font-size:.95rem;font-weight:400;margin-bottom:1rem;opacity:.75}.play-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#10b981,#059669);border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 25px #10b98140,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;margin:1rem 0;overflow:hidden;padding:18px 36px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.play-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .6s ease;width:100%}.play-button:hover:not(:disabled):before{left:100%}.play-button:hover:not(:disabled){background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 35px #10b98159,inset 0 1px 0 #ffffff26;transform:translateY(-3px) scale(1.02)}.play-button:active{transform:translateY(-1px) scale(1.01)}.play-button:disabled{box-shadow:0 4px 15px #0000001a;cursor:not-allowed;opacity:.5;transform:none}.random-button{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 8px 25px #3b82f640,inset 0 1px 0 #ffffff1a}.random-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 12px 35px #3b82f659,inset 0 1px 0 #ffffff26}.progression-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem;text-align:left}.progression-info p{font-size:1rem;margin-bottom:1rem;text-align:center}.progression-info ul{list-style:none;margin:0;padding:0}.progression-info li{border-bottom:1px solid #ffffff1a;font-size:.9rem;padding:.5rem 0;text-align:center}.progression-info li:last-child{border-bottom:none}.note-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem;text-align:center}.note-info p{font-size:1rem;margin-bottom:.5rem;text-align:center}.note-info p:last-child{font-size:.9rem;margin-bottom:0;opacity:.8}@media (max-width:1200px){.panels-container{align-items:center;flex-direction:column}.chord-progression,.random-note{max-width:600px;min-width:400px}}@media (max-width:768px){.App-header{padding:1rem}.App-header h1{font-size:2rem}.panels-container{gap:1rem}.chord-progression,.random-note{min-width:300px;padding:1.5rem}.note-buttons{grid-template-columns:repeat(4,1fr)}}.score-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin-bottom:2.5rem;overflow:hidden;padding:2rem;position:relative}.score-card:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.score-display{justify-content:space-around;margin-bottom:1.5rem}.score-item{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;gap:.8rem;min-width:80px;padding:1rem}.score-label{color:#d1d5db;font-weight:500;letter-spacing:.5px;opacity:.7;text-transform:uppercase}.score-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;font-size:2rem;line-height:1;text-shadow:none}.reset-button{background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 6px 20px #f59e0b40,inset 0 1px 0 #ffffff1a;cursor:pointer;font-size:.95rem;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.reset-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.reset-button:hover:before{left:100%}.reset-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b59,inset 0 1px 0 #ffffff26;transform:translateY(-2px) scale(1.02)}.feedback{animation:feedbackPulse .6s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 8px 25px #00000026,inset 0 1px 0 #ffffff1a;font-size:1.15rem;margin-bottom:2rem;padding:1.5rem}@keyframes feedbackPulse{0%{opacity:0;transform:scale(.9)}50%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.feedback.correct{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 8px 25px #10b9814d,inset 0 1px 0 #ffffff26;color:#fff}.feedback.incorrect{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 8px 25px #ef44444d,inset 0 1px 0 #ffffff26;color:#fff}.exercise-controls{flex-wrap:wrap}.exercise-controls,.exercise-controls-compact{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.exercise-controls-compact{align-items:center;background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;padding:1.5rem}.control-button,.exercise-controls-compact{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.control-button{border:2px solid #0000;font-size:.9rem;min-width:100px;padding:10px 20px;transition:all .3s cubic-bezier(.4,0,.2,1)}.control-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000)}.control-button:disabled:hover{box-shadow:none;transform:none}.control-button.reset-button{background:linear-gradient(135deg,#ef44441a,#dc26261a);border-color:#ef44444d;color:#fca5a5}.control-button.reset-button:hover{background:linear-gradient(135deg,#ef444426,#dc262626);border-color:#ef444466;box-shadow:0 6px 20px #ef444433;transform:translateY(-2px) scale(1.02)}.control-button.start-button{background:linear-gradient(135deg,#22c55e1a,#16a34a1a);border-color:#22c55e4d;color:#86efac;min-width:140px}.control-button.start-button:hover{background:linear-gradient(135deg,#22c55e26,#16a34a26);border-color:#22c55e66;box-shadow:0 6px 20px #22c55e33;transform:translateY(-2px) scale(1.02)}.control-button.stop-button{background:linear-gradient(135deg,#f59e0b1a,#d977061a);border-color:#f59e0b4d;color:#fcd34d}.control-button.stop-button:hover{background:linear-gradient(135deg,#f59e0b26,#d9770626);border-color:#f59e0b66;box-shadow:0 6px 20px #f59e0b33;transform:translateY(-2px) scale(1.02)}.control-button.repeat-button{background:linear-gradient(135deg,#8b5cf61a,#7c3aed1a);border-color:#8b5cf64d;color:#a78bfa}.control-button.repeat-button:hover{background:linear-gradient(135deg,#8b5cf626,#7c3aed26);border-color:#8b5cf666;box-shadow:0 6px 20px #8b5cf633;transform:translateY(-2px) scale(1.02)}.exercise-button{background:linear-gradient(135deg,#8b5cf6,#7c3aed);box-shadow:0 8px 25px #8b5cf640,inset 0 1px 0 #ffffff1a}.exercise-button:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 12px 35px #8b5cf659,inset 0 1px 0 #ffffff26}.stop-button{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 8px 25px #ef444440,inset 0 1px 0 #ffffff1a}.stop-button:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 12px 35px #ef444459,inset 0 1px 0 #ffffff26}.answer-section{animation:slideIn .5s cubic-bezier(.4,0,.2,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;box-shadow:0 8px 32px #0000001f,inset 0 1px 0 #ffffff1a;margin-bottom:2.5rem;overflow:hidden;padding:2rem;position:relative}.answer-section:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.answer-section h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.repeat-section{background:#ffffff08;border:1px solid #ffffff0d;border-radius:10px;display:flex;justify-content:center;margin-bottom:1.5rem;padding:1rem}.repeat-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#8b5cf61a,#7c3aed1a);border:2px solid #8b5cf64d;border-radius:10px;color:#a78bfa;cursor:pointer;font-size:.9rem;font-weight:600;min-width:120px;overflow:hidden;padding:8px 16px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.repeat-button:before{background:linear-gradient(90deg,#0000,#8b5cf633,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.repeat-button:hover:before{left:100%}.repeat-button:hover{background:linear-gradient(135deg,#8b5cf626,#7c3aed26);border-color:#8b5cf666;box-shadow:0 8px 25px #8b5cf633,inset 0 1px 0 #ffffff1a;transform:translateY(-2px) scale(1.02)}.repeat-button:active{box-shadow:0 4px 15px #8b5cf626,inset 0 1px 0 #ffffff0d;transform:translateY(-1px) scale(1.01)}.repeat-button:disabled{color:#6b7280;opacity:.5}.repeat-button:disabled,.repeat-button:disabled:hover{background:#ffffff0d;border-color:#ffffff1a;transform:none}.repeat-button:disabled:hover{box-shadow:none}.answer-buttons{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);margin:0 auto;max-width:540px}.answer-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid #ffffff26;border-radius:14px;box-shadow:0 6px 20px #3b82f640,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;overflow:hidden;padding:18px 12px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.answer-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.answer-button:hover:before{left:100%}.answer-button:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#ffffff40;box-shadow:0 10px 30px #3b82f659,inset 0 1px 0 #ffffff26;transform:translateY(-3px) scale(1.02)}.exercise-info{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:10px;margin-top:2rem;padding:1.5rem}.exercise-info p{font-size:1rem;font-weight:700;margin-bottom:1rem;text-align:center}.exercise-info ol{margin:0 auto;max-width:400px;padding-left:1.5rem;text-align:left}.exercise-info li{font-size:.9rem;line-height:1.4;padding:.3rem 0}.note-button:disabled{transform:none}.note-button:disabled:hover{background:#ffffff1a;border-color:#ffffff4d;transform:none}.settings-container{max-width:1200px}.settings-panel{margin:0 auto;max-width:800px;width:100%}.settings-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;font-size:2.2rem;margin-bottom:.8rem;text-align:center}.settings-panel p{color:#d1d5db;font-size:1.1rem;margin-bottom:2.5rem;opacity:.8;text-align:center}.stats-container{margin:0 auto;max-width:1200px;width:100%}.stats-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:.8rem;text-align:center}.stats-panel>p{color:#d1d5db;font-size:1.1rem;margin-bottom:2.5rem;opacity:.8;text-align:center}.stats-summary{margin-bottom:3rem}.summary-card{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:2rem}.summary-card h3{color:#f3f4f6;font-size:1.4rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.summary-stats{display:flex;gap:2rem;justify-content:space-around}.summary-item{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:.8rem;min-width:120px;padding:1rem}.summary-label{color:#d1d5db;font-size:.9rem;font-weight:500;opacity:.7;text-align:center}.summary-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;font-size:1.8rem;font-weight:700}.note-histogram{margin-bottom:3rem}.note-histogram h3{color:#f3f4f6;font-size:1.4rem;font-weight:600;margin-bottom:2rem;text-align:center}.histogram-container{grid-gap:12px;background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;display:grid;gap:12px;grid-template-columns:repeat(12,1fr);padding:2rem}@media (max-width:1199px) and (orientation:landscape),(max-width:1199px) and (orientation:portrait),(max-width:480px){.histogram-container{gap:6px!important;grid-template-columns:repeat(6,1fr)!important;padding:.5rem!important}}@media (max-width:480px){.histogram-container{gap:4px!important;grid-template-columns:repeat(4,1fr)!important;padding:.3rem!important}}.histogram-bar{gap:8px}.bar-container,.histogram-bar{align-items:center;display:flex;flex-direction:column}.bar-container{height:120px;justify-content:flex-end;position:relative}.bar{border-radius:4px 4px 0 0;position:relative;transition:all .3s ease;width:20px}.correct-bar{background:linear-gradient(180deg,#10b981,#059669);box-shadow:0 2px 8px #10b9814d}.incorrect-bar{background:linear-gradient(180deg,#ef4444,#dc2626);box-shadow:0 2px 8px #ef44444d;margin-top:2px}.bar-label{color:#f3f4f6;font-size:.9rem;font-weight:600;text-align:center}.bar-stats{align-items:center;display:flex;flex-direction:column;gap:2px}.accuracy{color:#10b981;font-size:.8rem;font-weight:600}.attempts{color:#d1d5db;font-size:.7rem;opacity:.6}.analysis-section{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.confusion-list{display:flex;flex-direction:column;gap:1rem}.confusion-item{align-items:center;background:#ffffff08;border:1px solid #ffffff1a;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px;transition:all .3s ease}.confusion-item:hover{background:#ffffff0d;border-color:#ffffff26;transform:translateY(-1px)}.confusion-pair{align-items:center;display:flex;font-weight:600;gap:.5rem}.actual-note{background:#10b9811a;border:1px solid #10b98133;border-radius:4px;color:#10b981;font-size:.85rem;min-width:24px;padding:.2rem .5rem;text-align:center}.arrow{color:#6b7280;font-size:.9rem;font-weight:400}.guessed-note{background:#ef44441a;border:1px solid #ef444433;border-radius:4px;color:#ef4444;font-size:.85rem;min-width:24px;padding:.2rem .5rem;text-align:center}.confusion-details{align-items:center;display:flex;gap:.3rem}.confusion-count{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;color:#fbbf24;font-size:.9rem;font-weight:700}.confusion-desc{color:#9ca3af;font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.analysis-card{background:#ffffff0f;border:1px solid #ffffff1a;border-radius:16px;padding:1.5rem}.analysis-card h3{color:#f3f4f6;font-size:1.2rem;font-weight:600;margin-bottom:1rem;text-align:center}.note-list{display:flex;flex-direction:column;gap:8px}.note-item{align-items:center;border-radius:8px;display:flex;font-size:.9rem;justify-content:space-between;padding:8px 12px}.note-item.perfect{background:linear-gradient(135deg,#fbbf2426,#f59e0b26);border:2px solid #fbbf2466;box-shadow:0 4px 15px #fbbf2433,inset 0 1px 0 #ffffff1a;overflow:hidden;position:relative}.note-item.perfect:before{animation:perfectShimmer 2s infinite;background:linear-gradient(90deg,#0000,#fbbf241a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}@keyframes perfectShimmer{0%{left:-100%}50%{left:100%}to{left:100%}}.note-item.strong{background:#10b9811a;border:1px solid #10b98133}.note-item.weak{background:#ef44441a;border:1px solid #ef444433}.note-name{color:#f3f4f6}.note-accuracy,.note-name{font-weight:600}.note-item.perfect .note-accuracy{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fbbf24,#f59e0b);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 0 3px rgba(251,191,36,.3));font-size:1.2rem}.note-item.strong .note-accuracy{color:#10b981}.note-item.weak .note-accuracy{color:#ef4444}.note-total{color:#d1d5db;font-size:.8rem;opacity:.7}.no-data{color:#d1d5db;font-style:italic;margin:0;opacity:.6}.no-data,.stats-actions{text-align:center}.reset-stats-button{background:linear-gradient(135deg,#f59e0b,#d97706);border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 6px 20px #f59e0b40,inset 0 1px 0 #ffffff1a;color:#fff;cursor:pointer;font-size:.95rem;font-weight:600;overflow:hidden;padding:12px 24px;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.reset-stats-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.reset-stats-button:hover:before{left:100%}.reset-stats-button:hover{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:0 8px 25px #f59e0b59,inset 0 1px 0 #ffffff26;transform:translateY(-2px) scale(1.02)}.chord-practice-container{margin:0 auto;max-width:900px;width:100%}@media (max-width:1024px){.panels-container{flex-direction:column}.left-panel{flex:1 1;width:100%}.right-panel{width:100%}.desktop-only{display:none}}.key-selection-panel{background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 4px 16px #0000001a,inset 0 1px 0 #ffffff1a;padding:1.5rem;transition:all .3s ease}.key-selection-panel .key-buttons{margin-left:0;margin-right:0;max-width:100%}.chord-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 4px 16px #0000001a,inset 0 1px 0 #ffffff1a;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.chord-selection-panel:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.chord-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.chord-selector{margin-top:.75rem}.chord-category-group{margin-bottom:1.25rem}.chord-category-group:last-child{margin-bottom:0}.chord-category-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.625rem}.chord-category-title{color:#ffffffe6;font-size:1rem;font-weight:600;margin:0}.category-select-all{align-items:center;background:#ffffff14;border:1.5px solid #ffffff26;border-radius:4px;color:#ffffffb3;cursor:pointer;display:flex;flex-shrink:0;font-size:.75rem;height:20px;justify-content:center;padding:0;transition:all .2s ease;width:20px}.category-select-all:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40}.category-select-all.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;color:#fff}.category-select-all:disabled{cursor:not-allowed;opacity:.5}.chord-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr);justify-content:flex-start}.chord-button{background:#ffffff14;border:1.5px solid #ffffff26;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:.875rem;font-weight:500;overflow:hidden;padding:.625rem .875rem;position:relative;text-align:center;transition:all .2s ease}.chord-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.chord-button:hover:before{left:100%}.chord-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.chord-button.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;box-shadow:0 2px 8px #667eea4d;color:#fff}.chord-button.selected:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 4px 12px #667eea66}.chord-button:disabled{cursor:not-allowed;opacity:.5}.chord-practice-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;height:fit-content;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.chord-practice-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.chord-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.current-chord-display{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:2rem}.chord-name-large{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;color:#fffffff2;font-size:2.5rem;font-weight:700;margin-bottom:1.5rem}.chord-notes-display{align-items:center;color:#fffc;display:flex;flex-wrap:wrap;font-size:1.3rem;gap:.75rem;justify-content:center}.chord-note-display{background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;font-weight:500;padding:.6rem .9rem;transition:all .3s ease}.chord-note-display.playing{background:linear-gradient(135deg,#06b6d4,#3b82f6);border-color:#06b6d4;box-shadow:0 0 20px #06b6d499,0 0 40px #06b6d466,inset 0 1px 0 #fff3;color:#fff;position:relative;transform:scale(1.2);z-index:10}.practice-settings-header{background:#ffffff0d;border-bottom:1px solid #ffffff1a;padding:.875rem 1.25rem}.practice-settings-title{color:#ffffffd9;font-size:.9rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.practice-settings:not(:has(.practice-settings-header)) .practice-settings-content{padding-top:1rem}.practice-settings-toggle{align-items:center;cursor:pointer;display:inline-flex;flex-shrink:0;height:24px;position:relative;width:48px}.practice-settings-toggle-slider{background-color:#fff3;border-radius:24px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:all .3s ease}.practice-settings-toggle-slider:before{background-color:#ffffffe6;border-radius:50%;bottom:3px;box-shadow:0 2px 4px #0003;content:"";height:18px;left:3px;position:absolute;transition:all .3s ease;width:18px}.auto-play-next-checkbox:checked+.practice-settings-toggle-slider{background-color:#06b6d4}.auto-play-next-checkbox:checked+.practice-settings-toggle-slider:before{transform:translateX(24px)}.auto-play-next-checkbox:focus+.practice-settings-toggle-slider{box-shadow:0 0 0 3px #06b6d44d}.key-buttons{grid-gap:.75rem;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(60px,1fr));justify-items:stretch;margin-bottom:0}.key-button{border:1.5px solid #ffffff26;border-radius:8px;color:#ffffffe6;font-size:.875rem;padding:.75rem .875rem;transition:all .2s ease}.key-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.key-button.selected{border-color:#10b98180;box-shadow:0 2px 8px #10b9814d,inset 0 1px 0 #fff3}.key-button.selected:hover{box-shadow:0 4px 12px #10b98166,inset 0 1px 0 #ffffff40;transform:translateY(-2px)}.progress-bar-fill{background:linear-gradient(90deg,#06b6d4,#3b82f6)}.progress-percentage{font-size:.9rem}.history-section h3{color:#ffffffe6;font-size:1.3rem;margin-bottom:1rem}.history-chord{color:#fffffff2;font-size:1.1rem;font-weight:600}.history-chords,.history-keys{color:#ffffffe6;font-size:.95rem}@media (max-width:1024px){.key-indicator{display:none}}@media (max-width:768px){.key-buttons{gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(70px,1fr))}.key-button{font-size:.875rem;padding:.625rem .75rem}.chord-buttons{grid-template-columns:1fr}.chord-button{padding:.875rem 1.25rem}.chord-practice-panel{margin:0 1rem;padding:1.5rem}.chord-practice-panel h2{font-size:1.5rem}.chord-name-large{font-size:1.8rem}.chord-notes-display{font-size:1rem}.chord-note-display{font-size:.9rem;padding:.4rem .6rem}.progress-summary,.stats-panels{grid-template-columns:1fr}.stats-panels{gap:1.5rem}.practice-controls-row{flex-direction:row;gap:.75rem;width:100%}.control-button{flex:1 1;font-size:.75rem;min-width:0;padding:.875rem .75rem}.next-button,.repeat-button,.stop-button{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 2px 8px #0000001a;color:#ffffffe6}.next-button:hover:not(:disabled),.repeat-button:hover:not(:disabled),.stop-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.next-button:disabled,.repeat-button:disabled,.stop-button:disabled{background:#ffffff0d;color:#fff6;opacity:.5}.history-item{padding:.875rem}.history-chords,.history-keys{font-size:.875rem}.history-meta{align-items:flex-start;flex-direction:column;gap:.25rem}.settings-container{margin:0;max-width:100%;padding:0 .5rem;width:100%}.settings-panel{box-sizing:border-box;overflow-x:hidden;padding:1rem .75rem;width:100%}.settings-panel h2{word-wrap:break-word;font-size:1.4rem;margin-bottom:.5rem}.settings-panel p{font-size:.85rem;line-height:1.4;margin-bottom:1.25rem}.chord-selection-panel,.key-selection-panel{box-sizing:border-box;margin-bottom:1.25rem;overflow-x:hidden;padding:1.25rem .75rem;width:100%}.chord-selection-panel h2,.key-selection-panel h2{-webkit-text-fill-color:#fff!important;word-wrap:break-word;background:none!important;-webkit-background-clip:unset!important;background-clip:initial!important;color:#fff!important;display:block!important;font-size:1.4rem;margin-bottom:.9rem}.key-buttons{box-sizing:border-box;padding:0;width:100%}.key-button{box-sizing:border-box;min-width:0}.chord-category-group{margin-bottom:1rem;padding:.9rem .5rem}.chord-button,.chord-buttons,.chord-category-group{box-sizing:border-box;width:100%}.chord-category-header{align-items:center!important;display:flex!important;flex-wrap:nowrap!important;gap:.5rem;justify-content:space-between!important;margin-bottom:.625rem}.chord-category-group h3,.chord-category-title,.chord-selection-panel h3{display:inline-block;flex:1 1;font-size:.7rem!important;margin:0!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chord-category-group .category-select-all{flex-shrink:0!important;height:20px;margin:0;width:20px}.practice-settings{box-sizing:border-box;margin-bottom:1.25rem;overflow-x:hidden;padding:0;width:100%}.practice-settings-header{padding:.75rem 1rem}.practice-settings-title{font-size:.85rem}.practice-settings-content{gap:.875rem;padding:.875rem 1rem}.practice-settings-item{align-items:stretch;box-sizing:border-box;flex-direction:column;gap:.5rem;min-height:auto;width:100%}.practice-settings-label{flex-shrink:1;font-size:.85rem;min-width:0;white-space:normal;width:100%}.practice-settings-control{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:.5rem;min-width:0;width:100%}.practice-settings-value{flex-shrink:0;font-size:.9rem;min-width:2.25rem}.auto-play-next-select,.practice-settings-control .bpm-slider{flex:1 1;max-width:100%;min-width:0}.auto-play-next-select{font-size:.85rem;padding:.45rem 2rem .45rem .65rem;width:100%}}.groove-practice-container{margin:0 auto;max-width:900px;width:100%}.groove-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;margin-bottom:2rem;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.groove-selection-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.groove-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.groove-selector{margin-top:1.5rem}.groove-category-group{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:1.5rem}.groove-category-group:last-child{margin-bottom:0}.groove-category-group h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.5rem;font-weight:600;margin-bottom:1.2rem;text-align:center}.groove-category-group .groove-buttons{gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.groove-buttons{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(2,1fr);justify-content:flex-start}.groove-button{background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;color:#ffffffe6;cursor:pointer;font-size:1rem;font-weight:500;overflow:hidden;padding:.875rem 1.25rem;position:relative;text-align:center;transition:all .3s ease}.groove-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.groove-button:hover:before{left:100%}.groove-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff4d;box-shadow:0 8px 25px #00000026;transform:translateY(-2px)}.groove-button.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;box-shadow:0 4px 15px #667eea66;color:#fff}.groove-button.selected:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 20px #667eea99}.groove-button:disabled{cursor:not-allowed;opacity:.5}.groove-practice-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;height:fit-content;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.groove-practice-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.groove-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.current-groove-display{margin-bottom:2rem;text-align:center}.groove-name-large{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#a55eea,#8854d0);-webkit-background-clip:text;background-clip:text;font-size:2.5rem;font-weight:700;margin-bottom:1rem}.groove-description{color:#ffffffb3;font-size:1.1rem;margin-top:.5rem}.metronome-display{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-top:2rem;padding:1.5rem}.drum-notation{margin-bottom:1.5rem}.drum-staff{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.drum-line{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;gap:1rem;padding:.5rem 0}.drum-line:last-child{border-bottom:none}.line-label{color:#ffffffb3;font-size:.9rem;font-weight:600;min-width:80px;text-align:left}.drum-hits{display:flex;flex:1 1;flex-wrap:wrap;gap:.3rem;justify-content:center}.drum-line .beat-group{align-items:center;display:flex;gap:.2rem}.drum-hit{align-items:center;border-radius:4px;color:#ffffff4d;display:flex;font-size:1.1rem;font-weight:700;height:28px;justify-content:center;transition:all .1s ease;width:28px}.drum-hit.active{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 0 12px #667eea99;color:#fff;transform:scale(1.15)}.drum-hit.empty,.drum-hit:empty{height:28px;opacity:0;pointer-events:none;width:28px}.bpm-control,.volume-control{align-items:center;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.volume-control{margin-bottom:0}.bpm-control label,.volume-control label{color:#ffffffe6;font-size:1rem;font-weight:500}.bpm-slider,.volume-slider{-webkit-appearance:none;background:#fff3;border-radius:3px;height:6px;max-width:300px;outline:none;width:100%}.bpm-slider::-webkit-slider-thumb,.volume-slider::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;box-shadow:0 2px 8px #667eea66;cursor:pointer;height:20px;width:20px}.bpm-slider::-moz-range-thumb,.volume-slider::-moz-range-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;box-shadow:0 2px 8px #667eea66;cursor:pointer;height:20px;width:20px}.bpm-slider:disabled,.volume-slider:disabled{cursor:not-allowed;opacity:.5}.practice-controls{align-items:center}.practice-controls-row{flex-wrap:wrap}.control-button{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 15px #667eea66,inset 0 1px 0 #ffffff1a;color:#fff;font-size:1.1rem;padding:1rem 2rem}.control-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea99,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.start-button{font-size:1.2rem;padding:1rem 3rem}.stop-button:hover:not(:disabled){box-shadow:0 6px 20px #f5576c99}.help-text{margin-top:2rem}.help-text p{font-size:1rem}.progress-summary{grid-gap:1.5rem;gap:1.5rem}.stat-card{border:1px solid #ffffff1a;border-radius:16px;padding:1.5rem}.stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#a55eea,#8854d0);-webkit-background-clip:text;background-clip:text;color:#fff}.stats-panels{grid-template-columns:1fr}.stats-panel{border:1px solid #ffffff26;border-radius:20px;padding:2rem}.stats-panel h3{font-size:1.5rem}.stats-list{gap:.5rem}.stat-item{padding:.75rem 0}.stat-item-info{align-items:center;display:flex;gap:.75rem;min-width:200px}.stat-time{color:#fff9;font-size:.8rem;font-weight:500}.stat-bar-wrapper{align-items:center;display:flex;flex:1 1;gap:.75rem}.progress-bar-container{border-radius:4px;height:8px}.progress-bar-fill{background:linear-gradient(90deg,#667eea,#764ba2);border-radius:4px}.progress-percentage{color:#fffc;font-size:.85rem;min-width:45px;text-align:right}.history-section{margin-top:2rem}.history-section h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:1.5rem;font-weight:600;margin-bottom:1.5rem}.history-list{gap:1rem}.history-item{background:#ffffff14;border:1px solid #ffffff1a;border-radius:12px;padding:1.25rem}.history-groove{color:#fff;font-size:1.2rem;font-weight:600;margin-bottom:.5rem}.history-grooves{color:#ffffffb3;font-size:.9rem;margin-bottom:.5rem}.history-meta{color:#fff9;font-size:.85rem;gap:1rem}@media (max-width:768px){.groove-selection-panel{margin-bottom:1.5rem;padding:1.5rem}.groove-selection-panel h2{display:block;font-size:1.5rem;margin-bottom:1rem}.groove-category-group{margin-bottom:1rem;padding:1rem}.groove-category-group h3{font-size:1.2rem;margin-bottom:.8rem}.groove-buttons,.groove-category-group .groove-buttons{grid-template-columns:1fr}.groove-practice-panel{margin:0 1rem;padding:1.5rem}.groove-practice-panel h2{font-size:1.5rem}.groove-name-large{font-size:1.8rem}.metronome-display{margin-top:1rem;padding:1rem}.drum-staff{gap:.8rem;padding:1rem}.drum-line{gap:.5rem;padding:.4rem 0}.line-label{font-size:.8rem;min-width:60px}.drum-hits{gap:.2rem}.drum-line .beat-group{gap:.15rem}.drum-hit{font-size:.9rem}.drum-hit,.drum-hit:empty{height:24px;width:24px}.bpm-slider,.volume-slider{max-width:100%}.practice-controls-row{flex-direction:row;gap:.75rem;width:100%}.control-button{flex:1 1;font-size:.9rem;min-width:0;padding:.875rem .75rem}.next-button,.repeat-button,.stop-button{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 2px 8px #0000001a;color:#ffffffe6}.next-button:hover:not(:disabled),.repeat-button:hover:not(:disabled),.stop-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.next-button:disabled,.repeat-button:disabled,.stop-button:disabled{background:#ffffff0d;color:#fff6;opacity:.5}.progress-summary,.stats-panels{grid-template-columns:1fr}.stats-panels{gap:1.5rem}.stat-item{gap:.5rem;grid-template-columns:1fr}.progress-percentage{text-align:left}.history-item{padding:.875rem}.history-groove{font-size:1rem}.history-grooves{font-size:.875rem}.history-meta{align-items:flex-start;flex-direction:column;gap:.25rem}}.menu-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.menu-container:before{animation:rotate 20s linear infinite;background:radial-gradient(circle,#ffffff1a 0,#0000 70%);content:"";height:200%;left:-50%;position:absolute;top:-50%;width:200%}@keyframes rotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.menu-content{max-width:1200px;position:relative;text-align:center;width:100%;z-index:1}.menu-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#e0e7ff 50%,#c7d2fe);-webkit-background-clip:text;background-clip:text;filter:drop-shadow(0 4px 12px rgba(0,0,0,.15));font-size:4rem;font-weight:900;letter-spacing:-.02em;line-height:1.1;margin-bottom:1.5rem}.menu-description{color:#ffffffe6;font-size:1.3rem;font-weight:400;letter-spacing:.01em;margin-bottom:4rem;text-align:left;text-shadow:0 2px 8px #0000001a}.menu-items{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:repeat(3,1fr);margin-bottom:2.5rem}.menu-items>:nth-child(4){grid-column:1/2}.menu-items>:nth-child(5){grid-column:2/3}.menu-item{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;box-shadow:0 4px 24px #0000001f,inset 0 1px 0 #fff3;color:inherit;display:flex;overflow:hidden;padding:1.25rem;position:relative;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1)}.menu-item:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.menu-item:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 12px 32px #0000002e,inset 0 1px 0 #ffffff40;transform:translateY(-6px)}.menu-item:hover:before{opacity:1}.menu-auth-button{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;box-shadow:0 4px 24px #0000001f,inset 0 1px 0 #fff3;color:#ffffffe6;cursor:pointer;font-size:14px;font-weight:600;overflow:hidden;padding:10px 20px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-auth-button:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.menu-auth-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 8px 24px #0000002e,inset 0 1px 0 #ffffff40;transform:translateY(-2px)}.menu-auth-button:hover:before{opacity:1}.menu-logout-button{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;border:1px solid #fff3;border-radius:20px;box-shadow:0 4px 24px #0000001f,inset 0 1px 0 #fff3;color:#ffffffe6;cursor:pointer;font-size:14px;font-weight:500;overflow:hidden;padding:8px 16px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1);white-space:nowrap}.menu-logout-button:before{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);bottom:0;content:"";left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .3s ease}.menu-logout-button:hover{background:#ffffff26;border-color:#ffffff4d;box-shadow:0 8px 24px #0000002e,inset 0 1px 0 #ffffff40;transform:translateY(-2px)}.menu-logout-button:hover:before{opacity:1}.menu-item-thumbnail{flex-shrink:0;height:85px;margin-right:1.25rem;width:85px}.thumbnail-content{align-items:center;background:linear-gradient(135deg,#ffffff26,#ffffff14);border:1px solid #ffffff40;border-radius:16px;box-shadow:inset 0 1px 4px #ffffff26,0 2px 12px #0000001a;display:flex;flex-direction:column;height:100%;justify-content:center;overflow:hidden;position:relative;width:100%}.thumbnail-content:before{background:linear-gradient(45deg,#0000 30%,#ffffff1a 50%,#0000 70%);bottom:0;content:"";left:0;position:absolute;right:0;top:0;transform:translateX(-100%);transition:transform .6s ease}.menu-item:hover .thumbnail-content:before{transform:translateX(100%)}.thumbnail-icon{filter:drop-shadow(0 2px 6px rgba(0,0,0,.25));font-size:2rem;left:50%;opacity:.9;position:absolute;top:.4rem;transform:translateX(-50%);transition:transform .3s ease;z-index:1}.menu-item:hover .thumbnail-icon{transform:scale(1.05)}.thumbnail-preview{align-items:center;bottom:.75rem;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;width:100%}.preview-beat,.preview-chord,.preview-note,.preview-scale{color:#fff;font-size:.95rem;font-weight:700;letter-spacing:.02em;line-height:1.2;text-align:center;text-shadow:0 2px 8px #0000004d}.preview-clef{font-size:1.8rem!important;line-height:1}.menu-item-content{flex:1 1;text-align:left}.menu-item-content h3{color:#fff;font-size:1.4rem;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-bottom:.5rem;text-shadow:0 2px 6px #0003}.menu-item-content p{color:#fffc;font-size:1rem;line-height:1.5;margin-bottom:1rem}.menu-item-status{align-items:flex-start;display:flex;flex-direction:column;gap:.5rem}.status-badge{border-radius:20px;box-shadow:0 2px 8px #00000026;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.35rem .9rem;text-transform:uppercase}.status-active{background:linear-gradient(135deg,#4ade80,#22c55e);box-shadow:0 2px 8px #4ade804d;color:#fff}.status-development{background:linear-gradient(135deg,#fbbf24,#f59e0b);box-shadow:0 2px 8px #fbbf244d;color:#fff}.status-features{color:#ffffffbf;flex:1 1;font-size:.85rem;font-weight:400;line-height:1.4}.menu-item-arrow{color:#fff6;flex-shrink:0;font-size:1.3rem;font-weight:300;margin-left:.75rem;transition:all .3s cubic-bezier(.4,0,.2,1)}.menu-item:hover .menu-item-arrow{color:#fff;transform:translateX(8px)}.menu-footer{margin-top:2rem}.footer-content{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff08;border:1px solid #ffffff14;border-radius:20px;box-shadow:0 2px 8px #0000000d;display:inline-flex;gap:.5rem;justify-content:center;padding:.5rem 1rem}.footer-icon{animation:bounce 2s infinite;font-size:.9rem}.footer-content p{color:#ffffff80;font-size:.75rem;font-weight:300;margin:0}.footer-bottom{align-items:center;border-top:1px solid #ffffff1a;display:flex;flex-direction:column;gap:.5rem;justify-content:center;margin-top:2rem;padding-top:2rem}.footer-inline{color:#ffffffa6;font-size:.9rem;font-weight:300;margin:0}.coffee-link,.email-link{color:#ffffffb3;font-size:.9rem;font-weight:400;text-decoration:none;transition:color .2s ease}.coffee-link:hover,.email-link:hover{color:#ffffffe6;text-decoration:underline}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-10px)}60%{transform:translateY(-5px)}}@media (max-width:1024px){.menu-items{grid-template-columns:repeat(2,1fr)}.menu-items>:nth-child(4),.menu-items>:nth-child(5){grid-column:span 1;justify-self:stretch}}@media (max-width:768px){.menu-container{align-items:flex-start;display:flex;min-height:100vh;padding:4.5rem 1rem 2rem}.menu-container:before{display:none}.menu-content{width:100%}.menu-title{font-size:2.5rem;letter-spacing:-.01em;line-height:1.1;margin-bottom:.75rem}.menu-description{color:#fffffff2;font-size:1rem;line-height:1.5;margin-bottom:2.25rem;text-align:left}.menu-items{gap:1rem;grid-template-columns:1fr;margin-bottom:2rem}.menu-item{background:#ffffff1f;border:1px solid #ffffff40;border-radius:18px;box-shadow:0 4px 20px #00000026,inset 0 1px 0 #ffffff40;flex-direction:column;min-height:auto;padding:1.25rem 1rem;text-align:center}.menu-item:hover{background:#ffffff2e;border-color:#ffffff59;box-shadow:0 8px 28px #0003,inset 0 1px 0 #ffffff4d;transform:translateY(-4px)}.menu-item-thumbnail{height:80px;margin-bottom:1rem;margin-right:0;width:80px}.thumbnail-content{border-radius:14px;box-shadow:inset 0 1px 4px #fff3,0 2px 12px #00000026}.thumbnail-icon{font-size:1.6rem;opacity:.95;top:.35rem}.thumbnail-preview{bottom:.6rem}.preview-beat,.preview-chord,.preview-note,.preview-scale{font-size:.85rem;font-weight:700}.preview-clef{font-size:1.5rem!important}.menu-item-content{text-align:center;width:100%}.menu-item-content h3{color:#fff;font-size:1.3rem;font-weight:700;line-height:1.25;margin-bottom:.65rem;text-shadow:0 2px 8px #00000040}.menu-item-status{align-items:center;gap:.5rem;width:100%}.status-badge{border-radius:18px;box-shadow:0 2px 6px #0003;font-size:.68rem;padding:.3rem .75rem}.status-features{color:#fffc;font-size:.78rem;line-height:1.4;max-width:100%;text-align:center}.menu-item-arrow{color:#ffffff80;font-size:1.3rem;margin-left:0;margin-top:.6rem;transform:rotate(90deg)}.menu-item:hover .menu-item-arrow{color:#ffffffb3;transform:rotate(90deg) translateY(4px)}.menu-footer{margin-top:2rem}.footer-content{background:#ffffff0d;border:1px solid #ffffff1a;font-size:.72rem;padding:.5rem .9rem}.footer-content p{color:#fff9;font-size:.72rem}.footer-icon{font-size:.85rem}.footer-bottom{border-top:1px solid #ffffff1f;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem}.footer-inline{color:#ffffffb3;font-size:.82rem;text-align:center}.coffee-link,.email-link{color:#ffffffbf;font-size:.82rem}.coffee-link:hover,.email-link:hover{color:#fffffff2}}.auth-container{align-items:center;background:linear-gradient(135deg,#1e1e2e,#2d1b69 50%,#11998e);display:flex;justify-content:center;min-height:100vh;padding:20px}.auth-inline-container{pointer-events:auto;position:absolute;right:0;top:calc(100% + 8px);width:300px;z-index:1000}@media (max-width:768px){.auth-inline-container{left:50%;max-width:320px;right:auto;transform:translateX(-50%);width:calc(100vw - 40px)}}.auth-card{border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0000004d;max-width:400px;padding:40px}.auth-card,.auth-inline-container .auth-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff1a;width:100%}.auth-inline-container .auth-card{animation:slideDown .15s ease-out;border:1px solid #fff3;border-radius:20px;box-shadow:0 4px 24px #0000001f,inset 0 1px 0 #fff3;margin:0;padding:16px 18px;position:relative;transition:all .3s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.auth-inline-container .auth-container{background:none;display:block;min-height:auto;padding:0}.auth-inline-container .auth-card h2{color:#fffffff2;font-size:18px;margin-bottom:14px;text-align:center;text-shadow:0 2px 8px #0000001a}.auth-inline-container .auth-input-group{margin-bottom:12px}.auth-inline-container .auth-input-group label{color:#ffffffe6;font-size:12px;margin-bottom:6px}.auth-inline-container .auth-input-group input{background:#ffffff26;border:1px solid #ffffff40;border-radius:12px;color:#fff;font-size:14px;padding:8px 12px;transition:all .2s}.auth-inline-container .auth-input-group input:focus{background:#fff3;border-color:#fff6;box-shadow:0 0 0 3px #ffffff1a,inset 0 1px 0 #fff3;outline:none}.auth-inline-container .auth-button{background:#ffffff26;border:1px solid #ffffff40;border-radius:12px;box-shadow:0 2px 8px #0000001a,inset 0 1px 0 #fff3;color:#fffffff2;font-size:14px;margin-top:6px;padding:10px;transition:all .2s;width:100%}.auth-inline-container .auth-button:hover:not(:disabled){background:#fff3;border-color:#ffffff59;box-shadow:0 4px 12px #00000026,inset 0 1px 0 #ffffff40;transform:translateY(-1px)}.auth-view-toggle{background:#ffffff14;border-radius:10px;display:flex;gap:8px;margin-bottom:16px;padding:4px}.auth-view-toggle button{background:#0000;border:none;border-radius:8px;color:#ffffffb3;cursor:pointer;flex:1 1;font-size:13px;font-weight:500;padding:8px 12px;transition:all .2s}.auth-view-toggle button:hover{background:#ffffff1a;color:#ffffffe6}.auth-view-toggle button.active{background:#ffffff26;color:#fffffff2;font-weight:600}.auth-inline-container .auth-view-toggle{margin-bottom:14px}.auth-inline-container .auth-view-toggle button{font-size:12px;padding:6px 10px}.auth-inline-container .auth-error{font-size:12px;margin-bottom:12px;padding:10px}.auth-inline-container .auth-success{font-size:12px;margin-bottom:12px;padding:12px}.auth-inline-container .forgot-password-link{color:#ffffffd9;font-size:11px;margin-top:4px;text-shadow:0 1px 4px #0000001a}.auth-inline-container .forgot-password-link:hover{color:#fff}.auth-inline-container .password-input-wrapper{position:relative}.auth-inline-container .password-input-wrapper input{padding-right:40px}.auth-inline-container .password-toggle-button{background:none;border:none;color:#ffffffb3;cursor:pointer;font-size:14px;line-height:1;padding:4px;position:absolute;right:8px;top:50%;transform:translateY(-50%);transition:color .2s}.auth-inline-container .password-toggle-button:hover{color:#fff}.auth-info-message{background:#ffffff14;border:1px solid #ffffff26;border-radius:10px;color:#ffffffd9;font-size:11px;line-height:1.4;margin-bottom:14px;padding:10px 12px;text-align:center;text-shadow:0 1px 4px #0000001a}.auth-info-message p{margin:0}.auth-info-message strong{color:#fffffff2;font-weight:600}.auth-card h2{color:#fff;font-size:28px;font-weight:700;margin:0 0 30px;text-align:center}.auth-input-group{margin-bottom:20px}.auth-input-group label{color:#ffffffe6;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.auth-input-group input{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;box-sizing:border-box;color:#fff;font-size:16px;padding:12px 16px;transition:all .2s;width:100%}.auth-input-group input::placeholder{color:#ffffff80}.auth-input-group input:focus{background:#ffffff26;border-color:#4a9eff;box-shadow:0 0 0 3px #4a9eff1a;outline:none}.forgot-password-link{background:none;border:none;color:#4a9eff;cursor:pointer;display:block;font-size:12px;margin-top:6px;padding:0;text-align:right;text-decoration:underline;transition:color .2s;width:100%}.forgot-password-link:hover{color:#60a5fa}.auth-button{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;box-shadow:0 4px 12px #3b82f64d;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .2s;width:100%}.auth-button:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 16px #3b82f666;transform:translateY(-2px)}.auth-button:disabled{cursor:not-allowed;opacity:.6}.auth-error{background:#ef444433;border:1px solid #ef444466;border-radius:8px;color:#ff6b6b;margin-bottom:16px;padding:12px}.auth-error,.auth-success{font-size:14px;text-align:center}.auth-success{background:#22c55e33;border:1px solid #22c55e66;border-radius:8px;color:#4ade80;line-height:1.6;margin-bottom:20px;padding:16px}.auth-success strong{color:#fff;font-weight:600}.auth-switch{color:#ffffffb3;font-size:14px;margin-top:24px;text-align:center}.auth-switch button{background:none;border:none;color:#4a9eff;cursor:pointer;font-size:14px;font-weight:600;margin-left:4px;padding:0;text-decoration:underline}.auth-switch button:hover{color:#60a5fa}@media (max-width:768px){.auth-card{padding:30px 24px}.auth-card h2{font-size:24px;margin-bottom:24px}.auth-input-group{margin-bottom:16px}.auth-input-group input{font-size:16px;padding:10px 14px}.auth-button{font-size:16px;padding:12px}}.scale-practice-container{margin:0 auto;max-width:900px;width:100%}.panels-container{align-items:flex-start;display:flex;gap:2rem;margin-bottom:2rem}.left-panel{flex:0 0 400px;gap:2rem}.right-panel{flex:1 1}@media (max-width:1024px){.panels-container{flex-direction:column}.left-panel{flex:1 1;width:100%}.right-panel{width:100%}}.settings-container{max-width:900px;width:100%}.settings-panel{padding:1.5rem}.settings-panel h2{color:#fff;font-size:1.8rem;font-weight:600;margin-bottom:.5rem}.settings-panel p{color:#ffffffb3;font-size:.95rem;margin-bottom:2rem}.compact-difficulty-selector{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem}.compact-difficulty-selector .difficulty-label{color:#fffc;flex-shrink:0;font-size:.85rem;font-weight:500;white-space:nowrap}.compact-difficulty-selector .difficulty-buttons{display:flex;flex:1 1;gap:.5rem}@media (max-width:768px){.compact-difficulty-selector{align-items:stretch;flex-direction:column;gap:.75rem}.compact-difficulty-selector .difficulty-label{text-align:center}.compact-difficulty-selector .difficulty-buttons{flex-direction:column;gap:.5rem}}.compact-difficulty-selector .difficulty-button{background:#ffffff14;border:1.5px solid #ffffff26;border-radius:6px;color:#ffffffe6;cursor:pointer;flex:1 1;font-size:.8rem;font-weight:500;padding:.5rem .75rem;text-align:center;transition:all .2s ease}.compact-difficulty-selector .difficulty-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40}.compact-difficulty-selector .difficulty-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;box-shadow:0 2px 6px #667eea4d;color:#fff}.compact-difficulty-selector .difficulty-button.active:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 3px 10px #667eea66}.compact-difficulty-selector .difficulty-button:disabled{cursor:not-allowed;opacity:.5}.key-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;margin-bottom:2rem;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.key-selection-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.key-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.key-selection-panel h3{color:#ffffffe6;font-size:1.1rem;font-weight:500;margin-bottom:1rem}.scale-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 4px 16px #0000001a,inset 0 1px 0 #ffffff1a;overflow:hidden;padding:1.5rem;position:relative;transition:all .3s ease}.scale-selection-panel:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.scale-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.scale-selection-panel h3{color:#ffffffd9;font-size:.9rem;font-weight:600;margin-bottom:.625rem}.scale-selector{margin-top:.75rem}.scale-category-group{margin-bottom:1.25rem}.scale-category-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.625rem}.scale-category-title{color:#ffffffd9;font-size:.9rem;font-weight:600;margin:0}.scale-category-group .category-select-all{align-items:center;background:#ffffff14;border:1.5px solid #ffffff26;border-radius:4px;color:#ffffffb3;cursor:pointer;display:flex;flex-shrink:0;font-size:.75rem;height:20px;justify-content:center;padding:0;transition:all .2s ease;width:20px}.scale-category-group .category-select-all:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40}.scale-category-group .category-select-all.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;color:#fff}.scale-category-group .category-select-all:disabled{cursor:not-allowed;opacity:.5}.scale-category-group:last-child{margin-bottom:0}.scale-buttons{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(4,1fr);justify-content:flex-start}.scale-button{background:#ffffff14;border:1.5px solid #ffffff26;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:.875rem;font-weight:500;overflow:hidden;padding:.625rem .875rem;position:relative;text-align:center;transition:all .2s ease}.scale-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.scale-button:hover:before{left:100%}.scale-button:hover:not(:disabled){background:#ffffff1f;border-color:#ffffff40;box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.scale-button.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;box-shadow:0 2px 8px #667eea4d;color:#fff}.scale-button.selected:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 4px 12px #667eea66}.scale-button:disabled{cursor:not-allowed;opacity:.5}.scale-practice-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;height:fit-content;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.scale-practice-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.scale-practice-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.scale-practice-panel h3{color:#ffffffe6;font-size:1.3rem;font-weight:600;margin-bottom:1rem}.current-scale-display{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:2rem}.scale-name-large{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#10b981,#059669);-webkit-background-clip:text;background-clip:text;color:#fffffff2;font-size:2.5rem;font-weight:700;margin-bottom:1.5rem}.scale-notes-display{align-items:center;color:#fffc;display:flex;flex-wrap:wrap;font-size:1.3rem;gap:.75rem;justify-content:center}.scale-note-display{background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;font-weight:500;padding:.6rem .9rem;transition:all .3s ease}.scale-note-display.playing{background:linear-gradient(135deg,#06b6d4,#3b82f6);border-color:#06b6d4;box-shadow:0 0 20px #06b6d499,0 0 40px #06b6d466,inset 0 1px 0 #fff3;color:#fff;position:relative;transform:scale(1.2);z-index:10}.practice-mode-selector{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1.5rem}.practice-mode-selector label{color:#ffffffe6;font-size:1rem;font-weight:500}.mode-buttons{display:flex;gap:.75rem}.mode-button{background:#ffffff1a;border:1px solid #fff3;border-radius:12px;color:#fffc;cursor:pointer;flex:1 1;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.mode-button:hover{background:#ffffff26;border-color:#ffffff4d}.mode-button.active{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea;box-shadow:0 4px 12px #667eea66;color:#fff}.pattern-input-container{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:row;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.pattern-input-container label{color:#ffffffe6;font-size:.95rem;font-weight:500;margin:0;white-space:nowrap}.pattern-input{background:#ffffff1a;background-clip:initial!important;-webkit-background-clip:unset!important;border:1px solid #fff3;border-radius:8px;flex:1 1;font-family:inherit;font-size:.95rem;min-width:150px;padding:.5rem .75rem;transition:all .3s ease}.pattern-input,.pattern-input:focus{-webkit-text-fill-color:#fff!important;caret-color:#fff!important;color:#fff!important}.pattern-input:focus{background:#ffffff26;border-color:#667eea;box-shadow:0 0 0 3px #667eea33;outline:none}.pattern-help{color:#fff9;font-size:.8rem;font-style:italic;margin:0;white-space:nowrap}.pattern-sequences-display{display:flex;flex-direction:column;gap:.75rem;max-height:400px;overflow-y:auto;padding:1rem 0;scroll-behavior:smooth}.pattern-sequence{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem;transition:all .3s ease}.pattern-sequence.active{background:#667eea33;border-color:#667eea;box-shadow:0 0 20px #667eea4d}.pattern-note{background:#ffffff1a;border:1px solid #ffffff26;border-radius:8px;color:#ffffffe6;font-size:1.1rem;font-weight:500;padding:.5rem .75rem;position:relative}.octave-indicator{font-size:.6em;margin-left:.1em;opacity:.7;vertical-align:super}.pattern-sequence.active .pattern-note{background:#667eea4d;border-color:#667eea;color:#fff}.bpm-control{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:1.5rem;padding:1.5rem}.bpm-control,.bpm-slider-container{align-items:center;display:flex;flex-direction:column;gap:.75rem}.bpm-slider-container{width:100%}.bpm-label-row{align-items:center;display:flex;gap:.75rem;justify-content:center;width:100%}.bpm-control label{color:#ffffffe6;font-size:1rem;font-weight:500;margin:0}.metronome-toggle{background:#fff3;border:1px solid #ffffff4d;border-radius:10px;cursor:pointer;flex-shrink:0;height:20px;outline:none;padding:0;position:relative;transition:all .3s ease;width:36px}.metronome-toggle:hover{background:#ffffff40;border-color:#fff6}.metronome-toggle.on{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#667eea}.metronome-toggle.off{background:#fff3}.toggle-slider{background:#fff;border-radius:50%;box-shadow:0 2px 4px #0003;height:16px;left:2px;position:absolute;top:2px;transition:all .3s ease;width:16px}.metronome-toggle.on .toggle-slider{transform:translateX(16px)}.metronome-toggle.off .toggle-slider{transform:translateX(0)}.toggle-switch{cursor:pointer;display:inline-block;height:20px;position:relative;width:40px}.toggle-switch input{height:0;opacity:0;width:0}.toggle-switch .toggle-slider{background-color:#fff3;border-radius:20px;bottom:0;height:20px;left:0;position:absolute;right:0;top:0;transition:all .3s ease;width:40px}.toggle-switch .toggle-slider:before{background-color:#fff;border-radius:50%;bottom:2px;box-shadow:0 2px 4px #0003;content:"";height:16px;left:2px;position:absolute;transition:all .3s ease;width:16px}.toggle-switch input:checked+.toggle-slider{background-color:#667eea}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(20px)}.bpm-slider{appearance:none;background:#fff3;border-radius:3px;height:6px;max-width:300px;outline:none;width:100%}.bpm-slider::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;box-shadow:0 2px 8px #667eea66;cursor:pointer;height:20px;-webkit-transition:all .2s ease;transition:all .2s ease;width:20px}.bpm-slider::-webkit-slider-thumb:hover{box-shadow:0 4px 12px #667eea99;transform:scale(1.1)}.bpm-slider::-moz-range-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;box-shadow:0 2px 8px #667eea66;cursor:pointer;height:20px;-moz-transition:all .2s ease;transition:all .2s ease;width:20px}.bpm-slider::-moz-range-thumb:hover{box-shadow:0 4px 12px #667eea99;transform:scale(1.1)}.bpm-slider:disabled{cursor:not-allowed;opacity:.5}.practice-settings{background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;box-shadow:0 4px 16px #0000001a,inset 0 1px 0 #ffffff1a;margin-bottom:1.5rem;overflow:hidden;transition:all .3s ease}.practice-settings:hover{border-color:#fff3;box-shadow:0 6px 20px #00000026,inset 0 1px 0 #ffffff26}.practice-settings-content{display:flex;flex-direction:column;gap:.75rem;padding:1rem 1.25rem}.practice-settings-item{align-items:center;display:flex;gap:1.25rem;min-height:2.5rem}.practice-settings-label{align-items:center;color:#ffffffe6;display:flex;flex-shrink:0;font-size:.95rem;font-weight:500;white-space:nowrap;width:110px}.practice-settings-control{align-items:center;display:flex;flex:1 1;gap:.75rem;min-width:0}.practice-settings-item:has(.pattern-input) .practice-settings-control{min-width:200px}.practice-settings-value{align-items:center;color:#fffffff2;display:flex;flex-shrink:0;font-size:.95rem;font-weight:600;min-width:2.5rem;text-align:right}.practice-settings-control .bpm-slider{flex:1 1;margin:0;max-width:none}.auto-play-next-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:#ffffff1a;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%23fff' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:12px;border:1.5px solid #fff3;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:.9rem;font-weight:500;min-width:150px;padding:.5rem 2.5rem .5rem .75rem;transition:all .2s ease}.auto-play-next-select:hover{background-color:#ffffff26;border-color:#ffffff4d}.auto-play-next-select:focus{border-color:#06b6d4;box-shadow:0 0 0 3px #06b6d44d;outline:none}.auto-play-next-select option{background:#1a1a2e;color:#ffffffe6}.practice-settings-control .pattern-input{-webkit-text-fill-color:#fff!important;background:#ffffff1a!important;background-clip:initial!important;-webkit-background-clip:unset!important;border:1.5px solid #fff3;border-radius:8px;caret-color:#fff!important;color:#fff!important;flex:1 1;font-family:inherit;font-size:.95rem;max-width:400px;min-width:200px;padding:.5rem .75rem;transition:all .2s ease;width:100%}.practice-settings-control .pattern-input::-webkit-input-placeholder{-webkit-text-fill-color:#ffffff80!important;color:#ffffff80!important;opacity:1}.practice-settings-control .pattern-input::-moz-placeholder{color:#ffffff80!important;opacity:1}.practice-settings-control .pattern-input:-ms-input-placeholder{color:#ffffff80!important}.practice-settings-control .pattern-input:focus{-webkit-text-fill-color:#fff!important;background:#ffffff26;border-color:#667eea;box-shadow:0 0 0 3px #667eea33;caret-color:#fff!important;color:#fff!important;outline:none}.practice-settings-control .pattern-input::placeholder{-webkit-text-fill-color:#ffffff80!important;color:#ffffff80!important;opacity:1}.practice-settings-item .pattern-help{color:#ffffff80;font-size:.7rem;font-style:italic;margin-top:.25rem;text-align:left;width:100%}.practice-controls{flex-direction:column;gap:1rem;margin-bottom:1.5rem}.key-indicator{font-size:.7rem;font-weight:400;margin-left:.2rem;opacity:.7}.control-button:before{background:linear-gradient(90deg,#0000,#ffffff26,#0000);transition:left .5s ease}.control-button:hover:not(:disabled):before{left:100%}.start-button{box-shadow:0 4px 15px #667eea66,inset 0 1px 0 #ffffff1a}.start-button:hover:not(:disabled){box-shadow:0 8px 25px #667eea99,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.stop-button{box-shadow:0 4px 15px #f5576c66,inset 0 1px 0 #ffffff1a}.stop-button:hover:not(:disabled){box-shadow:0 8px 25px #f5576c99,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.repeat-button{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 2px 8px #0000001a;color:#ffffffe6}.repeat-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;box-shadow:0 4px 12px #00000026}.next-button{background:linear-gradient(135deg,#11998e,#38ef7d);box-shadow:0 4px 15px #11998e66,inset 0 1px 0 #ffffff1a;color:#fff}.next-button:hover:not(:disabled){box-shadow:0 8px 25px #11998e99,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.reset-button{background:linear-gradient(135deg,#f7971e,#ffd200);box-shadow:0 4px 15px #f7971e66,inset 0 1px 0 #ffffff1a}.reset-button:hover:not(:disabled){box-shadow:0 8px 25px #f7971e99,inset 0 1px 0 #ffffff26;transform:translateY(-3px)}.control-button:disabled{opacity:.6}.repeat-button:disabled{background:#ffffff1a;color:#ffffff80;cursor:not-allowed;opacity:1}.help-text{color:#ffffffb3;font-size:.95rem;font-style:italic}.scale-display{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:16px;margin-bottom:2rem;padding:2rem}.scale-name{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#fffffff2;font-size:2rem;font-weight:700;margin-bottom:1rem}.scale-notes{align-items:center;color:#fffc;display:flex;flex-wrap:wrap;font-size:1.2rem;gap:.5rem;justify-content:center}.scale-note{background:#ffffff1a;border:1px solid #ffffff26;border-radius:8px;font-weight:500;padding:.5rem .75rem}.note-separator{color:#fff6;margin:0 .25rem}.scale-controls{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2rem}.play-scale-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;box-shadow:0 4px 15px #667eea66;color:#fff;cursor:pointer;font-size:1.1rem;font-weight:600;padding:1rem 2rem;transition:all .3s ease}.play-scale-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea99;transform:translateY(-2px)}.play-scale-button:disabled{cursor:not-allowed;opacity:.6}.metronome-controls{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.metronome-button{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.metronome-button:hover{background:#ffffff26;border-color:#ffffff4d}.metronome-button.active{background:linear-gradient(135deg,#11998e,#38ef7d);border-color:#ffffff4d;color:#fff}.tempo-control{display:flex;flex-direction:column;gap:.5rem}.tempo-control label{color:#fffc;font-size:.9rem;font-weight:500}.tempo-control input[type=range]{-webkit-appearance:none;background:#fff3;border-radius:3px;height:6px;outline:none;width:100%}.tempo-control input[type=range]::-webkit-slider-thumb{appearance:none;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;cursor:pointer;height:18px;width:18px}.tempo-control input[type=range]::-moz-range-thumb{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;cursor:pointer;height:18px;width:18px}.practice-timer{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;margin-bottom:1rem;padding:1rem}.timer-label{color:#ffffffb3;font-size:.9rem;margin-bottom:.5rem}.timer-value{font-feature-settings:"tnum";color:#fffffff2;font-size:2rem;font-variant-numeric:tabular-nums;font-weight:700}.session-controls{margin-top:1.5rem}.session-button{border:none;border-radius:8px;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.start-session{background:linear-gradient(135deg,#11998e,#38ef7d);color:#fff}.start-session:hover{box-shadow:0 4px 15px #11998e66;transform:translateY(-2px)}.end-session{background:linear-gradient(135deg,#f093fb,#f5576c);color:#fff}.end-session:hover{box-shadow:0 4px 15px #f5576c66;transform:translateY(-2px)}.settings-section{margin-bottom:2rem;text-align:left}.scale-type-buttons{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.scale-type-button{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#ffffffe6;cursor:pointer;font-size:1rem;font-weight:500;padding:.75rem 1.5rem;transition:all .3s ease}.scale-type-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.scale-type-button.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#ffffff4d;color:#fff}.scale-type-button:disabled{cursor:not-allowed;opacity:.5}.key-selector{margin-top:1.5rem}.key-buttons{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(6,1fr);margin-bottom:1.5rem;margin-left:auto;margin-right:auto;max-width:480px}.key-button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff14;border:2px solid #ffffff26;border-radius:12px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;overflow:hidden;padding:16px 12px;position:relative;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1)}.key-button:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.key-button:hover:before{left:100%}.key-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;box-shadow:0 8px 25px #00000026;transform:translateY(-3px) scale(1.02)}.key-button.selected{background:linear-gradient(135deg,#10b981,#059669);border-color:#10b981;box-shadow:0 8px 25px #10b9814d,inset 0 1px 0 #fff3;color:#fff}.key-button.selected:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 12px 30px #10b98166,inset 0 1px 0 #ffffff40;transform:translateY(-3px) scale(1.02)}.key-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.key-button:disabled:hover{background:#ffffff1a;border-color:#ffffff4d;transform:none}.tempo-control-full{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;display:flex;flex-direction:column;gap:1rem;padding:1.5rem}.tempo-control-full label{color:#ffffffe6;font-size:1rem;font-weight:500}.tempo-presets{display:flex;gap:.5rem;justify-content:center}.tempo-preset{background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#ffffffe6;cursor:pointer;font-size:.9rem;font-weight:500;padding:.5rem 1rem;transition:all .3s ease}.tempo-preset:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d}.tempo-preset:disabled{cursor:not-allowed;opacity:.5}.progress-panel{background:#ffffff1a!important}.progress-summary{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.progress-panel .stat-card{align-items:center;background:#ffffff14;border:1px solid #fff3;border-radius:12px;display:flex;flex-direction:column;justify-content:center;padding:1.5rem;text-align:center}.progress-panel .stat-card .stat-label{color:#ffffffb3;font-size:.9rem;margin-bottom:.5rem;text-align:center}.progress-panel .stat-card .stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#06b6d4,#3b82f6);-webkit-background-clip:text;background-clip:text;font-size:2rem;font-weight:700;text-align:center}.stat-label{color:#ffffffb3;font-size:.9rem;margin-bottom:.5rem}.stat-value{color:#fffffff2;font-size:2rem;font-weight:700}.stats-panels{grid-gap:2rem;gap:2rem;grid-template-columns:1fr 1fr;margin-bottom:2rem}.progress-panel .stats-panel{background:#ffffff14;border:1px solid #fff3;border-radius:12px;padding:1.5rem}.stats-panel h3{color:#ffffffe6;font-size:1.3rem;margin-bottom:1rem}.stats-list{gap:.75rem}.stat-item{align-items:center;display:flex;gap:1rem}.stat-label{color:#ffffffe6;font-size:.95rem;font-weight:500;min-width:80px}.stat-bar-container{background:#ffffff1a;border-radius:4px;flex:1 1;height:8px;overflow:hidden}.stat-bar{background:linear-gradient(90deg,#06b6d4,#3b82f6);border-radius:4px;height:100%;transition:width .3s ease}.stat-value{color:#fffc;font-size:.9rem;font-weight:600;min-width:50px;text-align:right}.no-stats{color:#fff9;font-style:italic;padding:1rem;text-align:center}.practice-history{margin-top:2rem;text-align:left}.history-list{display:flex;flex-direction:column;gap:.75rem}.progress-panel .history-item{background:#ffffff14;border:1px solid #fff3;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;padding:1rem}.history-keys,.history-scales{color:#ffffffe6;font-size:.95rem}.history-label{color:#ffffffb3;font-weight:600;margin-right:.5rem}.history-meta{align-items:center;border-top:1px solid #ffffff1a;display:flex;justify-content:space-between;margin-top:.5rem;padding-top:.5rem}.history-duration{color:#ffffffb3;font-size:.9rem;font-weight:500}.history-date{color:#fff9;font-size:.85rem}.no-history{color:#fff9;font-style:italic;padding:2rem;text-align:center}@media (max-width:1024px){.desktop-only,.key-indicator{display:none}}@media (min-width:1025px){.mobile-only{display:none}}@media (max-width:768px){.settings-panel{padding:1rem}.settings-panel h2{font-size:1.5rem}.settings-panel p{font-size:.9rem;margin-bottom:1.5rem}.practice-settings{box-sizing:border-box;margin-bottom:1.25rem;overflow-x:hidden;padding:0;width:100%}.practice-settings-content{gap:.875rem;padding:.875rem 1rem}.practice-settings-item{align-items:stretch;box-sizing:border-box;flex-direction:column;gap:.5rem;min-height:auto;width:100%}.practice-settings-label{flex-shrink:1;font-size:.85rem;min-width:0;white-space:normal;width:100%}.practice-settings-control{align-items:center;flex-direction:row;flex-wrap:nowrap;gap:.5rem;min-width:0;width:100%}.practice-settings-value{flex-shrink:0;font-size:.9rem;min-width:2.25rem}.auto-play-next-select,.practice-settings-control .bpm-slider{flex:1 1;max-width:100%;min-width:0}.auto-play-next-select{font-size:.85rem;padding:.45rem 2rem .45rem .65rem;width:100%}.practice-settings-control .pattern-input{-webkit-text-fill-color:#fff!important;background:#ffffff1a!important;background-clip:initial!important;-webkit-background-clip:unset!important;caret-color:#fff!important;color:#fff!important;flex:1 1;font-size:.9rem;max-width:100%;min-width:150px;padding:.5rem .75rem;width:100%}.practice-settings-control .pattern-input:focus{-webkit-text-fill-color:#fff!important;background:#ffffff26!important;background-clip:initial!important;-webkit-background-clip:unset!important;caret-color:#fff!important;color:#fff!important}.practice-settings-item .pattern-help{font-size:.65rem;margin-top:.2rem}.key-buttons{gap:10px;grid-template-columns:repeat(4,1fr)}.key-button{font-size:.9rem;padding:14px 10px}.scale-category-group{margin-bottom:1rem;padding:1rem}.scale-category-header{align-items:center!important;display:flex!important;flex-wrap:nowrap!important;gap:.5rem;justify-content:space-between!important;margin-bottom:.625rem}.scale-category-group h3,.scale-category-title,.scale-selection-panel h3{display:inline-block;flex:1 1;font-size:1rem!important;margin:0!important;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scale-category-group .category-select-all{flex-shrink:0!important;height:20px;margin:0;width:20px}.scale-buttons,.scale-category-group .scale-buttons{grid-template-columns:1fr}.scale-button{padding:.875rem 1.25rem}.scale-practice-panel{margin:0 .75rem;padding:1.25rem 1rem}.current-scale-display{border-radius:12px;margin-bottom:1.5rem;padding:1.25rem 1rem}.scale-name-large{font-size:1.75rem;margin-bottom:1rem}.scale-notes-display{font-size:1rem;gap:.5rem}.scale-note-display{font-size:.9rem;padding:.35rem .5rem}.practice-controls-row{flex-direction:row;gap:.75rem;width:100%}.control-button{flex:1 1;font-size:.75rem;min-width:0;padding:.875rem .75rem}.next-button,.repeat-button,.stop-button{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 2px 8px #0000001a;color:#ffffffe6}.next-button:hover:not(:disabled),.repeat-button:hover:not(:disabled),.stop-button:hover:not(:disabled){background:#ffffff26;border-color:#ffffff4d;box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.next-button:disabled,.repeat-button:disabled,.stop-button:disabled{background:#ffffff0d;color:#fff6;opacity:.5}.scale-name,.scale-practice-panel h2{font-size:1.5rem}.scale-notes{font-size:1rem}.scale-note{font-size:.9rem;padding:.4rem .6rem}.play-scale-button{font-size:1rem;padding:.875rem 1.5rem}.progress-summary,.stats-panels{grid-template-columns:1fr}.stats-panels{gap:1.5rem}.history-item{padding:.875rem}.history-keys,.history-scales{font-size:.875rem}.history-meta{align-items:flex-start;flex-direction:column;gap:.25rem}.key-selection-panel,.scale-selection-panel{margin-bottom:1.5rem;padding:1.5rem}.key-selection-panel h2,.scale-selection-panel h2{-webkit-text-fill-color:#fff!important;background:none!important;-webkit-background-clip:unset!important;background-clip:initial!important;color:#fff!important;display:block!important;font-size:1.5rem;margin-bottom:1rem}}.left-panel{display:flex;flex-direction:column;gap:1.5rem}.right-panel{min-width:0}.clef-selection-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.clef-selection-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.clef-selection-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.clef-buttons{display:flex;flex-direction:column;gap:.75rem}.clef-button{background:#ffffff0d;border:2px solid #fff3;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.875rem 1.25rem;transition:all .3s ease}.clef-button:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff4d;transform:translateY(-2px)}.clef-button.selected{background:linear-gradient(135deg,#667eea,#764ba2);border-color:#0000;box-shadow:0 4px 15px #667eea66}.clef-button:disabled{cursor:not-allowed;opacity:.5}.sight-reading-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.sight-reading-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.sight-reading-panel h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem;text-align:center}.score-display{background:#ffffff0d;border-radius:12px;display:flex;gap:2rem;justify-content:center;margin-bottom:2rem;padding:1rem}.score-item{align-items:center;display:flex;flex-direction:column;gap:.5rem}.score-label{color:#aaa;font-size:.9rem}.score-value{color:#fff;font-size:1.5rem;font-weight:700}.staff-container{background:#ffffff08;border-radius:12px;margin:2rem 0;min-height:200px;padding:2rem;position:relative}.staff{height:120px;margin:0 auto;position:relative;width:100%}.staff-lines{height:100%;left:0;top:0}.staff-line,.staff-lines{position:absolute;width:100%}.staff-line{background:#fff;height:2px;opacity:.8}.staff-line:first-child{top:0}.staff-line:nth-child(2){top:20%}.staff-line:nth-child(3){top:40%}.staff-line:nth-child(4){top:60%}.staff-line:nth-child(5){top:80%}.clef-symbol{color:#fff;font-size:3rem;left:20px;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.note-on-staff{height:30px;left:50%;position:absolute;transform:translateX(-50%);width:30px;z-index:3}.note-head{background:#fff;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;box-shadow:0 2px 4px #0000004d;height:20px;width:30px}.note-stem{background:#fff;height:50px;left:28px;position:absolute;top:-10px;width:3px}.feedback{border-radius:10px;font-size:1.2rem;font-weight:600;margin:1rem 0;padding:1rem;text-align:center}.feedback.correct{background:#4caf5033;border:2px solid #4caf50;color:#4caf50}.feedback.incorrect{background:#f4433633;border:2px solid #f44336;color:#f44336}.answer-buttons{margin:2rem 0}.answer-buttons h3{color:#fff;font-size:1.2rem;margin-bottom:1rem;text-align:center}.note-buttons-grid{grid-gap:.75rem;background:#ffffff08;border-radius:12px;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));max-height:400px;overflow-y:auto;padding:1rem}.note-button{background:#ffffff0d;border:2px solid #fff3;border-radius:10px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:1rem;transition:all .3s ease}.note-button:hover:not(:disabled){background:#ffffff1a;border-color:#fff6;box-shadow:0 4px 12px #667eea4d;transform:translateY(-2px)}.note-button:disabled{cursor:not-allowed;opacity:.5}.practice-controls{display:flex;justify-content:center;margin-top:2rem}.practice-controls-row{display:flex;gap:1rem;justify-content:center}.control-button{border:none;border-radius:10px;cursor:pointer;font-size:.95rem;font-weight:600;overflow:hidden;padding:.75rem 1.25rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1);white-space:nowrap}.control-button:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.control-button:hover:before{left:100%}.start-button{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 4px 15px #667eea66;color:#fff}.start-button:hover:not(:disabled){box-shadow:0 6px 20px #667eea99;transform:translateY(-2px)}.stop-button{background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 4px 15px #f5576c66;color:#fff}.stop-button:hover{box-shadow:0 6px 20px #f5576c99;transform:translateY(-2px)}.repeat-button{background:linear-gradient(135deg,#4facfe,#00f2fe);box-shadow:0 4px 15px #4facfe66;color:#fff}.repeat-button:hover:not(:disabled){box-shadow:0 6px 20px #4facfe99;transform:translateY(-2px)}.reset-button{background:linear-gradient(135deg,#fa709a,#fee140);box-shadow:0 4px 15px #fa709a66;color:#fff}.reset-button:hover{box-shadow:0 6px 20px #fa709a99;transform:translateY(-2px)}.control-button:disabled{cursor:not-allowed;opacity:.5;transform:none}.help-text{color:#aaa;font-size:.9rem;margin-top:1rem;text-align:center}.settings-container{margin:0 auto;max-width:600px}.settings-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.settings-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.settings-panel h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.setting-item{align-items:center;background:#ffffff08;border-radius:10px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:1rem}.setting-item label{color:#fff;font-weight:600}.setting-item select{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;padding:.5rem 1rem}.progress-container{margin:0 auto;max-width:900px}.stats-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.stats-panel:before{background:linear-gradient(90deg,#0000,#ffffff4d,#0000);content:"";height:1px;left:0;position:absolute;right:0;top:0}.stats-panel h3{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#fff,#06b6d4);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:2.2rem;font-weight:600;margin-bottom:1.5rem}.stats-list{gap:1rem}.stat-item{background:#ffffff08;border-radius:10px;padding:1rem}.stat-header{justify-content:space-between;margin-bottom:.5rem}.stat-date{color:#fff;font-weight:600}.stat-time{color:#aaa}.stat-details{color:#ccc;display:flex;flex-direction:column;font-size:.9rem;gap:.25rem}@media (max-width:768px){.sight-reading-container{padding:1rem}.panels-container{grid-template-columns:1fr}.left-panel.desktop-only{display:none}.left-panel.mobile-only{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:1.5rem}.sight-reading-panel{padding:1.5rem}.note-buttons-grid{gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.practice-controls-row{flex-direction:row}.control-button{flex:1 1;font-size:.9rem;padding:.75rem 1rem}}.tunes-library-container{margin:0 auto;max-width:1200px;padding:20px;width:100%}.tunes-library-panel{-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;overflow:hidden;padding:2.5rem;position:relative;transition:all .4s cubic-bezier(.4,0,.2,1)}.tunes-library-panel h2{color:#fff;color:var(--text-primary,#fff);font-size:24px;margin:0 0 10px}.tunes-library-panel p{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:16px;margin:0 0 20px}.search-filters{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #ffffff26;border-radius:16px;margin-bottom:30px;padding:20px}.controls-container{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.search-box{width:100%}.search-input{background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fffffff2;font-size:15px;padding:10px 14px;transition:all .2s;width:100%}.search-input:focus{border-color:#4a9eff;border-color:var(--accent-color,#4a9eff);box-shadow:0 0 0 3px #4a9eff1a;outline:none}.filters-sort-row{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.filter-group,.sort-group{align-items:center;display:flex;gap:8px}.filter-select{background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fffffff2;cursor:pointer;font-size:14px;min-width:140px;padding:8px 12px;transition:all .2s}.filter-select:focus{border-color:#4a9eff;border-color:var(--accent-color,#4a9eff);box-shadow:0 0 0 3px #4a9eff1a;outline:none}.sort-group .filter-select{min-width:150px}.sort-order-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fffffff2;cursor:pointer;display:flex;font-size:16px;justify-content:center;min-width:40px;padding:8px 12px;transition:all .2s}.sort-order-btn:hover{background:#ffffff26;border-color:#06b6d480;transform:scale(1.05)}.clear-filters-btn{background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#fffffff2;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s;white-space:nowrap}.clear-filters-btn:hover{background:#ffffff26;border-color:#06b6d480;transform:translateY(-1px)}.view-toggle-group{align-items:center;display:flex;gap:4px}.view-toggle-btn{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:6px;color:#ffffffb3;cursor:pointer;display:flex;font-size:16px;justify-content:center;min-width:40px;padding:8px 12px;transition:all .2s}.view-toggle-btn:hover{background:#ffffff26;border-color:#06b6d480;color:#fffffff2}.view-toggle-btn.active{background:linear-gradient(135deg,#06b6d4,#3b82f6);border-color:#06b6d499;color:#fffffff2}.tunes-list{margin-top:20px}.tunes-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:30px}.tunes-list-view{margin-bottom:30px;margin-top:20px}.tune-list-item,.tunes-list-view{display:flex;flex-direction:column;gap:12px}.tune-list-item{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #fff3;border-radius:12px;cursor:pointer;padding:16px 20px;transition:all .2s}.tune-list-item:hover{background:#ffffff1f;border-color:#06b6d480;box-shadow:0 4px 12px #0003;transform:translateX(4px)}.tune-list-main{align-items:flex-start;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.tune-list-title-section{align-items:flex-start;display:flex;flex:1 1;flex-direction:column;min-width:200px}.tune-list-title{color:#fff;color:var(--text-primary,#fff);font-size:18px;font-weight:600;margin-bottom:4px;text-align:left}.tune-list-composer{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:14px;margin-top:2px;text-align:left}.tune-list-meta{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.tune-list-categorization{border-top:1px solid #fff3;display:flex;flex-wrap:wrap;gap:8px;padding-top:8px}.tune-list-tag{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;color:#ffffffb3;font-size:12px;font-weight:500;padding:4px 10px}.tune-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #fff3;border-radius:12px;cursor:pointer;padding:15px;position:relative;transition:all .2s ease}.tune-card:hover{background:#ffffff1f;border-color:#06b6d480;transform:translateY(-2px)}.tune-card.selected{background:#ffffff1f;border-color:#06b6d499}.tune-header{margin-bottom:8px}.tune-title{color:#fff;color:var(--text-primary,#fff);font-size:18px;font-weight:600}.tune-composer{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:14px;margin-bottom:12px}.tune-categorization{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;display:flex;flex-direction:column;font-size:12px;gap:4px;margin:12px 0;padding:10px}.categorization-item{align-items:baseline;color:#b0b0b0;color:var(--text-secondary,#b0b0b0);display:flex;gap:0;margin:0}.categorization-item .label{color:#ffffffe6;font-weight:600;margin-right:0;min-width:75px;padding-right:0;text-align:right}.categorization-item .value{color:#fff;color:var(--text-primary,#fff);flex:1 1;margin-left:0;padding-left:0}.tune-meta{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.difficulty-badge{border-radius:12px;font-size:11px;font-weight:600;padding:4px 10px;text-transform:uppercase}.difficulty-entry{background:#4caf50;color:#fff}.difficulty-intermediate{background:#ff9800;color:#fff}.difficulty-professional{background:#f44336;color:#fff}.star-rating{align-items:center;display:flex;gap:2px;position:relative}.star{color:#666;font-size:16px;transition:all .2s}.star.filled{color:gold}.star.interactive{border-radius:3px;cursor:pointer;padding:2px;-webkit-user-select:none;user-select:none}.star.interactive:hover{background:#ffd7001a;color:gold;transform:scale(1.2)}.star.interactive:active{transform:scale(1.1)}.star.interactive:focus{border-radius:3px;outline:2px solid #4a9eff;outline-offset:2px}.no-rating{color:#888;color:var(--text-tertiary,#888);font-size:11px;font-style:italic;margin-left:8px}.tune-details-expanded{animation:slideIn .3s ease-out;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);background:#ffffff1a;border:1px solid #fff3;border-radius:24px;box-shadow:0 8px 32px #00000026,inset 0 1px 0 #fff3;margin-top:30px;padding:30px}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.tune-details-header{grid-gap:15px;align-items:flex-start;border-bottom:1px solid #fff3;display:grid;gap:15px;grid-template-columns:1fr auto 1fr;margin-bottom:25px;padding-bottom:20px;position:relative}.return-details-btn{background:#ffffff14;border:1px solid #fff3;border-radius:6px;color:#fffffff2;cursor:pointer;font-size:14px;font-weight:500;justify-self:flex-start;padding:10px 16px;transition:all .2s;white-space:nowrap}.return-details-btn:hover{background:#ffffff1f;border-color:#06b6d480;transform:translateX(-2px)}.tune-details-title-section{grid-column:2;justify-self:center;text-align:center}.tune-details-expanded h3{color:#fff;color:var(--text-primary,#fff);font-size:28px;font-weight:700;margin:0 0 8px;text-align:center}.close-details-btn{align-items:center;background:none;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:32px;grid-column:3;height:40px;justify-content:center;justify-self:flex-end;line-height:1;padding:0;transition:all .2s;width:40px}.close-details-btn,.tune-details-composer{color:#b0b0b0;color:var(--text-secondary,#b0b0b0)}.tune-details-composer{font-size:16px;font-style:italic;margin:0;text-align:center}.close-details-btn:hover{background:#ffffff1a;color:#fffffff2;transform:scale(1.1)}.tune-details-content{display:flex;flex-direction:column;gap:20px}.tune-quick-info{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;display:flex;flex-wrap:wrap;gap:20px;padding:16px 20px}.quick-info-item{align-items:center;display:flex;flex-direction:row;gap:8px}.quick-info-label{color:#888;color:var(--text-tertiary,#888);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.quick-info-value{color:#fff;color:var(--text-primary,#fff);font-size:15px;font-weight:500}.tune-details-section{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:20px;text-align:left}.tune-details-section h4{color:#fff;color:var(--text-primary,#fff);font-size:16px;font-weight:600;margin:0 0 15px;text-align:left}.tune-description{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:15px;line-height:1.7;margin:0;max-width:none;text-align:left}.recommended-listening{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}.recording-item{align-items:center;background:#ffffff14;border:1px solid #fff3;border-radius:6px;display:flex;justify-content:space-between;padding:8px 12px;transition:all .2s}.recording-item:hover{background:#ffffff1f;border-color:#06b6d480;box-shadow:0 2px 8px #0003;transform:translateX(4px)}.recording-info{display:flex;flex:1 1;flex-direction:column;gap:2px;text-align:left}.recording-artist{color:#fff;color:var(--text-primary,#fff);font-size:14px;font-weight:600;line-height:1.3;text-align:left}.recording-album{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:12px;line-height:1.3;text-align:left}.youtube-link{align-items:center;background:red;border-radius:5px;box-shadow:0 2px 4px #ff00004d;color:#fff;display:inline-flex;font-size:12px;font-weight:500;gap:5px;margin-left:12px;padding:6px 12px;text-decoration:none;transition:all .2s;white-space:nowrap}.youtube-link:hover{background:#c00;box-shadow:0 4px 8px #f006;transform:scale(1.05)}.youtube-link:active{transform:scale(.98)}.lead-sheet-container{padding:12px 0;text-align:left}.lead-sheet-link{align-items:center;background:#ffffff14;border:1px solid #fff3;border-radius:8px;color:#fffffff2;display:inline-flex;font-size:15px;font-weight:500;gap:8px;padding:12px 18px;text-decoration:none;transition:all .2s}.lead-sheet-link:hover{background:#ffffff1f;border-color:#06b6d480;box-shadow:0 4px 8px #0003;transform:translateY(-2px)}.lead-sheet-link.search-link{background:#4a9eff1a;border-color:#4a9eff;border-color:var(--accent-color,#4a9eff)}.lead-sheet-link.search-link:hover{background:#4a9eff33}.lead-sheet-icon{font-size:18px}.lead-sheet-source{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:13px;font-style:italic;font-weight:400}.practice-notes{background:#ffffff14;border-left:4px solid #06b6d499;border-radius:6px;padding:15px}.practice-summary{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:14px;line-height:1.6;margin:0 0 15px}.practice-tip{background:#4a9eff1a;border-radius:6px;color:#fff;color:var(--text-primary,#fff);font-size:14px;line-height:1.6;margin:0;padding:12px}.categorization-details{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;margin:20px 0;padding:15px}.categorization-details h4{color:#fff;color:var(--text-primary,#fff);font-size:16px;margin:0 0 15px}.categorization-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.categorization-grid div{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-size:14px}.categorization-grid strong{color:#fff;color:var(--text-primary,#fff);margin-right:8px}.familiarity-selector{border-top:1px solid #444;border-top:1px solid var(--border-color,#444);margin-top:20px;padding-top:20px}.familiarity-selector label{display:block;margin-bottom:8px}.familiarity-select,.familiarity-selector label{color:#fff;color:var(--text-primary,#fff);font-size:14px}.familiarity-select{background:#2a2a2a;background:var(--input-bg,#2a2a2a);border:2px solid #444;border:2px solid var(--border-color,#444);border-radius:6px;cursor:pointer;padding:10px 12px;width:100%}.familiarity-select:focus{border-color:#4a9eff;border-color:var(--accent-color,#4a9eff);outline:none}.empty-state{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-style:italic;padding:40px 20px;text-align:center}.progress-content{margin-top:20px}.progress-summary{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:30px}.stat-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #fff3;border-radius:12px;padding:20px;text-align:center;transition:all .2s}.stat-card:hover{background:#ffffff1f;border-color:#06b6d480;transform:translateY(-2px)}.stat-card.highlight{background:linear-gradient(135deg,#4a9eff,#2196f3);border-color:#4a9eff}.stat-card .stat-label{color:#ffffffb3;font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-align:center;text-transform:uppercase}.stat-card.highlight .stat-label{color:#ffffffe6}.stat-card .stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#06b6d4,#3b82f6);-webkit-background-clip:text;background-clip:text;font-size:28px;font-weight:700;text-align:center}.stat-card.highlight .stat-value{-webkit-text-fill-color:#fff;color:#fff}.stats-panels{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:20px}.stats-panel{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffff14;border:1px solid #fff3;border-radius:12px;padding:20px}.stats-panel h3{border-bottom:1px solid #fff3;color:#fffffff2;font-size:18px;margin:0 0 20px;padding-bottom:10px}.stats-list{display:flex;flex-direction:column;gap:15px}.stat-item{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;padding:12px}.stat-header{align-items:center;display:flex;gap:12px;justify-content:center;margin-bottom:10px;text-align:center}.stat-header .stat-label{color:#fffffff2;font-size:14px;font-weight:600}.stat-count{color:#ffffffb3;font-size:12px}.progress-bars{display:flex;flex-direction:column;gap:8px}.progress-bar-group{align-items:center;display:flex;gap:10px;justify-content:center}.progress-bar-label{color:#ffffffb3;font-size:11px;font-weight:600;letter-spacing:.5px;min-width:70px;text-align:center;text-transform:uppercase}.progress-bar-container{background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;flex:1 1;height:20px;overflow:hidden;position:relative}.progress-bar-fill{border-radius:10px;height:100%;transition:width .3s ease}.progress-bar-fill.repertoire{background:linear-gradient(90deg,#666,#888)}.progress-bar-fill.progress{background:linear-gradient(90deg,#4a9eff,#2196f3);box-shadow:0 0 10px #4a9eff4d}.progress-percentage{color:#fffffff2;font-size:12px;font-weight:600;min-width:50px;text-align:center}@media (max-width:768px){.tunes-library-container{padding:12px}.tunes-library-panel{border-radius:8px;padding:16px}.tunes-library-panel h2{font-size:20px;margin-bottom:8px}.tunes-library-panel p{font-size:14px;margin-bottom:16px}.search-filters{margin-bottom:20px;padding:12px}.controls-container{gap:10px;margin-bottom:16px}.search-input{font-size:16px;padding:10px 12px}.filters-sort-row{align-items:stretch;flex-direction:column;gap:8px}.filter-group,.filter-select,.sort-group{min-width:100%;width:100%}.filter-select{font-size:16px;padding:10px 12px}.sort-group .filter-select{min-width:100%}.sort-order-btn{min-width:50px;padding:10px}.clear-filters-btn{font-size:14px;padding:10px 16px;width:100%}.view-toggle-group{justify-content:center;width:100%}.view-toggle-btn{flex:1 1;min-width:0}.tunes-grid{gap:12px;grid-template-columns:1fr}.tune-card{padding:12px}.tune-title{font-size:16px}.tune-composer{font-size:13px}.tune-categorization{font-size:11px;padding:8px}.categorization-item .label{font-size:11px;min-width:65px}.categorization-item .value{font-size:11px}.tune-list-item{padding:12px 16px}.tune-list-title{font-size:16px}.tune-list-composer{font-size:13px}.tune-list-main{flex-direction:column;gap:12px}.tune-list-title-section{min-width:100%}.tune-list-meta{justify-content:space-between;width:100%}.tune-details-expanded{margin-top:20px;padding:16px}.tune-details-header{gap:12px;grid-template-columns:1fr;padding-bottom:16px}.return-details-btn{font-size:14px;justify-self:stretch;padding:10px 16px;width:100%}.tune-details-title-section{grid-column:1;order:2}.tune-details-expanded h3{font-size:22px;margin-bottom:6px}.tune-details-composer{font-size:14px}.close-details-btn{font-size:28px;grid-column:1;height:36px;justify-self:flex-end;order:1;width:36px}.tune-quick-info{flex-direction:column;gap:12px;padding:12px 16px}.quick-info-item{justify-content:space-between;width:100%}.tune-details-section{padding:16px}.tune-details-section h4{font-size:15px;margin-bottom:12px}.tune-description{font-size:14px;line-height:1.6}.recording-item{align-items:flex-start;flex-direction:column;gap:8px;padding:10px}.recording-info{width:100%}.youtube-link{font-size:13px;margin-left:0;margin-top:4px;padding:8px 12px}.lead-sheet-link,.youtube-link{justify-content:center;width:100%}.lead-sheet-link{font-size:14px;padding:10px 16px}.progress-summary{gap:10px;grid-template-columns:repeat(2,1fr)}.stat-card{padding:16px}.stat-card .stat-label{font-size:11px}.stat-card .stat-value{font-size:24px}.stats-panels{gap:16px;grid-template-columns:1fr}.stats-panel{padding:16px}.stats-panel h3{font-size:16px;margin-bottom:16px}.stat-item{padding:10px}.progress-bar-label{font-size:10px;min-width:60px}.progress-percentage{font-size:11px;min-width:40px}.categorization-grid{grid-template-columns:1fr}.empty-state{font-size:14px;padding:30px 16px}.tab-navigation{flex-wrap:wrap;gap:8px;padding:12px}.tab-button{flex:1 1;font-size:14px;min-width:0;padding:10px 12px}.tab-button.mobile-only{display:block}.hero-section{padding:16px 12px}.hero-header h1{font-size:24px}.nav-bar{padding:12px}.return-button{font-size:14px;padding:8px 12px}}@media (min-width:769px){.mobile-only{display:none}}
/*# sourceMappingURL=main.9818c51d.css.map*/