:root {
  --forest: #6a9156;
  --forest-dark: #48633b;
  --sage: #bdeba9;
  --cream: #f8f6ee;
  --ink: #26352d;
}

body {
  min-height: 100vh;
  background: var(--cream);
  color: var(--ink);
  font-family: 'Lora', Georgia;
}

.navbar, .footer { background: var(--forest); }
.navbar-brand { color: #fff !important; }
.navbar .nav-link { color: rgba(255, 255, 255, .8); }
.navbar .nav-link:hover, .navbar .nav-link.active { color: #fff; }
.hero-panel { background: var(--sage); border-radius: 1.5rem; }
#welcome-heading { color: var(--forest-dark); }
.quote-card { background: var(--forest); border: 1px solid var(--forest-dark); border-radius: 1.25rem; color: #f8f7f2; }
.celebrations-card { background: var(--forest); border: 1px solid var(--forest-dark); border-radius: 1.25rem; color: #f8f7f2; }
.celebrations-card .text-uppercase { color: var(--sage); }
.celebrations-description { color: #e2e8dd; }
.quote-card .quote-heading { color: #f8f7f2; }
.quote-card .quote-attribution { color: #e2e8dd; }
.quote-accent { border-color: var(--sage) !important; }
.quote-mark { color: var(--sage); font-family: Georgia, serif; font-size: 3rem; line-height: 1; }
.login-card { border: 1px solid #e5e4db; border-radius: 1.25rem; }
.notification-item { background: #f8f6ee; border: 1px solid #e5e4db; }
.reward-intro { background: var(--sage); border-radius: 1.25rem; }
.reward-intro .text-uppercase { color: var(--forest-dark); }
.reward-item { background: #f8f6ee; border: 1px solid #e5e4db; }
.reward-unlocked { background: #f3f8ef; border-color: #cfdfc4; }
.btn-forest { background: var(--forest); border-color: var(--forest); color: white; }
.btn-forest:hover, .btn-forest:focus { background: var(--forest-dark); border-color: var(--forest-dark); color: white; }
.btn-outline-success:hover, .btn-outline-success:focus { background: var(--forest-dark); border-color: var(--forest-dark); color: #fff; }
.text-forest { color: var(--forest) !important; }
.border-forest { border-color: var(--forest) !important; }
.form-control:focus { border-color: #8fc66d; box-shadow: 0 0 0 .25rem rgba(143, 198, 109, .25); }
.form-select:focus { border-color: #8fc66d; box-shadow: 0 0 0 .25rem rgba(143, 198, 109, .25); }

@media (min-width: 992px) {
  .tracker-page { padding-top: 3rem !important; padding-bottom: .75rem !important; }
  .tracker-intro { margin-bottom: .75rem !important; }
  .tracker-intro p { font-size: 1rem !important; }
  .tracker-layout { --bs-gutter-y: .75rem; }
  .tracker-page .login-card .card-body,
  .tracker-page .hero-panel .card-body { padding: 1rem !important; }
  .tracker-page .login-card h2 { margin-bottom: .75rem !important; }
  .tracker-page .login-card form > div { margin-bottom: .5rem !important; }
  .tracker-page .login-card form > div:nth-last-child(2) { margin-bottom: .75rem !important; }
  .tracker-page .login-card .form-control-lg,
  .tracker-page .login-card .form-select-lg,
  .tracker-form-control {
    min-height: 2.5rem;
    padding-top: .375rem;
    padding-bottom: .375rem;
    font-size: 1rem;
  }
  .tracker-page .login-card .btn-lg { padding: .5rem 1rem; font-size: 1rem; }
  .tracker-page .hero-panel h2 { margin-bottom: .5rem !important; }
  .tracker-page .hero-panel .list-group-item { padding-top: .5rem; padding-bottom: .5rem; }
  .tracker-page .col-lg-5 { gap: .75rem !important; }
}

.goal-panel { border: 1px solid #e5e4db; border-radius: 1.25rem; }
.goals-table { --bs-table-bg: transparent; }
.book-shelf {
  display: flex;
  align-items: flex-end;
  gap: 0;
  width: 136px;
  padding: 0 5px;
  border-bottom: 5px solid #8b6845;
}
.shelf-book {
  display: block;
  width: 13px;
  height: 25px;
  flex: 0 0 auto;
  border: 1px solid #c8c4b4;
  border-radius: 3px 3px 1px 1px;
  background: #eeece3;
}
.shelf-book:nth-child(6n + 1) { background: #a991e5; }
.shelf-book:nth-child(6n + 2) { background: #90d273; }
.shelf-book:nth-child(6n + 3) { background: #e44c63; }
.shelf-book:nth-child(6n + 4) { background: #fecd72; }
.shelf-book:nth-child(6n + 5) { background: #70b4d7; }
.shelf-book:nth-child(6n) { background: #ff8c9b; }
.shelf-book:nth-child(6n + 1) { width: 10px; }
.shelf-book:nth-child(6n + 2) { width: 14px; }
.shelf-book:nth-child(6n + 3) { width: 12px; }
.shelf-book:nth-child(6n) { width: 15px; }
.shelf-book {
  border-color: rgba(38, 53, 45, .28);
}
.shelf-book:nth-child(5n + 1) { height: 30px; }
.shelf-book:nth-child(5n + 2) { height: 23px; }
.shelf-book:nth-child(5n + 3) { height: 21px; }
.shelf-book:nth-child(5n + 4) { height: 27px; }
.shelf-book:nth-child(5n) { height: 25px; }
