/* ==========================================================================
   お試しボット（ルミナ お試し相談）
   3色ルール・罫線・余白のトーンは本体に合わせる。影・多色は使わない。
   アバターと選択カードで「相談相手がいる」印象を作る。
   ========================================================================== */

.trial__launch {
  position: fixed;
  right: clamp(16px, 2.5vw, 32px);
  /* to-top（44px）と縦に並ぶよう、その分だけ上に置く */
  bottom: calc(clamp(16px, 2.5vw, 32px) + 44px + 12px);
  z-index: 92;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 8px 16px 8px 8px;
  background: var(--ink);
  color: var(--paper);
  border: 1px solid var(--ink);
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: 600;
  letter-spacing: 0.06em;
  cursor: pointer;
}
.trial__launch:hover { background: var(--ink-deep); }
.trial__launch-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid var(--rule-control-invert);
}
.trial__badge {
  padding: 2px 6px;
  border: 1px solid var(--rule-control-invert);
  color: var(--brass-light);
  font-size: 0.6875rem;
}
@media (max-width: 768.98px) {
  /* モバイルではto-topが出ないため最下部に置く */
  .trial__launch { bottom: 16px; }
}

.trial__panel[hidden] { display: none; }
.trial__panel {
  position: fixed;
  right: clamp(16px, 2.5vw, 32px);
  bottom: calc(clamp(16px, 2.5vw, 32px) + 44px + 12px + 56px);
  z-index: 95;
  width: min(370px, calc(100vw - 32px));
  display: flex;
  flex-direction: column;
  max-height: min(560px, 72vh);
  background: var(--paper);
  border: 1px solid var(--rule-control);
}
.trial__panel.is-max {
  width: min(520px, calc(100vw - 32px));
  max-height: min(760px, 86vh);
}
@media (max-width: 768.98px) {
  .trial__panel { bottom: calc(16px + 56px); }
  .trial__panel.is-max {
    right: 16px;
    width: calc(100vw - 32px);
    max-height: calc(100dvh - 96px);
  }
}

.trial__head {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  background: var(--ink);
  color: var(--paper);
}
.trial__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid var(--rule-control-invert);
  flex: none;
}
.trial__id { min-width: 0; }
.trial__title {
  font-family: var(--font-serif);
  font-weight: 600;
  font-size: var(--fs-sm);
  line-height: 1.4;
}
.trial__sub {
  font-size: 0.6875rem;
  color: var(--paper-72);
  line-height: 1.4;
}
.trial__left {
  margin-left: auto;
  font-size: 0.6875rem;
  color: var(--brass-light);
  text-align: right;
  white-space: nowrap;
  flex: none;
}
.trial__max,
.trial__close {
  background: transparent;
  border: 0;
  color: var(--paper);
  line-height: 1;
  width: 32px;
  height: 32px;
  cursor: pointer;
  flex: none;
}
.trial__max { font-size: 1rem; }
.trial__close { font-size: 1.25rem; }
@media (max-width: 479.98px) {
  .trial__max { display: none; }
}

.trial__log {
  flex: 1;
  overflow-y: auto;
  padding: var(--sp-4);
  display: grid;
  gap: var(--sp-3);
  align-content: start;
  min-height: 200px;
}

/* モデル発言はアバター付きの行にする */
.trial__row {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-2);
  max-width: 92%;
}
.trial__row-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1px solid var(--rule-faint);
  flex: none;
  margin-top: 2px;
}
.trial__msg {
  padding: 10px 12px;
  font-size: var(--fs-xs);
  line-height: 1.8;
  white-space: pre-wrap;
  word-break: break-word;
}
.trial__msg--model {
  background: var(--paper-tint);
  border: 1px solid var(--rule-faint);
}
.trial__msg--user {
  justify-self: end;
  max-width: 88%;
  background: var(--ink);
  color: var(--paper);
}

/* 立場の選択カード */
.trial__cards {
  display: grid;
  gap: var(--sp-2);
  margin-left: calc(28px + var(--sp-2));   /* アバター分だけ吹き出しに揃える */
}
.trial__card {
  display: grid;
  gap: 2px;
  text-align: left;
  padding: 10px 12px;
  background: var(--paper);
  border: 1px solid var(--rule-control);
  font-family: var(--font-sans);
  color: var(--ink);
  cursor: pointer;
  min-height: 44px;
}
.trial__card:hover { border-color: var(--ink); background: var(--ink-06); }
.trial__card-label {
  font-size: var(--fs-xs);
  font-weight: 600;
}
.trial__card-desc {
  font-size: 0.6875rem;
  color: var(--ink-72);
  line-height: 1.6;
}

.trial__limit {
  border: 1px solid var(--rule);
  padding: var(--sp-4);
}
.trial__limit-title {
  font-family: var(--font-serif);
  font-weight: 600;
  margin-bottom: var(--sp-2);
}
.trial__limit-desc {
  font-size: var(--fs-xs);
  line-height: 1.85;
  color: var(--ink-72);
  margin-bottom: var(--sp-3);
}
.trial__limit-actions {
  display: grid;
  gap: var(--sp-2);
}
.trial__limit-actions .btn { width: 100%; min-height: 44px; font-size: var(--fs-xs); }

.trial__form[hidden] { display: none; }
.trial__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--sp-2);
  padding: var(--sp-3) var(--sp-4);
  border-top: 1px solid var(--rule-faint);
}
.trial__input {
  font: inherit;
  font-size: var(--fs-xs);
  line-height: 1.6;
  padding: 10px 12px;
  border: 1px solid var(--rule-control);
  background: var(--paper);
  color: var(--ink);
  resize: none;
}
.trial__input:focus-visible { outline: 2px solid var(--ink); outline-offset: 1px; }
@media (max-width: 768.98px) {
  /* iOS Safariは16px未満の入力欄でフォーカス時に自動ズームするため、それを防ぐ */
  .trial__input { font-size: 16px; }
}
.trial__send { min-height: 44px; padding: 10px 16px; font-size: var(--fs-xs); }

.trial__note {
  padding: 0 var(--sp-4) var(--sp-3);
  font-size: 0.6875rem;
  line-height: 1.7;
  color: var(--ink-72);
}

@media print {
  .trial { display: none !important; }
}
