:root{
  --bg:#0a0a0a; --card:#161616; --card2:#1d1d1d; --line:#2a2a2a;
  --ink:#f0ede4; --mute:#a3a3a3; --dim:#6b6b6b; --lime:#c5f000; --limebg:#161a08; --warn:#ffb020;
  --head: Arial, "Helvetica Neue", Helvetica, "Liberation Sans", sans-serif;
  --body: Lato, Carlito, -apple-system, "Segoe UI", Roboto, system-ui, sans-serif;
  --safe-b: env(safe-area-inset-bottom, 0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.4}
body{min-height:100dvh}
#app{max-width:480px;margin:0 auto;padding:22px 20px calc(96px + var(--safe-b))}
h1,h2,h3,.h{font-family:var(--head);font-weight:700;margin:0;letter-spacing:-.01em}
h1{font-size:34px;line-height:1.1}
h1.big{font-size:52px;line-height:1.05}
h2{font-size:28px;margin:18px 0 6px}
.kicker{font-family:var(--head);font-weight:700;color:var(--lime);font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.topbar{display:flex;justify-content:space-between;align-items:center;font-family:var(--head);font-size:13px;letter-spacing:.03em;text-transform:uppercase;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.topbar b{color:var(--ink)} .topbar span{color:var(--mute)}
.topbar a{color:var(--mute);text-decoration:none}
.sub{color:var(--mute);font-size:15px;margin:6px 0 18px}
.lead{color:var(--mute);font-size:19px;margin:18px 0 26px}
.meta{font-family:var(--head);font-weight:700;color:var(--lime);font-size:14px;letter-spacing:.02em;margin:4px 0 16px}
.card{background:var(--card);border-radius:8px;padding:16px;margin-bottom:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.stat{background:var(--card);border-radius:8px;padding:16px 10px;text-align:center}
.stat small{display:block;color:var(--mute);font-family:var(--head);font-size:12px;margin-bottom:6px}
.stat strong{font-family:var(--head);font-size:22px}
.note{color:var(--dim);font-size:13px;margin:16px 0}
.footer{color:var(--dim);font-family:var(--head);font-size:11px;letter-spacing:.04em;text-transform:uppercase;margin-top:26px}
/* target cards */
.target{position:relative;display:block;width:100%;text-align:left;border:0;color:inherit;font:inherit;background:var(--card);border-radius:8px;padding:18px 18px 18px 22px;margin-bottom:12px;cursor:pointer;opacity:.6}
.target::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;border-radius:8px 0 0 8px;background:var(--line)}
.target.on{opacity:1;background:var(--limebg)} .target.on::before{background:var(--lime)}
.target .kcal{font-family:var(--head);font-weight:700;font-size:34px;margin:8px 0 6px}
.target .rate{color:var(--mute);font-size:14px}
.target .pick{position:absolute;right:16px;top:16px;font-family:var(--head);font-size:11px;color:var(--lime);border:1px solid var(--lime);border-radius:20px;padding:2px 8px}
.target[disabled]{cursor:not-allowed;opacity:.3}
/* meals */
.meal .row{display:flex;justify-content:space-between;align-items:baseline;font-family:var(--head);font-weight:700}
.meal .row em{font-style:normal;color:var(--lime)}
.meal p{margin:12px 0 10px;font-size:15px}
.meal small{color:var(--mute);font-family:var(--head);font-size:12px}
.seg{display:flex;background:var(--card);border-radius:8px;padding:4px;margin:4px 0 16px}
.seg button{flex:1;border:0;background:none;color:var(--mute);font-family:var(--head);font-weight:700;font-size:13px;padding:9px 4px;border-radius:6px;text-transform:uppercase;letter-spacing:.03em}
.seg button.on{background:var(--lime);color:#0a0a0a}
/* week */
.wk{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit}
.wk .n{font-family:var(--head);font-weight:700;color:var(--lime);font-size:20px;width:30px}
.wk .t{flex:1;font-family:var(--head);font-weight:700}
.wk .t small{display:block;color:var(--dim);font-weight:400;font-size:12px;margin-top:2px}
.wk .g{font-family:var(--head);font-size:12px;color:var(--mute)}
.wk.lift .g{color:var(--lime)}
.card.today{outline:1px solid var(--lime)}
.wk .done{color:var(--lime);font-size:12px;font-family:var(--head)}
/* exercise */
.ex{display:grid;grid-template-columns:64px 1fr;gap:12px}
.ex img{width:64px;height:64px;object-fit:contain}
.ex .row{display:flex;justify-content:space-between;gap:8px;font-family:var(--head);font-weight:700}
.ex .row em{font-style:normal;color:var(--lime);white-space:nowrap}
.ex p{color:var(--mute);margin:6px 0 10px;font-size:14px}
.sets{display:flex;gap:8px;flex-wrap:wrap}
.sets button{width:40px;height:40px;border-radius:20px;border:1.5px solid var(--line);background:var(--card2);color:var(--mute);font-family:var(--head);font-weight:700;font-size:14px}
.sets button.on{background:var(--lime);border-color:var(--lime);color:#0a0a0a}
.ex.complete{outline:1px solid var(--lime)}
.progress{height:6px;background:var(--card);border-radius:3px;overflow:hidden;margin:0 0 14px}
.progress i{display:block;height:100%;background:var(--lime)}
/* rules */
.rule .n{font-family:var(--head);font-weight:700;color:var(--lime);margin-right:12px}
.rule h3{display:inline;font-size:17px}
.rule p{color:var(--mute);margin:8px 0 0;font-size:15px}
/* forms */
label.f{display:block;margin-bottom:14px}
label.f>span{display:block;font-family:var(--head);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
input,select{width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:13px 12px;font:inherit;font-size:16px;-webkit-appearance:none;appearance:none}
input:focus,select:focus{outline:none;border-color:var(--lime)}
.inrow{display:flex;gap:8px}
.inrow>*{flex:1}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chips label{flex:1;min-width:80px}
.chips input{display:none}
.chips span{display:block;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:11px 6px;font-family:var(--head);font-weight:700;font-size:14px;color:var(--mute)}
.chips input:checked+span{background:var(--lime);color:#0a0a0a;border-color:var(--lime)}
.unit{display:flex;gap:6px;margin-left:auto}
.unit button{background:none;border:1px solid var(--line);color:var(--mute);border-radius:14px;font-size:11px;padding:2px 9px;font-family:var(--head)}
.unit button.on{border-color:var(--lime);color:var(--lime)}
.lblrow{display:flex;align-items:center;margin-bottom:6px}
.lblrow span{font-family:var(--head);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--mute)}
.btn{display:block;width:100%;border:0;border-radius:8px;background:var(--lime);color:#0a0a0a;font-family:var(--head);font-weight:700;font-size:16px;padding:15px;margin-top:10px;text-align:center;text-decoration:none}
.btn.ghost{background:none;border:1px solid var(--line);color:var(--ink)}
.warn{background:#1f1606;border-left:4px solid var(--warn);border-radius:8px;padding:12px 14px;margin:10px 0 14px;font-size:14px}
.warn b{font-family:var(--head);color:var(--warn)}
.warn label{display:flex;gap:8px;align-items:center;margin-top:8px;color:var(--mute)}
.warn input{width:auto}
.link{color:var(--lime);text-decoration:none;font-family:var(--head);font-weight:700;font-size:14px}
/* log */
.chart{background:var(--card);border-radius:8px;padding:12px 8px 6px;margin-bottom:12px}
.chart svg{display:block;width:100%;height:auto}
.logrow{display:flex;justify-content:space-between;align-items:center;padding:11px 2px;border-bottom:1px solid var(--line);font-family:var(--head)}
.logrow span{color:var(--mute);font-size:14px}
.logrow button{background:none;border:0;color:var(--dim);font-size:18px;padding:0 4px}
.delta-down{color:var(--lime)} .delta-up{color:var(--warn)}
/* tab bar */
nav.tabs{position:fixed;left:0;right:0;bottom:0;background:rgba(10,10,10,.96);backdrop-filter:blur(8px);border-top:1px solid var(--line);padding:8px 6px calc(8px + var(--safe-b));display:flex;justify-content:center;z-index:5}
nav.tabs .in{display:flex;max-width:480px;width:100%}
nav.tabs a{flex:1;text-align:center;color:var(--dim);text-decoration:none;font-family:var(--head);font-size:11px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:4px 0}
nav.tabs a svg{display:block;margin:0 auto 4px;width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}
nav.tabs a.on{color:var(--lime)}
.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}
.brand .mk{width:34px;height:34px;border-radius:8px;background:var(--lime);color:#0a0a0a;font-family:var(--head);font-weight:800;display:grid;place-items:center;font-size:14px}
.brand b{font-family:var(--head);letter-spacing:.04em;text-transform:uppercase;font-size:13px}
.warn input[type=checkbox]{-webkit-appearance:checkbox;appearance:auto;accent-color:var(--lime);width:20px;height:20px;padding:0;margin:0}
.logrow b{margin-left:auto;margin-right:14px;text-align:right}
