*{box-sizing:border-box;margin:0;padding:0}body{color:#212121;background-color:#f5f5f5;min-height:100vh;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,Oxygen,Ubuntu,sans-serif;line-height:1.5}:root{--primary-color:#3f51b5;--primary-dark:#303f9f;--primary-light:#c5cae9;--accent-color:#ff4081;--text-primary:#212121;--text-secondary:#757575;--divider-color:#bdbdbd;--background-color:#f5f5f5;--card-background:#fff;--error-color:#f44336;--success-color:#4caf50}.elevation-1{box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.elevation-2{box-shadow:0 3px 6px #00000029,0 3px 6px #0000003b}.elevation-3{box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b}.container{max-width:800px;margin:0 auto;padding:2rem 1rem}header{text-align:center;background:var(--primary-color);color:#fff;border-radius:0 0 24px 24px;margin:-2rem -1rem 2rem;padding:2rem 1rem;box-shadow:0 4px 5px #00000024,0 1px 10px #0000001f}header h1{letter-spacing:.5px;margin-bottom:.5rem;font-size:2rem;font-weight:400}header p{opacity:.87;margin-bottom:1.5rem;font-size:1rem;font-weight:300}.genres-chips{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.chip{color:#fff;border-radius:16px;align-items:center;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:transform .2s,box-shadow .2s;display:inline-flex;box-shadow:0 1px 3px #0000001f}.chip:hover{transform:translateY(-2px);box-shadow:0 3px 6px #00000029}.chip-rock{background:#e53935}.chip-salsa{background:#fb8c00}.chip-vallenato{background:#43a047}.chip-ruido{background:#757575}.card{background:var(--card-background);border-radius:12px;margin-bottom:1.5rem;padding:1.5rem;transition:box-shadow .3s}.card:hover{box-shadow:0 10px 20px #00000030,0 6px 6px #0000003b}.upload-area{border:2px dashed var(--divider-color);text-align:center;cursor:pointer;color:var(--text-secondary);background:#fafafa;border-radius:12px;padding:3rem 2rem;transition:all .3s}.upload-area:hover{border-color:var(--primary-color);background:#e8eaf6}.upload-area.dragover{border-color:var(--primary-color);background:#c5cae9;transform:scale(1.01)}.upload-icon{width:56px;height:56px;color:var(--primary-color);margin-bottom:1rem}.upload-text{color:var(--text-primary);margin-bottom:.5rem;font-size:1.1rem;font-weight:500}.upload-hint{color:var(--text-secondary);font-size:.875rem}.model-config{flex-direction:column;gap:.75rem;display:flex}.model-config label{color:var(--text-primary);font-size:.9rem;font-weight:500}.input-group{flex-wrap:wrap;gap:.5rem;display:flex}.input-group input{flex:1;min-width:200px}.model-config input[type=text]{border:1px solid var(--divider-color);background:#fafafa;border-radius:4px;padding:.75rem 1rem;font-size:1rem;transition:border-color .3s,box-shadow .3s}.model-config input[type=text]:focus{border-color:var(--primary-color);outline:none;box-shadow:0 0 0 3px #3f51b51f}.help-text{color:var(--text-secondary);margin-top:.25rem;font-size:.8rem}.model-status{text-align:center;color:var(--text-secondary);background:#eee;border-radius:4px;margin-top:1rem;padding:.75rem 1rem;font-size:.9rem;font-weight:500;transition:all .3s}.model-status.loaded{color:#2e7d32;background:#e8f5e9}.model-status.error{color:#c62828;background:#ffebee}.audio-player{margin-bottom:1.5rem}.audio-player audio{border-radius:8px;width:100%}.classify-controls{flex-direction:column;gap:1.25rem;display:flex}.time-selector{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.time-selector label{color:var(--text-primary);font-size:.9rem;font-weight:500}.time-selector input[type=range]{min-width:100px;accent-color:var(--primary-color);flex:1}.time-selector span{color:var(--primary-color);min-width:30px;font-size:.9rem;font-weight:600}.btn{text-transform:uppercase;letter-spacing:1.25px;cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary-color);color:#fff;box-shadow:0 2px 5px #00000029,0 2px 5px #0000003b}.btn-primary:hover:not(:disabled){background:var(--primary-dark);box-shadow:0 4px 8px #0003,0 4px 8px #0003}.btn-primary:active:not(:disabled){box-shadow:0 1px 3px #0000001f,0 1px 2px #0000003d}.btn-secondary{color:var(--primary-color);border:1px solid var(--primary-color);background:0 0}.btn-secondary:hover:not(:disabled){background:#3f51b50a}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.results-section h2{color:var(--text-primary);margin-bottom:1.5rem;font-size:1.5rem;font-weight:400}.top-result{text-align:center;background:var(--primary-color);color:#fff;border-radius:12px;margin-bottom:2rem;padding:2rem;box-shadow:0 4px 5px #00000024}.genre-label{margin-bottom:.5rem;font-size:2.5rem;font-weight:300}.confidence{opacity:.9;font-size:1.5rem;font-weight:400}.confidence-bar{background:#ffffff4d;border-radius:4px;width:100%;height:8px;margin-top:1.5rem;overflow:hidden}.confidence-fill{background:#fff;border-radius:4px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.all-results{flex-direction:column;gap:.75rem;display:flex}.prediction-row{background:#fafafa;border:1px solid #eee;border-radius:8px;grid-template-columns:40px 1fr 150px 60px;align-items:center;gap:1rem;padding:.875rem 1rem;transition:background .2s,transform .2s;display:grid}.prediction-row:hover{background:#f5f5f5;transform:translate(4px)}.rank{color:var(--primary-color);font-size:.9rem;font-weight:700}.genre{color:var(--text-primary);font-size:.9rem;font-weight:500}.bar-container{background:#e0e0e0;border-radius:3px;height:6px;overflow:hidden}.bar{background:var(--primary-color);border-radius:3px;height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.percent{text-align:right;color:var(--text-secondary);font-size:.875rem;font-weight:500}footer{text-align:center;color:var(--text-secondary);margin-top:2rem;padding:1.5rem;font-size:.875rem}@media (width<=600px){.container{padding:1rem .75rem}header{margin:-1rem -.75rem 1.5rem;padding:1.5rem 1rem}header h1{font-size:1.5rem}.input-group{flex-direction:column}.input-group input,.input-group button{width:100%}.prediction-row{grid-template-columns:30px 1fr 80px 50px;gap:.5rem;font-size:.85rem}.genre-label{font-size:1.75rem}.chip{padding:.4rem .8rem;font-size:.8rem}}
