:root {
  --fh-blue: #0877d1;
  --fh-blue-dark: #075fa6;
  --fh-navy: #10243e;
  --fh-sky: #eaf6ff;
  --fh-gold: #f4b942;
  --fh-ink: #172234;
  --fh-muted: #5d6878;
  --fh-line: #dbe3ec;
  --fh-white: #fff;
  --fh-success: #16794c;
  --fh-danger: #b42318;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.fh-page {
  margin: 0;
  background: #f7fafd;
  color: var(--fh-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 16px;
  line-height: 1.65;
}
.fh-skip { position: absolute; left: -9999px; top: 0; }
.fh-skip:focus { left: 1rem; top: 1rem; z-index: 100; padding: .7rem 1rem; background: #fff; color: var(--fh-navy); }
.fh-container { width: min(1160px, calc(100% - 2rem)); margin-inline: auto; }
.fh-header { background: #fff; border-bottom: 1px solid var(--fh-line); position: sticky; top: 0; z-index: 30; }
.fh-header__inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.fh-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--fh-navy); text-decoration: none; font-weight: 800; font-size: 1.12rem; }
.fh-brand img { width: 42px; height: 42px; border-radius: 9px; }
.fh-nav { display: flex; align-items: center; gap: 1.1rem; }
.fh-nav a { color: var(--fh-navy); text-decoration: none; font-weight: 650; }
.fh-nav a:hover { color: var(--fh-blue); }
.fh-button, button.fh-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 46px; padding: .72rem 1.15rem; border: 1px solid transparent; border-radius: .72rem;
  background: var(--fh-blue); color: #fff; text-decoration: none; font: inherit; font-weight: 750;
  cursor: pointer; transition: background .16s ease, transform .16s ease, box-shadow .16s ease;
}
.fh-button:hover { background: var(--fh-blue-dark); box-shadow: 0 7px 18px rgba(8,119,209,.18); transform: translateY(-1px); }
.fh-button:focus-visible, .fh-page a:focus-visible, .fh-page input:focus-visible, .fh-page select:focus-visible, .fh-page textarea:focus-visible { outline: 3px solid rgba(8,119,209,.35); outline-offset: 3px; }
.fh-button--secondary { background: #fff; color: var(--fh-blue-dark); border-color: var(--fh-blue); }
.fh-button--secondary:hover { color: #fff; }
.fh-button--quiet { background: transparent; color: var(--fh-blue-dark); border-color: var(--fh-line); }
.fh-button--danger { background: var(--fh-danger); }
.fh-button--small { min-height: 38px; padding: .45rem .78rem; font-size: .9rem; }
.fh-hero { position: relative; overflow: hidden; padding: clamp(3.5rem, 8vw, 6.7rem) 0; background: linear-gradient(135deg, var(--fh-navy), #174c7e 66%, #0877d1); color: #fff; }
.fh-hero::after { content: ""; position: absolute; width: 32rem; height: 32rem; right: -12rem; top: -14rem; border: 78px solid rgba(255,255,255,.08); border-radius: 50%; }
.fh-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.35fr .65fr; gap: 3rem; align-items: center; }
.fh-eyebrow { margin: 0 0 .8rem; color: #bfe5ff; text-transform: uppercase; letter-spacing: .08em; font-size: .86rem; font-weight: 800; }
.fh-hero h1 { margin: 0; max-width: 780px; font-size: clamp(2.35rem, 6vw, 4.6rem); line-height: 1.04; letter-spacing: -.045em; }
.fh-hero__lead { max-width: 760px; margin: 1.3rem 0 1.7rem; font-size: clamp(1.05rem, 2vw, 1.28rem); color: #e9f5ff; }
.fh-actions { display: flex; flex-wrap: wrap; gap: .8rem; }
.fh-hero .fh-button { background: #fff; color: var(--fh-blue-dark); }
.fh-hero .fh-button--secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
.fh-offer-card { padding: 1.55rem; border: 1px solid rgba(255,255,255,.25); border-radius: 1.25rem; background: rgba(255,255,255,.1); backdrop-filter: blur(10px); }
.fh-offer-card strong { display: block; font-size: 3rem; line-height: 1; }
.fh-offer-card span { display: block; margin-top: .55rem; color: #e9f5ff; }
.fh-section { padding: clamp(3rem, 7vw, 5.6rem) 0; }
.fh-section--white { background: #fff; }
.fh-section--sky { background: var(--fh-sky); }
.fh-section h2 { margin: 0 0 .75rem; color: var(--fh-navy); font-size: clamp(1.75rem, 3vw, 2.45rem); line-height: 1.15; }
.fh-section-intro { max-width: 760px; margin: 0 0 2rem; color: var(--fh-muted); font-size: 1.08rem; }
.fh-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.fh-grid--2 { grid-template-columns: repeat(2, 1fr); }
.fh-card { padding: 1.35rem; border: 1px solid var(--fh-line); border-radius: 1rem; background: #fff; box-shadow: 0 8px 24px rgba(16,36,62,.045); }
.fh-card h3 { margin: 0 0 .42rem; color: var(--fh-navy); font-size: 1.12rem; }
.fh-card p { margin: 0; color: var(--fh-muted); }
.fh-icon { width: 2.25rem; height: 2.25rem; display: grid; place-items: center; margin-bottom: .8rem; border-radius: .7rem; background: var(--fh-sky); color: var(--fh-blue-dark); font-weight: 900; }
.fh-steps { counter-reset: steps; display: grid; gap: .85rem; }
.fh-step { counter-increment: steps; display: grid; grid-template-columns: 2.7rem 1fr; gap: .85rem; align-items: start; padding: 1rem 1.1rem; border: 1px solid var(--fh-line); border-radius: .9rem; background: #fff; }
.fh-step::before { content: counter(steps); display: grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; background: var(--fh-blue); color: #fff; font-weight: 800; }
.fh-step strong { display: block; color: var(--fh-navy); }
.fh-step p { margin: .15rem 0 0; color: var(--fh-muted); }
.fh-checklist { display: grid; grid-template-columns: repeat(2, 1fr); gap: .6rem 1.5rem; padding: 0; list-style: none; }
.fh-checklist li { position: relative; padding-left: 1.8rem; }
.fh-checklist li::before { content: "✓"; position: absolute; left: 0; color: var(--fh-success); font-weight: 900; }
.fh-value { overflow-x: auto; }
.fh-value table { width: 100%; border-collapse: collapse; background: #fff; }
.fh-value th, .fh-value td { padding: 1rem; text-align: left; border-bottom: 1px solid var(--fh-line); }
.fh-value th { color: var(--fh-navy); background: #f7fafd; }
.fh-faq details { border-bottom: 1px solid var(--fh-line); background: #fff; }
.fh-faq summary { padding: 1rem .2rem; cursor: pointer; color: var(--fh-navy); font-weight: 750; }
.fh-faq p { margin: 0; padding: 0 .2rem 1.1rem; color: var(--fh-muted); }
.fh-note { padding: 1rem 1.1rem; border-left: 4px solid var(--fh-blue); background: var(--fh-sky); color: var(--fh-navy); }
.fh-footer { padding: 2.5rem 0; background: var(--fh-navy); color: #d8e6f3; }
.fh-footer__inner { display: flex; justify-content: space-between; align-items: start; gap: 2rem; flex-wrap: wrap; }
.fh-footer a { color: #fff; }
.fh-footer nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.fh-breadcrumbs { padding: 1rem 0; font-size: .94rem; color: var(--fh-muted); }
.fh-breadcrumbs a { color: var(--fh-blue-dark); }
.fh-shell { padding: 2rem 0 5rem; }
.fh-shell__header { max-width: 760px; margin-bottom: 1.5rem; }
.fh-shell h1 { margin: 0; color: var(--fh-navy); font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.1; }
.fh-shell__lead { color: var(--fh-muted); font-size: 1.08rem; }
.fh-panel { padding: clamp(1.1rem, 3vw, 2rem); border: 1px solid var(--fh-line); border-radius: 1.15rem; background: #fff; box-shadow: 0 12px 34px rgba(16,36,62,.07); }
.fh-form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.fh-field { display: grid; gap: .35rem; }
.fh-field--full { grid-column: 1 / -1; }
.fh-field label, .fh-label { color: var(--fh-navy); font-weight: 700; }
.fh-field small { color: var(--fh-muted); }
.fh-field input, .fh-field select, .fh-field textarea {
  width: 100%; min-height: 46px; padding: .68rem .75rem; border: 1px solid #b9c7d6; border-radius: .62rem;
  background: #fff; color: var(--fh-ink); font: inherit;
}
.fh-field textarea { min-height: 112px; resize: vertical; }
.fh-choice { display: flex; gap: .6rem; align-items: flex-start; }
.fh-choice input { margin-top: .35rem; }
.fh-status { display: none; margin: 1rem 0; padding: .9rem 1rem; border-radius: .65rem; background: var(--fh-sky); color: var(--fh-navy); }
.fh-status[data-kind="error"] { display: block; background: #fff1f0; color: var(--fh-danger); }
.fh-status[data-kind="success"] { display: block; background: #ecf9f2; color: var(--fh-success); }
.fh-status[data-kind="info"] { display: block; }
.fh-progress { display: flex; align-items: center; gap: .5rem; margin-bottom: 1.4rem; }
.fh-progress span { flex: 1; height: 7px; border-radius: 999px; background: #dbe5ef; }
.fh-progress span[data-active="true"] { background: var(--fh-blue); }
.fh-form-step[hidden] { display: none; }
.fh-form-actions { display: flex; justify-content: space-between; gap: .7rem; margin-top: 1.3rem; }
.fh-search-results { display: grid; gap: .55rem; margin-top: .7rem; }
.fh-search-result { display: flex; justify-content: space-between; align-items: center; gap: .8rem; width: 100%; padding: .8rem; border: 1px solid var(--fh-line); border-radius: .65rem; background: #fff; color: var(--fh-ink); text-align: left; cursor: pointer; }
.fh-search-result:hover, .fh-search-result[aria-pressed="true"] { border-color: var(--fh-blue); background: var(--fh-sky); }
.fh-search-result small { display: block; color: var(--fh-muted); }
.fh-claims { display: grid; gap: 1rem; }
.fh-claim { padding: 1rem; border: 1px solid var(--fh-line); border-radius: .85rem; background: #fff; }
.fh-claim__head { display: flex; justify-content: space-between; gap: 1rem; align-items: start; }
.fh-chip { display: inline-flex; align-items: center; padding: .24rem .6rem; border-radius: 999px; background: var(--fh-sky); color: var(--fh-blue-dark); font-size: .82rem; font-weight: 750; }
.fh-admin-actions { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .8rem; }
.fh-admin-note { width: 100%; min-height: 76px; margin-top: .7rem; padding: .6rem; border: 1px solid var(--fh-line); border-radius: .55rem; font: inherit; }
.fh-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.fh-toolbar { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.fh-toolbar__actions { display: flex; gap: .7rem; flex-wrap: wrap; }
.fh-stat-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); gap: .75rem; margin: 1rem 0; }
.fh-stat { padding: 1rem; border: 1px solid var(--fh-line); border-radius: .85rem; background: #fff; }
.fh-stat strong { display: block; color: var(--fh-navy); font-size: 1.65rem; line-height: 1.1; }
.fh-stat span { display: block; margin-top: .25rem; color: var(--fh-muted); text-transform: capitalize; font-size: .88rem; }
.fh-filter-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: .8rem; margin-bottom: 1.2rem; }
.fh-filter-submit { align-self: end; }
.fh-responsive-table { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.fh-responsive-table table { min-width: 780px; width: 100%; border-collapse: collapse; }
.fh-responsive-table th, .fh-responsive-table td { padding: .75rem; border-bottom: 1px solid var(--fh-line); text-align: left; vertical-align: top; }
.fh-responsive-table th { background: #f3f7fb; color: var(--fh-navy); font-size: .88rem; }
.fh-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1rem; }
.fh-mapping-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .8rem; }
.fh-import-steps { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; padding: 0; margin: 0 0 1rem; list-style: none; counter-reset: import-step; }
.fh-import-steps li { counter-increment: import-step; padding: .65rem; border-radius: .65rem; background: #e7edf4; color: var(--fh-muted); font-weight: 700; text-align: center; }
.fh-import-steps li::before { content: counter(import-step) ". "; }
.fh-import-steps li[data-active="true"] { background: var(--fh-blue); color: #fff; }
.fh-row-editor { margin-top: .55rem; }
.fh-row-editor summary { color: var(--fh-blue-dark); cursor: pointer; font-weight: 700; }
.fh-row-editor__fields { display: grid; grid-template-columns: repeat(2,minmax(160px,1fr)); gap: .45rem; margin: .6rem 0; }
.fh-row-editor__fields label { display: grid; gap: .15rem; color: var(--fh-navy); font-size: .82rem; font-weight: 700; }
.fh-row-editor__fields input { min-height: 38px; padding: .45rem; border: 1px solid #b9c7d6; border-radius: .45rem; font: inherit; }
progress { width: 100%; height: 1.1rem; accent-color: var(--fh-blue); }
.fh-owner-dashboard { width: min(1160px,calc(100% - 2rem)); margin: 1rem auto 2rem; padding: clamp(1rem,3vw,2rem); border: 1px solid var(--fh-line); border-radius: 1.15rem; background: #f7fafd; color: var(--fh-ink); font-family: Inter,ui-sans-serif,system-ui,sans-serif; }
.fh-owner-dashboard h2,.fh-owner-dashboard h3 { color: var(--fh-navy); }
.fh-performance-head { display: flex; align-items: end; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.fh-performance-head h2 { margin: 0; }
.fh-performance-head p { margin: .35rem 0; color: var(--fh-muted); }
.fh-performance-head label { display: grid; gap: .25rem; color: var(--fh-navy); font-weight: 700; }
.fh-performance-head select,.fh-owner-dashboard input[readonly],.fh-manager-performance input[readonly] { min-height: 44px; max-width: 100%; padding: .55rem .7rem; border: 1px solid #b9c7d6; border-radius: .55rem; background: #fff; font: inherit; }
.fh-dashboard-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.fh-health-card { display: grid; grid-template-columns: 1fr auto; gap: 1rem; margin: 1rem 0; padding: 1.2rem; border: 1px solid var(--fh-line); border-radius: .9rem; background: #fff; }
.fh-health-card h3 { margin: 0; }
.fh-health-score { min-width: 115px; text-align: center; }
.fh-health-score strong { display: block; font-size: 2rem; color: var(--fh-blue-dark); }
.fh-health-score span { color: var(--fh-muted); font-size: .82rem; }
.fh-health-actions { grid-column: 1/-1; padding-top: .7rem; border-top: 1px solid var(--fh-line); }
.fh-health-actions ul { margin: .4rem 0; }
.fh-founding-status { color: #72510c; font-weight: 700; }
.fh-manager-performance { margin-bottom: 1rem; }
.fh-ranked,.fh-action-list { margin: .4rem 0; padding-left: 1.2rem; }
.fh-ranked li { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem 0; border-bottom: 1px solid var(--fh-line); }
.fh-ranked strong { white-space: nowrap; }

/* Enhancements injected into the existing traveller and owner application. */
.fh-nav-cta { white-space: nowrap; }
.fh-inline-promo { margin: 1rem auto; width: min(1160px, calc(100% - 2rem)); padding: .8rem 1rem; border: 1px solid #b9dfff; border-radius: .8rem; background: var(--fh-sky); color: var(--fh-navy); }
.fh-inline-promo a { color: var(--fh-blue-dark); font-weight: 800; }
.fh-property-owner-box { margin-top: 1.4rem; padding: 1rem 1.1rem; border: 1px solid #b9dfff; border-radius: .85rem; background: var(--fh-sky); }
.fh-property-owner-box a { color: var(--fh-blue-dark); font-weight: 800; }
.fh-founding-badge { display: inline-flex; align-items: center; gap: .35rem; width: fit-content; margin-top: .7rem; padding: .3rem .65rem; border: 1px solid #e4a51d; border-radius: 999px; background: #fff7df; color: #72510c; font-size: .82rem; font-weight: 800; }
.fh-founding-badge::before { content: "★"; }

@media (max-width: 800px) {
  .fh-hero__grid, .fh-grid, .fh-grid--2, .fh-form-grid { grid-template-columns: 1fr; }
  .fh-offer-card { max-width: 420px; }
  .fh-checklist { grid-template-columns: 1fr; }
  .fh-nav > a:not(.fh-button) { display: none; }
  .fh-field--full { grid-column: auto; }
  .fh-filter-grid, .fh-mapping-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .fh-dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .fh-container { width: min(100% - 1.2rem, 1160px); }
  .fh-brand span { font-size: .94rem; }
  .fh-button { width: 100%; }
  .fh-header .fh-button { width: auto; min-height: 40px; padding: .5rem .72rem; font-size: .85rem; }
  .fh-actions, .fh-form-actions { flex-direction: column; }
  .fh-hero { padding-top: 3rem; }
  .fh-claim__head { flex-direction: column; }
  .fh-filter-grid, .fh-mapping-grid { grid-template-columns: 1fr; }
  .fh-import-steps { grid-template-columns: repeat(2,1fr); }
  .fh-toolbar__actions, .fh-toolbar__actions .fh-button { width: 100%; }
  .fh-responsive-table table { min-width: 680px; }
  .fh-owner-dashboard { width: calc(100% - 1.2rem); }
  .fh-health-card { grid-template-columns: 1fr; }
  .fh-health-score { text-align: left; }
}
