:root{--ink:#1f2933;--muted:#6b7280;--bg:#f6f4ef;--card:#fff;--line:#e5e1d8;--accent:#2f6f5e;--done:#8a9590;--soft:#eef5f2;--warn:#b45309}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;margin:0;font:17px/1.4 -apple-system,system-ui,sans-serif}a{color:inherit}.app.large{font-size:21px;line-height:1.5}.app.large .chk{width:38px;height:38px}.app.large .btn{font-size:18px}header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;padding:20px 28px 8px;display:flex}h1{margin:0;font-size:28px}.sub{color:var(--muted)}.count{white-space:nowrap}.bar{background:var(--line);border-radius:6px;height:10px;margin:8px 28px 16px;overflow:hidden}.bar i{background:var(--accent);height:100%;transition:width .2s;display:block}main{grid-template-columns:1fr 1fr;gap:16px;padding:0 28px 20px;display:grid}section{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 16px}section.wide{grid-column:1/-1}h2{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:15px}.row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;min-height:56px;display:flex}section>.row:first-of-type,h2+.row{border-top:0}.rowform{flex:1;min-width:200px;margin:0}.tap{all:unset;box-sizing:border-box;cursor:pointer;align-items:center;gap:12px;width:100%;min-height:56px;padding:6px 0;display:flex}.tap:disabled{cursor:default;opacity:.7}.tap:focus-visible,.btn:focus-visible,.speak:focus-visible,.person:focus-visible{outline-offset:2px;outline:3px solid #f59e0b}.chk{border:2px solid var(--accent);color:#fff;border-radius:9px;flex:none;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.done .chk,.chk.on{background:var(--accent)}.done .t{color:var(--done);text-decoration:line-through}.t{flex:1}.tag{color:var(--muted);font-size:13px}.btn{font:inherit;background:var(--soft);min-height:44px;color:var(--accent);white-space:nowrap;cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;padding:8px 14px;font-size:15px;text-decoration:none;display:inline-flex}.btn.solid{background:var(--accent);color:#fff}.btn.big{min-height:56px;padding:10px 28px;font-size:20px}.speak{background:var(--soft);cursor:pointer;border:0;border-radius:10px;min-width:44px;min-height:44px;font-size:18px}.who{color:var(--muted);font-size:12px}.lunch{grid-template-columns:1fr 1fr;gap:6px 18px;margin-bottom:6px;font-size:15px;display:grid}.lunch b{color:var(--accent)}.phase{color:var(--muted);align-items:center;gap:8px;margin:-2px 0 8px;font-size:14px;display:flex}.steps{margin:6px 0 8px;font-size:15px}.steps summary{cursor:pointer;min-height:44px;color:var(--accent);align-items:center;font-weight:600;display:flex}.steps ol,.steps ul{margin:4px 0 8px;padding-left:24px}.signrow .chk{opacity:.9}.signform{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.signform input[type=file]{max-width:210px;font-size:13px}.note{color:var(--muted);padding:0 28px 12px;font-size:13px}.foot{flex-wrap:wrap;align-items:flex-start;gap:10px;padding:8px 28px 32px;display:flex}.foot form{margin:0}.opts summary{list-style:none}.opts[open] summary{margin-bottom:8px}.display-form{background:var(--card);border:1px solid var(--line);border-radius:12px;flex-direction:column;align-items:flex-start;gap:6px;min-width:260px;padding:12px;display:flex}.opt{align-items:center;gap:10px;min-height:44px;font-size:15px;display:flex}.opt.col{flex-direction:column;align-items:flex-start;width:100%;min-height:0}.opt input[type=checkbox]{width:24px;height:24px}.text{font:inherit;border:1px solid var(--line);border-radius:8px;width:100%;min-height:44px;padding:6px 10px}.banner{color:#78350f;background:#fef3c7;border-radius:10px;margin:8px 28px;padding:10px 14px;font-size:15px}.banner.err{color:#7f1d1d;background:#fee2e2}.banner.ok{color:#14532d;background:#dcfce7}.parent .cols{grid-template-columns:1fr 1fr;align-items:start;gap:20px;padding:0 28px 32px;display:grid}.parent .col{min-width:0}.parent .col .bar{margin:6px 0 10px}.parent .stack{flex-direction:column;gap:12px;display:flex}.parent .stack main{display:contents}.parent section.wide{grid-column:auto}.colhead{justify-content:space-between;align-items:baseline;padding-top:4px;display:flex}.kidname{text-transform:none;letter-spacing:0;color:var(--ink);margin:0;font-size:22px}.pad{padding:6px 0}.nav{flex-wrap:wrap;gap:8px;display:flex}.nav form{margin:0}.jsonform textarea{border:1px solid var(--line);border-radius:10px;width:100%;margin-bottom:10px;padding:10px;font:13px/1.4 ui-monospace,Menlo,monospace}.parent .col section{margin-bottom:12px}.picker{text-align:center;max-width:760px;margin:0 auto;padding:48px 24px;display:block}.picker h1{font-size:40px}.people{flex-wrap:wrap;justify-content:center;gap:20px;margin:28px 0;display:flex}.person{background:var(--card);border:1px solid var(--line);border-radius:20px;flex-direction:column;align-items:center;gap:10px;min-width:200px;min-height:44px;padding:22px 26px;font-size:24px;font-weight:600;text-decoration:none;display:flex}.people.small .person{flex-direction:row;min-width:0;padding:12px 18px;font-size:18px}.avatar{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:84px;height:84px;font-size:40px;display:grid}.people.small .avatar{width:44px;height:44px;font-size:22px}.avatar.alt{background:#7c6a4d}.loginform{flex-direction:column;align-items:center;gap:16px;margin:24px 0;display:flex}.pin{font:inherit;letter-spacing:.4em;text-align:center;border:2px solid var(--accent);border-radius:14px;width:300px;min-height:64px;padding:6px;font-size:36px}.pin.pw{letter-spacing:normal;font-size:24px}.err{color:#b91c1c}@media (max-width:820px){main,.parent .cols,.lunch{grid-template-columns:1fr}header{padding:16px 16px 6px}.bar{margin-left:16px;margin-right:16px}main,.parent .cols,.note,.foot{padding-left:16px;padding-right:16px}}
