/* Layout: sticky section bar (Plan · Narzędzia · Postępy · Poradnik) → day "plates" with logged exercise cards, calculators, charts, guide; profile behind the user chip. Day colors follow competition plate colors (25 red, 20 blue, 15 yellow, 10 green). */
/* Single black look: gym-floor rubber black, plate colors as the only color. */
:root{
  --bg:#080809; --surface:#121214; --fg:#f2f2f3; --muted:#8e9096; --line:#26272b;
  --red:#ef3b4a; --blue:#4f86ff; --yellow:#f5c330; --green:#33c272; --white:#e9eaec; --chrome:#6f737b;
  --accent:var(--red); --ok:#33c272; --okbg:#11281b; --warnbg:#2b2410; --warn:#f5c330;
  --display:"Barlow Condensed","Arial Narrow",system-ui,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.45;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  padding-block:env(safe-area-inset-top,0px) calc(48px + env(safe-area-inset-bottom,0px))}
body.has-timer{padding-bottom:120px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--bg)}
.wrap{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.view{display:flex;flex-direction:column;gap:16px}
.topbar{padding-top:20px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.topbar>div{display:flex;flex-direction:column;gap:4px;min-width:0}
h1{font-family:var(--display);font-weight:800;font-size:2.4rem;line-height:1;margin:0;letter-spacing:.01em;text-transform:uppercase;text-wrap:balance}
h2,h3{text-wrap:balance}
.sub{color:var(--muted);margin:0;max-width:62ch}

/* user chip & avatar */
.userbtn{flex:none;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--fg);border-radius:999px;padding:4px 14px 4px 4px;cursor:pointer;font:inherit;font-weight:600;max-width:12em}
.userbtn span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.userbtn[aria-current="page"]{border-color:var(--red)}
.avatar{flex:none;width:34px;height:34px;border-radius:50%;background:var(--red);color:#fff;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1rem;letter-spacing:.02em}
.avatar.lg{width:72px;height:72px;font-size:1.8rem}
.who{display:flex;gap:14px;align-items:center}
.who b{font-family:var(--display);font-size:1.6rem;text-transform:uppercase;line-height:1.05;display:block}

/* auth screen */
.auth{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding-block:32px}
.authcard{width:100%;max-width:420px}
.authcard h1{font-size:2.2rem}
.authcard form{display:flex;flex-direction:column;gap:12px}
.authcard .primary{width:100%}
.platebar{display:flex;gap:4px;height:6px}
.platebar i{flex:1;border-radius:3px}
.error{color:var(--red);font-size:.93rem;margin:0;min-height:1.3em}
.danger{border-color:var(--red)!important;color:var(--red)!important}

/* questionnaire */
.onboard{padding-block:8px 32px}
.onboard .platebar{max-width:220px;margin-bottom:12px}
.step{display:inline-grid;place-items:center;width:1.6em;height:1.6em;border-radius:50%;background:var(--red);color:#fff;font-size:.85em;margin-right:6px;vertical-align:.08em}
.seg.wd button{min-width:3.4em}
.daymins{display:flex;flex-direction:column;gap:6px}
.daymin{display:grid;grid-template-columns:7.5em 1fr;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:6px 8px;background:var(--bg)}
.daymin b{font-family:var(--display);font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em}
.daymin.missing{border-color:var(--red)}
.newpill{display:inline-block;font-size:.72rem;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--red);color:#fff;margin-left:8px;vertical-align:.15em;letter-spacing:.04em}
@media (max-width:420px){.daymin{grid-template-columns:1fr}}
.seg button.missing,.cards.missing button{border-color:var(--red)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:8px}
.cards button{font:inherit;text-align:left;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:10px;padding:12px;cursor:pointer;display:flex;flex-direction:column;gap:2px}
.cards button b{font-family:var(--display);font-size:1.15rem;text-transform:uppercase;letter-spacing:.03em}
.cards button span{font-size:.85rem;color:var(--muted)}
.cards button[aria-pressed="true"]{border-color:var(--fg);box-shadow:inset 0 0 0 1px var(--fg)}
.planmeta{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-size:.8rem;border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--muted)}
dl.facts{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:6px 16px}
dl.facts dt{color:var(--muted)}
dl.facts dd{margin:0}

/* AI */
.aibox{display:flex;flex-direction:column;align-items:flex-start;gap:6px;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:10px;padding:12px 14px;background:var(--surface)}
.aibox b{font-family:var(--display);font-size:1.05rem;text-transform:uppercase;letter-spacing:.03em}
.aigoal{font-size:.93rem;border-left:3px solid var(--blue);padding:4px 10px;background:var(--bg);border-radius:0 8px 8px 0;font-variant-numeric:tabular-nums}
.aigoal b{color:var(--blue)}
.sets input.tg::placeholder{color:color-mix(in srgb,var(--blue) 70%,var(--muted))}
.chat{display:flex;flex-direction:column;gap:10px;max-height:min(60vh,560px);overflow-y:auto;padding-right:4px}
.msg{max-width:88%;padding:10px 14px;border-radius:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.msg.user{align-self:flex-end;background:var(--fg);color:var(--bg);border-bottom-right-radius:4px}
.msg.assistant{align-self:flex-start;background:var(--bg);border:1px solid var(--line);border-bottom-left-radius:4px}
.msg.typing{color:var(--muted)}
.box form.chatform{display:flex;flex-direction:row;gap:8px;align-items:flex-end}
.chatform textarea{flex:1;min-width:0;font:inherit;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--bg);color:var(--fg);resize:vertical;min-height:48px;max-height:200px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips button{font:inherit;font-size:.85rem;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:999px;padding:5px 12px;cursor:pointer}
@media (max-width:420px){.viewnav button{font-size:.82rem;letter-spacing:0}}

/* week picker */
.weekstrip{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity;scrollbar-width:thin}
.weekstrip button{flex:none;scroll-snap-align:center;min-width:8.6rem;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;
  border:2px solid var(--line);background:var(--surface);color:var(--fg);border-radius:10px;padding:8px 12px;cursor:pointer;font:inherit}
.weekstrip button small{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.weekstrip button b{font-family:var(--display);font-size:1.15rem;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.weekstrip button span{font-size:.78rem;color:var(--muted)}
.weekstrip button.has span{color:var(--ok)}
.weekstrip button.empty{border-style:dashed}
.weekstrip button.cur small{color:var(--red)}
.weekstrip button[aria-selected="true"]{border-color:var(--fg);border-style:solid;box-shadow:inset 0 -4px 0 var(--red)}
tr.link{cursor:pointer}
tr.link:hover td{background:var(--bg)}
.seg.wd button small{display:block;font-size:.7rem;color:var(--muted);font-weight:500}
.seg.wd button[aria-pressed="true"] small{color:inherit}

/* top section bar */
.viewnav{position:sticky;top:env(safe-area-inset-top,0px);z-index:6;background:var(--bg);padding-block:10px;display:grid;grid-template-columns:repeat(5,1fr);gap:4px}
.viewnav button{font-family:var(--display);font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;border:0;border-bottom:3px solid var(--line);background:transparent;color:var(--muted);padding:8px 2px;cursor:pointer;min-width:0}
.viewnav button[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--fg)}

/* day plates */
.daytabs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.daytabs button{font-family:var(--display);font-weight:700;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;
  border:2px solid var(--line);background:var(--surface);color:var(--fg);border-radius:10px;padding:8px 4px;cursor:pointer;
  display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}
.daytabs button small{font-family:var(--body);font-weight:500;font-size:.72rem;text-transform:none;letter-spacing:0;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.daytabs .dot{width:10px;height:10px;border-radius:50%;background:var(--c,var(--muted))}
.daytabs button[aria-selected="true"]{border-color:var(--c,var(--fg));box-shadow:inset 0 -4px 0 var(--c,var(--fg))}
.today{font-size:.62rem;font-family:var(--body);font-weight:600;letter-spacing:.06em;color:var(--c)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
button:disabled{opacity:.6;cursor:default}

.dayhead{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;border-left:6px solid var(--c);padding-left:12px}
.dayhead h2{font-family:var(--display);font-weight:800;font-size:1.8rem;text-transform:uppercase;margin:0;line-height:1.05}
.dayhead p{margin:0;color:var(--muted)}
.list{display:flex;flex-direction:column;gap:14px}
.ex{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.exhead{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.exhead h3{margin:0;font-size:1.12rem;font-weight:600;line-height:1.25}
.scheme{font-family:var(--display);font-weight:700;font-size:1.25rem;white-space:nowrap;font-variant-numeric:tabular-nums}
.meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--muted);font-size:.9rem}
.tips{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:.95rem}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.video{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;
  background:var(--red);color:#fff;border-radius:999px;padding:8px 14px;font-size:.95rem}
.video svg,.restbtn svg{width:16px;height:16px;fill:currentColor}
.restbtn{display:inline-flex;align-items:center;gap:8px;font:inherit;font-weight:600;font-size:.95rem;border:1.5px solid var(--fg);background:transparent;color:var(--fg);border-radius:999px;padding:7px 14px;cursor:pointer}
.last{font-size:.9rem;color:var(--muted);font-variant-numeric:tabular-nums}
.pill{display:inline-block;font-size:.78rem;font-weight:600;border-radius:999px;padding:2px 9px;background:var(--okbg);color:var(--ok);margin-left:6px}
.sets{display:grid;grid-template-columns:auto 1fr 1fr;gap:6px 10px;align-items:center;font-variant-numeric:tabular-nums}
.sets .h{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.sets .n{font-family:var(--display);font-weight:700;color:var(--muted);width:2.2em}
input,select{width:100%;min-width:0;font:inherit;font-variant-numeric:tabular-nums;padding:8px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg)}
input[readonly]{color:var(--muted)}

.box{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0}
.box h2{font-family:var(--display);font-weight:800;text-transform:uppercase;font-size:1.4rem;margin:0;line-height:1.1}
.box h3{font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:1.1rem;letter-spacing:.03em;margin:0}
.box ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.box p{margin:0}
.box form{display:flex;flex-direction:column;gap:12px}
.lead{color:var(--muted);font-size:.95rem}
.savebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.primary{font-family:var(--display);font-weight:700;font-size:1.2rem;text-transform:uppercase;letter-spacing:.04em;border:0;border-radius:10px;padding:12px 22px;background:var(--red);color:#fff;cursor:pointer}
.primary.sm{font-size:1.05rem;padding:9px 16px}
.ghost{font:inherit;font-size:.9rem;border:1px solid var(--line);background:transparent;color:var(--fg);border-radius:8px;padding:6px 10px;cursor:pointer}
.status{color:var(--muted);font-size:.92rem}
.empty{color:var(--muted);margin:0}
.sep{border:0;border-top:1px solid var(--line);margin:4px 0;width:100%}

/* forms & results */
.fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr));gap:10px}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label,.lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.seg{display:flex;gap:4px;flex-wrap:wrap}
.seg button{font:inherit;font-size:.92rem;font-weight:600;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;padding:7px 12px;cursor:pointer}
.seg button[aria-pressed="true"]{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.seg.wide{display:grid;grid-template-columns:1fr 1fr}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:10px}
.tile{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:var(--bg)}
.tile .v{font-family:var(--display);font-weight:800;font-size:1.9rem;line-height:1;font-variant-numeric:tabular-nums}
.tile .v small{font-size:1rem;font-weight:700;color:var(--muted);margin-left:2px}
.tile .k{font-size:.78rem;color:var(--muted)}
.note{font-size:.9rem;color:var(--muted)}
.callout{background:var(--warnbg);color:var(--fg);border-radius:10px;padding:10px 12px;font-size:.93rem}
.callout b{color:var(--warn)}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums;font-size:.93rem}
th,td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
th{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
td.num,th.num{text-align:right}

/* plate loader */
.bar{display:flex;align-items:center;min-height:120px;overflow-x:auto;padding-block:6px}
.bar .sleeve{height:14px;width:28px;background:var(--chrome);border-radius:3px 0 0 3px;flex:none}
.bar .collar{height:34px;width:10px;background:var(--chrome);flex:none;margin-right:3px;border-radius:2px}
.bar .plate{flex:none;margin-right:3px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:800;font-size:.8rem;color:#fff;writing-mode:vertical-rl;transform:rotate(180deg)}
.bar .end{height:14px;flex:1;min-width:16px;background:var(--chrome);border-radius:0 3px 3px 0}
.platelist{font-family:var(--display);font-weight:700;font-size:1.2rem;font-variant-numeric:tabular-nums}

/* timer */
.presets{display:flex;gap:6px;flex-wrap:wrap}
#timerbar{position:fixed;left:0;right:0;bottom:0;z-index:8;background:var(--fg);color:var(--bg);
  padding-top:10px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.tb-in{max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr auto auto auto;gap:6px 10px;align-items:center}
.tb-label{font-size:.85rem;opacity:.8;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tb-time{font-family:var(--display);font-weight:800;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.tb-prog{grid-column:1/-1;height:4px;background:color-mix(in srgb,var(--bg) 25%,transparent);border-radius:2px;overflow:hidden}
.tb-prog i{display:block;height:100%;background:var(--bg);width:100%}
#timerbar button{font:inherit;font-weight:600;font-size:.9rem;border:1px solid color-mix(in srgb,var(--bg) 50%,transparent);background:transparent;color:var(--bg);border-radius:8px;padding:6px 10px;cursor:pointer}
#timerbar.done{background:var(--green);color:#fff}
#timerbar.done button{color:#fff;border-color:rgba(255,255,255,.6)}
#timerbar.done .tb-prog i{background:#fff}

/* progress */
.week{display:flex;gap:8px;flex-wrap:wrap}
.wk{display:flex;align-items:center;gap:6px;font-size:.88rem;border:1.5px solid var(--line);border-radius:999px;padding:4px 10px 4px 6px;color:var(--muted)}
.wk i{width:14px;height:14px;border-radius:50%;border:2px solid var(--c)}
.wk.on{color:var(--fg);border-color:var(--c)}
.wk.on i{background:var(--c)}
.chart svg{width:100%;height:auto;display:block}
.chart text{font-family:var(--body);font-size:12px;fill:var(--muted)}
.chart .val{font-family:var(--display);font-weight:700;font-size:15px;fill:var(--fg)}
.hist{display:flex;flex-direction:column;gap:10px}
.sess{border-top:1px solid var(--line);padding-top:10px;display:flex;flex-direction:column;gap:4px}
.sess .top{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.sess b{font-family:var(--display);font-size:1.1rem;text-transform:uppercase;letter-spacing:.03em}
.sess .tag{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:6px;background:var(--c)}
.sess .lines{font-size:.88rem;color:var(--muted);font-variant-numeric:tabular-nums}

/* guide */
.check{list-style:none;padding:0!important;gap:6px!important}
.check label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}
.check input{width:20px;height:20px;flex:none;margin-top:2px;accent-color:var(--green)}
.check input:checked+span{color:var(--muted);text-decoration:line-through}
dl.gloss{margin:0;display:grid;grid-template-columns:minmax(0,9em) 1fr;gap:8px 14px}
dl.gloss dt{font-weight:600}
dl.gloss dd{margin:0;color:var(--muted)}
details{border-top:1px solid var(--line);padding-top:10px}
details summary{cursor:pointer;font-weight:600}
details p{margin-top:6px!important;color:var(--muted)}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:16px}

@media (max-width:420px){.daytabs button small{display:none} h1{font-size:2rem} .viewnav button{font-size:.95rem;letter-spacing:.02em} dl.gloss{grid-template-columns:1fr;gap:2px} dl.gloss dd{margin-bottom:8px} .userbtn span:last-child{display:none} .userbtn{padding:4px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
