/*
 * NableU maintainer note
 * Purpose: Keeps optional Ikirōne voice controls explicit, reachable and
 * truthful on desktop/mobile, including reduced-motion and forced-colour use.
 */

.ikirone-voice {
  display: flex;
  flex-direction: column;
  flex: 0 0 auto;
  gap: 0.7rem;
  min-width: 0;
  padding: 0.85rem;
  border: 1px solid var(--border-subtle, rgba(70, 90, 120, 0.25));
  border-radius: 0.9rem;
  background: color-mix(in srgb, var(--accent, #155dfb) 5%, var(--bg-panel, #fff));
}
.ikirone-companion[data-voice-active="true"] .ikirone-voice,
.ikirone-companion[data-voice-has-transcript="true"] .ikirone-voice { flex: 1 1 auto; min-height: 0; overflow: hidden; }
.ikirone-companion[data-voice-active="true"] [data-voice-consent] { display: none; }
.ikirone-voice-heading { display: none; }
.ikirone-voice-controls, [data-voice-status] { flex: 0 0 auto; }
[data-voice-status] { font-size: 0.8rem; }
.ikirone-voice-info { flex: 0 0 auto; font-size: 0.85rem; max-height: 25%; overflow: auto; }
.ikirone-voice > .ikirone-knowledge-sources { flex: 0 0 auto; max-height: 3rem; overflow: auto; }
.ikirone-companion:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) .ikirone-voice-info,
.ikirone-companion:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) .ikirone-voice-transcript { display: none; }
.ikirone-companion:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) .ikirone-voice { padding: 0; border: 0; background: none; gap: 0.3rem; }
.ikirone-companion:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) .ikirone-voice-heading { display: none; }
.ikirone-companion[data-state="available"]:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) [data-voice-status],
.ikirone-companion[data-state="complete"]:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) [data-voice-status],
.ikirone-companion[data-state="thinking"]:not([data-voice-active="true"]):not([data-voice-has-transcript="true"]) [data-voice-status] { display: none; }
[data-voice-consent] { margin: 0; font-size: 0.75rem; }

.ikirone-voice[hidden] { display: none; }

.ikirone-voice-heading,
.ikirone-voice-controls,
.ikirone-voice-transcript-heading {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem;
}

.ikirone-conversation-actions {
  display: flex;
  align-items: center;
  justify-self: end;
  justify-content: flex-end;
}
.ikirone-retention-switch {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.78rem;
  line-height: 1.2;
  cursor: pointer;
}
.ikirone-retention-switch input[role="switch"] {
  width: 2.2rem;
  height: 1.25rem;
  margin: 0;
  accent-color: var(--accent, #155dfb);
}
.ikirone-retention-switch strong {
  min-width: 2.1rem;
  font-size: 0.72rem;
  text-align: start;
}
.ikirone-conversation-actions [data-voice-save-ended] {
  min-height: 2.25rem;
  max-width: 12rem;
  padding: 0.4rem 0.55rem;
  font-size: 0.78rem;
  line-height: 1.2;
  white-space: normal;
}
.ikirone-conversation-save-status { display: block; }
.ikirone-conversation-save-status:empty { display: none; }

.ikirone-voice-heading h3,
.ikirone-voice-heading p,
.ikirone-voice-transcript p { margin: 0; }

.ikirone-voice-controls[hidden] { display: none; }
.ikirone-voice .ikirone-voice-heading { display: none; }

.ikirone-voice-controls button {
  min-height: 2.75rem;
  padding: 0.4rem;
}

.ikirone-voice-transcript {
  display: grid;
  gap: 0.45rem;
  min-height: 2rem;
  flex: 1 1 0;
  align-content: start;
  overflow: auto;
  padding: 0.65rem;
  border-radius: 0.7rem;
  background: var(--bg-card, var(--bg-panel, #fff));
  overflow-wrap: anywhere;
  overscroll-behavior: contain;
}

.ikirone-voice-transcript[hidden] { display: none; }
.ikirone-voice-transcript [data-voice-transcript-log] { display: grid; gap: 0.45rem; }
.ikirone-voice-transcript [data-voice-live-transcript]:empty,
.ikirone-voice-transcript [data-voice-copy-status]:empty { display: none; }
.ikirone-voice-transcript [data-voice-live-transcript] { color: var(--text-muted, #697386); }
.ikirone-voice-transcript [data-voice-turn][data-voice-role="user"] { padding-inline-start: 0.35rem; border-inline-start: 2px solid var(--border-subtle, rgba(70, 90, 120, 0.25)); }
.ikirone-voice-transcript [data-voice-status="failed"] [data-voice-turn-text] { color: var(--text-muted, #697386); }
.ikirone-voice audio { width: 1px; height: 1px; position: absolute; overflow: hidden; opacity: 0; pointer-events: none; }

.ikirone-voice-expression {
  display: grid;
  gap: 0.65rem;
  min-width: 0;
  padding: 0.8rem;
  border: 1px solid var(--border-subtle, rgba(70, 90, 120, 0.25));
  border-radius: 0.9rem;
}

.ikirone-companion[data-state="listening"] .ikirone-state-chip,
.ikirone-companion[data-state="speaking"] .ikirone-state-chip {
  color: #075d48;
  background: color-mix(in srgb, #28b88a 16%, var(--bg-panel, #fff));
}

.ikirone-companion[data-state="muted"] .ikirone-state-chip,
.ikirone-companion[data-state="connecting"] .ikirone-state-chip,
.ikirone-companion[data-state="responding"] .ikirone-state-chip {
  color: var(--accent, #155dfb);
  background: color-mix(in srgb, var(--accent, #155dfb) 12%, var(--bg-panel, #fff));
}

.ikirone-companion[data-state="error"] .ikirone-state-chip {
  color: var(--danger, #a32d2d);
  background: color-mix(in srgb, var(--danger, #a32d2d) 12%, var(--bg-panel, #fff));
}

@media (max-width: 520px) {
  .ikirone-voice { padding: 0.72rem; }
  .ikirone-voice-controls { align-items: stretch; }
  .ikirone-voice-controls button { flex-basis: 5.5rem; padding: 0.5rem; font-size: 0.9rem; }
  .ikirone-voice-transcript-heading { grid-template-columns: minmax(0, 1fr) auto; }
  .ikirone-conversation-actions { justify-self: stretch; justify-content: flex-end; }
  .ikirone-retention-switch > span { max-width: 9rem; }
  .ikirone-conversation-actions [data-voice-save-ended] { max-width: 10rem; }
}

@media (forced-colors: active) {
  .ikirone-voice,
  .ikirone-voice-transcript,
  .ikirone-voice-expression { border: 2px solid ButtonText; background: Canvas; color: CanvasText; }
  .ikirone-voice-transcript [data-voice-turn][data-voice-role="user"] { border-inline-start-color: ButtonText; }
  .ikirone-retention-switch input[role="switch"] { forced-color-adjust: auto; }
  .ikirone-conversation-actions [data-voice-save-ended] { forced-color-adjust: auto; }
}