/* Mic Gain Level Meter — local overrides (Card 5, Microphone Diagnostics) */

.gm-privacy {
  max-width:760px;
  margin:var(--space-md) auto 0;
  padding:var(--space-sm) var(--space-md);
  border:1px solid rgba(0,255,65,.3);
  background:rgba(0,255,65,.06);
  border-radius:var(--radius-sm);
  color:var(--color-primary);
  font-size:.92rem;
  text-align:left;
}

.gm-toprow {
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:12px;
  justify-content:space-between;
}
.gm-device { flex:1 1 260px; }
.gm-select {
  width:100%;
  background:rgba(255,255,255,.03);
  border:1px solid rgba(0,255,65,.25);
  color:var(--color-text);
  font-family:var(--font-mono);
  font-size:.9rem;
  padding:9px 10px;
  border-radius:var(--radius-sm);
}
.gm-select:focus { outline:1px solid var(--color-primary); }
.gm-buttons { display:flex; gap:8px; }

.gm-status {
  margin-top:var(--space-sm);
  font-family:var(--font-mono);
  font-size:.85rem;
  color:var(--color-text-dim);
  min-height:1.4em;
}
.gm-status.is-live  { color:var(--color-primary); }
.gm-status.is-error { color:#ef4444; }

/* Guidance banner */
.gm-guide {
  margin-top:var(--space-md);
  padding:14px 16px;
  border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
  text-align:center;
}
.gm-guide__text {
  font-family:var(--font-display,Orbitron),var(--font-mono);
  font-size:1.15rem;
  font-weight:700;
  color:var(--color-text-dim);
}
.gm-guide[data-zone="good"] { border-color:rgba(0,255,65,.5); background:rgba(0,255,65,.08); }
.gm-guide[data-zone="good"] .gm-guide__text { color:var(--color-primary); }
.gm-guide[data-zone="low"]  { border-color:rgba(34,211,238,.45); background:rgba(34,211,238,.06); }
.gm-guide[data-zone="low"]  .gm-guide__text { color:#67e8f9; }
.gm-guide[data-zone="hot"]  { border-color:rgba(245,158,11,.5); background:rgba(245,158,11,.08); }
.gm-guide[data-zone="hot"]  .gm-guide__text { color:#fbbf24; }
.gm-guide[data-zone="clip"] { border-color:rgba(239,68,68,.6); background:rgba(239,68,68,.12); }
.gm-guide[data-zone="clip"] .gm-guide__text { color:#ef4444; }

/* Meter */
.gm-meter {
  position:relative;
  height:46px;
  margin-top:var(--space-md);
  /* fixed dBFS colour scale: green to ~87.5% (-6), amber to ~97.9% (-1), red to 0 */
  background:linear-gradient(90deg,#15803d 0%,var(--color-primary) 70%,var(--color-primary) 87.5%,#fbbf24 87.5%,#fbbf24 97.9%,#ef4444 97.9%,#ef4444 100%);
  border:1px solid rgba(255,255,255,.18);
  border-radius:var(--radius-sm);
  overflow:hidden;
}
.gm-meter__target {
  position:absolute;top:0;bottom:0;
  left:62.5%;width:25%;             /* -18 to -6 dBFS */
  border-left:1px dashed rgba(255,255,255,.5);
  border-right:1px dashed rgba(255,255,255,.5);
  background:rgba(255,255,255,.05);
  pointer-events:none;
}
.gm-meter__mask {
  position:absolute;top:0;bottom:0;right:0;left:0%;
  background:#020308;
  transition:left .04s linear;
}
.gm-meter__marker {
  position:absolute;top:0;bottom:0;width:2px;left:0%;
  pointer-events:none;
}
.gm-meter__vu   { background:#22d3ee; box-shadow:0 0 6px #22d3ee; }
.gm-meter__hold { background:#fff; box-shadow:0 0 6px #fff; transition:left .08s linear; }

.gm-scale {
  display:flex;justify-content:space-between;
  margin-top:4px;
  font-family:var(--font-mono);font-size:.65rem;color:rgba(255,255,255,.55);
}
.gm-legend {
  display:flex;flex-wrap:wrap;gap:14px;
  margin-top:8px;
  font-family:var(--font-mono);font-size:.72rem;color:var(--color-text-dim);
}
.gm-legend span { display:inline-flex;align-items:center;gap:5px; }
.gm-swatch { width:12px;height:12px;border-radius:2px;display:inline-block; }
.gm-swatch--bar { background:var(--color-primary); }
.gm-swatch--vu { background:#22d3ee; }
.gm-swatch--hold { background:#fff; }
.gm-swatch--target { background:rgba(255,255,255,.15);border:1px dashed rgba(255,255,255,.5); }

/* Cells */
.gm-cells {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-top:var(--space-md);
}
.gm-cell {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(0,255,65,.15);
  border-radius:var(--radius-sm);
  padding:10px;
  text-align:center;
}
.gm-cell__label {
  font-family:var(--font-mono);font-size:.66rem;letter-spacing:.05em;
  color:var(--color-text-dim);text-transform:uppercase;
}
.gm-cell__value {
  font-family:var(--font-mono);font-size:1.1rem;font-weight:700;
  color:var(--color-primary);margin-top:4px;
}
.gm-cell--clip[data-on="true"] { border-color:rgba(239,68,68,.6); background:rgba(239,68,68,.12); }
.gm-cell--clip[data-on="true"] .gm-cell__value { color:#ef4444; }

.gm-hist-viz { background:#020308; }

@media (max-width:640px) {
  .gm-cells { grid-template-columns:1fr 1fr; }
}
