:root {
  --ink: #1E2A24;
  --green: #2F6E3D;
  --soft: #F3F5F1;
  --bs-body-color: #1E2A24;
  --bs-link-color: #2F6E3D;
  --bs-link-color-rgb: 47, 110, 61;
  --bs-link-hover-color: #1E4A28;
}

body {
  background: var(--soft);
  -webkit-tap-highlight-color: transparent;
}

.bg-ink { background: var(--ink) !important; }
.text-green { color: var(--green) !important; }

.app-main {
  padding-top: 1rem;
  padding-bottom: calc(84px + env(safe-area-inset-bottom));
  max-width: 720px;
}

.card {
  border: 0;
  border-radius: 14px;
  box-shadow: 0 1px 2px rgba(30, 42, 36, .06);
}
.card-title { font-weight: 700; }

.btn-primary {
  --bs-btn-bg: #2F6E3D; --bs-btn-border-color: #2F6E3D;
  --bs-btn-hover-bg: #275C33; --bs-btn-hover-border-color: #275C33;
  --bs-btn-active-bg: #1E4A28; --bs-btn-active-border-color: #1E4A28;
  --bs-btn-disabled-bg: #2F6E3D; --bs-btn-disabled-border-color: #2F6E3D;
}
.btn-outline-primary {
  --bs-btn-color: #2F6E3D; --bs-btn-border-color: #2F6E3D;
  --bs-btn-hover-bg: #2F6E3D; --bs-btn-hover-border-color: #2F6E3D;
  --bs-btn-active-bg: #1E4A28; --bs-btn-active-border-color: #1E4A28;
}
.progress-bar { background-color: #2F6E3D; }
.progress-bar.over { background-color: #B0432E; }

.form-control, .form-select, .btn { min-height: 44px; }
.btn-sm { min-height: 36px; }
.btn-icon { min-width: 40px; }

.big-number {
  font-size: 2.6rem;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -0.02em;
}
.stat-label {
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #5A6660;
  font-weight: 600;
}
.stat-value { font-size: 1.25rem; font-weight: 700; }

.dot {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  flex: none;
  margin-top: .4em;
  box-sizing: border-box;
}
.plan-item { display: flex; gap: .55rem; align-items: flex-start; line-height: 1.35; }
.plan-item + .plan-item { margin-top: .3rem; }

.meal-head {
  display: flex; justify-content: space-between; align-items: center;
  font-weight: 700;
}
.list-group-item { border-color: #E3E7E1; }
.log-row { display: flex; justify-content: space-between; gap: .75rem; align-items: center; }
.log-row .meta { font-size: .8rem; color: #5A6660; }

.day-chip {
  background: var(--ink); color: #fff;
  border-radius: 10px;
  padding: .25rem .6rem;
  font-weight: 700;
  font-size: .85rem;
}

.chart-box { position: relative; height: 260px; }
.chart-box.small { height: 160px; }

.bottom-nav {
  position: fixed; left: 0; right: 0; bottom: 0;
  display: flex; justify-content: space-around;
  background: #fff;
  border-top: 1px solid #DDE2DB;
  padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  z-index: 1030;
}
.bottom-nav a {
  flex: 1;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  text-decoration: none;
  color: #5A6660;
  font-size: .72rem;
  min-height: 44px;
  justify-content: center;
}
.bottom-nav a i { font-size: 1.3rem; }
.bottom-nav a.active { color: var(--green); font-weight: 700; }

.table-sm td, .table-sm th { vertical-align: middle; }
