/*
 * Jab Repas Santé — brand theme.
 * Loaded AFTER Bootstrap 5.3; overrides Bootstrap CSS custom properties to the
 * UI-SPEC token values. This is the single file that owns the brand look.
 * Self-hosted only — NO foreign CDN / Google Fonts (FOUND-03 / Law 25).
 */

:root {
  /* Brand palette (UI-SPEC Color) */
  --jab-accent: #2e7d32;            /* Vert Jab — accent / primary */
  --jab-accent-hover: #256528;      /* darker accent for hover/pressed/focus */
  --jab-destructive: #c62828;       /* destructive actions only */
  --jab-destructive-hover: #a21b1b;
  --jab-canvas: #f7f9f4;            /* app canvas background */
  --jab-surface: #edf2e6;           /* cards, header, footer surfaces */
  --jab-ink: #1f2a1c;               /* body text ink */
  --jab-muted: #5a6553;             /* helper / footer / placeholder text */

  /* Map onto Bootstrap 5.3 CSS variables */
  --bs-primary: var(--jab-accent);
  --bs-primary-rgb: 46, 125, 50;
  --bs-danger: var(--jab-destructive);
  --bs-danger-rgb: 198, 40, 40;
  --bs-link-color: var(--jab-accent);
  --bs-link-color-rgb: 46, 125, 50;
  --bs-link-hover-color: var(--jab-accent-hover);
  --bs-body-color: var(--jab-ink);
  --bs-body-color-rgb: 31, 42, 28;
  --bs-body-bg: var(--jab-canvas);
  --bs-secondary-color: var(--jab-muted);

  /* System font stack (Bootstrap default; no foreign font CDN) */
  --bs-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
}

body {
  background-color: var(--jab-canvas);
  color: var(--jab-ink);
}

/* Header / footer surfaces */
.jab-header,
.jab-footer {
  background-color: var(--jab-surface);
}

/* Brand wordmark — display size, accent colour (UI-SPEC Typography Display 28px/600) */
.jab-brand {
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--jab-accent);
}
.jab-brand:hover {
  color: var(--jab-accent-hover);
}

/* Footer text: label size (14px/600), muted */
.jab-footer,
.jab-footer a {
  font-size: 0.875rem;
}
.jab-footer {
  color: var(--jab-muted);
}

/* Primary accent button */
.btn-primary {
  --bs-btn-bg: var(--jab-accent);
  --bs-btn-border-color: var(--jab-accent);
  --bs-btn-hover-bg: var(--jab-accent-hover);
  --bs-btn-hover-border-color: var(--jab-accent-hover);
  --bs-btn-active-bg: var(--jab-accent-hover);
  --bs-btn-active-border-color: var(--jab-accent-hover);
}

/* Destructive button (delete flow only) */
.btn-danger {
  --bs-btn-bg: var(--jab-destructive);
  --bs-btn-border-color: var(--jab-destructive);
  --bs-btn-hover-bg: var(--jab-destructive-hover);
  --bs-btn-hover-border-color: var(--jab-destructive-hover);
}

/* Visible accent focus ring on every interactive element (never removed) */
a:focus-visible,
button:focus-visible,
.btn:focus-visible,
.form-control:focus,
.form-check-input:focus {
  outline: 2px solid var(--jab-accent);
  outline-offset: 2px;
  box-shadow: none;
}

/* Accessibility: minimum 44px tap targets, 48px form controls (UI-SPEC Spacing) */
.btn,
.nav-link {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
}
.form-control,
.form-select {
  min-height: 48px;
}
.form-check-input {
  min-width: 1.25rem;
  min-height: 1.25rem;
}
