:root{--bg:#201821;--panel:#2c222e;--panel-2:#37293a;--ink:#fff8f4;--muted:#ad9a94;--rose:#d6adad;--rose-deep:#b18f7f;--sand:#dfcabb;--taupe:#ad9a94;--plum:#5f4e6d;--line:rgba(255,255,255,.09);--green:#9eb59d;--danger:#d6a2a7;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 100% 0,#49354b 0,transparent 36%),var(--bg);color:var(--ink);min-height:100vh}.shell{max-width:640px;margin:auto;padding:max(22px,env(safe-area-inset-top)) 18px calc(100px + env(safe-area-inset-bottom))}.topbar{display:flex;justify-content:space-between;align-items:center;margin:4px 2px 24px}.eyebrow{margin:0 0 5px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.topbar h1{font-size:26px;line-height:1.1;margin:0;letter-spacing:-.04em}.cycle-pill{background:rgba(214,173,173,.12);border:1px solid rgba(214,173,173,.25);border-radius:50px;padding:9px 12px;font-size:12px;color:var(--sand);white-space:nowrap}.cycle-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--rose);margin-right:6px}.tabs{display:grid;grid-template-columns:1fr 1fr;background:#19131b;padding:4px;border-radius:15px;margin-bottom:16px}.tab{border:0;border-radius:11px;background:transparent;color:var(--muted);padding:11px;font:inherit;font-size:13px;font-weight:700}.tab.active{background:var(--panel-2);color:var(--ink);box-shadow:0 4px 15px rgba(0,0,0,.18)}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.metric-card,.small-card,.chart-card,.wellbeing-card,.insight,.yoga-card{border:1px solid var(--line);box-shadow:0 12px 35px rgba(0,0,0,.14)}.metric-card{border-radius:22px;padding:17px;min-width:0;overflow:hidden}.metric-card.rose{background:linear-gradient(145deg,#5d414f,#372936)}.metric-card.plum{background:linear-gradient(145deg,#51415d,#312638)}.metric-head{display:flex;justify-content:space-between;color:var(--sand);font-size:12px;font-weight:650}.metric-card strong{display:block;font-size:31px;letter-spacing:-.05em;margin:17px 0 15px}.metric-card strong small{font-size:14px}.metric-card p{color:var(--muted);font-size:11px;margin:9px 0 0}.progress{height:6px;background:rgba(0,0,0,.24);border-radius:20px;overflow:hidden}.progress i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--rose-deep),var(--rose));transition:width .6s ease}.small-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0 26px}.small-card{background:var(--panel);border-radius:18px;padding:14px 12px}.small-card .icon{color:var(--rose);font-size:18px}.small-card p{color:var(--muted);font-size:11px;margin:12px 0 5px}.small-card strong{display:block;font-size:18px;letter-spacing:-.03em}.small-card small{display:block;color:var(--muted);font-size:9px;margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.section-title,.chart-title{display:flex;justify-content:space-between;align-items:end}.section-title{padding:0 3px 10px}.section-title h2,.chart-title h2,.wellbeing-card h2{margin:0;font-size:19px;letter-spacing:-.03em}.section-title>span{color:var(--rose);font-size:19px}.insight{display:flex;gap:12px;background:linear-gradient(120deg,var(--panel),#332735);border-radius:18px;padding:15px;margin-bottom:8px}.insight .signal{width:8px;min-width:8px;height:8px;border-radius:50%;background:var(--taupe);margin-top:5px}.insight.positive .signal{background:var(--green)}.insight.attention .signal{background:var(--danger)}.insight p{margin:0;font-size:13px;line-height:1.45;color:#eadfda}.empty-insight{color:var(--muted);font-size:13px;padding:3px}.wellbeing-card{background:linear-gradient(135deg,#4b3948,#302531);border-radius:22px;padding:18px;margin-top:22px}.wellbeing-card>div:first-child{display:flex;justify-content:space-between;align-items:baseline}.wellbeing-card p{font-size:11px;color:var(--muted);margin:0}.moods{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin-top:15px}.moods button{appearance:none;background:rgba(255,255,255,.06);border:1px solid transparent;border-radius:14px;font-size:21px;padding:10px 2px;filter:grayscale(.35);transition:.15s}.moods button.selected{background:rgba(214,173,173,.18);border-color:var(--rose);filter:none;transform:translateY(-2px)}.note{font-size:12px;line-height:1.55;color:var(--sand);padding:14px 4px;margin:5px 0}.chart-card{background:var(--panel);border-radius:22px;padding:18px;margin-bottom:10px}.chart-title strong{font-size:14px;color:var(--rose)}.chart-title small{color:var(--muted)}.line-chart,.bar-chart{height:145px;margin-top:22px;display:flex;align-items:end;gap:5px;position:relative;border-bottom:1px solid var(--line)}.line-chart svg{width:100%;height:100%;overflow:visible}.line-chart circle{fill:var(--rose)}.line-chart polyline{fill:none;stroke:var(--rose);stroke-width:2.5;vector-effect:non-scaling-stroke}.bar-chart .day{height:100%;flex:1;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:7px}.bar{width:62%;min-height:3px;background:linear-gradient(180deg,var(--rose),#765667);border-radius:5px 5px 2px 2px}.day label{font-size:9px;color:var(--muted)}.double .bars{height:100%;width:100%;display:flex;align-items:end;justify-content:center;gap:2px}.double .bar{width:28%}.double .bar.alt{background:linear-gradient(180deg,var(--sand),#7e685f)}.legend{display:flex;gap:15px;color:var(--muted);font-size:10px;margin-top:12px}.legend i{display:inline-block;width:7px;height:7px;border-radius:2px;margin-right:5px}.rose-key{background:var(--rose)}.sand-key{background:var(--sand)}.yoga-card{display:flex;justify-content:space-between;align-items:center;background:#382a39;border-radius:18px;padding:17px;color:var(--sand)}.yoga-card strong{font-size:21px}.state{text-align:center;color:var(--muted);padding:80px 10px}.state#error{color:var(--danger)}.hidden{display:none!important}@media(max-width:370px){.shell{padding-left:12px;padding-right:12px}.metric-card{padding:14px}.metric-card strong{font-size:27px}.small-card{padding:12px 9px}}


/* ── Блок ручных правок ─────────────────────────────────────────── */
.edit-card {
  margin-top: 16px;
  padding: 16px;
  border-radius: 18px;
  background: var(--card, rgba(255,255,255,.04));
}
.edit-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
.edit-row label { flex: 0 0 92px; font-size: 14px; opacity: .75; }
.edit-row input {
  flex: 1 1 auto;
  min-width: 0;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.05);
  color: inherit;
  font-size: 16px;
}
.yoga-btn, .save-btn, .write-btn {
  border: 0;
  border-radius: 12px;
  padding: 11px 16px;
  font-size: 15px;
  font-weight: 600;
  color: inherit;
  background: rgba(255,255,255,.09);
  cursor: pointer;
}
.yoga-btn { flex: 1 1 auto; }
.reset-btn {
  flex: 0 0 auto;
  border: 0;
  border-radius: 12px;
  padding: 11px 15px;
  font-size: 17px;
  color: inherit;
  opacity: .55;
  background: rgba(255,255,255,.06);
  cursor: pointer;
}
.yoga-btn.active { background: rgba(120, 200, 150, .28); }
.save-btn { flex: 0 0 auto; }
.write-btn {
  display: block;
  margin: 14px auto 0;
  width: 52px;
  height: 52px;
  padding: 0;
  border-radius: 50%;
  font-size: 22px;
  line-height: 52px;
  background: var(--accent, rgba(140,160,255,.25));
}
.edit-status { margin: 10px 0 0; font-size: 13px; min-height: 16px; }
.edit-status.ok { color: #7fd6a3; }
.edit-status.bad { color: #ff9d9d; }


/* ── Что ела ────────────────────────────────────────────────────── */
.meals-card {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(255,255,255,.05);
}
.meals-head { display: flex; align-items: center; justify-content: space-between; }
.meals-list { list-style: none; margin: 8px 0 0; padding: 0; }
.meals-list li {
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.meals-list li:last-child { border-bottom: 0; }
.meal-main { display: flex; gap: 8px; align-items: baseline; }
.meal-time { font-size: 12px; opacity: .5; flex: 0 0 auto; }
.meal-title { font-size: 15px; }
.meal-nums { margin-top: 3px; font-size: 13px; opacity: .7; display: flex; gap: 10px; }
.meal-nums b { font-size: 15px; opacity: 1; }
.meals-empty { opacity: .55; font-size: 14px; }


/* ── Подписи на столбиках и сводка недели ───────────────────────── */
.bar-caption {
  display: block;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.3;
  opacity: 1;
  margin-bottom: 5px;
  min-height: 16px;
  white-space: nowrap;
  text-align: center;
}
.bar-chart .day { display: flex; flex-direction: column; justify-content: flex-end; }
.week-summary { margin-top: 6px; }
.sum-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.sum-row:last-child { border-bottom: 0; }
.sum-row span { font-size: 14px; opacity: .7; }
.sum-row b { font-size: 17px; }
