:root { --red:#aa1e1e; --ink:#26221d; --line:#ddd5c7; --bg:#f7f4ee; }
* { box-sizing:border-box; }
body { margin:0; font-family: Georgia, 'Times New Roman', serif; background:var(--bg); color:var(--ink); }
.top { background:#fff; border-bottom:3px solid var(--red); padding:14px 20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;}
.brand { font-weight:bold; letter-spacing:.06em; font-size:1.15rem; }
.brand span { color:var(--red); }
.box { max-width:430px; margin:38px auto; background:#fff; border:1px solid var(--line); border-radius:10px; padding:28px 30px; }
.box h1 { font-size:1.4rem; margin:0 0 6px; }
.box p.sub { color:#6b655b; margin:0 0 20px; font-size:.95rem; }
label { display:block; font-size:.9rem; margin:14px 0 5px; font-weight:bold; }
input { width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:6px; font-size:1rem; font-family:inherit; }
button { width:100%; margin-top:22px; background:var(--red); color:#fff; border:0; border-radius:6px; padding:13px; font-size:1.05rem; cursor:pointer; font-family:inherit; }
.links { margin-top:16px; font-size:.9rem; display:flex; justify-content:space-between; }
.links a, a { color:var(--red); }
.note { max-width:430px; margin:14px auto 40px; font-size:.85rem; color:#6b655b; text-align:center; padding:0 16px; }
.wrap { max-width:960px; margin:0 auto; padding:22px 18px 50px; }
.hello { display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:6px; }
.hello h1 { font-size:1.5rem; margin:4px 0; }
.hello .meta { color:#6b655b; font-size:.92rem; }
.card { background:#fff; border:1px solid var(--line); border-radius:10px; padding:20px 22px; margin:18px 0; }
.card h2 { margin:0 0 12px; font-size:1.15rem; border-bottom:2px solid var(--red); padding-bottom:7px; }
table { width:100%; border-collapse:collapse; font-size:.95rem; }
th, td { text-align:left; padding:8px 8px; border-bottom:1px solid var(--line); }
th { color:#6b655b; font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; }
.pill { background:#eef6ee; border:1px solid #b9d8b9; color:#256b25; border-radius:20px; padding:2px 10px; font-size:.8rem; }
.pill.plan { background:#fdf6e0; border-color:#e8c95a; color:#7a5b00; }
.tot { display:flex; gap:26px; flex-wrap:wrap; font-size:1rem; }
.tot b { color:var(--red); }
.doc { display:flex; justify-content:space-between; padding:9px 2px; border-bottom:1px solid var(--line); font-size:.97rem; }
.sample { background:#fff8e6; border:1px solid #e8c95a; border-radius:8px; padding:10px 14px; font-size:.9rem; margin:16px 0; }
footer { text-align:center; color:#6b655b; font-size:.85rem; padding:18px; }
/* Live-portal additions (Supabase wiring) */
.msg { display:none; border-radius:6px; padding:10px 12px; font-size:.92rem; margin-top:16px; }
.msg.err { display:block; background:#fdeeee; border:1px solid #dfa3a3; color:#7c1f1f; }
.msg.ok { display:block; background:#eef6ee; border:1px solid #b9d8b9; color:#256b25; }
.empty { color:#6b655b; font-size:.95rem; margin:6px 0 2px; }
.weeklabel { font-weight:bold; margin:16px 0 4px; font-size:1rem; }
.docbody { display:none; white-space:pre-wrap; font-size:.93rem; color:#3d382f; padding:2px 2px 12px; border-bottom:1px solid var(--line); }
.signout { background:none; border:0; color:var(--red); width:auto; margin:0; padding:0; font-size:1rem; cursor:pointer; text-decoration:underline; }
button:disabled { opacity:.65; cursor:default; }
