:root{--bg:#F2F5F3;--surface:#FFFFFF;--ink:#15211C;--muted:#56675F;--line:#D6E0DA;--accent:#1E7653;--accent-ink:#FFFFFF;--accent-soft:#DCEEE5;--warn:#A85A14;--warn-soft:#F7E8D8;--f-display:"Bai Jamjuree","IBM Plex Sans Thai",system-ui,sans-serif;--f-body:"IBM Plex Sans Thai",system-ui,-apple-system,"Segoe UI",sans-serif;--f-num:"IBM Plex Mono",ui-monospace,Menlo,monospace}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#0E1412;--surface:#16201C;--ink:#E4EDE8;--muted:#94A69D;--line:#2A3832;--accent:#4FC08F;--accent-ink:#0A1511;--accent-soft:#1A3328;--warn:#E3A266;--warn-soft:#3A2A1B;color-scheme:dark}}:root[data-theme=dark]{--bg:#0E1412;--surface:#16201C;--ink:#E4EDE8;--muted:#94A69D;--line:#2A3832;--accent:#4FC08F;--accent-ink:#0A1511;--accent-soft:#1A3328;--warn:#E3A266;--warn-soft:#3A2A1B;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.6}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--surface)}.wrap{max-width:720px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 48px}h1,h2,h3{font-family:var(--f-display);text-wrap:balance;margin:0;line-height:1.25}h1{font-size:1.5rem;font-weight:700}h2{font-size:1.15rem;font-weight:600}h3{font-size:1rem;font-weight:600}p{margin:0}.num{font-family:var(--f-num);font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.small{font-size:.85rem}header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;background:var(--surface);border-bottom:1px solid var(--line)}header.top .wrap{padding-block:12px 10px;display:grid;gap:10px}.brand{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.brand .sub{font-size:.85rem;color:var(--muted)}.tabs{display:flex;gap:6px;overflow-x:auto}.tabs button{flex:0 0 auto}button{font:inherit;color:inherit;cursor:pointer}.chip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:5px 14px;font-size:.9rem}.chip[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 10px}.chip:focus-visible,.btn:focus-visible,.tick:focus-visible,input:focus-visible,textarea:focus-visible,.day:focus-visible,.setbox:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.weeknav{display:flex;align-items:center;gap:8px}.weeknav .lbl{flex:1;text-align:center;font-weight:600;font-size:.95rem}.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:8px;width:36px;height:36px;font-size:1.1rem;line-height:1}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.day{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:4px 0 5px;display:grid;justify-items:center;gap:0;font-size:.8rem}.day b{font-family:var(--f-display);font-size:.95rem}.day .kind{font-size:.68rem;color:var(--muted)}.day[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft)}.day.today b{text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px}.day .dot{width:6px;height:6px;border-radius:50%;background:transparent;margin-top:2px}.day .dot.on{background:var(--accent)}main{display:grid;gap:22px;padding-top:18px}section.block{display:grid;gap:12px}.blockhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:2px solid var(--ink);padding-bottom:4px}.tag{font-size:.75rem;letter-spacing:.04em;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:10px;min-width:0}.dayhero{display:grid;gap:4px}.dayhero .kindbig{font-size:.8rem;letter-spacing:.06em;color:var(--accent);font-weight:600}.ex{display:grid;gap:8px;padding-block:12px;border-top:1px solid var(--line)}.ex:first-child{border-top:0;padding-top:0}.exrow{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}.exname{font-weight:600;min-width:0;flex:1 1 220px}.exname .rx{display:block;font-weight:400;font-size:.85rem;color:var(--muted)}.sets{display:flex;gap:6px;flex-wrap:wrap}.setbox{width:38px;height:38px;border-radius:9px;border:1.5px solid var(--line);background:var(--surface);font-family:var(--f-num);font-size:.85rem;color:var(--muted)}.setbox[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.wt{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted)}.wt input.num{width:84px}details{font-size:.9rem}details summary{cursor:pointer;color:var(--accent);font-weight:500}details[open] summary{margin-bottom:6px}details ul{margin:0;padding-left:1.2em;display:grid;gap:3px}input[type=text],input[type=number],input[type=time],textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:7px 9px;min-width:0;width:100%}input.num{font-family:var(--f-num)}textarea{resize:vertical;min-height:64px}input[type=text],input[type=number],input[type=time],textarea{font-size:16px}textarea.grow{resize:none;overflow:hidden;min-height:calc(3lh + 16px)}.tickrow{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.tick{flex:0 0 auto;width:26px;height:26px;border-radius:7px;border:1.5px solid var(--line);background:var(--surface);display:grid;place-items:center;padding:0;margin-top:1px}.tick[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.tick svg{width:15px;height:15px;stroke:var(--accent-ink);stroke-width:3;fill:none;opacity:0}.tick[aria-pressed=true] svg{opacity:1}.meal{display:grid;gap:8px;padding-block:12px;border-top:1px solid var(--line)}.meal:first-child{border-top:0;padding-top:0}.mealhead{display:flex;gap:10px;align-items:flex-start}.mealhead .t{flex:1;min-width:0}.mealhead .when{font-size:.78rem;color:var(--muted);letter-spacing:.03em}.mealhead .kc{font-family:var(--f-num);font-size:.8rem;color:var(--muted);text-align:right;white-space:nowrap}.tblwrap{overflow-x:auto}table.items{width:100%;border-collapse:collapse;font-size:.85rem}table.items td{padding:3px 0;border-bottom:1px dashed var(--line);vertical-align:top}table.items td.g,table.items td.k{font-family:var(--f-num);text-align:right;white-space:nowrap;padding-left:10px;color:var(--muted)}.why{font-size:.85rem;background:var(--accent-soft);border-radius:8px;padding:7px 10px}.daytotal{display:flex;gap:16px;flex-wrap:wrap;font-size:.9rem}.daytotal b{font-family:var(--f-num)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}.field{display:grid;gap:3px;min-width:0}.field label{font-size:.8rem;color:var(--muted)}.note{border-left:3px solid var(--warn);background:var(--warn-soft);padding:8px 12px;border-radius:0 8px 8px 0;font-size:.88rem}.btn{border:1px solid var(--ink);background:var(--ink);color:var(--surface);border-radius:10px;padding:9px 16px;font-weight:600}.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}.btnrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.toast{font-size:.85rem;color:var(--accent);font-weight:600}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:2px}.stat .v{font-family:var(--f-num);font-size:1.35rem}.stat .l{font-size:.8rem;color:var(--muted)}.stat .d{font-size:.8rem}.good{color:var(--accent)}.bad{color:var(--warn)}pre.summary{white-space:pre-wrap;font-family:var(--f-body);font-size:.85rem;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:10px;margin:0;max-height:320px;overflow:auto}svg.chart text{fill:var(--muted);font-family:var(--f-num);font-size:10px}ol.rules,ul.plain{margin:0;padding-left:1.3em;display:grid;gap:6px}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:.9rem}.kv dt{color:var(--muted)}.kv dd{margin:0}@media (prefers-reduced-motion:no-preference){.setbox,.tick,.day{transition:background .12s,border-color .12s}}.login{display:grid;gap:12px;max-width:380px;margin:40px auto 0}.login .err{color:var(--warn);font-size:.9rem}.demo{background:var(--warn-soft);color:var(--ink);font-size:.8rem;text-align:center;padding:4px 8px}.savebar{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);box-shadow:0 -6px 18px #00000014;padding:10px max(16px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));display:flex;align-items:center;justify-content:space-between;gap:12px}.savebar span{font-size:.9rem}.savebar.bad span{color:var(--warn)}.savebar .btn{min-width:110px;padding:11px 18px}.savebar .btn:disabled{opacity:.6}body:has(.savebar:not([hidden])) .wrap{padding-bottom:84px}
