:root{--bg:#f6f4ef;--card:#fff;--text:#1d2a22;--muted:#667269;--line:#e2ded3;--brand:#1f5e3b;--brand-text:#fff;--ok:#1f7a47;--ok-bg:#dff3e6;--no:#b3261e;--no-bg:#fbe3e1;--safe-top:env(safe-area-inset-top,0px);--header-h:calc(46px + var(--safe-top));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#121a15;--card:#1b261f;--text:#e8efe9;--muted:#9bab9f;--line:#2d3b32;--brand:#4fae78;--brand-text:#08150d;--ok:#6fd39b;--ok-bg:#1d4630;--no:#ff8a80;--no-bg:#4a2320}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}button,input{font:inherit;color:inherit}button{cursor:pointer}h1{margin:0;font-size:1.2rem}h2{margin:0 0 .25rem;font-size:1.15rem}h3{color:var(--brand);margin:0 0 .5rem;font-size:.95rem}.muted{color:var(--muted)}.error{color:var(--no)}.label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1rem 0 .4rem;font-size:.8rem;font-weight:600}header{z-index:5;height:var(--header-h);padding:var(--safe-top) 16px 0;background:var(--brand);color:var(--brand-text);align-items:center;gap:.75rem;display:flex;position:sticky;top:0}header .save{opacity:.9;margin-left:auto;font-size:.8rem}header button.link{color:inherit;min-height:44px;padding:.5rem .25rem}main{max-width:640px;margin:0 auto;padding:8px 16px 96px}main.center{flex-direction:column;justify-content:center;align-items:center;gap:1rem;min-height:60vh;display:flex}nav{z-index:5;background:var(--card);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}nav button{min-width:0;color:var(--muted);background:0 0;border:0;flex-direction:column;flex:1;align-items:center;gap:.05rem;padding:.45rem .15rem .5rem;font-size:.75rem;font-weight:600;display:flex}nav button .ic{font-size:1.3rem;line-height:1.3}nav button .tx{white-space:nowrap}nav button.on{color:var(--brand);box-shadow:inset 0 3px 0 var(--brand)}.toast{z-index:10;background:var(--no);color:#fff;text-align:center;border-radius:10px;max-width:480px;margin:0 auto;padding:.75rem 1rem;position:fixed;bottom:76px;left:16px;right:16px}.login{text-align:center;max-width:360px;margin-top:18vh}.login h1{margin-bottom:.5rem;font-size:1.8rem}.login form{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}input[type=password]{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:.8rem 1rem}button.primary{background:var(--brand);color:var(--brand-text);border:0;border-radius:10px;padding:.8rem 1rem;font-weight:600}button.primary:disabled{opacity:.5}button.link{color:var(--brand);background:0 0;border:0;padding:0 .25rem;font-size:.9rem;text-decoration:underline}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;margin:.75rem 0;padding:.9rem 1rem}.who-line{align-items:center;gap:.5rem;padding:.5rem 0;font-size:.9rem;display:flex}.who .skip{margin-top:1.2rem;display:block}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{border:1px solid var(--line);background:var(--card);border-radius:999px;align-items:center;gap:.4rem;min-height:44px;padding:.55rem .9rem;display:inline-flex}.chip.on{background:var(--brand);border-color:var(--brand);color:var(--brand-text);font-weight:600}.badge{background:var(--line);color:var(--muted);border-radius:999px;padding:.05rem .4rem;font-size:.7rem}.badge.done{background:var(--ok-bg);color:var(--ok)}.chip.on .badge{color:inherit;background:#ffffff40}.bulk{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0 .25rem;display:flex}.bulk.small{margin:.4rem 0}.hint{color:var(--muted);margin:.25rem 0 0;font-size:.8rem}.mini{border:1px solid var(--line);background:var(--card);border-radius:8px;min-height:40px;padding:.45rem .8rem;font-size:.9rem}.mini.ok{color:var(--ok);border-color:var(--ok)}.mini.no{color:var(--no);border-color:var(--no)}.row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:.75rem;padding:.45rem 0;display:flex}.row:first-of-type{border-top:0}.meal{font-weight:600}.seg{gap:.4rem;display:flex}.state{border:1px solid var(--line);background:var(--card);min-width:92px;min-height:44px;color:var(--muted);border-radius:10px;padding:.4rem .6rem}.state.ok.active{background:var(--ok-bg);border-color:var(--ok);color:var(--ok);font-weight:700}.state.no.active{background:var(--no-bg);border-color:var(--no);color:var(--no);font-weight:700}.famrow{border-top:1px solid var(--line);padding:.6rem 0}.famrow:first-of-type{border-top:0;padding-top:0}.famhead{justify-content:space-between;align-items:baseline;display:flex}.tally{color:var(--muted);font-size:.85rem}.tally .okc{color:var(--ok)}.tally .noc{color:var(--no)}.people{flex-wrap:wrap;gap:.4rem;display:flex}.pp{border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:.35rem;padding:.4rem .75rem;display:inline-flex}.pp .ico{text-align:center;width:1em;font-weight:700}.pp.present{background:var(--ok-bg);border-color:var(--ok);color:var(--ok)}.pp.absent{background:var(--no-bg);border-color:var(--no);color:var(--no)}.progress{background:var(--line);border-radius:999px;height:8px;margin:.5rem 0;overflow:hidden}.progress div{background:var(--brand);height:100%;transition:width .3s}.legend{flex-wrap:wrap;gap:.4rem;margin:.5rem 0;font-size:.8rem;display:flex}.lg{background:var(--line);color:var(--muted);border-radius:999px;padding:.15rem .6rem}.lg.present{background:var(--ok-bg);color:var(--ok)}.lg.absent{background:var(--no-bg);color:var(--no)}.check{align-items:center;gap:.5rem;min-height:40px;font-size:.9rem;display:flex}.check input{width:20px;height:20px}.tablewrap{top:var(--header-h);max-height:calc(100dvh - var(--header-h) - 60px);border:1px solid var(--line);background:var(--card);border-radius:12px;position:sticky;overflow:auto}table.recap{border-collapse:separate;border-spacing:0;background:var(--card);border-radius:12px;width:100%;font-size:.8rem}table.recap th,table.recap td{text-align:center;border-bottom:1px solid var(--line);white-space:nowrap;padding:.35rem .3rem}table.recap thead th{z-index:3;background:var(--brand);height:34px;color:var(--brand-text);border-bottom:1px solid #ffffff40;padding-top:0;padding-bottom:0;font-weight:600;position:sticky;top:0}table.recap thead tr:nth-child(2) th{top:34px}table.recap thead th.day{border-left:1px solid #ffffff40}table.recap th.meal-h{min-width:46px;font-size:.7rem;font-weight:500}table.recap th.first{z-index:1;text-align:left;background:var(--card);border-right:1px solid var(--line);min-width:112px;max-width:130px;position:sticky;left:0}table.recap thead th.first{background:var(--brand);z-index:4}table.recap th.person{padding-left:1.4rem;font-weight:400}tr.tot th.first,tr.tot td{font-weight:700}tr.tot.present td,tr.tot.present th{color:var(--ok)}tr.tot.absent td,tr.tot.absent th{color:var(--no)}tr.tot.none td,tr.tot.none th{color:var(--muted)}tr.fam th,tr.fam td{background:var(--bg);font-weight:600}tr.fam th.first{background:var(--bg)}tr.fam button{color:var(--brand);background:0 0;border:0;min-height:36px;padding:.3rem 0;font-weight:700}td.cell{color:var(--muted)}td.cell.present{background:var(--ok-bg);color:var(--ok);font-weight:700}td.cell.absent{background:var(--no-bg);color:var(--no);font-weight:700}.okc{color:var(--ok)}.noc{color:var(--no)}.center-text{text-align:center;padding:1rem}.notice{background:var(--ok-bg);color:var(--ok);border-radius:10px;margin:.75rem 0 0;padding:.6rem .9rem;font-size:.9rem}.small{white-space:nowrap;font-size:.75rem}.grow{flex:1}.adm-fam{border-top:1px solid var(--line);margin-top:1rem;padding-top:.5rem}.adm-fam:first-of-type{border-top:0}.adm-line{align-items:center;gap:.5rem;padding:.25rem 0;display:flex}.adm-line.person{padding-left:1rem}.adm-line.add-fam,.adm-line.add-meal{border-top:1px solid var(--line);margin-top:1rem;padding-top:.75rem}input.name,input[type=date],select{border:1px solid var(--line);background:var(--card);border-radius:10px;flex:1;min-width:0;min-height:44px;padding:.4rem .7rem}input.name.fam{color:var(--brand);font-weight:700}.icon{border:1px solid var(--line);background:var(--card);border-radius:10px;min-width:44px;min-height:44px}.mini:disabled{opacity:.45}.card.danger{border-color:var(--no)}.hero{text-align:center;background:var(--brand);color:var(--brand-text);border-color:var(--brand);padding:1.4rem 1rem}.hero h2{text-wrap:balance;margin:.4rem 0 0;font-size:1.3rem;line-height:1.3}.hero .tree{font-size:2.6rem;line-height:1}.program{align-items:stretch;gap:.5rem;display:flex}.program .when{background:var(--bg);border-radius:10px;flex-direction:column;flex:1;gap:.1rem;padding:.7rem .8rem;display:flex}.program .when strong{font-size:1.02rem}.program .hour{color:var(--brand);font-size:1.5rem;font-weight:700}.program .arrow{color:var(--muted);align-self:center;font-size:1.4rem}.label-s{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem}.steps{margin:0;padding-left:1.3rem;line-height:1.9}.steps li{padding-left:.2rem}button.link.inline{font-size:inherit;margin:-.65rem 0;padding:.65rem .1rem;font-weight:700}
