/* BUFF OS v70 — weigh-in gate, load curves, repeat meals, running trend.
   Everything here borrows the app's own card, chip and stat shapes; nothing
   introduces a new visual language. */
.v70-card { margin-bottom: 14px; }
.v70-lead { font-size: 13px; line-height: 1.55; color: var(--txt2, var(--txt)); margin: -2px 0 10px; }
.v70-lead b { font-weight: 800; }
.v70-hint2 { margin-top: 10px; font-size: 11.5px; line-height: 1.45; font-weight: 600; color: var(--txt3); }

/* ---- 1. weight ---- */
.v70-wcard { border: 1px solid rgba(var(--accent-rgb), .28); }
.v70-wgoals { font-size: 12.5px; font-weight: 600; color: var(--txt3); margin-bottom: 12px;
  padding: 8px 11px; border-radius: 11px; background: rgba(255, 255, 255, .04); }
.v70-wgoals b { color: var(--txt); font-weight: 800; }
.v70-wunset { color: var(--txt3); }
.v70-wrow { display: flex; align-items: center; gap: 8px; }
.v70-wrow input { flex: 1 1 auto; min-width: 0; height: 46px; border-radius: 13px; padding: 0 14px;
  font-size: 17px; font-weight: 700; font-family: inherit; color: var(--txt);
  background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .09); }
.v70-wrow input:focus { outline: none; border-color: rgba(var(--accent-rgb), .5); }
.v70-unit { font-size: 13px; font-weight: 800; color: var(--txt3); }
/* .btn is width:100% in the app's own sheet, which squeezed the input to a sliver
   and pushed the button out past the card. Pin both explicitly. */
.v70-wrow .btn { flex: 0 0 auto; width: auto; min-width: 104px; padding: 0 20px; height: 46px; }
.v70-wrow input { flex: 1 1 auto; width: auto; }

/* ---- 2. load curve ---- */
.v70-progwrap { margin-top: 14px; }
.v70-prog { padding: 13px 14px; border-radius: 16px; background: rgba(255, 255, 255, .035);
  border: 1px solid rgba(255, 255, 255, .06); }
.v70-prog-h { display: flex; align-items: baseline; justify-content: space-between; gap: 10px;
  font-size: 13px; font-weight: 800; margin-bottom: 8px; }
.v70-prog-h span { font-size: 11px; font-weight: 700; color: var(--txt3); }
.v70-spark { display: block; width: 100%; height: 76px; margin: 4px 0 10px; overflow: visible; }
.v70-spark .v70-line { fill: none; stroke: var(--accent, #f0c567); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.v70-spark .v70-area { fill: rgba(var(--accent-rgb), .13); stroke: none; }
.v70-spark circle { fill: var(--accent, #f0c567); }
.v70-prog-row { display: flex; gap: 8px; }
.v70-prog-row > div { flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px;
  padding: 8px 10px; border-radius: 12px; background: rgba(255, 255, 255, .04); }
.v70-prog-row b { font-size: 15px; font-weight: 800; font-variant-numeric: tabular-nums; }
.v70-prog-row small { font-size: 10px; font-weight: 700; color: var(--txt3); letter-spacing: .01em; }
.v70-prog-f { margin-top: 9px; font-size: 12px; font-weight: 700; color: var(--txt3); }
.v70-up { color: #4ddb9a; font-weight: 800; }
.v70-dn { color: #ff8a6b; font-weight: 800; }

/* ---- 3. meals ---- */
.v70-rep { width: 100%; margin-bottom: 10px; }
.v70-chips { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.v70-chip { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; min-height: 52px;
  padding: 9px 11px; border-radius: 13px; text-align: left; cursor: pointer; font-family: inherit;
  color: var(--txt); background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .07);
  transition: transform .12s ease; }
.v70-chip:active { transform: scale(.97); }
.v70-chip b { font-size: 12.5px; font-weight: 700; line-height: 1.25;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.v70-chip small { font-size: 10.5px; font-weight: 700; color: var(--txt3); }

/* ---- 4. running ---- */
.v70-run .v70-spark { height: 64px; }
.v70-runtrend { font-size: 12.5px; line-height: 1.5; font-weight: 600; color: var(--txt3); margin: 2px 0 11px; }
.v70-runtrend b { color: var(--txt); font-weight: 800; }
