/* Sleep Environment Noise Checker — local overrides (Noise Analysis & Monitoring).
   Uncalibrated dBFS / estimated dB SPL via shared fd-noise-cal calibration. */

/* honest caveat note in the hero */
.snc-warn-note {
  max-width:820px;
  margin:var(--space-md) auto 0;
  padding:var(--space-md);
  border:1px solid rgba(255,179,0,.45);
  background:rgba(255,179,0,.07);
  border-radius:var(--radius-sm);
  color:var(--color-warning);
  font-size:.92rem;
  line-height:1.55;
  text-align:left;
}

/* device select */
.snc-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);
}
.snc-select:focus { outline:1px solid var(--color-primary); }

.snc-num {
  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:.95rem;
  padding:9px 10px;
  border-radius:var(--radius-sm);
}
.snc-num:focus { outline:1px solid var(--color-primary); }

/* status + consent + calibration text */
.snc-status {
  margin-top:var(--space-sm);
  text-align:center;
  font-family:var(--font-mono);
  font-size:.85rem;
  color:var(--color-text-dim);
  min-height:1.4em;
}
.snc-status.is-live  { color:var(--color-primary); }
.snc-status.is-error { color:var(--color-error); }

.snc-consent {
  margin-top:var(--space-sm);
  font-size:.8rem;
  line-height:1.5;
  color:var(--color-text-dim);
}

.snc-shared {
  font-size:.7rem;
  color:var(--color-secondary);
  font-family:var(--font-mono);
  text-transform:none;
}

.snc-cal-state {
  margin-top:var(--space-sm);
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  border-radius:var(--radius-sm);
  font-size:.8rem;
  line-height:1.5;
  color:var(--color-text-dim);
}
.snc-cal-state.is-set {
  border-color:rgba(0,255,65,.4);
  background:rgba(0,255,65,.06);
  color:var(--color-primary);
}

/* big level readout */
.snc-readout {
  text-align:center;
  padding:var(--space-md);
  border:1px solid rgba(0,255,65,.15);
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.02);
}
.snc-readout[data-on="true"] { border-color:rgba(0,255,65,.4); }
.snc-readout__val {
  font-family:var(--font-mono);
  font-size:3rem;
  font-weight:700;
  color:var(--color-primary);
  line-height:1.05;
}
.snc-readout[data-on="false"] .snc-readout__val { color:var(--color-text-dim); }
.snc-readout__unit {
  font-size:1rem;
  margin-left:.4em;
  color:var(--color-text-dim);
}
.snc-readout__sub {
  margin-top:6px;
  font-size:.78rem;
  color:var(--color-text-dim);
  min-height:1.2em;
}

/* WHO verdict pill */
.snc-verdict {
  display:flex;align-items:center;gap:10px;
  margin-top:var(--space-md);
  padding:12px 14px;
  border-radius:var(--radius-sm);
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.03);
}
.snc-verdict__dot { width:13px;height:13px;border-radius:50%;background:var(--color-text-dim);flex:0 0 auto; }
.snc-verdict__text { font-family:var(--font-mono);font-weight:700;font-size:.92rem;color:var(--color-text); }
.snc-verdict[data-state="ideal"] { border-color:rgba(0,230,118,.5); background:rgba(0,230,118,.08); }
.snc-verdict[data-state="ideal"] .snc-verdict__dot { background:var(--color-success);box-shadow:0 0 10px var(--color-success); }
.snc-verdict[data-state="ideal"] .snc-verdict__text { color:var(--color-success); }
.snc-verdict[data-state="acceptable"] { border-color:rgba(255,179,0,.5); background:rgba(255,179,0,.08); }
.snc-verdict[data-state="acceptable"] .snc-verdict__dot { background:var(--color-warning); }
.snc-verdict[data-state="acceptable"] .snc-verdict__text { color:var(--color-warning); }
.snc-verdict[data-state="disruptive"] { border-color:rgba(255,23,68,.5); background:rgba(255,23,68,.08); }
.snc-verdict[data-state="disruptive"] .snc-verdict__dot { background:var(--color-error); }
.snc-verdict[data-state="disruptive"] .snc-verdict__text { color:#ff8a9b; }
.snc-verdict[data-state="uncal"] .snc-verdict__text,
.snc-verdict[data-state="idle"] .snc-verdict__text { color:var(--color-text-dim); }

.snc-verdict-note {
  margin-top:8px;
  font-size:.78rem;
  line-height:1.5;
  color:var(--color-text-dim);
}

/* spectrum canvas + bands */
.snc-spectrum {
  width:100%;
  height:auto;
  display:block;
  border:1px solid rgba(0,255,65,.15);
  border-radius:var(--radius-sm);
  background:#020308;
}
.snc-bands {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
  margin-top:8px;
}
.snc-band {
  background:rgba(255,255,255,.03);
  border:1px solid rgba(0,255,65,.15);
  border-radius:var(--radius-sm);
  padding:8px;
  text-align:center;
}
.snc-band__label {
  font-family:var(--font-mono);font-size:.6rem;letter-spacing:.04em;
  color:var(--color-text-dim);text-transform:uppercase;
}
.snc-band__val {
  font-family:var(--font-mono);font-size:1.05rem;font-weight:700;
  color:var(--color-primary);margin-top:3px;
}
.snc-character {
  margin-top:var(--space-md);
  padding:10px 12px;
  border:1px solid rgba(0,229,255,.3);
  background:rgba(0,229,255,.06);
  border-radius:var(--radius-sm);
  font-size:.88rem;
  line-height:1.5;
  color:var(--color-secondary);
  min-height:1.4em;
}

/* session stats */
.snc-cells {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:8px;
  margin-top:var(--space-md);
}
.snc-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;
}
.snc-cell__label {
  font-family:var(--font-mono);font-size:.62rem;letter-spacing:.04em;
  color:var(--color-text-dim);text-transform:uppercase;
}
.snc-cell__value {
  font-family:var(--font-mono);font-size:1rem;font-weight:700;
  color:var(--color-primary);margin-top:4px;
}

.snc-masking {
  margin-top:var(--space-md);
  font-size:.88rem;
  line-height:1.55;
  color:var(--color-text-dim);
}
.snc-masking a { color:var(--color-primary); }

@media (max-width:760px) {
  .snc-cells { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:460px) {
  .snc-cells { grid-template-columns:repeat(2,1fr); }
  .snc-readout__val { font-size:2.4rem; }
}
