/* FinanceFarm site and dashboard design. Admin never links this sheet; account
   documents are excluded from every selector. Semantic Bootstrap colors stay intact. */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/open-sans/open-sans-latin-ext-wght-normal.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/open-sans/open-sans-latin-wght-normal.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/open-sans/open-sans-latin-ext-wght-italic.woff2') format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 300 800;
  font-display: swap;
  src: url('/fonts/open-sans/open-sans-latin-wght-italic.woff2') format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

body:not(.ff-auth) {
  --ff-canvas: #fafbf8;
  --ff-surface: #fff;
  --ff-mix: white;
  --ff-ink: #25372d;
  --ff-muted: #5c685f;
  --ff-on-solid: #fff;
  --ff-shadow: 0 2px 12px rgb(20 35 25 / 4%);
  --bs-green: #274d38;
  --bs-green-rgb: 39, 77, 56;
  --bs-blue: #50768c;
  --bs-blue-rgb: 80, 118, 140;
  --bs-gold: #806126;
  --bs-gold-rgb: 128, 97, 38;
  --bs-green-50: color-mix(in srgb, var(--bs-green) 10%, var(--ff-mix));
  --bs-green-100: color-mix(in srgb, var(--bs-green) 20%, var(--ff-mix));
  --bs-green-200: color-mix(in srgb, var(--bs-green) 30%, var(--ff-mix));
  --bs-green-300: color-mix(in srgb, var(--bs-green) 40%, var(--ff-mix));
  --bs-green-400: color-mix(in srgb, var(--bs-green) 50%, var(--ff-mix));
  --bs-green-500: var(--bs-green);
  --bs-green-600: color-mix(in srgb, var(--bs-green) 85%, black);
  --bs-green-700: color-mix(in srgb, var(--bs-green) 70%, black);
  --bs-green-800: color-mix(in srgb, var(--bs-green) 55%, black);
  --bs-green-900: color-mix(in srgb, var(--bs-green) 40%, black);
  --bs-blue-50: color-mix(in srgb, var(--bs-blue) 10%, var(--ff-mix));
  --bs-blue-100: color-mix(in srgb, var(--bs-blue) 20%, var(--ff-mix));
  --bs-blue-200: color-mix(in srgb, var(--bs-blue) 30%, var(--ff-mix));
  --bs-blue-300: color-mix(in srgb, var(--bs-blue) 40%, var(--ff-mix));
  --bs-blue-400: color-mix(in srgb, var(--bs-blue) 50%, var(--ff-mix));
  --bs-blue-500: var(--bs-blue);
  --bs-blue-600: color-mix(in srgb, var(--bs-blue) 85%, black);
  --bs-blue-700: color-mix(in srgb, var(--bs-blue) 70%, black);
  --bs-blue-800: color-mix(in srgb, var(--bs-blue) 55%, black);
  --bs-blue-900: color-mix(in srgb, var(--bs-blue) 40%, black);
  --bs-gold-50: color-mix(in srgb, var(--bs-gold) 10%, var(--ff-mix));
  --bs-gold-100: color-mix(in srgb, var(--bs-gold) 20%, var(--ff-mix));
  --bs-gold-200: color-mix(in srgb, var(--bs-gold) 30%, var(--ff-mix));
  --bs-gold-300: color-mix(in srgb, var(--bs-gold) 40%, var(--ff-mix));
  --bs-gold-400: color-mix(in srgb, var(--bs-gold) 50%, var(--ff-mix));
  --bs-gold-500: var(--bs-gold);
  --bs-gold-600: color-mix(in srgb, var(--bs-gold) 85%, black);
  --bs-gold-700: color-mix(in srgb, var(--bs-gold) 70%, black);
  --bs-gold-800: color-mix(in srgb, var(--bs-gold) 55%, black);
  --bs-gold-900: color-mix(in srgb, var(--bs-gold) 40%, black);
  --ff-role-seller: var(--bs-green);
  --ff-role-seller-rgb: var(--bs-green-rgb);
  --ff-role-seller-soft: rgb(232, 238, 229);
  --ff-role-seller-line: rgb(203, 216, 199);
  --ff-role-seller-strong: var(--bs-green-600);
  --ff-role-seller-tint: var(--bs-green-600);
  --ff-role-seller-text-rgb: 33, 65, 48;
  --ff-role-buyer: var(--bs-blue);
  --ff-role-buyer-rgb: var(--bs-blue-rgb);
  --ff-role-buyer-soft: rgb(237, 243, 247);
  --ff-role-buyer-line: rgb(200, 217, 227);
  --ff-role-buyer-strong: var(--bs-blue-600);
  --ff-role-buyer-tint: var(--bs-blue-600);
  --ff-role-buyer-text-rgb: 68, 100, 119;
  --ff-role-rebuyer: var(--bs-gold);
  --ff-role-rebuyer-rgb: var(--bs-gold-rgb);
  --ff-role-rebuyer-soft: rgb(245, 239, 226);
  --ff-role-rebuyer-line: rgb(222, 207, 174);
  --ff-role-rebuyer-strong: var(--bs-gold-600);
  --ff-role-rebuyer-tint: var(--bs-gold-600);
  --ff-role-rebuyer-text-rgb: 109, 82, 32;
  --ff-blue: var(--ff-role-buyer);
  --bs-body-bg: var(--ff-canvas);
  --bs-body-color: var(--ff-ink);
  --bs-body-color-rgb: 37, 55, 45;
  --bs-secondary-color: var(--ff-muted);
  --bs-secondary-color-rgb: 92, 104, 95;
  --bs-secondary-bg: var(--ff-surface);
  --bs-tertiary-bg: var(--bs-green-50);
  --bs-bg-surface: var(--ff-surface);
  --bs-font-sans-serif: 'Open Sans', system-ui, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  font-family: var(--bs-font-sans-serif);
  color: var(--ff-ink);
  background: var(--ff-canvas);
  line-height: 1.65;
}

body:not(.ff-auth)[data-bs-theme="dark"] {
  --ff-canvas: #151d18;
  --ff-surface: #202922;
  --ff-mix: var(--ff-surface);
  --ff-ink: #e5ede7;
  --ff-muted: #bac5bd;
  --bs-body-color-rgb: 229, 237, 231;
  --bs-secondary-color-rgb: 186, 197, 189;
  --ff-shadow: 0 2px 12px rgb(0 0 0 / 12%);
  --ff-role-seller-strong: #b4d1bd;
  --ff-role-seller-tint: #b4d1bd;
  --ff-role-seller-text-rgb: 180, 209, 189;
  --ff-role-seller-line: #718c7b;
  --ff-role-seller-soft: var(--bs-green-50);
  --ff-role-buyer-strong: #c0d7e5;
  --ff-role-buyer-tint: #c0d7e5;
  --ff-role-buyer-text-rgb: 192, 215, 229;
  --ff-role-buyer-line: #839daa;
  --ff-role-buyer-soft: var(--bs-blue-50);
  --ff-role-rebuyer-strong: #e7d3a9;
  --ff-role-rebuyer-tint: #e7d3a9;
  --ff-role-rebuyer-text-rgb: 231, 211, 169;
  --ff-role-rebuyer-line: #a18d65;
  --ff-role-rebuyer-soft: var(--bs-gold-50);
}

/* The aliases are declared again on inner role scopes: an inherited custom
   property is already resolved and cannot be rethemed just by changing its input. */
body:not(.ff-auth),
body:not(.ff-auth).ff-area-seller,
body:not(.ff-auth) .ff-area-seller {
  --ff-role-base: var(--bs-green);
  --ff-role-rgb: var(--bs-green-rgb);
  --ff-role-strong: var(--ff-role-seller-strong);
  --ff-role-text-rgb: var(--ff-role-seller-text-rgb);
  --ff-role-soft: var(--ff-role-seller-soft);
  --ff-role-line: var(--ff-role-seller-line);
}
body:not(.ff-auth).ff-area-buyer,
body:not(.ff-auth) .ff-area-buyer {
  --ff-role-base: var(--bs-blue);
  --ff-role-rgb: var(--bs-blue-rgb);
  --ff-role-strong: var(--ff-role-buyer-strong);
  --ff-role-text-rgb: var(--ff-role-buyer-text-rgb);
  --ff-role-soft: var(--ff-role-buyer-soft);
  --ff-role-line: var(--ff-role-buyer-line);
}
body:not(.ff-auth).ff-area-rebuyer,
body:not(.ff-auth) .ff-area-rebuyer {
  --ff-role-base: var(--bs-gold);
  --ff-role-rgb: var(--bs-gold-rgb);
  --ff-role-strong: var(--ff-role-rebuyer-strong);
  --ff-role-text-rgb: var(--ff-role-rebuyer-text-rgb);
  --ff-role-soft: var(--ff-role-rebuyer-soft);
  --ff-role-line: var(--ff-role-rebuyer-line);
}
body:not(.ff-auth),
body:not(.ff-auth) :is(.ff-area-seller, .ff-area-buyer, .ff-area-rebuyer) {
  --bs-primary: var(--ff-role-base);
  --bs-primary-rgb: var(--ff-role-rgb);
  --bs-primary-lt: var(--ff-role-soft);
  --bs-primary-50: color-mix(in srgb, var(--ff-role-base) 10%, var(--ff-mix));
  --bs-primary-100: color-mix(in srgb, var(--ff-role-base) 20%, var(--ff-mix));
  --bs-primary-200: color-mix(in srgb, var(--ff-role-base) 30%, var(--ff-mix));
  --bs-primary-300: color-mix(in srgb, var(--ff-role-base) 40%, var(--ff-mix));
  --bs-primary-400: color-mix(in srgb, var(--ff-role-base) 50%, var(--ff-mix));
  --bs-primary-500: var(--ff-role-base);
  --bs-primary-600: color-mix(in srgb, var(--ff-role-base) 85%, black);
  --bs-primary-700: color-mix(in srgb, var(--ff-role-base) 70%, black);
  --bs-primary-800: color-mix(in srgb, var(--ff-role-base) 55%, black);
  --bs-primary-900: color-mix(in srgb, var(--ff-role-base) 40%, black);
  --bs-link-color: var(--ff-role-strong);
  --bs-link-color-rgb: var(--ff-role-text-rgb);
  --bs-link-hover-color: var(--ff-role-strong);
  --bs-link-hover-color-rgb: var(--ff-role-text-rgb);
  --bs-border-color: var(--ff-role-line);
  --ff-brand: var(--ff-role-base);
  --ff-brand-soft: var(--ff-role-soft);
  --ff-role-text: var(--ff-role-strong);
  --ff-line: var(--ff-role-line);
  --ff-soft: var(--ff-role-soft);
}

body:not(.ff-auth) :is(button, input, select, textarea) { font-family: inherit; }
body:not(.ff-auth) :is(h1, h2, h3, h4, h5, h6) {
  font-family: var(--bs-font-sans-serif);
  font-weight: 400;
  line-height: 1.14;
  letter-spacing: -.03em;
}
body:not(.ff-auth) :is(.fw-bold, .fw-semibold, strong, b) { font-weight: 500 !important; }
body:not(.ff-auth) :is(h1, h2, h3, h4, h5, h6):is(.fw-bold, .fw-semibold) { font-weight: 400 !important; }
body:not(.ff-auth) .ffdash { --bs-border-color-translucent: var(--ff-role-line); font-size: 13px; }
body:not(.ff-auth) :is(.ffdash-page-title, .ffdash-content h1.h2) { font-size: clamp(28px, 3vw, 36px); }
body:not(.ff-auth) .ffdash-page-eyebrow { font-size: 12px; font-weight: 500; letter-spacing: .065em; color: var(--ff-role-text) !important; }
body:not(.ff-auth) .ffdash-page-hint { font-size: 13px; }
body:not(.ff-auth) .ffdash-breadcrumb { font-size: 20px; font-weight: 400; color: var(--ff-role-text); }
body:not(.ff-auth) :is(.card-title, .ffdash-content .h3) { font-weight: 400; }
body:not(.ff-auth) :is(.ff-hero, .ffh-hero) h1 { font-size: clamp(45px, 4.7vw, 66px); }
body:not(.ff-auth):not(:has(.ffdash)) :is(.ffh, .ffh-concept, .page-wrapper) h2:not(.h1, .h2, .h3, .h4, .h5, .h6, .card-title) { font-size: clamp(34px, 3.7vw, 50px); }
body:not(.ff-auth) .legal-content h2 { font-size: clamp(22px, 2.4vw, 28px) !important; color: var(--ff-role-text) !important; }
body:not(.ff-auth) .grad-text { background: none; -webkit-text-fill-color: currentColor; color: var(--ff-role-text); animation: none; }

body:not(.ff-auth) .btn {
  --bs-btn-border-radius: 99px;
  --bs-btn-padding-x: 23px;
  --bs-btn-padding-y: 13px;
  --bs-btn-font-size: 13px;
  --bs-btn-font-weight: 400;
  min-height: 48px;
  border-radius: 99px;
  font-size: 13px;
  font-weight: 400;
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease;
}
body:not(.ff-auth) .btn-primary {
  --bs-btn-bg: var(--ff-role-base);
  --bs-btn-color: var(--ff-on-solid);
  --bs-btn-border-color: var(--ff-role-base);
  --bs-btn-hover-bg: var(--bs-primary-600);
  --bs-btn-hover-border-color: var(--bs-primary-600);
  --bs-btn-hover-color: var(--ff-on-solid);
  --bs-btn-active-bg: var(--bs-primary-600);
  --bs-btn-active-border-color: var(--bs-primary-600);
  --bs-btn-active-color: var(--ff-on-solid);
  --bs-btn-disabled-bg: var(--ff-role-base);
  --bs-btn-disabled-border-color: var(--ff-role-base);
  --bs-btn-disabled-color: var(--ff-on-solid);
}
body:not(.ff-auth) .btn-outline-primary {
  --bs-btn-bg: var(--ff-role-soft);
  --bs-btn-color: var(--ff-role-text);
  --bs-btn-border-color: var(--ff-role-line);
  --bs-btn-hover-bg: var(--bs-primary-100);
  --bs-btn-hover-color: var(--ff-role-text);
  --bs-btn-hover-border-color: var(--ff-role-line);
  --bs-btn-active-bg: var(--bs-primary-100);
  --bs-btn-active-color: var(--ff-role-text);
  --bs-btn-active-border-color: var(--ff-role-line);
  --bs-btn-disabled-color: var(--ff-role-text);
  --bs-btn-disabled-border-color: var(--ff-role-line);
}
body:not(.ff-auth) .btn:not(.btn-sm, .btn-xs, .btn-icon, .btn-link, :disabled, .disabled):hover { transform: translateY(-2px); }
body:not(.ff-auth) :is(.btn-sm, .btn-xs),
body:not(.ff-auth) .btn-group-sm > .btn {
  --bs-btn-padding-x: 14px;
  --bs-btn-padding-y: 7px;
  min-height: 34px;
  font-size: 12px;
}
body:not(.ff-auth) .btn-icon { min-height: 40px; min-width: 40px; padding: 8px; }
body:not(.ff-auth) .btn-group-sm > .btn:hover { transform: none; }
body:not(.ff-auth) .btn-link { min-height: 0; }
body:not(.ff-auth) :is(.ffh-link, .text-link, .ffh-concept .ffh-link) { color: var(--ff-role-text); border-bottom-color: var(--ff-role-line); }
body:not(.ff-auth) :is(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 3px solid var(--ff-role-text); outline-offset: 3px; }

body:not(.ff-auth) :is(.card, .ff-card, .card-ff, .value-card, .team-card, .strategy-card) {
  --bs-card-bg: var(--ff-surface);
  --bs-card-color: var(--ff-ink);
  --bs-card-border-color: var(--ff-role-line);
  --bs-card-border-radius: 12px;
  --bs-card-spacer-x: 28px;
  --bs-card-spacer-y: 28px;
  --bs-card-cap-bg: transparent;
  background-color: var(--ff-surface);
  border-color: var(--ff-role-line);
  border-width: 1px;
  border-radius: 12px;
}
body:not(.ff-auth) .card .card:not(.position-absolute, .dropdown-menu) {
  --bs-card-border-radius: 8px;
  --bs-card-spacer-x: 19px;
  --bs-card-spacer-y: 19px;
  border-radius: 8px;
  background: linear-gradient(120deg, var(--ff-role-soft), var(--ff-surface));
}
body:not(.ff-auth) .card .card :is(.card-title, h3, h4) { color: var(--ff-role-text); }
body:not(.ff-auth) .card .card:has(img) { background: var(--ff-surface); }
body:not(.ff-auth) .card .card:has(img) > .card-body { background: linear-gradient(120deg, var(--ff-role-soft), var(--ff-surface)); }
body:not(.ff-auth) :is(.card-header, .card-footer, .list-group-item) { border-color: var(--ff-role-line); }
/* Use Bootstrap's header cap variables on the header itself, not on the card:
   footers and body content keep their own surfaces. */
body:not(.ff-auth) .card-header {
  --bs-card-cap-bg: var(--ff-role-soft);
  --bs-card-cap-color: var(--ff-role-text);
  background-color: var(--bs-card-cap-bg);
}
body:not(.ff-auth) :is(.modal, .dropdown-menu, .popover, .offcanvas, .position-absolute) .card,
body:not(.ff-auth) .card.position-absolute {
  --bs-card-spacer-x: 16px;
  --bs-card-spacer-y: 16px;
  background: var(--ff-surface);
  border-radius: 8px;
}
body:not(.ff-auth) :is(.ffdash-hero, .ff-hero, .ff-callout-soft, .ff-card-soft, .ff-card-blue) {
  background: linear-gradient(120deg, var(--ff-role-soft), var(--ff-surface));
  border: 1px solid var(--ff-role-line);
  border-radius: 16px;
  color: var(--ff-ink);
}
body:not(.ff-auth) :is(.ffdash-hero, .ff-hero) { padding: 30px; }
body:not(.ff-auth) .ff-callout-soft { padding: 19px; border-radius: 8px; color: var(--ff-role-text); }
body:not(.ff-auth) :is(.ff-upload, .ff-border-dashed) { background: var(--ff-role-soft); border-color: var(--ff-role-line); border-radius: 8px; }
body:not(.ff-auth) .ffdash-ring-inner { background: var(--ff-surface); font-weight: 500; }
body:not(.ff-auth) .ff-stepbar .step-item.active::before,
body:not(.ff-auth) .ff-vstep.active .ff-vstep-circle { color: var(--ff-role-text) !important; background: var(--ff-role-soft); border-color: var(--ff-role-line); }
body:not(.ff-auth) .ff-timeline-active { background: var(--ff-role-soft); border-color: var(--ff-role-line); }
body:not(.ff-auth) .bg-primary-lt { color: var(--ff-role-text); }
body:not(.ff-auth) .text-primary { color: var(--ff-role-text) !important; }
body:not(.ff-auth) .bg-light { background-color: var(--ff-role-soft) !important; }
body:not(.ff-auth)[data-bs-theme="dark"] .text-dark { color: var(--ff-ink) !important; }

body:not(.ff-auth) :is(.form-control, .form-select, .input-group-text) {
  padding: 12px 14px;
  border-color: var(--ff-role-line);
  border-radius: 6px;
  font-size: 13px;
  color: var(--ff-ink);
  background-color: var(--ff-surface);
}
body:not(.ff-auth) :is(.input-group-sm .form-control, .input-group-sm .form-select, .input-group-sm .input-group-text) { padding: 8px 10px; }
body:not(.ff-auth) .form-label { font-size: 12px; font-weight: 400; color: var(--ff-muted); }
body:not(.ff-auth) :is(.form-control, .form-select):focus { border-color: var(--ff-role-text); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ff-role-text) 20%, transparent); }
body:not(.ff-auth) .form-control::placeholder { color: var(--ff-muted); opacity: 1; }
body:not(.ff-auth) .table { --bs-table-bg: transparent; --bs-table-color: var(--ff-ink); --bs-table-border-color: var(--ff-role-line); font-size: 12px; }
body:not(.ff-auth) .table > :not(caption) > * > * { padding: 13px 9px; }
body:not(.ff-auth) .table th { color: var(--ff-muted); font-weight: 500; }
body:not(.ff-auth) .nav-pills { --bs-nav-pills-border-radius: 99px; --bs-nav-pills-link-active-bg: var(--ff-role-base); }
body:not(.ff-auth) .nav-pills .nav-link:not(.active) { color: var(--ff-role-text); }
body:not(.ff-auth) .badge.bg-primary-lt { background-color: var(--ff-role-soft) !important; color: var(--ff-role-text) !important; }
body:not(.ff-auth) .badge.bg-success-lt { background-color: var(--bs-success-bg-subtle, color-mix(in srgb, var(--bs-success) 20%, var(--ff-surface))) !important; color: var(--bs-success-text-emphasis, var(--bs-success)) !important; }
body:not(.ff-auth) .badge.bg-warning-lt { background-color: var(--bs-warning-bg-subtle, color-mix(in srgb, var(--bs-warning) 20%, var(--ff-surface))) !important; color: var(--bs-warning-text-emphasis, var(--bs-warning)) !important; }
body:not(.ff-auth) .badge.bg-danger-lt { background-color: var(--bs-danger-bg-subtle, color-mix(in srgb, var(--bs-danger) 20%, var(--ff-surface))) !important; color: var(--bs-danger-text-emphasis, var(--bs-danger)) !important; }
body:not(.ff-auth) .badge.bg-info-lt { background-color: var(--bs-info-bg-subtle, color-mix(in srgb, var(--bs-info) 20%, var(--ff-surface))) !important; color: var(--bs-info-text-emphasis, var(--bs-info)) !important; }
body:not(.ff-auth) .badge.bg-secondary-lt { background-color: var(--bs-secondary-bg-subtle, color-mix(in srgb, var(--bs-secondary) 20%, var(--ff-surface))) !important; color: var(--bs-secondary-text-emphasis, var(--bs-secondary-color)) !important; }

body:not(.ff-auth) .ffdash-rail { background: var(--ff-role-soft); border-color: var(--ff-role-line); }
body:not(.ff-auth) .ffdash-sidebar { --bs-offcanvas-border-color: var(--ff-role-line); background: var(--ff-role-soft); color: var(--ff-ink); }
body:not(.ff-auth) .ffdash-sidebar > .nav-pills .nav-link { min-height: 46px; padding: 13px 14px; border-radius: 7px; font-size: 13px; color: var(--ff-muted); }
body:not(.ff-auth) .ffdash-sidebar .nav-link i { color: var(--ff-role-text); }
body:not(.ff-auth) .ffdash-sidebar .nav-link.active { color: var(--ff-role-text); background: var(--ff-surface); box-shadow: inset 3px 0 0 var(--ff-role-base); }
body:not(.ff-auth) .ffdash-sidebar .nav-link:hover { color: var(--ff-role-text); background: color-mix(in srgb, var(--ff-surface) 72%, transparent); }
body:not(.ff-auth) .ffdash-area-switcher > .btn { background: var(--ff-surface); border: 1px solid var(--ff-role-line); border-radius: 7px; }
body:not(.ff-auth) .ffdash-sidebar .subheader { font-size: 9px; letter-spacing: .08em; }
body:not(.ff-auth) .ffdash-topbar { background: var(--ff-surface); border-color: var(--ff-role-line); }
body:not(.ff-auth) .ffdash-content { background: var(--ff-canvas); }

/* The Razor navbar/footer and their Nuxt equivalents share these class names. */
body:not(.ff-auth) header.navbar { min-height: 85px; background: color-mix(in srgb, var(--ff-canvas) 96%, transparent); backdrop-filter: blur(16px); border-bottom: 1px solid var(--ff-role-line) !important; }
body:not(.ff-auth) header.navbar > :is(.container, .container-xl, .container-fluid) { max-width: 1360px; }
body:not(.ff-auth) header.navbar .nav-link { font-size: 13px; color: var(--ff-muted); }
body:not(.ff-auth) header.navbar .nav-link.active { color: var(--ff-role-text) !important; }
body:not(.ff-auth) :is(.ff-footer, footer.footer) { color: var(--ff-ink); border-color: var(--ff-role-line); }
body:not(.ff-auth) .ff-footer .container { max-width: 1240px; }
body:not(.ff-auth) .ff-footer h4 { font-size: 12px; letter-spacing: .065em; color: var(--ff-role-text); }
body:not(.ff-auth) .ff-footer > .position-absolute { background-image: none !important; }
body:not(.ff-auth)[data-bs-theme="dark"] .ff-footer img[src="/uploads/branding/logo.svg"] { filter: brightness(0) invert(1); }

@media (max-width: 767.98px) {
  body:not(.ff-auth) :is(.card, .ff-card, .card-ff) { --bs-card-spacer-x: 19px; --bs-card-spacer-y: 19px; }
  body:not(.ff-auth) :is(.ffdash-hero, .ff-hero) { padding: 22px; }
  body:not(.ff-auth) .ffdash :is(.btn, .form-control, .form-select, .dropdown-item, .page-link) { min-height: 44px; }
  body:not(.ff-auth) header.navbar { min-height: 72px; }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.ff-auth) *, body:not(.ff-auth) *::before, body:not(.ff-auth) *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  body:not(.ff-auth) .btn:hover { transform: none; }
}
