:root{--bg:#f3f6f9;--surface:#ffffff;--ink:#14212e;--ink-2:#4a5866;--line:#d5dee7;--accent:#1f6fbf;--accent-ink:#ffffff;--good:#2f7d32;--good-bg:#e4f2e2;--warn:#8a5300;--warn-bg:#fdf0d9;--bad:#b3261e;--water:#e3effb;--water-ink:#0d3f70;--water-line:#8bb8e6;--lemon:#fbf0d4;--lemon-ink:#5e4200;--lemon-line:#e2b84f;--ginger:#e6f2dc;--ginger-ink:#24480f;--ginger-line:#95c46a;--berry:#f9e6ee;--berry-ink:#6d1d3c;--berry-line:#e195b4;--mint:#ddf3ee;--mint-ink:#0c4a3e;--mint-line:#6dc7b0;--appt:#eeedfe;--appt-ink:#2f2878;--appt-line:#afa9ec;--ring-track:#dbe4ec;--ring-behind:#d63c3a;--ring-onway:#e8961e;--font:"Atkinson Hyperlegible","Segoe UI",system-ui,-apple-system,sans-serif;--mono:"Atkinson Hyperlegible Mono",ui-monospace,"SF Mono",monospace;--radius:16px}@media (prefers-color-scheme:dark){:root{--bg:#0e151c;--surface:#17212b;--ink:#eef3f8;--ink-2:#a9b6c3;--line:#2b3945;--accent:#6aaef0;--accent-ink:#0b1a29;--good:#8fd18f;--good-bg:#1d3320;--warn:#f2c26b;--warn-bg:#3a2c12;--bad:#ff8a80;--water:#16314d;--water-ink:#d6e9fc;--water-line:#3a6fa3;--lemon:#3a2f12;--lemon-ink:#f7e2a6;--lemon-line:#8a6d24;--ginger:#203519;--ginger-ink:#d4ecc0;--ginger-line:#4f7f33;--berry:#3a1a28;--berry-ink:#f6cfe0;--berry-line:#8c4766;--mint:#12352e;--mint-ink:#c6efe5;--mint-line:#2f8a73;--ring-track:#273541;--appt:#26215c;--appt-ink:#e3e1fb;--appt-line:#534ab7;--ring-behind:#ff7b72;--ring-onway:#f2b04a;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);font-size:18px;line-height:1.5;-webkit-text-size-adjust:100%}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}a{color:var(--accent)}h1,h2,h3{line-height:1.2;text-wrap:balance;margin:0}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mom{max-width:520px;margin:0 auto;padding-block:16px 40px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));display:flex;flex-direction:column;gap:16px}.mom-date{text-align:center;font-size:22px;color:var(--ink-2)}.ring-wrap{position:relative;width:min(64vw,260px);aspect-ratio:1;margin:0 auto}.ring-wrap svg{width:100%;height:100%;display:block}.ring-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-oz{font-size:clamp(56px,18vw,76px);font-weight:700;line-height:1}.ring-of{font-size:22px;color:var(--ink-2)}.status{font-size:24px;min-height:36px}.status,.streak{text-align:center}.streak{font-size:20px;color:var(--good)}.drink,.streak{font-weight:700}.drink{width:100%;min-height:88px;border-radius:var(--radius);border:2px solid;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:28px;transition:transform .08s}.drink:active{transform:scale(.98)}.drink small{font-size:26px;font-weight:700}.c-blue{background:var(--water);color:var(--water-ink);border-color:var(--water-line)}.c-amber{background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon-line)}.c-green{background:var(--ginger);color:var(--ginger-ink);border-color:var(--ginger-line)}.c-pink{background:var(--berry);color:var(--berry-ink);border-color:var(--berry-line)}.c-teal{background:var(--mint);color:var(--mint-ink);border-color:var(--mint-line)}.btn{min-height:56px;border-radius:14px;border:2px solid var(--line);background:var(--surface);font-size:20px;font-weight:700;padding:0 20px}.btn-primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn-sm{min-height:40px;font-size:16px;padding:0 14px;border-width:1.5px;border-radius:10px}.banner{border-radius:var(--radius);padding:18px 20px;font-size:22px;display:flex;flex-direction:column;gap:12px;border:2px solid}.banner-info{background:var(--water);color:var(--water-ink);border-color:var(--water-line)}.banner-good{background:var(--good-bg);color:var(--good);border-color:var(--good)}.banner-pill{background:var(--lemon);color:var(--lemon-ink);border-color:var(--lemon-line)}.banner-appt{background:var(--appt);color:var(--appt-ink);border-color:var(--appt-line)}.banner-cheer{background:var(--berry);color:var(--berry-ink);border-color:var(--berry-line)}.banner b{font-size:26px}.row{display:flex;gap:12px;flex-wrap:wrap}.row>*{flex:1 1 160px}.mom-log{font-size:20px;color:var(--ink-2);display:flex;flex-direction:column;gap:4px}.mom-log div{display:flex;justify-content:space-between;border-bottom:1px solid var(--line);padding:6px 0}.week-row{display:grid;grid-template-columns:56px 1fr 72px;align-items:center;grid-gap:12px;gap:12px;font-size:20px}.bar{height:22px;background:var(--ring-track);overflow:hidden}.bar,.bar span{border-radius:11px}.bar span{display:block;height:100%}.fine{font-size:16px;color:var(--ink-2);text-align:center}@keyframes pop{0%{transform:scale(.9);opacity:0}60%{transform:scale(1.04);opacity:1}to{transform:scale(1)}}.pop{animation:pop .45s ease-out}@media (prefers-reduced-motion:reduce){.pop{animation:none}.drink{transition:none}}.fam{max-width:880px;margin:0 auto;padding-block:12px 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));font-size:16px}.fam-nav{gap:4px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:20px}.fam-nav,.fam-nav .brand{display:flex;align-items:center}.fam-nav .brand{font-size:20px;margin-right:auto;color:var(--ink);gap:8px}.fam-nav .brand,.fam-nav a.tab{font-weight:700;text-decoration:none}.fam-nav a.tab{padding:8px 12px;border-radius:10px;color:var(--ink-2)}.fam-nav a.tab[aria-current=page]{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));align-items:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;min-width:0}.card h2{font-size:18px}.label{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2);font-weight:700}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:10px;gap:10px}.stat{background:var(--bg);border-radius:10px;padding:10px 12px}.stat b{display:block;font-size:24px}.stat span{font-size:13px;color:var(--ink-2)}.alert{border-radius:10px;padding:10px 12px;font-size:15px}.alert-warn{background:var(--warn-bg);color:var(--warn)}.alert-good{background:var(--good-bg);color:var(--good)}.list{display:flex;flex-direction:column}.list>div{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.list>div>:first-child{flex:1 1;min-width:0}.muted{color:var(--ink-2)}.err{color:var(--bad);font-size:15px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field input,.field select{min-height:44px;border:1.5px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface)}.inline{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.inline>.field{flex:1 1 120px}.chip{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--line);border-radius:999px;padding:4px 6px 4px 12px;background:var(--surface)}.chip button{border:0;background:none;padding:2px 6px;color:var(--ink-2)}.copybox{font-family:var(--mono);font-size:14px;word-break:break-all;padding:10px;border-radius:8px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.copybox,.pill{background:var(--bg)}.pill{font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;color:var(--ink-2);text-transform:uppercase;letter-spacing:.05em}.report{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:28px;display:flex;flex-direction:column;gap:18px;color:var(--ink)}.report table{width:100%;border-collapse:collapse;font-size:14px}.report td,.report th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}.report th{color:var(--ink-2);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em}.report .two{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:18px;gap:18px}.tablewrap{overflow-x:auto}.pagebreak{page-break-before:always;break-before:page}@media print{:root{--bg:#fff;--surface:#fff;--ink:#000;--ink-2:#333;--line:#bbb;color-scheme:light}body{font-size:12px}.noprint{display:none!important}.fam{max-width:none;padding:0}.report{border:0;padding:0}.stat{border:1px solid #ccc}}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions,.actions>*{flex:0 0 auto}.fam-nav a.tab{padding:8px 10px}