:root{
  --bg:#ffffff; --card:#f3f5f9; --card-b:#e1e6ee; --field:#eef1f6; --field-b:#c3ccdb; --ink:#111827; --muted:#4b5563; --ink2:#374151;
  --blue:#1d4ed8; --blue-bg:#2563eb; --blue-soft:#e0eaff; --blue-line:#93b4f0; --green:#047857; --green-bg:#059669; --orange:#b45309; --orange-bg:#d97706; --red:#b91c1c; --track:#dde3ec;
  --radius:16px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{color-scheme:light}
body{font-family:Heebo,"Segoe UI",system-ui,-apple-system,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%}
.app{max-width:560px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}
.screen{flex:1;padding:14px 14px 90px;outline:none}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}
.muted{color:var(--muted)} .center{text-align:center} .pad{padding:24px 8px}
.good{color:var(--green)} .warn{color:var(--orange)} .bad{color:var(--red)}
bdi.n,.n{unicode-bidi:isolate;direction:ltr;display:inline-block}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.top{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;min-height:40px}
.top h1{font-size:20px;font-weight:700}
.top .date{font-size:13px;color:var(--muted)}
.row{display:flex;align-items:center;gap:8px}
.between{justify-content:space-between}
.wrap{flex-wrap:wrap}
.grow{flex:1;min-width:0}

.card{background:var(--card);border:1px solid var(--card-b);border-radius:var(--radius);padding:12px;margin-bottom:12px}
.card h2,.h3{font-size:14px;font-weight:600;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.h3 small,.card h2 small{font-weight:400;color:var(--muted);font-size:12px}

.btn,.btn2,.day,.sd,.nav a,a.opt,.icon-btn,a.res{text-decoration:none}
a.btn,a.btn2{display:inline-flex;align-items:center;justify-content:center}
.btn{background:var(--blue-bg);color:#fff;border:0;border-radius:10px;padding:9px 14px;font-weight:600;font-size:14px;min-height:40px}
.btn:hover{background:#1d4ed8}
.btn2{background:#fff;color:var(--blue);border:1px solid var(--blue-line);border-radius:10px;padding:6px 12px;font-weight:600;font-size:13px;min-height:36px;display:inline-flex;align-items:center;gap:4px;text-decoration:none}
.btn-danger{background:#fff;color:var(--red);border:1px solid #e3a8a8;border-radius:10px;padding:6px 12px;font-weight:600;font-size:13px;min-height:36px}
.btn[disabled],.btn2[disabled]{opacity:.55;cursor:default}
.icon-btn{background:transparent;border:0;border-radius:10px;min-width:44px;min-height:44px;font-size:18px;color:var(--ink2)}
.icon-btn.del{color:var(--red)}
.icon-btn.del.set-del{color:#6b7280}
.link{background:none;border:0;color:var(--blue);font-size:13px;padding:6px 4px;min-height:32px;text-decoration:underline}

label.f{display:block;font-size:13px;color:var(--ink2);margin-bottom:10px}
label.f>span{display:block;margin-bottom:3px}
input,select,textarea{background:#fff;border:1px solid var(--field-b);border-radius:10px;padding:9px 10px;width:100%;min-height:42px}
textarea{resize:vertical;min-height:60px}
input.num{text-align:center;direction:ltr;font-variant-numeric:tabular-nums}
.msg{font-size:13px;margin:6px 0}
.err{color:var(--red);font-size:13px;margin:6px 0}

/* bottom nav */
.nav{position:fixed;bottom:0;left:0;right:0;max-width:560px;margin:0 auto;display:flex;background:#f8f9fc;border-top:1px solid #dde2eb;padding:6px 6px calc(8px + env(safe-area-inset-bottom));z-index:5}
.nav a{flex:1;text-align:center;font-size:12px;color:var(--muted);text-decoration:none;padding:4px 0;border-radius:10px;min-height:48px}
.nav a span{display:block;font-size:20px;line-height:1.2}
.nav a[aria-current="page"]{color:var(--blue);font-weight:700}

/* tabs */
.days{display:flex;gap:6px;margin-bottom:12px}
.day{flex:1;text-align:center;padding:7px 2px;border-radius:10px;background:var(--field);border:0;font-size:13px;color:var(--ink2);min-height:46px;overflow:hidden}
.day small{display:block;font-size:10.5px;font-weight:400;margin-top:2px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.day[aria-selected="true"]{background:var(--blue-bg);color:#fff;font-weight:600}
.day[aria-selected="true"] small{color:#fff}
.pill{display:flex;gap:4px;background:#e4e9f1;border-radius:10px;padding:3px;margin-bottom:10px}
.pill button{flex:1;border:0;background:transparent;font-size:13px;padding:6px 0;border-radius:8px;color:var(--ink2);min-height:44px}
.pill button[aria-pressed="true"]{background:var(--blue-bg);color:#fff;font-weight:600}

/* exercise */
.exname{display:flex;align-items:center;gap:8px;background:#e4e9f1;border-radius:10px;padding:4px 4px 4px 10px}
.exname .t{flex:1;font-weight:600;font-size:16px;min-width:0;overflow-wrap:anywhere}
.exname .t small{display:block;font-weight:400;font-size:11.5px;color:var(--muted)}
.row2{display:flex;justify-content:space-between;align-items:center;margin:8px 2px;gap:8px;flex-wrap:wrap}
.pr{font-size:12.5px;color:#92400e;font-weight:500}
.pr.new{color:var(--green);font-weight:700}
table{width:100%;border-collapse:collapse;font-size:14px}
th{font-weight:500;color:var(--muted);font-size:12px;text-align:center;padding:4px}
td{padding:4px;text-align:center}
.sets input{max-width:80px}
.prev{color:var(--muted);font-size:12.5px}
.add{color:var(--blue);font-size:13px}
.newex{display:flex;gap:8px}
.suggest{background:#fff8e6;border:1px solid #f1d58a;border-radius:12px;padding:10px;margin:8px 0}
.suggest p{margin-bottom:8px;font-size:14px}
.suggest .row{flex-wrap:wrap}
.sheet{background:#fff;border:1px solid var(--card-b);border-radius:12px;padding:10px;margin-top:8px}
.opt{display:block;width:100%;text-align:start;background:var(--card);border:1px solid var(--card-b);border-radius:10px;padding:8px 10px;margin-bottom:6px;font-size:14px;min-height:40px}
.opt small{display:block;color:var(--muted);font-size:11.5px}

/* home */
.ring{display:flex;align-items:center;gap:16px}
.ringc{position:relative;width:128px;height:128px;flex:none}
.ringc svg{display:block}
.ringc .t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ringc .t b{font-size:26px}.ringc .t small{font-size:11px;color:var(--muted)}
.kv{font-size:13px;color:var(--ink2);line-height:1.7}.kv b{font-size:15px}
.mac{margin-bottom:9px}.ml{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.bar{height:8px;border-radius:9px;background:var(--track);overflow:hidden}.bar i{display:block;height:100%;border-radius:9px}
.bar.green i{background:var(--green-bg)}.bar.blue i{background:var(--blue-bg)}.bar.orange i{background:var(--orange-bg)}
.big{font-size:30px;font-weight:700}
.chart{display:block;width:100%;direction:ltr;height:auto}
.axis{display:flex;justify-content:space-between;direction:ltr;font-size:11px;color:var(--muted);padding:2px 4px 0}

/* food */
.datenav{display:flex;align-items:center;justify-content:space-between;background:var(--field);border-radius:12px;padding:6px 8px;margin-bottom:8px}
.datenav .ar{width:40px;height:40px;border-radius:10px;background:#fff;border:1px solid #d3dae6;font-size:20px;color:var(--blue)}
.datenav .dt{text-align:center;font-weight:600;font-size:15px}.datenav .dt small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.strip{display:flex;gap:5px;margin-bottom:12px}
.sd{flex:1;text-align:center;border-radius:10px;padding:5px 0;background:var(--card);border:1px solid var(--card-b);font-size:11.5px;color:var(--ink2);min-height:46px}
.sd b{display:block;font-size:14px;color:var(--ink)}
.sd[aria-current="date"]{background:var(--blue-bg);border-color:var(--blue-bg);color:#fff}.sd[aria-current="date"] b{color:#fff}
.search{display:flex;gap:8px;margin-bottom:8px}
.res{display:block;width:100%;text-align:start;background:#f5f8ff;border:1px solid var(--blue-line);border-radius:12px;padding:9px 10px;margin-bottom:8px;font-size:14px}
.res small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.tag{display:inline-block;font-size:11px;background:#e4e9f1;color:var(--ink2);border-radius:999px;padding:1px 8px;margin-inline-end:4px}
.meal{background:var(--card);border:1px solid var(--card-b);border-radius:14px;padding:10px 12px;margin-bottom:10px}
.mh{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:15px;margin-bottom:6px}
.ms{font-weight:400;font-size:12px;color:var(--muted)}
.item{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:6px 0;border-top:1px solid var(--card-b);font-size:14px}
.item small{display:block;color:var(--muted);font-size:12px}
.iv{text-align:end;white-space:nowrap}
.empty{color:var(--muted);font-size:13px;padding:6px 0;border-top:1px solid var(--card-b)}
.total{background:var(--blue-soft);border:1px solid #bcd0fa;border-radius:14px;padding:10px 12px;font-weight:600}
.total small{display:block;font-weight:400;color:var(--ink2)}
.fday{display:flex;align-items:center;gap:10px;padding:9px 10px;background:var(--card);border:1px solid var(--card-b);border-radius:12px;margin-bottom:7px}
.fday .dd{width:54px;text-align:center;font-size:12px;color:var(--muted)}.fday .dd b{display:block;font-size:17px;color:var(--ink)}
.fday .fb{flex:1}.fday .fb .t{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.stats{display:flex;gap:8px;margin-bottom:12px}
.st{flex:1;background:var(--card);border:1px solid var(--card-b);border-radius:14px;padding:10px;text-align:center}
.st small{display:block;color:var(--muted);font-size:12px}.st b{font-size:19px}

/* weight */
.entry{display:flex;gap:8px;align-items:center;margin-bottom:12px}
.entry input{font-size:24px;font-weight:700;text-align:center;direction:ltr;min-height:52px}
.prog{display:flex;gap:8px;margin-bottom:12px}
.pg{flex:1;background:var(--card);border:1px solid var(--card-b);border-radius:14px;padding:9px 6px;text-align:center}
.pg small{display:block;color:var(--muted);font-size:12px}.pg b{display:block;font-size:19px;margin-top:2px}.pg .pc{font-size:13px;font-weight:600}.pg .bs{font-size:11px;color:var(--muted);margin-top:3px}
.mt{margin-bottom:6px}
.mt th{font-size:12px;padding:6px 3px;border-bottom:1px solid #cfd6e2;color:var(--ink2)}
.mt td{padding:7px 3px;border-bottom:1px solid var(--card-b);font-size:13px}
.mt td:first-child,.mt th:first-child{text-align:start}
.wr{display:flex;justify-content:space-between;align-items:center;padding:6px 2px;border-top:1px solid var(--card-b);font-size:14px;gap:6px}
.wr>span:first-child{flex:1}

/* history */
.hs{border:1px solid var(--card-b);border-radius:14px;margin-bottom:10px;background:var(--card);overflow:hidden}
.hs>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;padding:10px 12px;cursor:pointer;min-height:48px}
.hs>summary::-webkit-details-marker{display:none}
.hs>summary b{font-size:14.5px}.hs>summary small{display:block;color:var(--muted);font-size:12px}
.hs .bd{background:#fff;border-top:1px solid var(--card-b);padding:8px 12px;font-size:13px}
.hs .ex1{margin-bottom:8px}.hs .ex1 b{display:block;font-size:13.5px}.hs .sets{color:var(--ink2);font-size:13px}
.note{background:#fff;border:1px dashed #9aa6b8;border-radius:10px;padding:6px 8px;font-size:13px;color:var(--ink2);margin-top:4px}

.toast{position:fixed;bottom:84px;left:50%;transform:translateX(-50%);background:#111827;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:20;max-width:90vw}
.login{width:100%;max-width:420px;margin:12vh auto 0;padding-inline:20px;box-sizing:border-box}
.login h1{font-size:24px;margin-bottom:6px}
.credit{font-size:12px;color:var(--muted);margin:10px 2px}
.credit a{color:var(--blue)}
dialog{border:1px solid var(--card-b)}
dialog::backdrop{background:rgba(17,24,39,.4)}
.sd i{display:block;width:6px;height:6px;border-radius:50%;margin:3px auto 0;background:#c4cbd8}
.sd i.ok{background:#059669}.sd i.off{background:#d97706}
.sd[aria-current="date"] i{outline:1px solid #fff}
details.manual{margin-top:8px}
details.manual summary{cursor:pointer;color:var(--blue);font-size:13px;min-height:36px;padding:6px 0}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}

.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:4px 0}
.empty-state p{margin:0}
.card>a.btn{margin-top:10px}
.unit{align-self:center;font-size:14px;white-space:nowrap}

/* iOS: never below 16px so Safari doesn't zoom on focus (pinch-zoom stays enabled) */
input,select,textarea{font-size:max(16px,1rem)}
input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}
.btn.big,.btn2.big{min-height:44px;font-size:15px;padding:10px 16px}
.btn.wide{display:block;width:100%;margin-bottom:12px}
.tap{min-width:44px;min-height:44px}
.sets td:last-child,.sets th:last-child{width:48px;padding:0}
.sets .prev{white-space:nowrap}
.sets input{max-width:84px}
/* date field: shows dd.mm.yyyy, native picker invisible on top */
.datepick{position:relative;display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--field-b);border-radius:10px;padding:0 12px;min-height:44px;font-size:15px;font-weight:600;cursor:pointer}
.datepick-input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;min-height:0;padding:0;border:0}
.datepick:focus-within{outline:3px solid #1d4ed8;outline-offset:2px}
/* info toggle */
.info-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 2px 10px;font-size:13px}
.info-btn{min-width:44px;min-height:44px;border:0;background:transparent;color:var(--blue);font-size:20px;border-radius:50%}
.info-row .credit{flex-basis:100%;margin:0}
/* add-food bottom sheet */
dialog.sheet-dlg{position:fixed;inset:auto 0 0 0;margin:0 auto;width:100%;max-width:560px;max-height:88dvh;overflow:auto;border:1px solid var(--card-b);border-radius:20px 20px 0 0;padding:14px 14px 22px;background:#fff;color:var(--ink)}
dialog.sheet-dlg::backdrop{background:rgba(17,24,39,.45)}
.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.sheet-head h2{font-size:18px}
.sheet-sub{margin-bottom:6px;font-size:13px}
.search .unit{align-self:center}
.search input[type=search]{flex:1;min-width:0}
.search input.num{width:84px;flex:none}
.mh .row{gap:2px}
.exname .t small{display:block}

.sheet-grip{width:44px;height:5px;border-radius:3px;background:#c4cad6;margin:0 auto 8px}
.sheet-toast{position:sticky;bottom:0;margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#111827;color:#fff;border-radius:12px;padding:6px 8px 6px 14px;font-size:14px}
.sheet-toast:empty{display:none}
.sheet-toast .undo{min-height:44px;min-width:60px;border:0;border-radius:10px;background:transparent;color:#bcd0fa;font-weight:700;font-size:15px;text-decoration:none;padding:0 12px}
.manual{margin-top:8px}
.manual-form{margin-top:10px}
.res .p100{color:var(--muted);font-size:12px;font-weight:400}
.res .msg{margin:6px 0 8px}
.res .msg .amt{display:block;font-size:16px;font-weight:700;color:var(--ink)}
.res .msg .amt .kc{font-size:18px;margin-inline-start:4px}
.res .msg .mac{display:block;font-size:13px;color:var(--ink2);margin-top:2px}
