.music-notation{margin:20px 0;text-align:center}.music-notation h4{margin-bottom:15px;color:#333;font-size:18px}.notation-container{border:2px solid #ddd;border-radius:12px;padding:15px;background:white;overflow-x:auto;min-height:320px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:900px}.notation-container svg{max-width:100%;height:auto}.device-info{background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%);border:2px solid #2196f3;border-radius:10px;padding:15px;margin:20px 0;text-align:center;box-shadow:0 2px 10px #2196f333}.device-info p{margin:5px 0;color:#1565c0;font-weight:500}.device-info small{color:#1976d2;opacity:.8}.song-selection{margin:20px 0;text-align:center}.song-selection h3{margin-bottom:15px;color:#333}.song-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:20px}.song-buttons button{padding:12px 20px;font-size:14px;border:2px solid #007bff;border-radius:8px;cursor:pointer;background:white;color:#007bff;transition:all .2s ease;font-weight:500}.song-buttons button:hover{background:#f8f9fa;transform:translateY(-2px)}.song-buttons button.selected{background:#007bff;color:#fff;box-shadow:0 4px 8px #007bff4d}.current-song{text-align:center;margin:15px 0;padding:10px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a}.current-song h4{margin:0 0 10px;font-size:18px}.song-info{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.difficulty{padding:4px 12px;border-radius:20px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.difficulty.beginner{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.difficulty.intermediate{background:#fff3cd;color:#856404;border:1px solid #ffeaa7}.difficulty.advanced{background:#f8d7da;color:#721c24;border:1px solid #f5c6cb}.song-info p{margin:0;font-size:14px;opacity:.9;font-style:italic}.controls{margin:20px 0;text-align:center}.controls button{margin:0 10px;padding:12px 24px;font-size:16px;border:none;border-radius:8px;cursor:pointer;background:#28a745;color:#fff;font-weight:600;transition:all .2s ease}.controls button:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.control-buttons-top{display:flex;justify-content:center;gap:15px;margin:20px 0;padding:15px}.top-control-btn{padding:8px 16px;font-size:14px;border:1px solid #6c757d;border-radius:6px;cursor:pointer;background:white;color:#495057;font-weight:500;transition:all .2s ease;min-width:80px}.top-control-btn:hover:not(:disabled){background:#f8f9fa;border-color:#495057;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.top-control-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6;opacity:.7}.learning-info{margin:20px 0;padding:20px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:10px;text-align:center;border:2px solid #dee2e6}.learning-info p{margin:10px 0;font-size:16px;font-weight:500}.learning-info .feedback{font-weight:700;color:#28a745;font-size:18px;text-shadow:1px 1px 2px rgba(0,0,0,.1)}.wake-lock-status{font-size:14px;color:#17a2b8;font-weight:500;margin:5px 0!important;opacity:.9}.progress-bar{width:100%;height:10px;background:#dee2e6;border-radius:5px;margin-top:15px;overflow:hidden}.progress{height:100%;background:linear-gradient(90deg,#28a745,#20c997);transition:width .3s ease;border-radius:5px}.keyboard-container{margin:30px 0;padding:20px;background:#f8f9fa;border-radius:15px;border:2px solid #dee2e6}.keyboard-labels{display:flex;justify-content:space-around;margin-bottom:15px}.octave-label{text-align:center;font-weight:700;color:#495057;font-size:14px;text-transform:uppercase;letter-spacing:1px;padding:8px 16px;border-radius:8px;flex:1;margin:0 5px}.octave-label.left-hand{background:linear-gradient(135deg,#e1f5fe 0%,#b3e5fc 100%);border:2px solid #03a9f4;color:#0277bd}.octave-label.right-hand{background:linear-gradient(135deg,#f3e5f5 0%,#e1bee7 100%);border:2px solid #9c27b0;color:#7b1fa2}.horizontal-keyboard{display:flex;justify-content:center;gap:0;overflow-x:auto;padding:10px 0}.keyboard{display:flex;gap:2px;margin:0}.key{width:27px;height:180px;border:2px solid #333;margin:1px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(180deg,#ffffff 0%,#f8f9fa 100%);cursor:pointer;transition:all .2s ease;font-weight:700;font-size:10px;padding-bottom:8px;border-radius:0 0 8px 8px;box-shadow:0 2px 5px #0000001a}.key.left-hand{background:linear-gradient(180deg,#e1f5fe 0%,#b3e5fc 100%);border-color:#03a9f4;color:#0277bd}.key.left-hand:hover{background:linear-gradient(180deg,#b3e5fc 0%,#81d4fa 100%);border-color:#0288d1}.key.right-hand{background:linear-gradient(180deg,#f3e5f5 0%,#e1bee7 100%);border-color:#9c27b0;color:#7b1fa2}.key.right-hand:hover{background:linear-gradient(180deg,#e1bee7 0%,#ce93d8 100%);border-color:#8e24aa}.key:hover{background:linear-gradient(180deg,#f8f9fa 0%,#e9ecef 100%);transform:translateY(-2px);box-shadow:0 4px 10px #00000026}.key.active{background:linear-gradient(180deg,#ffeb3b 0%,#ffc107 100%);transform:translateY(3px);box-shadow:0 1px 3px #0003;border-color:#f57c00}.key.expected{background:linear-gradient(180deg,#e3f2fd 0%,#bbdefb 100%);border-color:#2196f3;animation:pulse 1.5s infinite;box-shadow:0 0 15px #2196f366}.key.playing{background:linear-gradient(180deg,#e8f5e8 0%,#c8e6c8 100%);border-color:#4caf50;animation:playing-pulse .5s ease-in-out;box-shadow:0 0 20px #4caf5099}@keyframes pulse{0%{opacity:1;box-shadow:0 0 15px #2196f366}50%{opacity:.8;box-shadow:0 0 25px #2196f399}to{opacity:1;box-shadow:0 0 15px #2196f366}}@keyframes playing-pulse{0%{transform:scale(1);box-shadow:0 0 20px #4caf5099}50%{transform:scale(1.05);box-shadow:0 0 30px #4caf50cc}to{transform:scale(1);box-shadow:0 0 20px #4caf5099}}.home-page{text-align:center;padding:40px 20px;min-height:80vh;display:flex;flex-direction:column;justify-content:center;align-items:center}.home-page h1{font-size:3rem;margin-bottom:10px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.home-page p{font-size:1.2rem;color:#6c757d;margin-bottom:50px}.navigation-icons{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:30px;max-width:800px;width:100%}.nav-card{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border:2px solid #dee2e6;border-radius:20px;padding:40px 30px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #0000001a;text-align:center}.nav-card:hover{transform:translateY(-10px);box-shadow:0 10px 30px #0003;border-color:#007bff}.nav-card:hover .nav-icon{transform:scale(1.1)}.nav-icon{font-size:4rem;margin-bottom:20px;transition:transform .3s ease}.nav-card h3{font-size:1.5rem;margin-bottom:15px;color:#333;font-weight:600}.nav-card p{font-size:1rem;color:#6c757d;margin:0;line-height:1.5}.back-button-container{position:sticky;top:0;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:15px 20px;border-bottom:1px solid #dee2e6;z-index:100;display:flex;justify-content:space-between;align-items:center;gap:20px}.back-button{padding:10px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease}.back-button:hover{background:#545b62;transform:translate(-5px)}.fullscreen-button{padding:10px 15px;background:#28a745;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.piano-controls-header .fullscreen-button{padding:10px 12px;margin:0}.fullscreen-button:hover{background:#218838;transform:scale(1.05)}.piano-controls-header{display:flex;gap:15px;align-items:center}.play-dropdown-container{position:relative;display:inline-block}.dropdown-btn{background:#007bff;color:#fff;border:none;border-radius:6px;padding:10px 12px;cursor:pointer;font-size:18px;font-weight:700;transition:all .2s ease;line-height:1;min-width:40px}.dropdown-btn:hover{background:#0056b3;transform:translateY(-2px)}.dropdown-btn:disabled{background:#6c757d;cursor:not-allowed;transform:none}.play-dropdown-menu{position:absolute;top:100%;left:0;background:white;border:2px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:150px;margin-top:5px}.dropdown-item{display:block;width:100%;padding:12px 16px;background:none;border:none;text-align:left;cursor:pointer;transition:background-color .2s ease;font-size:14px;color:#333}.dropdown-item:hover{background-color:#f8f9fa}.dropdown-item:disabled{color:#6c757d;cursor:not-allowed;background-color:transparent}.header-control-btn{padding:12px 24px;font-size:16px;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:all .2s ease;display:flex;align-items:center;gap:8px}.header-control-btn.play-btn{background:linear-gradient(135deg,#e8f5e8 0%,#c8e6c8 100%);color:#2e7d32;border:2px solid #4caf50}.header-control-btn.play-btn:hover:not(:disabled){background:linear-gradient(135deg,#c8e6c8 0%,#a5d6a7 100%);transform:translateY(-2px);box-shadow:0 4px 12px #4caf504d}.header-control-btn.practice-btn{background:linear-gradient(135deg,#f3e5f5 0%,#e1bee7 100%);color:#7b1fa2;border:2px solid #9c27b0}.header-control-btn.practice-btn:hover:not(:disabled){background:linear-gradient(135deg,#e1bee7 0%,#ce93d8 100%);transform:translateY(-2px);box-shadow:0 4px 12px #9c27b04d}.header-control-btn.reset-btn{background:linear-gradient(135deg,#fff3e0 0%,#ffcc02 100%);color:#f57c00;border:2px solid #ff9800}.header-control-btn.reset-btn:hover:not(:disabled){background:linear-gradient(135deg,#ffcc02 0%,#ffa726 100%);transform:translateY(-2px);box-shadow:0 4px 12px #ff98004d}.header-control-btn:disabled{background:#e9ecef!important;color:#6c757d!important;cursor:not-allowed!important;border-color:#dee2e6!important;opacity:.7;transform:none!important;box-shadow:none!important}.law-placeholder{text-align:center;padding:40px 20px;max-width:800px;margin:0 auto}.law-placeholder h2{font-size:2.5rem;color:#333;margin-bottom:20px}.planned-features{background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:15px;padding:30px;margin:30px 0;text-align:left}.planned-features h3{color:#495057;margin-bottom:20px;text-align:center}.planned-features ul{list-style:none;padding:0}.planned-features li{background:white;margin:10px 0;padding:15px;border-radius:8px;border-left:4px solid #007bff;box-shadow:0 2px 5px #0000000d}.placeholder-note{background:#fff3cd;border:1px solid #ffeaa7;border-radius:8px;padding:20px;margin-top:30px}.placeholder-note em{color:#856404;font-style:italic}.home-footer{margin-top:auto;padding:30px 20px 20px;border-top:1px solid #dee2e6;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%)}.footer-content{display:flex;justify-content:space-between;align-items:center;max-width:800px;margin:0 auto;flex-wrap:wrap;gap:15px}.footer-content p{margin:0;color:#6c757d;font-size:.9rem}.contact-button{padding:10px 20px;background:#007bff;color:#fff;border:none;border-radius:25px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s ease;box-shadow:0 2px 8px #007bff4d}.contact-button:hover{background:#0056b3;transform:translateY(-2px);box-shadow:0 4px 15px #007bff66}.contact-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.contact-modal{background:white;border-radius:15px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-50px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.contact-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px 15px;border-bottom:1px solid #dee2e6;background:linear-gradient(135deg,#007bff 0%,#0056b3 100%);color:#fff;border-radius:15px 15px 0 0}.contact-header h2{margin:0;font-size:1.5rem}.close-button{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:5px;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.close-button:hover{background:rgba(255,255,255,.2)}.contact-form{padding:25px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#333}.form-group input,.form-group textarea{width:100%;padding:12px;border:2px solid #dee2e6;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s ease;box-sizing:border-box}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.form-group textarea{resize:vertical;min-height:100px}.form-actions{display:flex;gap:15px;margin-bottom:20px}.send-button{flex:1;padding:12px 20px;background:#28a745;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s ease}.send-button:hover{background:#218838;transform:translateY(-2px);box-shadow:0 4px 12px #28a7454d}.cancel-button{flex:1;padding:12px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.cancel-button:hover{background:#545b62;transform:translateY(-2px)}.contact-info{text-align:center;padding:15px;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.contact-info small{color:#6c757d;line-height:1.4}.canadian-law-container{padding:20px;max-width:1200px;margin:0 auto}.canadian-law-container h1{text-align:center;margin-bottom:30px;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.course-overview{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-bottom:40px;padding:20px;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-radius:15px;border:2px solid #dee2e6}.progress-overview h3,.week-navigation h3{margin-bottom:15px;color:#495057;text-align:center}.overall-progress{text-align:center}.overall-progress p{margin-top:10px;font-weight:600;color:#495057}.week-buttons{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.week-button{padding:10px 20px;background:white;border:2px solid #007bff;border-radius:8px;color:#007bff;cursor:pointer;font-weight:500;transition:all .2s ease}.week-button:hover{background:#f8f9fa;transform:translateY(-2px)}.week-button.active{background:#007bff;color:#fff;box-shadow:0 4px 8px #007bff4d}.learning-plan{background:white;border-radius:15px;padding:30px;box-shadow:0 4px 15px #0000001a}.learning-plan h2{text-align:center;margin-bottom:30px;color:#495057;font-size:1.5rem}.days-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.day-card{background:linear-gradient(135deg,#ffffff 0%,#f8f9fa 100%);border:2px solid #dee2e6;border-radius:12px;padding:20px;transition:all .3s ease;box-shadow:0 2px 8px #0000001a}.day-card:hover{transform:translateY(-5px);box-shadow:0 6px 20px #00000026}.day-card.completed{border-color:#28a745;background:linear-gradient(135deg,#d4edda 0%,#c3e6cb 100%)}.day-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.day-number{font-weight:700;color:#007bff;font-size:14px;background:white;padding:5px 12px;border-radius:20px;border:1px solid #007bff}.day-card.completed .day-number{color:#28a745;border-color:#28a745}.complete-button{background:none;border:none;font-size:1.5rem;cursor:pointer;transition:transform .2s ease}.complete-button:hover{transform:scale(1.2)}.day-card h4{margin:0 0 15px;color:#333;font-size:1.1rem;line-height:1.4}.resource-link{display:inline-block;padding:8px 16px;background:#007bff;color:#fff;text-decoration:none;border-radius:8px;font-size:14px;font-weight:500;transition:all .2s ease}.resource-link:hover{background:#0056b3;transform:translateY(-2px);text-decoration:none;color:#fff}.exercise-label{display:inline-block;padding:8px 16px;background:#ffc107;color:#856404;border-radius:8px;font-size:14px;font-weight:500;border:1px solid #ffeb3b}.resource-placeholder{background:linear-gradient(135deg,#fff3cd 0%,#ffeaa7 100%);border:2px solid #ffc107;border-radius:8px;padding:15px;text-align:center}.placeholder-label{display:block;font-weight:600;color:#856404;margin-bottom:8px;font-size:14px}.search-hint{font-size:12px;color:#6c757d;margin:8px 0;font-style:italic;line-height:1.3}.search-button{padding:6px 14px;background:#6c757d;color:#fff;border:none;border-radius:6px;font-size:12px;font-weight:500;cursor:not-allowed;opacity:.7;margin-top:5px}.search-button:disabled{background:#6c757d;cursor:not-allowed}.day-card .resource-placeholder{border-left:4px solid #ffc107}.day-card .exercise-label{border-left:4px solid #17a2b8}@media (max-width: 768px){.home-page h1{font-size:2.5rem}.navigation-icons{grid-template-columns:1fr;gap:20px}.nav-card{padding:30px 20px}.nav-icon{font-size:3rem}.song-buttons{flex-direction:column;align-items:center}.song-buttons button{width:200px}.controls button{margin:5px;padding:10px 16px}.keyboard-labels{flex-direction:column;gap:5px}.octave-label{font-size:12px;padding:6px 12px}.horizontal-keyboard{flex-direction:column;align-items:center;gap:10px}.keyboard{justify-content:center}.key{width:19px;height:120px;font-size:7px}.law-placeholder h2{font-size:2rem}.planned-features{padding:20px;text-align:center}.footer-content{flex-direction:column;text-align:center;gap:10px}.back-button-container{flex-direction:column;gap:10px;padding:10px 15px}.piano-controls-header .fullscreen-button{margin:0;padding:8px 10px}.piano-controls-header{gap:8px;justify-content:center;flex-wrap:wrap}.dropdown-btn{padding:8px 10px;font-size:16px}.play-dropdown-menu{min-width:120px}.header-control-btn{padding:10px 16px;font-size:14px;min-width:70px}.contact-modal{width:95%;margin:10px}.contact-header{padding:15px 20px 10px}.contact-form{padding:20px}.form-actions{flex-direction:column;gap:10px}.canadian-law-container{padding:15px}.course-overview{grid-template-columns:1fr;gap:20px;padding:15px}.week-buttons{flex-direction:column;align-items:center}.week-button{width:120px}.learning-plan{padding:20px}.days-grid{grid-template-columns:1fr;gap:15px}.day-card{padding:15px}}.piano-container{display:flex;min-height:100vh;gap:0}.side-panel{width:350px;min-width:350px;background:white;color:#333;padding:20px;overflow-y:auto;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;gap:20px;position:relative;transition:all .3s ease}.side-panel.collapsed{width:50px;min-width:50px;padding:0;overflow:hidden;background:linear-gradient(135deg,#f8f9fa 0%,#e9ecef 100%);border-right:3px solid #007bff}.panel-toggle-btn{position:fixed;top:20px;left:330px;width:40px;height:40px;background:white;border:2px solid #e0e0e0;border-radius:0 8px 8px 0;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:#495057;z-index:100;transition:all .3s ease;box-shadow:2px 2px 8px #0000001a}.panel-toggle-btn:hover{background:#f8f9fa;color:#007bff;border-color:#007bff;transform:translate(2px)}.side-panel.collapsed .panel-toggle-btn{left:5px;border-radius:8px}.side-panel h3{margin:0 0 20px;text-align:center;font-size:1.5rem;font-weight:600;color:#333}.main-content{flex:1;padding:20px;background:#f8f9fa;min-height:100vh;overflow-y:auto}.difficulties{flex:1;display:flex;flex-direction:column;gap:8px}.difficulty-section{margin-bottom:5px}.difficulty-button{width:100%;padding:12px 16px;background:#f8f9fa;border:1px solid #e0e0e0;border-radius:4px;color:#333;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;display:flex;align-items:center;justify-content:space-between;text-align:left}.difficulty-button:hover{background:#e9ecef}.difficulty-button.expanded{background:#e9ecef;border-color:#ced4da}.difficulty-name{flex:1}.song-count{font-size:12px;color:#6c757d;margin-right:8px}.expand-arrow{font-size:12px;color:#6c757d;transition:transform .2s ease}.difficulty-button.expanded .expand-arrow{transform:rotate(90deg)}.songs-list{margin-top:8px;margin-left:20px;display:flex;flex-direction:column;gap:4px;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.song-item-container{display:flex;gap:4px;align-items:center;margin-bottom:4px}.song-button{padding:8px 12px;background:white;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:12px;cursor:pointer;transition:background-color .2s ease;text-align:left;flex:1}.song-button:hover{background:#f8f9fa}.song-button.selected{background:#007bff;border-color:#007bff;color:#fff;font-weight:500}.share-song-btn{padding:6px 10px;background:white;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:34px}.share-song-btn:hover{background:#007bff;border-color:#007bff;transform:scale(1.05)}.current-song-info{background:#f8f9fa;border-radius:4px;padding:16px;border:1px solid #e0e0e0}.current-song-info h4{margin:0 0 8px;font-size:14px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px}.song-title{font-size:16px;font-weight:600;margin-bottom:8px;line-height:1.3;color:#212529}.song-details{display:flex;flex-direction:column;gap:8px}.difficulty{display:inline-block;padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;align-self:flex-start;background:#e9ecef;color:#495057;border:1px solid #ced4da}.song-description{font-size:12px;line-height:1.4;color:#6c757d;margin:0}.controls{display:flex;flex-direction:column;gap:10px;margin-top:auto}.control-btn{padding:12px 16px;border:1px solid #ced4da;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .2s ease;text-align:center;width:100%;background:white;color:#495057}.control-btn:hover:not(:disabled){background:#f8f9fa}.control-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6}@media (max-width: 1200px){.side-panel{width:300px;min-width:300px}}@media (max-width: 900px){.piano-container{flex-direction:column;min-height:auto}.side-panel{width:100%;min-width:100%;order:2;max-height:50vh}.main-content{order:1;min-height:50vh}}@media (max-width: 600px){.side-panel{padding:15px;max-height:40vh}.main-content{padding:15px}.control-btn{padding:10px 14px;font-size:13px}}.recording-section{background:#fff;border-radius:8px;padding:20px;border:2px solid #e0e0e0;box-shadow:0 2px 8px #0000000d}.recording-section h4{margin:0 0 16px;font-size:16px;font-weight:600;color:#333;text-align:center}.recording-button{width:100%;padding:12px 16px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-align:center;margin:6px 0}.recording-button.start-recording{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;box-shadow:0 2px 8px #28a7454d}.recording-button.start-recording:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.recording-button.stop-recording{background:linear-gradient(135deg,#dc3545 0%,#e73c7e 100%);color:#fff;box-shadow:0 2px 8px #dc35454d}.recording-button.stop-recording:hover:not(:disabled){background:linear-gradient(135deg,#c82333 0%,#dc2f6e 100%);transform:translateY(-2px);box-shadow:0 4px 12px #dc354566}.recording-button.playback{background:linear-gradient(135deg,#007bff 0%,#6610f2 100%);color:#fff;box-shadow:0 2px 8px #007bff4d}.recording-button.playback:hover:not(:disabled){background:linear-gradient(135deg,#0056b3 0%,#520dc2 100%);transform:translateY(-2px);box-shadow:0 4px 12px #007bff66}.recording-button.new-recording{background:linear-gradient(135deg,#ffc107 0%,#fd7e14 100%);color:#212529;box-shadow:0 2px 8px #ffc1074d}.recording-button.new-recording:hover:not(:disabled){background:linear-gradient(135deg,#e0a800 0%,#ea6100 100%);transform:translateY(-2px);box-shadow:0 4px 12px #ffc10766}.recording-button.request-song{background:linear-gradient(135deg,#6f42c1 0%,#e83e8c 100%);color:#fff;font-size:12px;padding:10px 14px;margin-top:10px;box-shadow:0 2px 8px #6f42c14d}.recording-button.request-song:hover:not(:disabled){background:linear-gradient(135deg,#5a2d91 0%,#d21f7c 100%);transform:translateY(-2px);box-shadow:0 4px 12px #6f42c166}.recording-button:disabled{background:#e9ecef!important;color:#6c757d!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}.recording-active{text-align:center;padding:10px 0}.recording-message{font-size:14px;color:#495057;margin:0 0 12px;font-weight:500}.recorded-song-controls{display:flex;flex-direction:column;gap:8px}.recorded-info{font-size:12px;color:#28a745;margin:0 0 8px;text-align:center;font-weight:500}@media (max-width: 600px){.recording-section{padding:15px}.recording-button{padding:10px 14px;font-size:13px}.recording-button.request-song{font-size:11px;padding:8px 12px}}.practice-instructions{font-size:16px;color:#495057;margin:0 0 15px;text-align:center;line-height:1.4}.practice-instructions strong{color:#007bff;font-weight:600}.practice-controls{display:flex;justify-content:center;margin:15px 0}.practice-check-btn{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d}.practice-check-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.practice-check-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.practice-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.practice-popup{background:white;border-radius:15px;width:90%;max-width:500px;box-shadow:0 10px 40px #0000004d;animation:modalSlideIn .3s ease-out}.practice-popup-header{display:flex;justify-content:space-between;align-items:center;padding:20px 25px 15px;border-bottom:1px solid #dee2e6;background:linear-gradient(135deg,#9c27b0 0%,#7b1fa2 100%);color:#fff;border-radius:15px 15px 0 0}.practice-popup-header h3{margin:0;font-size:1.5rem}.practice-close-btn{background:transparent;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:5px;border-radius:50%;width:35px;height:35px;display:flex;align-items:center;justify-content:center;transition:background-color .2s ease}.practice-close-btn:hover{background:rgba(255,255,255,.2)}.practice-popup-content{padding:25px;text-align:center}.save-form{text-align:left;margin-bottom:15px}.save-form label{display:block;margin-bottom:8px;color:#495057;font-size:15px}.song-input{width:100%;padding:10px 12px;border:2px solid #ddd;border-radius:6px;font-size:15px;box-sizing:border-box;transition:border-color .2s ease;font-family:inherit}.song-input:focus{outline:none;border-color:#4caf50}.song-input::placeholder{color:#aaa}.delete-popup{max-width:600px;max-height:80vh}.delete-songs-list{max-height:400px;overflow-y:auto;border:2px solid #ddd;border-radius:8px;padding:10px;background:#f9f9f9}.delete-song-item{padding:8px;border-bottom:1px solid #e0e0e0}.delete-song-item:last-child{border-bottom:none}.delete-song-label{display:flex;align-items:center;cursor:pointer;gap:12px}.delete-checkbox{width:20px;height:20px;cursor:pointer}.song-name-delete{flex:1;font-weight:500;color:#333;display:flex;align-items:center;gap:8px}.song-difficulty-delete{font-size:13px;color:#666;padding:4px 8px;background:#e0e0e0;border-radius:4px}.custom-badge{background:linear-gradient(135deg,#4CAF50 0%,#45a049 100%);color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.original-badge{background:linear-gradient(135deg,#2196F3 0%,#1976D2 100%);color:#fff;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600}.close-recording-btn{background:rgba(220,53,69,.1);border:2px solid #dc3545;color:#dc3545;width:32px;height:32px;border-radius:50%;font-size:24px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;padding:0}.close-recording-btn:hover{background:#dc3545;color:#fff;transform:scale(1.1)}.practice-popup-content p{margin:0 0 15px;color:#495057;font-size:16px;line-height:1.4}.practice-popup-actions{display:flex;gap:15px;margin-top:25px}.practice-start-btn{flex:1;padding:12px 20px;background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d}.practice-start-btn:hover{background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.practice-start-btn.reset-btn{background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%);box-shadow:0 2px 8px #ff98004d;font-size:16px;font-weight:600}.practice-start-btn.reset-btn:hover{background:linear-gradient(135deg,#f57c00 0%,#ef6c00 100%);transform:translateY(-2px);box-shadow:0 4px 12px #ff980066}.practice-dismiss-btn{flex:1;padding:12px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s ease}.practice-dismiss-btn:hover{background:#545b62;transform:translateY(-2px)}.practice-info{background:linear-gradient(135deg,#e3f2fd 0%,#bbdefb 100%);border:1px solid #2196f3;border-radius:8px;padding:12px 16px;font-size:14px;color:#1565c0;margin:15px 0!important;font-weight:500;text-align:center}.practice-button-container{display:flex;justify-content:center;margin:20px 0}.practice-main-btn{background:linear-gradient(135deg,#f3e5f5 0%,#e1bee7 100%);color:#7b1fa2;border:2px solid #9c27b0;border-radius:8px;padding:12px 48px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #9c27b04d;min-width:200px}.practice-main-btn:hover:not(:disabled){background:linear-gradient(135deg,#e1bee7 0%,#ce93d8 100%);transform:translateY(-2px);box-shadow:0 4px 12px #9c27b066}.practice-main-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;border-color:#dee2e6;transform:none;box-shadow:none}.check-order-btn{background:linear-gradient(135deg,#28a745 0%,#20c997 100%);color:#fff;border:none;border-radius:8px;padding:12px 24px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #28a7454d;min-width:200px}.check-order-btn:hover:not(:disabled){background:linear-gradient(135deg,#218838 0%,#1fa587 100%);transform:translateY(-2px);box-shadow:0 4px 12px #28a74566}.check-order-btn:disabled{background:#e9ecef;color:#6c757d;cursor:not-allowed;transform:none;box-shadow:none}.feedback-button{position:fixed;right:20px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:right center;background:linear-gradient(135deg,#007bff 0%,#0056b3 100%);color:#fff;border:none;border-radius:8px 8px 0 0;padding:12px 24px;font-size:14px;font-weight:600;cursor:pointer;box-shadow:-2px -2px 8px #007bff4d;transition:all .3s ease;z-index:1000;letter-spacing:1px}.feedback-button:hover{background:linear-gradient(135deg,#0056b3 0%,#003d82 100%);box-shadow:-4px -4px 12px #007bff66;transform:translateY(-50%) rotate(-90deg) translateY(-5px)}@media (max-width: 600px){.practice-instructions{font-size:14px}.practice-check-btn{padding:10px 20px;font-size:14px}.practice-popup{width:95%;margin:10px}.practice-popup-header{padding:15px 20px 10px}.practice-popup-content{padding:20px}.practice-popup-actions{flex-direction:column;gap:10px}.practice-main-btn,.check-order-btn{padding:10px 20px;font-size:14px;min-width:150px}.feedback-button{font-size:12px;padding:10px 18px}}
