:root{--speaker-tester-primary:#3b82f6;--speaker-tester-primary-hover:#2563eb;--speaker-tester-primary-light:#60a5fa;--speaker-tester-primary-soft:#3b82f61a;--speaker-tester-success:#22c55e;--speaker-tester-success-soft:#22c55e1a;--speaker-tester-warning:#f97316;--speaker-tester-warning-soft:#f973161a;--speaker-tester-error:#ef4444;--speaker-tester-error-soft:#ef44441a;--speaker-tester-left:#3b82f6;--speaker-tester-left-soft:#3b82f61a;--speaker-tester-right:#ef4444;--speaker-tester-right-soft:#ef44441a;--speaker-tester-both:#22c55e;--speaker-tester-both-soft:#22c55e1a;--speaker-tester-bass:#8b5cf6;--speaker-tester-bass-soft:#8b5cf61a;--speaker-tester-mid:#eab308;--speaker-tester-mid-soft:#eab3081a;--speaker-tester-treble:#f97316;--speaker-tester-treble-soft:#f973161a;--speaker-tester-bg:#fff;--speaker-tester-bg-subtle:#f8fafc;--speaker-tester-bg-card:#fff;--speaker-tester-text:#0f172a;--speaker-tester-text-secondary:#475569;--speaker-tester-text-muted:#94a3b8;--speaker-tester-border:#e2e8f0;--speaker-tester-border-light:#f1f5f9;--speaker-tester-waveform-bg:#0f172a;--speaker-tester-waveform-line:#3b82f6;--speaker-tester-sticky-bg:#fffffff2;--speaker-tester-shadow-sm:0 1px 3px #00000014;--speaker-tester-shadow-md:0 4px 12px #0000001a;--speaker-tester-shadow-lg:0 10px 25px #00000026;--speaker-tester-radius:.75rem;--speaker-tester-radius-sm:.5rem;--speaker-tester-radius-lg:1rem}._speaker-tester-container{flex-direction:column;gap:1rem;max-width:700px;margin:0 auto;display:flex}._speaker-tester-header{background:var(--speaker-tester-bg);border-radius:var(--speaker-tester-radius);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.875rem 1rem;display:flex}._speaker-tester-controls{flex-wrap:wrap;flex:1;align-items:center;gap:1rem;display:flex}._speaker-tester-warning{background:var(--speaker-tester-warning-soft);border-radius:var(--speaker-tester-radius-sm);color:var(--speaker-tester-warning);align-items:center;gap:.5rem;padding:.75rem 1rem;font-size:.8125rem;font-weight:500;display:flex}._speaker-tester-warning svg{flex-shrink:0}._speaker-tester-waveform-wrapper{z-index:100;background:linear-gradient(to top,var(--speaker-tester-sticky-bg,#0f172afa)0%,var(--speaker-tester-sticky-bg,#0f172af2)70%,transparent 100%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);margin-top:auto;padding:.5rem 0 0;position:sticky;bottom:0}._speaker-tester-waveform-container{background:var(--speaker-tester-waveform-bg);border-radius:var(--speaker-tester-radius-lg);box-shadow:var(--speaker-tester-shadow-lg);flex-direction:column;display:flex;overflow:hidden}._speaker-tester-canvas-area{width:100%;height:120px;position:relative}._speaker-tester-waveform{width:100%;height:100%;display:block}._speaker-tester-control-bar{background:#0000004d;border-top:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:.5rem .75rem;display:flex;overflow:visible}._speaker-tester-visual-toggle{border-radius:var(--speaker-tester-radius-sm);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;background:#0006;gap:.1875rem;padding:.1875rem;display:flex;position:absolute;top:.5rem;left:.5rem}._speaker-tester-visual-btn{border-radius:calc(var(--speaker-tester-radius-sm) - 2px);color:#ffffff80;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}._speaker-tester-visual-btn:hover{color:#fffc;background:#ffffff1a}._speaker-tester-visual-btn.active{color:#fff;background:var(--speaker-tester-primary)}._speaker-tester-visual-btn svg{width:14px;height:14px}._speaker-tester-play-btn{background:var(--speaker-tester-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:flex;box-shadow:0 2px 8px #3b82f666}._speaker-tester-play-btn:hover{background:var(--speaker-tester-primary-hover);box-shadow:0 4px 12px #3b82f680}._speaker-tester-play-btn:active{opacity:.9}._speaker-tester-play-btn.playing{background:var(--speaker-tester-error);box-shadow:0 2px 8px #ef444466}._speaker-tester-play-btn.playing:hover{box-shadow:0 4px 12px #ef444480}._speaker-tester-play-btn svg{width:16px;height:16px}._speaker-tester-freq-display{border-radius:var(--speaker-tester-radius-sm);pointer-events:none;background:#0006;align-items:baseline;gap:.1875rem;padding:.25rem .5rem;display:flex;position:absolute;top:.5rem;right:.5rem}._speaker-tester-freq-value{color:#fff;font-variant-numeric:tabular-nums;font-size:1.125rem;font-weight:700}._speaker-tester-freq-unit{color:#fff9;font-size:.6875rem;font-weight:500}._speaker-tester-controls-right{align-items:center;gap:.75rem;display:flex;overflow:visible}._speaker-tester-channel-quick{border-radius:var(--speaker-tester-radius-sm);background:#ffffff14;gap:.125rem;padding:.125rem;display:flex}._speaker-tester-channel-quick-btn{border-radius:calc(var(--speaker-tester-radius-sm) - 2px);color:#ffffff80;cursor:pointer;background:0 0;border:none;min-width:28px;padding:.25rem .5rem;font-size:.6875rem;font-weight:600;transition:all .15s}._speaker-tester-channel-quick-btn:hover{color:#fffc;background:#ffffff14}._speaker-tester-channel-quick-btn.active{color:#fff;background:var(--speaker-tester-success)}._speaker-tester-channel-quick-btn[data-channel=left].active{background:var(--speaker-tester-primary)}._speaker-tester-channel-quick-btn[data-channel=right].active{background:var(--speaker-tester-error)}._speaker-tester-speed-group{align-items:center;display:flex}._speaker-tester-speed-toggle{border-radius:var(--speaker-tester-radius-sm);color:#ffffffb3;cursor:pointer;background:#ffffff14;border:none;justify-content:center;align-items:center;min-width:32px;height:28px;padding:0 .5rem;font-size:.6875rem;font-weight:600;transition:all .15s;display:flex}._speaker-tester-speed-toggle:hover{color:#fff;background:#ffffff26}._speaker-tester-speed-group.expanded ._speaker-tester-speed-toggle{display:none}._speaker-tester-speed-options{border-radius:var(--speaker-tester-radius-sm);background:#ffffff0f;align-items:center;padding:2px;display:none}._speaker-tester-speed-group.expanded ._speaker-tester-speed-options{display:flex}._speaker-tester-speed-btn{border-radius:calc(var(--speaker-tester-radius-sm) - 2px);color:#fff9;cursor:pointer;background:0 0;border:none;padding:.375rem .5rem;font-size:.6875rem;font-weight:600;transition:all .1s}._speaker-tester-speed-btn:hover{color:#ffffffe6}._speaker-tester-speed-btn.active{background:var(--speaker-tester-primary);color:#fff}._speaker-tester-controls-right.speed-expanded ._speaker-tester-channel-quick,._speaker-tester-controls-right.speed-expanded ._speaker-tester-volume-inline{display:none}._speaker-tester-volume-inline{align-items:center;gap:.5rem;display:flex}._speaker-tester-volume-icon{color:#fff9;align-items:center;display:flex}._speaker-tester-volume-icon svg{width:14px;height:14px}._speaker-tester-volume-inline ._speaker-tester-volume-slider{-webkit-appearance:none;appearance:none;cursor:pointer;background:#ffffff26;border-radius:2px;width:100px;height:4px}._speaker-tester-volume-inline ._speaker-tester-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .1s;box-shadow:0 1px 4px #0000004d}._speaker-tester-volume-inline ._speaker-tester-volume-slider::-webkit-slider-thumb:hover{transform:scale(1.1)}._speaker-tester-volume-inline ._speaker-tester-volume-slider::-moz-range-thumb{cursor:pointer;background:#fff;border:none;border-radius:50%;width:14px;height:14px;box-shadow:0 1px 4px #0000004d}._speaker-tester-volume-inline ._speaker-tester-volume-value{color:#fffc;text-align:right;font-variant-numeric:tabular-nums;min-width:36px;font-size:.75rem;font-weight:600}._speaker-tester-volume-section{background:var(--speaker-tester-bg);border-radius:var(--speaker-tester-radius);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);padding:1rem;display:none}._speaker-tester-volume-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}._speaker-tester-volume-label{color:var(--speaker-tester-text-secondary);align-items:center;gap:.5rem;font-size:.8125rem;font-weight:500;display:flex}._speaker-tester-volume-value{font-variant-numeric:tabular-nums;color:var(--speaker-tester-text);font-size:1.125rem;font-weight:700}._speaker-tester-volume-slider{background:var(--speaker-tester-border);-webkit-appearance:none;appearance:none;cursor:pointer;border-radius:4px;outline:none;width:100%;height:8px}._speaker-tester-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--speaker-tester-primary);cursor:pointer;border-radius:50%;width:20px;height:20px;transition:box-shadow .2s;box-shadow:0 2px 6px #3b82f666}._speaker-tester-volume-slider::-webkit-slider-thumb:hover{box-shadow:0 2px 10px #3b82f699}._speaker-tester-volume-slider::-moz-range-thumb{background:var(--speaker-tester-primary);cursor:pointer;border:none;border-radius:50%;width:20px;height:20px;box-shadow:0 2px 6px #3b82f666}._speaker-tester-section{background:var(--speaker-tester-bg);border-radius:var(--speaker-tester-radius);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);padding:1rem}._speaker-tester-section-header{margin-bottom:.875rem}._speaker-tester-section-title{color:var(--speaker-tester-text-secondary);text-transform:uppercase;letter-spacing:.025em;margin:0;font-size:.8125rem;font-weight:600}@media (max-width:768px){._speaker-tester-container{padding-left:1rem;padding-right:1rem}._speaker-tester-header{flex-direction:column;align-items:stretch;gap:.75rem}._speaker-tester-controls{flex-direction:column;align-items:stretch}._speaker-tester-waveform-container{height:120px}._speaker-tester-freq-value{font-size:2rem}._speaker-tester-warning{font-size:.75rem}._speaker-tester-canvas-area{height:100px}._speaker-tester-volume-inline ._speaker-tester-volume-slider{width:80px}}@media (max-width:480px){._speaker-tester-section{padding:.875rem}._speaker-tester-canvas-area{height:80px}._speaker-tester-freq-value{font-size:1rem}._speaker-tester-freq-display{padding:.1875rem .375rem}._speaker-tester-control-bar{gap:.375rem;padding:.375rem .5rem}._speaker-tester-play-btn{width:32px;height:32px}._speaker-tester-play-btn svg{width:14px;height:14px}._speaker-tester-controls-right{gap:.5rem}._speaker-tester-channel-quick-btn{min-width:24px;padding:.1875rem .375rem;font-size:.625rem}._speaker-tester-volume-inline{gap:.25rem}._speaker-tester-volume-inline ._speaker-tester-volume-slider{width:40px}._speaker-tester-visual-btn{width:24px;height:24px}._speaker-tester-visual-btn svg{width:12px;height:12px}._speaker-tester-volume-icon{display:none}}._speaker-tester-btn{border-radius:var(--speaker-tester-radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:opacity .2s,background .2s,box-shadow .2s;display:inline-flex}._speaker-tester-btn--primary{background:var(--speaker-tester-primary);color:#fff;box-shadow:0 2px 8px #3b82f640}._speaker-tester-btn--primary:hover{opacity:.9}._speaker-tester-btn--stop{background:var(--speaker-tester-error-soft);color:var(--speaker-tester-error);padding:.5rem .875rem}._speaker-tester-btn--stop:hover{background:var(--speaker-tester-error);color:#fff}._speaker-tester-btn--custom{background:var(--speaker-tester-primary);color:#fff;padding:.625rem 1rem}._speaker-tester-btn--custom:hover{opacity:.9}._speaker-tester-status{background:var(--speaker-tester-success-soft);border-radius:var(--speaker-tester-radius-sm);align-items:center;gap:.5rem;padding:.5rem .875rem;display:inline-flex}._speaker-tester-status-dot{background:var(--speaker-tester-success);width:8px;height:8px;box-shadow:0 0 6px var(--speaker-tester-success);border-radius:50%}._speaker-tester-status-text{color:var(--speaker-tester-success);font-size:.8125rem;font-weight:500}._speaker-tester-status.playing{background:var(--speaker-tester-primary-soft)}._speaker-tester-status.playing ._speaker-tester-status-dot{background:var(--speaker-tester-primary);box-shadow:0 0 6px var(--speaker-tester-primary);animation:1s ease-in-out infinite speaker-pulse}._speaker-tester-status.playing ._speaker-tester-status-text{color:var(--speaker-tester-primary)}._speaker-tester-status.sweeping{background:var(--speaker-tester-bass-soft)}._speaker-tester-status.sweeping ._speaker-tester-status-dot{background:var(--speaker-tester-bass);box-shadow:0 0 6px var(--speaker-tester-bass);animation:.5s ease-in-out infinite speaker-pulse}._speaker-tester-status.sweeping ._speaker-tester-status-text{color:var(--speaker-tester-bass)}@keyframes speaker-pulse{0%,to{opacity:1}50%{opacity:.4}}._speaker-tester-select-group{flex-direction:column;flex:1;gap:.25rem;min-width:180px;display:flex}._speaker-tester-select{width:100%;color:var(--speaker-tester-text);background-color:var(--speaker-tester-bg-subtle);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius-sm);cursor:pointer;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M3 4.5L6 7.5L9 4.5'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;padding:.5rem 2rem .5rem .75rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}._speaker-tester-select:hover{border-color:var(--speaker-tester-primary-light)}._speaker-tester-select:focus{border-color:var(--speaker-tester-primary);box-shadow:0 0 0 3px var(--speaker-tester-primary-soft);outline:none}._speaker-tester-stereo-btns{gap:.5rem;display:flex}._speaker-tester-channel-btn{border-radius:var(--speaker-tester-radius-sm);cursor:pointer;border-style:solid;border-width:2px;flex:1;justify-content:center;align-items:center;gap:.5rem;padding:.875rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}._speaker-tester-channel-btn--left{background:var(--speaker-tester-left-soft);border-color:var(--speaker-tester-left);color:var(--speaker-tester-left)}._speaker-tester-channel-btn--left:hover,._speaker-tester-channel-btn--left.active{background:var(--speaker-tester-left);color:#fff}._speaker-tester-channel-btn--both{background:var(--speaker-tester-both-soft);border-color:var(--speaker-tester-both);color:var(--speaker-tester-both)}._speaker-tester-channel-btn--both:hover,._speaker-tester-channel-btn--both.active{background:var(--speaker-tester-both);color:#fff}._speaker-tester-channel-btn--right{background:var(--speaker-tester-right-soft);border-color:var(--speaker-tester-right);color:var(--speaker-tester-right)}._speaker-tester-channel-btn--right:hover,._speaker-tester-channel-btn--right.active{background:var(--speaker-tester-right);color:#fff}._speaker-tester-freq-grid{grid-template-columns:repeat(6,1fr);gap:.5rem;margin-bottom:1rem;display:grid}._speaker-tester-freq-btn{border-radius:var(--speaker-tester-radius-sm);cursor:pointer;border-style:solid;border-width:2px;flex-direction:column;justify-content:center;align-items:center;padding:.75rem .5rem;transition:all .2s;display:flex}._speaker-tester-freq-btn-value{font-size:1rem;font-weight:700;line-height:1.2}._speaker-tester-freq-btn-label{opacity:.7;font-size:.6875rem;font-weight:500}._speaker-tester-freq-btn--bass{background:var(--speaker-tester-bass-soft);border-color:var(--speaker-tester-bass);color:var(--speaker-tester-bass)}._speaker-tester-freq-btn--bass:hover,._speaker-tester-freq-btn--bass.active{background:var(--speaker-tester-bass);color:#fff}._speaker-tester-freq-btn--mid{background:var(--speaker-tester-mid-soft);border-color:var(--speaker-tester-mid);color:var(--speaker-tester-mid)}._speaker-tester-freq-btn--mid:hover,._speaker-tester-freq-btn--mid.active{background:var(--speaker-tester-mid);color:#fff}._speaker-tester-freq-btn--treble{background:var(--speaker-tester-treble-soft);border-color:var(--speaker-tester-treble);color:var(--speaker-tester-treble)}._speaker-tester-freq-btn--treble:hover,._speaker-tester-freq-btn--treble.active{background:var(--speaker-tester-treble);color:#fff}._speaker-tester-custom-freq{align-items:center;gap:.75rem;display:flex}._speaker-tester-custom-input-group{background:var(--speaker-tester-bg-subtle);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius-sm);flex:1;align-items:center;display:flex;overflow:hidden}._speaker-tester-custom-input{color:var(--speaker-tester-text);background:0 0;border:none;outline:none;flex:1;min-width:0;padding:.625rem .75rem;font-size:.9375rem;font-weight:500}._speaker-tester-custom-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}._speaker-tester-custom-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._speaker-tester-custom-input[type=number]{-moz-appearance:textfield}._speaker-tester-custom-unit{color:var(--speaker-tester-text-muted);background:var(--speaker-tester-border-light);padding:.625rem .75rem;font-size:.875rem;font-weight:500}._speaker-tester-sweep{align-items:center;gap:1rem;display:flex}._speaker-tester-sweep-btn{background:var(--speaker-tester-bass-soft);border-style:solid;border-width:2px;border-color:var(--speaker-tester-bass);border-radius:var(--speaker-tester-radius-sm);color:var(--speaker-tester-bass);cursor:pointer;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}._speaker-tester-sweep-btn:hover,._speaker-tester-sweep-btn.active{background:var(--speaker-tester-bass);color:#fff}._speaker-tester-sweep-btn.active svg{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._speaker-tester-sweep-info{flex-direction:column;flex:1;gap:.5rem;display:flex}._speaker-tester-sweep-range{color:var(--speaker-tester-text-secondary);font-size:.8125rem;font-weight:500}._speaker-tester-sweep-progress{background:var(--speaker-tester-border);border-radius:3px;height:6px;overflow:hidden}._speaker-tester-sweep-progress-fill{background:linear-gradient(90deg,var(--speaker-tester-bass)0%,var(--speaker-tester-mid)50%,var(--speaker-tester-treble)100%);border-radius:3px;width:0;height:100%;transition:width .1s linear}._speaker-tester-noise-btns{gap:.75rem;display:flex}._speaker-tester-noise-btn{background:var(--speaker-tester-bg-subtle);border-style:solid;border-width:2px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius-sm);color:var(--speaker-tester-text-secondary);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:.625rem;padding:.875rem 1rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex}._speaker-tester-noise-btn:hover{border-color:var(--speaker-tester-text-muted);color:var(--speaker-tester-text)}._speaker-tester-noise-btn.active{background:var(--speaker-tester-text);border-color:var(--speaker-tester-text);color:#fff}._speaker-tester-noise-icon{border-radius:50%;width:16px;height:16px}._speaker-tester-noise-icon--white{background:linear-gradient(135deg,#f8fafc 0%,#e2e8f0 100%);box-shadow:inset 0 0 0 1px #0000001a}._speaker-tester-noise-icon--pink{background:linear-gradient(135deg,#fce7f3 0%,#fbcfe8 100%);box-shadow:inset 0 0 0 1px #0000001a}@media (max-width:768px){._speaker-tester-select-group{min-width:100%}._speaker-tester-freq-grid{grid-template-columns:repeat(3,1fr)}._speaker-tester-stereo-btns{flex-direction:column}._speaker-tester-sweep{flex-direction:column;align-items:stretch}._speaker-tester-noise-btns{flex-direction:column}}@media (max-width:480px){._speaker-tester-freq-grid{grid-template-columns:repeat(3,1fr);gap:.375rem}._speaker-tester-freq-btn{padding:.625rem .375rem}._speaker-tester-freq-btn-value{font-size:.875rem}._speaker-tester-custom-freq{flex-direction:column}._speaker-tester-custom-input-group,._speaker-tester-btn--custom{width:100%}}._speaker-tester-upload{background:var(--speaker-tester-bg-subtle);border-style:dashed;border-width:2px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius);cursor:pointer;justify-content:center;align-items:center;min-height:120px;padding:1.5rem;transition:all .2s;display:flex;position:relative}._speaker-tester-upload:hover{border-color:var(--speaker-tester-primary);background:var(--speaker-tester-primary-soft)}._speaker-tester-upload.dragover{border-color:var(--speaker-tester-primary);background:var(--speaker-tester-primary-soft);border-style:solid}._speaker-tester-upload-input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}._speaker-tester-upload-content{color:var(--speaker-tester-text-muted);pointer-events:none;flex-direction:column;align-items:center;gap:.5rem;display:flex}._speaker-tester-upload-text{color:var(--speaker-tester-text-secondary);font-size:.875rem;font-weight:500}._speaker-tester-upload-formats{color:var(--speaker-tester-text-muted);font-size:.75rem}._speaker-tester-player{background:var(--speaker-tester-bg-subtle);border-style:solid;border-width:1px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius);flex-direction:column;gap:.75rem;padding:1rem;display:flex}._speaker-tester-player-info{justify-content:space-between;align-items:center;gap:1rem;display:flex}._speaker-tester-player-name{color:var(--speaker-tester-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.875rem;font-weight:600;overflow:hidden}._speaker-tester-player-time{font-variant-numeric:tabular-nums;color:var(--speaker-tester-text-muted);flex-shrink:0;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;display:flex}._speaker-tester-player-progress{padding:.5rem 0}._speaker-tester-player-progress-track{background:var(--speaker-tester-border);cursor:pointer;border-radius:3px;height:6px;position:relative;overflow:hidden}._speaker-tester-player-progress-track:hover{height:8px}._speaker-tester-player-progress-fill{background:var(--speaker-tester-primary);border-radius:3px;width:0;height:100%;transition:width .1s linear;position:absolute;top:0;left:0}._speaker-tester-player-controls{justify-content:center;align-items:center;gap:.75rem;display:flex}._speaker-tester-player-btn{background:var(--speaker-tester-primary);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;transition:all .2s;display:flex}._speaker-tester-player-btn:hover{opacity:.9}._speaker-tester-player-btn.playing{background:var(--speaker-tester-success)}._speaker-tester-player-btn--remove{background:var(--speaker-tester-error-soft);width:36px;height:36px;color:var(--speaker-tester-error)}._speaker-tester-player-btn--remove:hover{background:var(--speaker-tester-error);color:#fff}._speaker-tester-player-channel{border-top-style:solid;border-top-width:1px;border-top-color:var(--speaker-tester-border);align-items:center;gap:.75rem;margin-top:.25rem;padding-top:.75rem;display:flex}._speaker-tester-player-channel-label{color:var(--speaker-tester-text-secondary);font-size:.8125rem;font-weight:500}._speaker-tester-player-channel-btns{gap:.375rem;display:flex}._speaker-tester-channel-mini{background:var(--speaker-tester-bg);border-style:solid;border-width:2px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius-sm);min-width:40px;color:var(--speaker-tester-text-muted);cursor:pointer;justify-content:center;align-items:center;padding:.375rem .625rem;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}._speaker-tester-channel-mini:hover{border-color:var(--speaker-tester-primary);color:var(--speaker-tester-primary)}._speaker-tester-channel-mini.active{background:var(--speaker-tester-primary);border-color:var(--speaker-tester-primary);color:#fff}._speaker-tester-sample-grid{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}._speaker-tester-sample-btn{background:var(--speaker-tester-bg-subtle);border-style:solid;border-width:2px;border-color:var(--speaker-tester-border);border-radius:var(--speaker-tester-radius);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:1rem .75rem;transition:all .2s;display:flex;position:relative}._speaker-tester-sample-btn:hover{border-color:var(--speaker-tester-primary);background:var(--speaker-tester-primary-soft)}._speaker-tester-sample-btn.active{border-color:var(--speaker-tester-primary);background:var(--speaker-tester-primary);color:#fff}._speaker-tester-sample-btn.active ._speaker-tester-sample-icon{color:#fff;background:#fff3}._speaker-tester-sample-btn.loading{pointer-events:none;opacity:.7}._speaker-tester-sample-progress{background:var(--speaker-tester-primary);border-radius:var(--speaker-tester-radius-sm);z-index:1;width:0%;max-width:calc(100% - 20px);height:3px;transition:width .1s linear;position:absolute;bottom:0;left:10px}._speaker-tester-sample-btn.active ._speaker-tester-sample-progress{background:#ffffff80}._speaker-tester-sample-icon{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:all .2s;display:flex}._speaker-tester-sample-icon--bass{background:var(--speaker-tester-bass-soft);color:var(--speaker-tester-bass)}._speaker-tester-sample-icon--treble{background:var(--speaker-tester-treble-soft);color:var(--speaker-tester-treble)}._speaker-tester-sample-icon--vocal{background:var(--speaker-tester-mid-soft);color:var(--speaker-tester-mid)}._speaker-tester-sample-icon--piano{background:var(--speaker-tester-primary-soft);color:var(--speaker-tester-primary)}._speaker-tester-sample-icon--drums{background:var(--speaker-tester-error-soft);color:var(--speaker-tester-error)}._speaker-tester-sample-icon--stereo{background:var(--speaker-tester-channel-both-soft);color:var(--speaker-tester-channel-both)}._speaker-tester-sample-label{color:var(--speaker-tester-text);font-size:.8125rem;font-weight:600}._speaker-tester-sample-btn.active ._speaker-tester-sample-label{color:#fff}._speaker-tester-sample-hint{color:var(--speaker-tester-text-muted);text-align:center;margin-top:.75rem;font-size:.75rem}._speaker-tester-sources{border-top:1px solid var(--speaker-tester-border);margin-top:1rem;padding-top:.75rem}._speaker-tester-sources-toggle{border-radius:var(--speaker-tester-radius-sm);width:100%;color:var(--speaker-tester-text-secondary);cursor:pointer;background:0 0;border:none;justify-content:flex-end;align-items:center;gap:.5rem;padding:.5rem .75rem;font-size:.8125rem;font-weight:500;transition:all .2s;display:flex}._speaker-tester-sources-toggle:hover{background:var(--speaker-tester-bg-subtle);color:var(--speaker-tester-text)}._speaker-tester-sources-icon{align-items:center;transition:transform .2s;display:flex}._speaker-tester-sources-toggle.active ._speaker-tester-sources-icon{transform:rotate(180deg)}._speaker-tester-sources-content{transition:all .3s ease-in-out;overflow:hidden}._speaker-tester-sources-list{flex-direction:column;gap:.5rem;margin:0;padding:.75rem 0 0;list-style:none;display:flex}._speaker-tester-sources-list li{color:var(--speaker-tester-text-secondary);border-radius:var(--speaker-tester-radius-sm);background:var(--speaker-tester-bg-subtle);padding:.375rem .75rem;font-size:.8125rem}._speaker-tester-sources-list strong{color:var(--speaker-tester-text);font-weight:600}._speaker-tester-sources-list a{color:var(--speaker-tester-primary);text-decoration:none;transition:opacity .2s}._speaker-tester-sources-list a:hover{opacity:.8;text-decoration:underline}@media (max-width:768px){._speaker-tester-sample-grid{grid-template-columns:repeat(3,1fr);gap:.5rem}._speaker-tester-sample-btn{padding:.75rem .5rem}._speaker-tester-sample-icon{width:36px;height:36px}._speaker-tester-sample-label{font-size:.75rem}}@media (max-width:480px){._speaker-tester-sample-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){._speaker-tester-upload{min-height:100px;padding:1rem}._speaker-tester-player-info{flex-direction:column;align-items:flex-start;gap:.25rem}._speaker-tester-player-channel{flex-direction:column;align-items:flex-start;gap:.5rem}}@media (max-width:480px){._speaker-tester-player-btn{width:44px;height:44px}._speaker-tester-player-btn--remove{width:32px;height:32px}}
