:root{--bg:#f4f5f2;--card:#fff;--text:#1c1f1d;--muted:#6b716d;--border:#dfe3df;--accent:#1f6f50;--accent-text:#fff;--accent-soft:#e2efe8;--danger:#b3261e;--warn-bg:#fff1d6;--warn-text:#8a5300;--bad-bg:#fde3e1;--bad-text:#a1271f;--tabbar-height:58px;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.4}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#111412;--card:#1c201e;--text:#e8ebe9;--muted:#9aa19c;--border:#2e3431;--accent:#4fb488;--accent-text:#08130e;--accent-soft:#1d3329;--danger:#f2948c;--warn-bg:#3d2d0c;--warn-text:#f5c56b;--bad-bg:#42191a;--bad-text:#f5a19a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}h1{margin:0;font-size:1.6rem}h2{margin:0 0 .6rem;font-size:1.05rem}h3{margin:1rem 0 .3rem;font-size:.95rem}p{margin:.3rem 0}a{color:var(--accent)}input,select,button{font:inherit;color:inherit}input:not([type=radio]):not([type=file]),select{border:1px solid var(--border);background:var(--card);border-radius:10px;width:100%;min-width:0;min-height:44px;padding:.55rem .75rem;font-size:1rem}input[type=date]{appearance:none}.page{max-width:640px;padding:calc(env(safe-area-inset-top) + .75rem) 1rem calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 1.5rem);margin:0 auto}.center{text-align:center;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 0;display:flex}.page.center{justify-content:center;min-height:100dvh}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger)}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);margin:0 0 .9rem;padding:1rem}.form{flex-direction:column;gap:.8rem;display:flex}.form label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.9rem;display:flex}.row{align-items:center;gap:.5rem;margin:.4rem 0;display:flex}.row.spread{justify-content:space-between}.row>input,.form .row>.button{flex:1}.button{background:var(--accent);min-height:44px;color:var(--accent-text);cursor:pointer;white-space:nowrap;border:none;border-radius:10px;justify-content:center;align-items:center;padding:.55rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.button:disabled{opacity:.5}.button.secondary{background:var(--accent-soft);color:var(--accent)}.button.danger{background:var(--bad-bg);color:var(--bad-text)}.button.small{min-height:36px;padding:.35rem .8rem;font-size:.9rem}.button.block{width:100%;margin-bottom:.9rem;display:flex}.page-header{align-items:center;gap:.5rem;margin-bottom:.9rem;display:flex}.page-header h1{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.page-header .back{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 .4rem .2rem 0;font-size:2.2rem;line-height:1}.page-intro{margin:-.5rem 0 .8rem}.tabbar{z-index:10;height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border);display:flex;position:fixed;inset:auto 0 0}.tabbar a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;font-size:.72rem;text-decoration:none;display:flex}.tabbar a.active{color:var(--accent)}.install-hint{padding:calc(env(safe-area-inset-top) + .6rem) 1rem .6rem;background:var(--accent-soft);align-items:flex-start;gap:.5rem;font-size:.9rem;display:flex}.install-hint button{cursor:pointer;background:0 0;border:none;font-size:1.4rem;line-height:1}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:1.5rem auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-box{border-radius:var(--radius);background:var(--bad-bg);color:var(--bad-text);margin-bottom:.9rem;padding:.8rem 1rem}.notice{border-radius:var(--radius);background:var(--accent-soft);margin-bottom:.9rem;padding:.8rem 1rem}.badge{background:var(--accent-soft);color:var(--accent);border-radius:6px;padding:.05rem .45rem;font-size:.78rem;font-weight:600;display:inline-block}.badge.soon{background:var(--warn-bg);color:var(--warn-text)}.badge.expired{background:var(--bad-bg);color:var(--bad-text)}.badge.none{color:var(--muted);background:0 0;padding-left:0}.toast{z-index:20;left:1rem;right:1rem;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + .75rem);color:#fff;background:#222826;border-radius:12px;justify-content:space-between;align-items:center;gap:1rem;max-width:600px;margin:0 auto;padding:.75rem 1rem;animation:.18s ease-out rise;display:flex;position:fixed;box-shadow:0 6px 24px #00000040}.toast.error{background:#8c1d18}.toast button{color:#8fe0b9;cursor:pointer;background:0 0;border:none;font-weight:700}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.toolbar{flex-direction:column;gap:.6rem;margin-bottom:.9rem;display:flex}.segmented{background:var(--border);border-radius:10px;padding:3px;display:flex}.segmented button{cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;min-height:34px;font-size:.85rem}.segmented button[aria-pressed=true]{background:var(--card);font-weight:600;box-shadow:0 1px 3px #0000001f}.stock-list,.log-list,.plain-list{margin:0;padding:0;list-style:none}.stock-list li{border-radius:var(--radius);background:var(--card);border:1px solid var(--border);align-items:stretch;margin-bottom:.5rem;display:flex;overflow:hidden}.stock-item{min-width:0;color:inherit;flex:1;align-items:center;gap:.75rem;padding:.6rem .4rem .6rem .6rem;text-decoration:none;display:flex}.stock-main{flex-direction:column;flex:1;gap:.1rem;min-width:0;display:flex}.stock-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.qty{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:700}.take-one{border:none;border-left:1px solid var(--border);width:48px;color:var(--accent);cursor:pointer;background:0 0;font-size:1.6rem}.thumb{object-fit:contain;background:#fff;border-radius:10px;flex:none;width:52px;height:52px}.thumb.placeholder{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:1.3rem;font-weight:700;display:grid}.empty{color:var(--muted);flex-direction:column;align-items:center;gap:1rem;padding:3rem 0;display:flex}.product-card{grid-template-columns:auto 1fr;align-items:start;gap:.9rem;display:grid}.product-card .thumb{width:88px;height:88px}.product-card .edit{grid-column:1/-1;justify-self:start}.product-name{font-size:1.1rem;font-weight:700}.photo-picker{border:2px dashed var(--border);border-radius:var(--radius);cursor:pointer;place-items:center;height:160px;font-weight:600;display:grid;position:relative;overflow:hidden;color:var(--accent)!important}.photo-picker img{object-fit:contain;background:#fff;width:100%;height:100%}.photo-picker input{opacity:0;position:absolute;inset:0}.photo-change{color:#fff;background:#0000008c;border-radius:6px;padding:.2rem .6rem;font-size:.8rem;position:absolute;bottom:.5rem}.stepper{border:1px solid var(--border);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);cursor:pointer;border:none;font-size:1.3rem}.stepper button:disabled{opacity:.4}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:3rem;font-weight:700}.batches li{border-top:1px solid var(--border);align-items:center;gap:.6rem;padding:.5rem 0;display:flex}.batches li>span:first-child{flex:1}.batches .qty{font-size:1rem}details.card>summary{cursor:pointer;font-size:1.05rem;font-weight:600}details.card[open]>summary{margin-bottom:.4rem}.history li{border-top:1px solid var(--border);padding:.6rem 0}.history li:first-child{margin-top:.6rem}.attribution{text-align:center}.scan-page{flex-direction:column;gap:.75rem;display:flex}.scanner{aspect-ratio:3/4;border-radius:var(--radius);background:#000;width:100%;max-height:62dvh;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%}.viewfinder{border:3px solid #ffffffd9;border-radius:12px;position:absolute;inset:32% 10%;box-shadow:0 0 0 100vmax #00000059}.scanner-status{text-align:center;color:#fff;text-shadow:0 1px 3px #0009;margin:0;padding:0 1rem;font-weight:600;position:absolute;bottom:.8rem;left:0;right:0}.torch{color:#fff;cursor:pointer;background:#00000073;border:none;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:.75rem;right:.75rem}.torch.on{color:#000;background:#fff}.log-list li{border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.65rem 0;display:flex}.log-list li.undone{opacity:.5}.log-list li.undone .log-main a{text-decoration:line-through}.log-main{flex-direction:column;flex:1;min-width:0;display:flex}.log-main a{color:inherit;font-weight:600;text-decoration:none}.delta{text-align:center;font-variant-numeric:tabular-nums;border-radius:8px;flex:none;min-width:2.6rem;padding:.2rem .4rem;font-weight:700}.delta.plus{background:var(--accent-soft);color:var(--accent)}.delta.minus{background:var(--bad-bg);color:var(--bad-text)}.invite-code{background:var(--bg);letter-spacing:.15em;border-radius:10px;flex:1;padding:.45rem .75rem;font-size:1.2rem}.choice-list label{align-items:center;gap:.6rem;padding:.45rem 0;display:flex}.choice-list input{width:20px;height:20px;accent-color:var(--accent)}.plain-list li{padding:.2rem 0}.login{text-align:center;padding-top:calc(env(safe-area-inset-top) + 3rem);flex-direction:column;align-items:center;display:flex}.login .form{text-align:left;width:100%;margin-top:1.5rem}.login-icon{border-radius:16px;margin-bottom:.75rem}
