.speech-acoustics-panel { padding: 20px; display: grid; gap: 20px; min-width: 0; border-top: 1px solid var(--border); }
.speech-acoustics-heading, .speech-acoustics-results-heading { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.speech-acoustics-heading > div, .speech-acoustics-results-heading > div:first-child { flex: 1 1 280px; min-width: 0; }
.speech-acoustics-heading .h3, .speech-acoustics-results-heading .h3 { margin: 0; }
.speech-acoustics-heading p, .speech-acoustics-results-heading p { margin: 7px 0 0; line-height: 1.6; font-size: 12px; }
.speech-acoustics-controls, .speech-acoustics-results, .speech-acoustics-comparison { display: grid; gap: 14px; min-width: 0; }
.speech-acoustics-field { display: grid; gap: 6px; min-width: 0; }
.speech-acoustics-field > span { font-size: 12px; color: var(--text-2); }
.speech-acoustics-field > .input, .speech-acoustics-field > .select { width: 100%; min-width: 0; }
.speech-acoustics-interval, .speech-acoustics-pitch-range { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.speech-acoustics-interval > .speech-acoustics-field, .speech-acoustics-pitch-range > .speech-acoustics-field { flex: 1 1 130px; max-width: 220px; }
.speech-acoustics-interval > .muted { font-size: 12px; padding-bottom: 9px; }
.speech-acoustics-interval > .speech-acoustics-error { flex-basis: 100%; }
.speech-acoustics-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.speech-acoustics-error { margin: 0; padding: 10px 12px; color: var(--danger); background: var(--danger-soft); border-radius: 7px; font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.speech-acoustics-saved:empty { display: none; }
.speech-acoustics-saved > .muted { font-size: 12px; }
.speech-acoustics-comparison { padding: 15px; background: var(--surface-2); border: 1px solid var(--border); border-radius: 9px; }
.speech-acoustics-note { font-size: 12px; line-height: 1.65; margin: 0; }
.speech-acoustics-empty { padding: 22px; border: 1px dashed var(--border-strong, var(--border)); border-radius: 9px; font-size: 13px; line-height: 1.7; }
.speech-acoustics-empty p { margin: 6px 0 0; color: var(--text-2); }
.speech-acoustics-chart { min-width: 0; border: 1px solid var(--border); border-radius: 9px; overflow: hidden; padding: 13px 14px; }
.speech-acoustics-chart-heading { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; justify-content: space-between; }
.speech-acoustics-chart-heading h4 { font-size: 13px; margin: 0; }
.speech-acoustics-chart-heading > span { font-size: 11px; }
.speech-acoustics-chart svg { display: block; width: 100%; height: auto; margin-top: 9px; min-height: 125px; }
.speech-acoustics-chart svg.is-seekable { cursor: crosshair; }
.speech-acoustics-chart svg:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; border-radius: 4px; }
.speech-acoustics-chart-description { margin: 5px 0 0; font-size: 11px; line-height: 1.6; }
.speech-acoustics-grid { stroke: var(--border); stroke-width: 1; }
.speech-acoustics-axis { fill: var(--text-2); font-size: 10px; font-family: inherit; }
.speech-acoustics-line { fill: none; stroke-width: 1.7; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.speech-acoustics-line.trace-0 { stroke: #7260d9; }
.speech-acoustics-line.trace-1 { stroke: #e79039; }
.speech-acoustics-cursor { stroke: var(--text-2); stroke-width: 1; stroke-dasharray: 3 3; }
.speech-acoustics-legend { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 12px; line-height: 1.6; }
.speech-acoustics-legend > span { display: inline-flex; align-items: center; gap: 7px; overflow-wrap: anywhere; min-width: 0; }
.speech-acoustics-legend i { width: 17px; height: 3px; display: inline-block; flex-shrink: 0; border-radius: 2px; }
.speech-acoustics-legend i.trace-0 { background: #7260d9; }
.speech-acoustics-legend i.trace-1 { background: #e79039; }
.speech-acoustics-table-wrap { overflow-x: auto; }
.speech-acoustics-metrics { width: 100%; border-collapse: collapse; font-size: 12px; line-height: 1.6; }
.speech-acoustics-metrics th, .speech-acoustics-metrics td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border); vertical-align: top; }
.speech-acoustics-metrics th { font-weight: 500; }
.speech-acoustics-metrics thead { background: var(--surface-2); }
.speech-acoustics-metrics thead th { max-width: 240px; overflow-wrap: anywhere; }
.speech-acoustics-metrics tbody th { color: var(--text-2); }
.speech-acoustics-details { color: var(--text-2); font-size: 12px; line-height: 1.65; }
.speech-acoustics-details summary { cursor: pointer; }
.speech-acoustics-details > div { margin-top: 12px; }
.speech-acoustics-details p { margin: 9px 0 0; font-size: 11px; }
.speech-acoustics-details pre { white-space: pre-wrap; overflow-wrap: anywhere; max-height: 240px; overflow-y: auto; font-size: 11px; }
.speech-acoustics-activity { display: grid; gap: 6px; }
.speech-acoustics-activity-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 6px; font-size: 11px; }
.speech-acoustics-activity-track { position: relative; height: 18px; background: var(--surface-2); border: 1px solid var(--border); overflow: hidden; border-radius: 4px; }
.speech-acoustics-activity-track > button { position: absolute; top: 0; bottom: 0; border: 0; padding: 0; background: #7260d9; opacity: .6; cursor: pointer; }
.speech-acoustics-activity-track > button:disabled { cursor: default; }
.speech-acoustics-activity-track > button:focus-visible { opacity: 1; outline: 2px solid var(--text); outline-offset: -2px; }
@media (max-width: 560px) {
  .speech-acoustics-panel { padding: 16px 12px; }
  .speech-acoustics-chart { padding: 12px 7px; }
  .speech-acoustics-interval > .speech-acoustics-field, .speech-acoustics-pitch-range > .speech-acoustics-field { flex: 1 1 100px; max-width: none; }
  .speech-acoustics-metrics th, .speech-acoustics-metrics td { padding: 8px; }
}
