.mt-tutor {
  --mt-paper: var(--paper, #f4f7fb);
  --mt-surface: var(--surface, #fff);
  --mt-surface-soft: var(--surface-soft, #edf3f8);
  --mt-ink: var(--ink, #142238);
  --mt-ink-soft: var(--ink-soft, #44546a);
  --mt-blue: var(--blue, #2f6fa6);
  --mt-blue-deep: var(--blue-deep, #214e78);
  --mt-blue-pale: var(--blue-pale, #dceaf5);
  --mt-red: var(--red, #c04a50);
  --mt-line: var(--line, #d7e0e9);
  color: var(--mt-ink);
  font-family: "Instrument Sans", system-ui, sans-serif;
  position: fixed;
  right: max(clamp(12px, 2.4vw, 30px), env(safe-area-inset-right));
  bottom: max(clamp(12px, 2.4vw, 30px), env(safe-area-inset-bottom));
  z-index: 1200;
}

.mt-tutor,
.mt-tutor *,
.mt-tutor *::before,
.mt-tutor *::after { box-sizing: border-box; }

.mt-tutor [hidden] { display: none !important; }

.mt-tutor button,
.mt-tutor textarea { font: inherit; }

.mt-tutor__launcher {
  align-items: center;
  background: var(--mt-blue-deep);
  border: 1px solid color-mix(in srgb, var(--mt-blue-deep) 86%, #000);
  border-radius: 999px;
  box-shadow: 0 10px 28px rgb(20 34 56 / 18%);
  color: #fff;
  cursor: pointer;
  display: flex;
  font-weight: 750;
  gap: .45rem;
  justify-content: center;
  margin-left: auto;
  min-height: 46px;
  padding: .7rem 1.15rem;
}

.mt-tutor__launcher::before {
  background: var(--mt-red);
  border-radius: 50%;
  content: "";
  height: .48rem;
  width: .48rem;
}

.mt-tutor__panel {
  background: var(--mt-surface);
  border: 1px solid var(--mt-line);
  border-radius: 18px;
  box-shadow: 0 24px 65px rgb(20 34 56 / 24%);
  margin-bottom: .7rem;
  max-height: min(760px, calc(100vh - 92px));
  max-height: min(760px, calc(100dvh - 92px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  overflow: auto;
  overflow-wrap: anywhere;
  overscroll-behavior: contain;
  padding: 1rem 1rem 1.1rem;
  position: absolute;
  right: 0;
  bottom: 100%;
  width: min(410px, calc(100vw - 24px));
}

.mt-tutor__signature {
  background: linear-gradient(90deg, #315f84 0 68%, transparent 68% 77%, #a65a5f 77% 100%);
  border-radius: 2px;
  height: 3px;
  margin-bottom: .9rem;
  width: 74px;
}

.mt-tutor__header {
  align-items: flex-start;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
}

.mt-tutor__eyebrow {
  color: var(--mt-red);
  display: block;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: .15rem;
  text-transform: uppercase;
}

.mt-tutor__header h2 {
  color: var(--mt-ink);
  font-family: "EB Garamond", Georgia, serif;
  font-size: clamp(1.5rem, 4vw, 1.85rem);
  line-height: 1.05;
  margin: 0;
}

.mt-tutor__close {
  align-items: center;
  background: transparent;
  border: 1px solid var(--mt-line);
  border-radius: 50%;
  color: var(--mt-ink-soft);
  cursor: pointer;
  display: flex;
  flex: 0 0 44px;
  font-size: 1.35rem;
  height: 44px;
  justify-content: center;
  line-height: 1;
  padding: 0;
}

.mt-tutor__context {
  color: var(--mt-ink-soft);
  font-size: .86rem;
  margin: .65rem 0 .8rem;
}

.mt-tutor__psych {
  background: color-mix(in srgb, var(--mt-red) 7%, var(--mt-surface));
  border-left: 3px solid var(--mt-red);
  color: var(--mt-ink-soft);
  font-size: .82rem;
  line-height: 1.45;
  margin: 0 0 .85rem;
  padding: .65rem .72rem;
}

.mt-tutor__form label {
  color: var(--mt-ink);
  display: block;
  font-size: .9rem;
  font-weight: 750;
  margin-bottom: .4rem;
}

.mt-tutor__form textarea {
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 10px;
  color: var(--mt-ink);
  display: block;
  line-height: 1.45;
  min-height: 82px;
  padding: .7rem .75rem;
  resize: vertical;
  width: 100%;
}

.mt-tutor__form textarea:focus,
.mt-tutor button:focus-visible {
  outline: 3px solid var(--mt-blue-deep);
  outline-offset: 2px;
}

.mt-tutor__primary,
.mt-tutor__history-toggle {
  border-radius: 9px;
  cursor: pointer;
  font-weight: 720;
}

.mt-tutor__primary {
  background: var(--mt-blue-deep);
  border: 1px solid var(--mt-blue-deep);
  color: #fff;
  margin-top: .55rem;
  min-height: 44px;
  padding: .55rem .9rem;
}

.mt-tutor button:disabled { cursor: wait; opacity: .62; }

.mt-tutor__disclosure {
  color: var(--mt-ink-soft);
  font-size: .82rem;
  line-height: 1.48;
  margin: .65rem 0 0;
}

.mt-tutor__disclosure p { margin: .36rem 0 0; }

.mt-tutor__status {
  color: var(--mt-ink-soft);
  font-size: .84rem;
  min-height: 1.2em;
  padding-top: .4rem;
}

.mt-tutor__status.is-error { color: #832e35; }

.mt-tutor__status a {
  color: inherit;
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.mt-tutor__crisis-actions,
.mt-tutor__psych-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .55rem;
}

.mt-tutor__crisis-label {
  flex-basis: 100%;
  font-weight: 700;
}

.mt-tutor__crisis-actions a,
.mt-tutor__psych-actions a {
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 999px;
  display: inline-flex;
  justify-content: center;
  min-height: 44px;
  padding: .42rem .7rem;
}

.mt-tutor__psych p { margin: 0 0 .45rem; }

.mt-tutor__unavailable {
  background: var(--mt-surface-soft);
  border: 1px solid var(--mt-line);
  border-radius: 10px;
  color: var(--mt-ink-soft);
  line-height: 1.5;
  margin: .8rem 0 0;
  padding: .8rem;
}

.mt-tutor__personal-answer {
  color: var(--mt-ink);
  font-family: "Newsreader", Georgia, serif;
  font-size: 1rem;
  line-height: 1.55;
  white-space: pre-wrap;
}

.mt-tutor__history-toggle {
  background: var(--mt-surface-soft);
  border: 1px solid var(--mt-line);
  color: var(--mt-blue-deep);
  font-size: .78rem;
  min-height: 44px;
  padding: .42rem .62rem;
}

.mt-tutor__review-state {
  background: var(--mt-blue-pale);
  border-radius: 9px;
  color: var(--mt-blue-deep);
  font-size: .84rem;
  font-weight: 750;
  margin: .75rem 0 0;
  padding: .65rem .7rem;
}

.mt-tutor__history {
  border-top: 1px solid var(--mt-line);
  margin-top: .85rem;
  padding-top: .75rem;
}

.mt-tutor__history-toggle {
  background: transparent;
  padding-left: 0;
  text-align: left;
}

.mt-tutor__history-delete {
  background: transparent;
  border-color: #a65a5f;
  color: #832e35;
  margin-top: .65rem;
  min-height: 44px;
}

#mt-tutor-history-list {
  display: grid;
  gap: .55rem;
  margin-top: .55rem;
}

.mt-tutor__history-item {
  background: var(--mt-paper);
  border: 1px solid var(--mt-line);
  border-radius: 10px;
  padding: .7rem;
}

.mt-tutor__history-item strong {
  color: var(--mt-blue-deep);
  display: block;
  font-size: .8rem;
}

.mt-tutor__history-question,
.mt-tutor__history-empty {
  color: var(--mt-ink-soft);
  font-size: .78rem;
  margin: .35rem 0 0;
}

.mt-tutor__history-meta {
  color: var(--mt-muted);
  font-size: .72rem;
  margin: 0 0 .2rem;
}

.mt-tutor__history-context {
  color: var(--mt-blue-deep);
  font-size: .8rem;
  font-weight: 720;
  margin: 0 0 .3rem;
}

.mt-tutor__personal-answer { margin-top: .55rem; }

@media (max-width: 520px) {
  .mt-tutor {
    bottom: max(10px, env(safe-area-inset-bottom));
    right: max(10px, env(safe-area-inset-right));
  }
  .mt-tutor__panel {
    max-height: calc(100vh - 76px);
    max-height: calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    width: calc(100vw - 20px - env(safe-area-inset-left) - env(safe-area-inset-right));
  }
  .mt-tutor__launcher { min-height: 44px; padding: .62rem 1rem; }
}

@media print {
  .mt-tutor { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .mt-tutor * { scroll-behavior: auto !important; }
}
