:root{
  --bg:#f0f2ef;
  --surface:#ffffff;
  --ink:#1a211d;
  --muted:#66716b;
  --line:#dde2dd;
  --accent:#1f6f53;
  --accent-ink:#ffffff;
  --accent-soft:#e2efe9;
  --warn:#9a4a12;
  --warn-soft:#f6e8dc;
  --danger:#a52a2a;
  --radius:14px;
  --shadow:0 1px 2px rgba(26,33,29,.06),0 4px 14px rgba(26,33,29,.05);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5;
  min-height:100dvh;
}
body.has-nav{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.wrap{max-width:480px;margin:0 auto;padding:20px 16px 24px}

h1{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;margin-bottom:2px}
h2{font-size:1.05rem;font-weight:700;margin-bottom:10px}
.sub{color:var(--muted);font-size:.95rem;margin-bottom:20px}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}
.card h2{display:flex;align-items:center;justify-content:space-between}
.card .hint{color:var(--muted);font-size:.85rem}

.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:none;border-radius:var(--radius);
  padding:15px 18px;font-size:1.05rem;font-weight:700;cursor:pointer;text-decoration:none;text-align:center;
  background:var(--accent);color:var(--accent-ink);transition:transform .05s ease}
.btn:active{transform:scale(.98)}
.btn.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn.ghost{background:transparent;color:var(--accent);border:1px dashed var(--accent)}
.btn.small{width:auto;padding:8px 14px;font-size:.9rem;border-radius:10px}
.btn.danger{background:transparent;color:var(--danger);border:1px solid var(--line)}
.btnrow{display:flex;gap:10px}
.btnrow .btn{flex:1}

label{display:block;font-size:.85rem;font-weight:600;color:var(--muted);margin-bottom:5px}
input[type=text],input[type=password],input[type=number],input[type=date],select{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:12px 12px;font-size:1rem;background:#fbfcfb;color:var(--ink);
  -webkit-appearance:none;appearance:none}
input:focus,select:focus,.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid rgba(31,111,83,.35);outline-offset:1px}
.field{margin-bottom:14px}
.fieldrow{display:flex;gap:10px}
.fieldrow .field{flex:1}

.flash{border-radius:10px;padding:11px 14px;margin-bottom:14px;font-size:.95rem;font-weight:600}
.flash-ok{background:var(--accent-soft);color:var(--accent)}
.flash-err{background:#f7e3e3;color:var(--danger)}
.flash-warn{background:var(--warn-soft);color:var(--warn)}

/* Dashboard */
.greet{margin:6px 0 18px}
.greet .date{color:var(--muted);font-size:.95rem;text-transform:capitalize}
.status-pill{display:inline-block;background:var(--accent-soft);color:var(--accent);font-weight:700;font-size:.85rem;border-radius:99px;padding:4px 12px}
.status-pill.rest{background:var(--warn-soft);color:var(--warn)}
.planlist{list-style:none}
.planlist li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-weight:600}
.planlist li:last-child{border-bottom:none}
.planlist .pos{color:var(--muted);font-weight:700;font-size:.85rem;width:1.4em}

/* Gewicht-Schnelleingabe */
.weightline{display:flex;gap:10px;align-items:stretch}
.weightline input{flex:1;font-size:1.2rem;font-weight:700;text-align:center}
.weightline .btn{width:auto;padding:0 22px}
.weight-done{font-size:1.6rem;font-weight:800}
.weight-done small{font-size:.95rem;color:var(--muted);font-weight:600;margin-left:6px}

/* Workout */
details.machine{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;overflow:hidden}
details.machine>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:12px;padding:15px 16px;font-weight:700;font-size:1.05rem}
details.machine>summary::-webkit-details-marker{display:none}
details.machine>summary .order{background:var(--bg);border:1px solid var(--line);color:var(--muted);font-size:.85rem;font-weight:700;
  width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
details.machine[data-done="1"]>summary .order{background:var(--accent);border-color:var(--accent);color:#fff}
details.machine>summary .meta{margin-left:auto;color:var(--muted);font-size:.85rem;font-weight:600;white-space:nowrap}
.machine-body{padding:0 16px 16px;border-top:1px solid var(--line)}

.setstable{width:100%;border-collapse:collapse;margin:12px 0 4px;font-size:.95rem}
.setstable th{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;padding:6px 4px;border-bottom:1px solid var(--line)}
.setstable td{padding:7px 4px;border-bottom:1px solid var(--line)}
.setstable tr:last-child td{border-bottom:none}
.setstable .r{text-align:right}
.lastlabel{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-top:14px}

/* Stepper – Signatur-Element */
.stepper{display:flex;align-items:stretch;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fbfcfb}
.stepper button{width:54px;border:none;background:var(--bg);color:var(--ink);font-size:1.5rem;font-weight:700;cursor:pointer;flex-shrink:0}
.stepper button:active{background:var(--line)}
.stepper input{border:none;border-radius:0;text-align:center;font-size:1.35rem;font-weight:800;background:transparent}
.setform{margin-top:14px}
.setform .fieldrow{margin-bottom:12px}

/* Einstellungen */
.itemrow{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--line)}
.itemrow:last-child{border-bottom:none}
.itemrow .name{flex:1;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:9px;width:36px;height:36px;font-size:1rem;cursor:pointer;color:var(--ink);flex-shrink:0;display:flex;align-items:center;justify-content:center}
.iconbtn:disabled{opacity:.3;cursor:default}
.iconbtn.del{color:var(--danger)}
.addrow{display:flex;gap:8px;margin-top:12px}
.addrow select,.addrow input{flex:1;min-width:0}
.addrow .btn{width:auto;padding:0 16px}
.daytabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:14px;-webkit-overflow-scrolling:touch}
.daytabs a{flex-shrink:0;text-decoration:none;font-weight:700;font-size:.9rem;padding:8px 13px;border-radius:99px;border:1px solid var(--line);background:var(--surface);color:var(--muted)}
.daytabs a.active{background:var(--ink);border-color:var(--ink);color:#fff}

/* Statistik */
.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow)}
.kpi .v{font-size:1.6rem;font-weight:800;letter-spacing:-.02em}
.kpi .l{color:var(--muted);font-size:.8rem;font-weight:600}
.chartbox{position:relative;height:230px}

/* Bottom-Navigation */
.bottomnav{position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.93);backdrop-filter:blur(10px);
  border-top:1px solid var(--line);display:flex;justify-content:space-around;
  padding:8px 8px calc(8px + env(safe-area-inset-bottom));z-index:10}
.navitem{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--muted);
  font-size:.7rem;font-weight:700;padding:4px 14px;border-radius:10px}
.navitem svg{width:23px;height:23px}
.navitem.active{color:var(--accent)}

/* Login / Setup */
.authwrap{max-width:380px;margin:0 auto;padding-top:9dvh}
.logo{display:flex;align-items:center;gap:10px;margin-bottom:26px;justify-content:center}
.logo .mark{width:42px;height:42px;border-radius:12px;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.2rem}
.logo .t{font-weight:800;font-size:1.25rem;letter-spacing:-.02em}
.center{text-align:center}
.mt{margin-top:14px}
a.plain{color:var(--accent);font-weight:600}

@media (prefers-reduced-motion: reduce){
  *{transition:none!important;animation:none!important}
}

/* Typ-Badge (Eigengewicht / Cardio) */
.badge{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.02em;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:1px 8px;vertical-align:middle;margin-left:4px}

/* Button „Nächste Übung“ im Workout */
.nextbtn{display:block;text-align:center;text-decoration:none;margin-top:10px}
