/* =====================================================================================
   SlotWise dashboards and landing page. Loaded after theme.css.
   Mobile first (works at 360px, widens from there). Text colours are solid: never faded with opacity.
   Prefixes: dash-* (dashboards, Views/Shared/_Dash*.cshtml, Views/Home/*Dashboard.cshtml), sw-* (landing page).
   Palette: ink #0F172A, muted #475569 (7.6:1 on white), indigo #556B2F (6.3:1 on white).
   ===================================================================================== */

:root {
  --dash-ink: #0F172A;
  --dash-muted: #475569;
  --dash-line: #E2E8F0;
  --dash-bg: #F8FAFC;
  --dash-accent: #556B2F;
  --dash-accent-ink: #3A4B1E;
  --dash-soft: #F1F5E4;
  --dash-card: #FFFFFF;
  --dash-radius: 16px;
  --dash-shadow: 0 1px 2px rgba(15, 23, 42, 0.04), 0 8px 24px rgba(15, 23, 42, 0.05);
}

/* ---------- Page frame ---------------------------------------------------------------- */
.dash { color: var(--dash-ink); }
.dash p { margin: 0; }
.dash-head { display: flex; flex-direction: column; gap: 14px; margin-bottom: 20px; }
.dash-eyebrow { font-size: 0.8125rem; font-weight: 600; color: var(--dash-muted); letter-spacing: 0.01em; }
.dash-title { font-size: 1.5rem; font-weight: 700; line-height: 1.25; letter-spacing: -0.01em; margin: 2px 0 4px; color: var(--dash-ink); overflow-wrap: anywhere; }
.dash-sub { color: var(--dash-muted); font-size: 0.9375rem; }
.dash-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.dash-actions .btn { flex: 1 1 auto; }
.dash-note { color: var(--dash-muted); font-size: 0.8125rem; line-height: 1.45; margin-top: 8px; }
@media (min-width: 768px) {
  .dash-head { flex-direction: row; justify-content: space-between; align-items: flex-end; gap: 24px; }
  .dash-title { font-size: 1.75rem; }
  .dash-actions .btn { flex: 0 0 auto; }
}

/* Touch targets: small buttons are still 44px tall on a phone (also inside the app shell). */
@media (max-width: 767.98px) {
  .dash .btn, .dash .btn.btn-sm { min-height: 44px !important; display: inline-flex; align-items: center; justify-content: center; }
}

/* ---------- Cards --------------------------------------------------------------------- */
.dash-card { background: var(--dash-card); border: 1px solid var(--dash-line); border-radius: var(--dash-radius); box-shadow: var(--dash-shadow); padding: 16px; margin-bottom: 16px; min-width: 0; }
.dash-card--attention { border-color: #F59E0B; box-shadow: 0 0 0 3px #FEF3C7, var(--dash-shadow); }
.dash-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.dash-card-title { font-size: 1.0625rem; font-weight: 700; margin: 0; color: var(--dash-ink); line-height: 1.3; }
.dash-card-sub { color: var(--dash-muted); font-size: 0.8125rem; margin-top: 2px; }
@media (min-width: 768px) { .dash-card { padding: 20px; } }

.dash-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 20px; align-items: start; }
.dash-col { min-width: 0; }
@media (min-width: 992px) {
  .dash-grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
  .dash-grid--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}

/* ---------- Stat tiles ---------------------------------------------------------------- */
.dash-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
@media (min-width: 992px) { .dash-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; } .dash-stats--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.dash-stats--3 > :last-child { grid-column: 1 / -1; }
@media (min-width: 992px) { .dash-stats--3 > :last-child { grid-column: auto; } }
.dash-stat { display: flex; gap: 12px; align-items: flex-start; background: var(--dash-card); border: 1px solid var(--dash-line); border-radius: var(--dash-radius); box-shadow: var(--dash-shadow); padding: 14px; min-width: 0; }
.dash-stat-icon { flex: 0 0 auto; width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; font-size: 1.15rem; background: var(--dash-soft); color: var(--dash-accent-ink); }
.dash-stat-body { min-width: 0; }
.dash-stat-label { font-size: 0.8125rem; font-weight: 600; color: var(--dash-muted); }
.dash-stat-value { font-size: 1.75rem; font-weight: 700; line-height: 1.15; color: var(--dash-ink); font-variant-numeric: tabular-nums; }
.dash-stat-hint { font-size: 0.75rem; color: var(--dash-muted); line-height: 1.35; margin-top: 2px; }
.dash-stat-link { display: inline-block; margin-top: 6px; font-size: 0.8125rem; font-weight: 600; color: var(--dash-accent-ink); text-decoration: none; }
.dash-stat-link:hover { text-decoration: underline; }
.dash-tone-indigo .dash-stat-icon { background: #E3EBCB; color: #3A4B1E; }
.dash-tone-sky .dash-stat-icon { background: #E0F2FE; color: #075985; }
.dash-tone-amber .dash-stat-icon { background: #FEF3C7; color: #92400E; }
.dash-tone-rose .dash-stat-icon { background: #FFE4E6; color: #9F1239; }
.dash-tone-green .dash-stat-icon { background: #D1FAE5; color: #065F46; }
.dash-tone-slate .dash-stat-icon { background: #F1F5F9; color: #334155; }

/* ---------- Appointment timeline ------------------------------------------------------ */
.dash-timeline { list-style: none; margin: 0; padding: 0; }
.dash-appt { display: grid; grid-template-columns: 72px minmax(0, 1fr); grid-template-areas: "time main" "time status"; column-gap: 12px; row-gap: 6px; padding: 12px 0 12px 12px; border-top: 1px solid var(--dash-line); border-left: 4px solid var(--dash-accent); border-top-left-radius: 0; margin-top: -1px; }
.dash-appt:first-child { border-top: 0; margin-top: 0; }
.dash-appt-time { grid-area: time; font-weight: 700; font-size: 0.9375rem; font-variant-numeric: tabular-nums; color: var(--dash-ink); }
.dash-appt-day { display: block; font-weight: 600; font-size: 0.75rem; color: var(--dash-muted); margin-top: 2px; }
.dash-appt-main { grid-area: main; min-width: 0; }
.dash-appt-name { font-weight: 600; color: var(--dash-ink); text-decoration: none; overflow-wrap: anywhere; }
.dash-appt-name:hover { color: var(--dash-accent-ink); text-decoration: underline; }
.dash-appt-meta { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: 0.8125rem; color: var(--dash-muted); margin-top: 2px; }
.dash-appt-status { grid-area: status; }
.dash-appt--pending { border-left-color: #D97706; }
.dash-appt--pastdue { border-left-color: #EA580C; }
.dash-appt--completed { border-left-color: #059669; }
.dash-appt--cancelled { border-left-color: #94A3B8; }
.dash-appt--cancelled .dash-appt-name { text-decoration: line-through; }
.dash-appt--noshow { border-left-color: #B91C1C; }
@media (min-width: 576px) {
  .dash-appt { grid-template-columns: 88px minmax(0, 1fr) auto; grid-template-areas: "time main status"; align-items: center; }
}
.dash-tag { display: inline-block; margin-left: 6px; font-size: 0.6875rem; font-weight: 700; padding: 1px 8px; border-radius: 999px; background: #E2E8F0; color: #1E293B; vertical-align: middle; }

/* Status pills: colour plus a text label, all text/background pairs pass 4.5:1. */
.dash-pill { display: inline-block; font-size: 0.75rem; font-weight: 700; line-height: 1.2; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.dash-pill--scheduled { background: #E3EBCB; color: #3A4B1E; }
.dash-pill--pending { background: #FEF3C7; color: #92400E; }
.dash-pill--pastdue { background: #FFEDD5; color: #9A3412; }
.dash-pill--completed { background: #D1FAE5; color: #065F46; }
.dash-pill--cancelled { background: #F1F5F9; color: #334155; }
.dash-pill--waitlisted { background: #E0F2FE; color: #075985; }
.dash-pill--noshow { background: #FEE2E2; color: #991B1B; }

/* ---------- Empty states -------------------------------------------------------------- */
.dash-empty { text-align: center; padding: 28px 12px; }
.dash-empty--inline { padding: 12px; }
.dash-empty-icon { width: 52px; height: 52px; border-radius: 16px; display: inline-grid; place-items: center; font-size: 1.5rem; background: var(--dash-soft); color: var(--dash-accent-ink); margin-bottom: 10px; }
.dash-empty-title { font-weight: 700; font-size: 1rem; color: var(--dash-ink); }
.dash-empty-text { color: var(--dash-muted); font-size: 0.875rem; max-width: 36ch; margin: 4px auto 12px; line-height: 1.45; }
.dash-empty-actions { text-align: center; padding-bottom: 8px; }

/* ---------- Setup checklist ------------------------------------------------------------ */
.dash-setup { border-color: #CFDCAA; background: linear-gradient(180deg, #FAFCF3 0%, #FFFFFF 100%); }
.dash-progress { height: 8px; background: #E2E8F0; border-radius: 999px; overflow: hidden; margin: 4px 0 8px; }
.dash-progress > span { display: block; height: 100%; background: var(--dash-accent); border-radius: 999px; min-width: 0; }
.dash-steps { list-style: none; margin: 0; padding: 0; }
.dash-step { display: grid; grid-template-columns: 28px minmax(0, 1fr); grid-template-areas: "mark body" ". action"; column-gap: 12px; row-gap: 8px; padding: 12px 0; border-top: 1px solid var(--dash-line); align-items: start; }
.dash-step:first-child { border-top: 0; }
.dash-step-mark { grid-area: mark; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-size: 0.9rem; border: 2px solid #94A3B8; color: #475569; background: #fff; }
.dash-step.is-done .dash-step-mark { background: #059669; border-color: #059669; color: #fff; }
.dash-step-body { grid-area: body; min-width: 0; }
.dash-step > .btn { grid-area: action; justify-self: start; }
.dash-step-title { font-weight: 700; font-size: 0.9375rem; }
.dash-step.is-done .dash-step-title { color: #065F46; }
.dash-step-hint { font-size: 0.8125rem; color: var(--dash-muted); margin-top: 2px; }
.dash-link-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 4px; }
.dash-link { display: block; flex: 1 1 200px; min-width: 0; padding: 8px 10px; border-radius: 8px; background: #F1F5F9; border: 1px solid var(--dash-line); color: #1E293B; font-size: 0.8125rem; overflow-wrap: anywhere; }
@media (min-width: 768px) {
  .dash-step { grid-template-columns: 28px minmax(0, 1fr) auto; grid-template-areas: "mark body action"; align-items: center; }
  .dash-step > .btn { justify-self: end; }
}

/* ---------- Week card, bars, top services ------------------------------------------------ */
.dash-big { font-size: 2.5rem; font-weight: 800; line-height: 1.1; margin-top: 6px; font-variant-numeric: tabular-nums; }
.dash-change { display: inline-flex; align-items: center; gap: 6px; font-size: 0.875rem; font-weight: 600; margin: 4px 0 14px; padding: 4px 10px; border-radius: 999px; }
.dash-change--up { background: #D1FAE5; color: #065F46; }
.dash-change--down { background: #FFEDD5; color: #9A3412; }
.dash-change--same { background: #F1F5F9; color: #334155; }
.dash-bars { display: grid; gap: 8px; }
.dash-bar-row { display: grid; grid-template-columns: 72px minmax(0, 1fr) 28px; gap: 10px; align-items: center; font-size: 0.8125rem; }
.dash-bar-label { color: var(--dash-muted); font-weight: 600; }
.dash-bar-value { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.dash-bar { display: block; height: 10px; background: #F1F5E4; border-radius: 999px; overflow: hidden; }
.dash-bar-fill { display: block; height: 100%; background: var(--dash-accent); border-radius: 999px; }
.dash-bar-fill--muted { background: #94A3B8; }
.dash-top { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 12px; }
.dash-top-line { display: flex; justify-content: space-between; gap: 12px; font-size: 0.875rem; margin-bottom: 4px; }
.dash-top-name { font-weight: 600; overflow-wrap: anywhere; }
.dash-top-count { font-weight: 700; font-variant-numeric: tabular-nums; }

/* ---------- Quick actions --------------------------------------------------------------- */
.dash-quick { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 4px; }
.dash-quick a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 8px 10px; border-radius: 10px; color: var(--dash-ink); font-weight: 600; font-size: 0.9375rem; text-decoration: none; }
.dash-quick a:hover { background: var(--dash-soft); color: var(--dash-accent-ink); }
.dash-quick i { width: 28px; height: 28px; display: grid; place-items: center; border-radius: 8px; background: var(--dash-soft); color: var(--dash-accent-ink); }

/* ---------- Next appointment highlight (staff, customer) -------------------------------------- */
.dash-next { background: linear-gradient(135deg, #435723 0%, #556B2F 60%, #6F8A3A 100%); border-color: #435723; color: #fff; }
.dash-next .dash-card-title, .dash-next .dash-note { color: #fff; }
.dash-next--none { background: var(--dash-card); border-color: var(--dash-line); color: var(--dash-ink); }
.dash-next--none .dash-card-title { color: var(--dash-ink); }
.dash-next--none .dash-note { color: var(--dash-muted); }
.dash-next-body { display: grid; gap: 12px; margin-top: 10px; align-items: center; }
/* solid white on the indigo card (site-wide p colours would otherwise win) */
.dash .dash-next-time, .dash .dash-next-name { color: #fff; }
.dash .dash-next-in, .dash .dash-next-service { color: #E3EBCB; }
.dash-next-in { font-size: 0.8125rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: #E3EBCB; }
.dash-next-time { font-size: 1.75rem; font-weight: 800; line-height: 1.2; }
.dash-next-name { font-size: 1.125rem; font-weight: 700; overflow-wrap: anywhere; }
.dash-next-service { color: #E3EBCB; font-size: 0.9375rem; margin-top: 2px; }
.dash-next .dash-tag { background: #E3EBCB; color: #2F3D18; }
.dash-next .btn { background: #fff; border-color: #fff; color: #3A4B1E; font-weight: 700; justify-self: start; }
.dash-next .btn:hover { background: #F1F5E4; color: #2F3D18; }
.dash-next .btn:focus-visible { outline-color: #fff; }
.dash-next .dash-pill { vertical-align: middle; }
@media (min-width: 768px) { .dash-next-body { grid-template-columns: 1fr 1.4fr auto; gap: 24px; } }

/* ---------- Mobile app: the app shell supplies the greeting; keep the cards tight ------------------- */
.app-mode .dash { padding-left: 0 !important; padding-right: 0 !important; padding-top: 4px !important; }

/* =====================================================================================
   Landing page (guest home)
   ===================================================================================== */
html:not(.app-mode) body > main:has(> .sw-land) { max-width: none; padding: 0; }
.sw-land { color: var(--dash-ink); background: #fff; }
.sw-land h1, .sw-land h2, .sw-land h3, .sw-land p { margin: 0; }
.sw-wrap { width: 100%; max-width: 1120px; margin: 0 auto; padding: 0 20px; }
.sw-narrow { max-width: 820px; }
.sw-fine { font-size: 0.8125rem; color: var(--dash-muted); margin-top: 12px; }

.sw-hero { background: radial-gradient(900px 380px at 90% -10%, #E3EBCB 0%, transparent 60%), linear-gradient(180deg, #FFFFFF 0%, #F7F9EE 100%); padding: 40px 0 44px; border-bottom: 1px solid var(--dash-line); }
.sw-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 32px; align-items: center; }
.sw-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 0.8125rem; font-weight: 700; color: #3A4B1E; background: #E3EBCB; padding: 6px 14px; border-radius: 999px; }
.sw-h1 { font-size: 2.125rem; font-weight: 800; line-height: 1.1; letter-spacing: -0.025em; margin: 16px 0 14px; text-wrap: balance; }
.sw-lead { font-size: 1.0625rem; line-height: 1.6; color: #334155; max-width: 56ch; }
.sw-cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.sw-cta .btn { flex: 1 1 auto; }
.sw-cta--center { justify-content: center; }
@media (min-width: 992px) {
  .sw-hero { padding: 72px 0 72px; }
  .sw-hero-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: 56px; }
  .sw-h1 { font-size: 3.25rem; }
  .sw-lead { font-size: 1.1875rem; }
  .sw-cta .btn { flex: 0 0 auto; }
}

/* A small drawn schedule, clearly labelled as an illustration. */
.sw-hero-art { margin: 0; min-width: 0; }
.sw-mock { background: #fff; border: 1px solid var(--dash-line); border-radius: 18px; box-shadow: 0 24px 60px rgba(49, 46, 129, 0.15); padding: 16px; max-width: 460px; margin: 0 auto; }
.sw-mock-bar { display: flex; gap: 6px; margin-bottom: 12px; }
.sw-mock-bar span { width: 10px; height: 10px; border-radius: 50%; background: #CBD5E1; }
.sw-mock-title { font-weight: 700; margin-bottom: 10px; }
.sw-mock-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sw-mock-list li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; align-items: center; }
.sw-mock-time { font-size: 0.75rem; font-weight: 700; color: var(--dash-muted); }
.sw-mock-card { display: block; padding: 10px 12px; border-radius: 10px; font-size: 0.875rem; font-weight: 600; border-left: 4px solid; }
.sw-mock-card--a { background: #E3EBCB; color: #2F3D18; border-color: #556B2F; }
.sw-mock-card--b { background: #FFE4E6; color: #881337; border-color: #E11D48; }
.sw-mock-card--c { background: #D1FAE5; color: #064E3B; border-color: #059669; }
.sw-mock-card--free { background: #fff; color: #334155; border: 2px dashed #94A3B8; }
.sw-hero-art figcaption { text-align: center; }

.sw-section { padding: 48px 0; }
.sw-section--tint { background: #F8FAFC; border-top: 1px solid var(--dash-line); border-bottom: 1px solid var(--dash-line); }
.sw-head { text-align: center; max-width: 640px; margin: 0 auto 28px; }
.sw-h2 { font-size: 1.625rem; font-weight: 800; line-height: 1.2; letter-spacing: -0.02em; text-wrap: balance; }
.sw-sub { color: var(--dash-muted); font-size: 1rem; line-height: 1.55; margin-top: 8px; }
@media (min-width: 992px) { .sw-section { padding: 72px 0; } .sw-h2 { font-size: 2.125rem; } .sw-head { margin-bottom: 40px; } }

.sw-who { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; }
.sw-who li { background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-radius); padding: 18px; box-shadow: var(--dash-shadow); }
.sw-who h3 { font-size: 1.0625rem; font-weight: 700; margin: 12px 0 4px; }
.sw-who p { color: var(--dash-muted); font-size: 0.9375rem; line-height: 1.5; }
.sw-icon { width: 44px; height: 44px; border-radius: 12px; display: inline-grid; place-items: center; font-size: 1.3rem; }
.sw-icon--rose { background: #FFE4E6; color: #9F1239; }
.sw-icon--teal { background: #CCFBF1; color: #115E59; }
.sw-icon--indigo { background: #E3EBCB; color: #3A4B1E; }
.sw-icon--amber { background: #FEF3C7; color: #92400E; }
.sw-icon--sky { background: #E0F2FE; color: #075985; }
.sw-icon--slate { background: #E2E8F0; color: #1E293B; }
@media (min-width: 576px) { .sw-who { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 992px) { .sw-who { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }

.sw-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; counter-reset: none; }
.sw-steps li { background: #fff; border: 1px solid var(--dash-line); border-radius: var(--dash-radius); padding: 20px; }
.sw-step-n { width: 36px; height: 36px; border-radius: 50%; background: var(--dash-accent); color: #fff; display: inline-grid; place-items: center; font-weight: 800; }
.sw-steps h3 { font-size: 1.0625rem; font-weight: 700; margin: 12px 0 6px; }
.sw-steps p { color: var(--dash-muted); font-size: 0.9375rem; line-height: 1.55; }
@media (min-width: 768px) { .sw-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; } }

.sw-features { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.sw-features li { padding: 4px 0; }
.sw-features i { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--dash-soft); color: var(--dash-accent-ink); font-size: 1.15rem; margin-bottom: 10px; }
.sw-features h3 { font-size: 1rem; font-weight: 700; margin-bottom: 4px; }
.sw-features p { color: var(--dash-muted); font-size: 0.9375rem; line-height: 1.5; }
@media (min-width: 576px) { .sw-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; } }
@media (min-width: 992px) { .sw-features { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.sw-card { background: #fff; border: 1px solid var(--dash-line); border-radius: 20px; padding: 28px 20px; box-shadow: var(--dash-shadow); text-align: center; }
.sw-card .sw-sub { max-width: 58ch; margin: 8px auto 20px; }
@media (min-width: 768px) { .sw-card { padding: 40px; } }

.sw-faq { display: grid; gap: 10px; }
.sw-faq details { background: #fff; border: 1px solid var(--dash-line); border-radius: 12px; }
.sw-faq summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 48px; padding: 12px 16px; font-weight: 600; font-size: 1rem; color: var(--dash-ink); border-radius: 12px; }
.sw-faq summary::-webkit-details-marker { display: none; }
.sw-faq summary::after { content: "+"; flex: 0 0 auto; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--dash-soft); color: var(--dash-accent-ink); font-weight: 700; font-size: 1.1rem; line-height: 1; }
.sw-faq details[open] summary::after { content: "\2212"; }
.sw-faq summary:focus-visible { outline: 3px solid var(--dash-accent); outline-offset: 2px; }
.sw-faq details p { padding: 0 16px 16px; color: #334155; line-height: 1.6; font-size: 0.9375rem; }
.sw-faq details a { color: var(--dash-accent-ink); font-weight: 600; text-decoration: underline; }

.sw-final { background: linear-gradient(135deg, #3A4B1E 0%, #556B2F 100%); color: #fff; padding: 48px 0; text-align: center; }
.sw-final .sw-h2 { color: #fff; }
.sw-final .sw-sub { color: #E3EBCB; }
.sw-final .btn-light { color: #3A4B1E; font-weight: 700; }
.sw-final .btn-outline-light { border-color: #fff; color: #fff; font-weight: 600; }
.sw-final .btn-outline-light:hover { background: #fff; color: #3A4B1E; }
.sw-final .btn:focus-visible { outline-color: #fff; }

/* ---------- Reduced motion --------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .dash *, .sw-land * { animation: none !important; transition: none !important; }
}
