.fsai-section { position: relative; }
.fsai-quick-actions { gap: .55rem; flex-wrap: wrap; }
.fsai-quick-actions .fs-btn { white-space: normal; }
.fsai-status { margin: .8rem 0; padding: .75rem .9rem; }
.fsai-result { margin-top: 1rem; }
.fsai-quality-banner { margin-bottom: 1rem; }
.fsai-quality-banner p { margin: .3rem 0 0; }
.fsai-wait-copy { margin-bottom: .55rem; }
.fsai-progress-label { font-size: .9rem; margin-bottom: .35rem; opacity: .82; }
.fsai-progress { width: 100%; height: .8rem; display: block; }

.fsai-model-wait { display: flex; align-items: center; gap: .7rem; margin-bottom: .65rem; }
.fsai-model-wait > div > div { margin-top: .15rem; font-size: .88rem; opacity: .75; }
.fsai-spinner { width: 1.15rem; height: 1.15rem; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; display: inline-block; flex: 0 0 auto; animation: fsai-spin .8s linear infinite; }
@keyframes fsai-spin { to { transform: rotate(360deg); } }
.fsai-source-checklist { list-style: none; margin: .7rem 0 0; padding: 0; display: grid; gap: .3rem; }
.fsai-source { display: flex; gap: .45rem; align-items: flex-start; font-size: .9rem; }
.fsai-source-icon { width: 1.1rem; text-align: center; font-weight: 800; flex: 0 0 auto; }
.fsai-source-pending { opacity: .62; }
.fsai-source-ok .fsai-source-icon { color: #1f7a3f; }
.fsai-source-failed { color: #8a5a00; }
.fsai-source-failed .fsai-source-icon { color: #b36b00; }
.fsai-source-error { margin-top: .12rem; font-size: .82rem; font-weight: 400; }
.fsai-job-error { margin-top: .65rem; }

.fsai-result.fsai-loading { opacity: .58; transition: opacity .15s ease; }
.fsai-empty p { margin-bottom: 0; }
.fsai-result-tools { justify-content: flex-end; margin-top: .7rem; }
.fsai-result-tools[hidden] { display: none !important; }
.fsai-plan { display: grid; gap: 1rem; }
.fsai-summary p { margin: .3rem 0 0; font-size: 1.04rem; line-height: 1.55; }
.fsai-choice-header { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.fsai-choice-header h3 { margin: .15rem 0 .55rem; }
.fsai-window { flex: 0 0 auto; max-width: 48%; text-align: center; }
.fsai-choice-grid { margin: .75rem 0; }
.fsai-reason { padding: .75rem .85rem; }
.fsai-secondary-grid { align-items: stretch; }
.fsai-secondary-grid > * { height: 100%; }
.fsai-conditions-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.fsai-conditions-grid .fs-stat strong { font-weight: 650; line-height: 1.4; }
.fsai-sources ul { margin: .5rem 0 0 1.15rem; }
.fsai-sources li { margin: .2rem 0; }
.fsai-navigation-warning p { margin: .25rem 0 0; }
.fsai-chat-card { margin-top: 1rem; }
.fsai-chat-form { display: flex; gap: .55rem; margin: .55rem 0 .7rem; }
.fsai-chat-form input { flex: 1 1 auto; min-width: 0; width: 100%; padding: .72rem .8rem; border: 1px solid currentColor; border-radius: .45rem; background: var(--global-palette9, #fff); color: inherit; }
.fsai-prompt-chips { display: flex; flex-wrap: wrap; gap: .4rem; }
.fsai-prompt-chips .fs-tag { cursor: pointer; font: inherit; text-align: left; }

@media (max-width: 760px) {
  .fsai-choice-header { flex-direction: column; }
  .fsai-window { max-width: 100%; }
  .fsai-conditions-grid { grid-template-columns: 1fr; }
  .fsai-chat-form { flex-direction: column; }
  .fsai-quick-actions .fs-btn { flex: 1 1 45%; }
}


.fsai-itinerary-block { margin-bottom: 1rem; }
.fsai-itinerary-block .fs-eyebrow { margin-bottom: .55rem; }
.fsai-itinerary-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fsai-itinerary-table { width: 100%; min-width: 760px; border-collapse: collapse; background: var(--global-palette9, #fff); }
.fsai-itinerary-table th,
.fsai-itinerary-table td { border: 1px solid rgba(32,49,61,.24); padding: .62rem .68rem; vertical-align: top; text-align: left; }
.fsai-itinerary-table th { font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; background: rgba(32,49,61,.06); }
.fsai-itinerary-table td:first-child { white-space: nowrap; font-weight: 700; }
.fsai-itinerary-table td:nth-child(2) { font-weight: 700; }


.fsai-step-tag { display: inline-block; margin-bottom: .25rem; font-size: .68rem; line-height: 1; text-transform: uppercase; letter-spacing: .055em; font-weight: 800; opacity: .68; }
.fsai-row-trigger { margin-top: .38rem; padding-top: .35rem; border-top: 1px dotted rgba(32,49,61,.28); font-size: .86rem; }
.fsai-data-table-scroll { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: .8rem 0; }
.fsai-data-table { width: 100%; min-width: 460px; border-collapse: collapse; background: var(--global-palette9, #fff); }
.fsai-data-table th,
.fsai-data-table td { border: 1px solid rgba(32,49,61,.24); padding: .62rem .68rem; vertical-align: top; text-align: left; }
.fsai-data-table th { background: rgba(32,49,61,.06); font-size: .8rem; }
.fsai-print-only { display: none; }

/* Admin on-screen print preview uses the same compact sheet rules without opening a print dialog. */
.fsai-print-preview { max-width: 8.5in; padding: .35in; margin: 1rem 0; background: #fff; color: #000; border: 1px solid #b7b7b7; box-shadow: 0 1px 4px rgba(0,0,0,.08); font: 11pt/1.28 Arial, Helvetica, sans-serif; }
.fsai-print-preview .fsai-print-header { display: block; border-bottom: 2px solid #000; padding-bottom: 7pt; margin-bottom: 8pt; }
.fsai-print-preview .fsai-print-header h1 { margin: 0 0 3pt; font-size: 17pt; }
.fsai-print-preview .fsai-quality-banner { border: 1px solid #000; padding: 5pt; margin-bottom: 7pt; background: #fff; color: #000; }
.fsai-print-preview table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.fsai-print-preview table th,
.fsai-print-preview table td { border: 1px solid #000; padding: 4pt; color: #000; background: #fff; font-size: 9.4pt; vertical-align: top; overflow-wrap: anywhere; }
.fsai-print-preview table tr { break-inside: avoid; page-break-inside: avoid; }
.fsai-print-preview .fsai-preview-block { margin: 7pt 0; }
.fsai-print-preview .fsai-preview-block h3 { margin: 0 0 2pt; font-size: 11.5pt; }
.fsai-print-preview .fsai-preview-block p { margin: 2pt 0; }
.fsai-print-preview .fsai-navigation-warning { margin-top: 8pt; border-top: 1px solid #000; padding-top: 5pt; background: #fff; color: #000; }

@media print {
  @page { size: Letter; margin: .38in; }

  body.fsai-printing { background: #fff !important; color: #000 !important; }
  body.fsai-printing * { visibility: hidden !important; }
  body.fsai-printing [data-fsai-app],
  body.fsai-printing [data-fsai-app] * { visibility: visible !important; }
  body.fsai-printing [data-fsai-app] {
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #fff !important;
    color: #000 !important;
    font: 11pt/1.24 Arial, Helvetica, sans-serif !important;
  }

  /* Explicitly hide all site chrome and non-plan UI. */
  body.fsai-printing > header,
  body.fsai-printing #masthead,
  body.fsai-printing nav,
  body.fsai-printing footer,
  body.fsai-printing .site-header,
  body.fsai-printing .site-footer,
  body.fsai-printing .entry-header,
  body.fsai-printing #fs-toc,
  body.fsai-printing .fs-toc,
  body.fsai-printing .leaflet-container,
  body.fsai-printing button,
  body.fsai-printing .fsai-quick-actions,
  body.fsai-printing .fsai-result-tools,
  body.fsai-printing .fsai-chat-card,
  body.fsai-printing .fsai-status,
  body.fsai-printing .fsai-prompt-chips,
  body.fsai-printing .fsai-print-hide { display: none !important; }

  body.fsai-printing [data-fsai-app] > .fs-eyebrow,
  body.fsai-printing [data-fsai-app] > h2,
  body.fsai-printing [data-fsai-app] > .fs-hint { display: none !important; }

  body.fsai-printing .fsai-print-only { display: block !important; }
  body.fsai-printing .fsai-print-header { border-bottom: 2px solid #000; padding-bottom: 6pt; margin-bottom: 7pt; }
  body.fsai-printing .fsai-print-header h1 { margin: 0 0 3pt; font-size: 16pt; color: #000 !important; }
  body.fsai-printing .fsai-print-header div { margin: 1pt 0; }

  body.fsai-printing .fsai-quality-banner { border: 1px solid #000 !important; background: #fff !important; color: #000 !important; padding: 5pt !important; margin: 0 0 6pt !important; }
  body.fsai-printing .fsai-quality-banner p { margin: 2pt 0 0 !important; }

  body.fsai-printing .fsai-itinerary-block,
  body.fsai-printing .fsai-summary,
  body.fsai-printing .fsai-best-card,
  body.fsai-printing .fsai-print-second,
  body.fsai-printing .fsai-print-backup,
  body.fsai-printing .fsai-navigation-warning {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
    box-shadow: none !important;
  }

  body.fsai-printing .fsai-itinerary-block { padding: 0 !important; border: 0 !important; margin: 0 0 7pt !important; }
  body.fsai-printing .fsai-itinerary-block > .fs-eyebrow { display: none !important; }
  body.fsai-printing .fsai-itinerary-scroll { overflow: visible !important; }
  body.fsai-printing .fsai-itinerary-table { min-width: 0 !important; width: 100% !important; table-layout: fixed; border-collapse: collapse; color: #000 !important; background: #fff !important; break-inside: avoid; page-break-inside: avoid; }
  body.fsai-printing .fsai-itinerary-table th,
  body.fsai-printing .fsai-itinerary-table td { color: #000 !important; background: #fff !important; border: 1px solid #000 !important; padding: 4pt !important; font-size: 9pt !important; vertical-align: top; overflow-wrap: anywhere; }
  body.fsai-printing .fsai-itinerary-table th { font-weight: 700; text-transform: none; letter-spacing: 0; }
  body.fsai-printing .fsai-itinerary-table th:nth-child(1) { width: 14%; }
  body.fsai-printing .fsai-itinerary-table th:nth-child(2) { width: 18%; }
  body.fsai-printing .fsai-itinerary-table th:nth-child(3) { width: 19%; }
  body.fsai-printing .fsai-itinerary-table th:nth-child(4) { width: 20%; }
  body.fsai-printing .fsai-itinerary-table th:nth-child(5) { width: 29%; }
  body.fsai-printing table,
  body.fsai-printing tr { break-inside: avoid !important; page-break-inside: avoid !important; }
  body.fsai-printing .fsai-step-tag { font-size: 6.8pt; }
  body.fsai-printing .fsai-row-trigger { font-size: 8pt; border-top-color: #777; }

  body.fsai-printing .fsai-plan { display: block !important; }
  body.fsai-printing .fsai-summary,
  body.fsai-printing .fsai-best-card,
  body.fsai-printing .fsai-print-secondary { margin: 5pt 0 !important; padding: 5pt !important; break-inside: avoid; page-break-inside: avoid; }
  body.fsai-printing .fsai-summary p,
  body.fsai-printing .fsai-best-card p,
  body.fsai-printing .fsai-print-secondary p { margin: 2pt 0 !important; }
  body.fsai-printing .fsai-choice-header h3,
  body.fsai-printing .fsai-print-secondary h3 { margin: 1pt 0 2pt !important; font-size: 11pt !important; color: #000 !important; }
  body.fsai-printing .fsai-choice-grid { margin: 3pt 0 !important; }
  body.fsai-printing .fsai-secondary-grid { display: grid !important; grid-template-columns: 1fr 1fr !important; gap: 5pt !important; }
  body.fsai-printing .fsai-navigation-warning { margin-top: 6pt !important; padding: 5pt 0 0 !important; border: 0 !important; border-top: 1px solid #000 !important; font-size: 9pt !important; }
  body.fsai-printing .fsai-navigation-warning p { margin: 2pt 0 0 !important; }
}

/* ---------- v0.4.0: plan date + species controls ---------- */
.fsai-controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin:.9rem 0 1.1rem}
.fsai-control{display:flex;align-items:center;gap:.5rem}
.fsai-control label{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;opacity:.75;font-weight:600}
.fsai-control input[type="date"],.fsai-control select{
  padding:.42rem .6rem;border:1px solid rgba(0,0,0,.18);border-radius:.4rem;
  font:inherit;font-size:.92rem;background:#fff;color:inherit;min-height:2.2rem}
.fsai-control select:disabled,.fsai-control option:disabled{opacity:.5}
.fsai-today-reset{cursor:pointer}
.fsai-control-hint{flex-basis:100%;margin:.1rem 0 0;font-size:.84rem}
.fsai-quick-actions .fs-btn:disabled,.fsai-quick-actions .fsai-disabled{
  opacity:.45;cursor:not-allowed;pointer-events:auto}
.fsai-species-choice{margin:.6rem 0;padding:.7rem .9rem;border-radius:.45rem;font-size:.92rem}
.fsai-species-choice details{margin-top:.35rem}
.fsai-species-choice summary{cursor:pointer;font-size:.86rem;opacity:.8}
.fsai-species-choice ul{margin:.4rem 0 0;padding-left:1.1rem}
.fsai-season-notice{margin:.6rem 0;padding:.7rem .9rem;border-radius:.45rem;font-size:.92rem}
.fsai-row-species{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;opacity:.7;margin-top:.2rem}

@media print{
  /* The controls are inputs, not information - the printed sheet carries the plan date
     and species in its header instead. */
  .fsai-controls,.fsai-today-reset{display:none !important}
  .fsai-species-choice details{display:none !important}
  .fsai-species-choice,.fsai-season-notice{border:1px solid #999 !important;background:#fff !important}
  .fsai-row-species{opacity:1}
}

/* ---------- v0.4.1: follow-up thread ---------- */
.fsai-thread{margin-top:1rem;display:flex;flex-direction:column;gap:.75rem}
.fsai-thread-entry{padding:.9rem 1rem}
.fsai-thread-q{font-weight:600;margin-bottom:.55rem;line-height:1.4}
.fsai-thread-q .fs-eyebrow{display:block;margin-bottom:.15rem}
.fsai-thread-a > *:first-child{margin-top:0}
.fsai-followup-chips{margin-top:.9rem}
.fsai-followup-chips .fs-tag{cursor:pointer}

@media print{
  /* The plan is the printable artefact. Follow-up chatter is not. */
  .fsai-thread,.fsai-followup-chips{display:none !important}
}
