/* Public site and client account. --brand is set from Settings in site_start(). */
body.site { background: #fff; color: #1f2937; }
.text-brand { color: var(--brand) !important; }
.btn-brand { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn-brand:hover, .btn-brand:focus { filter: brightness(0.9); color: #fff; background: var(--brand); border-color: var(--brand); }
.btn-outline-brand { border: 1px solid var(--brand); color: var(--brand); }
.btn-outline-brand:hover { background: var(--brand); color: #fff; }
.site a:not(.btn) { color: var(--brand); }
.site-header { border-bottom: 1px solid #e5e7eb; background: #fff; }
.site-header .navbar-brand { font-weight: 700; color: var(--brand); }
.site-header .nav-link { color: #374151; }
.hero { background: linear-gradient(180deg, color-mix(in srgb, var(--brand) 10%, #fff), #fff); padding: 4rem 0 3rem; }
.hero h1 { font-weight: 800; letter-spacing: -.02em; }
.prog-card { border: 1px solid #e5e7eb; border-radius: .75rem; }
.prog-card .card-img-top { aspect-ratio: 16 / 9; object-fit: cover; }
.site-footer { background: #111827; color: #d1d5db; padding: 2.5rem 0; margin-top: 4rem; }
.site-footer a { color: #fff; }
.post-body img { max-width: 100%; height: auto; }
.post-body h2 { margin-top: 1.5rem; }
.wa-btn { position: fixed; right: 1rem; bottom: 1rem; width: 52px; height: 52px; border-radius: 50%; background: #25D366; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.6rem; box-shadow: 0 4px 12px rgba(0,0,0,.2); }
.wa-btn:hover { color: #fff; }
.meal-table td, .meal-table th { vertical-align: middle; }
.meal-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.meal-row th { background: #f8f9fa; font-weight: 600; }
.day-total td { font-weight: 700; border-top: 2px solid #dee2e6; }
.plan-sheet h2 { font-size: 1.15rem; margin-top: 1.5rem; }
@media print { .site-header, .site-footer, .wa-btn, .no-print, form { display: none !important; } }
