:root {
  --contact-ink: #4b2e2d;
  --contact-muted: #8a706b;
  --contact-rose: #a95668;
  --contact-rose-dark: #7f3b4b;
  --contact-petal: #f5d8dd;
  --contact-cream: #fffaf2;
  --contact-line: rgba(109, 67, 66, .16);
  --contact-shadow: 0 30px 90px rgba(72, 38, 38, .22);
}

/* The contact product is an interface, not a poster: keep every interactive
   and conversational surface on one familiar system type scale. */
.station-contact-overlay,
.station-contact-overlay button,
.station-contact-overlay input,
.station-contact-overlay textarea {
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}
.station-contact-overlay h1,
.station-contact-overlay h2,
.station-contact-overlay h3,
.station-contact-overlay h4,
.station-contact-overlay p,
.station-contact-overlay label,
.station-contact-overlay small,
.station-contact-overlay span,
.station-contact-overlay time {
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
  letter-spacing: 0;
}

.station-contact-trigger {
  align-items: center;
  appearance: none;
  background: rgba(255, 250, 242, .86);
  border: 1px solid rgba(125, 68, 78, .25);
  border-radius: 999px;
  color: var(--contact-ink);
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: .84rem;
  font-weight: 600;
  gap: .5rem;
  justify-content: center;
  letter-spacing: .08em;
  min-height: 44px;
  padding: .72rem 1.08rem;
  text-decoration: none;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.station-contact-trigger__icon { fill: none; flex: 0 0 auto; height: 1.08rem; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 1.08rem; }

.station-contact-trigger:hover,
.station-contact-trigger:focus-visible {
  background: #fffdf8;
  box-shadow: 0 12px 30px rgba(101, 55, 60, .15);
  outline: none;
  transform: translateY(-2px);
}

.station-contact-trigger--nav {
  margin: 0;
  min-height: 38px;
  padding: .55rem .86rem;
  position: absolute;
  right: calc(max(16px, env(safe-area-inset-right)) + 58px);
  top: 50%;
  transform: translateY(-50%);
  white-space: nowrap;
  z-index: 2;
}
.station-contact-trigger--nav:hover,
.station-contact-trigger--nav:focus-visible { transform: translateY(calc(-50% - 2px)); }
.site-header.cinematic-header .station-contact-trigger--nav { background: rgba(58, 37, 42, .24); border-color: rgba(255,250,252,.74); color: #fffafc; box-shadow: 0 1px 12px rgba(92,44,68,.18); }

.station-contact-trigger--cta { margin-left: .65rem; }
.contact-list + .btn + .station-contact-trigger { margin-top: .8rem; }
.station-contact-pair { align-items: stretch; display: flex; flex-wrap: wrap; gap: .65rem; }
.station-contact-pair > .btn,
.station-contact-pair > .station-contact-trigger { font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; font-weight: 600; margin: 0; }
/* The original cinematic reservation button adds a bright text shadow and a gloss layer.
   Those are attractive on one short line, but blur the two-line CTA, so the paired buttons stay crisp. */
.stage-hero-copy .station-contact-pair > .btn { isolation: auto; text-shadow: none; }
.stage-hero-copy .station-contact-pair > .btn::before { display: none; }

.station-contact-overlay {
  align-items: center;
  background: rgba(44, 26, 27, .54);
  backdrop-filter: blur(12px) saturate(.9);
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 0;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  pointer-events: none;
  position: fixed;
  transition: opacity .22s ease;
  isolation: isolate;
  z-index: 2147483000;
}

.station-contact-overlay.is-open { opacity: 1; pointer-events: auto; }

.station-contact-dialog {
  background:
    radial-gradient(circle at 92% 3%, rgba(236, 183, 193, .5), transparent 25%),
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(255,248,239,.98));
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 28px;
  box-shadow: var(--contact-shadow);
  color: var(--contact-ink);
  max-height: min(780px, calc(100dvh - 2rem));
  max-width: 940px;
  overflow: hidden;
  position: relative;
  transform: translateY(18px) scale(.985);
  transition: transform .28s cubic-bezier(.2,.8,.2,1);
  width: min(940px, 100%);
}

.station-contact-overlay.is-open .station-contact-dialog { transform: none; }

.station-contact-close {
  align-items: center;
  background: rgba(255,255,255,.68);
  border: 1px solid var(--contact-line);
  border-radius: 50%;
  color: var(--contact-ink);
  cursor: pointer;
  display: flex;
  font-size: 1.25rem;
  height: 42px;
  justify-content: center;
  position: absolute;
  right: 18px;
  top: 18px;
  width: 42px;
  z-index: 4;
}

.station-contact-welcome {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(290px, .95fr);
  min-height: 560px;
}

.station-contact-intro {
  align-content: center;
  background:
    linear-gradient(155deg, rgba(100, 46, 57, .18), rgba(248, 221, 220, .1)),
    url("assets/scenes/cherry-story/cherry-desktop.webp?v=sky-sakura-6") center/cover;
  display: grid;
  isolation: isolate;
  overflow: hidden;
  padding: 3.8rem 3.2rem;
  position: relative;
}

.station-contact-intro::after {
  background: linear-gradient(90deg, rgba(255,250,244,.02), rgba(255,250,244,.92));
  content: "";
  inset: 0;
  position: absolute;
  z-index: -1;
}

.station-contact-kicker {
  color: var(--contact-rose-dark);
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .22em;
  margin: 0 0 1.2rem;
  text-transform: uppercase;
}

.station-contact-intro h2,
.station-contact-panel h2 {
  color: var(--contact-ink);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 600;
  letter-spacing: .015em;
  line-height: 1.15;
  margin: 0 0 1.15rem;
}

.station-contact-intro p { color: #634b48; line-height: 1.9; margin: 0; max-width: 31rem; }

.station-contact-seal {
  align-items: center;
  background: var(--contact-rose-dark);
  border-radius: 8px 8px 12px 7px;
  color: white;
  display: flex;
  font-family: serif;
  font-size: .74rem;
  height: 3.4rem;
  justify-content: center;
  letter-spacing: .15em;
  margin-top: 2rem;
  transform: rotate(-3deg);
  width: 3.4rem;
}

.station-contact-panel { align-content: center; display: grid; padding: 4.2rem 3rem 3rem; }
.station-contact-panel h2 { font-size: 1.65rem; margin-bottom: .55rem; }
.station-contact-panel > p { color: var(--contact-muted); line-height: 1.7; margin: 0 0 1.4rem; }

.station-contact-key {
  background: rgba(255,255,255,.76);
  border: 1px solid var(--contact-line);
  border-radius: 18px;
  box-shadow: inset 0 1px rgba(255,255,255,.9);
  margin-bottom: 1.2rem;
  padding: 1rem;
}

.station-contact-key small { color: var(--contact-muted); display: block; font-size: .72rem; letter-spacing: .12em; margin-bottom: .52rem; }
.station-contact-key button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--contact-ink);
  cursor: pointer;
  display: flex;
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: clamp(.92rem, 2.6vw, 1.14rem);
  font-weight: 800;
  justify-content: space-between;
  letter-spacing: .08em;
  padding: .3rem 0;
  text-align: left;
  width: 100%;
}

.station-contact-key button span:last-child { color: var(--contact-rose); font-family: inherit; font-size: .75rem; letter-spacing: 0; }
.station-contact-note { align-items: flex-start; color: #745d59; display: flex; font-size: .82rem; gap: .55rem; line-height: 1.55; margin-bottom: 1.35rem; }
.station-contact-note::before { color: var(--contact-rose); content: "◇"; flex: 0 0 auto; }
.station-contact-retention { color: var(--contact-rose-dark) !important; font-size: .78rem; font-weight: 750; letter-spacing: .05em; margin: -.55rem 0 1.25rem !important; }

.station-contact-actions { display: grid; gap: .72rem; }
.station-contact-primary,
.station-contact-secondary {
  border-radius: 999px;
  cursor: pointer;
  font: inherit;
  font-weight: 750;
  min-height: 48px;
  padding: .75rem 1.2rem;
}
.station-contact-primary { background: linear-gradient(135deg, var(--contact-rose), var(--contact-rose-dark)); border: 0; box-shadow: 0 12px 26px rgba(127, 59, 75, .22); color: white; }
.station-contact-secondary { background: transparent; border: 1px solid var(--contact-line); color: var(--contact-ink); }

.station-contact-resume { display: none; margin-top: 1.1rem; }
.station-contact-resume.is-visible { display: block; }
.station-contact-resume label { color: var(--contact-muted); display: block; font-size: .78rem; margin-bottom: .4rem; }
.station-contact-resume-row { display: flex; gap: .5rem; }
.station-contact-resume input {
  background: white;
  border: 1px solid var(--contact-line);
  border-radius: 12px;
  color: var(--contact-ink);
  flex: 1;
  font: 700 .9rem ui-monospace, SFMono-Regular, Consolas, monospace;
  min-width: 0;
  outline: none;
  padding: .8rem .9rem;
  text-transform: uppercase;
}
.station-contact-resume input:focus { border-color: var(--contact-rose); box-shadow: 0 0 0 3px rgba(169,86,104,.12); }
.station-contact-resume button { background: var(--contact-ink); border: 0; border-radius: 12px; color: white; cursor: pointer; padding: 0 1rem; }
.station-contact-error { color: #9a3543; font-size: .76rem; margin: .45rem 0 0; min-height: 1.1rem; }

.station-chat { display: none; grid-template-rows: auto minmax(0, 1fr) auto; height: min(760px, calc(100dvh - 2rem)); }
.station-contact-dialog.is-chat .station-contact-welcome { display: none; }
.station-contact-dialog.is-chat .station-chat { display: grid; }

.station-chat-header {
  align-items: center;
  background: rgba(255,250,245,.92);
  border-bottom: 1px solid var(--contact-line);
  display: flex;
  gap: .8rem;
  min-height: 76px;
  padding: .9rem 4.6rem .9rem 1.25rem;
}
.station-chat-avatar { background: #ead6d8; border: 3px solid white; border-radius: 50%; box-shadow: 0 5px 16px rgba(83,42,47,.18); box-sizing: border-box; flex: 0 0 48px; height: 48px; overflow: hidden; width: 48px; }
.station-chat-avatar img { display: block; height: 100%; object-fit: cover; object-position: 50% 50%; width: 100%; }
.station-chat-heading { flex: 1; min-width: 0; }
.station-chat-heading strong { display: block; font-size: 1rem; font-weight: 600; }
.station-chat-heading small { color: var(--contact-muted); display: block; font-size: .75rem; margin-top: .15rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.station-chat-heading [data-chat-key] { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; white-space: nowrap; }
.station-chat-status { color: #66846f; font-size: .73rem; white-space: nowrap; }
.station-chat-status::before { background: #73a67d; border-radius: 50%; content: ""; display: inline-block; height: .48rem; margin-right: .35rem; width: .48rem; }
.station-chat-switch-key { background: transparent; border: 1px solid var(--contact-line); border-radius: 999px; color: var(--contact-rose-dark); cursor: pointer; font: inherit; font-size: .7rem; padding: .45rem .68rem; white-space: nowrap; }

.station-chat-scroll {
  background:
    radial-gradient(circle at 18% 15%, rgba(246,213,219,.32), transparent 20%),
    linear-gradient(180deg, #fffaf4, #fffdf9);
  overflow: auto;
  padding: 1rem clamp(.85rem, 4vw, 2.4rem) 1.4rem;
  scrollbar-color: rgba(169,86,104,.28) transparent;
}
.station-chat-history { color: var(--contact-muted); font-size: .73rem; margin: 0 auto 1.1rem; text-align: center; }
.station-chat-history button { background: rgba(255,255,255,.8); border: 1px solid var(--contact-line); border-radius: 999px; color: inherit; cursor: pointer; padding: .48rem .78rem; }
.station-chat-day { color: var(--contact-muted); font-size: .7rem; margin: 1rem 0; text-align: center; }
.station-message { display: flex; margin: .55rem 0; }
.station-message--mine { justify-content: flex-end; }
.station-message-bubble { background: white; border: 1px solid rgba(109,67,66,.1); border-radius: 7px 18px 18px 18px; box-shadow: 0 5px 18px rgba(71,42,42,.05); font-size: 1rem; line-height: 1.55; max-width: min(72%, 34rem); padding: .7rem .85rem .5rem; }
.station-message--mine .station-message-bubble { background: linear-gradient(135deg, #f4d7dc, #f8e6e2); border-radius: 18px 7px 18px 18px; }
.station-message-bubble,
.station-chat-compose-row textarea { font-weight: 400; letter-spacing: 0; }
.station-message-bubble time { color: var(--contact-muted); display: block; font-size: .64rem; margin-top: .32rem; text-align: right; }
.station-message-image { border-radius: 13px; cursor: zoom-in; display: block; margin-bottom: .45rem; max-height: 240px; max-width: 100%; object-fit: cover; }
.station-message-image:focus-visible { box-shadow: 0 0 0 3px rgba(169,86,104,.5); outline: 0; }
.station-image-viewer { align-items: stretch; background: rgba(21,15,20,.94); color: white; display: flex; flex-direction: column; inset: 0; opacity: 0; padding: max(.85rem, env(safe-area-inset-top)) max(.85rem, env(safe-area-inset-right)) max(.85rem, env(safe-area-inset-bottom)) max(.85rem, env(safe-area-inset-left)); pointer-events: none; position: fixed; transition: opacity .18s ease; z-index: 30; }
.station-image-viewer.is-visible { opacity: 1; pointer-events: auto; }
.station-image-viewer__bar { align-items: center; display: flex; font-size: .8rem; justify-content: space-between; letter-spacing: .08em; min-height: 42px; }
.station-image-viewer__bar > div { display: flex; gap: .45rem; }
.station-image-viewer button { align-items: center; background: rgba(255,255,255,.13); border: 1px solid rgba(255,255,255,.27); border-radius: 50%; color: white; cursor: pointer; display: inline-flex; font-size: 1.25rem; height: 38px; justify-content: center; line-height: 1; width: 38px; }
.station-image-viewer__stage { align-items: center; display: flex; flex: 1; justify-content: center; min-height: 0; overflow: hidden; touch-action: none; }
.station-image-viewer__stage img { max-height: 100%; max-width: 100%; object-fit: contain; transform-origin: center; transition: transform .12s ease-out; user-select: none; }
.station-image-viewer > p { color: rgba(255,255,255,.65); font-size: .68rem; margin: .6rem 0 .1rem; text-align: center; }

.station-chat-composer { background: rgba(255,250,245,.94); border-top: 1px solid var(--contact-line); display: block; padding: .8rem 1rem max(.8rem, env(safe-area-inset-bottom)); width: 100%; }
.station-chat-preview { display: none; margin: 0 0 .65rem 3.35rem; position: relative; width: fit-content; }
.station-chat-preview.is-visible { display: block; }
.station-chat-preview img { border-radius: 12px; height: 76px; object-fit: cover; width: 76px; }
.station-chat-preview button { background: var(--contact-ink); border: 2px solid white; border-radius: 50%; color: white; cursor: pointer; height: 24px; position: absolute; right: -8px; top: -8px; width: 24px; }
.station-chat-compose-row { align-items: center; display: grid; gap: .45rem; grid-template-columns: 44px minmax(0, 1fr) 42px 44px; }
.station-chat-upload { align-items: center; border: 1px solid var(--contact-line); border-radius: 50%; color: var(--contact-rose-dark); cursor: pointer; display: flex; flex: 0 0 auto; font-size: 1.25rem; height: 44px; justify-content: center; width: 44px; }
.station-chat-upload input { display: none; }
.station-chat-compose-row textarea { background: white; border: 1px solid var(--contact-line); border-radius: 22px; box-sizing: border-box; color: var(--contact-ink); font-size: 1rem; height: 44px; line-height: 1.45; max-height: 72px; min-height: 44px; min-width: 0; outline: none; overflow-y: hidden; padding: .66rem .95rem; resize: none; width: 100%; }
.station-chat-compose-row textarea:focus { border-color: rgba(169,86,104,.55); box-shadow: 0 0 0 3px rgba(169,86,104,.09); }
.station-chat-notify-icon { align-items: center; background: transparent; border: 0; color: var(--contact-rose-dark); cursor: pointer; display: flex; flex-direction: column; height: 44px; justify-content: center; padding: 0; width: 42px; }
.station-chat-notify-icon svg { fill: none; height: 18px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.7; width: 18px; }
.station-chat-notify-icon span { font-size: .52rem; line-height: 1; margin-top: .1rem; white-space: nowrap; }
.station-chat-notify-icon:disabled { opacity: .5; }
.station-chat-send { align-items: center; background: linear-gradient(145deg, var(--contact-rose), var(--contact-rose-dark)); border: 0; border-radius: 50%; color: white; cursor: pointer; display: flex; height: 44px; justify-content: center; width: 44px; }
.station-chat-send svg { fill: none; height: 20px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 20px; }
.station-chat-meta { color: var(--contact-muted); display: flex; font-size: .61rem; justify-content: flex-start; margin: .32rem 0 0 3.2rem; }

body.station-contact-locked { overflow: hidden; }

@media (max-width: 760px) {
  .station-contact-trigger--nav { font-size: .71rem; height: 40px; letter-spacing: .03em; max-width: calc(100vw - 142px); min-height: 40px; overflow: hidden; padding: .48rem .72rem; text-overflow: ellipsis; }
  .station-contact-trigger--nav .station-contact-trigger__icon { height: .95rem; width: .95rem; }
  .station-contact-pair { flex-wrap: nowrap; gap: .55rem; width: 100%; }
  .station-contact-pair > .btn,
  .station-contact-pair > .station-contact-trigger { flex: 1 1 0; min-width: 0; padding-left: .65rem; padding-right: .65rem; }
  /* A full phrase needs a deliberate mobile treatment: two calm, single-line cards instead of cramped half-width pills. */
  .stage-hero-copy .station-contact-pair,
  .hero-actions .station-contact-pair { flex-direction: row; gap: .55rem; margin-top: .1rem; }
  .stage-hero-copy .station-contact-pair > .btn,
  .stage-hero-copy .station-contact-pair > .station-contact-trigger,
  .hero-actions .station-contact-pair > .btn,
  .hero-actions .station-contact-pair > .station-contact-trigger { align-items: center; box-sizing: border-box; flex: 1 1 0; font-size: .82rem; justify-content: center; letter-spacing: .025em; min-height: 62px; padding: .6rem .5rem; text-align: center; white-space: normal; width: auto; }
  .stage-hero-copy .station-contact-pair > .btn,
  .hero-actions .station-contact-pair > .btn { align-items: center; display: flex; justify-content: center; line-height: 1.22; min-height: 62px; text-align: center; white-space: normal; }
  .stage-hero-copy .station-contact-pair > .station-contact-trigger,
  .hero-actions .station-contact-pair > .station-contact-trigger { line-height: 1.22; position: relative; }
  .stage-hero-copy .station-contact-pair > .station-contact-trigger .station-contact-trigger__icon,
  .hero-actions .station-contact-pair > .station-contact-trigger .station-contact-trigger__icon { left: .62rem; position: absolute; }
  .stage-hero-copy .station-contact-pair > .station-contact-trigger span,
  .hero-actions .station-contact-pair > .station-contact-trigger span { display: block; text-align: center; width: 100%; }
  .stage-hero-copy .station-contact-pair > .btn,
  .hero-actions .station-contact-pair > .btn { background: linear-gradient(135deg, rgba(165,87,108,.95), rgba(116,59,79,.96)); border-color: rgba(255,255,255,.84); box-shadow: 0 10px 24px rgba(79,37,52,.22); color: #fff; }
  .stage-hero-copy .station-contact-pair > .station-contact-trigger,
  .hero-actions .station-contact-pair > .station-contact-trigger { background: rgba(255,252,247,.86); border-color: rgba(255,255,255,.94); box-shadow: 0 9px 22px rgba(73,43,46,.12); color: #513c3d; }
  .station-contact-overlay { align-items: flex-end; padding: 0; }
  .station-contact-dialog { border-radius: 26px 26px 0 0; max-height: 94dvh; width: 100%; }
  .station-contact-welcome { display: block; max-height: 94dvh; overflow: auto; }
  .station-contact-intro { min-height: 230px; padding: 3.2rem 1.35rem 1.5rem; }
  .station-contact-intro::after { background: linear-gradient(180deg, rgba(255,250,244,.15), rgba(255,250,244,.94)); }
  .station-contact-intro h2 { font-size: 2.15rem; }
  .station-contact-intro p { font-size: .88rem; line-height: 1.65; }
  .station-contact-seal { display: none; }
  .station-contact-panel { padding: 1.6rem 1.25rem 1.4rem; }
  .station-contact-panel h2 { font-size: 1.35rem; }
  .station-contact-retention { margin-top: -.45rem !important; }
  .station-contact-close { right: 14px; top: 14px; }
  .station-chat { height: 94dvh; }
  .station-chat-header { padding-left: .85rem; }
  .station-chat-status { display: none; }
  .station-chat-switch-key { font-size: .65rem; padding: .4rem .55rem; }
  .station-chat-private-label { display: none; }
  .station-chat-heading small { font-size: .66rem; }
  .station-message-bubble { max-width: 86%; }
  .station-chat-composer { padding: .65rem .7rem max(.65rem, env(safe-area-inset-bottom)); }
  .station-chat-compose-row { gap: .32rem; grid-template-columns: 40px minmax(0, 1fr) 38px 42px; }
  .station-chat-upload { height: 40px; width: 40px; }
  .station-chat-notify-icon { height: 42px; width: 38px; }
  .station-chat-send { height: 42px; width: 42px; }
  .station-chat-preview { margin-left: 0; }
  .station-chat-meta { font-size: .56rem; margin-left: 2.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  .station-contact-overlay,
  .station-contact-dialog,
  .station-contact-trigger { transition: none; }
}

.station-contact-loading {
  align-items: center;
  color: var(--contact-muted);
  display: none;
  font-size: .78rem;
  gap: .55rem;
  margin: 0 0 1rem;
}
.station-contact-loading.is-visible { display: flex; }
.station-contact-loading::before { animation: contact-spin .8s linear infinite; border: 2px solid var(--contact-petal); border-right-color: var(--contact-rose); border-radius: 50%; content: ""; height: 14px; width: 14px; }
@keyframes contact-spin { to { transform: rotate(360deg); } }

.station-contact-notify {
  background: rgba(248, 229, 229, .52);
  border: 1px solid rgba(169,86,104,.15);
  border-radius: 16px;
  margin: 0 0 1rem;
  padding: .82rem .9rem;
}
.station-contact-notify p { color: #6e5551; font-size: .78rem; line-height: 1.55; margin: 0 0 .65rem; }
.station-contact-notify button { background: white; border: 1px solid rgba(169,86,104,.25); border-radius: 999px; color: var(--contact-rose-dark); cursor: pointer; font: inherit; font-size: .74rem; font-weight: 750; padding: .48rem .8rem; }
.station-contact-notify button:disabled { cursor: default; opacity: .72; }

.station-contact-error-box { background: #fff1f1; border: 1px solid rgba(168,55,66,.18); border-radius: 12px; color: #963643; display: none; font-size: .78rem; line-height: 1.5; margin-bottom: .9rem; padding: .7rem .8rem; }
.station-contact-error-box.is-visible { display: block; }
.station-contact-primary:disabled { cursor: wait; opacity: .56; }

.station-message-bubble__edited { color: var(--contact-muted); font-size: .62rem; margin-left: .35rem; }
.station-message.is-deleting { opacity: 0; transform: scale(.96); transition: .18s ease; }
.station-message-bubble--notice { background: rgba(248,229,229,.56); border-style: dashed; color: #745651; font-size: .82rem; margin-inline: auto; max-width: min(86%, 38rem); text-align: center; }
.station-message-status--failed { color: #a33645 !important; }
.station-message-status--sending { color: #9a7b58 !important; }

.station-chat-toast { background: rgba(75,46,45,.94); border-radius: 999px; bottom: 88px; color: white; font-size: .75rem; left: 50%; opacity: 0; padding: .55rem .9rem; pointer-events: none; position: absolute; transform: translate(-50%, 8px); transition: .2s ease; z-index: 5; }
.station-chat-toast.is-visible { opacity: 1; transform: translate(-50%, 0); }
.station-chat-meta button { background: none; border: 0; color: var(--contact-rose-dark); cursor: pointer; font: inherit; font-size: inherit; padding: 0; text-decoration: underline; text-underline-offset: 2px; }

.station-chat-key-switch { align-items: center; background: rgba(50,31,33,.45); backdrop-filter: blur(8px); display: flex; inset: 0; justify-content: center; opacity: 0; padding: 1rem; pointer-events: none; position: absolute; transition: opacity .18s ease; z-index: 8; }
.station-chat-key-switch.is-visible { opacity: 1; pointer-events: auto; }
.station-chat-key-switch form { background: linear-gradient(145deg, #fffdf9, #fff5ee); border: 1px solid rgba(255,255,255,.75); border-radius: 24px; box-shadow: 0 24px 70px rgba(64,34,36,.24); max-width: 420px; padding: 2.2rem; position: relative; width: 100%; }
.station-chat-key-switch h2 { font-size: 1.25rem; font-weight: 600; margin: 0 0 .65rem; }
.station-chat-key-switch form > p:not(.station-contact-kicker):not(.station-contact-error) { color: var(--contact-muted); font-size: .82rem; line-height: 1.65; margin: 0 0 1.1rem; }
.station-chat-key-switch label { color: var(--contact-muted); display: block; font-size: .74rem; margin-bottom: .4rem; }
.station-chat-key-switch input { background: white; border: 1px solid var(--contact-line); border-radius: 13px; color: var(--contact-ink); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: .95rem; font-weight: 700; letter-spacing: .06em; outline: none; padding: .85rem .95rem; text-transform: uppercase; width: 100%; }
.station-chat-key-switch input:focus { border-color: var(--contact-rose); box-shadow: 0 0 0 3px rgba(169,86,104,.12); }
.station-chat-key-switch .station-contact-primary { font-size: 1rem; font-weight: 600; margin-top: .5rem; width: 100%; }
.station-chat-key-switch__close { background: transparent; border: 0; color: var(--contact-muted); cursor: pointer; font-size: 1.35rem; position: absolute; right: 1rem; top: .8rem; }

.station-captcha { display: none; margin-top: .75rem; }
.station-captcha.is-visible { display: block; }
.station-captcha > div { align-items: center; display: flex; gap: .55rem; }
.station-captcha [hidden] { display: none !important; }
.station-captcha-turnstile { min-height: 65px; width: 100%; }
.station-captcha img { background: #fff8f3; border: 1px solid var(--contact-line); border-radius: 12px; height: 52px; object-fit: cover; width: 160px; }
.station-captcha input { min-width: 0; text-transform: uppercase; }
.station-captcha small { color: var(--contact-muted); display: block; font-size: .66rem; line-height: 1.45; margin-top: .35rem; }

@media (max-width: 760px) {
  .station-contact-notify { padding: .72rem .8rem; }
  .station-chat-meta { gap: .8rem; }
  .station-chat-meta span:first-child { display: none; }
  .station-chat-key-switch { align-items: flex-end; padding: 0; }
  .station-chat-key-switch form { border-radius: 24px 24px 0 0; max-width: none; padding: 1.7rem 1.25rem max(1.35rem, env(safe-area-inset-bottom)); }
  .station-captcha-local { align-items: stretch !important; flex-direction: column; }
  .station-captcha img { width: 180px; }
}
