/* V35: familiar, chat-first Evidence Navigator. */
.navigator-chat .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.navigator-page-launch {
  min-height: auto;
  padding-block: clamp(1rem, 2.2vw, 1.75rem) clamp(2rem, 4vw, 3.5rem);
}

.navigator-chat {
  position: relative;
  display: grid;
  grid-template-rows: auto minmax(20rem, auto) auto;
  width: min(100%, 72rem);
  min-height: clamp(32rem, calc(100svh - 15rem), 40rem);
  margin-inline: auto;
  overflow: clip;
  border: 1px solid rgba(143, 192, 216, .24);
  border-radius: 1.15rem;
  background:
    linear-gradient(180deg, rgba(6, 27, 38, .97), rgba(5, 23, 32, .98)),
    #061b26;
  box-shadow: 0 1.8rem 5rem rgba(0, 10, 16, .3), 0 0 0 1px rgba(84, 207, 151, .04);
}

.navigator-chat::before {
  position: absolute;
  z-index: 2;
  top: 0;
  right: 1.2rem;
  left: 1.2rem;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(84, 207, 151, .75), transparent);
  content: "";
  pointer-events: none;
}

.navigator-chat__header {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-height: 4.6rem;
  padding: .85rem 1.15rem;
  border-bottom: 1px solid rgba(143, 192, 216, .15);
  background: rgba(4, 20, 29, .84);
  backdrop-filter: blur(14px);
}

.navigator-agent {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-width: 0;
}

.navigator-agent__mark,
.navigator-turn__avatar {
  position: relative;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(84, 207, 151, .45);
  background:
    radial-gradient(circle at center, rgba(84, 207, 151, .2) 0 1px, transparent 2px),
    linear-gradient(145deg, rgba(84, 207, 151, .13), rgba(84, 207, 151, .035));
  color: #8ce4bb;
  font-family: var(--mono);
  font-weight: 900;
  letter-spacing: .04em;
}

.navigator-agent__mark {
  width: 3.3rem;
  height: 3.3rem;
  overflow: hidden;
  border-radius: .9rem;
  box-shadow: inset 0 0 0 1px rgba(143, 192, 216, .045), 0 0 1.4rem rgba(84, 207, 151, .06);
}

.navigator-agent__mark::before {
  position: absolute;
  inset: .58rem;
  border: 1px solid rgba(143, 192, 216, .32);
  border-radius: 50%;
  box-shadow: 0 0 0 .28rem rgba(84, 207, 151, .025);
  content: "";
}

.navigator-agent__mark::after {
  position: absolute;
  bottom: 50%;
  left: calc(50% - .5px);
  width: 1px;
  height: 1.25rem;
  background: linear-gradient(to top, rgba(84, 207, 151, .72), transparent);
  content: "";
  transform-origin: 50% 100%;
  animation: mp2-navigator-sweep 9s linear infinite;
}

.navigator-agent__mark i {
  position: absolute;
  inset: .26rem;
  background:
    linear-gradient(rgba(143, 192, 216, .28), rgba(143, 192, 216, .28)) 50% 0 / 1px .34rem no-repeat,
    linear-gradient(rgba(143, 192, 216, .28), rgba(143, 192, 216, .28)) 100% 50% / .34rem 1px no-repeat,
    linear-gradient(rgba(143, 192, 216, .28), rgba(143, 192, 216, .28)) 50% 100% / 1px .34rem no-repeat,
    linear-gradient(rgba(143, 192, 216, .28), rgba(143, 192, 216, .28)) 0 50% / .34rem 1px no-repeat;
}

.navigator-agent__mark b {
  position: relative;
  z-index: 2;
  color: #dff8ec;
  font-size: .68rem;
  letter-spacing: .08em;
}

.navigator-agent h1 {
  margin: 0;
  color: #f5f3ec;
  font-family: var(--mono);
  font-size: clamp(1.2rem, 2.2vw, 1.55rem);
  font-weight: 900;
  letter-spacing: .115em;
  line-height: 1;
  text-transform: uppercase;
}

.navigator-agent__identity {
  display: grid;
  gap: .28rem;
  min-width: 0;
}

.navigator-agent p {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin: 0;
  color: #8eabb8;
  font-family: var(--mono);
  font-size: .58rem;
  font-weight: 750;
  letter-spacing: .065em;
  line-height: 1.25;
  text-transform: uppercase;
}

.navigator-agent p i {
  color: #557784;
  font-style: normal;
}

.navigator-agent__status > span {
  width: .42rem;
  height: .42rem;
  border-radius: 50%;
  background: var(--signal-green);
  box-shadow: 0 0 0 .25rem rgba(84, 207, 151, .08);
}

.navigator-about {
  position: relative;
  flex: 0 0 auto;
}

.navigator-about summary,
.navigator-composer__privacy summary {
  cursor: pointer;
  list-style: none;
}

.navigator-about summary::-webkit-details-marker,
.navigator-composer__privacy summary::-webkit-details-marker {
  display: none;
}

.navigator-about summary {
  padding: .55rem .72rem;
  border: 1px solid rgba(143, 192, 216, .22);
  border-radius: 999px;
  color: #a9bfca;
  font-family: var(--mono);
  font-size: .63rem;
  font-weight: 850;
  letter-spacing: .05em;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease;
}

.navigator-about summary:hover,
.navigator-about summary:focus-visible,
.navigator-about[open] summary {
  border-color: rgba(84, 207, 151, .55);
  background: rgba(84, 207, 151, .08);
  color: #e9f2ef;
}

.navigator-about__content {
  position: absolute;
  z-index: 10;
  top: calc(100% + .65rem);
  right: 0;
  width: min(28rem, 82vw);
  padding: 1rem 1.05rem;
  border: 1px solid rgba(143, 192, 216, .28);
  border-radius: .85rem;
  background: rgba(5, 24, 34, .98);
  box-shadow: 0 1.3rem 3rem rgba(0, 9, 15, .45);
}

.navigator-about__content p {
  margin: 0;
  color: #b8cbd3;
  font-size: .78rem;
  line-height: 1.55;
}

.navigator-about__content p + p { margin-top: .65rem; }
.navigator-about__content strong { color: #edf2ef; }
.navigator-about__content code { overflow-wrap: anywhere; color: #8fd8b8; }

.navigator-thread {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  min-height: 0;
  padding: clamp(1rem, 2.7vw, 1.7rem);
  overflow: visible;
  overscroll-behavior: auto;
  touch-action: pan-y;
  background:
    linear-gradient(rgba(84, 207, 151, .018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(84, 207, 151, .018) 1px, transparent 1px);
  background-size: 3rem 3rem;
  scrollbar-color: rgba(143, 192, 216, .25) transparent;
}

.navigator-turn[hidden] { display: none; }

.navigator-turn {
  display: flex;
  gap: .7rem;
  align-items: flex-start;
  width: min(88%, 52rem);
}

.navigator-turn__avatar {
  width: 1.9rem;
  height: 1.9rem;
  margin-top: .1rem;
  border-radius: 50%;
  font-size: .54rem;
  box-shadow: inset 0 0 0 .28rem rgba(5, 25, 35, .35);
}

.navigator-turn__bubble {
  min-width: 0;
  padding: .78rem .95rem;
  border: 1px solid rgba(143, 192, 216, .18);
  border-radius: .3rem 1rem 1rem 1rem;
  background: rgba(11, 40, 52, .72);
  color: #d6e1e5;
  box-shadow: 0 .55rem 1.3rem rgba(0, 9, 15, .1);
}

.navigator-turn__bubble > p {
  margin: 0;
  line-height: 1.55;
}

.navigator-turn__bubble > p + p {
  margin-top: .32rem;
  color: #a9c0ca;
}

.navigator-welcome {
  width: min(92%, 49rem);
}

.navigator-welcome .navigator-turn__bubble > p:first-child {
  color: #f2f2eb;
  font-weight: 800;
}

.navigator-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin-top: .85rem;
}

.navigator-prompts button {
  min-height: 2.15rem;
  padding: .45rem .68rem;
  border: 1px solid rgba(143, 192, 216, .24);
  border-radius: 999px;
  background: rgba(3, 19, 27, .5);
  color: #c8d8de;
  font: 750 .68rem/1.25 var(--mono);
  letter-spacing: .01em;
  text-align: left;
  transition: border-color 160ms ease, background-color 160ms ease, color 160ms ease, transform 160ms ease;
}

.navigator-prompts button:hover,
.navigator-prompts button:focus-visible {
  border-color: rgba(84, 207, 151, .68);
  background: rgba(84, 207, 151, .1);
  color: #f1f5f2;
  transform: translateY(-1px);
}

.navigator-turn--question {
  align-self: flex-end;
  justify-content: flex-end;
  width: min(78%, 44rem);
}

.navigator-turn--question .navigator-turn__bubble {
  border-color: rgba(84, 207, 151, .35);
  border-radius: 1rem .3rem 1rem 1rem;
  background: linear-gradient(145deg, rgba(84, 207, 151, .16), rgba(84, 207, 151, .08));
  color: #eef4f1;
}

.navigator-turn--question p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.navigator-progress .navigator-turn__bubble {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  min-height: 2.75rem;
  color: #a8bec8;
  font: 800 .69rem/1.3 var(--mono);
  letter-spacing: .035em;
}

.navigator-progress[data-state="error"] .navigator-turn__bubble {
  border-color: rgba(240, 182, 173, .38);
  color: #f0b6ad;
}

.navigator-progress__dots {
  display: flex;
  gap: .22rem;
}

.navigator-progress__dots i {
  width: .36rem;
  height: .36rem;
  border-radius: 50%;
  background: var(--signal-green);
  animation: mp2-chat-thinking 1.15s ease-in-out infinite;
}

.navigator-progress__dots i:nth-child(2) { animation-delay: 120ms; }
.navigator-progress__dots i:nth-child(3) { animation-delay: 240ms; }

.navigator-answer {
  width: min(94%, 57rem);
  outline: none;
}

.navigator-answer .navigator-turn__bubble {
  width: 100%;
  padding: clamp(.95rem, 2vw, 1.35rem);
  border-color: rgba(143, 192, 216, .22);
  background: linear-gradient(145deg, rgba(12, 43, 56, .94), rgba(8, 32, 43, .94));
}

.navigator-answer.is-new .navigator-turn__bubble {
  border-color: rgba(84, 207, 151, .5);
  box-shadow: 0 .9rem 2rem rgba(0, 9, 15, .22), 0 0 0 3px rgba(84, 207, 151, .055);
  animation: mp2-answer-arrival 500ms cubic-bezier(.2, .75, .25, 1) both;
}

.navigator-answer__label {
  margin: 0 0 .7rem !important;
  color: #70dfa9 !important;
  font: 900 .63rem/1.3 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}

.navigator-answer__label span { color: #527986; }

.navigator-answer__text {
  color: #dce6e9;
  font-size: clamp(.91rem, 1.45vw, 1rem);
  line-height: 1.7;
}

.navigator-answer__text > *:first-child { margin-top: 0; }
.navigator-answer__text > *:last-child { margin-bottom: 0; }

.navigator-answer__text h3 {
  margin: 1.25rem 0 .48rem;
  color: #f5f3ec;
  font-family: var(--display);
  font-size: clamp(1.08rem, 1.8vw, 1.28rem);
  letter-spacing: -.015em;
}

.navigator-answer__text p { margin: .72rem 0; }

.navigator-answer__text ul,
.navigator-answer__text ol {
  margin: .65rem 0 .85rem;
  padding-left: 1.25rem;
}

.navigator-answer__text li + li { margin-top: .35rem; }
.navigator-answer__text strong { color: #f3f3ed; }

.navigator-citation {
  display: inline-grid;
  place-items: center;
  min-width: 1.75rem;
  margin-inline: .12rem;
  padding: .08rem .28rem;
  border: 1px solid rgba(84, 207, 151, .32);
  border-radius: .3rem;
  background: rgba(84, 207, 151, .08);
  color: #8ce4bb;
  font: 850 .63rem/1.2 var(--mono);
}

.navigator-answer__sources {
  margin-top: 1.15rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(143, 192, 216, .16);
}

.navigator-answer__sources:empty { display: none; }

.navigator-answer__sources h4 {
  margin: 0 0 .65rem;
  color: #9ab5c1;
  font: 850 .63rem/1.3 var(--mono);
  letter-spacing: .07em;
  text-transform: uppercase;
}

.navigator-answer__sources ol {
  display: grid;
  gap: .55rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.navigator-answer__sources li {
  display: grid;
  gap: .15rem;
}

.navigator-answer__sources a {
  color: #dbe7e9;
  font-size: .8rem;
  line-height: 1.4;
}

.navigator-answer__sources span {
  color: #819eab;
  font: .62rem/1.4 var(--mono);
  letter-spacing: .025em;
}

.navigator-composer-form {
  position: relative;
  z-index: 4;
  padding: .85rem 1rem .75rem;
  border-top: 1px solid rgba(143, 192, 216, .17);
  background: rgba(4, 20, 29, .94);
  box-shadow: 0 -1rem 2.6rem rgba(0, 10, 16, .13);
}

.navigator-composer {
  display: flex;
  align-items: flex-end;
  gap: .65rem;
  padding: .58rem .62rem .58rem .9rem;
  border: 1px solid rgba(143, 192, 216, .28);
  border-radius: 1rem;
  background: rgba(9, 34, 46, .92);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.navigator-composer:focus-within {
  border-color: rgba(84, 207, 151, .72);
  box-shadow: 0 0 0 4px rgba(84, 207, 151, .08), inset 0 1px 0 rgba(255, 255, 255, .025);
}

.navigator-composer textarea {
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-height: 2.75rem;
  max-height: 10rem;
  margin: 0;
  padding: .6rem 0 .45rem;
  resize: none;
  overflow-y: auto;
  border: 0;
  outline: 0;
  background: transparent;
  color: #f2f3ef;
  font: 500 1rem/1.5 var(--sans);
}

.navigator-composer textarea::placeholder { color: #7795a2; }
.navigator-composer textarea:disabled { opacity: .7; }

.navigator-send {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  gap: .42rem;
  min-width: 5.2rem;
  min-height: 2.75rem;
  padding: .65rem .75rem .65rem .9rem;
  border: 0;
  border-radius: .72rem;
  background: var(--signal-green);
  color: #041923;
  font: 900 .69rem/1 var(--mono);
  letter-spacing: .04em;
  transition: filter 160ms ease, transform 160ms ease, opacity 160ms ease;
}

.navigator-send i {
  display: grid;
  width: 1.35rem;
  height: 1.35rem;
  place-items: center;
  border: 1px solid rgba(4, 25, 35, .28);
  border-radius: 50%;
  font-style: normal;
  font-size: .9rem;
}

.navigator-send:hover:not(:disabled),
.navigator-send:focus-visible:not(:disabled) {
  filter: brightness(1.08);
  transform: translateY(-1px);
}

.navigator-send:disabled {
  cursor: not-allowed;
  opacity: .42;
}

.navigator-composer__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .48rem .2rem 0;
}

.navigator-composer__meta p {
  margin: 0;
  color: #738f9b;
  font: .6rem/1.35 var(--mono);
  letter-spacing: .025em;
}

.navigator-composer__meta strong { color: #b8cbd3; }

#evidence-status {
  color: #8ba8b4;
  text-align: right;
}

#evidence-status[data-state="ready"] { color: #78d6aa; }
#evidence-status[data-state="working"] { color: #d3c18d; }
#evidence-status[data-state="error"] { color: #f0b6ad; }

.navigator-composer__privacy {
  margin-top: .38rem;
  color: #75919d;
  font-size: .66rem;
  line-height: 1.45;
}

.navigator-composer__privacy summary {
  display: inline-block;
  color: #819ca8;
  text-decoration: underline;
  text-decoration-color: rgba(129, 156, 168, .35);
  text-underline-offset: .18em;
}

.navigator-composer__privacy summary:hover,
.navigator-composer__privacy summary:focus-visible {
  color: #b8cbd3;
}

.navigator-composer__privacy p {
  max-width: 70rem;
  margin: .35rem 0 0;
}

.navigator-turnstile:empty { display: none; }
.navigator-turnstile:not(:empty) { margin-top: .55rem; }

@keyframes mp2-chat-thinking {
  0%, 70%, 100% { opacity: .28; transform: translateY(0); }
  35% { opacity: 1; transform: translateY(-.18rem); }
}

@keyframes mp2-answer-arrival {
  from { opacity: .25; transform: translateY(.5rem); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes mp2-navigator-sweep {
  from { opacity: .35; transform: rotate(0deg); }
  45% { opacity: .8; }
  to { opacity: .35; transform: rotate(360deg); }
}

@media (max-width: 44rem) {
  .navigator-page-launch { padding-block: .65rem 1.5rem; }

  .navigator-chat {
    width: 100%;
    min-height: calc(100svh - 12rem);
    border-radius: .85rem;
  }

  .navigator-chat__header {
    min-height: 4.15rem;
    padding: .72rem .8rem;
  }

  .navigator-agent__mark {
    width: 2.75rem;
    height: 2.75rem;
  }

  .navigator-agent h1 { font-size: 1.18rem; }
  .navigator-agent p { font-size: .49rem; }

  .navigator-about summary {
    padding: .5rem .58rem;
    font-size: .57rem;
  }

  .navigator-about__content {
    right: -.15rem;
    width: min(29rem, calc(100vw - 2rem));
  }

  .navigator-thread {
    gap: .82rem;
    padding: 1rem .8rem;
    background-size: 2.4rem 2.4rem;
  }

  .navigator-turn,
  .navigator-welcome,
  .navigator-answer {
    width: 96%;
  }

  .navigator-turn--question { width: 88%; }
  .navigator-turn__avatar { display: none; }

  .navigator-turn__bubble {
    padding: .72rem .82rem;
    font-size: .91rem;
  }

  .navigator-prompts {
    flex-wrap: nowrap;
    margin-right: -.82rem;
    padding-right: .82rem;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .navigator-prompts::-webkit-scrollbar { display: none; }
  .navigator-prompts button { flex: 0 0 auto; }

  .navigator-composer-form { padding: .72rem .72rem .6rem; }
  .navigator-composer { padding: .48rem .5rem .48rem .78rem; }
  .navigator-composer textarea { font-size: .95rem; }

  .navigator-send {
    min-width: 2.7rem;
    width: 2.7rem;
    min-height: 2.7rem;
    padding: 0;
  }

  .navigator-send > span { display: none; }
  .navigator-send i { border: 0; }
  .navigator-composer__meta { align-items: flex-start; }
  .navigator-composer__meta p:first-child { display: none; }
  #evidence-status { margin-left: auto; }
}

@media (max-width: 24rem) {
  .navigator-agent__status i { display: none; }
  .navigator-agent__status { font-size: .45rem; }
  .navigator-about summary { max-width: 5.3rem; text-align: center; }
  .navigator-turn--question { width: 94%; }
}

@media (prefers-reduced-motion: reduce) {
  .navigator-progress__dots i,
  .navigator-answer.is-new .navigator-turn__bubble,
  .navigator-agent__mark::after {
    animation: none !important;
  }

  .navigator-prompts button,
  .navigator-send {
    transition: none;
  }
}
