body{margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App{display:flex;flex-direction:column;min-height:100vh}.App-header{background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 10px #0000001a;color:#fff;padding:.5rem 1rem}.header-content{display:flex;flex-direction:column;gap:.5rem;margin:0 auto;max-width:1200px}.header-text{text-align:center}.App-header h1{font-size:1.5rem;font-weight:700;margin-bottom:.15rem}.App-header p{font-size:.85rem;opacity:.9}.header-tabs{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;padding:0 .75rem}@media (max-width:768px){.header-content{gap:.5rem}.App-header h1{font-size:1.25rem}.App-header p{font-size:.75rem}.header-tabs{gap:.4rem}.header-tabs button{font-size:.7rem;padding:.3rem .6rem}}.header-tabs button{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:2px solid #ffffff4d;border-radius:8px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;min-width:-webkit-fit-content;min-width:fit-content;padding:.4rem .8rem;text-align:center;transition:all .3s ease;white-space:nowrap}.header-tabs button:hover{background:#fff3;border-color:#ffffff80;transform:translateY(-2px)}.header-tabs button.active{background:#ffffffe6;border-color:#ffffffe6;box-shadow:0 4px 12px #0003;color:#667eea}.App-main{flex:1 1;margin:0;max-width:none;padding:0;width:100%}.App-main,.app-layout{height:calc(100vh - 100px);min-height:calc(100vh - 100px)}.app-layout{background-color:#f5f5f5;display:flex;overflow:hidden}.filter-sidebar{background:#fff;border-right:1px solid #e9ecef;box-shadow:2px 0 8px #0000001a;display:block!important;flex-shrink:0;height:calc(100vh - 100px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:0;width:20rem}.filter-sidebar,.filter-sidebar-panel{max-height:calc(100vh - 100px);visibility:visible!important}.filter-sidebar-panel{display:flex;display:block!important;flex-direction:column;height:100%}.filter-sidebar-header{background:#fff;border-bottom:1px solid #e9ecef;flex-shrink:0;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.filter-sidebar-header h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.filter-sidebar-content{display:flex;flex:1 1;flex-direction:column;max-height:none;min-height:0;overflow-y:visible;padding:1rem 1rem 2rem;position:relative}.main-content-area{height:calc(100vh - 100px);max-height:calc(100vh - 100px);min-height:calc(100vh - 100px);padding:2rem 2rem 3rem}.main-content-area.full-width{max-width:100%;width:100%}.content{max-height:100%;min-height:600px;overflow-y:auto;padding:2rem 2rem 3rem}.content ul{margin:0;padding-left:1.5rem}.content li{line-height:1.4;margin-bottom:.25rem}.content p{line-height:1.4;margin-bottom:.5rem}.category-chart,.overview-chart{text-align:center}.category-chart h2,.overview-chart h2{color:#333;font-size:1.8rem;margin-bottom:1.5rem}.chart-stats{background:#f8f9fa;border-radius:8px;margin-top:1.5rem;padding:.75rem;text-align:left}.chart-stats p{font-weight:500;line-height:1.4;margin-bottom:.5rem}.chart-stats ul{list-style:none;margin:0;padding-left:0}.chart-stats li{border-bottom:1px solid #eee;line-height:1.4;padding:.25rem 0}.class-detail{max-width:100%}.class-detail h2{color:#333;font-size:2rem;text-align:center}.chart-section,.class-detail h2{margin-bottom:2rem}.chart-section h3{color:#333;font-size:1.5rem;margin-bottom:1rem}.filter-section{border-bottom:1px solid #f0f0f0;flex-shrink:0;margin-bottom:2.5rem;padding-bottom:2rem}.filter-section:last-child{border-bottom:none;flex-shrink:0;margin-bottom:0;margin-top:auto;padding-bottom:0}.filter-section h4{align-items:center;background:#f9fafb;border-left:3px solid #667eea;border-radius:.5rem;color:#6b7280;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;letter-spacing:.5px;margin:0 0 1rem;padding:.75rem 1rem;text-transform:uppercase}.keyboard-shortcut{background:#f8f9fa;border:1px solid #dee2e6;border-radius:.25rem;color:#6c757d;font-size:.7rem;font-weight:500;margin-left:auto;padding:.1rem .3rem}.search-container{position:relative;width:100%}.search-input{border:1px solid #ddd;border-radius:.5rem;font-size:.9rem;padding:.75rem 2.5rem .75rem .75rem;transition:border-color .2s ease;width:100%}.clear-search-btn{align-items:center;background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:1.5rem;justify-content:center;position:absolute;right:.5rem;top:50%;transform:translateY(-50%);transition:background-color .2s ease;width:1.5rem}.clear-search-btn:hover{background:#c82333}.search-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.search-info{background:#f8f9fa;border-left:3px solid #667eea;border-radius:.25rem;margin-top:.5rem;padding:.5rem}.search-info small{color:#6c757d;font-size:.8rem;line-height:1.3}.search-highlight{color:#667eea}.category-list{display:flex;flex-direction:column;gap:8px;max-height:24rem;overflow-y:auto}.category-item{background:#fff;border:1px solid #e1e5e9;border-radius:6px;box-shadow:0 1px 3px #0000000d;padding:.75rem;transition:all .2s ease}.category-item:hover{border-color:#667eea;box-shadow:0 2px 6px #0000001a}.category-item.category-faded{background:#f8f9fa;border-color:#dee2e6;opacity:.4}.category-item.category-faded:hover{border-color:#667eea;opacity:.7}.category-checkbox{align-items:center;cursor:pointer;display:flex;gap:6px;margin-bottom:4px}.category-checkbox input[type=checkbox]{display:none}.checkmark{background:#fff;border:2px solid #6c757d;border-radius:3px;flex-shrink:0;height:16px;position:relative;transition:all .2s;width:16px}.category-checkbox input[type=checkbox]:checked+.checkmark{background:#667eea;border-color:#667eea}.category-checkbox input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:10px;font-weight:700;left:1px;position:absolute;top:-1px}.category-name{color:#2c3e50;flex-grow:1;font-size:.875rem;font-weight:600}.class-count{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.25rem;color:#6c757d;font-size:.75rem;font-weight:500;min-width:50px;padding:.25rem .5rem;text-align:center}.class-list{display:flex;flex-direction:column;gap:4px}.class-list,.class-list-grid{border-top:1px solid #e9ecef;margin-top:8px;padding-top:8px}.class-list-grid{grid-gap:.25rem;display:grid;gap:.25rem;grid-template-columns:1fr 1fr}.class-checkbox{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:4px;cursor:pointer;display:flex;gap:6px;padding:4px 6px;transition:background-color .2s}.class-checkbox:hover{background-color:#e9ecef}.class-checkbox.sound-selected{background:#e3f2fd;border-color:#2196f3}.class-checkbox.sound-selected:hover{background:#bbdefb}.class-checkbox-grid{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:.25rem;cursor:pointer;display:flex;gap:4px;padding:.25rem .5rem;transition:background-color .2s}.class-checkbox-grid:hover{background-color:#e9ecef}.class-checkbox-grid.sound-selected{background:#e3f2fd;border-color:#2196f3}.class-checkbox-grid.sound-selected:hover{background:#bbdefb}.class-checkbox-grid input[type=checkbox]{display:none}.class-checkbox-grid .checkmark{border:1px solid #adb5bd;border-radius:2px;height:10px;width:10px}.class-checkbox-grid input[type=checkbox]:checked+.checkmark{background:#28a745;border-color:#28a745}.class-checkbox-grid input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:8px;font-weight:700;left:0;position:absolute;top:-1px}.class-checkbox-grid .class-name{color:#495057;flex-grow:1;font-size:.75rem;font-weight:500}.class-checkbox input[type=checkbox]{display:none}.class-checkbox .checkmark{border:2px solid #adb5bd;border-radius:2px;height:12px;width:12px}.class-checkbox input[type=checkbox]:checked+.checkmark{background:#28a745;border-color:#28a745}.class-checkbox input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:8px;font-weight:700;left:0;position:absolute;top:-1px}.class-name{color:#495057;flex-grow:1;font-size:11px;font-weight:500}.algorithm-list{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.algorithm-checkbox{align-items:center;background:#fff;border:1px solid #e9ecef;border-radius:.375rem;cursor:pointer;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem;transition:all .2s ease}.algorithm-checkbox:hover{background:#f8f9fa;border-color:#dee2e6}.algorithm-checkbox.algorithm-selected{background:#f8f9fa;border-color:#007bff;box-shadow:0 0 0 1px #007bff}.algorithm-checkbox.algorithm-selected:hover{background:#e3f2fd}.algorithm-checkbox input[type=checkbox]{cursor:pointer;height:0;opacity:0;position:absolute;width:0}.algorithm-checkbox .checkmark{background-color:#fff;border:2px solid #dee2e6;border-radius:3px;height:16px;margin-right:.5rem;position:relative;transition:all .2s ease;width:16px}.algorithm-checkbox input[type=checkbox]:checked+.checkmark{background-color:#007bff;border-color:#007bff}.algorithm-checkbox input[type=checkbox]:checked+.checkmark:after{border:solid #fff;border-width:0 2px 2px 0;content:"";height:8px;left:4px;position:absolute;top:1px;transform:rotate(45deg);width:4px}.algorithm-name{flex:1 1;font-weight:500;transition:all .2s ease}.algorithm-count{color:#6c757d;font-size:.8rem;margin-left:auto}.overview-section{background:#fff;border-radius:.75rem;box-shadow:0 2px 8px #0000000d;margin-bottom:2rem;padding:1.5rem}.filter-description{color:#6c757d;font-style:italic;margin-bottom:.5rem}.class-filter-grid{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));max-height:none;overflow-y:visible;padding:4px}.class-filter-item{align-items:center;background:#fff;border:1px solid #e1e5e9;border-radius:6px;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:6px 8px;position:relative;text-align:center;transition:all .2s ease}.class-filter-item:hover{background-color:#f8f9fa;border-color:#667eea;box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.class-filter-item input[type=checkbox]{display:none}.class-filter-item .checkmark{background:#fff;border:2px solid #6c757d;border-radius:2px;height:14px;position:relative;transition:all .2s;width:14px}.class-filter-item input[type=checkbox]:checked+.checkmark{background:#667eea;border-color:#667eea}.class-filter-item input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:9px;font-weight:700;left:0;position:absolute;top:-1px}.class-filter-item .class-name{color:#2c3e50;font-size:10px;font-weight:600}.class-filter-item .class-count{background:#f8f9fa;border:1px solid #e9ecef;border-radius:3px;color:#6c757d;font-size:9px;padding:1px 4px}.design-list{display:flex;flex-direction:column;gap:.5rem}.design-checkbox{align-items:center;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:6px 8px;transition:background-color .2s}.design-checkbox:hover{background-color:#f8f9fa}.design-checkbox input[type=checkbox]{display:none}.design-checkbox .checkmark{background:#fff;border:2px solid #6c757d;border-radius:3px;flex-shrink:0;height:14px;position:relative;transition:all .2s;width:14px}.design-checkbox input[type=checkbox]:checked+.checkmark{background:#667eea;border-color:#667eea}.design-checkbox input[type=checkbox]:checked+.checkmark:after{color:#fff;content:"✓";font-size:9px;font-weight:700;left:1px;position:absolute;top:-1px}.design-name{flex-grow:1;font-size:12px;font-weight:500}.rating-range{padding:.5rem 0}.range-display{margin-bottom:1rem;text-align:center}.range-label{background:#f8f9fa;border:1px solid #dee2e6;border-radius:4px;color:#495057;font-size:12px;font-weight:500;padding:.25rem .5rem}.range-info{margin-top:.5rem;text-align:center}.range-info small{color:#6c757d;font-size:10px}.dual-range-slider{align-items:center;display:flex;height:40px;padding:0 10px;position:relative}.range-track{border-radius:2px;display:flex;height:4px;position:absolute;width:100%;z-index:0}.range-track-inactive{background:#e9ecef;border-radius:2px 0 0 2px;height:100%}.range-track-active{background:#667eea;border-radius:0 2px 2px 0;height:100%}.range-slider-max,.range-slider-min{-webkit-appearance:none;appearance:none;background:#0000;border-radius:2px;height:4px;outline:none;pointer-events:none;position:absolute;width:100%}.range-slider-min{background:#0000;z-index:1}.range-slider-max{background:#0000;z-index:2}.range-slider-max::-webkit-slider-thumb,.range-slider-min::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#667eea;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 6px #0000004d;cursor:pointer;height:20px;pointer-events:auto;-webkit-transition:transform .2s ease;transition:transform .2s ease;width:20px;z-index:3}.range-slider-max::-moz-range-thumb,.range-slider-min::-moz-range-thumb{background:#667eea;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 6px #0000004d;cursor:pointer;height:20px;pointer-events:auto;width:20px;z-index:3}.range-slider-max::-webkit-slider-track,.range-slider-min::-webkit-slider-track{background:#0000;border:none;border-radius:2px;height:4px;outline:none;width:100%}.range-slider-max::-moz-range-track,.range-slider-min::-moz-range-track{background:#0000;border:none;border-radius:2px;height:4px;outline:none;width:100%}.range-slider-max::-webkit-slider-thumb:hover,.range-slider-min::-webkit-slider-thumb:hover{background:#5a6fd8;transform:scale(1.1)}.range-slider-max::-moz-range-thumb:hover,.range-slider-min::-moz-range-thumb:hover{background:#5a6fd8;transform:scale(1.1)}.sort-options{align-items:center;display:flex;gap:.5rem}.sort-options select{background:#fff;flex:1 1;font-size:12px;padding:.5rem}.sort-options select,.sort-order-btn{border:1px solid #ddd;border-radius:4px}.sort-order-btn{font-size:14px;padding:.5rem .75rem;transition:all .2s}.sort-order-btn:hover{background:#f8f9fa;border-color:#667eea}.filter-summary{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:none;overflow-y:visible}.filter-tag{background:#e3f2fd;border:1px solid #bbdefb;border-radius:4px;color:#1976d2;flex-shrink:0;font-size:11px;font-weight:500;padding:.25rem .5rem}.clear-filters-btn{background:#dc3545;border:none;border-radius:6px;bottom:0;color:#fff;cursor:pointer;flex-shrink:0;font-size:12px;font-weight:600;margin-top:.5rem;padding:.75rem;position:-webkit-sticky;position:sticky;transition:background-color .2s;width:100%;z-index:5}.clear-filters-btn:hover{background:#c82333}@media (max-width:1024px){.app-layout{flex-direction:column;height:auto;min-height:calc(100vh - 100px)}.filter-sidebar{border-bottom:1px solid #e9ecef;border-right:none;display:block!important;height:auto;min-height:200px;position:relative;visibility:visible!important;width:100%}.main-content-area{height:auto;min-height:auto;padding:1rem}.filter-sidebar-content{max-height:none;overflow-y:visible}.filter-sidebar-panel{display:block!important;min-height:auto;visibility:visible!important}}@media (max-width:768px){.filter-sidebar{display:block!important;min-height:150px;visibility:visible!important}.filter-sidebar-content{max-height:none;overflow-y:visible}.class-filter-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.category-list{max-height:200px}}.filter-overlay,.filter-panel{display:none!important}.main-content,.main-content.filter-panel-closed{margin-left:0!important}.filter-toggle-btn{display:none!important}.sound-grid-container{padding-bottom:1rem;width:100%}.results-header{align-items:flex-start;background:#fff;border-bottom:1px solid #e9ecef;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding:.75rem 1rem 1rem}.results-header-left h2{color:#1f2937;font-size:1.5rem;font-weight:600;margin:0 0 .5rem}.results-info{color:#6b7280;font-size:.9rem}.results-count{color:#374151;font-size:.9rem;font-weight:500}.search-highlight{color:#3b82f6;font-weight:600}.processing-indicator{color:#059669;font-style:italic;font-weight:500}.no-results{color:#dc2626;font-style:italic;margin:.5rem 0 0}.results-header-right{align-items:center;display:flex;gap:1.5rem}.results-count-display{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;display:flex;min-width:-webkit-fit-content;min-width:fit-content;padding:.5rem 1rem}.sort-controls{align-items:center;display:flex;gap:.5rem}.sort-controls label{color:#6b7280;font-size:.9rem;font-weight:500}.sort-select{font-size:.9rem}.sort-order-btn,.sort-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;padding:.5rem}.sort-order-btn{cursor:pointer;font-size:1rem;transition:all .2s ease}.sort-order-btn:hover{background:#f9fafb;border-color:#9ca3af}.sound-grid{grid-gap:1rem;gap:1rem;margin-bottom:1rem;padding:.5rem 0 2rem}.loading-grid{align-items:center;display:flex;justify-content:center;min-height:200px}.loading-spinner{color:#6b7280;font-size:1rem}.sound-card{border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0000001a;transition:all .3s ease}.sound-card:hover{border-color:#3b82f6;box-shadow:0 4px 12px #00000026}.filename{color:#1f2937;font-size:1.1rem;font-weight:600;line-height:1.3;margin:0}.average-badge{white-space:nowrap}.average-badge,.category-tag{border-radius:20px;padding:.25rem .75rem}.category-tag{background:#f3f4f6;color:#374151;display:inline-block;font-size:.8rem;font-weight:500}.mini-chart{align-items:center;background:#0000;border-radius:8px;display:flex;height:160px;justify-content:center;margin-top:.5rem;overflow:visible;position:relative;width:100%}.error-message button{background:#c53030;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:600;padding:.75rem 1.5rem;transition:background-color .2s ease}.error-message button:hover{background:#a53030}.audio-player{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.5rem;min-height:40px;padding:.5rem}.audio-player,.wavesurfer-player{align-items:center;display:flex;gap:.75rem}.wavesurfer-player{flex-direction:column;height:100%;justify-content:center;width:100%}.player-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.play-button{background:#3b82f6;border-radius:18px;box-shadow:0 2px 4px #0000001a;flex-shrink:0;gap:.25rem;height:36px;margin:0 auto;width:80px}.play-button:hover:not(:disabled){background:#2563eb;box-shadow:0 4px 8px #00000026}.play-button:disabled{background:#9ca3af;opacity:.5}.download-button{align-items:center;align-self:center;background:#3a57a8;border:none;border-radius:.25rem;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.25rem;justify-content:center;min-width:120px;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.download-button:hover:not(:disabled){background:#2a3f7a;transform:translateY(-1px)}.waveform-container{border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #0000001a;flex:1 1;height:100%;justify-content:center}.waveform{background:#0000;height:100%;width:100%}.wavesurfer-player .play-button{align-items:center;align-self:center;background:#3a57a8;border:none;border-radius:.25rem;color:#fff;cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.25rem;justify-content:center;min-width:120px;padding:.5rem 1rem;transition:all .2s ease;white-space:nowrap}.wavesurfer-player .play-button:hover:not(:disabled){background:#2a3f7a;transform:translateY(-1px)}.wavesurfer-player .play-button:disabled{background:#cbd5e0;cursor:not-allowed;transform:none}.audio-player.error{background:#fff5f5;border-color:#fed7d7}.play-button{background:#667eea;border:none;border-radius:.25rem;color:#fff;font-size:.9rem;font-weight:600;min-width:80px;padding:.5rem .75rem}.play-button:hover:not(:disabled){background:#5a67d8;transform:translateY(-1px)}.play-button:disabled{background:#cbd5e0;transform:none}.time-display{color:#6c757d;font-family:monospace;font-size:.8rem;min-width:80px}.error-indicator{color:#e53e3e;cursor:help;font-size:1.2rem}.warning-indicator{color:#d69e2e;cursor:help;font-size:1.2rem}.sound-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1rem;min-height:400px}.sound-card{background:#fff;border:1px solid #e9ecef;border-radius:.75rem;box-shadow:0 2px 8px #0000000d;cursor:pointer;overflow:hidden;padding:1.5rem;position:relative;transition:all .2s ease}.sound-card:hover{border-color:#667eea;box-shadow:0 8px 24px #00000026;transform:translateY(-2px)}.sound-card.has-zero-ratings{background:#fff;border-color:#e9ecef}.sound-card.has-zero-ratings:hover{border-color:#667eea;box-shadow:0 8px 24px #00000026}.card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem}.card-header .filename{color:#2c3e50;flex:1 1;font-size:1rem;font-weight:600;margin:0 .5rem 0 0;word-break:break-word}.average-badge{background:#667eea;border-radius:.25rem;color:#fff;flex-shrink:0;font-size:.8rem;font-weight:600;padding:.25rem .5rem}.zero-rating-indicator{color:#e53e3e;font-size:1rem;margin-left:.25rem}.card-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.category-tag,.class-tag{background:#f8f9fa;border:1px solid #e9ecef;border-radius:.25rem;color:#495057;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.mini-chart{margin-bottom:1rem}.card-stats{margin-top:auto}.rating-breakdown{display:flex;font-size:.8rem;font-weight:600;gap:.5rem;justify-content:space-between}.rating-breakdown span{background:#0000000d;border-radius:.25rem;flex:1 1;padding:.25rem;text-align:center}.error-boundary{align-items:center;display:flex;justify-content:center;min-height:400px;padding:2rem}.error-boundary-content{background:#fff;border:1px solid #e9ecef;border-radius:.75rem;box-shadow:0 4px 12px #0000001a;max-width:500px;padding:2rem;text-align:center}.error-boundary-content h2{color:#c53030;margin-bottom:1rem}.error-boundary-content p{color:#4a5568;line-height:1.6;margin-bottom:1.5rem}@media (max-width:768px){.sound-grid{gap:1rem;grid-template-columns:1fr}.results-header,.results-header-right{flex-direction:column;gap:1rem}.results-header-right{align-items:stretch;margin-left:0}.results-count-display{justify-content:center;text-align:center}.sort-controls{justify-content:center}.rating-breakdown{font-size:.7rem}.audio-player,.wavesurfer-player{align-items:stretch;flex-direction:column;gap:.75rem}.play-button{width:100%}.time-display{text-align:center}}@media (max-width:480px){.sound-card{padding:1rem}.card-header{flex-direction:column;gap:.5rem}.average-badge{align-self:flex-start}.card-meta{flex-direction:column}}.details-drawer{background:#fff;box-shadow:-2px 0 8px #0000001a;height:100vh;overflow-y:auto;position:fixed;right:-400px;top:0;transition:right .3s ease;width:400px;z-index:1000}.details-drawer.open{right:0}.drawer-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.drawer-header h3{color:#2c3e50;font-size:1.2rem;font-weight:600;margin:0}.close-button{background:none;border:none;border-radius:.5rem;cursor:pointer;font-size:1.5rem;padding:.5rem;transition:background-color .2s ease}.close-button:hover{background:#0000000d}.drawer-content{padding:1.5rem}.sound-info{border-bottom:1px solid #e9ecef;margin-bottom:2rem;padding-bottom:1rem}.sound-info p{font-size:.9rem;margin-bottom:.5rem}.audio-section,.ratings-section,.vibration-section{margin-bottom:2rem}.audio-section h4,.ratings-section h4,.vibration-section h4{color:#2c3e50;font-size:1rem;font-weight:600;margin-bottom:1rem}.vibration-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.vibration-button{border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:.5rem 1rem;transition:opacity .2s ease}.vibration-button:hover{opacity:.8}.full-ratings-chart{background:#f8f9fa;border-radius:.5rem;color:#6c757d;padding:1rem;text-align:center}.error,.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;padding:2rem;text-align:center}.error h2,.loading h2{color:#2c3e50;margin-bottom:1rem}.error button{background:#667eea;border:none;border-radius:.5rem;color:#fff;cursor:pointer;font-weight:600;margin-top:1rem;padding:.75rem 1.5rem;transition:background-color .2s ease}.error button:hover{background:#5a6fd8}.sound-grid-container .error-message{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:.5rem;display:flex;flex-direction:column;justify-content:center;margin:2rem;min-height:400px;padding:2rem;text-align:center}.sound-grid-container .error-message h3{color:#dc3545;font-size:1.5rem;margin-bottom:1rem}.sound-grid-container .error-message p{color:#6c757d;line-height:1.5;margin-bottom:1rem;max-width:600px}.sound-grid-container .retry-info{color:#6c757d;font-size:.9rem;font-style:italic;margin-bottom:1rem}.sound-grid-container .error-actions{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.sound-grid-container .refresh-button,.sound-grid-container .retry-button{border:none;border-radius:.5rem;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:all .2s ease}.sound-grid-container .retry-button{background:#667eea;color:#fff}.sound-grid-container .retry-button:hover:not(:disabled){background:#5a6fd8;transform:translateY(-1px)}.sound-grid-container .retry-button:disabled{background:#6c757d;cursor:not-allowed;opacity:.6}.sound-grid-container .refresh-button{background:#28a745;color:#fff}.sound-grid-container .refresh-button:hover{background:#218838;transform:translateY(-1px)}@media (max-width:1200px){.sound-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}@media (max-width:768px){.sound-grid{gap:1rem;grid-template-columns:1fr}.details-drawer{right:-100%;width:100%}.drawer-content{padding:1rem}.rating-breakdown{flex-wrap:wrap;gap:.5rem}}.mini-audio-player{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:.5rem;display:flex;gap:.75rem;min-height:60px;padding:.75rem;width:100%}.audio-controls{flex-shrink:0}.play-button{align-items:center;background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;box-shadow:0 1px 3px #0000001a;color:#20c997;cursor:pointer;display:flex;font-size:14px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.play-button:hover:not(:disabled){background:#e9ecef;transform:scale(1.02)}.play-button:disabled{background:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.6}.play-button.playing{background:#e9ecef;color:#dc3545}.play-button.playing:hover{background:#dee2e6}.loading-spinner{animation:spin 1s linear infinite;border:2px solid #0000;border-radius:50%;border-top-color:#fff;height:16px;width:16px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.audio-waveform{flex:1 1;min-height:40px;position:relative}.waveform-container{align-items:center;background:#fff;border:1px solid #dee2e6;border-radius:.25rem;display:flex;height:40px;overflow:hidden;position:relative;width:100%}.waveform-progress-overlay{overflow:hidden;transition:width .1s ease;z-index:2}.waveform-bars,.waveform-progress-overlay{height:100%;left:0;position:absolute;top:0}.waveform-bars{align-items:center;bottom:0;display:flex;gap:1px;justify-content:space-between;padding:0 .5rem;right:0;width:100%}.waveform-bars.played{z-index:2}.waveform-bars.background{z-index:1}.waveform-bar{border-radius:1px;flex:1 1;max-width:3px;min-width:1px;position:relative;transition:background-color .2s ease}.playback-head{background:#6c757d;bottom:0;position:absolute;top:0;transition:left .1s ease;width:2px;z-index:3}.waveform-baseline{background:#dee2e6;height:1px;left:0;position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:1}.time-indicator{background:#4f4a851a;color:#4f4a85;font-weight:600;top:-20px;transform:translateX(-50%);white-space:nowrap}.audio-error,.time-indicator{border-radius:.2rem;font-size:10px;padding:.1rem .3rem;position:absolute;z-index:3}.audio-error{background:#dc35451a;bottom:-20px;color:#dc3545;font-weight:500;left:0;right:0;text-align:center}.duration-indicator{background:#6c757d1a;border-radius:.2rem;color:#6c757d;cursor:help;font-size:10px;font-weight:500;left:0;padding:.1rem .3rem;position:absolute;top:-20px;z-index:3}@media (max-width:768px){.mini-audio-player{flex-direction:column;gap:.5rem;padding:.5rem}.audio-waveform{width:100%}.waveform-bars{gap:.5px}.waveform-bar{max-width:3px;min-width:1px}.sound-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.sound-card{padding:1rem}.mini-chart{margin-bottom:.75rem}.audio-waveform{min-height:35px}.waveform-container{height:35px}}.detailed-sound-drawer-overlay{align-items:center;background:#00000080;display:flex;height:100vh;justify-content:center;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100vw;z-index:1000}.detailed-sound-drawer-overlay.open{opacity:1;visibility:visible}.detailed-sound-drawer{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-height:90vh;max-width:800px;overflow:hidden;position:relative;transform:scale(.9);transition:transform .3s ease;width:90%}.detailed-sound-drawer-overlay.open .detailed-sound-drawer{transform:scale(1)}.detailed-sound-drawer .drawer-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.detailed-sound-drawer .drawer-header h3{color:#495057;font-size:1.4rem;font-weight:600;margin:0}.detailed-sound-drawer .close-button{align-items:center;background:none;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:1.8rem;height:40px;justify-content:center;transition:all .2s ease;width:40px}.detailed-sound-drawer .close-button:hover{background:#e9ecef;color:#dc3545}.detailed-sound-drawer .drawer-content{max-height:calc(90vh - 80px);overflow-y:auto;padding:1.5rem}.detailed-sound-drawer .sound-info{margin-bottom:2rem}.detailed-sound-drawer .info-grid{grid-gap:1rem;background:#f8f9fa;border-radius:8px;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));padding:1rem}.detailed-sound-drawer .info-item{display:flex;flex-direction:column;gap:.25rem}.detailed-sound-drawer .info-item label{color:#6c757d;font-size:.8rem;font-weight:500;letter-spacing:.5px;text-transform:uppercase}.detailed-sound-drawer .info-item span{color:#495057;font-size:1rem;font-weight:500}.detailed-sound-drawer .rating-badge{background:#14aa17;border-radius:20px;color:#fff;display:inline-block;font-weight:600;padding:.25rem .75rem;width:-webkit-fit-content;width:fit-content}.detailed-sound-drawer .ratings-section{margin-bottom:2rem}.detailed-sound-drawer .ratings-chart{display:flex;flex-direction:column;gap:1rem}.detailed-sound-drawer .rating-bar-container{display:flex;flex-direction:column;gap:.5rem}.detailed-sound-drawer .rating-label{align-items:center;display:flex;justify-content:space-between}.detailed-sound-drawer .design-name{color:#495057;font-weight:600;text-transform:capitalize}.detailed-sound-drawer .rating-value{color:#6c757d;font-weight:600}.detailed-sound-drawer .rating-bar{background:#e9ecef;border-radius:6px;height:12px;overflow:hidden;position:relative}.detailed-sound-drawer .rating-fill{border-radius:6px;height:100%;position:relative;transition:width .3s ease}.detailed-sound-drawer .rating-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.detailed-sound-drawer .audio-section{margin-bottom:2rem}.detailed-sound-drawer .audio-section h4{color:#495057;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.detailed-sound-drawer .vibration-section{margin-bottom:1rem}.detailed-sound-drawer .vibration-section h4{color:#495057;font-size:1.2rem;font-weight:600;margin-bottom:1rem}.detailed-sound-drawer .vibration-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.detailed-sound-drawer .vibration-item{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem}.detailed-sound-drawer .vibration-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.75rem}.detailed-sound-drawer .vibration-header h5{font-size:1rem;font-weight:600;margin:0;text-transform:capitalize}.detailed-sound-drawer .vibration-rating{background:#495057;border-radius:12px;color:#fff;font-size:.8rem;font-weight:600;padding:.25rem .5rem}.detailed-sound-drawer .loading-indicator{align-items:center;animation:pulse 2s infinite;background:#f8f9fa;border:2px dashed #dee2e6;border-radius:8px;color:#6c757d;display:flex;font-size:1rem;font-weight:500;justify-content:center;padding:2rem}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.detailed-sound-drawer .source-indicator{border-radius:12px;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.5rem;padding:.2rem .5rem}.detailed-sound-drawer .source-indicator.local{background:#f3e5f5;border:1px solid #e1bee7;color:#7b1fa2}.detailed-sound-drawer h4{color:#495057;font-size:1.2rem;font-weight:600;margin:0 0 1rem}@media (max-width:768px){.detailed-sound-drawer{max-height:95vh;width:95%}.detailed-sound-drawer .drawer-content{padding:1rem}.detailed-sound-drawer .info-grid,.detailed-sound-drawer .vibration-grid{grid-template-columns:1fr}}.sound-grid-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.fixed-charts-header{background-color:#f5f5f5!important;border-bottom:2px solid #e9ecef!important;box-shadow:0 2px 8px #0000001a!important;flex-shrink:0;margin-bottom:15px!important;padding:5px 0!important;position:-webkit-sticky!important;position:sticky!important;top:0!important;z-index:100!important}.scrollable-content{flex:1 1;height:calc(100vh - 280px);min-height:500px;overflow-y:auto;padding:0 15px 60px!important;scroll-behavior:smooth}.main-content-area{background-color:#f5f5f5;flex:1 1;height:calc(100vh - 80px);min-height:calc(100vh - 80px);overflow-y:auto;padding:1.5rem;position:relative}.content{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;min-height:500px;overflow:visible;padding:1.5rem}.error-indicator,.warning-indicator{color:#dc2626;font-size:.8rem;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.load-more-section{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;display:flex;flex-direction:column;gap:1rem;margin:2rem 0 3rem;padding:2rem;position:relative;z-index:1}.load-more-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;box-shadow:0 4px 12px #667eea4d;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:200px;padding:1rem 2rem;transition:all .3s ease}.load-more-button:hover:not(:disabled){box-shadow:0 6px 16px #667eea66;transform:translateY(-2px)}.load-more-button:disabled{box-shadow:0 2px 6px #667eea33;cursor:not-allowed;opacity:.6;transform:none}.background-loading-info{background:#e3f2fd;border:1px solid #bbdefb;border-radius:6px;color:#6c757d;font-size:.9rem;padding:.5rem 1rem;text-align:center}.load-more-info{color:#495057;font-size:.9rem;font-weight:500;text-align:center}.results-count{align-items:flex-end;display:flex;flex-direction:column;gap:.25rem}.main-count{color:#495057;font-size:.9rem;font-weight:500}.background-loading{color:#007bff;font-size:.8rem;font-style:italic}.category-connected{background:linear-gradient(135deg,#e3f2fd,#bbdefb)!important;border:2px solid #2196f3!important;border-radius:8px!important;box-shadow:0 4px 12px #2196f34d!important;transform:translateY(-1px)!important;transition:all .3s ease!important}.category-connected .category-name{color:#1976d2!important;font-weight:600!important}.category-connected .category-checkbox{position:relative}.category-connected .category-checkbox:before{content:"🔗";font-size:14px;opacity:.8;position:absolute;right:-20px;top:50%;transform:translateY(-50%)}.algorithm-selected{background:linear-gradient(135deg,#f3e5f5,#e1bee7)!important;border:2px solid #9c27b0!important;border-radius:6px!important;box-shadow:0 3px 10px #9c27b04d!important;transform:translateY(-1px)!important;transition:all .3s ease!important}.algorithm-selected .algorithm-name{color:#7b1fa2!important;font-weight:600!important}.algorithm-connected{background:linear-gradient(135deg,#e8f5e8,#c8e6c9)!important;border:2px solid #4caf50!important;border-radius:6px!important;box-shadow:0 3px 10px #4caf504d!important;transform:translateY(-1px)!important;transition:all .3s ease!important}.algorithm-connected .algorithm-name{color:#2e7d32!important;font-weight:600!important}.algorithm-connected:before{content:"🔗";font-size:12px;opacity:.8;position:absolute;right:8px;top:50%;transform:translateY(-50%)}
/*# sourceMappingURL=main.db8c598f.css.map*/