/* Fegyencedzés — coach-felület. A statikus edzésterv designjából (papír/börtön/pecsét). */
:root{
  --paper:#e7e1d4;
  --paper-2:#ddd6c6;
  --paper-3:#d2cab8;
  --ink:#1c1a15;
  --ink-soft:#403c33;
  --stamp:#9e3a23;
  --stamp-deep:#7c2c19;
  --steel:#3b4750;
  --faded:#8a8270;
  --line:#bdb6a3;
  --hi:#d8b65a;
  --ok:#3f6f4a;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:"Spectral",Georgia,serif;font-size:17px;line-height:1.6;
  background-image:
    radial-gradient(circle at 12% 8%, rgba(0,0,0,.025) 0, transparent 38%),
    radial-gradient(circle at 88% 92%, rgba(0,0,0,.03) 0, transparent 42%);
}
.wrap{max-width:960px;margin:0 auto;padding:0 22px 90px;}
h1,h2,h3,h4,.disp{font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.03em;font-weight:600;}
.mono{font-family:"Space Mono",monospace;}
a{color:var(--stamp-deep);}
strong{font-weight:600;}
em{color:var(--stamp-deep);font-style:italic;}
img{max-width:100%;display:block;}

/* ---- Top bar / nav ---- */
header.top{border-bottom:3px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:30;}
.top .bar{max-width:960px;margin:0 auto;padding:12px 22px 0;display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;}
.brand{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:22px;color:var(--ink);text-decoration:none;}
.brand .sub{color:var(--stamp);font-size:11px;letter-spacing:.28em;display:block;font-family:"Space Mono",monospace;}
.who{font-family:"Space Mono",monospace;font-size:12px;color:var(--ink-soft);}
.who a{color:var(--stamp-deep);text-decoration:none;}
nav.tabs{max-width:960px;margin:0 auto;padding:0 22px;display:flex;gap:0;overflow-x:auto;}
nav.tabs a{flex:0 0 auto;font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:13px;
  letter-spacing:.06em;padding:13px 15px;color:var(--ink-soft);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap;}
nav.tabs a:hover{color:var(--stamp);}
nav.tabs a.on{color:var(--ink);border-bottom-color:var(--stamp);}

/* ---- Generic sections ---- */
.eyebrow,.kicker{font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.26em;color:var(--stamp);font-weight:700;text-transform:uppercase;}
h1.page{font-size:clamp(30px,6vw,52px);line-height:.95;margin:.2em 0 .1em;}
h2{font-size:clamp(22px,4vw,32px);margin:.2em 0 .5em;}
h3{font-size:19px;margin:1.2em 0 .4em;color:var(--steel);}
.lead{font-size:18px;color:var(--ink-soft);max-width:70ch;}
p{max-width:72ch;}
.muted{color:var(--faded);}
.section{padding:26px 0 8px;border-bottom:1px solid var(--line);}

/* ---- Coach quote ---- */
.coach{background:var(--ink);color:var(--paper);padding:16px 20px;margin:22px 0;border-left:6px solid var(--hi);}
.coach .q{font-family:"Spectral",serif;font-style:italic;font-size:16px;color:#efe9da;max-width:none;margin:0;}
.coach .by{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;color:var(--hi);text-transform:uppercase;margin-top:6px;}

/* ---- Buttons ---- */
.btn{display:inline-block;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.05em;
  font-size:14px;font-weight:600;padding:10px 18px;border:2px solid var(--ink);background:var(--ink);color:var(--paper);
  cursor:pointer;text-decoration:none;}
.btn:hover{background:var(--stamp);border-color:var(--stamp);color:#fff;}
.btn.ghost{background:transparent;color:var(--ink);}
.btn.ghost:hover{background:var(--ink);color:var(--paper);}
.btn.stamp{background:var(--stamp);border-color:var(--stamp);color:#fff;}
.btn.stamp:hover{background:var(--stamp-deep);border-color:var(--stamp-deep);}
.btn.sm{font-size:12px;padding:6px 12px;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin:14px 0;}

/* ---- Day selector ---- */
.days{display:flex;gap:0;border:2px solid var(--ink);margin:18px 0;width:fit-content;max-width:100%;flex-wrap:wrap;}
.days a{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.05em;
  padding:9px 16px;color:var(--ink-soft);text-decoration:none;border-right:2px solid var(--ink);}
.days a:last-child{border-right:none;}
.days a.on{background:var(--ink);color:var(--paper);}

/* ---- Exercise card (Ma) ---- */
.exgrid{display:grid;gap:18px;margin:18px 0;}
.exc{border:2px solid var(--ink);background:var(--paper-2);}
.exc .head{display:flex;align-items:center;gap:14px;padding:12px 16px;background:var(--ink);color:var(--paper);flex-wrap:wrap;}
.exc .head .idx{font-family:"Oswald",sans-serif;font-weight:700;font-size:26px;color:var(--hi);line-height:1;}
.exc .head .t{font-family:"Oswald",sans-serif;text-transform:uppercase;font-weight:600;font-size:18px;letter-spacing:.04em;}
.exc .head .stepn{margin-left:auto;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.1em;color:var(--paper);opacity:.85;}
.exc .body{padding:14px 16px;}
.stepname{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:17px;color:var(--ink);}
.stepname .en{display:block;font-family:"Space Mono",monospace;font-size:11px;color:var(--faded);text-transform:none;letter-spacing:.03em;}

/* photo pair */
.photos{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0;}
.photos figure{margin:0;flex:1 1 200px;border:1px solid var(--line);background:#cfc8b6;}
.photos img{width:100%;filter:contrast(1.02);}
.photos figcaption{font-family:"Space Mono",monospace;font-size:10px;color:var(--faded);padding:3px 6px;letter-spacing:.06em;}

/* target chips */
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0;}
.chip{font-family:"Space Mono",monospace;font-size:11.5px;padding:3px 8px;border:1px solid var(--line);background:var(--paper);white-space:nowrap;}
.chip .lab{color:var(--stamp);font-weight:700;}
.chip.adv{border-color:var(--stamp);border-width:1.5px;}

/* set inputs */
.sets{display:flex;flex-direction:column;gap:8px;margin:12px 0 4px;}
.setrow{display:flex;align-items:center;gap:10px;}
.setrow label{font-family:"Space Mono",monospace;font-size:12px;color:var(--ink-soft);width:78px;}
.setrow input{font-family:"Space Mono",monospace;font-size:16px;width:90px;padding:7px 9px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);}
.setrow .unit{font-family:"Space Mono",monospace;font-size:12px;color:var(--faded);}

/* step-up banner */
.gate-up{background:var(--ok);color:#eef5ee;border-left:6px solid var(--hi);padding:12px 16px;margin:12px 0;display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
.gate-up .txt{flex:1 1 240px;font-size:14.5px;}
.gate-up b{color:#fff;}

.saved-flag{background:var(--stamp);color:#fff;padding:10px 16px;margin:18px 0;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.05em;border-left:6px solid var(--hi);}

/* ---- Ladder (gyakorlat detail) ---- */
.rung{display:grid;grid-template-columns:46px 1fr;gap:14px;padding:14px 12px;border-bottom:1px solid var(--line);align-items:start;}
.rung .step-n{font-family:"Oswald",sans-serif;font-weight:700;font-size:20px;color:var(--faded);text-align:center;}
.rung.current{background:var(--paper-2);}
.rung.current .step-n{color:var(--stamp);}
.rung.current{border-left:4px solid var(--stamp);}
.rung.done .step-n{color:var(--ok);}
.rung .rt{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:16px;}
.rung .en{font-family:"Space Mono",monospace;font-size:11px;color:var(--faded);text-transform:none;}
.badge{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.1em;padding:2px 7px;border:1px solid currentColor;text-transform:uppercase;margin-left:8px;}
.badge.cur{background:var(--stamp);color:#fff;border-color:var(--stamp);}
.badge.done{color:var(--ok);}
.badge.lock{color:var(--faded);}

/* book text */
.book{margin:12px 0 4px;border-left:3px solid var(--line);padding-left:16px;}
.book .sec{margin:14px 0;}
.book .sec h4{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.08em;color:var(--steel);margin:0 0 4px;}
.book p{font-size:16px;margin:.4em 0;max-width:68ch;}
.book .goal{font-family:"Space Mono",monospace;font-size:13px;color:var(--ink-soft);margin:2px 0;}
.locked{color:var(--faded);font-style:italic;padding:14px 0;font-family:"Spectral",serif;}
.locked .key{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--stamp);}

.closing{background:var(--ink);color:var(--paper);padding:18px 20px;margin:20px 0;border-left:6px solid var(--hi);}
.closing h4{color:var(--hi);margin:0 0 6px;font-size:14px;letter-spacing:.08em;}
.closing p{color:#e7e1d4;font-size:15px;max-width:none;}

/* ---- overview cards ---- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:18px 0;}
.ocard{border:2px solid var(--ink);background:var(--paper-2);text-decoration:none;color:var(--ink);display:flex;flex-direction:column;}
.ocard .thumb{aspect-ratio:4/3;overflow:hidden;background:#cfc8b6;border-bottom:2px solid var(--ink);}
.ocard .thumb img{width:100%;height:100%;object-fit:cover;}
.ocard .meta{padding:12px 14px;}
.ocard h3{margin:.1em 0;color:var(--ink);}
.ocard .now{font-family:"Space Mono",monospace;font-size:12px;color:var(--stamp);}
.ocard .opt{font-family:"Space Mono",monospace;font-size:10px;color:var(--faded);letter-spacing:.08em;}

/* progress bar 1..10 */
.prog{display:flex;gap:3px;margin:8px 0;}
.prog .seg{flex:1;height:12px;background:var(--paper-3);border:1px solid var(--line);}
.prog .seg.on{background:var(--steel);border-color:var(--steel);}
.prog .seg.cur{background:var(--stamp);border-color:var(--stamp);}

.prow{border-bottom:1px solid var(--line);padding:14px 0;}
.prow .l{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
.prow .name{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:16px;}

/* sparkline */
.spark{margin:14px 0;}
.spark svg{width:100%;height:60px;}

/* history */
.wo{border:2px solid var(--ink);background:var(--paper-2);margin:14px 0;}
.wo summary{cursor:pointer;padding:12px 16px;font-family:"Oswald",sans-serif;text-transform:uppercase;letter-spacing:.04em;display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;}
.wo summary .d{color:var(--stamp);}
.wo summary .tag{font-family:"Space Mono",monospace;font-size:12px;color:var(--ink-soft);text-transform:none;letter-spacing:0;}
.wo .detail{padding:0 16px 14px;}
.wo table{width:100%;border-collapse:collapse;font-size:14px;}
.wo td{padding:6px 8px;border-top:1px solid var(--line);}
.wo td.ex{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:13px;width:40%;}
.wo td.val{font-family:"Space Mono",monospace;}

/* ---- forms / settings ---- */
.panel{border:2px solid var(--ink);background:var(--paper-2);padding:18px 20px;margin:16px 0;}
.field{margin:12px 0;}
.field label{font-family:"Oswald",sans-serif;text-transform:uppercase;font-size:13px;letter-spacing:.05em;display:block;margin-bottom:4px;}
select,textarea{font-family:"Spectral",serif;font-size:16px;padding:8px 10px;border:1.5px solid var(--ink);background:var(--paper);color:var(--ink);width:100%;max-width:360px;}
textarea{max-width:none;width:100%;}
.utable{width:100%;border-collapse:collapse;font-size:14px;}
.utable th,.utable td{padding:8px 10px;border-top:1px solid var(--line);text-align:left;}
.utable th{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.1em;color:var(--faded);text-transform:uppercase;}
.pill{font-family:"Space Mono",monospace;font-size:11px;padding:2px 8px;border:1px solid var(--line);}
.pill.ok{color:var(--ok);border-color:var(--ok);}
.pill.wait{color:var(--stamp);border-color:var(--stamp);}

/* ---- login / pending ---- */
.center{max-width:520px;margin:8vh auto;text-align:center;padding:0 22px;}
.center .mark{font-family:"Oswald",sans-serif;font-weight:700;text-transform:uppercase;font-size:42px;letter-spacing:.04em;}
.center .mark .sub{display:block;color:var(--stamp);font-size:12px;letter-spacing:.3em;font-family:"Space Mono",monospace;margin-top:6px;}
.center p{margin:18px auto;max-width:42ch;color:var(--ink-soft);}

footer{padding:30px 0 0;color:var(--faded);font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.04em;}

@media(max-width:600px){
  .setrow label{width:64px;}
  .photos figure{flex:1 1 140px;}
}
