:root{
  --bg:#f7f7f5; --card:#ffffff; --text:#1f1f1d; --muted:#6b6b66;
  --accent:#7a3557; --accent-soft:#f5e6ee; --border:#e6e4de;
  --good:#2f7d4f; --good-soft:#eaf6ee; --build:#9a5b13; --build-soft:#fdf1e2;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#171715; --card:#1f1f1c; --text:#efeee9; --muted:#a3a19a;
    --accent:#b06a8f; --accent-soft:#2e1c26; --border:#333330;
    --good:#5fbf85; --good-soft:#16261c; --build:#e0973f; --build-soft:#2b2116;
  }
}
*{box-sizing:border-box;}
html,body{margin:0; padding:0;}
body{
  background:var(--bg); color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  padding:16px; padding-bottom:calc(64px + env(safe-area-inset-bottom));
  padding-top:calc(16px + env(safe-area-inset-top));
}
.wrap{max-width:640px; margin:0 auto;}
h1.brand{
  font-size:1.6rem; font-weight:800; margin:4px 0 2px; letter-spacing:-0.01em;
  color:var(--text);
}
h1.brand .brand-name{ color:var(--accent); }
.sub{color:var(--muted); font-size:0.85rem; margin-bottom:16px;}
.tabs{display:flex; gap:8px; margin-bottom:16px; position:sticky; top:0; background:var(--bg); padding:8px 0; z-index:5;}
.tab{
  flex:1; text-align:center; padding:10px 8px; border-radius:10px;
  border:1px solid var(--border); background:var(--card); cursor:pointer;
  font-weight:600; font-size:0.95rem; color:var(--muted);
}
.tab.active{background:var(--accent); color:#fff; border-color:var(--accent);}
.date-row{display:flex; align-items:center; gap:8px; margin-bottom:16px; flex-wrap:wrap;}
.date-row input[type=date]{
  background:var(--card); color:var(--text); border:1px solid var(--border);
  border-radius:8px; padding:6px 8px; font-size:0.9rem;
}
.rule-box{
  background:var(--accent-soft); border:1px solid var(--border); border-radius:12px;
  padding:12px 14px; font-size:0.82rem; color:var(--text); margin-bottom:16px; line-height:1.45;
}
.rule-box b{color:var(--accent);}
.group{margin-bottom:14px;}
.group-label{font-size:0.72rem; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); margin:0 0 6px 2px;}
.card{
  background:var(--card); border:1px solid var(--border); border-radius:14px;
  padding:14px; margin-bottom:10px;
}
.ex-head{display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:8px;}
.ex-name{font-weight:600; font-size:1rem;}
.ex-prev{font-size:0.76rem; color:var(--muted); text-align:right;}
.weight-row{display:flex; align-items:center; gap:8px; margin-bottom:10px;}
.weight-row label{font-size:0.8rem; color:var(--muted);}
.weight-row input{
  width:80px; background:var(--bg); color:var(--text); border:1px solid var(--border);
  border-radius:8px; padding:6px 8px; font-size:0.9rem;
}
.sets{display:grid; grid-template-columns:repeat(4,1fr); gap:6px;}
.set-box{display:flex; flex-direction:column; align-items:center; gap:3px;}
.set-box label{font-size:0.68rem; color:var(--muted);}
.set-box input{
  width:100%; text-align:center; padding:8px 2px; border-radius:8px;
  border:1px solid var(--border); background:var(--bg); color:var(--text); font-size:1rem;
}
.set-box input.hit{border-color:var(--good); background:var(--good-soft);}
.status{margin-top:8px; font-size:0.78rem; padding:6px 8px; border-radius:8px; display:none;}
.status.show{display:block;}
.status.up{background:var(--good-soft); color:var(--good);}
.status.build{background:var(--build-soft); color:var(--build);}
.savebar{
  position:sticky; bottom:0; background:var(--bg); padding:10px 0 4px;
  display:flex; justify-content:center;
}
.savebtn{
  background:var(--accent); color:#fff; border:none; border-radius:12px;
  padding:12px 28px; font-size:0.95rem; font-weight:600; cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,0.15);
}
.savebtn:active{opacity:0.85;}
.toast{
  position:fixed; bottom:70px; left:50%; transform:translateX(-50%);
  background:var(--text); color:var(--bg); padding:8px 16px; border-radius:20px;
  font-size:0.85rem; opacity:0; transition:opacity 0.25s; pointer-events:none;
}
.toast.show{opacity:0.95;}
.history-toggle{
  text-align:center; margin:20px 0 4px; font-size:0.82rem; color:var(--accent);
  cursor:pointer; text-decoration:underline;
}
.hist-card{
  background:var(--card); border:1px solid var(--border); border-radius:12px;
  padding:10px 14px; margin-bottom:8px; font-size:0.82rem;
}
.hist-card .h-date{font-weight:600; margin-bottom:4px;}
.hist-card .h-ex{color:var(--muted); display:flex; justify-content:space-between; gap:8px;}
