/* Fitness Paws brand foundation: shared tokens and restrained global defaults. */
:root {
  --fp-forest-900: #123b34;
  --fp-forest-800: #115347;
  --fp-forest-700: #176b5b;
  --fp-forest-600: #23806e;
  --fp-lime-400: #b7db6e;
  --fp-coral-500: #ed765e;
  --fp-mint-100: #ddf3ed;
  --fp-sand-50: #fbf9f3;
  --fp-white: #ffffff;
  --fp-ink-900: #17231f;
  --fp-ink-600: #53645e;
  --fp-line-200: #d7e2de;
  --fp-danger-600: #b83b3b;

  --fp-radius-sm: 0.5rem;
  --fp-radius-md: 0.875rem;
  --fp-radius-lg: 1.25rem;
  --fp-radius-pill: 999px;
  --fp-shadow-card: 0 0.5rem 1.5rem rgb(18 59 52 / 0.1);
  --fp-focus-ring: 0 0 0 0.25rem rgb(183 219 110 / 0.5);

  --bs-primary: var(--fp-forest-700);
  --bs-primary-rgb: 23, 107, 91;
  --bs-link-color: var(--fp-forest-700);
  --bs-link-hover-color: var(--fp-forest-800);
  --bs-focus-ring-color: rgb(183 219 110 / 0.5);
}

body {
  color: var(--fp-ink-900);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  line-height: 1.5;
}

h1,
h2,
h3,
h4,
h5,
h6,
.navbar-brand {
  font-family: "Nunito Sans", "Arial Rounded MT Bold", "Segoe UI", sans-serif;
}

.navbar.fp-navbar,
.navbar.navbar-dark.bg-dark {
  background: var(--fp-forest-900) !important;
}

.fp-brand-mark {
  display: block;
  width: 2rem;
  height: 2rem;
  flex: 0 0 auto;
}

.navbar-brand {
  font-weight: 800;
  letter-spacing: -0.015em;
}

.fp-site-footer {
  background: var(--fp-forest-900);
}

/* Shared branded off-canvas navigation for standalone and base templates. */
.fp-more-drawer {
  border-right: 0;
}

.fp-more-header {
  border-bottom: 1px solid var(--fp-line-200);
  background: linear-gradient(135deg, var(--fp-mint-100), var(--fp-white));
}

.fp-drawer-kicker,
.fp-drawer-section-title {
  color: var(--fp-forest-700);
  font-size: 0.7rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.fp-drawer-section-title {
  padding: 0.9rem 1rem 0.35rem;
}

.fp-drawer-links {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0 0.75rem 0.75rem;
}

.fp-drawer-link,
.fp-sub-link,
.fp-drawer-footer-link {
  color: var(--fp-ink-900);
  text-decoration: none;
}

.fp-drawer-link {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 0.75rem;
  border: 1px solid var(--fp-line-200);
  border-radius: var(--fp-radius-md);
  background: var(--fp-sand-50);
  font-weight: 700;
}

.fp-drawer-link i {
  width: 1.375rem;
  color: var(--fp-forest-700);
  font-size: 1.05rem;
}

.fp-drawer-link:hover,
.fp-brand-drawer .accordion-button:not(.collapsed),
.fp-drawer-accordion .accordion-button:not(.collapsed) {
  color: var(--fp-forest-700);
  background: var(--fp-mint-100);
}

.fp-brand-drawer,
.fp-drawer-accordion {
  border-top: 1px solid var(--fp-line-200);
}

.fp-brand-drawer .accordion-button,
.fp-drawer-accordion .accordion-button {
  padding: 0.9rem 1rem;
  color: var(--fp-ink-900);
  background: var(--fp-white);
  box-shadow: none;
  font-weight: 800;
}

.fp-brand-drawer .accordion-body,
.fp-drawer-accordion .accordion-body {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.25rem 0.95rem 0.85rem 2.75rem;
}

.fp-sub-link {
  display: block;
  padding: 0.35rem 0;
  font-weight: 650;
}

.fp-sub-link:hover {
  color: var(--fp-forest-700);
}

.fp-sub-muted {
  color: var(--fp-ink-600);
  font-size: 0.9rem;
}

.fp-drawer-footer {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  margin-top: 0.5rem;
  padding: 0.85rem 1rem 1rem;
  border-top: 1px solid var(--fp-line-200);
}

.fp-drawer-footer-link {
  font-size: 0.92rem;
  font-weight: 750;
}

[data-bs-theme="dark"] .fp-more-header,
[data-bs-theme="dark"] .fp-brand-drawer .accordion-button,
[data-bs-theme="dark"] .fp-drawer-link {
  color: #e5f2ee;
  border-color: #315149;
  background: #173f37;
}

[data-bs-theme="dark"] .fp-brand-drawer .accordion-button:not(.collapsed),
[data-bs-theme="dark"] .fp-drawer-link:hover {
  color: #a1e5d7;
  background: #205348;
}

[data-bs-theme="dark"] .fp-sub-link,
[data-bs-theme="dark"] .fp-drawer-footer-link {
  color: #e5f2ee;
}

[data-bs-theme="dark"] .fp-brand-drawer,
[data-bs-theme="dark"] .fp-drawer-footer {
  border-color: #315149;
}

/* Standalone feature pages do not inherit a shared application shell. */
.fp-swipe-page,
.fp-tracker-page {
  background: var(--fp-sand-50);
}

.fp-swipe-page .stage {
  background:
    radial-gradient(circle at 50% 0%, var(--fp-mint-100) 0, transparent 24rem),
    var(--fp-sand-50);
}

.fp-swipe-page .fp-card,
.fp-tracker-page .tracker-card {
  border-color: var(--fp-line-200);
  box-shadow: var(--fp-shadow-card);
}

.fp-tracker-page .tracker-shell {
  position: relative;
}

.fp-tracker-page .tracker-hero {
  border-color: var(--fp-line-200);
  background: linear-gradient(180deg, var(--fp-white), var(--fp-mint-100));
}

.fp-tracker-page .tracker-title,
.fp-tracker-page .metric-value,
.fp-tracker-page .completion-title,
.fp-tracker-page .completion-stat-value {
  color: var(--fp-ink-900);
}

.fp-tracker-page .tracker-subtitle,
.fp-tracker-page .metric-label,
.fp-tracker-page .completion-subtitle,
.fp-tracker-page .completion-note,
.fp-tracker-page .completion-stat-label {
  color: var(--fp-ink-600);
}

.fp-tracker-page .metric-pill,
.fp-tracker-page #output,
.fp-tracker-page .completion-stat {
  border-color: var(--fp-line-200);
  background: var(--fp-sand-50);
}

.fp-tracker-page .completion-glow {
  background: radial-gradient(circle, rgb(183 219 110 / 0.3), transparent 65%);
}

.fp-tracker-page .completion-badge {
  color: var(--fp-forest-700);
  border-color: #b9ddd3;
  background: linear-gradient(135deg, var(--fp-mint-100), var(--fp-white));
  box-shadow: 0 0.625rem 1.875rem rgb(23 107 91 / 0.15);
}

.page-view-activity {
  background:
    radial-gradient(circle at 50% 0%, var(--fp-mint-100) 0, transparent 28rem),
    var(--fp-sand-50) !important;
}

.page-view-activity .cardish,
.page-view-activity .fp-activity-view-card,
.page-view-activity .fp-edit-shell {
  border-color: var(--fp-line-200);
  box-shadow: var(--fp-shadow-card);
}

.page-view-activity .fp-owner-command-card,
.page-view-activity .fp-edit-shell {
  background: linear-gradient(135deg, var(--fp-white), var(--fp-mint-100));
}

.page-view-activity .fp-owner-kicker,
.page-view-activity .fp-kebab-btn:hover,
.page-view-activity .fp-kebab-btn:focus,
.page-view-activity .fp-owner-menu .dropdown-item:hover {
  color: var(--fp-forest-700);
}

.page-view-activity .fp-kebab-btn:hover,
.page-view-activity .fp-kebab-btn:focus,
.page-view-activity .fp-owner-menu .dropdown-item:hover {
  background: var(--fp-mint-100);
  border-color: #b9ddd3;
}

.fp-swipe-page .fp-drawer-kicker,
.fp-swipe-page .fp-drawer-link i {
  color: var(--fp-forest-700);
}

.fp-swipe-page .fp-drawer-link:hover,
.fp-swipe-page .fp-drawer-accordion .accordion-button:not(.collapsed) {
  color: var(--fp-forest-700);
  background: var(--fp-mint-100);
}

.fp-swipe-page .fp-appearance-option.active {
  border-color: var(--fp-forest-700);
  box-shadow: 0 0 0 0.2rem rgb(23 107 91 / 0.15);
}

.btn-primary {
  --bs-btn-bg: var(--fp-forest-700);
  --bs-btn-border-color: var(--fp-forest-700);
  --bs-btn-hover-bg: var(--fp-forest-800);
  --bs-btn-hover-border-color: var(--fp-forest-800);
  --bs-btn-active-bg: var(--fp-forest-900);
  --bs-btn-active-border-color: var(--fp-forest-900);
  --bs-btn-disabled-bg: var(--fp-forest-700);
  --bs-btn-disabled-border-color: var(--fp-forest-700);
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid var(--fp-forest-900);
  outline-offset: 2px;
  box-shadow: var(--fp-focus-ring);
}

::selection {
  color: var(--fp-forest-900);
  background: var(--fp-lime-400);
}

[data-bs-theme="dark"] {
  --bs-primary: #67c9b5;
  --bs-primary-rgb: 103, 201, 181;
  --bs-link-color: #75d6c2;
  --bs-link-hover-color: #a1e5d7;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
