/* NFZ AI 4.40 — shared interface controls.
   Scoped to the two portal pages, including dynamically added stay controls. */
body.nfz-ui {
  --nfz-control-height: 44px;
  --nfz-control-radius: 12px;
  --nfz-control-border: #c6d5e8;
  --nfz-control-bg: #f8fbff;
  --nfz-control-text: #112b4b;
  --nfz-control-muted: #465e78;
}
html[data-theme="dark"] body.nfz-ui {
  --nfz-control-border: #496583;
  --nfz-control-bg: #122b46;
  --nfz-control-text: #f1f6ff;
  --nfz-control-muted: #bbcee2;
}
/* Keep the sidebar and its navigation inside their own column. */
body.nfz-ui .sidebar::after { content: none !important; display: none !important; }
body.nfz-ui .sidebar,
body.nfz-ui .sidebar .brand,
body.nfz-ui .sidebar .nav,
body.nfz-ui .sidebar .nav-btn {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
body.nfz-ui .sidebar .nav { width: 100% !important; margin: 0 !important; }
body.nfz-ui .sidebar .nav-btn { width: 100% !important; margin: 0 !important; }
body.nfz-ui .sidebar .nav-btn .control-label { min-width: 0 !important; white-space: normal !important; }
@media (min-width: 921px) {
  body.nfz-ui .sidebar {
    width: 100% !important;
    padding-inline: 16px !important;
    border-right: 1px solid var(--nfz-control-border) !important;
  }
  body.nfz-ui .sidebar .nav-btn { height: auto !important; min-height: 56px !important; }
}
body.nfz-ui .topbar {
  display: flex !important;
  flex-direction: row !important;
  justify-content: flex-end !important;
  align-items: center !important;
  height: auto !important;
}
body.nfz-ui .top-actions {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: min(100%, 532px) !important;
  flex: 0 1 532px !important;
  margin: 0 !important;
}
body.nfz-ui .top-actions > .ui-control {
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 48px !important;
  text-align: center !important;
  padding: 8px 12px !important;
  gap: 8px !important;
  border: 1px solid var(--nfz-control-border) !important;
  border-radius: var(--nfz-control-radius) !important;
  background: var(--nfz-control-bg) !important;
  color: var(--nfz-control-text) !important;
  box-shadow: none !important;
}
body.nfz-ui .top-actions .control-label,
body.nfz-ui .top-actions .control-copy b {
  display: block !important;
  color: var(--nfz-control-text) !important;
  font: 700 13px/1.3 var(--ui) !important;
  white-space: normal !important;
}
body.nfz-ui .usage-counter { cursor: default !important; }
body.nfz-ui .top-actions .control-label strong { font: inherit !important; }
body.nfz-ui .top-actions > .ui-control .icon-svg { width: 20px !important; height: 20px !important; }
body.nfz-ui .top-actions > button.ui-control:focus:not(:focus-visible) { outline: none !important; }
body.nfz-ui .top-actions > button.ui-control:focus-visible {
  outline: 2px solid var(--focus) !important;
  outline-offset: 2px !important;
}
body.nfz-ui .top-actions .icon-slot { width: 20px !important; height: 20px !important; flex: 0 0 20px !important; }

/* Mode choices and search share geometry and typography. */
body.nfz-ui .jgp-mode-picker {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 8px !important;
}
body.nfz-ui .jgp-mode-picker > label,
body.nfz-ui .jgp-mode-picker > .jgp-group-finder-button,
body.nfz-ui .jgp-group-stay-step label,
body.nfz-ui .nfz-back {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 8px !important;
  min-height: var(--nfz-control-height) !important;
  height: auto !important;
  margin: 0 !important;
  padding: 10px 12px !important;
  border: 1px solid var(--nfz-control-border) !important;
  border-radius: var(--nfz-control-radius) !important;
  background: var(--nfz-control-bg) !important;
  color: var(--nfz-control-text) !important;
  font: 700 14px/1.35 var(--ui) !important;
  letter-spacing: normal !important;
  text-decoration: none !important;
  box-shadow: none !important;
  cursor: pointer;
}
body.nfz-ui .jgp-mode-picker > label > span,
body.nfz-ui .jgp-mode-picker > .jgp-group-finder-button > span {
  font: inherit !important;
  line-height: inherit !important;
}
body.nfz-ui .jgp-mode-picker > .jgp-group-finder-button > svg { width: 18px !important; height: 18px !important; flex: 0 0 18px !important; }
body.nfz-ui .jgp-mode-picker > label:has(input:checked),
body.nfz-ui .jgp-mode-picker > button[aria-expanded="true"],
body.nfz-ui .jgp-group-stay-step label:has(input:checked) {
  border-color: var(--blue) !important;
  color: var(--blue) !important;
  background: color-mix(in srgb, var(--nfz-control-bg) 90%, var(--blue) 10%) !important;
}
body.nfz-ui.jgp22 input:not([type="radio"]):not([type="checkbox"]),
body.nfz-ui.jgp22 select {
  box-sizing: border-box !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: var(--nfz-control-height) !important;
  height: var(--nfz-control-height) !important;
  padding: 9px 12px !important;
  border: 1px solid var(--nfz-control-border) !important;
  border-radius: var(--nfz-control-radius) !important;
  background: var(--nfz-control-bg) !important;
  color: var(--nfz-control-text) !important;
  font: 400 16px/1.4 var(--ui) !important;
}
body.nfz-ui.jgp22 input[type="radio"],
body.nfz-ui.jgp22 input[type="checkbox"] {
  box-sizing: border-box !important;
  width: 18px !important;
  min-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  flex: 0 0 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  accent-color: var(--blue);
}
body.nfz-ui .jgp22-fields-grid { align-items: start !important; gap: 12px !important; }
body.nfz-ui.jgp22 .field { align-content: start !important; gap: 6px !important; min-width: 0 !important; }
body.nfz-ui.jgp22 .field > label,
body.nfz-ui .jgp-stay-fields > label,
body.nfz-ui .jgp-stay-specialty label,
body.nfz-ui .jgp-hospital-diagnosis-grid > label { font: 700 13px/1.4 var(--ui) !important; }
body.nfz-ui.jgp22 button:not(.jgp-group-finder-button):not(.jgp-group-result):not(.jgp22-suggestion):not(.jgp-stay-suggestion) {
  box-sizing: border-box !important;
  min-height: 44px !important;
  height: auto !important;
  padding: 9px 12px !important;
  border-radius: var(--nfz-control-radius) !important;
  font: 700 14px/1.35 var(--ui) !important;
  letter-spacing: normal !important;
}
body.nfz-ui.jgp22 .jgp22-chip-remove { min-width: 64px !important; }
body.nfz-ui.jgp22 :is(.secondary-button, .jgp22-chip-remove, .jgp-remove-stay, .jgp-remove-stay-item, .jgp-set-main-diagnosis, .jgp-clear-stay-specialty, #regenerateSelectedGroup, #changeSelectedGroup, #groupFinderStayBack) {
  border: 1px solid var(--nfz-control-border) !important;
  background: var(--nfz-control-bg) !important;
  color: var(--nfz-control-text) !important;
  box-shadow: none !important;
}
body.nfz-ui.jgp22 .jgp-group-finder-head > button { width: 44px !important; flex: 0 0 44px !important; }
body.nfz-ui.jgp22 button:disabled { opacity: .5 !important; cursor: not-allowed !important; }
body.nfz-ui .jgp22-topbar { gap: 12px !important; flex-wrap: wrap !important; }
body.nfz-ui .jgp22-topbar > .nfz-back { flex: 0 1 auto !important; }
body.nfz-ui :is(button, a, input, select, textarea):focus-visible,
body.nfz-ui .jgp-mode-picker > label:has(input:focus-visible) {
  outline: 3px solid var(--blue) !important;
  outline-offset: 3px !important;
}

@media (max-width: 920px) {
  body.nfz-ui .top-actions { max-width: 100% !important; }
}
@media (max-width: 720px) {
  body.nfz-ui .jgp-mode-picker { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; padding: 8px !important; }
  body.nfz-ui .jgp-mode-picker > label,
  body.nfz-ui .jgp-mode-picker > .jgp-group-finder-button { width: 100% !important; min-width: 0 !important; }
  body.nfz-ui .jgp22-fields-grid,
  body.nfz-ui .jgp22-code-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  body.nfz-ui .field-wide-2 { grid-column: auto !important; }
  body.nfz-ui .jgp22-counter small { font-size: 11px !important; }
  body.nfz-ui .jgp22-counter b { font-size: 13px !important; }
  body.nfz-ui .jgp22-topbar { display: grid !important; grid-template-columns: 1fr auto !important; }
  body.nfz-ui .jgp22-topbar > .nfz-back { grid-column: 1 / -1 !important; grid-row: 2 !important; justify-content: center !important; }
  body.nfz-ui .jgp22-actions { grid-column: 2 !important; grid-row: 1 !important; }
}
@media (max-width: 640px) {
  body.nfz-ui .portal,
  body.nfz-ui .main,
  body.nfz-ui .stage { height: auto !important; min-height: 0 !important; overflow: visible !important; }
  body.nfz-ui .portal { min-height: 100dvh !important; }
  body.nfz-ui .main { padding: 12px !important; display: block !important; }
  body.nfz-ui .sidebar { height: auto !important; min-height: 0 !important; padding: 12px !important; }
  body.nfz-ui .topbar { width: 100% !important; margin: 0 0 14px !important; padding: 0 !important; }
  body.nfz-ui .top-actions { width: 100% !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 6px !important; }
  body.nfz-ui .top-actions > .ui-control { padding: 8px 5px !important; min-height: 56px !important; gap: 4px !important; text-align: center !important; }
  body.nfz-ui .top-actions .control-label,
  body.nfz-ui .top-actions .control-copy b { font-size: 12px !important; }
  body.nfz-ui .top-actions .icon-slot { display: none !important; }
  body.nfz-ui #themeButton { display: flex !important; }
  body.nfz-ui .stage { display: flex !important; flex-direction: column !important; gap: 12px !important; }
  body.nfz-ui .hero-copy-main { width: 100% !important; margin: 0 !important; padding: 0 !important; }
  body.nfz-ui .hero-copy-main h2 { font-size: clamp(22px, 6vw, 28px) !important; line-height: 1.15 !important; }
  body.nfz-ui .hero-copy-main p { font-size: 13px !important; line-height: 1.5 !important; }
  body.nfz-ui .stage > .nav { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; width: 100% !important; margin: 0 !important; gap: 6px !important; }
  body.nfz-ui .stage > .nav .nav-btn { display: flex !important; flex-direction: column !important; justify-content: center !important; gap: 5px !important; width: 100% !important; min-width: 0 !important; min-height: 68px !important; height: auto !important; padding: 8px 4px !important; }
  body.nfz-ui .stage > .nav .control-label { font-size: 12px !important; line-height: 1.3 !important; white-space: normal !important; text-align: center !important; }
  body.nfz-ui .stage > .search-panel { box-sizing: border-box !important; width: 100% !important; margin: 0 !important; padding: 12px !important; min-height: 0 !important; grid-template-columns: minmax(0,1fr) 44px !important; gap: 8px !important; }
  body.nfz-ui .search-panel .search-spark { display: none !important; }
  body.nfz-ui .search-content { grid-column: 1 !important; }
  body.nfz-ui .search-content textarea { font-size: 16px !important; line-height: 1.45 !important; min-height: 70px !important; }
  body.nfz-ui .search-hint { font-size: 12px !important; line-height: 1.4 !important; }
  body.nfz-ui .send-control { grid-column: 2 !important; grid-row: 1 !important; width: 44px !important; min-width: 44px !important; height: 44px !important; min-height: 44px !important; align-self: center !important; }
  body.nfz-ui .answer-panel { box-sizing: border-box !important; width: 100% !important; min-height: 0 !important; margin: 0 !important; padding: 12px !important; }
  body.nfz-ui .answer-panel.is-empty { display: none !important; }
  body.nfz-ui .answer-header { align-items: flex-start !important; flex-wrap: wrap !important; gap: 8px !important; }
  body.nfz-ui .answer-heading { min-width: 0 !important; flex: 1 1 160px !important; }
  body.nfz-ui .answer-heading h2 { font-size: 18px !important; line-height: 1.3 !important; }
  body.nfz-ui .answer-heading p { font-size: 12px !important; line-height: 1.4 !important; }
  body.nfz-ui .answer-body { overflow-wrap: anywhere !important; }
  body.nfz-ui .demo-response { font-size: 15px !important; line-height: 1.6 !important; }
  body.nfz-ui .answer-body table { display: block; max-width: 100%; overflow-x: auto; }
}
@media (max-width: 380px) {
  body.nfz-ui .jgp-mode-picker { grid-template-columns: 1fr !important; }
}

/* License enquiry: an accessible contact form, with no client-side mailto. */
body.nfz-ui.license-open { overflow: hidden !important; }
body.nfz-ui .license-modal[hidden],
body.nfz-ui .license-dialog [hidden] { display: none !important; }
body.nfz-ui .license-modal {
  position: fixed !important; inset: 0 !important; z-index: 1000 !important;
  display: grid !important; place-items: center !important; padding: 20px !important;
}
body.nfz-ui .license-modal .modal-backdrop { background: rgba(10, 24, 43, .58) !important; backdrop-filter: none !important; }
body.nfz-ui .license-dialog {
  position: relative !important; box-sizing: border-box !important; width: min(100%, 540px) !important;
  max-width: 540px !important; max-height: calc(100dvh - 40px) !important; overflow-y: auto !important;
  padding: 32px !important; border: 1px solid var(--nfz-control-border) !important;
  border-radius: 20px !important; background: var(--nfz-control-bg) !important;
  color: var(--nfz-control-text) !important; text-align: left !important;
  box-shadow: 0 20px 64px rgba(0, 0, 0, .2) !important;
  font: 400 15px/1.5 var(--ui) !important;
}
body.nfz-ui .license-eyebrow { display: block; padding-right: 40px; color: var(--nfz-control-muted); font: 700 11px/1.5 var(--ui); letter-spacing: .08em; }
body.nfz-ui .license-dialog h2 { margin: 10px 36px 10px 0 !important; font: 700 26px/1.2 var(--ui) !important; }
body.nfz-ui .license-dialog #licenseIntro { margin: 0 0 24px !important; color: var(--nfz-control-muted) !important; font: 400 15px/1.5 var(--ui) !important; }
body.nfz-ui .license-close {
  position: absolute !important; top: 14px !important; right: 14px !important;
  width: 44px !important; height: 44px !important; min-height: 44px !important; padding: 0 !important;
  border: 1px solid var(--nfz-control-border) !important; border-radius: 12px !important;
  background: var(--nfz-control-bg) !important; color: var(--nfz-control-text) !important;
  font: 400 26px/1 var(--ui) !important; cursor: pointer;
}
body.nfz-ui .license-fields { min-width: 0; display: grid; gap: 18px; padding: 0; margin: 0; border: 0; }
body.nfz-ui .license-field { display: grid; gap: 6px; }
body.nfz-ui .license-field label,
body.nfz-ui .license-buyer legend { font: 700 14px/1.4 var(--ui); }
body.nfz-ui .license-field input {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 48px; padding: 11px 12px;
  border: 1px solid var(--nfz-control-border); border-radius: 10px;
  background: var(--nfz-control-bg); color: var(--nfz-control-text); font: 400 16px/1.4 var(--ui);
}
body.nfz-ui .license-field input[aria-invalid="true"] { border-color: #c02f35; }
body.nfz-ui .license-buyer { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); min-width: 0; gap: 10px; padding: 0; margin: 0; border: 0; }
body.nfz-ui .license-buyer legend { margin-bottom: 8px; }
body.nfz-ui .license-buyer label { display: flex; align-items: center; gap: 8px; padding: 12px; min-height: 48px; box-sizing: border-box; border: 1px solid var(--nfz-control-border); border-radius: 10px; font: 600 14px/1.3 var(--ui); cursor: pointer; }
body.nfz-ui .license-buyer label:has(input:checked) { border-color: var(--blue); background: color-mix(in srgb, var(--nfz-control-bg) 92%, var(--blue) 8%); }
body.nfz-ui .license-buyer input { width: 18px; height: 18px; flex: 0 0 18px; margin: 0; accent-color: var(--blue); }
body.nfz-ui .license-buyer label:has(input:focus-visible) { outline: 2px solid var(--focus); outline-offset: 2px; }
body.nfz-ui .license-dialog .license-privacy { margin: 18px 0 !important; color: var(--nfz-control-muted) !important; font: 400 12px/1.5 var(--ui) !important; }
body.nfz-ui .license-actions { display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
body.nfz-ui .license-actions button { min-height: 48px; padding: 12px 14px; border: 1px solid var(--nfz-control-border); border-radius: 10px; background: var(--nfz-control-bg); color: var(--nfz-control-text); font: 700 14px/1.4 var(--ui); cursor: pointer; }
body.nfz-ui .license-actions .license-primary { background: #175be6; border-color: #175be6; color: #fff; }
body.nfz-ui .license-actions button:disabled { opacity: .65; cursor: wait; }
body.nfz-ui .license-error { color: #b52b32; font: 400 13px/1.4 var(--ui); }
body.nfz-ui .license-dialog .license-status { margin: 16px 0 !important; padding: 12px; border: 1px solid var(--nfz-control-border); border-radius: 10px; font: 400 14px/1.5 var(--ui) !important; color: var(--nfz-control-text) !important; }
body.nfz-ui .license-status[data-state="success"] { border-color: #368866 !important; }
body.nfz-ui .license-status[data-state="error"] { border-color: #c02f35 !important; }
html[data-theme="dark"] body.nfz-ui .license-error { color: #ffb0b4; }
body.nfz-ui .license-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 560px) {
  body.nfz-ui .license-modal { padding: 12px !important; }
  body.nfz-ui .license-dialog { padding: 24px 20px !important; max-height: calc(100dvh - 24px) !important; border-radius: 16px !important; }
  body.nfz-ui .license-dialog h2 { font-size: 23px !important; }
  body.nfz-ui .license-buyer, body.nfz-ui .license-actions { grid-template-columns: 1fr; }
}

/* 4.45 — one-line footer on all supported sizes. */
body.nfz-ui #siteFooter {
  display: flex !important;
  flex-flow: row nowrap !important;
  align-items: center;
  justify-content: center;
  gap: 10px !important;
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding: 10px 8px !important;
  position: relative;
  white-space: nowrap !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
  color: var(--muted);
}
body.nfz-ui #siteFooter a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
/* The continuation form uses the same translucent surface as the conversation. */
body.nfz-ui #followupForm {
  background: color-mix(in srgb,var(--panel-bg-soft) 68%,transparent) !important;
  border-color: var(--panel-border) !important;
  box-shadow: none !important;
}
body.nfz-ui #followupQuestion { background: transparent !important; color: var(--text) !important; }
body.nfz-ui #followupForm button {
  background: var(--control-bg) !important;
  border-color: var(--panel-border) !important;
  color: var(--text) !important;
}
body.nfz-ui .answer-sources summary { font-size: 14px; line-height: 1.5; cursor: pointer; padding: 6px 0; }
body.nfz-ui .answer-sources .source-format { color: var(--muted); font-size: 12px; }
