:root{
  --green:#2e7d52; --green-d:#256544;
  --orange:#e06414; --purple:#7142a8;
  --bg:#f4f6f5; --card:#fff; --ink:#1c2420; --muted:#7a8580;
  --line:#e3e8e5; --danger:#c0392b;
  --radius:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  background:var(--bg); color:var(--ink); font-size:17px; line-height:1.4;
  -webkit-tap-highlight-color:transparent;
}
a{color:var(--green); text-decoration:none}

/* Шапка */
.topbar{
  position:sticky; top:0; z-index:10;
  display:flex; align-items:center; justify-content:space-between;
  background:var(--green); color:#fff; padding:12px 16px;
}
.topbar .brand{color:#fff; font-weight:700; font-size:18px}
.topbar nav a{color:#dff0e7; margin-left:14px; font-size:15px}

.wrap{max-width:680px; margin:0 auto; padding:16px 16px 60px}

/* Кнопки */
.btn{
  display:inline-block; border:1px solid var(--line); background:#fff; color:var(--ink);
  padding:12px 16px; border-radius:var(--radius); font-size:16px; cursor:pointer;
  text-align:center; font-family:inherit;
}
.btn-primary{background:var(--green); border-color:var(--green); color:#fff; font-weight:600}
.btn-primary:active{background:var(--green-d)}
.btn-danger{background:#fff; border-color:var(--danger); color:var(--danger)}
.btn-big{padding:16px; font-size:18px}
.btn-block{display:block; width:100%; margin-top:10px}

/* Карточки тренировок */
.section-title{font-size:15px; text-transform:uppercase; letter-spacing:.04em;
  color:var(--muted); margin:24px 0 10px}
.cards{display:flex; flex-direction:column; gap:10px}
.card{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px 16px;
}
.card:active{background:#f0f4f1}
.card-date{font-weight:700; font-size:17px}
.card-note{color:var(--muted); font-size:14px; margin-top:3px}
.card-stats{display:flex; flex-direction:column; align-items:flex-end; gap:2px;
  color:var(--muted); font-size:13px; white-space:nowrap}
.card-stats span:last-child{color:var(--ink); font-weight:600}
.link-more{display:inline-block; margin-top:14px; font-size:15px}
.empty{color:var(--muted); text-align:center; padding:24px 0}

/* Страница тренировки */
.workout-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:14px}
.workout-head h1{margin:0; font-size:24px}
.workout-vol{color:var(--muted); font-size:14px}

.addset{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px; margin-bottom:18px}
.addset select, .addset input, .settings input, .settings select{
  width:100%; padding:13px; font-size:17px; border:1px solid var(--line);
  border-radius:10px; background:#fff; font-family:inherit; color:var(--ink);
}
.addset-row{display:flex; gap:10px; margin:10px 0}
.addset-row label{flex:1; font-size:13px; color:var(--muted)}
.addset-row label.sets-col{flex:0 0 70px}
.addset-row input{margin-top:4px}

.last-hint{margin-top:10px; background:#eef6f1; border:1px solid #cfe6da;
  border-radius:10px; padding:10px 12px; font-size:14px; color:var(--green-d)}
.last-hint b{color:var(--ink)}
.last-hint .refill{display:inline-block; margin-left:8px; color:var(--orange); font-weight:600}

/* Блоки упражнений в тренировке */
.ex-block{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:12px 14px; margin-bottom:12px}
.ex-head{font-weight:600; font-size:17px; margin-bottom:6px}
.muscle{display:inline-block; font-size:12px; color:var(--muted);
  background:#eef1ef; padding:2px 8px; border-radius:20px; margin-left:6px; font-weight:400}
.sets{width:100%; border-collapse:collapse}
.sets td{padding:8px 4px; border-top:1px solid var(--line)}
.sets tr:first-child td{border-top:none}
.set-n{color:var(--muted); width:28px}
.set-val{font-size:17px}
.set-del{text-align:right; width:40px}
.btn-x{background:none; border:none; color:var(--muted); font-size:18px; cursor:pointer; padding:4px 8px}

/* Настройки / details */
.settings{margin-top:20px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--radius); padding:0 14px}
.settings summary{padding:14px 0; cursor:pointer; color:var(--muted)}
.settings label{display:block; font-size:13px; color:var(--muted); margin-bottom:10px}
.settings label input, .settings label select{margin-top:4px}
.settings form{padding-bottom:14px}

/* Логин */
.login-box{max-width:340px; margin:12vh auto 0; text-align:center}
.login-box h1{font-size:28px}
.login-box input{width:100%; padding:15px; font-size:18px; border:1px solid var(--line);
  border-radius:12px; margin:14px 0}

/* Flash */
.flash{background:#fff4e6; border:1px solid #f3d4ad; color:#8a4b00;
  border-radius:10px; padding:10px 14px; margin-bottom:14px; font-size:15px}

/* Страница упражнения */
.ex-detail-head{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.ex-detail-head h1{margin:0; font-size:24px}
.pr-row{display:flex; gap:10px; margin:16px 0}
.pr{flex:1; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); padding:14px}
.pr-label{font-size:13px; color:var(--muted)}
.pr-val{font-size:28px; font-weight:700; margin-top:2px}
.pr-val span{font-size:15px; font-weight:400; color:var(--muted)}
.pr-sub{font-size:12px; color:var(--muted); margin-top:2px}
.chart-box{background:var(--card); border:1px solid var(--line); border-radius:var(--radius);
  padding:14px; height:280px; margin-bottom:8px}
.set-chip{display:inline-block; background:#eef1ef; border-radius:8px; padding:2px 8px;
  margin:2px 4px 2px 0; font-size:14px}

/* Список упражнений */
.ex-list{display:flex; flex-direction:column; gap:1px; background:var(--line);
  border:1px solid var(--line); border-radius:var(--radius); overflow:hidden}
.ex-row{display:flex; flex-direction:column; background:#fff; padding:12px 14px}
.ex-row.archived{opacity:.5}
.ex-top{display:flex; justify-content:space-between; align-items:center; gap:10px}
.ex-actions{display:flex; gap:6px; flex-shrink:0}
.ex-name{flex:1; color:var(--ink)}
.rename{margin-top:6px}
.rename summary{list-style:none; cursor:pointer; color:var(--muted); font-size:13px; padding:4px 0}
.rename summary::-webkit-details-marker{display:none}
.rename-form{display:flex; gap:8px; flex-wrap:wrap; padding:8px 0 4px}
.rename-form input[name=name]{flex:1; min-width:150px; padding:9px; font-size:15px;
  border:1px solid var(--line); border-radius:9px}
.rename-form select{padding:9px; font-size:15px; border:1px solid var(--line); border-radius:9px; background:#fff}
.tag{font-size:11px; color:var(--purple); border:1px solid var(--purple);
  border-radius:10px; padding:0 6px; margin-left:6px}
.uses{font-size:12px; color:var(--muted); margin-left:6px}
.btn-mini{background:none; border:1px solid var(--line); border-radius:8px;
  color:var(--muted); padding:6px 10px; font-size:13px; cursor:pointer}
