html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

/* ===== Calm theme palette ===== */
:root {
  --ssp-primary: #a9ad19; /* citrus olive */
  --ssp-accent: #3f5c59; /* deep teal-gray */
  --ssp-muted: #c3c5a7;  /* soft sage */
  --ssp-gray: #898b8d;   /* neutral gray */
  --ssp-bg: #ededed;     /* light background */
  --ssp-text: #2f3333;   /* base text */
}

/* Base */
body {
  background-color: var(--ssp-bg);
  color: var(--ssp-text);
  line-height: 1.55;
}

h1, h2, h3, h4, h5, h6 {
  color: var(--ssp-accent);
  letter-spacing: 0.2px;
}

a { color: var(--ssp-primary); }
a:hover, a:focus { color: #8f9415; }

/* Content card */
main[role="main"] {
  background: #fff;
  border-radius: 12px;
  padding: 1.25rem;
  box-shadow: 0 6px 18px rgba(63,92,89,0.08);
}

/* Navbar */
.ssp-navbar {
  background-color: var(--ssp-accent);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.ssp-navbar .navbar-brand,
.ssp-navbar .nav-link {
  color: #f7f8f7 !important;
}
.ssp-navbar .nav-link.active,
.ssp-navbar .nav-link:hover,
.ssp-navbar .navbar-brand:hover { color: var(--ssp-muted) !important; }
.ssp-navbar .navbar-toggler { border-color: rgba(255,255,255,0.35); }
.ssp-navbar .navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255,255,255,0.85)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Buttons */
.btn-primary {
  --bs-btn-bg: var(--ssp-primary);
  --bs-btn-border-color: var(--ssp-primary);
  --bs-btn-hover-bg: #8f9415;
  --bs-btn-hover-border-color: #8a8f14;
  --bs-btn-active-bg: #808511;
  --bs-btn-active-border-color: #7a7f10;
}

.btn-secondary {
  --bs-btn-bg: var(--ssp-muted);
  --bs-btn-border-color: var(--ssp-muted);
  --bs-btn-hover-bg: #b7b998;
  --bs-btn-hover-border-color: #b0b38f;
  --bs-btn-color: #2f3333;
}

.btn-outline-primary {
  --bs-btn-color: var(--ssp-accent);
  --bs-btn-border-color: var(--ssp-accent);
  --bs-btn-hover-bg: var(--ssp-accent);
  --bs-btn-hover-color: #fff;
}

/* Forms */
.form-label { color: var(--ssp-accent); }
.form-control, .form-select {
  border-color: var(--ssp-muted);
}
.form-control:focus, .form-select:focus {
  box-shadow: 0 0 0 0.2rem rgba(169,173,25,0.25);
  border-color: var(--ssp-primary);
}
.form-check-input:checked { background-color: var(--ssp-primary); border-color: var(--ssp-primary); }

/* Tables */
.table thead th {
  background-color: var(--ssp-muted);
  color: var(--ssp-accent);
  border-bottom-color: var(--ssp-gray);
}
.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: rgba(63,92,89,0.035);
}
.table > :not(caption) > * > * { border-color: rgba(63,92,89,0.15); }

/* Footer */
.footer {
  background: var(--ssp-accent);
  color: #f0f2f1;
}
.footer a { color: var(--ssp-muted); }
.footer a:hover { color: #ffffff; }

/* Focus ring override to match theme */
.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem #ffffff, 0 0 0 0.25rem var(--ssp-primary);
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}