*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="light"]{color-scheme:light}
:root,html[data-theme="dark"]{
  --or:#FF7A2E;--bg:#000000;--bg2:rgba(255,255,255,.055);--bg3:rgba(255,255,255,.095);
  --bd:rgba(255,255,255,.09);--bd2:rgba(255,255,255,.14);
  --tx:#f5f3ef;--mu:#98989f;--mu2:#c9c9d1;--gr:#4ee398;--bl:#5fb8ff;--ye:#ffd75e;
  --nav-bg:rgba(28,28,30,.62);--overlay:rgba(0,0,0,.6);--note-box:rgba(255,255,255,.045);
  --chart-bg:#141416;--chart-grid:#3a3a44;--chart-text:#c5c5d0;
  --ad-red:#ff7a7a;--ad-bl:#5fb8ff;--ad-gr:#2bd968;
  --st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px);--fs-scale:1;
  --glass-blur:blur(30px) saturate(180%);--glass-blur-lite:blur(20px) saturate(160%);
  --r-card:22px;--r-lg:30px;--r-pill:100px;
  --shadow-card:0 1px 1px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.4);
  --hairline:rgba(255,255,255,.14);
}
html[data-theme="light"]{
  --bg:#eef0f3;--bg2:rgba(255,255,255,.7);--bg3:rgba(255,255,255,.92);
  --bd:rgba(0,0,0,.07);--bd2:rgba(0,0,0,.1);
  --tx:#15151a;--mu:#70707a;--mu2:#3a3a42;
  --gr:#14864a;--bl:#1d4ed8;--ye:#946800;
  --nav-bg:rgba(255,255,255,.62);--overlay:rgba(0,0,0,.35);--note-box:rgba(0,0,0,.04);
  --chart-bg:#fafafa;--chart-grid:#d4d4dc;--chart-text:#4a4a55;
  --ad-red:#c0241f;--ad-bl:#1d4ed8;--ad-gr:#14864a;
  --shadow-card:0 1px 2px rgba(0,0,0,.04),0 10px 28px rgba(0,0,0,.07);
  --hairline:rgba(0,0,0,.08);
}
body{background:var(--bg);color:var(--tx);font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text','DM Sans',sans-serif;font-size:calc(15px * var(--fs-scale));line-height:1.45;padding-bottom:calc(96px + var(--sb));-webkit-text-size-adjust:100%;transition:background .3s,color .3s}
html[data-theme="dark"] body{background-image:radial-gradient(ellipse 90% 50% at 50% 0%,rgba(255,122,46,.10) 0%,transparent 60%),radial-gradient(ellipse 70% 40% at 100% 20%,rgba(95,184,255,.06) 0%,transparent 60%);background-attachment:fixed}

/* LOGIN */
#loginScreen{
  position:fixed;inset:0;z-index:1000;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:calc(24px + var(--st)) 20px calc(24px + var(--sb));
  background:var(--bg);
  background-image:radial-gradient(ellipse 120% 80% at 50% -20%,rgba(252,76,2,.18) 0%,transparent 55%);
}
#loginScreen.hidden{display:none}
.login-brand{display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:36px}
.login-mark{
  width:76px;height:76px;border-radius:22px;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#FF9A52 0%,#FF7A2E 55%,#D9500F 100%);
  color:#fff;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;font-size:38px;
  box-shadow:0 10px 28px rgba(255,122,46,.4),0 1px 0 rgba(255,255,255,.25) inset;
}
.login-word{
  font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:700;letter-spacing:-.01em;
  font-size:calc(1.5rem * var(--fs-scale));color:var(--tx);
}
.login-word em{color:var(--or);font-style:normal;font-weight:800}
.login-card{
  background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:24px 22px 22px;width:100%;max-width:360px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-card);
}
.login-field{margin-bottom:14px}
.login-lbl{display:block;font-size:calc(12px * var(--fs-scale));font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.06em;color:var(--mu2);margin-bottom:8px;font-weight:700}
.login-input{
  width:100%;background:var(--bg3);border:1px solid var(--bd2);border-radius:16px;
  padding:16px 16px;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-size:17px;color:var(--tx);
  outline:none;min-height:52px;-webkit-appearance:none;transition:border-color .15s,box-shadow .15s;
}
.login-input::placeholder{color:var(--mu);opacity:.85}
.login-input:focus{border-color:var(--or);box-shadow:0 0 0 3px rgba(255,122,46,.2)}
.login-btn{
  width:100%;background:var(--or);color:#fff;border:none;border-radius:var(--r-pill);
  padding:16px;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-size:calc(1.05rem * var(--fs-scale));
  letter-spacing:0;cursor:pointer;margin-top:6px;min-height:52px;font-weight:700;
  box-shadow:0 6px 20px rgba(255,122,46,.35);transition:transform .15s cubic-bezier(.34,1.56,.64,1),opacity .15s;
}
.login-btn:active{opacity:.92;transform:scale(.96)}
.login-err{font-size:calc(13px * var(--fs-scale));color:var(--ad-red);text-align:center;margin-top:12px;min-height:18px;font-weight:600;line-height:1.4}
.login-ver{margin-top:20px;font-size:calc(10px * var(--fs-scale));color:var(--mu);font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;opacity:.7}

/* NAVBAR */
.nav{
  position:fixed;left:10px;right:10px;bottom:calc(10px + var(--sb));z-index:100;
  background:var(--nav-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--hairline);border-radius:28px;
  display:flex;padding:8px 6px;box-shadow:var(--shadow-card);
  transition:transform .2s cubic-bezier(.34,1.56,.64,1);
}
.ni{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;color:var(--mu);transition:color .2s,transform .12s;min-height:52px;padding:6px 2px;border-radius:20px;position:relative;z-index:1}
.ni.on{color:var(--or)}
.ni.on::before{content:'';position:absolute;inset:2px;background:rgba(255,122,46,.14);border-radius:18px;z-index:-1}
.ni:active{transform:scale(.92)}
.ni-l{font-size:calc(10.5px * min(var(--fs-scale),1.15));letter-spacing:.01em;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 1px;font-weight:600}
.ni-i{font-size:calc(22px * min(var(--fs-scale),1.15));transition:transform .25s cubic-bezier(.34,1.56,.64,1)}
.ni.on .ni-i{transform:translateY(-1px) scale(1.05)}

/* PAGES */
.pg{display:none}.pg.on{display:block}
.hero{padding:calc(var(--st) + 22px) 16px 18px}
.htag{font-size:calc(12px * var(--fs-scale));letter-spacing:.16em;text-transform:uppercase;color:var(--or);font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;margin-bottom:6px;font-weight:700}
.htitle{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.6rem * var(--fs-scale));line-height:1;margin-bottom:12px}
.htitle em{color:var(--or);font-style:normal}
.cd{
  background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-lg);padding:18px 20px;margin-bottom:12px;
  display:flex;align-items:center;flex-wrap:wrap;row-gap:10px;gap:12px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-card);
  position:relative;overflow:hidden;
}
.cdb{min-width:0}
.cd::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,122,46,.14) 0%,transparent 55%);pointer-events:none}
.cdb{display:flex;gap:8px;flex:1}.cdbl{text-align:center;flex:1}
.cdn{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.1rem * var(--fs-scale));color:var(--tx);line-height:1}
.cdl{font-size:calc(10px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.06em;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;margin-top:3px;font-weight:600}
.cds{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:700;font-size:calc(1.6rem * var(--fs-scale));color:var(--mu);line-height:1}
.px16{padding:0 16px}
.slbl{font-size:calc(12.5px * var(--fs-scale));font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;letter-spacing:-.01em;color:var(--mu2);margin:22px 0 10px;display:flex;align-items:center;gap:8px;font-weight:700}
.slbl::after{content:'';flex:1;height:1px;background:var(--bd2)}
.card{
  background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:16px 18px;margin-bottom:12px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-card);
}
.ph{padding:calc(var(--st) + 16px) 16px 0}
.pht{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.1rem * var(--fs-scale));margin-bottom:2px}
.phs{font-size:calc(13px * var(--fs-scale));color:var(--mu2);margin-bottom:14px}
/* Zakupy: nagłówek kompaktowy, więcej miejsca na listę */
#sh .ph{padding:calc(var(--st) + 8px) 16px 0}
#sh .pht{font-size:calc(1.25rem * var(--fs-scale));margin-bottom:0}
#sh .phs{margin-bottom:6px}

/* WEIGHT */
.wcard{
  background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:16px 18px;margin-bottom:12px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-card);
}
.wbt{height:8px;background:var(--bg3);border-radius:100px;overflow:visible;position:relative;margin:10px 0;border:1px solid var(--bd)}
.wbf{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--gr),var(--or));transition:width .5s cubic-bezier(.34,1.2,.64,1)}
.wir{display:flex;gap:8px;margin-top:10px}
.wi{flex:1;background:var(--bg3);border:1px solid var(--bd2);border-radius:16px;padding:12px;font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-size:17px;font-weight:600;color:var(--tx);outline:none;text-align:center;min-height:48px;transition:border-color .15s}
.wi:focus{border-color:var(--or);box-shadow:0 0 0 3px rgba(255,122,46,.16)}
.bsv{background:var(--or);color:white;border:none;border-radius:var(--r-pill);padding:12px 22px;font-size:calc(14px * var(--fs-scale));font-weight:700;cursor:pointer;min-height:48px;transition:transform .15s cubic-bezier(.34,1.56,.64,1),opacity .15s;box-shadow:0 4px 14px rgba(255,122,46,.35)}
.bsv:active{transform:scale(.94);opacity:.9}

/* TRAINING */
.td{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);margin-bottom:12px;overflow:hidden;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card)}
.td-row{display:flex;align-items:flex-start;gap:12px;padding:14px 16px}
.td-name{font-family:'DM Mono',monospace;font-size:calc(14px * var(--fs-scale));font-weight:600;width:32px;flex-shrink:0;padding-top:2px}
.td-body{flex:1;min-width:0}
.td-date{font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin-bottom:4px;line-height:1.3}
.td-tr{font-size:calc(15px * var(--fs-scale));line-height:1.5;font-weight:500}
.td-note{font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin-top:4px;line-height:1.45}
.badge{font-size:calc(10px * var(--fs-scale));padding:4px 10px;border-radius:100px;flex-shrink:0;font-family:'DM Mono',monospace;line-height:1.2}
.type-easy{background:rgba(74,176,255,.1);color:var(--bl)}
.type-key{background:rgba(255,209,102,.1);color:var(--ye)}
.type-long{background:rgba(61,220,132,.1);color:var(--gr)}
.type-rest{background:var(--bg3);color:var(--mu)}
.type-race{background:rgba(252,76,2,.2);color:var(--or)}
.td.st-ok{border-color:rgba(61,220,132,.35)}
.td.st-miss{border-color:rgba(255,107,107,.4)}
.td.st-warn{border-color:rgba(255,209,102,.35)}
.td-actual{margin:0 16px 12px;padding:12px 14px;background:rgba(61,220,132,.06);border:1px solid rgba(61,220,132,.15);border-radius:10px;font-size:calc(13px * var(--fs-scale));line-height:1.55}
.td-actual.miss{background:rgba(255,107,107,.06);border-color:rgba(255,107,107,.2)}
.td-actual.warn{background:rgba(255,209,102,.06);border-color:rgba(255,209,102,.2)}
.td-actual-lbl{font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--gr);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}
.td-actual.miss .td-actual-lbl{color:#ff6b6b}
.td-actual.warn .td-actual-lbl{color:var(--ye)}
.td-plan-lbl{font-size:calc(11px * var(--fs-scale));color:var(--mu);font-family:'DM Mono',monospace;margin-bottom:4px;text-transform:uppercase;letter-spacing:.04em}
.week-plan-bar{
  background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:16px 18px;margin-bottom:14px;
  backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card);
}
.week-plan-bar .wpt{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.7rem * var(--fs-scale));color:var(--or);line-height:1}
.week-plan-bar .wps{font-size:calc(13px * var(--fs-scale));color:var(--mu2);margin-top:6px;line-height:1.4}
.week-plan-bar .wpb{height:8px;background:var(--bg3);border-radius:100px;margin-top:10px;overflow:hidden}
.week-plan-bar .wpbf{height:100%;background:linear-gradient(90deg,var(--gr),var(--or));border-radius:100px;transition:width .5s cubic-bezier(.34,1.2,.64,1)}
.note-box{border-top:1px solid var(--bd);padding:12px 16px 14px;background:var(--note-box)}
.note-lbl{font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--mu2);margin-bottom:10px}
.note-sliders{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:10px}
.note-sl-head{display:flex;justify-content:space-between;align-items:baseline;gap:6px;margin-bottom:8px;min-height:22px}
.note-sl label{display:block;font-size:calc(11px * var(--fs-scale));color:var(--mu2);margin:0;font-weight:600}
.note-sl input[type=range]{width:100%;accent-color:var(--or);min-height:44px;margin:0;display:block}
.note-sl .nv{font-size:calc(14px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--or);font-weight:700;margin:0;flex-shrink:0}
.note-sl-sleep .note-sl-head{margin-bottom:6px}
.note-ta{width:100%;background:var(--bg3);border:1px solid var(--bd2);border-radius:10px;padding:12px;font-size:calc(14px * var(--fs-scale));color:var(--tx);resize:none;min-height:52px;font-family:'DM Sans',sans-serif;line-height:1.45}
.note-sleep{min-height:44px;text-align:center;font-family:'DM Mono',monospace}
.note-saved{font-size:calc(11px * var(--fs-scale));color:var(--gr);font-family:'DM Mono',monospace;margin-top:6px;min-height:16px}
.sheet-cols{display:grid;gap:8px;margin-bottom:10px;padding:10px;background:var(--bg3);border:1px solid var(--bd);border-radius:10px}
.sheet-col-lbl{font-size:calc(9px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;color:var(--mu2);letter-spacing:.06em;margin-bottom:4px}
.sheet-col-val{font-size:calc(12px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--tx);line-height:1.4;word-break:break-word}
.sheet-col-val.empty{color:var(--mu2)}
.note-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.note-btn{flex:1;min-width:120px;padding:10px 12px;border-radius:10px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx);font-size:calc(12px * var(--fs-scale));font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif}
.note-btn:active{opacity:.85}
.note-btn.primary{background:var(--or);border-color:var(--or);color:#fff}

/* DIET */
.dd{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);margin-bottom:10px;overflow:hidden;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card)}
.dd.run{border-left:4px solid var(--bl)}.dd.key{border-left:4px solid var(--ye)}
.dd.long{border-left:4px solid var(--gr)}.dd.rest{border-left:4px solid var(--bg3)}
.dd-head{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;min-height:52px}
.dd-name{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.6rem * var(--fs-scale));min-width:40px}
.dd-info{flex:1}.dd-sub{font-size:calc(13px * var(--fs-scale));color:var(--mu2)}
.dd-kcal{font-size:calc(16px * var(--fs-scale));font-weight:700}.dd-kcal small{font-size:calc(12px * var(--fs-scale));color:var(--mu);font-weight:400}
.dd-mac{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace}
.chev{font-size:calc(12px * var(--fs-scale));color:var(--mu2);transition:transform .2s;flex-shrink:0}
.chev.open{transform:rotate(180deg)}
.dd-body{display:none;border-top:1px solid var(--bd2);padding:14px}.dd-body.open{display:block}
.mac-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bd2);border-radius:10px;overflow:hidden;margin-bottom:14px}
.mac{background:var(--bg3);padding:10px 6px;text-align:center}
.mac-v{font-size:calc(17px * var(--fs-scale));font-weight:700}
.mac-l{font-size:calc(10px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.05em;font-family:'DM Mono',monospace;font-weight:600;margin-top:2px}
.meals{display:flex;flex-direction:column;gap:0}
.meal{padding:12px 0}
.meal-t{font-size:calc(11px * var(--fs-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--or);font-family:'DM Mono',monospace;margin-bottom:4px;font-weight:700}
.meal-n{font-size:calc(14px * var(--fs-scale));font-weight:600;margin-bottom:2px;line-height:1.3}
.meal-d{font-size:calc(13px * var(--fs-scale));color:var(--mu2);line-height:1.5}
.meal-k{font-size:calc(11px * var(--fs-scale));color:var(--mu2);margin-top:4px;font-family:'DM Mono',monospace}
.mdiv{border:none;border-top:1px solid var(--bd2);margin:0}
.recipe-btn{background:rgba(252,76,2,.16);color:var(--or);border:1px solid rgba(252,76,2,.4);border-radius:8px;padding:6px 12px;font-size:calc(12px * var(--fs-scale));cursor:pointer;font-family:'DM Mono',monospace;margin-top:6px;display:inline-block;font-weight:600;min-height:32px}
.recipe{display:none;background:var(--bg3);border-radius:10px;padding:14px;margin-top:10px;border-left:4px solid var(--or)}
.recipe.open{display:block}
.recipe-meta{display:flex;gap:12px;font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin-bottom:10px;font-family:'DM Mono',monospace}
.recipe-sec{font-size:calc(12px * var(--fs-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--or);font-family:'DM Mono',monospace;margin:10px 0 6px;font-weight:700}
.recipe ul,.recipe ol{padding-left:18px}
.recipe li{font-size:calc(13px * var(--fs-scale));color:var(--tx);line-height:1.7;transition:background .2s,border-color .2s}
.recipe-step{border-radius:6px;padding:4px 8px;margin:2px 0;border-left:3px solid transparent}
.recipe-step-active{background:rgba(252,76,2,.18);border-left-color:var(--or);color:var(--tx);font-weight:600}
.audio-btn-on{background:rgba(61,220,132,.2);border-color:rgba(61,220,132,.5)}
.audio-timer-row{display:flex;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
.audio-timer-btn{background:rgba(255,209,102,.15);border:1px solid rgba(255,209,102,.45);color:var(--ye);border-radius:8px;padding:6px 12px;font-size:calc(12px * var(--fs-scale));cursor:pointer;font-family:'DM Mono',monospace;font-weight:600}
.audio-timer-count{font-size:calc(12px * var(--fs-scale));color:var(--ye);font-family:'DM Mono',monospace}

/* PWA — natywny feel iPhone */
.pwa-splash{position:fixed;inset:0;z-index:20000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#080808;color:#fff;transition:opacity .4s ease,visibility .4s}
.pwa-splash-out{opacity:0;visibility:hidden;pointer-events:none}
.pwa-splash-icon{width:88px;height:88px;border-radius:22px;background:linear-gradient(135deg,#FF9A52,#D9500F);display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:800;font-family:-apple-system,BlinkMacSystemFont,sans-serif;box-shadow:0 12px 40px rgba(252,76,2,.35)}
.pwa-splash-title{font-family:'Bebas Neue',-apple-system,sans-serif;font-size:2.4rem;margin-top:18px;letter-spacing:.02em}
.pwa-splash-title em{color:#FC4C02;font-style:normal}
.pwa-splash-sub{font-size:calc(12px * var(--fs-scale));color:rgba(255,255,255,.55);margin-top:6px;font-family:'DM Mono',monospace}
html.pwa-standalone,html.pwa-standalone body{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}
html.pwa-ios body{touch-action:pan-y pinch-zoom}
html.pwa-standalone body{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
html.pwa-standalone .nav{left:max(10px,env(safe-area-inset-left));right:max(10px,env(safe-area-inset-right))}
html.pwa-ios .hero{padding-top:calc(var(--st) + 28px)}
html.pwa-standalone .app-ver{opacity:.55}
.dessert{background:rgba(252,76,2,.08);border:1px solid rgba(252,76,2,.25);border-radius:10px;padding:12px;margin-top:12px}
.dessert-t{font-size:calc(13px * var(--fs-scale));font-weight:700;color:var(--or);margin-bottom:6px}
.dessert-r{font-size:calc(12px * var(--fs-scale));color:var(--mu2);line-height:1.7;font-family:'DM Mono',monospace}
.alert{border-radius:10px;padding:10px 12px;margin-bottom:10px;font-size:calc(13px * var(--fs-scale));line-height:1.55;border-left:4px solid var(--or);background:rgba(252,76,2,.12);color:var(--tx);font-weight:500}
.alert.gr{border-left-color:var(--gr);background:rgba(61,220,132,.14);color:var(--tx)}
.alert.ye{border-left-color:var(--ye);background:rgba(255,209,102,.16);color:var(--tx)}

/* SHOP */
.spp{display:flex;align-items:center;gap:10px;padding:6px 16px 8px;background:var(--bg2);border-bottom:1px solid var(--bd2);position:sticky;top:0;z-index:10}
.spt{flex:1;height:6px;background:var(--bg3);border-radius:100px;overflow:hidden;border:1px solid var(--bd)}
.spf{height:100%;border-radius:100px;background:linear-gradient(90deg,var(--gr),var(--or));transition:width .4s cubic-bezier(.34,1.2,.64,1)}
.sptx{font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--mu2);font-weight:600}
.srst{font-size:calc(12px * var(--fs-scale));color:var(--mu2);background:none;border:none;cursor:pointer;padding:6px 10px;min-height:36px}
.shop-toolbar-compact{display:flex;gap:4px;align-items:center}
.shop-btn-compact{font-size:18px;padding:6px 8px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);cursor:pointer;min-height:34px;min-width:34px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.shop-btn-compact:active{transform:scale(.92);background:var(--bd2)}
.shop-search{width:calc(100% - 32px);margin:0 16px 8px;padding:8px 12px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx);font-size:calc(13px * var(--fs-scale));min-height:38px}
.scat{font-size:calc(12px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--or);padding:14px 16px 6px;font-weight:700}
.sg{background:var(--bg2);border-radius:var(--r-card);margin:0 16px 10px;overflow:hidden;border:1px solid var(--hairline);backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card)}
.si{display:flex;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--bd);cursor:pointer;min-height:52px}
.si:last-child{border-bottom:none}
.sic{width:26px;height:26px;border-radius:8px;border:2px solid var(--bd2);background:var(--bg3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .15s;color:transparent;font-weight:700}
.sic.done{background:var(--gr);border-color:var(--gr);color:white}
.sin{flex:1;font-size:calc(15px * var(--fs-scale));transition:color .15s}.sin.done{text-decoration:line-through;color:var(--mu2)}
.siq{font-size:calc(12px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;min-width:52px;text-align:right;font-weight:600}
.shop-toolbar-compact{display:flex;gap:4px;align-items:center}
.shop-btn-compact{font-size:18px;padding:6px 8px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);cursor:pointer;min-height:34px;min-width:34px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.shop-btn-compact:active{transform:scale(.92);background:var(--bd2)}
.shop-search{width:calc(100% - 32px);margin:0 16px 8px;padding:8px 12px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx);font-size:calc(13px * var(--fs-scale));min-height:38px}
.sheet-preview-hint{font-size:calc(10px * var(--fs-scale));color:var(--ye);font-family:'DM Mono',monospace;margin-top:2px}

/* Multi-Person Diet Planner */
.multi-person-section{margin-top:16px;padding:16px;background:var(--bg2);border-radius:var(--r-card);border:1px solid var(--bd);box-shadow:var(--shadow-card)}
.multi-person-section h3{font-size:calc(16px * var(--fs-scale));margin-top:0;margin-bottom:12px;color:var(--tx)}
.partner-card{background:var(--bg3);border:1px solid var(--bd2);border-radius:var(--r-card-sm);padding:12px;margin-bottom:10px}
.partner-card:last-of-type{margin-bottom:0}
.partner-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.partner-name{flex-grow:1;font-size:calc(15px * var(--fs-scale));font-weight:600;border:none;background:transparent;color:var(--tx);padding:0;min-height:auto}
.partner-name:focus{outline:none;border-bottom:1px solid var(--or)}
.btn-remove{background:none;border:none;color:var(--mu2);font-size:calc(18px * var(--fs-scale));cursor:pointer;padding:0 4px}
.partner-details label{display:block;font-size:calc(12px * var(--fs-scale));color:var(--mu2);font-weight:600;margin-top:10px;margin-bottom:4px}
.partner-details input[type="range"]{width:100%;margin-top:6px}
.partner-details .scale-value{font-size:calc(13px * var(--fs-scale));font-weight:600;color:var(--or);display:inline-block;margin-left:8px}
.partner-details textarea{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--bd);background:var(--bg2);color:var(--tx);font-size:calc(13px * var(--fs-scale));resize:vertical;min-height:40px}
#addPartnerBtn{margin-top:12px;width:100%}

.offline-banner{font-size:calc(12px * var(--fs-scale));color:var(--ye);background:rgba(255,209,102,.12);border:1px solid rgba(255,209,102,.35);border-radius:10px;padding:10px 14px;margin:0 16px 10px;text-align:center;font-weight:600}
.conn-status{padding:14px 16px;margin-bottom:12px}
.conn-status-title{font-size:calc(10.5px * var(--fs-scale));font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--mu2);font-weight:700;margin-bottom:10px}
.conn-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.conn-pill{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:16px;font-size:calc(11px * var(--fs-scale));line-height:1.35;min-height:44px;transition:transform .15s;overflow:hidden}
.conn-pill.ok{border-color:rgba(78,227,152,.35);background:rgba(78,227,152,.1)}
.conn-pill.warn{border-color:rgba(255,209,102,.4);background:rgba(255,209,102,.12)}
.conn-pill.err{border-color:rgba(255,107,107,.35);background:rgba(255,107,107,.1)}
.conn-pill b{display:block;font-weight:700;color:var(--tx);font-size:calc(11.5px * var(--fs-scale))}
.conn-pill span{display:block;color:var(--mu2);font-size:calc(10.5px * var(--fs-scale));max-width:100%;overflow:hidden;text-overflow:ellipsis}
.app-ver{position:fixed;bottom:calc(86px + var(--sb));right:10px;font-size:calc(10px * var(--fs-scale));color:var(--mu);font-family:'DM Mono',monospace;opacity:.7;z-index:50}
.weight-remind{font-size:calc(12px * var(--fs-scale));color:var(--ye);margin-top:8px;padding:10px 12px;background:rgba(255,209,102,.12);border-radius:8px;border:1px solid rgba(255,209,102,.3);font-weight:500}
.wch-trend{font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin-top:8px;font-family:'DM Mono',monospace}
.pred-compare{font-size:calc(10px * var(--fs-scale));color:var(--mu2);margin-top:4px;line-height:1.35}
.pred-hist{margin-top:10px;font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace}
.shop-btn.primary{background:var(--or);border-color:var(--or);color:#fff}
.shop-btn.danger{color:var(--ad-red);border-color:rgba(255,107,107,.5)}
.shop-edit-row{display:flex;gap:8px;align-items:center;padding:12px;border-bottom:1px solid var(--bd2);flex-wrap:wrap}
.shop-edit-row:last-child{border-bottom:none}
.shop-in{flex:1;min-width:0;background:var(--bg3);border:1px solid var(--bd2);border-radius:8px;padding:10px 12px;font-size:calc(14px * var(--fs-scale));color:var(--tx);font-family:'DM Sans',sans-serif;min-height:42px}
.shop-in.cat{flex:0 0 80px;font-size:calc(12px * var(--fs-scale));font-family:'DM Mono',monospace}
.shop-in.qty{flex:0 0 64px;text-align:center;font-family:'DM Mono',monospace;font-size:calc(13px * var(--fs-scale))}
.shop-del{width:40px;height:40px;border-radius:8px;border:1px solid var(--bd2);background:var(--bg3);color:var(--mu2);cursor:pointer;font-size:18px;flex-shrink:0}
.shop-add{margin:10px 16px 16px}
.shop-msg{font-size:calc(12px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--gr);padding:0 16px 8px;min-height:16px;font-weight:600}

/* STATS */
.sgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.sc{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:16px;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card)}
.scv{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.2rem * var(--fs-scale));line-height:1;margin-bottom:4px}
.scl{font-size:calc(11px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.06em;font-family:'DM Mono',monospace;font-weight:600}
.wch2{height:100px;display:flex;align-items:flex-end;gap:3px;padding:0 4px}
.wcb{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;justify-content:flex-end;height:100%}
.wcbar{width:100%;border-radius:3px 3px 0 0;min-height:2px}
.wclbl{font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;font-weight:600}

/* ACTIVITY DASHBOARD */
.lr-hero{
  background:linear-gradient(135deg,rgba(255,122,46,.22) 0%,rgba(255,122,46,.05) 100%);border:1px solid rgba(255,122,46,.4);
  border-radius:var(--r-lg);padding:18px 20px;margin-bottom:12px;
  backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-card);
}
.lr-top{display:flex;align-items:center;gap:8px;font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--or);margin-bottom:8px;font-weight:700}
.lr-name{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.7rem * var(--fs-scale));line-height:1.1;margin-bottom:8px;letter-spacing:.01em}
.lr-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:12px}
.lr-st{background:var(--bg3);border-radius:10px;padding:10px 4px;text-align:center;border:1px solid var(--bd)}
.lr-stv{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.45rem * var(--fs-scale));line-height:1}
.lr-stl{font-size:calc(10px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.06em;font-family:'DM Mono',monospace;margin-top:3px;font-weight:600}
.lr-cmp{font-size:calc(12px * var(--fs-scale));color:var(--mu2);line-height:1.7;padding-top:10px;border-top:1px solid var(--bd2)}
.lr-cmp .row{display:flex;justify-content:space-between;align-items:center;gap:6px}
.delta-up{color:var(--gr);font-weight:600} .delta-dn{color:var(--ad-red);font-weight:600} .delta-eq{color:var(--mu2)}

.pred{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:16px;margin-bottom:12px;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card)}
.pred-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.pred-tag{font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--mu2);font-weight:600}
.pred-val{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.8rem * var(--fs-scale));color:var(--or);line-height:1}
.pred-sub{font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin-top:2px}
.pred-bar{height:6px;background:var(--bg3);border-radius:100px;margin-top:10px;overflow:hidden;position:relative}
.pred-bf{height:100%;background:linear-gradient(90deg,var(--gr),var(--or));border-radius:100px;transition:width .4s cubic-bezier(.34,1.2,.64,1)}
.pred-mark{position:absolute;top:-3px;width:2px;height:12px;background:white;border-radius:1px}
.pred-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
@media(min-width:520px){.pred-grid{grid-template-columns:repeat(4,1fr)}}
.pred-dist{background:var(--bg3);border:1px solid var(--bd);border-radius:12px;padding:12px 10px;text-align:center}
.pred-dist-lbl{font-size:calc(10px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--mu);text-transform:uppercase}
.pred-dist-val{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.65rem * var(--fs-scale));line-height:1.1;margin:6px 0 2px;color:var(--or)}
.pred-dist-pace{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace}
.pred-dist-src{font-size:calc(9px * var(--fs-scale));color:var(--mu);margin-top:6px}
.pred-meta{font-size:calc(11px * var(--fs-scale));color:var(--mu2);line-height:1.45;margin-top:10px;padding-top:10px;border-top:1px solid var(--bd)}
.pred-meta b{color:var(--tx)}
.pred-garmin-badge{display:inline-block;font-size:calc(9px * var(--fs-scale));padding:2px 6px;border-radius:4px;background:rgba(0,150,200,.15);color:var(--bl);margin-left:6px}
.pred-dist.clickable{cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color .15s,background .15s}
.pred-dist.clickable.on{border-color:var(--or);background:rgba(252,76,2,.12)}
.chart-range{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.chart-range input[type=date]{flex:1;min-width:128px;padding:10px 12px;border-radius:14px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx);font-size:calc(13px * var(--fs-scale));font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;min-height:42px}
.chart-range .range-btn{font-size:calc(11px * var(--fs-scale));padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--bd2);background:var(--bg3);color:var(--mu2);cursor:pointer;font-weight:600;min-height:40px;transition:transform .15s,border-color .15s,color .15s}
.chart-range .range-btn:active{transform:scale(.93)}
.chart-range .range-btn.on{border-color:var(--or);color:var(--or);background:rgba(255,122,46,.12)}
.progress-chart-wrap{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:14px;margin-bottom:12px;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite)}
.progress-chart-wrap canvas{width:100%;height:160px;display:block;touch-action:pan-x pan-y}
.progress-chart-hint{font-size:calc(11px * var(--fs-scale));color:var(--mu2);margin-bottom:8px;font-weight:500}

.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.tile{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:12px 8px;text-align:center;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite)}
.tile-v{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.8rem * var(--fs-scale));line-height:1}
.tile-l{font-size:calc(10px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.06em;font-family:'DM Mono',monospace;margin-top:4px;font-weight:600}
.tile-s{font-size:calc(11px * var(--fs-scale));color:var(--mu2);margin-top:3px}

.kmch{height:110px;display:flex;align-items:flex-end;gap:4px;padding:6px 2px 0}
.kmb{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;justify-content:flex-end;cursor:pointer}
.kmbar{width:100%;border-radius:3px 3px 0 0;min-height:2px;background:var(--or);transition:opacity .15s}
.kmbar.future{background:var(--bg3);border:1px dashed var(--bd2)}
.kmbar.current{background:linear-gradient(180deg,var(--or),#d93d00)}
.kmlbl{font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;font-weight:600}
.kmval{font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace}

.pb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pb-card{background:var(--bg2);border:1px solid var(--bd2);border-radius:12px;padding:14px 8px;text-align:center;position:relative}
.pb-card.fresh{border-color:rgba(252,76,2,.55);background:rgba(252,76,2,.1)}
.pb-card.fresh::after{content:'NEW';position:absolute;top:6px;right:6px;font-size:calc(9px * var(--fs-scale));background:var(--or);color:white;padding:2px 5px;border-radius:4px;font-family:'DM Mono',monospace;letter-spacing:.05em;font-weight:700}
.pb-d{font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;text-transform:uppercase;font-weight:600}
.pb-v{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.55rem * var(--fs-scale));color:var(--or);margin:6px 0;line-height:1}
.pb-p{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace}
.pb-date{font-size:calc(10px * var(--fs-scale));color:var(--mu2);margin-top:3px}

.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.badge{background:var(--bg2);border:1px solid var(--bd2);border-radius:12px;padding:10px 4px;text-align:center;opacity:.4;filter:grayscale(1);transition:opacity .2s,filter .2s}
.badge.on{opacity:1;filter:none;border-color:rgba(252,76,2,.5);background:rgba(252,76,2,.08)}
.badge-ico{font-size:calc(1.5rem * var(--fs-scale));line-height:1}
.badge-lbl{font-size:calc(9px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.03em;font-family:'DM Mono',monospace;font-weight:600;margin-top:5px;line-height:1.25}
.badge-prog{font-size:calc(9px * var(--fs-scale));color:var(--mu);margin-top:2px;font-family:'DM Mono',monospace}

.act-list{display:flex;flex-direction:column;gap:8px}
.act{background:var(--bg2);border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}
.act-ico{width:36px;height:36px;border-radius:8px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:16px;border:1px solid var(--bd)}
.act-mid{min-width:0}
.act-n{font-size:calc(14px * var(--fs-scale));font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.act-meta{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;margin-top:3px}
.act-r{text-align:right}
.act-d{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.45rem * var(--fs-scale));line-height:1}
.act-p{font-size:calc(11px * var(--fs-scale));color:var(--or);font-family:'DM Mono',monospace;margin-top:3px;font-weight:600}

/* LOADING */
.loading{display:flex;align-items:center;justify-content:center;padding:40px;color:var(--mu2);font-family:'DM Mono',monospace;font-size:calc(13px * var(--fs-scale))}
.spin{width:20px;height:20px;border:2px solid var(--bd);border-top-color:var(--or);border-radius:50%;animation:spin .8s linear infinite;margin-right:10px}
@keyframes spin{to{transform:rotate(360deg)}}

/* SKELETON — stany ładowania zamiast samego spinnera */
@keyframes skel-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
.skel{background:linear-gradient(90deg,var(--bg2) 25%,var(--bg3) 50%,var(--bg2) 75%);background-size:400% 100%;animation:skel-shimmer 1.4s ease-in-out infinite;border-radius:6px;display:block}
.skel-card{background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:14px}
.skel-line{height:11px;margin-bottom:8px}
.skel-line:last-child{margin-bottom:0}
.skel-line.w30{width:30%}
.skel-line.w40{width:40%}
.skel-line.w50{width:50%}
.skel-line.w60{width:60%}
.skel-line.w70{width:70%}
.skel-line.w80{width:80%}
.skel-row{display:flex;gap:8px;margin-top:10px}
.skel-box{height:44px;flex:1;border-radius:8px}
.skel-list{display:flex;flex-direction:column;gap:8px}
.skel-list .skel-card{padding:12px}
html[data-theme="light"] .skel{background:linear-gradient(90deg,#e8e6e0 25%,#f4f2ec 50%,#e8e6e0 75%);background-size:400% 100%}

/* WEEK SELECTOR (bez natywnego select — iOS nie zasłania zegarem) */
.week-bar{
  position:sticky;top:0;z-index:60;
  background:rgba(17,17,17,.97);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--bd);
  padding:calc(8px + var(--st)) 12px 10px;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
/* Pasek tygodnia — pełna data; A−/A+ nad dolną nawigacją zamiast zasłaniać górę */
body.week-bar-on .global-font-ctrl{
  top:auto;
  bottom:calc(96px + var(--sb) + 8px);
}
body.week-bar-on .week-pick-label{overflow:visible;text-overflow:clip}
.week-nav{
  background:var(--bg3);border:1px solid var(--bd2);border-radius:10px;color:var(--tx);
  min-width:44px;min-height:44px;padding:0 12px;cursor:pointer;
  font-size:calc(20px * var(--fs-scale));line-height:1;flex-shrink:0;
  -webkit-tap-highlight-color:transparent;
}
.week-pick-btn{
  flex:1;min-width:0;min-height:44px;
  background:var(--bg3);border:1px solid var(--bd2);border-radius:12px;
  color:var(--tx);padding:10px 14px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:8px;
  font-family:'DM Mono',monospace;font-size:calc(13px * var(--fs-scale));
  -webkit-tap-highlight-color:transparent;
}
.week-pick-btn:active{border-color:var(--or)}
.week-pick-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.week-pick-chev{font-size:calc(12px * var(--fs-scale));color:var(--mu2);flex-shrink:0}
.font-ctrl{display:flex;gap:6px;margin-left:auto;flex-shrink:0}
.font-btn{
  min-width:40px;min-height:40px;border-radius:10px;
  background:var(--bg3);border:1px solid var(--bd2);color:var(--tx);
  font-family:'DM Mono',monospace;font-size:calc(14px * var(--fs-scale));font-weight:600;
  cursor:pointer;-webkit-tap-highlight-color:transparent;
}
.font-btn:disabled{opacity:.35}
.font-btn:active:not(:disabled){border-color:var(--or);color:var(--or)}
#tr .ph{padding-top:12px}
#tr .pht{font-size:calc(2.2rem * var(--fs-scale))}
#tr .phs{font-size:calc(13px * var(--fs-scale));line-height:1.4}
.sheet{position:fixed;inset:0;z-index:500;display:flex;flex-direction:column;justify-content:flex-end;pointer-events:none}
.sheet.open{pointer-events:auto}
.sheet-backdrop{position:absolute;inset:0;background:var(--overlay);opacity:0;transition:opacity .2s}
.sheet.open .sheet-backdrop{opacity:1}
.sheet-panel{
  position:relative;background:var(--bg2);border-top:1px solid var(--bd);
  border-radius:20px 20px 0 0;max-height:min(70vh,520px);
  padding:0 0 calc(12px + var(--sb));
  transform:translateY(100%);transition:transform .25s ease;
  display:flex;flex-direction:column;
}
.sheet.open .sheet-panel{transform:translateY(0)}
#goalsSheet .sheet-panel{overflow-y:auto;-webkit-overflow-scrolling:touch;max-height:min(88vh,640px)}
.sheet-handle{width:40px;height:4px;background:var(--bd2);border-radius:2px;margin:10px auto 6px}
.sheet-title{font-size:calc(12px * var(--fs-scale));font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.1em;color:var(--mu);padding:0 20px 10px}
.sheet-list{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 12px 8px}
.sheet-item{
  display:block;width:100%;text-align:left;
  background:var(--bg3);border:1px solid var(--bd);border-radius:12px;
  padding:14px 16px;margin-bottom:8px;color:var(--tx);
  font-family:'DM Mono',monospace;font-size:calc(15px * var(--fs-scale));
  cursor:pointer;min-height:48px;-webkit-tap-highlight-color:transparent;
}
.sheet-item.on{border-color:var(--or);background:rgba(252,76,2,.12);color:var(--or)}
.sheet-item:active{background:rgba(252,76,2,.18)}

/* Globalna czcionka A− / A+ */
.global-font-ctrl{
  display:none;position:fixed;top:calc(6px + var(--st));right:10px;z-index:90;
  align-items:center;gap:5px;background:var(--nav-bg);border:1px solid var(--hairline);
  border-radius:var(--r-pill);padding:5px 6px;
  backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite);box-shadow:var(--shadow-card);
}
.global-font-ctrl{display:flex;z-index:1001}
body:not(.logged-in) .global-font-ctrl .font-btn,body:not(.logged-in) .global-font-ctrl .font-lbl{display:none}
body.ad-open .global-font-ctrl .font-btn,body.ad-open .global-font-ctrl .font-lbl{display:none}
body.ad-open .global-font-ctrl{display:flex!important}
.ad-topbar{padding-right:12px}
.global-font-ctrl .theme-btn,.global-font-ctrl .font-btn{
  min-width:38px;min-height:38px;border:1px solid var(--bd);background:var(--bg3);border-radius:var(--r-pill);
  color:var(--tx);font-size:16px;cursor:pointer;line-height:1;font-weight:700;
  transition:transform .15s;
}
.global-font-ctrl .theme-btn:active,.global-font-ctrl .font-btn:active{background:var(--bd2);border-color:var(--or);transform:scale(.9)}
.global-font-ctrl .font-lbl{font-size:10.5px;color:var(--mu2);font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;min-width:34px;text-align:center;font-weight:700}
@media (max-width:400px){
  .global-font-ctrl{gap:4px;padding:4px 5px}
  .global-font-ctrl .theme-btn,.global-font-ctrl .font-btn{min-width:32px;min-height:32px;font-size:14px}
  .global-font-ctrl .font-lbl{display:none!important}
}
.hero .htag,.ph .htag{padding-right:112px;box-sizing:border-box;display:block}
@media (max-width:400px){.hero .htag,.ph .htag{padding-right:98px}}

/* Klikalne biegi → analiza */
.act-open{cursor:pointer;-webkit-tap-highlight-color:transparent}
.act-open:active{opacity:.92}
.lr-hero.act-open{cursor:pointer}

/* Pełna analiza biegu — dziedziczy motyw aplikacji */
.act-detail{
  --ad-bg:var(--bg);--ad-bg2:var(--bg2);--ad-bd:var(--bd2);--ad-tx:var(--tx);--ad-mu:var(--mu);
  --ad-or:var(--or);--ad-bl:var(--bl);--ad-red:#ff6b6b;--ad-gr:var(--gr);
  position:fixed;inset:0;z-index:1100;background:var(--ad-bg);display:flex;flex-direction:column;overflow:hidden;color:var(--ad-tx);
  width:100%;height:100dvh;height:100vh;min-height:100dvh;min-height:100vh;
}
.ad-analysis-banner{font-size:calc(12px * var(--fs-scale));color:var(--ad-mu);background:var(--ad-bg2);border:1px solid var(--ad-bd);border-radius:8px;padding:10px 12px;margin-bottom:12px;line-height:1.45}
.ad-analysis-banner.err{border-color:rgba(255,107,107,.35);color:var(--ad-red)}
.ad-coach-box{margin-top:16px;padding:14px;background:linear-gradient(135deg,rgba(252,76,2,.12),rgba(43,217,104,.06));border:1px solid rgba(252,76,2,.35);border-radius:12px}
.ad-coach-title{font-family:'DM Mono',monospace;font-size:calc(11px * var(--fs-scale));text-transform:uppercase;letter-spacing:.08em;color:var(--ad-or);font-weight:700;margin-bottom:8px}
.ad-coach-verdict{font-size:calc(15px * var(--fs-scale));font-weight:600;line-height:1.45;margin-bottom:10px;color:var(--ad-tx)}
.ad-coach-h{font-size:calc(13px * var(--fs-scale));color:var(--ad-or);margin:12px 0 6px;font-weight:700}
.ad-coach-p{font-size:calc(13px * var(--fs-scale));line-height:1.55;color:var(--ad-tx);margin:4px 0}
.ad-coach-ul{margin:4px 0 8px 18px;padding:0}
.ad-coach-ul li{font-size:calc(13px * var(--fs-scale));line-height:1.55;margin-bottom:4px}
.ad-coach-err,.ad-coach-pending{font-size:calc(13px * var(--fs-scale));color:var(--ad-mu);line-height:1.5}
.coach-snippet{font-size:calc(12px * var(--fs-scale));color:var(--mu2);line-height:1.45;margin-top:10px;padding:10px 12px;background:rgba(43,217,104,.08);border:1px solid rgba(43,217,104,.25);border-radius:8px}
.coach-snippet b{color:var(--gr)}
.act-detail[hidden]{display:none!important}
.ad-topbar{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:calc(8px + var(--st)) 12px 8px;border-bottom:1px solid var(--ad-bd);background:var(--ad-bg)}
.ad-back{width:40px;height:40px;border:none;background:transparent;color:var(--ad-tx);font-size:22px;cursor:pointer;border-radius:8px}
.ad-back:active{background:var(--ad-bg2)}
.ad-topbar-fill{flex:1;font-size:calc(15px * var(--fs-scale));font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ad-top-actions{display:flex;gap:14px;align-items:center;font-size:calc(13px * var(--fs-scale));color:var(--ad-mu)}
.ad-top-actions b{color:var(--ad-tx);font-weight:600}
.ad-scroll{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(24px + var(--sb));background:var(--ad-bg)}
.ad-layout{display:flex;flex-direction:column;max-width:1100px;margin:0 auto}
@media(min-width:768px){.ad-layout{flex-direction:row;align-items:flex-start;padding:20px 16px 0;gap:24px}}
.ad-sidebar{padding:16px;border-bottom:1px solid var(--ad-bd)}
@media(min-width:768px){.ad-sidebar{flex:0 0 280px;border-bottom:none;padding:0}}
.ad-avatar{width:56px;height:56px;background:linear-gradient(135deg,var(--ad-or),#ff8c42);clip-path:polygon(50% 0%,100% 25%,100% 75%,50% 100%,0% 75%,0% 25%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;margin-bottom:12px}
.ad-side-date{font-size:calc(13px * var(--fs-scale));color:var(--ad-mu);line-height:1.4}
.ad-side-loc{font-size:calc(13px * var(--fs-scale));color:var(--ad-mu);margin-top:2px}
.ad-side-title{font-size:calc(20px * var(--fs-scale));font-weight:700;margin:14px 0 8px;line-height:1.25;color:var(--ad-tx)}
.ad-side-desc{font-size:calc(14px * var(--fs-scale));color:var(--ad-tx);line-height:1.45}
.ad-main{flex:1;min-width:0}
.ad-block{padding:16px;border-bottom:1px solid var(--ad-bd)}
.ad-stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 12px}
@media(min-width:520px){.ad-stat-grid{grid-template-columns:repeat(4,1fr)}}
.ad-stat-grid.row3{grid-template-columns:repeat(3,1fr)}
.ad-sl{font-size:calc(11px * var(--fs-scale));color:var(--ad-mu);text-transform:uppercase;letter-spacing:.04em}
.ad-sv{font-size:calc(26px * var(--fs-scale));font-weight:700;line-height:1.15;margin-top:4px;font-family:'DM Sans',sans-serif}
.ad-sv.or{color:var(--ad-or)}.ad-sv.bl{color:var(--ad-bl)}.ad-sv.red{color:var(--ad-red)}
.ad-ssub{font-size:calc(12px * var(--fs-scale));color:var(--ad-red);font-weight:600;margin-top:2px}
.ad-weather-row{display:flex;flex-wrap:wrap;gap:16px 24px;padding:14px 0 4px;font-size:calc(14px * var(--fs-scale))}
.ad-w-block{display:flex;align-items:flex-start;gap:8px}
.ad-w-block .lbl{font-size:calc(11px * var(--fs-scale));color:var(--ad-mu);display:block}
.ad-w-emoji{font-size:22px;line-height:1}
.ad-gear-row{font-size:calc(13px * var(--fs-scale));color:var(--ad-mu);margin-top:12px;padding-top:12px;border-top:1px solid var(--ad-bd)}
.ad-gear-row strong{color:var(--ad-tx)}
.ad-split-map{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:700px){.ad-split-map{grid-template-columns:minmax(200px,1fr) 1fr}}
.ad-panel-title{font-size:calc(13px * var(--fs-scale));font-weight:600;color:var(--ad-tx);margin-bottom:8px}
.ad-split-badge{display:inline-block;font-size:calc(12px * var(--fs-scale));font-weight:600;padding:6px 12px;border-radius:20px;margin-bottom:10px;background:var(--ad-bg2);border:1px solid var(--ad-bd);color:var(--ad-mu)}
.ad-split-badge.neg{color:var(--ad-gr);border-color:rgba(43,217,104,.4);background:rgba(43,217,104,.1)}
.ad-split-badge.pos{color:var(--ad-red);border-color:rgba(255,122,122,.35);background:rgba(255,122,122,.08)}
.ad-splits-wrap{max-height:300px;overflow:auto;border:1px solid var(--ad-bd);border-radius:4px;background:var(--ad-bg)}
.ad-table{width:100%;border-collapse:collapse;font-size:calc(13px * var(--fs-scale))}
.ad-table th{position:sticky;top:0;background:var(--ad-bg2);text-align:left;font-size:calc(11px * var(--fs-scale));color:var(--ad-mu);font-weight:600;padding:10px 12px;border-bottom:1px solid var(--ad-bd)}
.ad-table td{padding:10px 12px;border-bottom:1px solid var(--ad-bd);color:var(--ad-tx)}
.ad-table tr:last-child td{border-bottom:none}
.ad-table .pace{color:var(--ad-or);font-weight:600}
.ad-map{height:280px;border:1px solid var(--ad-bd);border-radius:4px;overflow:hidden}
.ad-map .leaflet-container{height:100%;width:100%}
.ad-chart-box{height:280px;background:var(--chart-bg);border:1px solid var(--ad-bd);border-radius:4px;overflow:hidden;position:relative}
.ad-chart-box canvas{width:100%;height:100%;display:block}
.ad-toggles{display:flex;flex-wrap:wrap;gap:12px 20px;margin-top:14px;align-items:center}
.ad-toggle-row{display:flex;align-items:center;gap:10px;font-size:calc(13px * var(--fs-scale));color:var(--ad-tx)}
.ad-sw{position:relative;width:48px;height:28px;flex-shrink:0}
.ad-sw input{opacity:0;width:0;height:0;position:absolute}
.ad-sw i{position:absolute;inset:0;background:var(--bg3);border-radius:14px;transition:.2s}
.ad-sw i::after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.ad-sw input:checked + i{background:var(--ad-gr)}
.ad-sw input:checked + i::after{transform:translateX(20px)}
.ad-sw-lbl{font-size:calc(11px * var(--fs-scale));color:var(--ad-mu);margin-left:2px}
.ad-sw input:checked ~ .ad-sw-lbl{color:var(--ad-gr);font-weight:600}
.ad-avg-row{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--ad-bd)}
@media(max-width:600px){.ad-avg-row{grid-template-columns:repeat(3,1fr)}}
.ad-avg-cell .lbl{font-size:calc(10px * var(--fs-scale));color:var(--ad-mu);text-transform:uppercase}
.ad-avg-cell .val{font-size:calc(14px * var(--fs-scale));color:var(--ad-or);font-weight:600;margin-top:4px}
.ad-empty{text-align:center;color:var(--ad-mu);padding:28px 16px}
.ad-hint{font-size:calc(12px * var(--fs-scale));color:var(--ad-mu);margin-top:10px}
.ad-loading .spin{border-color:rgba(252,76,2,.2);border-top-color:var(--ad-or)}
.ad-pace-chart-box{height:200px;background:var(--chart-bg);border:1px solid var(--ad-bd);border-radius:4px;overflow:hidden;margin-bottom:10px}
.ad-pace-chart-box canvas{width:100%;height:100%;display:block}
.ad-pace-refs{display:flex;flex-wrap:wrap;gap:12px 18px;font-size:calc(11px * var(--fs-scale));color:var(--ad-mu);margin-bottom:12px}
.ad-pace-refs span b{color:var(--ad-tx);font-weight:600}
.ad-view-tabs{display:flex;flex-wrap:wrap;gap:10px 16px;margin-bottom:14px;align-items:center}
.ad-tab-group{display:flex;flex-wrap:wrap;gap:6px}
.ad-tab{padding:8px 14px;border:1px solid var(--ad-bd);border-radius:6px;background:var(--ad-bg);
  color:var(--ad-mu);font-size:calc(12px * var(--fs-scale));font-weight:500;cursor:pointer;font-family:inherit}
.ad-tab.on{border-color:var(--ad-bl);color:var(--ad-bl);background:rgba(37,99,235,.08);box-shadow:0 0 0 1px var(--ad-bl)}
html[data-theme="dark"] .ad-tab.on{background:rgba(74,176,255,.12);border-color:var(--ad-bl);color:var(--ad-bl)}
.ad-tab:disabled{opacity:.4;cursor:not-allowed}
.ad-table .dist{color:var(--ad-mu);font-size:calc(12px * var(--fs-scale))}

/* iPhone / małe ekrany — automatyczne powiększenie + lepszy kontrast */
@media (max-width:430px){
  .htitle{font-size:calc(2.6rem * var(--fs-scale))}
  .cdn{font-size:calc(2rem * var(--fs-scale))}
  .pred-val{font-size:calc(2.4rem * var(--fs-scale))}
  .ni-i{font-size:calc(26px * var(--fs-scale))}
  .ni-l{font-size:calc(11px * var(--fs-scale))}
  .lr-stats{gap:5px}
  .lr-st{padding:9px 3px}
  .pb-grid{gap:7px}
  .tiles{gap:7px}
  .sgrid{gap:8px}
  .badge-grid{grid-template-columns:repeat(3,1fr);gap:7px}
  /* większe pola dotykowe */
  button,.ni,.shop-btn,.note-btn,.sheet-item,.week-nav,.week-pick-btn,.font-btn,.bsv{min-height:44px}
  /* większy minimalny rozmiar tekstu w body */
  body{font-size:calc(15.5px * var(--fs-scale))}
}
@media (max-width:380px){
  .htitle{font-size:calc(2.3rem * var(--fs-scale))}
  .pht{font-size:calc(2.1rem * var(--fs-scale))}
  .ni-l{font-size:calc(10px * var(--fs-scale))}
  .lr-stats{grid-template-columns:repeat(2,1fr)}
}

/* Pinch-to-zoom działa zawsze (viewport meta zezwala). manipulation = szybszy tap. */
body{touch-action:manipulation}

/* Lepszy kontrast focus dla dostępności (klawiatura) */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--or);outline-offset:2px;border-radius:4px;
}

/* Cienie/podświetlenia żeby karty wybijały się od tła */
.card,.wcard,.cd,.dd,.tile,.sc,.pred,.pb-card,.act,.lr-hero{
  box-shadow:0 1px 0 rgba(255,255,255,.02) inset, 0 2px 8px rgba(0,0,0,.18);
}
html[data-theme="light"] .card,html[data-theme="light"] .wcard,html[data-theme="light"] .cd,
html[data-theme="light"] .dd,html[data-theme="light"] .tile,html[data-theme="light"] .sc,
html[data-theme="light"] .pred,html[data-theme="light"] .pb-card,html[data-theme="light"] .act,
html[data-theme="light"] .lr-hero{
  box-shadow:0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
}
/* ── Enhancements v6 ── */
.taper-badge{display:inline-block;font-size:calc(11px * var(--fs-scale));font-family:'DM Mono',monospace;font-weight:700;padding:4px 10px;border-radius:20px;margin-top:6px;background:rgba(252,76,2,.15);color:var(--or);border:1px solid rgba(252,76,2,.35)}
.phase-taper{background:rgba(43,217,104,.12);color:var(--gr);border-color:rgba(43,217,104,.35)}
.phase-race-week{background:rgba(255,107,26,.2);color:var(--or)}
.taper-hint{font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin:8px 0 0;line-height:1.45;padding:8px 10px;background:var(--bg3);border-radius:8px;border:1px solid var(--bd)}

.phase-card{margin-top:14px;background:var(--bg2);border:1px solid var(--hairline);border-radius:var(--r-card);padding:12px 14px 10px;backdrop-filter:var(--glass-blur-lite);-webkit-backdrop-filter:var(--glass-blur-lite)}
.phase-card-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px;gap:8px}
.phase-card-lbl{font-size:calc(12.5px * var(--fs-scale));font-weight:700;color:var(--tx)}
.phase-card-days{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;flex-shrink:0}
.pt-track{position:relative;height:8px;border-radius:4px;display:flex;background:var(--bg3);margin:0 9px}
.pt-seg{height:100%}
.pt-seg:first-child{border-radius:4px 0 0 4px}
.pt-seg:last-child{border-radius:0 4px 4px 0}
.pt-build{background:var(--bl);flex-grow:56;flex-basis:0}
.pt-peak{background:var(--ye);flex-grow:35;flex-basis:0}
.pt-taper{background:var(--gr);flex-grow:14;flex-basis:0}
.pt-raceweek{background:var(--or);flex-grow:7;flex-basis:0}
.pt-marker{position:absolute;top:50%;left:0;width:18px;height:18px;margin-left:-9px;margin-top:-9px;border-radius:50%;background:var(--bg2);border:2px solid var(--or);display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;box-shadow:0 1px 4px rgba(0,0,0,.4);transition:left .4s ease}
.pt-legend{display:flex;justify-content:space-between;margin:6px 9px 0;font-size:calc(9px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.04em}
.today-hub-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.today-hub-title{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.5rem * var(--fs-scale));color:var(--or)}
.today-hub-kcal{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.35rem * var(--fs-scale));color:var(--mu2)}
.today-tr{font-size:calc(14px * var(--fs-scale));font-weight:600;margin-bottom:8px;line-height:1.35}
.today-actual{font-size:calc(13px * var(--fs-scale));margin-bottom:8px;padding:8px 10px;background:var(--bg3);border-radius:8px;border:1px solid var(--bd)}
.today-actual.miss{color:var(--mu2)}
.today-meals{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:calc(12px * var(--fs-scale))}
.today-meal{display:flex;gap:8px}
.today-meal-t{color:var(--mu2);font-family:'DM Mono',monospace;min-width:36px}
.today-macros{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0;font-size:calc(11px * var(--fs-scale));color:var(--mu2);text-align:center}
.today-hub-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.hub-btn{flex:1;min-width:calc(50% - 6px);padding:10px 8px;border-radius:10px;border:1px solid var(--bd2);background:var(--bg3);color:var(--tx);font-size:calc(12px * var(--fs-scale));font-weight:600;cursor:pointer;min-height:44px}
.hub-btn.primary{background:rgba(252,76,2,.18);border-color:rgba(252,76,2,.45);color:var(--or)}
.hub-btn.sm{flex:0 1 auto;min-width:auto;padding:8px 12px;font-size:calc(11px * var(--fs-scale))}
.wr-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.wr-cell{text-align:center;padding:8px 4px;background:var(--bg3);border-radius:8px;border:1px solid var(--bd)}
.wr-val{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(1.35rem * var(--fs-scale));color:var(--or)}
.wr-lbl{font-size:calc(9px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;font-weight:600;margin-top:2px}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:12px}
.wg-day{display:flex;flex-direction:column;align-items:center;padding:8px 2px;border-radius:10px;border:1px solid var(--bd);background:var(--bg3);cursor:pointer;min-height:64px}
.wg-day.today{border-color:rgba(252,76,2,.55);background:rgba(252,76,2,.08)}
.wg-dn{font-size:calc(10px * var(--fs-scale));font-weight:700;color:var(--mu2)}
.wg-ico{font-size:calc(16px * var(--fs-scale));margin:2px 0}
.wg-km{font-size:calc(10px * var(--fs-scale));font-family:'DM Mono',monospace;color:var(--mu2)}
.garmin-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:10px;background:var(--bg3);border-radius:10px;border:1px solid var(--bd)}
.garmin-bar-lbl{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-weight:600;margin-right:4px}
.garmin-status{font-size:calc(11px * var(--fs-scale));color:var(--gr);text-align:center;min-height:18px;margin-bottom:8px}
.shop-filter-row{display:flex;gap:6px;margin:0 16px 6px}
.shop-filter-btn{flex:1;padding:6px;border-radius:8px;border:1px solid var(--bd);background:var(--bg3);color:var(--mu2);font-size:calc(11px * var(--fs-scale));font-weight:600;cursor:pointer;min-height:32px}
.shop-filter-btn.on{background:rgba(252,76,2,.15);border-color:rgba(252,76,2,.4);color:var(--or)}
.shop-diet-banner{margin:0 16px 10px;padding:10px 12px;background:rgba(43,217,104,.08);border:1px solid rgba(43,217,104,.25);border-radius:10px;font-size:calc(12px * var(--fs-scale));line-height:1.45}
.shop-diet-title{font-weight:700;margin-bottom:6px;color:var(--gr)}
.shop-filter-hint{padding:8px 16px;font-size:calc(12px * var(--fs-scale));color:var(--mu2);text-align:center}
body.sheet-open{overflow:hidden}
.goals-field{margin-bottom:12px}
.goals-field label{display:block;font-size:calc(12px * var(--fs-scale));color:var(--mu2);font-weight:600;margin-bottom:4px}
.goals-field input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--bd);background:var(--bg2);color:var(--tx);font-size:calc(14px * var(--fs-scale))}
.goals-check{display:flex;align-items:center;gap:8px;font-size:calc(13px * var(--fs-scale));margin:12px 0}
@media(max-width:400px){.wr-grid{grid-template-columns:repeat(3,1fr)}}
/* Tryb użytkownika Dieta — bez maratonu / Stravy / Garmin */
body.diet-mode .hero,
body.diet-mode #connStatusCard,
body.diet-mode #homeLastRun,
body.diet-mode #homeWeekPlan,
body.diet-mode #weekSummary,
body.diet-mode #weeklyReport,
body.diet-mode #runnerGoalsBlock,
body.diet-mode #runnerSaveGoalsBtn,
body.diet-mode #tr,
body.diet-mode #st,
body.diet-mode #actDetail,
body.diet-mode .home-runner-only,
body.diet-mode #navAdmin{display:none!important}
body.diet-mode #dietHero{display:block}
body.diet-mode .ni-runner{display:none!important}
body.diet-mode #quickLogSheet{display:none!important}
/* Waga na Start: zostaw tylko wpisywanie wagi — bez trendu/wykresu i bez Home Assistant (osobiste urządzenie admina) */
body.diet-mode #hm .chart-range,
body.diet-mode #hm .progress-chart-wrap,
body.diet-mode #wchTrendHome,
body.diet-mode #haSyncRow{display:none!important}
body.diet-mode #globalFontCtrl #settingsBtn{display:none}
body.diet-mode #dietLogoutGlobal{display:flex!important}
.diet-ph{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.diet-logout-btn{flex-shrink:0;padding:8px 14px;font-size:calc(12px * var(--fs-scale));font-weight:600;color:var(--mu2);background:var(--bg3);border:1px solid var(--bd2);border-radius:10px;cursor:pointer;min-height:36px}
.diet-logout-btn:active{opacity:.85}
.diet-delete-btn{color:#e85d5d;border-color:rgba(232,93,93,.45);background:rgba(232,93,93,.08)}
.diet-delete-btn:active{opacity:.85}
.diet-panel-card{margin-bottom:12px}
.diet-step-num{display:inline-block;background:var(--or);color:#fff;font-family:'DM Mono',monospace;font-size:calc(11px * var(--fs-scale));font-weight:700;padding:2px 8px;border-radius:6px;margin-right:8px}
.diet-flow-hint{font-size:calc(12px * var(--fs-scale));color:var(--mu2);line-height:1.45;margin:0 0 12px;padding:10px 12px;background:rgba(43,217,104,.08);border:1px solid rgba(43,217,104,.2);border-radius:10px}
.diet-agent-help{font-size:calc(12px * var(--fs-scale));color:var(--mu2);line-height:1.5;margin-top:8px;padding:10px 12px;background:var(--bg3);border:1px solid var(--bd);border-radius:10px}
.diet-agent-help a{color:var(--or);word-break:break-all}
.diet-agent-result{margin-top:12px;padding:12px;background:var(--bg3);border:1px solid var(--bd);border-radius:10px;font-size:calc(13px * var(--fs-scale));line-height:1.55;white-space:pre-wrap;max-height:min(50vh,400px);overflow:auto}
.ni-diet-only{display:none!important}
body.diet-mode .ni-diet-only{display:flex!important}
.diet-week-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.diet-week-row input[type=date]{flex:1;min-width:140px;padding:10px 12px;border-radius:8px;border:1px solid var(--bd);background:var(--bg2);color:var(--tx);font-size:calc(14px * var(--fs-scale))}
#dietAfterFetchBlock{display:none}
#dietAfterFetchBlock.visible{display:block}
.diet-excl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:4px 0 8px}
.diet-menu-preview{max-height:min(55vh,480px);overflow:auto;margin-top:4px}
.diet-menu-preview .dd{margin-bottom:8px}
.diet-menu-preview .meal.excluded{opacity:.45}
.diet-menu-preview .meal.excluded .meal-n{text-decoration:line-through;color:var(--mu2)}
.diet-menu-preview .dessert-excluded{text-decoration:line-through;opacity:.45;color:var(--mu2)}
/* Siatka wielu dni obok siebie (jak podgląd Catering w panelu admina) — tylko dla podglądu pobranego
   menu, nie dla koszyka (#dietDraftOut), który ma inną strukturę (lista dodanych dań, nie dni). */
.diet-menu-preview-grid{max-height:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.diet-menu-preview-grid .dd{margin-bottom:0}
.diet-menu-preview-grid .dd-body{display:block}
.changelog-list{display:flex;flex-direction:column;gap:10px}
.changelog-item{border:1px solid var(--bd2);border-radius:12px;padding:12px 14px;background:var(--bg3)}
.changelog-item.current{border-color:var(--or);background:rgba(252,76,2,.08)}
.changelog-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:6px}
.changelog-ver{font-family:'DM Mono',monospace;font-size:calc(11px * var(--fs-scale));font-weight:600;color:var(--or)}
.changelog-date{font-size:calc(10px * var(--fs-scale));color:var(--mu2)}
.changelog-title{font-size:calc(13px * var(--fs-scale));font-weight:600;margin-bottom:6px}
.changelog-item ul{margin:0;padding-left:18px;font-size:calc(12px * var(--fs-scale));color:var(--mu);line-height:1.5}
.changelog-item li{margin-bottom:4px}
.about-desc{font-size:calc(14px * var(--fs-scale));color:var(--mu);line-height:1.6;margin-bottom:14px}
.app-ver{cursor:pointer;pointer-events:auto}
.app-ver:hover{opacity:1;color:var(--or)}
@media(max-width:420px){.diet-excl-grid{grid-template-columns:1fr}}
.diet-hero{display:none;padding:calc(var(--st) + 20px) 16px 12px;background:linear-gradient(180deg,rgba(43,217,104,.12) 0%,transparent 100%)}
.diet-hero h1{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;letter-spacing:-.02em;font-size:calc(2.4rem * var(--fs-scale));color:var(--or);margin:0}
.diet-hero p{font-size:calc(13px * var(--fs-scale));color:var(--mu2);margin:6px 0 0;line-height:1.4}
.garmin-wellness-bar{display:none;flex-wrap:wrap;gap:10px 14px;margin:12px 16px 0;padding:10px 14px;background:rgba(255,255,255,.04);border-radius:12px;border:1px solid rgba(255,255,255,.07);align-items:center}
html[data-theme="light"] .garmin-wellness-bar{background:rgba(0,0,0,.03);border-color:rgba(0,0,0,.08)}
.garmin-wellness-bar.visible{display:flex}
.garmin-wellness-bar.gw-refreshing{opacity:.65;pointer-events:none}
.garmin-wellness-bar.gw-refresh-ok .gw-hint{color:var(--gn,#2bd968)}
.gw-hint{font-weight:500;opacity:.75}
.gw-item{display:flex;align-items:baseline;gap:5px;font-size:calc(12px * var(--fs-scale))}
.gw-val{font-weight:700;color:var(--or);font-family:'DM Mono',monospace;font-size:calc(13px * var(--fs-scale))}
.gw-lbl{color:var(--mu2);font-size:calc(11px * var(--fs-scale))}
.gw-title{width:100%;font-size:calc(10px * var(--fs-scale));color:var(--mu2);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:2px}
.gw-date{text-transform:none;font-weight:700;letter-spacing:0}
.gw-date.stale{color:var(--rd,#e85d5d)}
.daily-brief-card{padding:14px 16px}
.daily-brief-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.daily-brief-meta-row{display:flex;align-items:center;gap:8px}
.daily-brief-meta{font-size:calc(11px * var(--fs-scale));color:var(--mu2)}
.daily-brief-body{font-size:calc(13px * var(--fs-scale));line-height:1.55;color:var(--mu2)}
.daily-brief-h{font-family:-apple-system,BlinkMacSystemFont,'DM Sans',sans-serif;font-weight:800;font-size:calc(14px * var(--fs-scale));color:var(--tx);margin:12px 0 6px}
.daily-brief-h:first-child{margin-top:0}
.daily-brief-p{margin:4px 0}
.daily-brief-ul{margin:4px 0 8px;padding-left:18px}
.daily-brief-ul li{margin-bottom:4px}
.daily-brief-err{color:var(--rd,#e85d5d);font-size:calc(12px * var(--fs-scale))}
.daily-brief-body.is-collapsed{
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.daily-brief-toggle{
  display:block;
  width:100%;
  margin-top:8px;
  padding:8px 0 2px;
  border:none;
  background:transparent;
  color:var(--or);
  font-size:calc(12px * var(--fs-scale));
  font-weight:700;
  text-align:center;
  cursor:pointer;
  font-family:'DM Sans',sans-serif;
}
.daily-brief-toggle[hidden]{display:none!important}
.daily-brief-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.brief-chip{
  border:1px solid var(--bd);
  background:var(--bg3);
  color:var(--tx);
  border-radius:999px;
  padding:6px 12px;
  font-size:calc(11px * var(--fs-scale));
  font-weight:600;
  cursor:pointer;
  max-width:100%;
  text-align:left;
  font-family:'DM Sans',sans-serif;
}
.brief-chip-run{border-color:rgba(252,76,2,.35);color:var(--or)}
.brief-chip:active{opacity:.85}
.start-sync-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0 16px 10px;padding:8px 12px;
  background:rgba(255,255,255,.03);border-radius:10px;border:1px solid rgba(255,255,255,.06);
  font-size:calc(11px * var(--fs-scale));
}
html[data-theme="light"] .start-sync-bar{background:rgba(0,0,0,.02);border-color:rgba(0,0,0,.06)}
.sync-bar-lbl{color:var(--mu2);font-weight:600;margin-right:4px}
.sync-pill{padding:3px 8px;border-radius:6px;font-weight:600;font-family:'DM Mono',monospace;font-size:calc(10px * var(--fs-scale))}
.sync-pill.ok{background:rgba(76,175,80,.12);color:var(--gr,#6fcf97)}
.sync-pill.warn{background:rgba(255,193,7,.1);color:var(--ye,#f2c94c)}
.daily-brief-skel{padding:4px 0}
.start-more{border:1px solid var(--bd);border-radius:12px;padding:10px 14px;background:var(--bg2);margin-bottom:10px}
.start-more>summary{cursor:pointer;font-weight:700;font-size:calc(13px * var(--fs-scale));color:var(--mu2);list-style:none}
.start-more>summary::-webkit-details-marker{display:none}
.start-more>summary::after{content:' ▼';font-size:.85em;opacity:.7}
.start-more[open]>summary::after{content:' ▲'}
.tts-ios-play{position:fixed;left:16px;right:16px;bottom:calc(72px + env(safe-area-inset-bottom,0px));z-index:12000;padding:14px 16px;border:none;border-radius:14px;background:var(--or);color:#fff;font-weight:800;font-size:calc(15px * var(--fs-scale));box-shadow:0 8px 24px rgba(0,0,0,.35)}
.tts-ios-play[hidden]{display:none!important}
.tc-brief-wrap{margin:10px 0 12px;padding:10px 0 0;border-top:1px solid var(--bd)}
.tc-brief-lbl{font-size:calc(11px * var(--fs-scale));color:var(--mu2);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.daily-brief-ask{margin-top:10px;padding-top:10px;border-top:1px solid var(--bd)}
.daily-brief-ask-row{display:flex;gap:6px;align-items:center}
.brief-ask-inp{flex:1;min-width:0;padding:10px 12px;border-radius:10px;border:1px solid var(--bd);background:var(--bg3);color:var(--tx);font-size:calc(13px * var(--fs-scale))}
.brief-ask-thread{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.brief-ask-item{font-size:calc(12px * var(--fs-scale));line-height:1.45}
.brief-ask-q{color:var(--mu2);margin-bottom:3px}
.brief-ask-a{color:var(--tx)}
.today-unified-card .daily-brief-body{margin-top:6px}
/* TTS — player na dole ekranu */
.audio-player-container{display:none;position:fixed;left:0;right:0;bottom:calc(var(--nb) + 8px);z-index:900;padding:0 12px;pointer-events:none}
.audio-player-container.visible{display:block;pointer-events:auto}
.audio-player{background:var(--bg2);border:1px solid var(--or);border-radius:16px;padding:14px 16px;box-shadow:0 -4px 24px rgba(0,0,0,.35);max-width:520px;margin:0 auto}
.audio-player.loading{text-align:center;padding:20px}
.audio-loading{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--mu2);font-size:calc(13px * var(--fs-scale))}
.audio-title{font-weight:700;font-size:calc(14px * var(--fs-scale));margin-bottom:4px;color:var(--tx)}
.audio-step-info{font-size:calc(11px * var(--fs-scale));color:var(--or);font-weight:600;margin-bottom:8px}
.audio-progress{height:4px;background:var(--bg3);border-radius:2px;cursor:pointer;margin-bottom:6px}
.audio-progress-fill{height:100%;background:var(--or);border-radius:2px;width:0;transition:width .1s}
.audio-time{display:flex;justify-content:space-between;font-size:calc(10px * var(--fs-scale));color:var(--mu2);font-family:'DM Mono',monospace;margin-bottom:10px}
.audio-controls{display:flex;justify-content:center;gap:8px;margin-bottom:10px}
.audio-ctrl-btn{background:var(--bg3);border:1px solid var(--bd);border-radius:10px;padding:8px 12px;font-size:calc(16px * var(--fs-scale));cursor:pointer;min-width:44px;min-height:44px}
.audio-ctrl-btn:disabled{opacity:.35;cursor:not-allowed}
.audio-ctrl-stop{background:rgba(232,93,93,.15);border-color:rgba(232,93,93,.5);font-size:calc(12px * var(--fs-scale));font-weight:700;padding:8px 14px}
.audio-settings{margin-top:10px;border-top:1px solid var(--bd);padding-top:10px}
.audio-settings summary{cursor:pointer;font-size:calc(12px * var(--fs-scale));font-weight:600;color:var(--mu2);margin-bottom:8px}
.audio-set-row{display:block;font-size:calc(11px * var(--fs-scale));color:var(--mu2);margin-bottom:10px}
.audio-set-row select,.audio-set-row input[type=range]{display:block;width:100%;margin-top:4px}
.audio-set-row select{padding:8px;border-radius:8px;background:var(--bg3);border:1px solid var(--bd);color:var(--tx);font-size:calc(12px * var(--fs-scale))}
.audio-set-check{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--fs-scale));color:var(--mu2);margin:8px 0}
.audio-set-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.audio-speed{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.audio-label{font-size:calc(11px * var(--fs-scale));color:var(--mu2)}
.audio-speed-btn{background:var(--bg3);border:1px solid var(--bd);border-radius:8px;padding:4px 10px;font-size:calc(11px * var(--fs-scale));cursor:pointer;color:var(--mu2)}
.audio-speed-btn.active{background:var(--or);color:#fff;border-color:var(--or)}
.audio-meta{font-size:calc(10px * var(--fs-scale));color:var(--mu);text-align:center}
.tts-about-settings{margin:4px 0 0}
.tts-about-panel{padding:12px 14px;background:var(--bg3);border:1px solid var(--bd);border-radius:12px}
.spinner{width:18px;height:18px;border:2px solid var(--bd);border-top-color:var(--or);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
/* Diet Panel Tabs */
.diet-tab {
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 600;
  color: var(--mu2);
  background: transparent;
  border-bottom: 3px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s ease;
  user-select: none;
}
.diet-tab:hover {
  color: var(--tx);
  background: rgba(252,76,2,0.08);
}
.diet-tab.active {
  color: var(--or);
  border-bottom-color: var(--or);
  background: rgba(252,76,2,0.12);
}
.diet-tab-content {
  display: none;
}

