:root{--bg: #0b1120;--card: #111827;--fg: #f9fafb;--muted: #9ca3af;--accent: #22c55e;--error: #f87171;--border: #374151;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg)}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}.screen{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}.card{width:100%;max-width:420px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:24px;display:flex;flex-direction:column;gap:12px}.card h1{margin:0 0 8px;font-size:1.5rem}.card label{font-size:.9rem;color:var(--muted)}.card input,.card button{font-size:1.05rem;padding:14px 16px;border-radius:12px;border:1px solid var(--border);width:100%}.card input{background:#0b1120;color:var(--fg)}.card input:focus{outline:2px solid var(--accent);border-color:var(--accent)}.card button{margin-top:8px;background:var(--accent);color:#06210f;font-weight:600;border:none;min-height:52px;cursor:pointer}.card button:disabled{opacity:.6;cursor:default}.muted{color:var(--muted)}.error{color:var(--error);margin:0;font-size:.95rem}.app{min-height:100dvh;max-width:560px;margin:0 auto;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(12px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));background:var(--bg);border-bottom:1px solid var(--border)}.title{font-size:1.25rem;font-weight:700}.subtitle{font-size:.85rem;color:var(--muted)}.tabs{display:flex;gap:4px;background:#0b1120;border:1px solid var(--border);border-radius:12px;padding:4px}.tab{background:none;border:none;color:var(--muted);font-size:1rem;font-weight:600;padding:8px 16px;border-radius:9px;cursor:pointer}.tab.active{background:var(--accent);color:#06210f}.subhead{padding:10px 16px 4px;font-size:.85rem;color:var(--muted)}.link{background:none;border:none;color:var(--muted);font-size:.95rem;padding:10px 4px;cursor:pointer}.chip{flex:0 0 auto;background:none;border:1px solid var(--border);color:var(--fg);font-size:.85rem;padding:8px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}.chip.solid{background:var(--accent);color:#06210f;border-color:var(--accent);font-weight:600}.chip:disabled{opacity:.55}.low-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 16px;padding:12px 14px;background:#1f2937;border:1px solid var(--border);border-radius:12px}.inv{flex:1;padding:0 env(safe-area-inset-right) 96px env(safe-area-inset-left)}.loc-group{margin-top:8px}.loc-header{display:flex;align-items:center;gap:8px;margin:0;padding:8px 16px;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--bg)}.inv-row{padding:10px 16px;border-bottom:1px solid var(--border)}.inv-main{display:flex;align-items:center;justify-content:space-between;gap:12px}.inv-name{font-size:1.05rem}.badge{margin-left:8px;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:#fbbf24;border:1px solid #92400e;background:#78350f33;padding:2px 6px;border-radius:6px}.stepper{display:flex;align-items:center;gap:6px}.step{width:40px;height:40px;border:1px solid var(--border);background:#0b1120;color:var(--fg);border-radius:10px;font-size:1.3rem;line-height:1;cursor:pointer}.qty{min-width:28px;text-align:center;font-variant-numeric:tabular-nums;font-size:1.1rem}.inv-meta{display:flex;align-items:center;gap:12px;margin-top:8px;flex-wrap:wrap}.meta-field{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;color:var(--muted)}.inv-meta .chip{margin-left:auto}.thresh{width:56px}.thresh,.expiry{background:#0b1120;color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:.85rem}.pad{padding:12px 16px 0}.items{list-style:none;margin:0;padding:0}.items-wrap{flex:1;padding:0 env(safe-area-inset-right) 96px env(safe-area-inset-left)}.item{display:flex;align-items:center;border-bottom:1px solid var(--border)}.toggle{flex:1;display:flex;align-items:center;gap:14px;min-height:60px;padding:10px 12px 10px 16px;background:none;border:none;color:var(--fg);font-size:1.1rem;text-align:left;cursor:pointer}.box{flex:0 0 auto;width:30px;height:30px;border:2px solid var(--border);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:#06210f}.item.checked .box{background:var(--accent);border-color:var(--accent)}.name{line-height:1.25}.qty{color:var(--muted);font-weight:600}.item.checked .name{color:var(--muted);text-decoration:line-through}.delete{flex:0 0 auto;width:48px;height:48px;margin-right:6px;background:none;border:none;color:var(--muted);font-size:1.6rem;line-height:1;cursor:pointer}.empty{padding:40px 16px;text-align:center;color:var(--muted)}.addbar{position:sticky;bottom:0;z-index:2;display:flex;gap:10px;padding:12px max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));background:var(--card);border-top:1px solid var(--border)}.addinput{flex:1;min-width:0;font-size:1.05rem;padding:14px 16px;border-radius:12px;border:1px solid var(--border);background:#0b1120;color:var(--fg)}.addinput:focus{outline:2px solid var(--accent);border-color:var(--accent)}.add{flex:0 0 auto;width:56px;border:none;border-radius:12px;background:var(--accent);color:#06210f;font-size:1.8rem;line-height:1;font-weight:700;cursor:pointer}.tab{padding:8px 12px;font-size:.95rem}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;flex:0 0 auto}.store-bar{display:flex;gap:8px;overflow-x:auto;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);-webkit-overflow-scrolling:touch}.store-pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:#0b1120;color:var(--fg);font-size:.95rem;cursor:pointer}.store-pill.active{border-color:var(--accent);background:#14321f}.cnt{min-width:20px;padding:0 6px;border-radius:999px;background:var(--border);color:var(--fg);font-size:.75rem;line-height:20px;text-align:center}.store-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border:1px solid var(--border);border-radius:999px;background:none;color:var(--muted);font-size:.8rem;cursor:pointer}.avail{margin-left:8px;font-size:.75rem;color:var(--accent);white-space:nowrap}.avail.out{color:#fbbf24}.store-select{flex:0 0 auto;max-width:40%;background:#0b1120;color:var(--fg);border:1px solid var(--border);border-radius:12px;padding:0 8px;font-size:.95rem}.combo{position:relative;flex:1;min-width:0}.combo-menu{position:absolute;bottom:calc(100% + 8px);left:0;right:0;margin:0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:0 -8px 24px #0006;max-height:40vh;overflow-y:auto}.combo-opt{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;background:none;border:none;color:var(--fg);font-size:1rem;text-align:left;border-radius:8px;cursor:pointer}.combo-opt:hover{background:#0b1120}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#00000080;display:flex;align-items:flex-end}.sheet{width:100%;max-width:560px;margin:0 auto;background:var(--card);border-top-left-radius:18px;border-top-right-radius:18px;padding:12px 12px max(16px,env(safe-area-inset-bottom));border:1px solid var(--border)}.sheet-title{padding:8px 12px 12px;color:var(--muted);font-size:.9rem}.sheet-row{width:100%;display:flex;align-items:center;gap:10px;padding:16px 12px;background:none;border:none;border-radius:10px;color:var(--fg);font-size:1.05rem;text-align:left;cursor:pointer}.sheet-row:hover{background:#0b1120}.admin{flex:1;padding:8px 16px 96px}.admin-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border)}.color-input{flex:0 0 auto;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:10px;background:none;cursor:pointer}.admin-name{flex:1;min-width:0;background:#0b1120;color:var(--fg);border:1px solid var(--border);border-radius:10px;padding:12px;font-size:1.05rem}.admin-toggle{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem}
