:root{
  --activity:#4f8a68;
  --activity-soft:#e8f3ec;
  --meal:#c86645;
  --meal-soft:#fbeee8;
  --water:#3f86a8;
  --water-soft:#e6f3f8;
  --sleep:#7764a4;
  --sleep-soft:#f0ecf8;
  --energy:#b98524;
  --energy-soft:#fbf3dd;
}
body{padding-bottom:calc(104px + env(safe-area-inset-bottom));background:linear-gradient(180deg,#f7f5ef 0,#f4f7f4 100%)}
.topbar{box-shadow:0 3px 18px #16342f26}.brand::before{content:'🌿';margin-right:8px}
.bottom-nav{position:fixed;z-index:30;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,780px);min-height:84px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);gap:4px;background:#fff;border:1px solid #d8e2dc;border-bottom:0;border-radius:22px 22px 0 0;box-shadow:0 -10px 35px #16342f1f}
.bottom-nav .nav-item{min-width:0;margin:0;padding:7px 3px 6px;border:0;border-radius:14px;background:transparent;color:var(--muted);text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-weight:750;transition:background .18s,color .18s,transform .18s}
.bottom-nav .nav-item span{font-size:1.35rem;line-height:1}.bottom-nav .nav-item small{font-size:.68rem;white-space:nowrap}.bottom-nav .nav-item.active{background:#e9f2ed;color:var(--ink);box-shadow:inset 0 0 0 1px #cfe1d7}.bottom-nav .nav-item:active{transform:scale(.96)}
.card,.metric,.form-card{transition:transform .15s,box-shadow .15s}.metric:nth-child(1){background:var(--activity-soft);border-color:#cce3d4}.metric:nth-child(2){background:var(--energy-soft);border-color:#ead8a9}.metric:nth-child(3){background:var(--water-soft);border-color:#c6e1eb}.metric:nth-child(4){background:var(--sleep-soft);border-color:#dcd2ed}
.today-entries{display:flex;flex-wrap:wrap;gap:8px;margin:-3px 0 15px}.entry-chip{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);font-size:.78rem;text-decoration:none}.entry-chip:hover{border-color:var(--green)}
.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 16px}.calendar-head h1{font-size:1.45rem;margin:0;text-align:center}.month-arrow{width:44px;height:44px;margin:0;padding:0;display:grid;place-items:center;border-radius:14px;background:#fff;color:var(--ink);border:1px solid var(--line);text-decoration:none;font-size:1.25rem}.month-arrow.disabled{opacity:.25;pointer-events:none}
.calendar-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:12px 8px;box-shadow:var(--shadow)}.calendar-weekdays,.calendar-week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays span{text-align:center;color:var(--muted);font-size:.69rem;font-weight:800;padding:5px 0}.calendar-day{position:relative;aspect-ratio:1;min-width:0;border-radius:13px;display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;font-weight:800;border:1px solid transparent}.calendar-day.outside{visibility:hidden}.calendar-day.empty{background:#f2f4f2;color:#7d8a85}.calendar-day.partial{background:var(--energy-soft);border-color:#e5cc91}.calendar-day.complete{background:var(--activity-soft);border-color:#bcd9c7;color:#24563c}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--accent)}.calendar-day .dots{position:absolute;bottom:5px;display:flex;gap:2px}.calendar-day .dots i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.7}.calendar-legend{display:flex;flex-wrap:wrap;gap:10px;margin:14px 2px 0;color:var(--muted);font-size:.75rem}.legend-dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:4px}.legend-dot.complete{background:#8ec3a2}.legend-dot.partial{background:#dfbd65}.legend-dot.empty{background:#d6dcD8}
.calendar-day.future{background:#fafbf9;color:#bcc5c1;font-weight:650}
.day-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.day-title .button{width:auto}.day-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.summary-pill{padding:10px 8px;border-radius:14px;text-align:center;background:#fff;border:1px solid var(--line)}.summary-pill strong{display:block;font-size:1.1rem}.summary-pill small{color:var(--muted)}
.entry-card{border-radius:18px;padding:16px;margin:12px 0;border:1px solid var(--line);background:#fff}.entry-card.daily{background:var(--sleep-soft);border-color:#d9d0e9}.entry-card.activity{background:var(--activity-soft);border-color:#c6dfcf}.entry-card.meal{background:var(--meal-soft);border-color:#efd1c4}.entry-card.weight{background:var(--energy-soft);border-color:#ead7a2}.entry-card summary{cursor:pointer;font-weight:850;display:flex;align-items:center;justify-content:space-between;gap:10px}.entry-card summary::marker{color:var(--accent)}.entry-card form{margin-top:16px}.section-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-actions h2{margin:0}.soft-button{width:auto;background:#fff;color:var(--ink);border:1px solid var(--line);padding:9px 12px}
.progress-switch{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 18px}.progress-switch a{padding:11px 6px;border-radius:13px;background:#fff;border:1px solid var(--line);text-align:center;color:var(--ink);text-decoration:none;font-weight:800;font-size:.82rem}.progress-switch a.active{background:var(--ink);color:#fff;border-color:var(--ink)}.duo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.duo-card{position:relative;overflow:hidden}.duo-card:first-child{border-top:5px solid var(--activity)}.duo-card:nth-child(2){border-top:5px solid var(--sleep)}.duo-stat{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}.duo-stat span{color:var(--muted)}
@media(max-width:520px){.container{padding:18px 13px}.bottom-nav{border-radius:18px 18px 0 0}.bottom-nav .nav-item small{font-size:.62rem}.calendar-card{padding:10px 5px}.calendar-weekdays,.calendar-week{gap:3px}.calendar-day{border-radius:11px}.duo-grid{grid-template-columns:1fr}.day-summary{grid-template-columns:1fr 1fr}.page-head{align-items:flex-start}.page-head .button{font-size:.76rem;padding:10px}.metric strong,.big-value{font-size:1.55rem}}
