:root{--bg:#f6f7f6;--card:#fff;--ink:#14210f;--muted:#5f6b5d;--brand:#16a34a;--brand-ink:#fff;--line:#e3e8e2;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:system-ui,-apple-system,SF Pro Text,Segoe UI,Roboto,sans-serif}.shell{max-width:520px;min-height:100dvh;padding-bottom:calc(76px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex}.topbar{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.topbar h1{margin:0;font-size:22px}.sub{color:var(--muted);margin:2px 0 0;font-size:13px}.net{border:1px solid var(--line);background:var(--card);border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;font-weight:600;display:flex}.net .dot{background:#999;border-radius:50%;width:9px;height:9px}.net.on .dot{background:var(--brand)}.net.off .dot{background:#d97706}.banner{border-radius:var(--radius);background:#fffbeb;border:1px solid #fde68a;margin:4px 12px 0;padding:10px 12px;font-size:14px}.content{flex:1;padding:12px 12px 0}.grid{gap:10px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.card h2{margin:0 0 6px;font-size:16px}.card p{margin:0;font-size:14px}.muted{color:var(--muted)}.tabbar{background:var(--card);border-top:1px solid var(--line);width:100%;max-width:520px;padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tabbar button{color:var(--muted);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;min-height:56px;padding:10px 4px 12px;font-size:12px;display:flex}.tabbar button.active{color:var(--brand);font-weight:700}.tabbar .ico{font-size:20px}@media (width>=700px){.grid{grid-template-columns:1fr 1fr}}.row{align-items:center;display:flex}.row.between{justify-content:space-between}.gap{gap:8px}.grow{flex:1}.pad{padding:8px 2px}.input{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:12px;font-size:16px}textarea.input{resize:vertical}.btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;min-height:48px;padding:12px 14px;font-size:15px;font-weight:600}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.danger{color:#b91c1c;border-color:#fecaca}.btn.big{flex:1}.list{gap:8px;margin:10px 0;padding:0;list-style:none;display:grid}.rowitem{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:14px;font-size:15px;display:flex}.rowitem.sel{border-color:var(--brand)}.rowmain{flex-direction:column;gap:2px;display:flex}.card.detail{gap:8px;margin-top:10px;display:grid}.photo{border-radius:10px;width:100%;display:block}.stepper{flex-wrap:wrap;align-items:center;gap:8px;font-size:14px;display:flex}.ings,.steps{gap:6px;margin:0;padding-left:20px;font-size:15px;display:grid}.card.form{gap:10px;margin-top:10px;display:grid}.card.form label{gap:6px;font-size:14px;font-weight:600;display:grid}.check{align-items:center;gap:8px;flex-direction:row!important;display:flex!important}.check input{width:22px;height:22px}.ingform{gap:6px;display:flex}.ingform .qty,.ingform .unit{max-width:84px}.err{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px}.tiny{font-size:12px}.card.day{gap:10px;margin-top:10px;display:grid}.card.day h3{margin:0;font-size:15px}.pill{background:var(--brand);color:#fff;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.slot{grid-template-columns:82px 1fr;align-items:start;gap:8px;display:grid}.slotlabel{color:var(--muted);padding-top:12px;font-size:13px;font-weight:600}.slotitems{gap:6px;display:grid}.meal{text-align:left;cursor:pointer;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;width:100%;padding:12px;font-size:15px}.meal.swapping{border-color:var(--brand);outline:2px solid var(--brand)}.addslot{border:1px dashed var(--line);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;min-height:44px;padding:10px;font-size:14px}.actions{flex-wrap:wrap;gap:6px;padding:6px 0;display:flex}.actions .btn{min-height:44px;padding:8px 10px;font-size:14px}.sheet{z-index:20;background:#0006;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheetbox{background:#fff;border-radius:16px 16px 0 0;gap:10px;width:100%;max-width:520px;max-height:88dvh;padding:16px;display:grid;overflow-y:auto}.sheetbox label{gap:6px;font-size:14px;font-weight:600;display:grid}.mgrid{grid-template-columns:repeat(7,1fr);gap:4px;padding:8px 0;display:grid}.mhead{text-align:center;color:var(--muted);font-size:12px;font-weight:700}.mcell{aspect-ratio:.85;border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:14px;display:flex}.mcell.out{opacity:.4}.mcell.sel{border-color:var(--brand);outline:2px solid var(--brand)}.mdots{color:var(--brand);font-size:9px}.wrap{flex-wrap:wrap}.progress .bar{background:#e5e7eb;border-radius:999px;height:10px;overflow:hidden}.progress .bar span{background:var(--brand);height:100%;transition:width .2s;display:block}.gitem{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:8px;padding:6px;display:flex}.gitem.done{opacity:.65}.gitem.done b{text-decoration:line-through}.checkbtn{cursor:pointer;min-width:48px;min-height:48px;color:var(--brand);background:0 0;border:0;font-size:24px}.ItemBtn{cursor:pointer;text-align:left;color:var(--ink);background:0 0;border:0;flex-direction:column;gap:2px;padding:8px 4px;display:flex}.ItemBtn b{font-size:15px}.ItemBtn small{font-size:13px}.pantryrow{gap:8px;display:grid}.pantryrow p{margin:0;font-size:14px}.pill.bad{color:#fff;background:#b91c1c;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.pill.warn{color:#fff;background:#d97706;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.menucard{cursor:pointer;text-align:left;font-family:inherit}.menucard h2{margin:0 0 4px}.big{margin:8px 0 0;font-size:26px;font-weight:800}.big.neg{color:#b91c1c}.bars{gap:8px;margin-top:8px;display:grid}.brow{grid-template-columns:52px 1fr auto;align-items:center;gap:8px;font-size:13px;display:grid}.brow .track{background:#e5e7eb;border-radius:999px;height:12px;overflow:hidden}.brow .fill{height:100%;display:block}.fill.est{background:#60a5fa}.fill.spent{background:var(--brand)}.slist{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.slist li{font-size:14px}.btn.sm{min-height:44px;padding:8px 10px;font-size:14px}.input.price{max-width:96px}.danger-zone{border-color:#fecaca}.invite{letter-spacing:2px;font-size:22px}.conflict{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;gap:4px;margin-top:8px;padding:10px;display:grid}.conflict p{margin:0;font-size:14px}textarea.input.code{word-break:break-all;font-family:ui-monospace,monospace;font-size:11px}.presence{gap:6px;padding:10px 0;display:grid}.prow{align-items:center;gap:8px;font-size:14px;display:flex}.prow .dot{border-radius:50%;width:10px;height:10px}.prow .dot.on{background:var(--brand)}.prow .dot.off{background:#cbd5cb}.bigcode{letter-spacing:6px;text-align:center;margin:4px 0;font-family:ui-monospace,monospace;font-size:40px;font-weight:800}.codetitle{text-align:center;margin:0;font-size:14px;font-weight:600}.biginput{letter-spacing:4px;text-transform:uppercase;text-align:center;font-family:ui-monospace,monospace;font-size:24px!important}
