:root{--bg:#f2f7f4;--surface:#fbfdfb;--surface-2:#e9f0ed;--surface-3:#dde8e4;--fg:#061d18;--muted:#63736f;--border:#c8d5d0;--hairline:#d8e2de;--accent:#1f8c67;--accent-dark:#0b4d3b;--blue:#057da5;--red:#b83232;--amber:#a56c00;--shadow-soft:0 7px 22px #071e1814;--shadow-float:0 22px 55px #071e1838;--radius:8px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:linear-gradient(180deg, #e6f0eb, var(--bg) 34%, #f8faf8);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}button,input{font:inherit}button{cursor:pointer;border:0}button:focus-visible,input:focus-visible{outline:2px solid color-mix(in srgb, var(--blue), white 20%);outline-offset:2px}.login-shell{background:radial-gradient(circle at 50% 0%, #1f8c6729, transparent 46%), var(--bg);place-items:end center;min-height:100dvh;padding:18px;display:grid}.login-card{border:1px solid var(--hairline);background:var(--surface);width:min(100%,430px);box-shadow:var(--shadow-float);border-radius:18px;gap:12px;padding:18px;display:grid}.app-mark{color:#fff;background:linear-gradient(145deg, var(--accent-dark), var(--fg));border-radius:12px;place-items:center;width:48px;height:48px;font-weight:900;display:grid}.login-card h1,.login-card h2,.login-card p{margin:0}.login-card p{color:var(--muted);line-height:1.45}.form-stack{gap:10px;display:grid}.form-stack label{color:var(--muted);gap:5px;font-size:12px;font-weight:750;display:grid}.form-stack input,.search-row input{border:1px solid var(--hairline);border-radius:var(--radius);background:color-mix(in srgb, var(--surface), white 10%);min-height:42px;color:var(--fg);padding:0 11px}.error-text{color:var(--red);font-size:12px;font-weight:750}.mobile-shell{background:linear-gradient(180deg, color-mix(in srgb, var(--surface), white 12%), var(--surface) 180px);border-left:1px solid var(--hairline);border-right:1px solid var(--hairline);grid-template-rows:auto 1fr auto;width:min(100%,480px);min-height:100dvh;margin:0 auto;display:grid;position:relative;overflow-x:hidden}.install-gate{z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#071e186b;place-items:end center;padding:16px;display:grid;position:fixed;inset:0}.install-card{border:1px solid var(--hairline);background:var(--surface);width:min(100%,430px);box-shadow:var(--shadow-float);border-radius:18px;gap:10px;padding:16px;display:grid}.topbar{z-index:20;padding:max(12px, env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--hairline);background:color-mix(in srgb, var(--surface), transparent 8%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:0}.topbar strong{font-size:18px;font-weight:900;display:block}.topbar span{color:var(--muted);font-size:12px}.queue-chip{border:1px solid color-mix(in srgb, var(--blue), white 68%);background:color-mix(in srgb, var(--blue), white 92%);min-height:34px;color:var(--blue);border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-weight:850;display:inline-flex}.dot{background:currentColor;border-radius:50%;width:7px;height:7px}.content{padding:10px 12px 96px;overflow:auto}.filter-strip{scrollbar-width:none;gap:7px;padding:4px 0 8px;display:flex;overflow-x:auto}.filter-strip::-webkit-scrollbar{display:none}.filter{border:1px solid var(--hairline);background:var(--surface);min-height:34px;color:var(--muted);border-radius:999px;flex:none;padding:0 12px;font-weight:800}.filter.active{color:#fff;background:linear-gradient(180deg, color-mix(in srgb, var(--fg), white 8%), var(--fg));border-color:var(--fg);box-shadow:0 8px 18px #071e1824}.batch-list,.product-list,.more-screen{gap:8px;display:grid}.batch-card{text-align:left;border:1px solid var(--hairline);border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--surface), white 14%), var(--surface));width:100%;min-height:76px;box-shadow:var(--shadow-soft);grid-template-columns:5px 46px minmax(0,1fr) 64px;align-items:stretch;gap:7px;padding:7px 8px;display:grid}.urgency{border-radius:999px}.danger{color:var(--red)}.warn{color:var(--amber)}.ok{color:var(--accent-dark)}.urgency.danger{background:var(--red)}.urgency.warn{background:var(--amber)}.urgency.ok{background:var(--accent)}.photo{border:1px solid var(--hairline);background:linear-gradient(160deg, color-mix(in srgb, var(--surface-2), white 24%), var(--surface-3));width:46px;height:58px;color:var(--fg);border-radius:8px;align-self:center;place-items:center;font-weight:900;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8f,0 4px 12px #071e180f}.photo.empty{color:var(--muted);background:var(--surface);border-style:dashed}.batch-main{align-content:center;gap:5px;min-width:0;display:grid}.batch-main strong,.product-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;font-weight:900;overflow:hidden}.meta-grid{color:var(--muted);grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:3px 8px;font-size:12px;display:grid}.meta-grid span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.batch-main em{color:var(--muted);font-size:12px;font-style:normal}.due{border:1px solid var(--hairline);border-radius:var(--radius);text-align:center;place-items:center;min-width:64px;padding:5px;font-weight:900;line-height:1.1;display:grid}.due.danger{background:color-mix(in srgb, var(--red), white 90%);border-color:color-mix(in srgb, var(--red), white 68%)}.due.warn{background:color-mix(in srgb, var(--amber), white 88%);border-color:color-mix(in srgb, var(--amber), white 64%)}.due.ok{background:color-mix(in srgb, var(--accent), white 90%);border-color:color-mix(in srgb, var(--accent), white 64%)}.section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.section-title h2,.section-title p{margin:0}.section-title h2{font-size:18px}.section-title p{color:var(--muted);margin-top:3px;font-size:12px}.search-row{grid-template-columns:20px minmax(0,1fr) auto;align-items:center;gap:8px;margin-bottom:10px;display:grid}.search-row button,.icon-btn,.primary-btn,.secondary-btn,.danger-btn,.ghost-btn{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);min-height:40px;color:var(--fg);justify-content:center;align-items:center;gap:7px;padding:0 11px;font-weight:850;display:inline-flex}.primary-btn{color:#fff;background:linear-gradient(180deg, color-mix(in srgb, var(--accent-dark), white 8%), var(--fg));border-color:var(--fg)}.secondary-btn{color:var(--accent-dark);background:color-mix(in srgb, var(--accent), white 88%);border-color:color-mix(in srgb, var(--accent), white 65%)}.danger-btn{color:var(--red);background:color-mix(in srgb, var(--red), white 90%);border-color:color-mix(in srgb, var(--red), white 66%)}.ghost-btn{color:var(--muted);background:0 0}.product-card{border:1px solid var(--hairline);border-radius:var(--radius);background:var(--surface);min-height:72px;box-shadow:var(--shadow-soft);grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:10px;padding:8px;display:grid}.product-card small,.product-card b{display:block}.product-card small{color:var(--muted);font-size:12px}.product-card b{margin-top:2px}.state-card{border:1px solid var(--hairline);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);grid-template-columns:24px minmax(0,1fr);align-items:center;gap:10px;padding:12px;display:grid}.state-card span{color:var(--muted);font-size:12px;display:block}.sheet{z-index:80;width:min(480px,100%);max-height:88dvh;padding:16px 12px max(16px, env(safe-area-inset-bottom));border:1px solid var(--hairline);background:var(--surface);box-shadow:var(--shadow-float);border-bottom:0;border-radius:12px 12px 0 0;position:fixed;bottom:0;left:50%;overflow:auto;transform:translate(-50%)}.sheet h3,.sheet p{margin:0}.sheet p{color:var(--muted);margin-top:4px}.sheet-close{background:var(--surface-2);border-radius:50%;width:34px;height:34px;position:absolute;top:8px;right:10px}.sheet-actions{gap:8px;margin-top:12px;display:grid}.scan-fab{right:16px;bottom:calc(70px + max(12px, env(safe-area-inset-bottom)));z-index:36;color:#fff;background:radial-gradient(circle at 35% 28%, color-mix(in srgb, var(--accent), white 18%), transparent 38%), linear-gradient(145deg, var(--accent-dark), var(--fg));border-radius:50%;place-items:center;width:62px;height:62px;display:grid;position:fixed;box-shadow:0 18px 42px #071e1852}.bottom-nav{z-index:30;padding:8px 8px max(8px, env(safe-area-inset-bottom));border-top:1px solid var(--hairline);background:color-mix(in srgb, var(--surface), transparent 3%);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(3,1fr);gap:4px;display:grid;position:sticky;bottom:0;box-shadow:0 -12px 30px #071e1814}.bottom-nav button{border-radius:var(--radius);min-height:50px;color:var(--muted);background:0 0;place-items:center;gap:2px;font-size:16px;font-weight:850;display:grid}.bottom-nav button.active{color:var(--fg);background:linear-gradient(180deg, color-mix(in srgb, var(--surface-2), white 18%), var(--surface-2));box-shadow:inset 0 0 0 1px var(--hairline), 0 6px 16px #071e180f}.bottom-nav span{font-size:11px}.toast{z-index:90;border-radius:var(--radius);background:linear-gradient(180deg, color-mix(in srgb, var(--fg), white 7%), var(--fg));color:#fff;width:min(420px,100% - 24px);box-shadow:var(--shadow-float);align-items:center;gap:8px;padding:10px 12px;display:flex;position:fixed;bottom:86px;left:50%;transform:translate(-50%)}@media (width<=370px){.batch-card{grid-template-columns:4px 40px minmax(0,1fr) 58px;gap:6px}.photo{width:40px;height:54px}.product-card{grid-template-columns:40px minmax(0,1fr)}.product-card .ghost-btn{grid-column:1/-1}}
