:root{--bg:#f4f6f8;--card:#fff;--fg:#1b2430;--muted:#66717f;--acc:#2f7fa8;--ok:#2e8b57;--warn:#c0782a;--line:#dde3e9}
@media(prefers-color-scheme:dark){:root{--bg:#11161c;--card:#1a222b;--fg:#e6edf3;--muted:#93a1b0;--acc:#5fb3d9;--ok:#5cc28a;--warn:#e0a35c;--line:#2a3541}}
*{box-sizing:border-box}body{margin:0;font:17px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--fg);padding-bottom:84px}
header{padding:14px 16px 4px}h1{margin:0;font-size:1.3rem}h2{font-size:1.15rem;margin:.2rem 0 .6rem}h3{margin:.2rem 0;font-size:1rem}
main{padding:8px 12px;max-width:760px;margin:auto}.muted{color:var(--muted);font-size:.9rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px;margin:10px 0}
.card.current{border:2px solid var(--acc)}
nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
nav button{flex:1;min-height:60px;border:0;background:none;color:var(--muted);font-size:.85rem}nav button.on{color:var(--acc);font-weight:700}
button,.btn{min-height:48px;padding:0 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--fg);font-size:1rem;cursor:pointer}
.primary{background:var(--acc);color:#fff;border:0}.ok{background:var(--ok);color:#fff;border:0}.warn{background:var(--warn);color:#fff;border:0}
input,select,textarea{font-size:1rem;min-height:44px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--bg);color:var(--fg);width:100%}
.ex{display:grid;grid-template-columns:44px 1fr 92px;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.ex input[type=checkbox]{width:32px;height:32px;min-height:0}.ex .w{text-align:right}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row>*{flex:1}
table{width:100%;border-collapse:collapse;font-size:.9rem}td,th{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.pill{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.8rem;background:var(--line)}
.pill.Done,.pill.Achieved{background:var(--ok);color:#fff}.pill.Skipped{background:var(--warn);color:#fff}
.weeks{display:flex;gap:6px;flex-wrap:wrap;margin:6px 0}.wk{padding:6px 10px;border-radius:8px;background:var(--line);font-size:.85rem}.wk.now{background:var(--acc);color:#fff;font-weight:700}
.big{font-size:2rem;font-weight:700}svg{width:100%;height:auto}svg text{fill:var(--muted);font-size:11px}
.disclaimer{text-align:center;font-size:.8rem;color:var(--muted);padding:0 16px}
.edit-ex{display:grid;grid-template-columns:1fr 54px 90px 64px 40px;gap:4px;margin:4px 0}.edit-ex input{min-height:40px;padding:4px 6px;font-size:.9rem}
