:root{--bg: #101010;--card: #1c1c1c;--ink: #f2efe8;--muted: #9a958a;--line: #2a2a2a;--accent: #e8c36a;--owed: #e07a6c;--done: #8fbf8a;--warn: #d4a24a;--font: "IBM Plex Sans", system-ui, sans-serif;--display: "IBM Plex Serif", Georgia, serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:18px;line-height:1.4;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2{font-family:var(--display);font-weight:500;margin:0;letter-spacing:-.02em}h1{font-size:clamp(2rem,8vw,2.8rem)}h2{font-size:1.6rem}p{margin:.4rem 0 0}.muted{color:var(--muted)}.eyebrow{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:.7rem;font-weight:600}.err{color:var(--owed);margin:8px 0}.ok{color:var(--done);margin:8px 0}.warn{color:var(--warn)}.login{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:20px;padding:32px 24px}.page{max-width:520px;margin:0 auto;padding:22px 18px 110px}.top{margin-bottom:22px}.cue{color:var(--ink);opacity:.9}.banner{background:#2a2316;color:var(--accent);border-radius:14px;padding:12px 14px;margin-bottom:16px}.owed{border:1px solid var(--owed);border-radius:14px;padding:12px 14px;margin:16px 0}.owed-row{margin-top:6px}.stack{display:flex;flex-direction:column;gap:10px;margin:18px 0}.btn{background:var(--accent);color:#161410;border:0;border-radius:16px;padding:.95rem 1rem;font-weight:600;width:100%}.btn.hero{font-size:1.15rem;padding:1.15rem 1rem}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn:disabled{opacity:.45}.text-btn{background:none;border:0;color:var(--muted);padding:0;margin-bottom:8px}.field{display:flex;flex-direction:column;gap:6px;margin:14px 0}.field span{font-size:.82rem;color:var(--muted)}.field input,.field select{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.85rem .9rem}.check{display:flex;gap:10px;align-items:center;margin:14px 0}.preview{list-style:none;padding:0;margin:24px 0 0}.preview li{border-top:1px solid var(--line);padding:12px 0}.slot{color:var(--accent);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}.dock{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:#0c0c0c;border-top:1px solid var(--line);padding:8px 4px calc(8px + env(safe-area-inset-bottom))}.dock button{background:none;border:0;color:var(--muted);padding:12px 4px;font-size:.82rem}.dock button.on{color:var(--accent)}.lift{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:18px;margin:16px 0}.inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ghost-chip{display:block;width:100%;text-align:left;background:#262018;color:var(--accent);border:0;border-radius:12px;padding:10px 12px;margin:12px 0}.set-list{list-style:none;padding:0;margin:12px 0 0;color:var(--muted)}.ex-nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}.ex-nav button{flex:0 0 auto;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--muted)}.ex-nav button.on{border-color:var(--accent);color:var(--accent)}.rest{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center}.rest-time{font-family:var(--display);font-size:5.5rem;line-height:1;margin:12px 0}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:end center;z-index:20}.sheet{width:min(520px,100%);background:var(--card);border-radius:24px 24px 0 0;padding:24px 20px calc(24px + env(safe-area-inset-bottom))}.rpe{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:16px}.rpe .btn{padding:1rem 0}.log-list{list-style:none;padding:0;margin:0}.log-list li{border-bottom:1px solid var(--line)}.log-list button{width:100%;background:none;border:0;text-align:left;padding:14px 0;display:flex;justify-content:space-between;gap:12px;color:inherit}.log-list .owed strong{color:var(--owed)}.log-list .done strong{color:var(--done)}.log-list .excused,.log-list .rest,.log-list .off{opacity:.7}.day-pills{display:flex;flex-wrap:wrap;gap:6px}.day-pills button{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 12px}.day-pills button.on{border-color:var(--accent);color:var(--accent)}.toast{position:fixed;left:50%;bottom:84px;transform:translate(-50%);background:var(--ink);color:#111;padding:12px 16px;border-radius:999px;max-width:90vw;z-index:30;font-size:.95rem}.chart-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px 14px 10px;margin:14px 0}.chart-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}.chart-head h2{font-size:1.15rem}.chart-delta.up{color:var(--done)}.chart-delta.down{color:var(--owed)}.chart-svg{width:100%;height:148px;display:block}.chart-empty{height:88px;display:grid;place-items:center;color:var(--muted);font-size:.92rem}.seg{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0 4px}.seg button{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 10px;color:var(--muted)}.seg button.on{border-color:var(--accent);color:var(--accent)}.bars{display:flex;align-items:flex-end;gap:4px;height:120px;margin-top:8px}.bars .bar{flex:1;background:#3a341f;border-radius:4px 4px 0 0;min-height:3px;position:relative}.bars .bar.deload{background:#2a2316}.bars .bar.on{background:var(--accent)}.bar-week{display:flex;justify-content:space-between;color:var(--muted);font-size:.7rem;margin-top:6px}
