:root{
  --bg:#16171B;--panel:#1E2026;--panel2:#262932;--line:#313542;
  --ink:#ECEAE4;--muted:#8C9099;--accent:#F2A03D;--accent-ink:#1A1206;
  --gain:#74C98A;--rest:#6E7480;--danger:#E0664E;
  --mono:"Space Mono",ui-monospace,Menlo,Consolas,monospace;
  --disp:"Oswald",system-ui,Arial,sans-serif;
  --body:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{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:15px;line-height:1.45}
body{padding-bottom:calc(40px + env(safe-area-inset-bottom))}
.wrap{max-width:540px;margin:0 auto;padding:0 calc(14px + env(safe-area-inset-left)) 0 calc(14px + env(safe-area-inset-right))}
button{font-family:inherit;cursor:pointer;color:inherit;border:none;background:none}
input,textarea,select{font-family:inherit}
a{color:var(--accent)}
header{position:sticky;top:0;z-index:20;background:linear-gradient(180deg,var(--bg) 72%,rgba(22,23,27,0));padding-top:calc(14px + env(safe-area-inset-top))}
.brand{display:flex;align-items:center;justify-content:space-between;gap:10px}
.brand h1{font-family:var(--disp);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:21px;margin:0}
.brand h1 b{color:var(--accent)}
.gear{font-size:21px;color:var(--muted);padding:4px 6px}
.tabs{display:flex;gap:6px;margin:12px 0 8px}
.tab{flex:1;padding:9px 0;text-align:center;font-family:var(--disp);text-transform:uppercase;letter-spacing:.09em;font-size:12.5px;color:var(--muted);background:var(--panel);border:1px solid var(--line);border-radius:10px}
.tab.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}
.section-label{font-family:var(--disp);text-transform:uppercase;letter-spacing:.16em;font-size:11px;color:var(--muted);margin:18px 2px 9px}
.activeprog{font-family:var(--mono);font-size:11px;color:var(--accent);margin:2px 2px 0}

.stats{display:flex;gap:8px;margin:2px 0 4px}
.stat{flex:1;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px 12px}
.stat .n{font-family:var(--mono);font-size:20px;font-weight:700}
.stat .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-top:2px}

.daycard{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:13px;margin-bottom:9px;overflow:hidden;width:100%;text-align:left}
.daycard .bar{width:5px;background:var(--panel2);flex:none}
.daycard.next .bar{background:var(--accent)}
.daycard.rest .bar{background:var(--rest)}
.daycard .inner{padding:13px 14px;flex:1;min-width:0}
.daycard .row1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.daycard .name{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:18px;font-weight:600}
.daycard.rest .name{color:var(--muted)}
.daycard .sub{color:var(--muted);font-size:12.5px;margin-top:2px}
.daycard .cardio{color:var(--accent);font-size:12px;margin-top:5px;font-family:var(--mono)}
.daycard .when{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:6px}
.pill{font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:10px;padding:3px 7px;border-radius:20px;background:var(--accent);color:var(--accent-ink);font-weight:600}
.pill.warn{background:var(--danger);color:#fff}
.chev{color:var(--muted);align-self:center;padding-right:12px;font-size:20px}

.editbanner{margin:8px 0 2px;padding:8px 12px;background:rgba(233,163,25,.12);border:1px solid rgba(233,163,25,.4);border-radius:9px;color:var(--accent);font-family:var(--mono);font-size:12px}
.resumebar{display:flex;gap:8px;margin-bottom:12px}
.resumebtn{flex:1;text-align:left;padding:12px 14px;background:rgba(233,163,25,.14);border:1px solid rgba(233,163,25,.45);border-radius:11px;color:var(--accent);font-size:14px}
.resumebtn b{color:var(--ink)}
.resumex{flex:none;width:46px;border:1px solid var(--line);border-radius:11px;background:var(--panel2);color:var(--muted);font-size:16px}
.wktitle{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:22px;font-weight:700;margin-top:6px}
.wkdate{font-family:var(--mono);font-size:12px;color:var(--muted)}
.back{font-family:var(--mono);font-size:13px;color:var(--muted);padding:6px 2px}
#wkprog{position:sticky;bottom:calc(14px + env(safe-area-inset-bottom));z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:9px 12px;margin:10px 0;box-shadow:0 6px 22px rgba(0,0,0,.45)}
#wkprog .pr1{display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:12px;color:var(--muted)}
#wkprog .pt-count{color:var(--ink)}
#wkprog .pt-eta{color:var(--muted);font-size:11px}
#wkprog .pt-bar{height:7px;background:var(--panel2);border-radius:5px;overflow:hidden;margin-top:7px}
#wkprog .pt-bar>i{display:block;height:100%;background:var(--gain);width:0;transition:width .25s}
.toolbar{display:flex;gap:8px;margin:8px 0 12px}
.tbtn{flex:1;padding:8px;border:1px solid var(--line);border-radius:9px;background:var(--panel);font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:12px;color:var(--muted)}
.tbtn.on{background:var(--panel2);color:var(--ink);border-color:var(--muted)}

.ex{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px 13px 11px;margin-bottom:10px}
.ssgroup{border:1px solid rgba(233,163,25,.45);border-radius:15px;padding:8px;margin-bottom:10px;background:rgba(233,163,25,.05)}
.ssgroup .sshead{font-family:var(--mono);font-size:11px;color:var(--accent);padding:3px 6px 8px;line-height:1.35}
.ssgroup .ex{margin-bottom:8px}
.ssgroup .ex:last-child{margin-bottom:0}
.techhint{font-size:12px;color:#d9c9a6;background:rgba(242,160,61,.07);border-left:2px solid var(--accent);padding:6px 9px;border-radius:0 7px 7px 0;margin-top:8px;line-height:1.4}
.drops{margin:0 0 6px 30px;border-left:2px solid var(--line);padding-left:8px}
.droprow{display:flex;align-items:center;gap:6px;margin-top:5px}
.droprow .dropi{font-family:var(--mono);font-size:10px;color:var(--muted);flex:none;width:56px}
.droprow .dropx{color:var(--muted)}
.dropinp{width:56px;background:var(--panel2);border:1px solid var(--line);border-radius:7px;color:var(--ink);font-size:13px;padding:6px;text-align:center}
.dropdel{background:none;border:none;color:var(--danger);font-size:13px;padding:0 4px}
.adddrop{margin-top:6px;background:none;border:1px dashed var(--line);border-radius:7px;color:var(--muted);font-size:12px;padding:6px 10px}
.ex .top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.ex .tag{font-family:var(--mono);font-size:10px;color:var(--accent);letter-spacing:.05em}
.ex .exname{font-family:var(--disp);font-weight:600;font-size:17px;letter-spacing:.02em;line-height:1.15;display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.ex .info{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:50%;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;flex:none}
.ex .target{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:3px}
.ex .exnote{font-size:12px;color:#d9c9a6;background:rgba(242,160,61,.07);border-left:2px solid var(--accent);padding:6px 9px;border-radius:0 7px 7px 0;margin-top:8px}
.ex .pr{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.ex .pr b{color:var(--gain);font-weight:400}
.ex .pr .ls{color:var(--muted)}
.gain{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px;white-space:nowrap}
.gain.up{background:rgba(116,201,138,.16);color:var(--gain)}
.gain.flat{background:var(--panel2);color:var(--muted)}

.colhead{display:none}
.sets{margin-top:6px;display:flex;flex-direction:column;gap:7px}
.addset{margin-top:9px;width:100%;padding:9px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-family:var(--mono);font-size:13px}

.pt{margin-top:10px;background:rgba(242,160,61,.10);border:1px solid rgba(242,160,61,.30);border-radius:10px;padding:9px 11px}
.pt .pttxt{font-size:12.5px;color:#f3c182;line-height:1.42}
.pt .ptextra{font-size:11.5px;color:var(--muted);margin-top:5px}
.pt .ptapply{margin-top:9px;padding:7px 11px;border:1px solid var(--accent);border-radius:8px;background:transparent;color:var(--accent);font-family:var(--mono);font-size:12px}
.exbtns{display:flex;gap:14px;margin-top:9px;flex-wrap:wrap}
.exbtns .lnk{font-family:var(--mono);font-size:11.5px;color:var(--muted);padding:4px 0}
.setrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.setrow .idx{font-family:var(--mono);font-size:13px;color:var(--muted);text-align:center;width:20px;flex:none}
.setrow.done .idx{color:var(--gain);font-weight:700}
.grp{display:flex;align-items:center;gap:4px;flex:1;min-width:120px}
.grp .stp{width:30px;height:44px;flex:none;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--muted);font-size:19px;display:flex;align-items:center;justify-content:center;font-family:var(--mono)}
.grp input{flex:1;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-family:var(--mono);font-size:16px;text-align:center;padding:10px 2px;min-height:44px}
.grp input:focus{outline:none;border-color:var(--accent)}
.grp input::placeholder{color:#5a5f6a}
.setrow.done .grp input{border-color:rgba(116,201,138,.5);background:rgba(116,201,138,.08)}
.rpe{flex:none;min-width:40px;height:44px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--muted);font-family:var(--mono);font-size:12px;display:flex;align-items:center;justify-content:center;padding:0 6px}
.rpe.set{color:var(--accent);border-color:rgba(242,160,61,.45)}
.setrow .del{width:24px;height:44px;flex:none;font-size:16px;color:var(--muted);text-align:center}
.addset{margin-top:9px;width:100%;padding:9px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-family:var(--mono);font-size:13px}
.rpepick{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.rpepick button{flex:1;min-width:56px;padding:11px 0;border:1px solid var(--line);border-radius:9px;font-family:var(--mono);font-size:15px;color:var(--ink);background:var(--panel2)}
.rpepick button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.wurow{display:flex;justify-content:space-between;align-items:center;padding:11px 12px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;margin-bottom:7px;font-family:var(--mono)}
.wurow .ww{font-size:17px;font-weight:700;color:var(--accent)}
.wurow .wl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.wurow .wr{font-size:13px;color:var(--ink)}
/* calendar */
.calwrap{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:14px;margin-bottom:11px;overflow-x:auto}
.cal{display:flex;gap:4px;min-width:max-content}
.calcol{display:flex;flex-direction:column;gap:4px}
.calcell{width:15px;height:15px;border-radius:4px;background:var(--panel2)}
.calcell.on{background:var(--accent)}
.calcell.today{box-shadow:0 0 0 1.5px var(--ink)}
.callbl{font-family:var(--mono);font-size:10px;color:var(--muted);height:15px;line-height:15px}
.statgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:4px}
.statgrid .stat{padding:11px 10px}
.barchart{display:flex;align-items:flex-end;gap:5px;height:118px;padding:10px 10px 6px;background:var(--panel);border:1px solid var(--line);border-radius:13px}
.barcol{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;min-width:0}
.bartrack{flex:1;width:100%;display:flex;align-items:flex-end}
.barfill{width:100%;background:linear-gradient(180deg,var(--accent),rgba(242,160,61,.45));border-radius:4px 4px 0 0;min-height:2px;transition:height .3s}
.barlbl{font-family:var(--mono);font-size:8px;color:var(--muted);margin-top:5px;white-space:nowrap}
.mbars{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:12px 13px}
.mbar{display:flex;align-items:center;gap:9px;margin-bottom:9px}
.mbar:last-child{margin-bottom:0}
.mbarname{width:74px;flex:none;font-size:12.5px}
.mbartrack{flex:1;height:9px;background:var(--panel2);border-radius:5px;overflow:hidden}
.mbarfill{height:100%;background:var(--accent);border-radius:5px;transition:width .3s}
.mbarpct{width:40px;flex:none;text-align:right;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.prrow{display:flex;align-items:center;gap:9px;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:11px;margin-bottom:6px;font-size:13.5px}
.prrow .prname{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prrow .prset{font-family:var(--mono);color:var(--gain)}
.prrow .prdate{font-family:var(--mono);font-size:11px;color:var(--muted)}
.recrow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:11px 13px;margin-bottom:6px;background:var(--panel);border:1px solid var(--line);border-radius:11px;color:var(--ink)}
.recrow .recname{font-size:14px;font-weight:600}
.recrow .recmeta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:3px}
.recrow .recval{font-family:var(--mono);font-size:20px;font-weight:700;color:var(--accent);flex:none}
.recrow .recval span{font-size:11px;color:var(--muted);font-weight:400}
.shareimg{width:100%;max-height:58vh;object-fit:contain;border-radius:12px;margin:8px 0;display:block;background:#141519}
.bwcard{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px}
.bwcard .chartwrap{display:flex;justify-content:center}
.streak{display:flex;gap:8px;margin-bottom:4px}
/* goals */
.goal{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:10px}
.goal .gh{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.goal .gname{font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:16px;font-weight:600}
.goal .gtarget{font-family:var(--mono);font-size:15px;color:var(--accent);white-space:nowrap}
.goal .gbarwrap{height:10px;background:var(--panel2);border-radius:6px;overflow:hidden;margin-top:10px}
.goal .gbar{height:100%;background:linear-gradient(90deg,var(--accent),var(--gain))}
.goal .gmeta{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:7px}
.goal .gdone{color:var(--gain)}
.goal .gdel{font-size:11.5px;color:var(--danger);font-family:var(--mono);margin-top:9px}
.modal select{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:15px;padding:11px}

.editbox{margin-top:11px;display:flex;flex-direction:column;gap:7px;padding-top:11px;border-top:1px solid var(--line)}
.editbox input{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:15px;padding:9px 10px}
.minibtn{padding:8px 11px;border:1px solid var(--line);border-radius:8px;font-size:12.5px;font-family:var(--mono);color:var(--muted)}
.minibtn.del{color:var(--danger);border-color:rgba(224,102,78,.4)}
.addex{width:100%;padding:12px;border:1px dashed var(--line);border-radius:11px;color:var(--accent);font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:13px;margin-bottom:10px}

.cardio-block{background:var(--panel);border:1px solid var(--accent);border-radius:13px;padding:13px;margin-bottom:10px}
.cardio-block .cname{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:15px;color:var(--accent)}
.cardio-block .crow{display:flex;align-items:center;gap:10px;margin-top:10px}
.check{width:26px;height:26px;border-radius:7px;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--accent-ink);background:var(--panel2)}
.check.on{background:var(--accent);border-color:var(--accent)}
.cardio-block input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:15px;padding:9px 10px;min-width:0}
.cardio-block .minw{max-width:84px;font-family:var(--mono);text-align:center}

.note-input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:11px;color:var(--ink);font-size:15px;padding:11px 12px;margin-bottom:12px;font-family:var(--body);resize:vertical}
.save{width:100%;margin-top:8px;padding:15px;background:var(--accent);color:var(--accent-ink);border-radius:13px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-weight:700;font-size:15px;box-shadow:0 6px 22px rgba(0,0,0,.45)}

#timerdock{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));z-index:40;width:calc(100% - 28px);max-width:512px;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:9px 11px;display:none;box-shadow:0 8px 30px rgba(0,0,0,.55)}
#timerdock.show{display:block}
.tmidle{display:flex;align-items:center;gap:8px}
.tmidle .lab{font-family:var(--disp);text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--muted);flex:none}
.tmidle .preset{flex:1;padding:10px 0;text-align:center;font-family:var(--mono);font-size:14px;background:var(--panel);border:1px solid var(--line);border-radius:9px;color:var(--ink)}
.tmrun{display:flex;align-items:center;gap:11px}
.tmrun .time{font-family:var(--mono);font-size:25px;font-weight:700;color:var(--accent);min-width:82px}
.tmrun .prog{flex:1;height:6px;background:var(--panel);border-radius:4px;overflow:hidden}
.tmrun .prog>i{display:block;height:100%;background:var(--accent)}
.tmrun .tbtn2{padding:9px 11px;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:13px;color:var(--ink);flex:none}
.tmrun.done .time{color:var(--gain)}

.daygroup{font-family:var(--disp);text-transform:uppercase;letter-spacing:.12em;font-size:11px;color:var(--accent);margin:17px 2px 8px}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px;width:100%;text-align:left;display:flex;align-items:center;gap:12px}
.pcard .pinfo{flex:1;min-width:0}
.pcard .pname{font-family:var(--disp);font-weight:600;font-size:15px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard .pmeta{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:3px}
.pcard .pmeta b{color:var(--ink);font-weight:400}
.pcard .ptrend{font-family:var(--disp);font-size:12px;font-weight:600;padding:3px 8px;border-radius:20px;white-space:nowrap;flex:none}
.pcard .ptrend.up{background:rgba(116,201,138,.16);color:var(--gain)}
.pcard .ptrend.flat{background:var(--panel2);color:var(--muted)}
.chartwrap{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px 8px 6px;margin-top:4px}

.hsession{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:13px;margin-bottom:10px}
.hsession .hh{display:flex;justify-content:space-between;align-items:center}
.hsession .hd{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:16px}
.hsession .hdate{font-family:var(--mono);font-size:11px;color:var(--muted)}
.hsession .hmeta{font-family:var(--mono);font-size:11px;color:var(--accent);margin-top:6px}
.hsession .hex{font-family:var(--mono);font-size:12.5px;color:var(--muted);margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.hsession .hex b{color:var(--ink);font-weight:400}
.hsession .hcardio{font-family:var(--mono);font-size:12px;color:var(--accent);margin-top:8px}
.hdel{font-size:12px;color:var(--danger);font-family:var(--mono);margin-top:10px}
.empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:14px}
.empty .big{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:18px;color:var(--ink);margin-bottom:6px}

/* settings */
.setsec{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:6px 13px;margin-bottom:11px}
.setrow2{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}
.setrow2:last-child{border-bottom:none}
.setrow2 .lbl{font-size:14px}
.setrow2 .sub2{font-size:11.5px;color:var(--muted);margin-top:2px}
.setrow2 input.small{width:64px;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-family:var(--mono);font-size:15px;text-align:center;padding:8px 4px}
.cloudinp{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:15px;padding:11px;margin:8px 0 2px}
.cloudalt{margin-top:12px;border-top:1px solid var(--line);padding-top:8px}
.cloudalt summary{font-size:12.5px;color:var(--muted);cursor:pointer;padding:4px 0}
.exlist{max-height:48vh;overflow-y:auto;margin:10px -4px 4px;padding:0 4px;-webkit-overflow-scrolling:touch}
.exsec{font-family:var(--disp);text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:var(--muted);margin:12px 2px 7px}
.exitem{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;text-align:left;padding:11px 12px;margin-bottom:6px;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:14px}
.exitem .extag{font-family:var(--mono);font-size:10px;color:var(--muted);text-transform:uppercase;flex:none}
.exiname{display:flex;flex-direction:column;gap:2px;min-width:0}
.exialias{font-size:11px;color:var(--muted);text-transform:capitalize}
.exadd{width:100%;text-align:left;padding:11px 12px;margin:6px 0 8px;background:transparent;border:1px dashed var(--accent);border-radius:9px;color:var(--accent);font-size:14px}
.filtlabel{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 2px 2px}
.goalchips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 4px}
.chip{padding:7px 13px;border:1px solid var(--line);border-radius:20px;background:var(--panel2);color:var(--muted);font-size:12.5px}
.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.tplitem{display:block;width:100%;text-align:left;padding:13px 14px;margin-bottom:8px;background:var(--panel2);border:1px solid var(--line);border-radius:11px;color:var(--ink)}
.tplname{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:14px;margin-bottom:3px}
.tpldesc{font-size:12.5px;color:var(--ink);opacity:.85;line-height:1.35}
.tplmeta{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:5px}
.onboard{text-align:center;padding:40px 18px 20px;max-width:440px;margin:0 auto}
.onbicon{font-size:52px;margin-bottom:10px}
.onbtitle{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:22px;margin-bottom:10px}
.onbtext{font-size:14px;color:var(--ink);opacity:.85;line-height:1.5;margin-bottom:22px}
.onbbtns{display:flex;flex-direction:column;gap:10px}
.onbbtns .mbtn{padding:14px;border-radius:11px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:13px;border:1px solid var(--line);background:var(--panel2);color:var(--ink)}
.onbbtns .mbtn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.onbnote{font-size:11.5px;color:var(--muted);margin-top:20px;line-height:1.4}
.welcomebar{background:linear-gradient(135deg,rgba(233,163,25,.16),rgba(233,163,25,.05));border:1px solid rgba(233,163,25,.4);border-radius:13px;padding:15px;margin-bottom:14px}
.welcometitle{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:15px;margin-bottom:5px}
.welcometext{font-size:13px;color:var(--ink);opacity:.9;line-height:1.4}
.bhint{font-size:12.5px;color:var(--muted);line-height:1.45;margin:6px 2px 12px}
.bday{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:10px}
.bdayhead{display:flex;gap:6px;align-items:center;margin-bottom:10px}
.bdaynum{flex:none;width:22px;height:22px;line-height:22px;text-align:center;border-radius:6px;background:var(--panel2);color:var(--muted);font-family:var(--mono);font-size:11px}
.bdayname{flex:1;min-width:0;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:14px;padding:9px 10px}
.mvx.sm{flex:none;width:34px;padding:8px 0;font-size:14px;line-height:1;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink)}
.mvx.sm:disabled{opacity:.3}
.bexc{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px;margin-bottom:8px}
.bexctop{display:flex;gap:6px;align-items:center;margin-bottom:8px}
.bexname{flex:1;min-width:0;text-align:left;background:none;border:none;color:var(--ink);font-size:14px;font-weight:600;padding:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bexname .tag{font-size:10px}
.bexrow{margin-bottom:7px}
.bexrow label{display:block;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:4px}
.bexinp{width:100%;background:var(--bg);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:14px;padding:9px 10px}
textarea.bexinp{min-height:60px;font-family:var(--body)}
.bexsel{appearance:none;-webkit-appearance:none}
.bexmore{width:100%;text-align:left;padding:6px 2px;background:none;border:none;color:var(--accent);font-size:12.5px}
.bdaycardio{margin-top:8px;padding-top:9px;border-top:1px solid var(--line)}
.bexdel,.resumex{cursor:pointer}
.bexdel{flex:none;background:none;border:1px solid rgba(224,102,78,.4);border-radius:8px;color:var(--danger);font-size:14px;width:34px;padding:8px 0}
.baddex{width:100%;padding:10px;border:1px dashed var(--line);border-radius:8px;background:transparent;color:var(--muted);font-size:13px;margin-bottom:4px}
.toggle{width:46px;height:27px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);position:relative;flex:none}
.toggle>i{position:absolute;top:2px;left:2px;width:21px;height:21px;border-radius:50%;background:var(--muted);transition:.18s}
.toggle.on{background:rgba(242,160,61,.25);border-color:var(--accent)}
.toggle.on>i{left:21px;background:var(--accent)}
.progitem{display:flex;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}
.progitem:last-child{border-bottom:none}
.progitem .radio{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center}
.progitem .radio.on{border-color:var(--accent)}
.progitem .radio.on::after{content:"";width:11px;height:11px;border-radius:50%;background:var(--accent)}
.progitem .pn{flex:1;font-size:14px}
.progitem .pn small{display:block;color:var(--muted);font-family:var(--mono);font-size:11px}
.btnrow{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.btnrow button{flex:1;min-width:120px;padding:11px;border:1px solid var(--line);border-radius:9px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:12px;color:var(--ink);background:var(--panel2)}
.btnrow button.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btnrow button.dng{color:var(--danger);border-color:rgba(224,102,78,.4);background:transparent}
.mvgrp{display:flex;align-items:center;gap:6px;flex:1;min-width:120px}
.mvlbl{font-family:var(--mono);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.btnrow button.mvx{flex:0 0 auto;min-width:0;width:46px;padding:11px 0;font-size:18px;line-height:1;background:var(--panel2);color:var(--ink)}
.btnrow button.mvx:disabled{opacity:.32}

.footer{text-align:center;margin:22px 0 6px}
.footer button{font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:underline;padding:8px}
.banner{background:rgba(224,102,78,.12);border:1px solid rgba(224,102,78,.4);color:#f0a896;font-size:12px;padding:9px 11px;border-radius:9px;margin:8px 0;font-family:var(--mono)}
.toast{position:fixed;bottom:calc(96px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line);color:var(--ink);padding:11px 18px;border-radius:24px;font-size:13px;opacity:0;transition:opacity .25s;pointer-events:none;z-index:70;max-width:90%;text-align:center}
.toast.show{opacity:1}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.62);display:none;align-items:center;justify-content:center;z-index:80;padding:20px}
.modal.show{display:flex}
.modal .card{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:18px;max-width:460px;width:100%;max-height:86vh;overflow:auto}
.modal h3{font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:16px;margin:0 0 4px}
.modal .msub{color:var(--muted);font-size:12.5px;margin-bottom:12px}
.anombox{background:rgba(224,102,78,.08);border:1px solid rgba(224,102,78,.4);border-radius:10px;padding:10px 12px;margin:6px 0 4px}
.anomh{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:12px;color:#f0a896;margin-bottom:7px}
.anomrow{font-size:13px;line-height:1.4;color:var(--ink);padding:4px 0;border-top:1px solid rgba(224,102,78,.18)}
.anomrow:first-of-type{border-top:none}
.modal textarea,.modal input{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:9px;color:var(--ink);font-size:15px;padding:10px}
.modal textarea{font-family:var(--mono);font-size:12px;height:150px;resize:vertical}
.modal .mrow{display:flex;gap:8px;margin-top:14px}
.modal .mbtn{flex:1;padding:12px;border-radius:9px;font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:12.5px;background:var(--panel2);border:1px solid var(--line);color:var(--ink)}
.modal .mbtn.pri{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.modal .mbtn.dng{color:var(--danger);border-color:rgba(224,102,78,.4);background:transparent}
.sumgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:8px 0}
.sumgrid .sc{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:12px}
.sumgrid .sc .n{font-family:var(--mono);font-size:22px;font-weight:700}
.sumgrid .sc .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}
.prbox{background:rgba(116,201,138,.12);border:1px solid rgba(116,201,138,.4);border-radius:10px;padding:11px 12px;margin-top:6px}
.prbox .pt2{font-family:var(--disp);text-transform:uppercase;letter-spacing:.06em;font-size:13px;color:var(--gain)}
.prbox .pl{font-family:var(--mono);font-size:12px;color:#bfe6c9;margin-top:5px}
.weekhead{display:flex;align-items:center;gap:8px;margin:6px 0 10px}
.weekhead .wnav{width:42px;height:42px;border:1px solid var(--line);border-radius:11px;background:var(--panel);font-size:22px;color:var(--muted);flex:none}
.weekhead .wtitle{flex:1;text-align:center}
.weekhead .wrng{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:17px;font-weight:600}
.weekhead .wsub{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:1px}
.wtoday{width:100%;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--panel);color:var(--accent);font-family:var(--mono);font-size:12px;margin-bottom:10px}
.wday{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;overflow:hidden}
.wday.istoday{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}
.wday.isrest{opacity:.72}
.wday.isskip{opacity:.6}
.wmain{flex:1;display:flex;align-items:center;gap:11px;padding:12px 6px 12px 13px;text-align:left;min-width:0}
.wmain:disabled{cursor:default}
.wdate{flex:none;width:44px;text-align:center}
.wdate .wdw{font-family:var(--disp);text-transform:uppercase;font-size:13px;font-weight:600;color:var(--muted);letter-spacing:.05em}
.wday.istoday .wdate .wdw{color:var(--accent)}
.wdate .wdn{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:1px}
.winfo{flex:1;min-width:0}
.winfo .wname{font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.winfo .wname.strike{text-decoration:line-through;color:var(--muted)}
.wday.isrest .wname{color:var(--muted)}
.winfo .wcardio{font-family:var(--mono);font-size:11px;color:var(--accent);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.winfo .wmeta{font-family:var(--mono);font-size:11px;color:var(--gain);margin-top:3px}
.wstat{flex:none;font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600;padding:0 6px;white-space:nowrap}
.wstat.done{color:var(--gain)}
.wstat.today{color:var(--accent)}
.wstat.kesken{color:var(--danger)}
.wstat.skip{color:var(--muted)}
.wstat.miss{color:var(--muted);font-weight:400;font-family:var(--mono);text-transform:none;font-size:10px}
.wstat.chev{color:var(--muted);font-size:18px}
.wopts{flex:none;width:38px;border-left:1px solid var(--line);color:var(--muted);font-size:19px;background:var(--panel2)}
.wtop{display:flex;align-items:stretch}
.dsesswrap{border-top:1px solid var(--line);padding:5px 8px 7px}
.dsess{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:6px 5px;border-radius:8px}
.dsess:active{background:var(--panel2)}
.dsess .dsi{color:var(--gain);font-size:13px;flex:none;width:14px}
.dsess .dsn{flex:1;font-family:var(--disp);text-transform:uppercase;letter-spacing:.03em;font-size:13px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dsess .dsm{font-family:var(--mono);font-size:11px;color:var(--muted);flex:none}
.doptgrid{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px}
.doptgrid .dopt{flex:1;min-width:46%;padding:11px 8px;border:1px solid var(--line);border-radius:9px;background:var(--panel2);color:var(--ink);font-family:var(--disp);text-transform:uppercase;letter-spacing:.03em;font-size:13px}
.doptgrid .dopt.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}

/* ===== AI-valmentaja (chat) ===== */
.coachfab{position:fixed;right:16px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:70;width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:var(--accent-ink);font-size:25px;line-height:1;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 20px rgba(0,0,0,.45),0 0 0 4px rgba(242,160,61,.14);cursor:pointer;transition:transform .12s}
.coachfab:active{transform:scale(.9)}
.coachsheet{display:flex;flex-direction:column;height:min(76vh,640px);margin:-18px;padding:0}
.coachhead{display:flex;align-items:center;justify-content:space-between;padding:14px 16px 12px;border-bottom:1px solid var(--line)}
.coachtitle{font-family:var(--disp);text-transform:uppercase;letter-spacing:.07em;font-size:15px;color:var(--ink)}
.coachx{background:none;border:none;color:var(--muted);font-size:17px;padding:4px 8px;cursor:pointer}
.coachmsgs{flex:1;overflow-y:auto;padding:14px 14px 6px;display:flex;flex-direction:column;gap:10px;-webkit-overflow-scrolling:touch}
.cbub{max-width:84%;padding:10px 13px;border-radius:15px;font-size:14.5px;line-height:1.45;word-wrap:break-word}
.cbub.me{align-self:flex-end;background:var(--accent);color:var(--accent-ink);border-bottom-right-radius:5px}
.cbub.bot{align-self:flex-start;background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:5px}
.cbub b{font-weight:700}
.ctyping{display:inline-flex;gap:4px;padding:2px 0}
.ctyping i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:ctb 1s infinite ease-in-out}
.ctyping i:nth-child(2){animation-delay:.15s}.ctyping i:nth-child(3){animation-delay:.3s}
@keyframes ctb{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.coachintro{text-align:center;color:var(--muted);padding:26px 16px;margin:auto 0}
.coachavatar{font-size:40px;margin-bottom:8px}
.coachhi{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:16px;color:var(--ink);margin-bottom:6px}
.coachsub{font-size:13px;line-height:1.5}
.coachchips{display:flex;gap:7px;overflow-x:auto;padding:8px 14px;border-top:1px solid var(--line);-webkit-overflow-scrolling:touch;scrollbar-width:none}
.coachchips::-webkit-scrollbar{display:none}
.coachchip{flex:0 0 auto;white-space:nowrap;padding:8px 12px;border-radius:16px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:12.5px;cursor:pointer}
.coachchip:active{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.coachinputrow{display:flex;gap:8px;align-items:flex-end;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line)}
.modal .coachinputrow textarea{flex:1;height:42px;min-height:42px;max-height:120px;font-family:var(--body);font-size:15px;padding:10px 12px;resize:none;line-height:1.3}
.coachsend{flex:0 0 auto;width:44px;height:42px;border-radius:11px;border:none;background:var(--accent);color:var(--accent-ink);font-size:17px;cursor:pointer}
.coachsend:active{transform:scale(.92)}

/* ===== Automaattinen valmennus: suunnitelmakortti + reaktiot ===== */
.coachbrief{background:linear-gradient(160deg,rgba(242,160,61,.13),rgba(242,160,61,.04));border:1px solid var(--accent);border-radius:13px;padding:12px 13px;margin-bottom:12px}
.coachbrief .cbhead{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:13.5px;color:var(--accent);margin-bottom:8px}
.coachbrief .planrow{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:4px 0;border-top:1px solid rgba(242,160,61,.14)}
.coachbrief .planrow:first-of-type{border-top:none}
.coachbrief .plname{font-size:13.5px;color:var(--ink)}
.coachbrief .plrx{font-family:var(--mono);font-size:12.5px;color:var(--accent);white-space:nowrap;text-align:right}
.coachbrief .plrx i{color:var(--muted);font-style:normal}
.coachbrief .cbfoot{font-size:11.5px;color:var(--muted);margin-top:8px;line-height:1.4}
.ptreact{border-radius:10px;padding:9px 11px;margin-top:9px;font-size:13px;line-height:1.45}
.ptreact b{font-weight:700}
.ptreact.miss{background:rgba(224,102,78,.12);border:1px solid rgba(224,102,78,.5);color:#F0B9AC}
.ptreact.win{background:rgba(116,201,138,.12);border:1px solid rgba(116,201,138,.5);color:#A6E0B4}
.ptreact.ok{background:var(--panel2);border:1px solid var(--line);color:var(--muted)}

/* ===== AI-ohjelmamuutokset (chat) ===== */
.coachact{margin-top:10px;background:var(--panel);border:1px solid var(--accent);border-radius:11px;padding:10px 11px}
.coachact .cahead{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:11.5px;color:var(--accent);margin-bottom:7px}
.coachact .caitem{font-size:13.5px;color:var(--ink);padding:4px 0;line-height:1.4}
.coachact .caitem b{font-weight:700}
.coachact .caday{font-family:var(--mono);font-size:11px;color:var(--muted);background:var(--panel2);border-radius:5px;padding:1px 5px;margin-left:4px}
.coachact .carow{display:flex;gap:8px;margin-top:9px}
.coachact .cabtn{flex:1;padding:10px;border-radius:9px;border:none;background:var(--accent);color:var(--accent-ink);font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;cursor:pointer}
.coachact .cabtn.ghost{background:var(--panel2);color:var(--muted);border:1px solid var(--line);flex:0 0 auto;padding:10px 12px}
.coachact .cadone{margin-top:8px;font-size:12.5px;color:var(--gain);font-family:var(--mono)}

/* ===== Valmentajan sparraus (AI alkupuhe / analyysi) ===== */
.coachsparbtn{display:block;width:100%;margin-top:10px;padding:11px;border-radius:9px;border:1px dashed var(--accent);background:rgba(242,160,61,.07);color:var(--accent);font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:12.5px;cursor:pointer}
.coachsparbtn:disabled{opacity:.6}
.coachsparbox{margin-top:10px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:9px;padding:11px 12px;font-size:13.5px;line-height:1.5;color:var(--ink)}
.coachsparbox b{font-weight:700}

/* ===== Ravinto & kalorit ===== */
.nutriwelcome{text-align:center;padding:26px 14px}
.nutriwelcome .nwemoji{font-size:46px}
.nutriwelcome .nwtitle{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:19px;margin:10px 0 8px}
.nutriwelcome .nwsub{font-size:14px;color:var(--muted);line-height:1.55;max-width:340px;margin:0 auto}
.datenav{display:flex;align-items:center;justify-content:center;gap:16px;margin:2px 0 12px}
.datenav .dnav{width:36px;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--panel2);color:var(--ink);font-size:18px}
.datenav .dnav:disabled{opacity:.3}
.datenav .dncur{font-family:var(--disp);text-transform:uppercase;letter-spacing:.05em;font-size:14px;min-width:120px;text-align:center}
.calcard{background:var(--panel);border:1px solid var(--line);border-radius:15px;padding:16px;text-align:center;margin-bottom:12px}
.calcard.over{border-color:var(--danger)}
.calbig{display:flex;flex-direction:column;align-items:center;margin-bottom:10px}
.calbig .calnum{font-family:var(--disp);font-size:44px;line-height:1;color:var(--accent)}
.calcard.over .calnum{color:var(--danger)}
.calbig .callbl{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-top:3px}
.calbar{height:8px;background:var(--panel2);border-radius:5px;overflow:hidden;margin:6px 0}
.calbar>i{display:block;height:100%;background:var(--accent);border-radius:5px;transition:width .3s}
.calcard.over .calbar>i{background:var(--danger)}
.calrow{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11.5px;color:var(--muted)}
.macrorow{display:flex;gap:8px;margin-top:12px}
.macro{flex:1;background:var(--panel2);border-radius:9px;padding:8px 4px}
.macro .mval{font-family:var(--disp);font-size:16px;color:var(--ink)}
.macro .mval span{font-size:10.5px;color:var(--muted)}
.macro .mval.over{color:var(--danger)}
.macro .mlbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}
.goalline{font-size:12.5px;color:var(--muted);background:var(--panel2);border-radius:9px;padding:9px 11px;margin-bottom:6px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.goalline .editgoal{margin-left:auto;background:none;border:none;color:var(--accent);font-size:12px;text-decoration:underline;cursor:pointer}
.fooditem{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px 12px;margin-bottom:7px}
.fooditem .finfo{flex:1;min-width:0}
.fooditem .fname{font-size:14px;color:var(--ink)}
.fooditem .fmacros{font-family:var(--mono);font-size:11px;color:var(--muted);margin-top:2px}
.fooditem .fkcal{font-family:var(--disp);font-size:17px;color:var(--accent)}
.fooditem .fdel{background:none;border:none;color:var(--muted);font-size:15px;padding:2px 4px}
.addfoodbtn{width:100%;padding:13px;border-radius:11px;border:1px dashed var(--accent);background:rgba(242,160,61,.07);color:var(--accent);font-family:var(--disp);text-transform:uppercase;letter-spacing:.04em;font-size:13px;margin-top:6px}
.nfgrid{display:flex;flex-direction:column;gap:9px;margin:4px 0}
.nfrow{display:flex;align-items:center;gap:10px}
.nfrow label{flex:0 0 110px;font-size:13px;color:var(--muted)}
.nfrow input,.nfrow select{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--ink);font-size:15px;padding:9px 10px}
.segbtns{flex:1;display:flex;gap:6px}
.segbtns button{flex:1;padding:9px 4px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);color:var(--ink);font-size:12.5px}
.segbtns button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.nfhint{font-size:13px;color:var(--accent);background:rgba(242,160,61,.08);border-radius:8px;padding:9px 11px;margin-top:10px;text-align:center}
.nfhint b{font-weight:700}
.fmanual{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.festimating{font-size:13px;color:var(--muted);padding:9px 0;text-align:center}
.festimating.ok{color:var(--ink)}
.festimating.err{color:var(--danger)}
.festimating .fnote{font-size:11.5px;color:var(--muted);margin-top:4px}
