/* CASE-004 · Audio Analysis Laboratory */
.task-feature-box { margin-top: 16px; }
.task-feature-box.hidden { display: none; }
.audio-lab-launch {
  width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 13px 15px; border: 1px solid var(--screen-dim); border-radius: 3px;
  background: linear-gradient(180deg, rgba(18,48,54,.92), rgba(6,20,24,.96));
  color: var(--screen); cursor: pointer; font-family: var(--font-mono); text-align: left;
  box-shadow: inset 0 1px 0 rgba(168,240,232,.15), 0 0 18px rgba(95,227,212,.12);
}
.audio-lab-launch:hover { box-shadow: inset 0 1px 0 rgba(168,240,232,.25), 0 0 24px rgba(95,227,212,.26); }
.audio-lab-launch__icon { font-size: 22px; color: var(--amber); }
.audio-lab-launch__copy { flex: 1; min-width: 0; }
.audio-lab-launch__title { display: block; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; }
.audio-lab-launch__meta { display: block; margin-top: 3px; color: var(--screen-dim); font-size: 10.5px; }
.audio-lab-launch__arrow { color: var(--amber); font-size: 17px; }

.audio-lab-overlay { position: fixed; inset: 0; z-index: 500; display: none; align-items: center; justify-content: center; padding: 22px; background: rgba(2,7,9,.92); backdrop-filter: blur(9px); }
.audio-lab-overlay.open { display: flex; }
.audio-lab-shell { position: relative; width: min(1240px, 100%); max-height: 94vh; overflow: auto; border: 1px solid rgba(108,200,192,.7); border-radius: 8px; background: radial-gradient(circle at 78% 0%, rgba(95,227,212,.08), transparent 38%), linear-gradient(145deg,#101c23,#071014 72%); box-shadow: 0 28px 80px rgba(0,0,0,.78), 0 0 34px rgba(95,227,212,.13); }
.audio-lab-shell::before { content:""; position:absolute; inset:0; pointer-events:none; background: repeating-linear-gradient(to bottom,rgba(95,227,212,.026) 0,rgba(95,227,212,.026) 1px,transparent 1px,transparent 4px); }
.audio-lab-header { position: sticky; top: 0; z-index: 6; display:flex; justify-content:space-between; align-items:flex-start; gap:18px; padding:18px 20px; background:rgba(7,16,20,.96); border-bottom:1px solid var(--border-2); }
.audio-lab-kicker { color:var(--screen-dim); font:600 10.5px/1.3 var(--font-mono); letter-spacing:.17em; text-transform:uppercase; }
.audio-lab-title { margin:5px 0 0; color:var(--bone); font:500 22px/1.2 var(--font-mono); }
.audio-lab-close { flex:0 0 auto; width:40px; height:40px; border:1px solid var(--border-2); background:var(--bg-3); color:var(--screen); cursor:pointer; font-size:20px; }
.audio-lab-grid { position:relative; z-index:2; display:grid; grid-template-columns:minmax(0,1.45fr) minmax(310px,.75fr); gap:18px; padding:20px; }
.audio-lab-panel { border:1px solid var(--border); background:rgba(10,19,24,.84); padding:15px; box-shadow:inset 0 0 25px rgba(0,0,0,.28); }
.audio-lab-panel h4 { margin:0 0 11px; color:var(--amber); font:500 11px/1.4 var(--font-mono); letter-spacing:.12em; text-transform:uppercase; }
.audio-lab-notice { margin:0 20px 18px; padding:10px 12px; color:var(--bone-dim); border-left:3px solid var(--amber); background:rgba(232,176,74,.07); font-size:12px; }
.audio-canvas-wrap { position:relative; background:#031014; border:1px solid rgba(95,227,212,.35); overflow:hidden; }
#audioWaveCanvas { width:100%; height:250px; display:block; touch-action:none; cursor:crosshair; }
#audioSpectrumCanvas { width:100%; height:155px; display:block; background:#041216; border:1px solid rgba(95,227,212,.25); }
.audio-time-row { display:flex; justify-content:space-between; margin-top:8px; color:var(--screen-dim); font:11px var(--font-mono); }
.audio-controls { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; margin-top:14px; }
.audio-control { padding:10px; border:1px solid var(--border); background:rgba(20,32,40,.76); }
.audio-control label { display:flex; justify-content:space-between; gap:10px; margin-bottom:7px; color:var(--bone-dim); font:10.5px var(--font-mono); text-transform:uppercase; letter-spacing:.08em; }
.audio-control input[type=range] { width:100%; accent-color:var(--screen-glow); }
.audio-transport { display:flex; flex-wrap:wrap; gap:8px; margin-top:13px; }
.audio-transport button,.audio-channel button,.audio-loop-btn { border:1px solid var(--screen-dim); background:#07191d; color:var(--screen); padding:9px 12px; cursor:pointer; font:500 11px var(--font-mono); text-transform:uppercase; letter-spacing:.08em; }
.audio-transport button:hover,.audio-channel button:hover,.audio-loop-btn:hover { box-shadow:0 0 12px rgba(95,227,212,.3); }
.audio-channel { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }
.audio-channel button.active,.audio-loop-btn.active { color:#071014; background:var(--screen); box-shadow:0 0 16px rgba(95,227,212,.4); }
.audio-lab-brief { color:var(--text); line-height:1.65; font-size:13.5px; }
.audio-selection-readout { margin-top:10px; color:var(--amber); font:11px var(--font-mono); }
.audio-match { margin-top:14px; padding:13px; border:1px solid var(--border-2); background:#08161b; }
.audio-match__status { color:var(--muted); font:11px var(--font-mono); text-transform:uppercase; letter-spacing:.08em; }
.audio-match.unlocked { border-color:var(--green-led); box-shadow:0 0 18px rgba(111,255,174,.12); }
.audio-match.unlocked .audio-match__status { color:var(--green-led); }
.audio-match__result { margin-top:8px; color:var(--bone); font:600 15px/1.5 var(--font-mono); }
.audio-reference-list { display:grid; gap:7px; margin-top:12px; }
.audio-reference { display:grid; grid-template-columns:1fr auto; gap:8px; padding:8px 9px; border:1px solid var(--border); color:var(--muted); font:10.5px var(--font-mono); }
.audio-reference.best { border-color:var(--amber-dim); color:var(--amber); }
.audio-lab-loading { color:var(--screen-dim); font:12px var(--font-mono); padding:20px; }
@media (max-width: 760px) {
  .audio-lab-overlay { padding:0; align-items:stretch; }
  .audio-lab-shell { width:100%; max-height:100vh; border-radius:0; }
  .audio-lab-header { padding:14px; }
  .audio-lab-title { font-size:17px; }
  .audio-lab-grid { grid-template-columns:1fr; padding:12px; gap:12px; }
  .audio-lab-notice { margin:0 12px 12px; }
  #audioWaveCanvas { height:210px; }
  .audio-controls { grid-template-columns:1fr; }
  .audio-channel { grid-template-columns:1fr 1fr 1fr; }
}
