/* Fluxy only. Reuses the original chat nodes and service; no shared widget styling elsewhere. */
body.ffx-page{--fx-ink:#101214;--fx-muted:#656b73;--fx-line:#dfe2e6;--fx-red:#d9221c;--fx-max:1280px;margin:0;background:#fff;color:var(--fx-ink);font:400 16px/1.65 Inter,system-ui,Arial,sans-serif;-webkit-font-smoothing:antialiased}
.ffx-page *,.ffx-page *::before,.ffx-page *::after{box-sizing:border-box}
.ffx-page>.ff-skip-link{position:absolute;left:-9999px;top:8px;z-index:1001;background:#151719;color:#fff;padding:10px 14px;border-radius:4px;text-decoration:none}
.ffx-page>.ff-skip-link:focus{left:18px}
.ffx-page #main-content{display:block;width:min(var(--fx-max),calc(100% - 96px));max-width:none;margin:0 auto;padding:36px 0 70px;min-width:0;background:#fff}
.ffx-page #main-content :where(h1,h2,p){margin:0}
.ffx-page #main-content a{color:inherit;text-underline-offset:4px}
.ffx-page #main-content button{font-family:inherit;cursor:pointer}
.ffx-page #main-content :where(a,button,summary,textarea):focus-visible{outline:2px solid #b31d17;outline-offset:4px}
.ffx-page #main-content [hidden]{display:none!important}
.ffx-page .ffx-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-bottom:28px;border-bottom:1px solid var(--fx-line)}
.ffx-page .ffx-brand{display:flex;align-items:center;gap:13px}
.ffx-page .ffx-mark{display:grid;place-items:center;width:43px;height:43px;background:#151719;color:#fff;font-weight:750;border-radius:10px;border-bottom:3px solid var(--fx-red)}
.ffx-page .ffx-brand h1{font:650 24px/1.1 Inter,system-ui,sans-serif;letter-spacing:-.04em}
.ffx-page .ffx-brand div>span{display:block;font-size:9px;letter-spacing:.14em;color:var(--fx-muted);margin-top:6px}
.ffx-page .ffx-text-link{font-size:13px;text-decoration:none;font-weight:550}
.ffx-page .ffx-text-link span{margin-left:7px;color:var(--fx-red)}
.ffx-page .ffx-workspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:55px;padding-top:30px;align-items:start}
.ffx-page .ffx-sidebar{padding-top:12px;min-width:0}
.ffx-page .ffx-eyebrow{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:650;letter-spacing:.12em;color:var(--fx-muted)}
.ffx-page .ffx-eyebrow::before{content:'';width:19px;height:2px;background:var(--fx-red)}
.ffx-page .ffx-sidebar h2{font-size:38px;line-height:1.13;letter-spacing:-.055em;font-weight:600;margin:23px 0 17px!important}
.ffx-page .ffx-sidebar>p:not(.ffx-eyebrow){color:var(--fx-muted);font-size:14px;line-height:1.75;max-width:265px}
.ffx-page .ffx-prompts{display:grid;gap:0;margin-top:30px;border-top:1px solid var(--fx-line)}
.ffx-page .ffx-prompts button{display:grid;grid-template-columns:minmax(0,1fr) 18px;gap:6px 8px;width:100%;text-align:left;border:0;border-bottom:1px solid var(--fx-line);padding:18px 0;background:#fff;color:var(--fx-ink)}
.ffx-page .ffx-prompts button:disabled{cursor:default;opacity:.6}
.ffx-page .ffx-prompts button:hover:not(:disabled){color:var(--fx-red)}
.ffx-page .ffx-prompt-label{font-size:13px;font-weight:650;grid-column:1}
.ffx-page .ffx-prompts button>span+span{font-size:12px;line-height:1.6;color:var(--fx-muted);grid-column:1}
.ffx-page .ffx-prompts b{grid-column:2;grid-row:1;color:var(--fx-red);font-size:16px;font-weight:500}
.ffx-page .ffx-prompt-hint{font-size:11px!important;margin-top:14px!important;color:#767c83!important}
.ffx-page .ffx-about{margin-top:28px;font-size:12px;color:var(--fx-muted)}
.ffx-page .ffx-about summary{padding:7px 0;cursor:pointer;color:#343a41;font-weight:550}
.ffx-page .ffx-about p{margin:9px 0!important;line-height:1.7}
.ffx-page .ffx-about a{display:inline-block;margin:6px 0}
.ffx-page .ffx-conversation{min-width:0;border:1px solid #dce0e4;border-radius:10px;background:#fff;overflow:hidden;box-shadow:0 4px 18px rgba(18,24,30,.025)}
.ffx-page .ffx-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 23px;border-bottom:1px solid var(--fx-line);font-size:12px;color:var(--fx-muted)}
.ffx-page .ffx-toolbar>span{display:inline-flex;align-items:center;gap:8px}
.ffx-page .ffx-toolbar i{width:5px;height:5px;background:var(--fx-red);border-radius:50%}
.ffx-page .ffx-toolbar button{border:0;background:transparent;padding:6px 0;font-size:12px;color:#4d535b;text-decoration:underline;text-underline-offset:4px}
.ffx-page .ffx-toolbar button:disabled{opacity:.45;cursor:default}
.ffx-page .ffx-mount{min-height:500px}
.ffx-page .ffx-fallback{padding:60px 30px;min-height:500px}
.ffx-page .ffx-fallback h2{font-size:24px;font-weight:600;letter-spacing:-.025em;margin-bottom:14px!important}
.ffx-page .ffx-fallback p{font-size:14px;line-height:1.8;color:var(--fx-muted);margin-bottom:18px!important}
.ffx-page .ffx-fallback a{display:inline-block;margin:15px 20px 0 0;font-size:13px}
.ffx-page #ffxRetry{background:#fff;border:1px solid #b9bfc6;border-radius:4px;padding:10px 14px;color:var(--fx-ink)}
.ffx-page .ffx-mount #fluxi.ffx-embedded{position:relative;inset:auto;width:100%;height:clamp(460px,65vh,635px);max-height:none;z-index:auto;border:0;border-radius:0;box-shadow:none;display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#fff;overflow:hidden}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-head{padding:20px 24px 13px;background:#fff;color:var(--fx-ink);border:0}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-head strong{font:650 14px/1.4 Inter,system-ui,sans-serif;color:var(--fx-ink)}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-head span{font:400 11px/1.65 Inter,system-ui,sans-serif;color:var(--fx-muted);max-width:680px;margin-top:7px}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-close{display:none}
.ffx-page.ffx-ready>.ff-fluxi-launcher{display:none!important}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-messages{display:flex;flex-direction:column;align-items:flex-start;gap:22px;min-height:0;max-height:none;padding:23px 25px 32px;background:#fff;overflow:auto;overscroll-behavior:contain;scroll-behavior:smooth}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg{font:400 15px/1.85 Inter,system-ui,sans-serif;padding:0;border:0;border-radius:0;box-shadow:none;max-width:94%;overflow-wrap:anywhere;background:#fff;color:var(--fx-ink);flex:none}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg::before{display:block;margin-bottom:7px;font-size:9px;letter-spacing:.12em;font-weight:700;color:var(--fx-muted)}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.bot::before{content:'FLUXY';color:var(--fx-red)}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.user{align-self:flex-end;margin:0;padding:14px 18px;background:#f4f5f6;border-radius:9px;max-width:90%}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.user::before{content:'YOU'}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg a{color:#a71b15;text-underline-offset:4px}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-cta,.ffx-page #fluxi.ffx-embedded .ff-fluxi-account-gate{align-self:stretch;border:1px solid var(--fx-line);background:#fafafa;border-radius:5px;box-shadow:none;padding:18px}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-form{margin:0 22px 8px;padding:12px;border:1px solid #a8afb7;border-radius:8px;gap:12px;background:#fff;align-items:end}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-form:focus-within{border-color:#b9251e;box-shadow:0 0 0 1px #b9251e}
.ffx-page #fluxi.ffx-embedded textarea{min-width:0;width:100%;min-height:76px;max-height:160px;font:400 15px/1.65 Inter,system-ui,sans-serif;padding:3px 5px;background:#fff;border:0;border-radius:0;box-shadow:none;resize:vertical}
.ffx-page #fluxi.ffx-embedded textarea:focus{outline:none;box-shadow:none}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-send{width:40px;height:40px;border-radius:6px;background:var(--fx-red);box-shadow:none;transform:none}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-send:disabled{opacity:.5;cursor:wait}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-identity.is-signed-in{display:flex;align-items:center;color:var(--fx-muted)}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-identity button{color:#363c44;border-color:#b7bdc5;background:#fff}
.ffx-page .ffx-compose-note{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 18px;padding:1px 26px 14px;font-size:10px;color:var(--fx-muted)}
.ffx-page .ffx-disclaimer{padding:15px 26px;border-top:1px solid var(--fx-line);font-size:11px;line-height:1.7;color:var(--fx-muted);background:#fcfcfc}
.ffx-page .ffx-disclaimer a{margin-left:6px}
@media(max-width:1000px){.ffx-page #main-content{width:calc(100% - 48px)}.ffx-page .ffx-workspace{grid-template-columns:220px minmax(0,1fr);gap:30px}.ffx-page .ffx-sidebar h2{font-size:34px}}
@media(max-width:760px){.ffx-page #main-content{width:calc(100% - 32px);padding:25px 0 45px}.ffx-page .ffx-topline{padding-bottom:20px}.ffx-page .ffx-workspace{display:flex;flex-direction:column;gap:28px;padding-top:21px}.ffx-page .ffx-conversation{width:100%;order:0}.ffx-page .ffx-sidebar{width:100%;order:1;padding:0}.ffx-page .ffx-sidebar h2{font-size:29px;margin-top:17px!important}.ffx-page .ffx-sidebar h2 br{display:none}.ffx-page .ffx-sidebar>p:not(.ffx-eyebrow){max-width:100%}.ffx-page .ffx-prompts{margin-top:21px}.ffx-page .ffx-prompts button{padding:15px 0}.ffx-page .ffx-about{margin-top:20px}.ffx-page .ffx-mount{min-height:440px}.ffx-page .ffx-mount #fluxi.ffx-embedded{height:clamp(400px,calc(100svh - 270px),590px)}.ffx-page #fluxi.ffx-embedded .ff-fluxi-head{padding:17px 17px 10px}.ffx-page #fluxi.ffx-embedded .ff-fluxi-messages{padding:18px;gap:18px}.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg{font-size:14px;max-width:98%;line-height:1.8}.ffx-page #fluxi.ffx-embedded .ff-fluxi-form{margin:0 13px 8px;padding:10px;gap:5px}.ffx-page #fluxi.ffx-embedded textarea{font-size:16px;min-height:72px}.ffx-page .ffx-toolbar{padding:12px 17px;font-size:11px;gap:8px}.ffx-page .ffx-compose-note{padding:0 17px 12px;font-size:9px}.ffx-page .ffx-disclaimer{padding:13px 17px}.ffx-page .ffx-text-link{font-size:11px}.ffx-page .ffx-brand h1{font-size:23px}.ffx-page .ffx-fallback{padding:40px 22px;min-height:440px}}
@media(prefers-reduced-motion:reduce){.ffx-page *{scroll-behavior:auto!important;transition:none!important}}
@media(forced-colors:active){.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.user{border:1px solid CanvasText}.ffx-page #fluxi.ffx-embedded .ff-fluxi-send{border:1px solid ButtonText}}
@media print{.ffx-page .ffx-sidebar,.ffx-page .ffx-toolbar,.ffx-page .ff-fluxi-form,.ffx-page .ffx-compose-note,.ffx-page .ffx-text-link{display:none!important}.ffx-page .ffx-workspace{display:block}.ffx-page #main-content{width:100%;padding:15px}.ffx-page .ffx-mount #fluxi.ffx-embedded{display:block;height:auto;overflow:visible}.ffx-page #fluxi.ffx-embedded .ff-fluxi-messages{display:block;overflow:visible;max-height:none}.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg{margin:15px 0;break-inside:avoid}.ffx-page .ffx-conversation{border:0;box-shadow:none}}

/* Fluxy / conversational polish — page only. No change to the shared widget.
   Message contrast, calm composer, and a genuinely pending assistant indicator. */
.ffx-page .ffx-conversation {
  border: 1px solid #dde3e9;
  border-radius: 15px;
  box-shadow: 0 18px 54px rgba(17, 26, 37, .055), 0 2px 8px rgba(17, 26, 37, .025);
}
.ffx-page .ffx-toolbar { background: #fff; }
.ffx-page #fluxi.ffx-embedded .ff-fluxi-head {
  padding-bottom: 18px;
  border-bottom: 1px solid #f0f1f3;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-messages {
  gap: 17px;
  padding: 26px 27px 29px;
  background: #f8f9fa;
  scroll-padding-bottom: 22px;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg {
  flex: 0 0 auto;
  width: fit-content;
  max-width: min(88%, 690px);
  padding: 17px 20px;
  border: 1px solid #e4e8eb;
  border-radius: 6px 18px 18px 18px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(20, 26, 36, .045);
  font-size: 15px;
  line-height: 1.7;
  animation: ffx-message-in .22s ease-out both;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.bot {
  align-self: flex-start;
  border-left: 2px solid #e3aaa6;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.user {
  max-width: min(84%, 620px);
  margin: 0;
  padding: 16px 19px;
  border: 1px solid #e5e8ed;
  border-radius: 18px 6px 18px 18px;
  background: #edf0f3;
  box-shadow: none;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg::before {
  margin-bottom: 9px;
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .12em;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-msg a {
  color: #b8251e;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-cta,
.ffx-page #fluxi.ffx-embedded .ff-fluxi-account-gate {
  align-self: flex-start;
  width: min(90%, 650px);
  border: 1px solid #e2e6eb;
  border-radius: 12px;
  padding: 19px 20px;
  background: #fff;
  box-shadow: 0 5px 17px rgba(20, 26, 36, .035);
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-form {
  position: relative;
  margin: 13px 22px 10px;
  padding: 12px 12px 12px 15px;
  border: 1px solid #d7dde3;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 5px 19px rgba(22, 28, 39, .055);
  transition: border-color .16s ease, box-shadow .16s ease;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-form:focus-within {
  border-color: #ce8c87;
  box-shadow: 0 0 0 3px rgba(216, 44, 34, .075), 0 6px 22px rgba(22, 28, 39, .06);
}
.ffx-page #fluxi.ffx-embedded textarea { background: transparent; }
.ffx-page #fluxi.ffx-embedded .ff-fluxi-send {
  border-radius: 10px;
  background: #d52b24;
  box-shadow: 0 3px 9px rgba(193, 38, 30, .14);
  transition: background-color .16s ease, box-shadow .16s ease;
}
.ffx-page #fluxi.ffx-embedded .ff-fluxi-send:hover:not(:disabled) {
  background: #b81f19;
  box-shadow: 0 5px 13px rgba(193, 38, 30, .22);
}
/* Decorative dots are aria-hidden. #ffxSendStatus is the single accessible
   live announcement for pending, ready, and error states. */
.ffx-page #fluxi.ffx-embedded .ffx-typing {
  display: inline-flex;
  flex: none;
  flex-direction: column;
  align-self: flex-start;
  gap: 10px;
  min-width: 106px;
  padding: 14px 19px 16px;
  border: 1px solid #e4e8eb;
  border-left: 2px solid #e3aaa6;
  border-radius: 6px 18px 18px 18px;
  background: #fff;
  box-shadow: 0 4px 15px rgba(20, 26, 36, .045);
}
.ffx-page .ffx-typing-label {
  color: #c72b24;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .12em;
  line-height: 1.2;
}
.ffx-page .ffx-typing-dots {
  display: flex;
  align-items: center;
  gap: 6px;
  min-height: 16px;
}
.ffx-page .ffx-typing-dots span {
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #9ba5af;
  animation: ffx-typing-wave 1.18s ease-in-out infinite;
}
.ffx-page .ffx-typing-dots span:nth-child(2) { animation-delay: .14s; }
.ffx-page .ffx-typing-dots span:nth-child(3) { animation-delay: .28s; }
@keyframes ffx-typing-wave {
  0%, 60%, 100% { transform: translateY(0); opacity: .4; }
  30% { transform: translateY(-5px); opacity: 1; background: #d12e27; }
}
@keyframes ffx-message-in {
  from { opacity: .5; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 760px) {
  .ffx-page .ffx-conversation { border-radius: 13px; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-messages { padding: 18px 13px 24px; gap: 15px; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg { padding: 14px 15px; line-height: 1.67; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.bot { max-width: 96%; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg.user { max-width: 91%; padding: 14px 15px; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-form { margin: 10px 12px 8px; padding: 10px 10px 10px 12px; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-cta,
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-account-gate { width: min(98%, 650px); padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .ffx-page #fluxi.ffx-embedded .ffx-typing-dots span,
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg { animation: none !important; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-form,
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-send { transition: none !important; }
}
@media (forced-colors: active) {
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg,
  .ffx-page #fluxi.ffx-embedded .ffx-typing,
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-form { border: 1px solid CanvasText; }
  .ffx-page #fluxi.ffx-embedded .ffx-typing-dots span { background: CanvasText; }
}
@media print {
  .ffx-page #fluxi.ffx-embedded .ffx-typing { display: none !important; }
  .ffx-page #fluxi.ffx-embedded .ff-fluxi-msg { background: #fff !important; box-shadow: none !important; }
}
