:root{
  --bg:#f5f2ed;
  --card:#ffffff;
  --text:#191816;
  --muted:#736f68;
  --line:#e8e3dc;
  --soft:#efebe5;
  --accent:#22201d;
  --success:#e8f1e8;
  --success-line:#c9ddc9;
  --warning:#fff4d7;
  --danger:#a33b3b;
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{
  margin:0;
  color:var(--text);
  background:var(--bg);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{font:inherit}
button{touch-action:manipulation}
.app-shell{max-width:760px;margin:0 auto;padding:20px 13px 90px}
.app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin:6px 4px 14px}
h1{font-size:29px;line-height:1.05;margin:4px 0 0;letter-spacing:-.03em}
h2{font-size:21px;margin:3px 0 0;letter-spacing:-.02em}
.eyebrow{font-size:11px;letter-spacing:.14em;font-weight:800;color:var(--muted)}
.muted{color:var(--muted)}
.small{font-size:12px}
.tiny{font-size:11px}
.logout{color:var(--muted);font-size:13px;text-decoration:none;padding:8px 0}
.tabs{
  position:sticky;top:0;z-index:20;
  display:grid;grid-template-columns:repeat(3,1fr);gap:7px;
  background:rgba(245,242,237,.94);backdrop-filter:blur(10px);
  padding:10px 0;
}
.tab,.icon-btn,.quick,.toggle,#exportCsv{
  border:1px solid var(--line);background:var(--card);color:var(--text);
  border-radius:12px;padding:10px 12px;font-weight:700;
}
.tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.panel,.exercise-card{
  background:var(--card);border:1px solid var(--line);
  border-radius:18px;padding:15px;margin:10px 0;
  box-shadow:0 1px 3px rgba(30,20,10,.035);
}
.top-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.field label,.panel>label,.login-form label{display:block;font-size:12px;color:var(--muted);font-weight:700;margin:0 0 6px}
input[type=date],select,textarea,input[type=password]{
  width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;
  color:var(--text);padding:11px 12px;outline:none;
}
textarea{min-height:110px;resize:vertical}
.save-status{font-size:12px;color:var(--muted);text-align:right;padding:0 4px 1px;min-height:17px}
.error-text{color:var(--danger)}
.exercise-card.complete{border-color:var(--success-line);background:linear-gradient(#fff,var(--success))}
.exercise-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.name{font-size:15px;font-weight:800}
.amount{font-size:18px;font-weight:850;white-space:nowrap}
.amount span{font-size:12px;font-weight:650;color:var(--muted)}
.progress{height:8px;background:var(--soft);border-radius:999px;overflow:hidden;margin:11px 0 12px}
.progress>div{height:100%;background:var(--accent);border-radius:inherit;transition:width .18s ease}
.quick-row{display:flex;flex-wrap:wrap;gap:7px}
.quick{padding:9px 11px;min-width:47px}
.quick.secondary{color:var(--muted);font-weight:650}
.toggle.done{background:var(--accent);border-color:var(--accent);color:#fff}
.section-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.week-nav{display:flex;gap:6px}
.icon-btn{width:42px;height:42px;padding:0}
.summary-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;
  align-items:center;padding:12px 0;border-bottom:1px solid var(--line);
}
.summary-row:last-child{border-bottom:0}
.summary-row strong{text-align:right}
.notes-summary{margin-top:13px;padding:12px;background:var(--soft);border-radius:12px;white-space:pre-wrap}
.day-type-pill{display:inline-block;font-size:12px;font-weight:800;background:var(--soft);padding:6px 9px;border-radius:999px;margin:3px 0 6px}
.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.week-day{
  border:1px solid var(--line);background:#fff;border-radius:12px;padding:8px 3px;
  min-width:0;color:var(--text)
}
.week-day span,.week-day small,.week-day em{display:block;font-size:10px;color:var(--muted);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week-day strong{display:block;font-size:16px;margin:2px 0}
.week-day em{font-size:9px;margin-top:3px}
.week-day.selected{background:var(--accent);color:#fff;border-color:var(--accent)}
.week-day.selected span,.week-day.selected small,.week-day.selected em{color:#e7e4df}
.export-panel{display:flex;justify-content:space-between;align-items:center;gap:10px}
.hidden{display:none!important}
.warning,.error{
  border-radius:12px;padding:10px 12px;margin:10px 0;font-size:13px
}
.warning{background:var(--warning)}
.error{background:#f8e3e3;color:#732828}
.toast{
  position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);
  background:#171614;color:white;border-radius:999px;padding:10px 15px;
  font-size:13px;font-weight:750;opacity:0;pointer-events:none;transition:.18s;
  z-index:50
}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast-error{background:#7c2f2f}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:min(430px,100%);background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px}
.login-card h1{margin:5px 0 12px}
.login-form{margin-top:18px}
.login-form .wide{width:100%;margin-top:10px}
.primary{border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:12px;padding:11px 14px;font-weight:800}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
@media(max-width:560px){
  .app-shell{padding-left:9px;padding-right:9px}
  .top-panel{grid-template-columns:1fr}
  .panel,.exercise-card{border-radius:16px;padding:13px}
  .week-days{gap:3px}
  .week-day{padding:7px 1px}
  .week-day small{font-size:8px}
  .week-day em{display:none}
  .amount{font-size:17px}
}
