/*
 * NableU maintainer note
 * Purpose: Neutralises generic app button hover/active/selection chrome on the
 * free-floating Ikirōne avatar while retaining an explicit keyboard focus ring.
 * Also styles the bounded Ikirōne conversation so structured model output stays
 * readable without allowing model-supplied HTML into the page.
 */

button.ikirone-companion-trigger,
button.ikirone-companion-trigger:hover,
button.ikirone-companion-trigger:active,
button.ikirone-companion-trigger:focus,
button.ikirone-companion-trigger:focus-visible {
  border: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--text-main, #172033);
}

button.ikirone-companion-trigger,
button.ikirone-companion-trigger * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}

button.ikirone-companion-trigger::selection,
button.ikirone-companion-trigger *::selection {
  background: transparent;
  color: inherit;
}

button.ikirone-companion-trigger:focus-visible {
  outline: 3px solid var(--accent, #155dfb);
  outline-offset: 4px;
  border-radius: 1rem;
}

.ikirone-system-avatar {
  -webkit-user-drag: none;
}

.ikirone-companion-panel-header { align-items: center; }
.ikirone-companion-panel-header .eyebrow,
.ikirone-companion-panel-header .ikirone-state-chip { display: none; }
.ikirone-companion-panel-header h2 { margin: 0; font-size: 1.2rem; }
.ikirone-companion-close { min-height: 2.75rem; padding: 0.45rem 0.7rem; }

.ikirone-reasoning {
  min-width: 0;
  min-height: 0;
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  overflow: hidden;
}

.ikirone-reasoning-log {
  display: grid;
  gap: 0.75rem;
  flex: 1 1 0;
  min-height: 3rem;
  align-content: start;
  overflow: auto;
  padding: 0.15rem 0.2rem 0.4rem 0;
  scroll-padding-block: 0.75rem;
  overscroll-behavior: contain;
}

.ikirone-companion[data-state="thinking"]:not([data-voice-active="true"]) .ikirone-reasoning-log::after {
  content: "Ikirōne is thinking…";
  justify-self: start;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--border-subtle, rgba(70, 90, 120, 0.22));
  border-radius: 0.85rem;
  background: var(--surface-soft, #f5f8fb);
  color: var(--text-muted, #697386);
  font-size: 0.85rem;
  line-height: 1.35;
  pointer-events: none;
  animation: ikirone-waiting-pulse 1.1s ease-in-out infinite alternate;
}

@keyframes ikirone-waiting-pulse {
  from { opacity: 0.62; }
  to { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .ikirone-companion[data-state="thinking"]:not([data-voice-active="true"]) .ikirone-reasoning-log::after {
    animation: none;
  }
}

.ikirone-reasoning > form { flex: 0 0 auto; gap: 0.35rem; }
.ikirone-reasoning > form label { display: flex; flex-direction: column; gap: 0.25rem; margin: 0; }
.ikirone-reasoning > form textarea { min-height: 2.75rem; height: 3.5rem; max-height: 6rem; resize: vertical; }
.ikirone-reasoning-actions { display: flex; align-items: center; gap: 0.5rem; }
.ikirone-reasoning-actions [data-ikirone-status] { font-size: 0.75rem; }
.ikirone-reasoning-actions [data-voice-start] { margin-left: auto; }
.ikirone-composer-help { display: none; }
.ikirone-reasoning > details { flex: 0 0 auto; max-height: 25%; overflow: auto; font-size: 0.85rem; }
.ikirone-knowledge-sources { display: flex; flex-wrap: wrap; gap: 0.35rem 0.7rem; font-size: 0.85rem; }
.ikirone-knowledge-sources:empty { display: none; }
.ikirone-knowledge-sources a { color: var(--accent, #155dfb); text-decoration: underline; }
.ikirone-companion[data-voice-active="true"] [data-ikirone-form],
.ikirone-companion[data-voice-active="true"] [data-ikirone-log],
.ikirone-companion[data-voice-active="true"] .ikirone-text-info { display: none; }
@media (max-height: 500px) {
  .ikirone-companion-panel { padding: 0.6rem; gap: 0.3rem; }
  .ikirone-companion-panel-header .eyebrow,
  .ikirone-companion-panel-header .ikirone-state-chip,
  .ikirone-composer-help { display: none; }
  .ikirone-companion-panel-header h2 { font-size: 1.2rem; margin: 0; }
  .ikirone-reasoning { gap: 0.3rem; }
  .ikirone-reasoning textarea { min-height: 2.5rem; height: 2.5rem; padding-block: 0.3rem; }
}

.ikirone-message {
  min-width: 0;
  padding: 0.72rem 0.78rem;
  border: 1px solid var(--border-subtle, rgba(70, 90, 120, 0.22));
  border-radius: 0.85rem;
  background: var(--surface-soft, #f5f8fb);
  overflow-wrap: anywhere;
}

.ikirone-message-user {
  background: color-mix(in srgb, var(--accent, #155dfb) 7%, var(--bg-panel, #fff));
}

.ikirone-message-author {
  display: block;
  margin-bottom: 0.38rem;
  font-size: 0.82rem;
}

.ikirone-message-body {
  display: grid;
  gap: 0.55rem;
  line-height: 1.48;
}

.ikirone-message-body-plain {
  white-space: pre-wrap;
}

.ikirone-message-body p,
.ikirone-message-body ul,
.ikirone-message-body ol,
.ikirone-message-body blockquote,
.ikirone-message-body pre {
  margin: 0;
}

.ikirone-message-body ul,
.ikirone-message-body ol {
  padding-left: 1.35rem;
}

.ikirone-message-body li + li {
  margin-top: 0.32rem;
}

.ikirone-rich-heading {
  margin-top: 0.15rem !important;
  font-weight: 800;
  font-size: 1rem;
  line-height: 1.3;
}

.ikirone-message-body blockquote {
  padding-left: 0.75rem;
  border-left: 3px solid var(--border-medium, rgba(70, 90, 120, 0.38));
  color: var(--text-muted, #697386);
}

.ikirone-message-body code {
  padding: 0.08rem 0.28rem;
  border-radius: 0.3rem;
  background: var(--bg-card-elevated, #edf3f8);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.88em;
}

.ikirone-message-body pre {
  max-width: 100%;
  overflow-x: auto;
  padding: 0.7rem;
  border-radius: 0.65rem;
  background: var(--bg-card-elevated, #edf3f8);
  white-space: pre;
}

.ikirone-message-body pre code {
  padding: 0;
  background: transparent;
}

.ikirone-composer-help {
  margin-top: -0.4rem;
}

@media (max-width: 520px) {
  .ikirone-message {
    padding: 0.65rem 0.7rem;
  }
}
