/*!
 * Sandy AI Consultant — frontend stylesheet
 * Version 1.8.0-dev.25
 *
 * Flow renderer rebuilt for v1.6.3. The v1.5.0 sheet (2,526 lines of layered
 * !important patches, absolute message positioning and 45 box-shadow stacks)
 * has been removed entirely — see CHANGELOG-v1.6.0.md.
 *
 * RULES ENFORCED BY THIS FILE
 *   1. No box shadows. Depth comes from blur, borders, opacity and spacing.
 *   2. No `overflow-y: auto | scroll` anywhere. `overflow: clip` only.
 *   3. No `position: absolute` on conversation messages.
 *   4. No `transform: scale()` used to create layout size.
 *   5. Every selector is namespaced under .sacdiag-* so nothing leaks into
 *      Elementor or the theme.
 */

/* ==================================================================== */
/* 1. Tokens                                                            */
/* ==================================================================== */

.sacdiag-consultant {
  /* Ink */
  --sacdiag-ink: #ffffff;
  --sacdiag-ink-muted: rgba(255, 255, 255, .72);
  --sacdiag-ink-quiet: rgba(255, 255, 255, .52);
  --sacdiag-ink-faint: rgba(255, 255, 255, .34);

  /* Structure */
  --sacdiag-hairline: rgba(255, 255, 255, .14);
  --sacdiag-glass-border: rgba(255, 255, 255, .22);
  --sacdiag-glass-border-hover: rgba(255, 255, 255, .40);
  --sacdiag-glass-tint: rgba(24, 82, 154, .10);
  --sacdiag-glass-tint-strong: rgba(24, 82, 154, .18);

  /* Colour */
  --sacdiag-blue: #2e7be0;
  --sacdiag-accent: #2e7be0;
  --sacdiag-deep: #0b2a5e;

  /* Radius */
  --sacdiag-r-sm: 10px;
  --sacdiag-r-md: 14px;
  --sacdiag-r-lg: 18px;

  /* Type */
  --sacdiag-font: inherit;
  --sacdiag-font-fallback: "Inter", "Helvetica Neue", Arial, system-ui, sans-serif;
  --sacdiag-serif: Georgia, "Times New Roman", serif;

  /* Depth driver — every conversation size derives from this one value */
  --sacdiag-q: 42px;
  --sacdiag-depth-prev: .64;
  --sacdiag-depth-hist: .46;

  /* Rhythm */
  --sacdiag-gap-stage: clamp(14px, 2.2vh, 30px);
  --sacdiag-gap-block: clamp(8px, 1.1vh, 14px);
  --sacdiag-gap-dock: clamp(10px, 1.4vh, 18px);
  --sacdiag-pad-panel: clamp(18px, 2.4vw, 40px);

  --sacdiag-z: 999999;
  --sacdiag-panel-width: 720px;

  box-sizing: border-box;
  font-family: var(--sacdiag-font, var(--sacdiag-font-fallback));
  color: var(--sacdiag-ink);
}

.sacdiag-consultant *,
.sacdiag-consultant *::before,
.sacdiag-consultant *::after { box-sizing: border-box; }

/* Only inherit typography here. Setting `background`/`border` on the element
   selector would out-specify the .sacdiag-send / .sacdiag-submit-lead
   classes and strip their accent fill. */
.sacdiag-consultant button {
  font-family: inherit;
  color: inherit;
}

.sacdiag-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  clip-path: inset(50%);
  white-space: nowrap;
  overflow: clip;
}

/* Shared glass material ---------------------------------------------- */

.sacdiag-option,
.sacdiag-composer,
.sacdiag-state,
.sacdiag-lead-form,
.sacdiag-option__icon,
.sacdiag-mic,
.sacdiag-icon-button,
.sacdiag-back-latest,
.sacdiag-more-options,
.sacdiag-retry,
.sacdiag-chat-field,
.sacdiag-attach,
.sacdiag-model,
.sacdiag-attachment-chip {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04));
  background-color: var(--sacdiag-glass-tint);
  border: 1px solid var(--sacdiag-glass-border);
  backdrop-filter: blur(18px) saturate(125%);
  -webkit-backdrop-filter: blur(18px) saturate(125%);
}

/* ==================================================================== */
/* 2. Hero shell                                                        */
/* ==================================================================== */

.sacdiag-layout-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 37fr) minmax(0, 63fr);
  gap: clamp(20px, 3vw, 54px);
  align-items: stretch;
  width: 100%;
  height: var(--sacdiag-runtime-height, var(--sacdiag-custom-height, calc(100svh - 78px)));
  min-height: 660px;
  max-height: none;
  align-self: stretch;
  overflow: clip;
}

.sacdiag-layout-hero.sacdiag-state-height-locked {
  height: var(--sacdiag-runtime-height);
  min-height: var(--sacdiag-runtime-height);
  max-height: var(--sacdiag-runtime-height);
}

.sacdiag-layout-hero > .sacdiag-intro,
.sacdiag-layout-hero > .sacdiag-overlay { position: relative; z-index: 1; min-height: 0; }

/* Editorial introduction --------------------------------------------- */

.sacdiag-intro {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(12px, 1.8vh, 22px);
  padding: clamp(6px, 1.5vh, 18px) 0;
  min-width: 0;
}

.sacdiag-intro__eyebrow {
  margin: 0;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-quiet);
}

.sacdiag-intro__title {
  margin: 0;
  font-size: clamp(30px, 3.4vw, 56px);
  line-height: 1.04;
  letter-spacing: -.025em;
  font-weight: 600;
  color: var(--sacdiag-ink);
}

.sacdiag-intro__title em {
  font-style: italic;
  font-family: var(--sacdiag-serif);
  font-weight: 400;
}

.sacdiag-intro__copy {
  margin: 0;
  max-width: 42ch;
  font-size: clamp(14px, 1.05vw, 17px);
  line-height: 1.6;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-intro__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.sacdiag-intro__chips li {
  padding: 5px 11px;
  border: 1px solid var(--sacdiag-hairline);
  border-radius: 999px;
  font-size: 11px;
  letter-spacing: .02em;
  color: var(--sacdiag-ink-quiet);
}

/* ==================================================================== */
/* 3. Panel                                                             */
/* ==================================================================== */

.sacdiag-layout-hero .sacdiag-overlay {
  display: block;
  height: 100%;
  min-height: 0;
}

.sacdiag-layout-hero .sacdiag-panel {
  position: relative;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: var(--sacdiag-gap-dock);
  height: 100%;
  min-height: 0;
  padding: clamp(12px, 1.8vh, 24px) 0 clamp(10px, 1.6vh, 20px) var(--sacdiag-pad-panel);
  border: 0;
  border-left: 1px solid var(--sacdiag-hairline);
  border-radius: 0;
  /* The hero's own field guard provides contrast; the panel itself carries no
     surface, so the conversation reads as editorial type on the hero. */
  background: transparent;
  overflow: clip;
}

/* Header -------------------------------------------------------------- */

.sacdiag-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
}

.sacdiag-header__identity {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.sacdiag-header__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.sacdiag-header__text strong {
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: .01em;
  color: var(--sacdiag-ink);
  white-space: nowrap;
  overflow: clip;
  text-overflow: ellipsis;
}

.sacdiag-header__text span {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-faint);
}

.sacdiag-status-dot {
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--sacdiag-accent);
}

.sacdiag-header__actions { display: flex; gap: 6px; }

.sacdiag-icon-button {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border-radius: var(--sacdiag-r-sm);
  color: var(--sacdiag-ink-quiet);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}

.sacdiag-icon-button:hover {
  color: var(--sacdiag-ink);
  border-color: var(--sacdiag-glass-border-hover);
}

.sacdiag-icon-button svg { width: 16px; height: 16px; }

.sacdiag-consultant svg {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* Progress ------------------------------------------------------------ */

.sacdiag-progress {
  position: relative;
  height: 1px;
  background: var(--sacdiag-hairline);
  overflow: clip;
}

.sacdiag-progress i {
  display: block;
  width: 12%;
  height: 100%;
  background: linear-gradient(90deg, var(--sacdiag-blue), var(--sacdiag-accent));
  transition: width .8s cubic-bezier(.22, 1, .36, 1);
}

/* ==================================================================== */
/* 4. Conversation stage — mobile-first ordinal depth stack              */
/* ==================================================================== */

.sacdiag-stage {
  position: relative;
  min-height: 0;
  padding-right: clamp(4px, 1vw, 18px);
  overflow: clip;
  outline: none;
  contain: layout paint;
  isolation: isolate;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 95%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0%, #000 8%, #000 95%, transparent 100%);
}

.sacdiag-stage::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 0;
  right: clamp(4px, 1vw, 18px);
  bottom: 0;
  height: clamp(26px, 4.5vh, 48px);
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(220,232,247,.18));
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000);
  mask-image: linear-gradient(to bottom, transparent, #000);
}

.sacdiag-stage:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--sacdiag-accent) 55%, transparent);
  outline-offset: 4px;
  border-radius: 4px;
}

/* The stack is genuinely bottom-anchored. Messages remain in normal document
   order; each wrapper owns its scaled height, so two messages cannot overlap. */
.sacdiag-stack {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 8px;
  display: block;
  overflow: visible;
  pointer-events: none;
  will-change: transform;
}

.sacdiag-message {
  position: relative;
  width: 100%;
  min-width: 0;
  min-height: 1px;
  margin: 0;
  overflow: visible;
  will-change: height;
}

.sacdiag-message__surface {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sacdiag-gap-block);
  width: 100%;
  transform-origin: left bottom;
  will-change: transform, opacity, filter;
}

/* Safe pre-measurement fallback. It is visible for the first frame only, and
   prevents an empty interface if Elementor delays the usable panel size. */
.sacdiag-stack:not(.sacdiag-state-ready) {
  position: relative;
  bottom: auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 12px;
  min-height: 100%;
}

.sacdiag-stack:not(.sacdiag-state-ready) .sacdiag-message {
  height: auto !important;
  padding-bottom: 0 !important;
}

.sacdiag-stack:not(.sacdiag-state-ready) .sacdiag-message__surface {
  position: relative;
  transform: none !important;
  opacity: 1 !important;
  filter: none !important;
}

.sacdiag-message.sacdiag-state-user {
  padding-left: 18%;
  text-align: right;
}

.sacdiag-message.sacdiag-state-user .sacdiag-message__surface {
  align-items: flex-end;
  transform-origin: right bottom;
}

.sacdiag-message.sacdiag-state-assistant {
  padding-right: 5%;
  text-align: left;
}

.sacdiag-message.sacdiag-state-assistant .sacdiag-message__surface {
  align-items: flex-start;
  transform-origin: left bottom;
}

.sacdiag-message__label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-faint);
}

.sacdiag-message .sacdiag-question {
  margin: 0;
  max-width: 25ch;
  font-size: clamp(31px, 2.75vw, 45px);
  line-height: 1.08;
  letter-spacing: -.025em;
  font-weight: 600;
  color: var(--sacdiag-ink);
}

.sacdiag-message.sacdiag-state-long .sacdiag-question {
  font-size: clamp(28px, 2.35vw, 38px);
}

.sacdiag-message.sacdiag-state-very-long .sacdiag-question {
  font-size: clamp(25px, 2vw, 33px);
}

.sacdiag-message .sacdiag-interpretation {
  margin: 0;
  max-width: 58ch;
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1.5;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-message .sacdiag-ack {
  margin: 0;
  font-family: var(--sacdiag-serif);
  font-style: italic;
  font-size: clamp(12px, .95vw, 15px);
  color: var(--sacdiag-ink-quiet);
}

.sacdiag-message .sacdiag-said {
  margin: 0;
  max-width: 30ch;
  font-size: clamp(23px, 2.3vw, 37px);
  line-height: 1.16;
  letter-spacing: -.018em;
  font-weight: 500;
  color: var(--sacdiag-ink);
}

.sacdiag-hover-zone {
  position: absolute;
  left: 0;
  right: clamp(4px, 1vw, 18px);
  height: 18%;
  z-index: 4;
  pointer-events: auto;
  opacity: 0;
  transition: opacity .28s ease;
}

.sacdiag-hover-zone--top { top: 0; }
.sacdiag-hover-zone--bottom { bottom: 0; }
.sacdiag-hover-zone.sacdiag-state-active { opacity: 1; }
.sacdiag-hover-zone--top.sacdiag-state-active { background: linear-gradient(180deg, rgba(255,255,255,.03), transparent); }
.sacdiag-hover-zone--bottom.sacdiag-state-active { background: linear-gradient(0deg, rgba(255,255,255,.03), transparent); }

/* Recommended services ----------------------------------------------- */

.sacdiag-services {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}

.sacdiag-services li {
  padding: 4px 10px;
  border: 1px solid var(--sacdiag-hairline);
  border-radius: 999px;
  font-size: 10.5px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-quiet);
}

.sacdiag-chunk { display: inline; }

/* ==================================================================== */
/* 5. Dock — options, composer, state. Never moves during history review */
/* ==================================================================== */

.sacdiag-dock {
  display: grid;
  grid-template-rows: 92px auto auto auto;
  gap: clamp(7px, 1vh, 12px);
  min-height: 0;
  padding-right: clamp(4px, 1vw, 18px);
}

/* A stable height so showing the state chip or the Back-to-latest control can
   never resize the dock. The dock must not move while browsing history. */
.sacdiag-dock__bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 92px;
}

/* AI state indicator -------------------------------------------------- */

.sacdiag-state {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  min-height: 88px;
  padding: 4px 16px 4px 4px;
  border-radius: 999px;
  color: var(--sacdiag-orb-color, #fff);
}

.sacdiag-state[hidden] { display: none; }

.sacdiag-state__visual {
  display: grid;
  place-items: center;
  flex: 0 0 84px;
  width: 84px;
  height: 84px;
  color: var(--sacdiag-orb-color, #fff);
}

.sacdiag-thinking-orb {
  display: inline-grid;
  place-items: center;
  width: var(--sacdiag-thinking-orb-size, 80px);
  height: var(--sacdiag-thinking-orb-size, 80px);
  line-height: 0;
}

.sacdiag-thinking-orb__canvas {
  display: block;
  width: var(--sacdiag-thinking-orb-size, 80px);
  height: var(--sacdiag-thinking-orb-size, 80px);
  max-width: none;
}

.sacdiag-state__label {
  font-size: 13px;
  font-weight: 520;
  letter-spacing: .02em;
  color: var(--sacdiag-ink-muted);
  white-space: nowrap;
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-state {
  border-color: color-mix(in srgb, var(--sacdiag-orb-color, #fff) 30%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .sacdiag-thinking-orb__canvas { animation: none !important; }
}

/* Back to latest ------------------------------------------------------ */

.sacdiag-back-latest {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: auto;
  padding: 6px 13px;
  border-radius: 999px;
  font-size: 11.5px;
  font-weight: 500;
  letter-spacing: .02em;
  color: var(--sacdiag-ink-muted);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}

.sacdiag-back-latest[hidden] { display: none; }
.sacdiag-back-latest:hover { color: var(--sacdiag-ink); border-color: var(--sacdiag-glass-border-hover); }

/* ==================================================================== */
/* 6. Answer options                                                     */
/* ==================================================================== */

.sacdiag-options { display: grid; gap: 8px; min-height: 0; overflow: clip; will-change: min-height; }
.sacdiag-options:empty { display: none; }

.sacdiag-option-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.sacdiag-option-grid[data-count="1"] { grid-template-columns: minmax(0, 1fr); }
.sacdiag-option-grid[data-count="2"],
.sacdiag-option-grid[data-count="4"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.sacdiag-option {
  position: relative;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 18px;
  align-items: center;
  gap: 12px;
  min-height: 70px;
  padding: 11px 13px;
  border-radius: var(--sacdiag-r-md);
  color: var(--sacdiag-ink);
  text-align: left;
  cursor: pointer;
  overflow: clip;
  transition: border-color .22s ease, background-color .22s ease, opacity .22s ease;
}

/* Refraction sweep — light passing over the material, not elevation */
.sacdiag-option::after {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 62%;
  background: linear-gradient(118deg, rgba(255, 255, 255, .10) 0%, rgba(255, 255, 255, .02) 46%, transparent 72%);
  opacity: 0;
  transition: opacity .28s ease;
  pointer-events: none;
}

.sacdiag-option:hover { border-color: var(--sacdiag-glass-border-hover); background-color: var(--sacdiag-glass-tint-strong); }
.sacdiag-option:hover::after { opacity: 1; }
.sacdiag-option:hover .sacdiag-option__arrow { transform: translateX(2px); color: var(--sacdiag-ink); }

.sacdiag-option:focus-visible {
  outline: none;
  border-color: var(--sacdiag-accent);
}

.sacdiag-option.sacdiag-state-selected {
  border-color: var(--sacdiag-accent);
}

.sacdiag-option-grid.sacdiag-state-multiple .sacdiag-option {
  padding-right: 14px;
}

.sacdiag-option-grid.sacdiag-state-multiple .sacdiag-option.sacdiag-state-selected {
  border-color: rgba(255, 255, 255, .72);
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .18), rgba(46, 123, 224, .16));
}

.sacdiag-option-grid.sacdiag-state-multiple .sacdiag-option.sacdiag-state-selected .sacdiag-option__arrow {
  color: #fff;
  transform: scale(1.08);
}

.sacdiag-option-grid.sacdiag-state-multiple .sacdiag-option[disabled]:not(.sacdiag-state-selected) {
  opacity: .38;
}

.sacdiag-multi-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  margin-top: 2px;
}

.sacdiag-multi-actions__hint {
  margin: 0;
  font-size: 11.5px;
  line-height: 1.35;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-multi-submit {
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 999px;
  background: var(--sacdiag-accent);
  color: var(--sacdiag-deep);
  font-size: 12px;
  font-weight: 650;
  white-space: nowrap;
  cursor: pointer;
  transition: opacity .2s ease, filter .2s ease, border-color .2s ease;
}

.sacdiag-multi-submit:hover:not(:disabled) {
  filter: brightness(1.06) saturate(1.06);
}

.sacdiag-multi-submit:focus-visible {
  outline: 2px solid rgba(255, 255, 255, .86);
  outline-offset: 2px;
}

.sacdiag-multi-submit:disabled {
  opacity: .42;
  cursor: default;
}

.sacdiag-option[disabled] { cursor: default; }

.sacdiag-option__icon {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: var(--sacdiag-r-md);
  color: var(--sacdiag-ink);
}

.sacdiag-option__icon svg,
.sacdiag-option__icon img,
.sacdiag-option__glyph {
  width: 34px;
  height: 34px;
  display: block;
}

.sacdiag-option__icon svg {
  color: #fff;
  stroke: #fff;
}

.sacdiag-option__icon svg [fill]:not([fill="none"]) { fill: #fff; }

.sacdiag-option__glyph {
  background: #fff;
  -webkit-mask-image: var(--sacdiag-icon-url);
  mask-image: var(--sacdiag-icon-url);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}

.sacdiag-option__copy {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.sacdiag-option__copy small {
  font-size: 9.5px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-faint);
}

.sacdiag-option__copy strong {
  font-size: 14.5px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--sacdiag-ink);
}

.sacdiag-option__arrow {
  font-size: 14px;
  color: var(--sacdiag-ink-faint);
  transition: transform .22s ease, color .22s ease;
}

.sacdiag-more-options,
.sacdiag-retry {
  justify-self: start;
  padding: 8px 15px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 500;
  color: var(--sacdiag-ink-muted);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease;
}

.sacdiag-more-options:hover,
.sacdiag-retry:hover { color: var(--sacdiag-ink); border-color: var(--sacdiag-glass-border-hover); }

/* ==================================================================== */
/* 7. Composer                                                           */
/* ==================================================================== */

.sacdiag-attachment-tray {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  min-height: 0;
}

.sacdiag-attachment-tray[hidden] { display: none; }

.sacdiag-attachment-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  max-width: min(100%, 260px);
  padding: 6px 8px 6px 7px;
  border-radius: 999px;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-attachment-chip__kind {
  flex: 0 0 auto;
  font-size: 8px;
  font-weight: 700;
  letter-spacing: .12em;
  color: var(--sacdiag-accent);
}

.sacdiag-attachment-chip__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 10.5px;
}

.sacdiag-attachment-chip__remove {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: var(--sacdiag-ink-muted);
  cursor: pointer;
}

.sacdiag-composer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "input input"
    "tools actions";
  align-items: center;
  gap: 6px 10px;
  padding: 9px 9px 8px 13px;
  border-radius: var(--sacdiag-r-lg);
  transition: border-color .22s ease;
}

.sacdiag-composer[hidden] { display: none; }

.sacdiag-composer textarea {
  grid-area: input;
  width: 100%;
  min-height: 34px;
  max-height: 82px;
  padding: 5px 2px 3px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--sacdiag-ink);
  font-family: inherit;
  font-size: 14px;
  line-height: 1.45;
  resize: none;
  outline: none;
  overflow: clip;
}

.sacdiag-composer textarea::placeholder { color: var(--sacdiag-ink-faint); }
.sacdiag-composer textarea:disabled { opacity: .5; }

.sacdiag-composer__tools {
  grid-area: tools;
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.sacdiag-composer__actions {
  grid-area: actions;
  display: flex;
  align-items: center;
  gap: 7px;
}

.sacdiag-attach {
  position: relative;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  border-radius: 10px;
  color: var(--sacdiag-ink-muted);
  cursor: pointer;
}

.sacdiag-attach input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sacdiag-attach svg { width: 17px; height: 17px; }

.sacdiag-model {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  max-width: 220px;
  height: 34px;
  padding: 0 9px;
  border-radius: 10px;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-model__spark {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.sacdiag-model__spark svg { width: 14px; height: 14px; }

.sacdiag-model select {
  min-width: 0;
  max-width: 176px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--sacdiag-ink);
  font: inherit;
  font-size: 11.5px;
  cursor: pointer;
}

.sacdiag-model select option { color: #0b2a5e; }
.sacdiag-model select:disabled { opacity: .5; cursor: default; }

.sacdiag-mic,
.sacdiag-send {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border-radius: 11px;
  cursor: pointer;
  transition: border-color .2s ease, filter .2s ease, opacity .2s ease;
}

.sacdiag-mic { color: var(--sacdiag-ink-faint); }
.sacdiag-mic[disabled] { cursor: not-allowed; opacity: .55; }

.sacdiag-send {
  border: 1px solid transparent;
  background: var(--sacdiag-accent);
  color: var(--sacdiag-deep);
}

.sacdiag-send:hover { filter: saturate(1.1) brightness(1.04); }
.sacdiag-send[disabled] { opacity: .5; cursor: default; }

.sacdiag-mic svg,
.sacdiag-send svg { width: 18px; height: 18px; }

.sacdiag-privacy-note {
  margin: 0;
  font-size: 10.5px;
  letter-spacing: .02em;
  color: var(--sacdiag-ink-faint);
}

/* ==================================================================== */
/* 8. Contact handoff                                                    */
/* ==================================================================== */

.sacdiag-lead-form {
  display: grid;
  gap: 10px;
  padding: 16px;
  border-radius: var(--sacdiag-r-lg);
}

.sacdiag-lead-form__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.sacdiag-field { display: grid; gap: 5px; min-width: 0; }

.sacdiag-field--honeypot {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: clip;
  clip-path: inset(50%);
}

.sacdiag-field label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-faint);
}

.sacdiag-field input,
.sacdiag-field select,
.sacdiag-field textarea {
  width: 100%;
  min-height: 40px;
  padding: 9px 11px;
  border: 1px solid var(--sacdiag-hairline);
  border-radius: var(--sacdiag-r-sm);
  background: rgba(255, 255, 255, .06);
  color: var(--sacdiag-ink);
  font-family: inherit;
  font-size: 13.5px;
  outline: none;
  transition: border-color .2s ease, background-color .2s ease;
}

.sacdiag-field textarea { resize: none; overflow: clip; }
.sacdiag-field select option { color: #0b2a5e; }

.sacdiag-field input:focus,
.sacdiag-field select:focus,
.sacdiag-field textarea:focus {
  border-color: color-mix(in srgb, var(--sacdiag-accent) 60%, transparent);
}

.sacdiag-field input[aria-invalid="true"] { border-color: #ff8b8b; }

.sacdiag-field-error {
  font-size: 10.5px;
  color: #ffb4b4;
}

.sacdiag-more-details summary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
  font-size: 11.5px;
  letter-spacing: .02em;
  color: var(--sacdiag-ink-quiet);
  cursor: pointer;
  list-style: none;
}

.sacdiag-more-details summary::-webkit-details-marker { display: none; }
.sacdiag-more-details summary:hover { color: var(--sacdiag-ink); }
.sacdiag-more-details[open] { display: grid; gap: 10px; }
.sacdiag-more-details summary span { display: inline-block; transition: transform .2s ease; }
.sacdiag-more-details[open] summary span { transform: rotate(45deg); }

.sacdiag-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 11.5px;
  line-height: 1.45;
  color: var(--sacdiag-ink-quiet);
}

.sacdiag-consent input {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin-top: 2px;
  accent-color: var(--sacdiag-accent);
}

.sacdiag-consent a { color: var(--sacdiag-ink); text-decoration: underline; }

.sacdiag-form-error {
  padding: 8px 11px;
  border: 1px solid rgba(255, 140, 140, .40);
  border-radius: var(--sacdiag-r-sm);
  font-size: 12px;
  color: #ffc4c4;
}

.sacdiag-form-error[hidden] { display: none; }

.sacdiag-submit-lead {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  justify-self: start;
  min-height: 46px;
  padding: 11px 22px;
  border: 1px solid transparent;
  border-radius: var(--sacdiag-r-md);
  background: var(--sacdiag-accent);
  color: var(--sacdiag-deep);
  font-family: inherit;
  font-size: 13.5px;
  font-weight: 700;
  cursor: pointer;
  transition: filter .2s ease, opacity .2s ease;
}

.sacdiag-submit-lead:hover { filter: saturate(1.1) brightness(1.04); }
.sacdiag-submit-lead[disabled] { opacity: .55; cursor: default; }

.sacdiag-consultant.sacdiag-state-contact-mode .sacdiag-privacy-note { display: none; }

/* ==================================================================== */
/* 9. Overlay / compact layouts                                          */
/* ==================================================================== */

.sacdiag-launcher { display: block; }

.sacdiag-chat-field {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 14px 16px;
  border-radius: var(--sacdiag-r-lg);
  color: var(--sacdiag-ink-muted);
  font-family: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  transition: border-color .22s ease, color .22s ease;
}

.sacdiag-chat-field:hover { border-color: var(--sacdiag-glass-border-hover); color: var(--sacdiag-ink); }
.sacdiag-chat-field__mark { color: var(--sacdiag-accent); }
.sacdiag-chat-field__send { color: var(--sacdiag-ink-faint); }

.sacdiag-open-overlay .sacdiag-overlay,
.sacdiag-overlay[data-sacdiag-owner] {
  position: fixed;
  inset: 0;
  z-index: var(--sacdiag-z, 999999);
  display: block;
  pointer-events: none;
}

.sacdiag-overlay[aria-hidden="true"] { visibility: hidden; }
.sacdiag-overlay.sacdiag-state-open,
.sacdiag-overlay.sacdiag-state-closing { visibility: visible; }

.sacdiag-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 22, 52, .52);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity .45s ease;
  pointer-events: none;
}

.sacdiag-overlay.sacdiag-state-open .sacdiag-backdrop { opacity: 1; pointer-events: auto; }

.sacdiag-overlay[data-sacdiag-owner] .sacdiag-panel,
.sacdiag-open-overlay .sacdiag-panel {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: var(--sacdiag-gap-dock);
  width: min(var(--sacdiag-panel-width, 720px), 100vw);
  height: 100%;
  min-height: 0;
  padding: clamp(16px, 2vh, 26px) clamp(18px, 2.2vw, 32px);
  border: 0;
  border-left: 1px solid var(--sacdiag-hairline);
  background:
    linear-gradient(180deg, rgba(13, 44, 96, .96), rgba(21, 61, 122, .96));
  backdrop-filter: blur(22px) saturate(120%);
  -webkit-backdrop-filter: blur(22px) saturate(120%);
  transform: translateX(102%);
  transition: transform .58s cubic-bezier(.22, 1, .36, 1);
  overflow: clip;
  pointer-events: auto;
}

.sacdiag-slide-left .sacdiag-panel { right: auto; left: 0; transform: translateX(-102%); }
.sacdiag-slide-none .sacdiag-panel { transform: none; opacity: 0; transition: opacity .4s ease; }
.sacdiag-overlay.sacdiag-state-open .sacdiag-panel { transform: translateX(0); opacity: 1; }

body.sacdiag-body-locked { overflow: hidden; }

.sacdiag-layout-compact .sacdiag-intro { display: none; }

/* ==================================================================== */
/* 10. Light theme                                                       */
/* ==================================================================== */

.sacdiag-theme-light {
  --sacdiag-ink: #0d2c60;
  --sacdiag-ink-muted: rgba(13, 44, 96, .74);
  --sacdiag-ink-quiet: rgba(13, 44, 96, .55);
  --sacdiag-ink-faint: rgba(13, 44, 96, .38);
  --sacdiag-hairline: rgba(13, 44, 96, .14);
  --sacdiag-glass-border: rgba(13, 44, 96, .16);
  --sacdiag-glass-border-hover: rgba(13, 44, 96, .30);
  --sacdiag-glass-tint: rgba(255, 255, 255, .55);
  --sacdiag-glass-tint-strong: rgba(255, 255, 255, .78);
  --sacdiag-edge: inset 0 1px 0 rgba(255, 255, 255, .85);
}

.sacdiag-theme-light .sacdiag-panel {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(233, 240, 250, .5));
}

.sacdiag-theme-light .sacdiag-field input,
.sacdiag-theme-light .sacdiag-field select,
.sacdiag-theme-light .sacdiag-field textarea { background: rgba(255, 255, 255, .70); }

/* ==================================================================== */
/* 11. Responsive                                                        */
/* ==================================================================== */

/* Narrow desktop / tablet */
@media (max-width: 1099px) {
  .sacdiag-layout-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(16px, 3vh, 30px);
    height: auto;
    min-height: 0;
  }

  .sacdiag-layout-hero .sacdiag-panel {
    padding: 18px 0 0;
    border-left: 0;
    border-top: 1px solid var(--sacdiag-hairline);
    min-height: 680px;
  }

  .sacdiag-intro__copy { max-width: 60ch; font-size: 14.5px; }
  .sacdiag-option-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sacdiag-option { min-height: 70px; grid-template-columns: 48px minmax(0, 1fr) 16px; gap: 10px; }
  .sacdiag-option__icon { width: 48px; height: 48px; }
  .sacdiag-option__icon svg,
  .sacdiag-option__icon img { width: 30px; height: 30px; }
  .sacdiag-lead-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile */
@media (max-width: 679px) {
  .sacdiag-layout-hero {
    gap: 18px;
    overflow: visible;
  }

  .sacdiag-layout-hero .sacdiag-panel {
    min-height: 720px;
    padding-top: 14px;
    gap: 12px;
  }

  /* The introduction gives way — the diagnostic is the hero on mobile. */
  .sacdiag-intro { gap: 8px; }
  .sacdiag-intro__copy,
  .sacdiag-intro__chips { display: none; }
  .sacdiag-intro__title { font-size: clamp(26px, 8vw, 34px); }

  .sacdiag-stage { padding-right: 0; }
  .sacdiag-message.sacdiag-state-assistant { padding-right: 0; }
  .sacdiag-message.sacdiag-state-user { padding-left: 10%; }
  .sacdiag-message .sacdiag-question,
  .sacdiag-message .sacdiag-interpretation { max-width: none; }
  .sacdiag-hover-zone { right: 0; height: 16%; }

  .sacdiag-dock { padding-right: 0; gap: 10px; }
  .sacdiag-option-grid { grid-template-columns: minmax(0, 1fr); gap: 7px; }
  .sacdiag-option { min-height: 62px; grid-template-columns: 44px minmax(0, 1fr) 14px; padding: 9px 11px; }
  .sacdiag-option__icon { width: 44px; height: 44px; border-radius: var(--sacdiag-r-sm); }
  .sacdiag-option__icon svg,
  .sacdiag-option__icon img { width: 26px; height: 26px; }
  .sacdiag-option__copy strong { font-size: 14px; }
  .sacdiag-multi-actions {
    align-items: stretch;
    flex-direction: column;
    gap: 7px;
  }
  .sacdiag-multi-submit {
    width: 100%;
  }

  .sacdiag-composer {
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 8px 8px 7px 11px;
    gap: 5px 7px;
  }
  .sacdiag-model { max-width: 185px; }
  .sacdiag-model select { max-width: 142px; font-size: 10.5px; }
  .sacdiag-mic, .sacdiag-send { width: 36px; height: 36px; }
  .sacdiag-attach { width: 32px; height: 32px; }

  .sacdiag-lead-form__grid { grid-template-columns: minmax(0, 1fr); }
  .sacdiag-submit-lead { justify-self: stretch; }

  .sacdiag-overlay[data-sacdiag-owner] .sacdiag-panel,
  .sacdiag-open-overlay .sacdiag-panel { width: 100vw; padding: 16px; }
}

/* Two columns on wider phones where labels still read */
@media (min-width: 420px) and (max-width: 679px) {
  .sacdiag-option-grid[data-count="4"],
  .sacdiag-option-grid[data-count="6"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sacdiag-option__arrow { display: none; }
  .sacdiag-option { grid-template-columns: 44px minmax(0, 1fr); }
}


/* ==================================================================== */
/* 11b. Legacy engine fallbacks                                          */
/* ==================================================================== */

/* `overflow: clip` is Safari 16+ / Firefox 81+. Older engines would treat it
   as `visible` and let a slot paint over its neighbour, so they fall back to
   `hidden`. These elements are never taller than their content in practice —
   the fit routine guarantees it — so nothing becomes scrollable in use. */
@supports not (overflow: clip) {
  .sacdiag-stage,
  .sacdiag-message,
  .sacdiag-option,
  .sacdiag-layout-hero,
  .sacdiag-progress,
  .sacdiag-composer textarea,
  .sacdiag-field textarea { overflow: hidden; }
}

/* `svh` is Safari 15.4+ / Firefox 101+. */
@media (max-width: 679px) {
  .sacdiag-layout-hero .sacdiag-panel { min-height: 720px; }
}

/* ==================================================================== */
/* 12. Reduced motion                                                    */
/* ==================================================================== */

@media (prefers-reduced-motion: reduce) {
  .sacdiag-consultant *,
  .sacdiag-consultant *::before,
  .sacdiag-consultant *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  .sacdiag-overlay[data-sacdiag-owner] .sacdiag-panel,
  .sacdiag-open-overlay .sacdiag-panel { transition: none; }
}

/* v1.6.1: explicit no-shadow safety rule */
.sacdiag-consultant, .sacdiag-consultant * { box-shadow: none !important; }


/* v1.6.2 — locked geometry and no-shadow safety */
.sacdiag-consultant.sacdiag-state-height-locked,
.sacdiag-consultant.sacdiag-state-height-locked .sacdiag-overlay,
.sacdiag-consultant.sacdiag-state-height-locked .sacdiag-panel {
  height: var(--sacdiag-runtime-height) !important;
  min-height: var(--sacdiag-runtime-height) !important;
  max-height: var(--sacdiag-runtime-height) !important;
}
.sacdiag-consultant .sacdiag-panel,
.sacdiag-consultant .sacdiag-stage,
.sacdiag-consultant .sacdiag-dock { transition: none !important; }
.sacdiag-consultant,
.sacdiag-consultant * { box-shadow: none !important; }


/* ==================================================================== */
/* v1.6.3 — bottom-anchored flowing conversation                        */
/* ==================================================================== */

.sacdiag-consultant .sacdiag-stage,
.sacdiag-consultant .sacdiag-stack {
  transition: none !important;
}

.sacdiag-consultant .sacdiag-message,
.sacdiag-consultant .sacdiag-message__surface {
  transition:
    transform .62s cubic-bezier(.22,.61,.36,1),
    opacity .5s ease,
    filter .5s ease,
    height .62s cubic-bezier(.22,.61,.36,1);
}

.sacdiag-consultant .sacdiag-dock {
  position: relative;
  z-index: 6;
}

.sacdiag-consultant.sacdiag-state-reviewing .sacdiag-hover-zone--bottom {
  pointer-events: auto;
}

@media (max-height: 720px) and (min-width: 1100px) {
  .sacdiag-message .sacdiag-question {
    font-size: clamp(27px, 2.35vw, 38px);
  }

  .sacdiag-message .sacdiag-interpretation {
    font-size: clamp(13px, .95vw, 16px);
  }

  .sacdiag-message .sacdiag-said {
    font-size: clamp(21px, 2vw, 32px);
  }
}


/* v1.6.6 — Nth-message depth profiles. The renderer uses the same ordinal
   hierarchy on every device; only the number of visible history levels and
   typography change. This keeps mobile deterministic and readable. */
@media (max-width: 679px) {
  .sacdiag-message .sacdiag-question {
    font-size: clamp(27px, 8.2vw, 34px);
    line-height: 1.07;
    max-width: 22ch;
  }
  .sacdiag-message .sacdiag-interpretation {
    font-size: 15px;
    line-height: 1.46;
    max-width: 40ch;
  }
  .sacdiag-message .sacdiag-said {
    font-size: clamp(20px, 6.8vw, 28px);
    line-height: 1.14;
  }
  .sacdiag-message__label { font-size: 8.5px; }
  .sacdiag-message__surface { gap: 7px; }
}

@media (hover: none), (pointer: coarse) {
  .sacdiag-hover-zone { display: none; }
}

/* v1.6.7 safety */
.sacdiag-layout-hero::before { content: none !important; display: none !important; }
.sacdiag-consultant .sacdiag-option__icon { color: #fff; }

@media (max-width: 389px) {
  .sacdiag-model { max-width: 150px; padding-inline: 7px; }
  .sacdiag-model select { max-width: 112px; font-size: 10px; }
  .sacdiag-composer__actions { gap: 5px; }
}

/* All chat control and thumbnail glyphs use a consistent white treatment. */
.sacdiag-option__icon,
.sacdiag-attach,
.sacdiag-model__spark,
.sacdiag-mic,
.sacdiag-send {
  color: #fff;
}


/* Softens the Elementor section boundary without restoring the removed field
   guard. This is a shallow edge veil, not a panel background or box shadow. */
.sacdiag-layout-hero::after {
  content: "";
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  bottom: 0;
  height: clamp(26px, 4.5vh, 54px);
  pointer-events: none;
  background: linear-gradient(to bottom, transparent, rgba(226, 236, 248, .16));
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  -webkit-mask-image: linear-gradient(to bottom, transparent, #000);
  mask-image: linear-gradient(to bottom, transparent, #000);
}


/* ==================================================================== */
/* v1.6.8 — stable natural-flow motion and readable AI composer          */
/* ==================================================================== */

.sacdiag-consultant .sacdiag-stack,
.sacdiag-consultant .sacdiag-message,
.sacdiag-consultant .sacdiag-message__surface {
  transition: none !important;
}

.sacdiag-consultant .sacdiag-composer {
  background:
    linear-gradient(135deg, rgba(255,255,255,.14), rgba(255,255,255,.055)),
    rgba(10, 53, 112, .38) !important;
  border-color: rgba(255,255,255,.38) !important;
  backdrop-filter: blur(22px) saturate(135%);
  -webkit-backdrop-filter: blur(22px) saturate(135%);
}

.sacdiag-consultant .sacdiag-composer textarea {
  color: #fff;
  font-size: 15px;
}

.sacdiag-consultant .sacdiag-composer textarea::placeholder {
  color: rgba(255,255,255,.76);
  opacity: 1;
}

.sacdiag-consultant .sacdiag-attach,
.sacdiag-consultant .sacdiag-model,
.sacdiag-consultant .sacdiag-mic {
  background: rgba(8, 42, 92, .28);
  border-color: rgba(255,255,255,.28);
  color: rgba(255,255,255,.92);
}

.sacdiag-consultant .sacdiag-model select {
  color: #fff;
  font-weight: 600;
}

.sacdiag-consultant .sacdiag-privacy-note {
  color: rgba(255,255,255,.58);
}

@media (max-width: 679px) {
  .sacdiag-stage {
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 7%, #000 96%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 7%, #000 96%, transparent 100%);
  }
}


/* ==================================================================== */
/* v1.8.0-dev.4 — question typography, fail-safe GSAP reveal and chat-only   */
/* ==================================================================== */

.sacdiag-message .sacdiag-question {
  line-height: 1em;
  letter-spacing: 2px;
  font-family: "Dailyfont", Manrope, sans-serif;
}

/* Word groups are created already hidden before the message is mounted.
   The parent question is never hidden, so an interrupted animation cannot make
   a valid question disappear. */
.sacdiag-chunk {
  display: inline;
  will-change: opacity, transform, filter;
}

.sacdiag-chunk.sacdiag-state-pending {
  opacity: 0;
  transform: translateY(5px);
  filter: blur(1.5px);
}

.sacdiag-message.sacdiag-state-focus .sacdiag-question {
  visibility: visible;
  color: #fff;
}

.sacdiag-layout-hero.sacdiag-chat-only {
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  /* The conversation is now the hero. Keep it visually substantial even
     when Elementor or a theme does not provide an explicit section height. */
  min-height: 90vh;
  min-height: 90svh;
}

.sacdiag-chat-only > .sacdiag-overlay {
  grid-column: 1;
  width: 100%;
  min-height: 90vh;
  min-height: 90svh;
}

.sacdiag-chat-only .sacdiag-panel {
  padding-left: 0;
  border-left: 0;
  min-height: 90vh;
  min-height: 90svh;
}

@media (max-width: 1099px) {
  .sacdiag-layout-hero.sacdiag-chat-only {
    grid-template-rows: minmax(0, 1fr);
  }

  .sacdiag-chat-only .sacdiag-panel {
    padding-top: 0;
    border-top: 0;
  }
}

/* ==================================================================== */
/* v1.8.0-dev.4 — report delivery                                      */
/* ==================================================================== */

.sacdiag-report-form-note {
  grid-column: 1 / -1;
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-report-ready {
  display: grid;
  gap: 12px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: var(--sacdiag-r-lg);
  background: rgba(14, 67, 133, .34);
  backdrop-filter: blur(18px) saturate(120%);
  -webkit-backdrop-filter: blur(18px) saturate(120%);
}

.sacdiag-report-ready__eyebrow {
  margin: 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sacdiag-ink-quiet);
}

.sacdiag-report-ready h3 {
  margin: 0;
  font-family: "Dailyfont", Manrope, sans-serif;
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1;
  letter-spacing: 1px;
  color: var(--sacdiag-ink);
}

.sacdiag-report-ready > p:not(.sacdiag-report-ready__eyebrow):not(.sacdiag-report-ready__expiry) {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  color: var(--sacdiag-ink-muted);
}

.sacdiag-report-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  width: fit-content;
  min-height: 48px;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--sacdiag-accent);
  color: #fff;
  text-decoration: none;
  font-weight: 700;
}

.sacdiag-report-ready__expiry {
  margin: 0;
  font-size: 11px;
  color: var(--sacdiag-ink-faint);
}

@media (max-width: 679px) {
  .sacdiag-report-download { width: 100%; }
  .sacdiag-report-ready { padding: 18px; }
}

/* v1.8.0-dev.4 — question visibility fail-safe.
   GSAP normally removes .sacdiag-state-pending within one second. If an optimisation or
   page-builder script interrupts that callback, CSS reveals the words anyway. */
@keyframes sacdiag-question-failsafe {
  to {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
  }
}

.sacdiag-chunk.sacdiag-state-pending {
  animation: sacdiag-question-failsafe .01s linear 1.45s forwards;
}


/* v1.8.0-dev.10: configurable, consistently circular Thinking Orbs. */
.sacdiag-thinking-orb,
.sacdiag-thinking-orb__canvas {
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 var(--sacdiag-thinking-orb-size, 80px);
  transform: translateZ(0);
  backface-visibility: hidden;
  contain: layout paint size;
}

/* v1.8.0-dev.11 — compact activity indicator. Orb size changes only the orb,
   never the pill or dock geometry. Official source canvas remains hidden. */
.sacdiag-dock {
  grid-template-rows: 48px auto auto auto;
}
.sacdiag-dock__bar {
  min-height: 48px;
}
.sacdiag-state {
  gap: 10px;
  min-height: 44px;
  max-width: min(100%, 440px);
  padding: 3px 14px 3px 6px;
}
.sacdiag-state__visual {
  flex: 0 0 auto;
  width: var(--sacdiag-thinking-orb-size, 64px);
  height: var(--sacdiag-thinking-orb-size, 64px);
  max-width: 96px;
  max-height: 96px;
}
.sacdiag-thinking-orb {
  flex: 0 0 auto;
}
.sacdiag-thinking-orb__official-source {
  position: absolute !important;
  width: 64px !important;
  height: 64px !important;
  overflow: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.sacdiag-state__label {
  font-size: 13px;
  line-height: 1.25;
  white-space: normal;
}
@media (max-width: 767px) {
  .sacdiag-dock { grid-template-rows: 44px auto auto auto; }
  .sacdiag-dock__bar { min-height: 44px; }
  .sacdiag-state { min-height: 40px; padding-right: 10px; }
  .sacdiag-state__visual { max-width: 72px; max-height: 72px; }
  .sacdiag-state__label { font-size: 12px; }
}

/* v1.8.0-dev.13 — native orb engine + compact activity status. */
.sacdiag-dock {
  grid-template-rows: minmax(52px, auto) auto auto auto;
}
.sacdiag-dock__bar {
  min-height: 52px;
  align-items: flex-end;
}
.sacdiag-state {
  position: relative;
  width: fit-content;
  max-width: min(100%, 380px);
  min-height: 48px;
  padding: 5px 14px 5px 7px;
  gap: 10px;
  border-radius: 999px;
  overflow: visible;
}
.sacdiag-state__visual {
  width: var(--sacdiag-thinking-orb-size, 64px);
  height: var(--sacdiag-thinking-orb-size, 64px);
  max-width: none;
  max-height: none;
  flex: 0 0 var(--sacdiag-thinking-orb-size, 64px);
  overflow: visible;
}
.sacdiag-thinking-orb,
.sacdiag-thinking-orb__canvas {
  display: block;
  width: var(--sacdiag-thinking-orb-size, 64px);
  height: var(--sacdiag-thinking-orb-size, 64px);
  border-radius: 0;
  overflow: visible;
  contain: none;
  opacity: 1 !important;
  visibility: visible !important;
}
.sacdiag-state__label {
  max-width: 260px;
  font-size: 13px;
  line-height: 1.2;
  white-space: normal;
}
@media (max-width: 767px) {
  .sacdiag-dock { grid-template-rows: minmax(48px, auto) auto auto auto; }
  .sacdiag-dock__bar { min-height: 48px; }
  .sacdiag-state { max-width: calc(100vw - 36px); padding: 4px 11px 4px 5px; gap: 8px; }
  .sacdiag-state__label { max-width: 210px; font-size: 12px; }
}


/* ==================================================================== */
/* v1.8.0-dev.14 — official Thinking Orbs + Border Beam                 */
/* ==================================================================== */

/* The official orb is rendered inside a transparent canvas. Keep the canvas
   independent from the status-pill dimensions and never allow theme CSS to
   collapse it. */
.sacdiag-thinking-orb,
.sacdiag-thinking-orb__canvas {
  flex: 0 0 auto;
  max-width: none !important;
  max-height: none !important;
  border: 0;
  background: transparent;
}

/* Border Beam uses ::before / ::after plus a bloom child. Keep the actual
   composer controls and answer-card content above those pointer-transparent
   layers. */
.sacdiag-composer[data-sacdiag-beam] > :not([data-beam-bloom]),
.sacdiag-option[data-sacdiag-beam] > :not([data-beam-bloom]) {
  position: relative;
  z-index: 4;
}

.sacdiag-composer[data-sacdiag-beam] {
  isolation: isolate;
  overflow: hidden;
}

.sacdiag-option[data-sacdiag-beam] {
  isolation: isolate;
  overflow: hidden;
}

/* Disable the older refraction pseudo-element only on beam-enabled answers.
   The injected Border Beam rule has higher specificity while active and
   supplies the actual travelling border. */
.sacdiag-option[data-sacdiag-beam]::after {
  height: auto;
  background: none;
  opacity: 0;
}

/* The beam is a border treatment, not a new shadow/elevation system. */
.sacdiag-composer[data-sacdiag-beam],
.sacdiag-option[data-sacdiag-beam] {
  box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .sacdiag-composer[data-sacdiag-beam],
  .sacdiag-option[data-sacdiag-beam] {
    --beam-strength: 0;
  }
}

/* ==================================================================== */
/* v1.8.0-dev.15 — persistent AI presence + stable first paint          */
/* ==================================================================== */

/* The visible top chrome has been removed. The panel now consists only
   of the conversation stage and the dock. */
.sacdiag-layout-hero .sacdiag-panel,
.sacdiag-open-embedded .sacdiag-panel {
  grid-template-rows: minmax(0, 1fr) auto;
  gap: clamp(8px, 1.2vh, 14px);
  padding-top: clamp(8px, 1vh, 14px);
}

.sacdiag-header,
.sacdiag-progress {
  display: none !important;
}

/* First-paint guard: keep unstable transcript/dock geometry hidden until
   session restoration has measured the final panel. The AI object remains
   visible, so the opening never looks empty or broken. */
.sacdiag-consultant.sacdiag-state-booting .sacdiag-stack,
.sacdiag-consultant.sacdiag-state-booting .sacdiag-dock {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.sacdiag-consultant.sacdiag-state-ready .sacdiag-stack,
.sacdiag-consultant.sacdiag-state-ready .sacdiag-dock {
  opacity: 1;
  visibility: visible;
  transition: opacity .42s cubic-bezier(.22, 1, .36, 1);
}

/* Remove the mask from the whole stage so it cannot fade or clip the AI
   presence object. Conversation fading is supplied by stage overlays. */
.sacdiag-stage {
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.sacdiag-stage::before {
  content: "";
  position: absolute;
  z-index: 4;
  top: 0;
  left: 0;
  right: clamp(4px, 1vw, 18px);
  height: clamp(38px, 7vh, 76px);
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(25, 69, 126, .20), transparent);
  backdrop-filter: blur(1.5px);
  -webkit-backdrop-filter: blur(1.5px);
  -webkit-mask-image: linear-gradient(to bottom, #000, transparent);
  mask-image: linear-gradient(to bottom, #000, transparent);
}

.sacdiag-stack {
  z-index: 3;
}

/* Persistent AI object — the target geometries come from the supplied torus
   HTML. It starts large, then becomes a smaller top-centred presence after the
   visitor contributes to the conversation. */
.sacdiag-presence {
  --sacdiag-presence-size: clamp(238px, 27vw, 342px);
  position: absolute;
  z-index: 2;
  top: clamp(4px, 3.2vh, 30px);
  left: 50%;
  width: var(--sacdiag-presence-size);
  height: var(--sacdiag-presence-size);
  transform: translateX(-50%) translateZ(0);
  transform-origin: 50% 0;
  pointer-events: none;
  opacity: .94;
  transition:
    width .72s cubic-bezier(.22, 1, .36, 1),
    height .72s cubic-bezier(.22, 1, .36, 1),
    top .72s cubic-bezier(.22, 1, .36, 1),
    opacity .42s ease,
    filter .42s ease;
  contain: layout paint size;
}

/* Quiet no-JS/first-frame fallback. It disappears as soon as the native
   canvas mounts, avoiding the previous giant empty outline. */
.sacdiag-presence:not(.sacdiag-state-mounted)::before {
  content: "";
  position: absolute;
  inset: 14%;
  border-radius: 50%;
  opacity: .34;
  background-image: radial-gradient(circle, var(--sacdiag-orb-color, #fff) 0 1px, transparent 1.4px);
  background-size: 12px 12px;
  -webkit-mask-image: radial-gradient(circle, #000 0 58%, transparent 76%);
  mask-image: radial-gradient(circle, #000 0 58%, transparent 76%);
  animation: sacdiag-presence-breathe 1.8s ease-in-out infinite;
}

.sacdiag-presence__canvas {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none !important;
  max-height: none !important;
  background: transparent;
}

.sacdiag-consultant.sacdiag-state-has-conversation .sacdiag-presence {
  --sacdiag-presence-size: clamp(78px, 8.2vw, 108px);
  top: clamp(2px, .8vh, 8px);
  opacity: .74;
  filter: saturate(1.08);
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-presence,
.sacdiag-consultant.sacdiag-state-revealing .sacdiag-presence {
  opacity: 1;
  filter: saturate(1.18) brightness(1.06);
}

@keyframes sacdiag-presence-breathe {
  0%, 100% { transform: scale(.96); opacity: .24; }
  50% { transform: scale(1.03); opacity: .42; }
}

/* Restart and overlay-close controls now live inside the hero composer. */
.sacdiag-restart-composer,
.sacdiag-close-composer {
  position: relative;
  z-index: 5;
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid var(--sacdiag-glass-border);
  border-radius: 10px;
  background:
    linear-gradient(135deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .04));
  background-color: var(--sacdiag-glass-tint);
  color: var(--sacdiag-ink-muted);
  cursor: pointer;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease;
}

.sacdiag-restart-composer:hover,
.sacdiag-restart-composer:focus-visible,
.sacdiag-close-composer:hover,
.sacdiag-close-composer:focus-visible {
  color: var(--sacdiag-ink);
  border-color: var(--sacdiag-glass-border-hover);
  background-color: var(--sacdiag-glass-tint-strong);
  outline: none;
}

.sacdiag-restart-composer svg,
.sacdiag-close-composer svg {
  width: 16px;
  height: 16px;
}

/* The configured orb colour must be the only particle hue. Depth is expressed
   with alpha, not by mixing in white/grey. */
.sacdiag-thinking-orb,
.sacdiag-thinking-orb__canvas,
.sacdiag-presence,
.sacdiag-presence__canvas {
  color: var(--sacdiag-orb-color, #fff);
}

@media (max-width: 767px) {
  .sacdiag-layout-hero .sacdiag-panel,
  .sacdiag-open-embedded .sacdiag-panel {
    padding-top: 4px;
  }

  .sacdiag-presence {
    --sacdiag-presence-size: clamp(188px, 56vw, 252px);
    top: 4px;
  }

  .sacdiag-consultant.sacdiag-state-has-conversation .sacdiag-presence {
    --sacdiag-presence-size: clamp(68px, 19vw, 86px);
    top: 1px;
  }

  .sacdiag-stage::before {
    height: 42px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sacdiag-presence,
  .sacdiag-presence:not(.sacdiag-state-mounted)::before {
    transition: none !important;
    animation: none !important;
  }
}

/* Message text remains hoverable even though the transcript stack itself does
   not intercept wheel/touch navigation. */
.sacdiag-message__surface {
  pointer-events: auto;
}

/* ==================================================================== */
/* v1.8.0-dev.16 — fine WebGL presence, stronger beams, lighter UI      */
/* ==================================================================== */

/* Native WebGL now supplies the large AI object. Keep its pixels crisp and
   avoid browser scaling/filtering that made the previous Canvas2D particles
   look oversized and patchy. */
.sacdiag-presence__canvas {
  image-rendering: auto;
  filter: none !important;
  will-change: auto;
}

/* Beam palette and speed restored to the previously approved treatment. */

/* Lightweight hero rendering. Large backdrop blurs were being recomposited
   while messages, options, beams and the particle object were animating. */
.sacdiag-layout-hero .sacdiag-panel,
.sacdiag-open-embedded .sacdiag-panel {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.sacdiag-layout-hero .sacdiag-composer,
.sacdiag-open-embedded .sacdiag-composer {
  backdrop-filter: blur(10px) saturate(115%) !important;
  -webkit-backdrop-filter: blur(10px) saturate(115%) !important;
}

.sacdiag-layout-hero .sacdiag-option,
.sacdiag-open-embedded .sacdiag-option {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.sacdiag-stage::before {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.sacdiag-message__surface,
.sacdiag-option,
.sacdiag-composer {
  contain: layout paint style;
  backface-visibility: hidden;
}

@media (max-width: 767px) {
  .sacdiag-layout-hero .sacdiag-composer,
  .sacdiag-open-embedded .sacdiag-composer {
    backdrop-filter: blur(6px) saturate(110%) !important;
    -webkit-backdrop-filter: blur(6px) saturate(110%) !important;
  }
}

/* ==================================================================== */
/* v1.8.0-dev.18 — interaction-anchored conversation ending             */
/* ==================================================================== */

/* The activity row must not reserve an empty track. The latest message now
   finishes directly above the first available interaction: answer options
   when present, otherwise the composer. */
.sacdiag-consultant .sacdiag-dock {
  grid-template-rows: none;
}

.sacdiag-consultant .sacdiag-dock__bar {
  display: none;
  min-height: 0;
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar {
  display: flex;
  min-height: 52px;
}

/* History navigation floats on the interaction boundary instead of creating
   another row between the focused message and the answers/input. */
.sacdiag-consultant .sacdiag-back-latest {
  position: absolute;
  z-index: 9;
  top: 0;
  right: clamp(4px, 1vw, 18px);
  margin: 0;
  transform: translateY(-50%);
}

@media (max-width: 679px) {
  .sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar {
    min-height: 48px;
  }

  .sacdiag-consultant .sacdiag-back-latest {
    right: 0;
  }
}


/* ==================================================================== */
/* v1.8.0-dev.19 — height-led interaction transitions                   */
/* ==================================================================== */

/* The dock no longer relies on an always-on grid gap. Each temporary row
   animates its own spacing together with its height, so nothing above or
   below it receives an abrupt 8–12px jump at the end of a transition. */
.sacdiag-consultant .sacdiag-dock {
  --sacdiag-dock-gap: clamp(7px, 1vh, 12px);
  gap: 0;
}

/* Thinking/activity pill: a real collapsing grid row plus opacity and
   translation. The state remains in the DOM until this transition ends. */
.sacdiag-consultant .sacdiag-dock__bar {
  display: grid;
  grid-template-rows: 0fr;
  min-height: 0;
  margin-bottom: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  transform: translateY(-8px);
  visibility: hidden;
  transition:
    grid-template-rows 440ms cubic-bezier(.22, 1, .36, 1),
    margin-bottom 440ms cubic-bezier(.22, 1, .36, 1),
    opacity 260ms ease,
    transform 440ms cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear 440ms;
  will-change: grid-template-rows, margin-bottom, opacity, transform;
}

.sacdiag-consultant .sacdiag-dock__bar > .sacdiag-state {
  min-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(-4px) scale(.992);
  transition:
    min-height 440ms cubic-bezier(.22, 1, .36, 1),
    opacity 260ms ease,
    transform 440ms cubic-bezier(.22, 1, .36, 1);
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar {
  grid-template-rows: 1fr;
  min-height: 0;
  margin-bottom: var(--sacdiag-dock-gap);
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
  transition-delay: 0s;
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar > .sacdiag-state {
  min-height: 48px;
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* Answer choices: JavaScript writes the measured content height into the
   custom property. CSS performs the geometry motion while the cards fade and
   soften independently, eliminating the previous one-frame snap. */
.sacdiag-consultant .sacdiag-options {
  display: grid;
  gap: 8px;
  max-height: var(--sacdiag-options-height, 0px);
  min-height: 0;
  margin-bottom: 0;
  opacity: 0;
  overflow: clip;
  pointer-events: none;
  transform: translateY(-10px);
  visibility: hidden;
  transition:
    max-height 480ms cubic-bezier(.22, 1, .36, 1),
    margin-bottom 480ms cubic-bezier(.22, 1, .36, 1),
    opacity 300ms ease,
    transform 480ms cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear 480ms;
  will-change: max-height, margin-bottom, opacity, transform;
}

.sacdiag-consultant .sacdiag-options.sacdiag-state-has-options {
  margin-bottom: var(--sacdiag-dock-gap);
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
  visibility: visible;
  transition-delay: 0s;
}

.sacdiag-consultant .sacdiag-options.sacdiag-state-no-height-motion {
  transition: none !important;
}

/* Once the collapsing content is removed, also remove the grid item itself.
   Until then it stays renderable so max-height and opacity can finish. */
.sacdiag-consultant .sacdiag-options:empty {
  display: none;
}

.sacdiag-consultant .sacdiag-attachment-tray:not([hidden]) {
  margin-bottom: var(--sacdiag-dock-gap);
}

@media (max-width: 679px) {
  .sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar > .sacdiag-state {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .sacdiag-consultant .sacdiag-dock__bar,
  .sacdiag-consultant .sacdiag-dock__bar > .sacdiag-state,
  .sacdiag-consultant .sacdiag-options {
    transition: none !important;
    transform: none !important;
  }
}

/* Exact zero-height correction: the activity pill contains its own padding and
   border, so a 0fr grid row can retain a few pixels in some browsers. Animate
   the bar's physical height instead; its orb size gives us a deterministic
   open height. */
.sacdiag-consultant .sacdiag-dock__bar {
  display: flex;
  grid-template-rows: none;
  height: 0;
  transition:
    height 440ms cubic-bezier(.22, 1, .36, 1),
    margin-bottom 440ms cubic-bezier(.22, 1, .36, 1),
    opacity 260ms ease,
    transform 440ms cubic-bezier(.22, 1, .36, 1),
    visibility 0s linear 440ms;
  will-change: height, margin-bottom, opacity, transform;
}

.sacdiag-consultant.sacdiag-state-thinking .sacdiag-dock__bar {
  height: max(52px, calc(var(--sacdiag-thinking-orb-size, 64px) + 12px));
}

/* ==================================================================== */
/* v1.8.0-dev.25 — Elementor-proof chat-only shell                       */
/* The chat now owns its geometry and control appearance.                */
/* ==================================================================== */

/* The production chat palette is deliberately restrained. Saved legacy
   accent values cannot re-introduce the old green/pink treatment here. */
.sacdiag-consultant.sacdiag-chat-only {
  --sacdiag-accent: #2e7be0 !important;
  --sacdiag-blue: #2e7be0 !important;
  --sacdiag-deep: #0b2a5e !important;
  --sacdiag-glass-tint: rgba(34, 78, 137, .18) !important;
  --sacdiag-glass-tint-strong: rgba(52, 98, 159, .24) !important;
  --sacdiag-glass-border: rgba(214, 229, 250, .30) !important;
  --sacdiag-glass-border-hover: rgba(232, 241, 255, .54) !important;
  --sacdiag-content-max: 980px;

  container-type: inline-size;
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #fff !important;
  overflow: visible !important;
  isolation: isolate !important;
  font-family: var(--sacdiag-font, var(--sacdiag-font-fallback)) !important;
  text-align: left !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: normal !important;
}

.sacdiag-consultant.sacdiag-chat-only.sacdiag-state-height-locked {
  height: auto !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  max-height: none !important;
}

.sacdiag-consultant.sacdiag-chat-only > .sacdiag-intro {
  display: none !important;
}

.sacdiag-consultant.sacdiag-chat-only > .sacdiag-overlay {
  position: relative !important;
  inset: auto !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
  position: relative !important;
  inset: auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: minmax(340px, 1fr) auto !important;
  gap: clamp(12px, 1.5svh, 18px) !important;
  width: min(100%, var(--sacdiag-content-max)) !important;
  max-width: var(--sacdiag-content-max) !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  max-height: none !important;
  margin: 0 auto !important;
  padding: clamp(8px, 1.2svh, 16px) clamp(12px, 1.6cqw, 20px) clamp(12px, 1.6svh, 22px) !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  overflow: visible !important;
  box-shadow: none !important;
}

/* Strong local reset: Elementor Kits commonly target h3, p, button, textarea,
   select and svg after plugin styles. These declarations intentionally win. */
.sacdiag-consultant.sacdiag-chat-only :where(h1,h2,h3,h4,h5,h6,p,ul,ol,li,span,strong,small,label,button,textarea,select,option,article,section,div,form) {
  box-sizing: border-box !important;
}

.sacdiag-consultant.sacdiag-chat-only :where(h1,h2,h3,h4,h5,h6,p,ul,ol) {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only button {
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  font-family: inherit !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  line-height: 1 !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only textarea,
.sacdiag-consultant.sacdiag-chat-only select {
  -webkit-appearance: none;
  appearance: none;
  margin: 0 !important;
  font-family: inherit !important;
  text-transform: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only svg {
  display: block !important;
  flex: 0 0 auto !important;
  max-width: none !important;
  max-height: none !important;
  fill: none !important;
  stroke: currentColor !important;
}

/* Conversation stage: never fade or crop the focused text. The component can
   grow taller than 90vh when mobile options require more room. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage {
  position: relative !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: clamp(360px, 51svh, 570px) !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  visibility: visible !important;
  opacity: 1 !important;
  isolation: isolate !important;
  contain: layout paint !important;
  -webkit-mask-image: none !important;
  mask-image: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage::before,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage::after {
  content: none !important;
  display: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-presence {
  max-width: 38% !important;
  max-height: 38% !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-stack {
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-message__surface {
  max-width: 100% !important;
  min-width: 0 !important;
  visibility: visible !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message__surface {
  gap: clamp(7px, .9svh, 12px) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-assistant {
  padding-right: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-user {
  padding-left: clamp(48px, 16%, 170px) !important;
  padding-right: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message__label {
  margin: 0 !important;
  font-size: 10px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.40) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-question {
  width: auto !important;
  max-width: 24ch !important;
  margin: 0 !important;
  padding: 0 !important;
  font-family: "Dailyfont", Manrope, var(--sacdiag-font-fallback) !important;
  font-size: clamp(34px, 5cqw, 52px) !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  font-style: normal !important;
  letter-spacing: .01em !important;
  text-transform: none !important;
  color: #fff !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  text-wrap: balance;
  opacity: 1 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question {
  font-size: clamp(31px, 4.5cqw, 46px) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
  font-size: clamp(29px, 4cqw, 42px) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-ack {
  max-width: 58ch !important;
  margin: 0 !important;
  font-family: var(--sacdiag-serif) !important;
  font-size: clamp(12px, 1.45cqw, 15px) !important;
  line-height: 1.35 !important;
  font-style: italic !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  color: rgba(255,255,255,.52) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-interpretation {
  max-width: 60ch !important;
  margin: 0 !important;
  font-size: clamp(14px, 1.75cqw, 18px) !important;
  line-height: 1.48 !important;
  font-weight: 400 !important;
  letter-spacing: normal !important;
  color: rgba(255,255,255,.72) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-said {
  max-width: 23ch !important;
  margin: 0 0 0 auto !important;
  padding: 0 !important;
  font-size: clamp(20px, 3.3cqw, 34px) !important;
  line-height: 1.08 !important;
  font-weight: 500 !important;
  letter-spacing: -.01em !important;
  text-align: right !important;
  color: rgba(255,255,255,.82) !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-chunk.sacdiag-state-pending {
  animation: sacdiag-reveal-failsafe .01s linear 900ms forwards;
}

@keyframes sacdiag-reveal-failsafe {
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* Dock + answers: stable widths, natural heights and container-driven columns. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-dock {
  position: relative !important;
  z-index: 8 !important;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  grid-template-rows: none !important;
  gap: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-options {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 8px !important;
  width: 100% !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="1"] {
  grid-template-columns: minmax(0, 1fr) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="2"] {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 48px minmax(0, 1fr) 16px !important;
  align-items: center !important;
  gap: 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 72px !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  border: 1px solid rgba(214,229,250,.28) !important;
  border-radius: 14px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.035)) !important;
  background-color: rgba(26,67,121,.20) !important;
  color: #fff !important;
  text-align: left !important;
  text-decoration: none !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option:hover,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option:focus-visible,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option.sacdiag-state-selected {
  border-color: rgba(232,241,255,.56) !important;
  background-color: rgba(44,88,146,.28) !important;
  outline: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon {
  display: grid !important;
  place-items: center !important;
  width: 48px !important;
  height: 48px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid rgba(222,234,251,.30) !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, rgba(218,231,250,.22), rgba(129,159,202,.12)) !important;
  color: #fff !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon svg,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon img,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__glyph {
  width: 28px !important;
  height: 28px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  min-width: 0 !important;
  max-width: 100% !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy small {
  margin: 0 !important;
  font-size: 9.5px !important;
  line-height: 1.15 !important;
  font-weight: 600 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase !important;
  color: rgba(255,255,255,.40) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy strong {
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.28 !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: #fff !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: normal !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__arrow {
  justify-self: end !important;
  font-size: 14px !important;
  line-height: 1 !important;
  color: rgba(255,255,255,.38) !important;
}

/* Composer is explicitly painted so Elementor button/global accent rules can
   no longer turn controls pink or green. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto !important;
  grid-template-areas: "input input" "tools actions" !important;
  align-items: center !important;
  gap: 7px 10px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 10px 10px 9px 13px !important;
  border: 1px solid rgba(218,231,250,.32) !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, rgba(255,255,255,.11), rgba(255,255,255,.04)), rgba(24,65,120,.34) !important;
  color: #fff !important;
  box-shadow: none !important;
  overflow: hidden !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer textarea {
  grid-area: input !important;
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  min-height: 36px !important;
  max-height: 90px !important;
  margin: 0 !important;
  padding: 5px 2px 3px !important;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 15px !important;
  line-height: 1.4 !important;
  font-weight: 400 !important;
  letter-spacing: 0 !important;
  resize: none !important;
  overflow: hidden !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer textarea::placeholder {
  color: rgba(255,255,255,.72) !important;
  opacity: 1 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__tools,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__actions {
  min-width: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__tools {
  grid-area: tools !important;
  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__actions {
  grid-area: actions !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-restart-composer,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-close-composer,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-attach,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-model,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-mic {
  border: 1px solid rgba(218,231,250,.28) !important;
  background: rgba(25,64,117,.42) !important;
  color: rgba(255,255,255,.78) !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-restart-composer,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-close-composer,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-attach {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  min-height: 34px !important;
  padding: 0 !important;
  border-radius: 10px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-model {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  width: auto !important;
  max-width: 220px !important;
  min-width: 0 !important;
  height: 34px !important;
  min-height: 34px !important;
  margin: 0 !important;
  padding: 0 9px !important;
  border-radius: 10px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-model select {
  min-width: 0 !important;
  max-width: 176px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  outline: 0 !important;
  background: transparent !important;
  color: #fff !important;
  font-size: 11.5px !important;
  line-height: 1.2 !important;
  font-weight: 600 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-mic,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send {
  display: grid !important;
  place-items: center !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  min-height: 38px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 11px !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-send {
  border: 1px solid rgba(188,214,250,.72) !important;
  background: #2e7be0 !important;
  color: #fff !important;
  filter: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:hover,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:focus-visible {
  background: #397fdd !important;
  border-color: rgba(232,241,255,.86) !important;
  color: #fff !important;
  outline: none !important;
  filter: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-privacy-note {
  margin: 4px 0 0 !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
  font-weight: 400 !important;
  letter-spacing: .01em !important;
  color: rgba(255,255,255,.34) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-back-latest {
  border-color: rgba(218,231,250,.28) !important;
  background: rgba(25,64,117,.52) !important;
  color: rgba(255,255,255,.78) !important;
}

/* Activity pill uses the same cool neutral glass. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-state {
  border-color: rgba(218,231,250,.26) !important;
  background: rgba(25,64,117,.34) !important;
  color: #fff !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-progress i {
  background: #2e7be0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-status-dot {
  background: #2e7be0 !important;
}


/* Secondary states/forms inherit the same protection so later diagnostic
   stages do not fall back to Elementor Kit form/button styling. */
.sacdiag-consultant.sacdiag-chat-only [hidden] {
  display: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-more-options,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-retry,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-multi-submit,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-submit-lead {
  margin: 0 !important;
  border: 1px solid rgba(218,231,250,.30) !important;
  background: rgba(35,78,136,.44) !important;
  color: #fff !important;
  text-transform: none !important;
  text-decoration: none !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-multi-submit,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-submit-lead {
  background: #2e7be0 !important;
  border-color: rgba(188,214,250,.72) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-lead-form,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-report-ready {
  border: 1px solid rgba(218,231,250,.28) !important;
  background: rgba(25,64,117,.34) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-field :where(input,select,textarea) {
  width: 100% !important;
  margin: 0 !important;
  border: 1px solid rgba(218,231,250,.28) !important;
  border-radius: 10px !important;
  background: rgba(22,57,105,.48) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 13.5px !important;
  line-height: 1.35 !important;
  text-transform: none !important;
  box-shadow: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-field label,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-consent,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-report-form-note,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-report-ready p {
  color: rgba(255,255,255,.62) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-report-ready h3 {
  margin: 0 !important;
  color: #fff !important;
  font-family: "Dailyfont", Manrope, var(--sacdiag-font-fallback) !important;
  font-size: clamp(26px, 4cqw, 40px) !important;
  line-height: 1.08 !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}

/* Elementor-container breakpoints. */
@container (max-width: 760px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@container (max-width: 560px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
    grid-template-rows: minmax(330px, auto) auto !important;
    gap: 12px !important;
    width: 100% !important;
    min-height: 90svh !important;
    padding: 8px 10px 14px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-stage {
    min-height: clamp(330px, 46svh, 440px) !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-presence {
    --sacdiag-presence-size: clamp(150px, 45cqw, 205px) !important;
    max-width: none !important;
    max-height: none !important;
    top: 0 !important;
  }

  .sacdiag-consultant.sacdiag-chat-only.sacdiag-state-has-conversation .sacdiag-presence {
    --sacdiag-presence-size: clamp(66px, 18cqw, 82px) !important;
    top: 0 !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="2"],
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option {
    grid-template-columns: 44px minmax(0, 1fr) 14px !important;
    gap: 9px !important;
    min-height: 62px !important;
    padding: 8px 10px !important;
    border-radius: 13px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon {
    width: 44px !important;
    height: 44px !important;
    border-radius: 11px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon svg,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option__icon img,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option__glyph {
    width: 25px !important;
    height: 25px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy strong {
    font-size: 13.5px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-question {
    max-width: none !important;
    font-size: clamp(29px, 8.2cqw, 36px) !important;
    line-height: 1.04 !important;
    letter-spacing: 0 !important;
    text-wrap: pretty;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
    font-size: clamp(27px, 7.5cqw, 33px) !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-said {
    max-width: 22ch !important;
    font-size: clamp(19px, 6.2cqw, 26px) !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-user {
    padding-left: 12% !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-composer {
    gap: 6px 7px !important;
    padding: 8px 8px 7px 10px !important;
    border-radius: 16px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__tools,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__actions {
    gap: 5px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-restart-composer,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-close-composer,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-attach {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    min-height: 32px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model {
    max-width: min(38cqw, 154px) !important;
    height: 32px !important;
    min-height: 32px !important;
    padding-inline: 7px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model select {
    max-width: min(30cqw, 118px) !important;
    font-size: 10px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-mic,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-send {
    width: 34px !important;
    height: 34px !important;
    min-width: 34px !important;
    min-height: 34px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-privacy-note {
    font-size: 9px !important;
  }
}

@container (max-width: 360px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
    padding-inline: 7px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model__spark {
    display: none !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model {
    max-width: 104px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model select {
    max-width: 90px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-mic {
    display: none !important;
  }
}



/* ==================================================================== */
/* v1.8.0-dev.26 — stable Elementor integration                         */
/* Normal-flow conversation geometry; no crop masks; no colored beams. */
/* ==================================================================== */

.sacdiag-consultant.sacdiag-chat-only,
.sacdiag-consultant.sacdiag-chat-only *,
.sacdiag-consultant.sacdiag-chat-only *::before,
.sacdiag-consultant.sacdiag-chat-only *::after {
  box-sizing: border-box !important;
}

.sacdiag-consultant.sacdiag-chat-only {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-x: clip !important;
  --sacdiag-accent: #2e7be0 !important;
  --sacdiag-blue: #2e7be0 !important;
}

.sacdiag-consultant.sacdiag-chat-only > .sacdiag-overlay,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-panel,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stack,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-dock,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-options,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer {
  min-width: 0 !important;
  max-width: 100% !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
  grid-template-rows: minmax(0, 1fr) auto !important;
  width: 100% !important;
  max-width: 1180px !important;
  min-height: 90svh !important;
  margin-inline: auto !important;
  padding: clamp(16px, 2.2vw, 30px) !important;
  gap: clamp(16px, 2vh, 24px) !important;
  overflow: visible !important;
}

/* The current message is no longer positioned absolutely. This removes the
   stale-height clipping shown when Elementor or a font changes after mount. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  width: 100% !important;
  min-height: clamp(360px, 52svh, 620px) !important;
  height: auto !important;
  padding: 0 !important;
  overflow: visible !important;
  contain: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage::before,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stage::after,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-hover-zone {
  display: none !important;
  content: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-stack,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-stack.sacdiag-state-ready {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-end !important;
  width: 100% !important;
  min-height: 0 !important;
  transform: none !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  padding-right: 0 !important;
  overflow: visible !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message__surface {
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  transform: none !important;
  filter: none !important;
  overflow: visible !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-user {
  padding-left: clamp(36px, 12%, 140px) !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-question {
  width: 100% !important;
  max-width: 21ch !important;
  margin: 0 !important;
  padding: 0 !important;
  font-size: clamp(36px, 4.6cqw, 58px) !important;
  line-height: 1.03 !important;
  letter-spacing: 0 !important;
  overflow: visible !important;
  text-wrap: balance !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
  font-size: clamp(32px, 4.1cqw, 50px) !important;
}

/* Reveal remains a fade/slide only. Blur was reading as clipped/soft text. */
.sacdiag-consultant.sacdiag-chat-only .sacdiag-chunk,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-chunk.sacdiag-state-pending {
  filter: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-chunk.sacdiag-state-pending {
  transform: translateY(4px);
}

/* Kill the animated beam completely in embedded chat mode. It was the source
   of the legacy pink/green edge flashes in some browsers/builders. */
.sacdiag-consultant.sacdiag-chat-only [data-beam]::before,
.sacdiag-consultant.sacdiag-chat-only [data-beam]::after,
.sacdiag-consultant.sacdiag-chat-only [data-beam-bloom] {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-composer {
  width: 100% !important;
  margin: 0 !important;
  border: 1px solid rgba(214,229,250,.34) !important;
  background: rgba(31,72,128,.54) !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-send,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:hover,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:focus,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:focus-visible,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-send:active {
  appearance: none !important;
  -webkit-appearance: none !important;
  border: 1px solid rgba(210,228,252,.62) !important;
  background: #2e7be0 !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: none !important;
  filter: none !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  width: 100% !important;
  gap: 10px !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option {
  width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
}

.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy strong,
.sacdiag-consultant.sacdiag-chat-only .sacdiag-option__copy small {
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: anywhere !important;
}

@container (max-width: 980px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@container (max-width: 620px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
    min-height: 90svh !important;
    padding: 14px 12px 16px !important;
    gap: 14px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-stage {
    min-height: clamp(300px, 44svh, 420px) !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-question,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
    max-width: none !important;
    font-size: clamp(30px, 8.1cqw, 40px) !important;
    line-height: 1.04 !important;
    text-wrap: pretty !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="2"],
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
    grid-template-columns: 1fr !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-option {
    grid-template-columns: 44px minmax(0, 1fr) 14px !important;
    min-height: 60px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-user {
    padding-left: 8% !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-composer {
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "input input" "tools actions" !important;
    width: 100% !important;
    padding: 9px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-composer__tools {
    flex-wrap: wrap !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model {
    max-width: min(52cqw, 180px) !important;
  }
}

@container (max-width: 390px) {
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-panel {
    padding-inline: 9px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-question,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
  .sacdiag-consultant.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
    font-size: clamp(27px, 8.6cqw, 34px) !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model {
    max-width: 128px !important;
  }

  .sacdiag-consultant.sacdiag-chat-only .sacdiag-model select {
    max-width: 94px !important;
  }
}


/* ====================================================================
   v1.8.0-dev.28 — deterministic Elementor-safe chat geometry
   Keep the live question in normal flow, reserve real space for the orb,
   and use the proven v9 type scale. No clipping, no viewport anchoring.
   ==================================================================== */
.sacdiag-consultant.sacdiag-chat-only,
.sacdiag-layout-hero.sacdiag-chat-only,
.sacdiag-layout-hero.sacdiag-chat-only.sacdiag-state-height-locked,
.sacdiag-layout-hero.sacdiag-chat-only > .sacdiag-overlay,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-panel {
  height: auto !important;
  min-height: 90vh !important;
  min-height: 90svh !important;
  max-height: none !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-panel {
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: 14px !important;
  width: min(100%, 1120px) !important;
  max-width: 1120px !important;
  margin-inline: auto !important;
  padding: clamp(18px, 2.2vw, 30px) !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-stage {
  position: relative !important;
  display: block !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  padding: clamp(132px, 18svh, 190px) 0 0 !important;
  overflow: visible !important;
  contain: none !important;
  clip: auto !important;
  clip-path: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-presence {
  position: absolute !important;
  top: clamp(18px, 3svh, 34px) !important;
  left: 50% !important;
  right: auto !important;
  bottom: auto !important;
  transform: translateX(-50%) !important;
  width: clamp(88px, 12cqw, 145px) !important;
  height: clamp(88px, 12cqw, 145px) !important;
  max-width: none !important;
  max-height: none !important;
  pointer-events: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-stack,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-stack.sacdiag-state-ready {
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  transform: none !important;
  overflow: visible !important;
  contain: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message__surface,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-question,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-said,
.sacdiag-layout-hero.sacdiag-chat-only [data-reveal],
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-chunk {
  position: relative !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow: visible !important;
  clip: auto !important;
  clip-path: none !important;
  -webkit-mask: none !important;
  mask: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message__surface {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
  transform: none !important;
  filter: none !important;
}

/* Restore the compact v9 scale. The previous 58px cap was too large for a
   full-width Elementor embed and created 5–6-line questions unnecessarily. */
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-question,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
  display: block !important;
  width: auto !important;
  max-width: 25ch !important;
  margin: 0 !important;
  padding: 0 0 .12em !important;
  font-family: "Dailyfont", Manrope, Arial, sans-serif !important;
  font-size: clamp(31px, 2.75cqw, 45px) !important;
  line-height: 1.08 !important;
  font-weight: 500 !important;
  letter-spacing: -.015em !important;
  text-wrap: balance !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  color: #fff !important;
  opacity: 1 !important;
  transform: none !important;
  filter: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question {
  font-size: clamp(28px, 2.35cqw, 38px) !important;
}
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
  font-size: clamp(25px, 2cqw, 33px) !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-chunk,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-chunk.sacdiag-state-pending {
  display: inline !important;
  max-height: none !important;
  overflow: visible !important;
  filter: none !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-dock {
  position: relative !important;
  flex: 0 0 auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 !important;
  overflow: visible !important;
}

.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-option-grid,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

/* Hard override old accent/beam residues, including inline/theme button rules. */
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-send,
.sacdiag-layout-hero.sacdiag-chat-only button.sacdiag-send,
.sacdiag-layout-hero.sacdiag-chat-only .sacdiag-send:is(:hover,:focus,:focus-visible,:active) {
  background: #2e7be0 !important;
  background-color: #2e7be0 !important;
  border-color: rgba(210,228,252,.62) !important;
  color: #fff !important;
  box-shadow: none !important;
  outline: 0 !important;
  filter: none !important;
}
.sacdiag-layout-hero.sacdiag-chat-only [data-beam]::before,
.sacdiag-layout-hero.sacdiag-chat-only [data-beam]::after,
.sacdiag-layout-hero.sacdiag-chat-only [data-beam-bloom] {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  background: none !important;
}

@container (max-width: 760px) {
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-panel {
    padding: 16px 14px 18px !important;
  }
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-stage {
    padding-top: 116px !important;
  }
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-presence {
    width: 92px !important;
    height: 92px !important;
    top: 14px !important;
  }
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-question,
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-long .sacdiag-question,
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-message.sacdiag-state-very-long .sacdiag-question {
    max-width: none !important;
    font-size: clamp(27px, 7.3cqw, 36px) !important;
    line-height: 1.08 !important;
    text-wrap: pretty !important;
  }
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-option-grid,
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-option-grid[data-count="2"],
  .sacdiag-layout-hero.sacdiag-chat-only .sacdiag-option-grid[data-count="4"] {
    grid-template-columns: 1fr !important;
  }
}
