:root{--bg:#f6f7f4;--card:#fff;--ink:#1c2a22;--muted:#66756c;--line:#dfe5df;--green:#1f6f4a;--green-d:#175637;--green-l:#e6f2eb;--red:#b3261e;--amber:#8a5a00;--amber-l:#fff4d6;--blue-l:#e8f0fb;--r:14px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);-webkit-text-size-adjust:100%;margin:0}body{-webkit-tap-highlight-color:transparent;min-height:100dvh;font-size:16px;line-height:1.35}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.25rem}h2{margin-bottom:10px;font-size:1.05rem}h3{margin:14px 0 4px;font-size:.95rem}button,input,select{font:inherit;color:inherit}input,select{border:1px solid var(--line);background:#fff;border-radius:12px;width:100%;min-height:48px;padding:10px 12px;font-size:16px}input:focus,select:focus,button:focus-visible{outline-offset:1px;outline:3px solid #8cc7a6}input.bad{border-color:var(--red)}label{color:var(--muted);margin-bottom:12px;font-size:.85rem;display:block}label input,label select{color:var(--ink);margin-top:4px}.muted{color:var(--muted)}.small{font-size:.85rem}.spacer{flex:1}.btn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;min-height:48px;padding:0 18px;font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--green);border-color:var(--green);color:#fff}.btn.primary:active:not(:disabled){background:var(--green-d)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{min-height:40px;padding:0 12px;font-size:.9rem}.link{color:var(--green);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 2px;font-weight:600;text-decoration:underline}.link.danger{color:var(--red)}.screen{flex-direction:column;max-width:760px;min-height:100dvh;margin:0 auto;display:flex}.topbar{z-index:5;padding:calc(10px + var(--safe-t)) 14px 10px;background:var(--green);color:#fff;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar h1{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.topbar-right{align-items:center;gap:8px;display:flex}.topbar .muted{color:#d5ebde}.topbar .btn.ghost{color:#fff;border-color:#fff6}.back{color:#fff;place-items:center;width:44px;height:44px;margin-left:-8px;font-size:2rem;line-height:1;text-decoration:none;display:grid}.content{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex}.content.with-addbar{padding-bottom:calc(150px + var(--safe-b))}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px}.row{align-items:flex-end;gap:10px;display:flex}.row>*{flex:1}.row>.btn{flex:none}.row label{margin-bottom:0}.cards,.members,.items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.cards{margin-bottom:12px}.card-row{align-items:stretch;gap:6px;display:flex}.card-link{background:var(--card);border:1px solid var(--line);border-radius:var(--r);min-height:56px;color:inherit;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;text-decoration:none;display:flex}.card-link:active{background:var(--green-l)}.card-title{font-weight:650}.chev{color:var(--muted);font-size:1.5rem}.badge{background:var(--green-l);color:var(--green-d);white-space:nowrap;border-radius:99px;padding:3px 8px;font-size:.72rem;font-weight:650}.members li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;display:flex}.members li>span:first-child{flex:1}.code{letter-spacing:.12em;background:var(--green-l);border-radius:8px;padding:4px 8px;font-size:1.1rem;font-weight:700}.empty{text-align:center;padding:30px 10px}.empty h2{margin-bottom:6px}.pre{background:#eef1ee;border-radius:8px;padding:10px;overflow:auto}.msg{border-radius:10px;padding:10px 12px;font-size:.92rem}.msg.err{color:#8a1c14;background:#fde8e6}.msg.ok{background:var(--green-l);color:var(--green-d)}.banner{border-radius:10px;padding:10px 12px;font-size:.88rem}.banner.warn{background:var(--amber-l);color:var(--amber)}.banner.info{background:var(--blue-l);color:#1c477f}.banner.err{color:#8a1c14;background:#fde8e6}.pill{white-space:nowrap;background:#fff3;border-radius:99px;padding:4px 10px;font-size:.72rem;font-weight:700}.pill.live:before{content:"● ";color:#8df0b7}.pill.off{background:var(--amber-l);color:var(--amber)}.pill.conn{background:#fff3}.item{background:var(--card);border:1px solid var(--line);border-radius:var(--r);align-items:stretch;display:flex;overflow:hidden}.check{cursor:pointer;background:0 0;border:0;flex:0 0 60px;place-items:center;padding:0;display:grid}.box{color:#fff;background:#fff;border:2px solid #9fb2a6;border-radius:50%;place-items:center;width:30px;height:30px;font-size:1.05rem;font-weight:800;display:grid}.item.checked .box{background:var(--green);border-color:var(--green)}.item-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;min-height:60px;padding:8px 14px 8px 0;display:flex}.item-name{overflow-wrap:anywhere;font-weight:600}.item-qty{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.item.checked .item-name{color:var(--muted);text-decoration:line-through}.done-head{justify-content:space-between;align-items:center;margin:6px 0 8px;display:flex}.addbar{z-index:6;border-top:1px solid var(--line);max-width:760px;padding:10px 12px calc(10px + var(--safe-b));background:#fff;flex-direction:column;gap:8px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 18px -12px #0000004d}.addbar-row{gap:8px;display:flex}.addbar-row input{flex:1}.addbar .add{flex:0 0 56px;padding:0;font-size:1.5rem}.stepper{flex:1;align-items:stretch;display:flex}.stepper button{border:1px solid var(--line);cursor:pointer;background:#f1f4f1;flex:0 0 52px;font-size:1.3rem;font-weight:700}.stepper button:first-child{border-radius:12px 0 0 12px}.stepper button:last-child{border-radius:0 12px 12px 0}.stepper input{text-align:center;border-radius:0;min-width:0}.addbar-row.qty select{flex:0 0 120px}.sheet-back{z-index:20;background:#0a140f73;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;padding:18px 16px calc(16px + var(--safe-b));background:#fff;border-radius:20px 20px 0 0;max-height:90dvh;overflow:auto}.sheet-actions{gap:8px;margin-top:6px;display:flex}@media (width>=700px){.sheet-back{align-items:center}.sheet{border-radius:20px}}.auth{place-items:center;min-height:100dvh;padding:20px;display:grid}.auth-card{border:1px solid var(--line);background:#fff;border-radius:20px;width:100%;max-width:400px;padding:24px}.auth-card h1{margin-bottom:6px}.auth-card p{margin:0 0 14px}.auth-card form{flex-direction:column;gap:2px;display:flex}.auth-logo{border-radius:14px;margin-bottom:10px}.auth-links{justify-content:space-between;margin-top:12px;display:flex}.splash{min-height:100dvh;color:var(--muted);place-items:center;display:grid}.toasts{left:0;right:0;bottom:calc(170px + var(--safe-b));z-index:30;pointer-events:none;flex-direction:column;align-items:center;gap:8px;padding:0 12px;display:flex;position:fixed}.toast{color:#fff;background:#1c2a22;border-radius:12px;max-width:480px;padding:10px 14px;font-size:.92rem;box-shadow:0 8px 20px -8px #00000080}.toast.err{background:#8a1c14}@media (prefers-reduced-motion:no-preference){.sheet{animation:.18s ease-out up}@keyframes up{0%{transform:translateY(24px)}}}@media (width>=900px){.screen{min-height:calc(100dvh - 20px);margin-top:20px}.topbar{border-radius:var(--r) var(--r) 0 0}}.mic{min-width:48px;padding:0 8px;font-size:1.3rem}.btn.danger{color:#8a1c14;border-color:#e3b4b0}.btn.block{width:100%}.preview{flex-direction:column;gap:6px;margin:8px 0;padding:0;list-style:none;display:flex}.preview .item{justify-content:space-between;align-items:center;gap:12px;min-height:44px;padding:10px 14px;display:flex}.sheet textarea{border:1px solid var(--line);width:100%;font:inherit;border-radius:10px;margin:6px 0;padding:10px}.linkbox{border:1px solid var(--line);word-break:break-all;width:100%;color:var(--ink);resize:none;background:#fff;border-radius:10px;margin:8px 0;padding:8px;font:12px/1.3 ui-monospace,monospace}
