:root{color:#15351f;--z-green:#18933a;--z-green-dark:#0f6f2c;--z-green-soft:#eaf7ed;--z-yellow:#fff59b;--z-yellow-soft:#fffbe1;--z-ink:#17351f;--z-muted:#66756a;--z-line:#dce9df;--z-white:#fff;background:#fffdf2;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100%}body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:linear-gradient(#fffef8 0%,#fffbea 100%);min-width:320px;min-height:100dvh;margin:0}button,input{font:inherit}a{color:inherit}.scannerPage{height:100dvh;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));touch-action:manipulation;-webkit-user-select:none;user-select:none;grid-template-rows:auto minmax(0,1fr) auto;gap:18px;max-width:1280px;margin:0 auto;display:grid;overflow:hidden}.topbar{justify-content:space-between;align-items:center;gap:20px;display:flex}.brandBlock{align-items:center;gap:14px;min-width:0;display:flex}.logoShell{border:2px solid var(--z-green);background:#fff;border-radius:20px;flex:0 0 68px;place-items:center;width:68px;height:68px;display:grid;overflow:hidden;box-shadow:0 8px 24px #18933a1f}.brandLogo{object-fit:contain;width:100%;height:100%;display:block}.brand{letter-spacing:-1.6px;color:var(--z-green);font-size:38px;font-weight:950;line-height:.95}.tagline{color:var(--z-muted);margin-top:6px;font-size:17px;font-weight:700}.topRight{align-items:center;gap:10px;display:flex}.priceType{background:var(--z-yellow-soft);white-space:nowrap;color:#5f581d;border:1px solid #efe39a;border-radius:999px;padding:9px 14px;font-size:16px;font-weight:700}.adminLink{background:var(--z-green);border:1px solid var(--z-green);color:#fff;border-radius:50%;place-items:center;width:44px;height:44px;text-decoration:none;display:grid;box-shadow:0 8px 20px #18933a2e}.heroCard{text-align:center;background:#fffffff5;border:2px solid #e2f0e5;border-radius:38px;flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:0;padding:44px;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 60px #18933a17}.heroCard:before{content:"";background:linear-gradient(90deg, var(--z-green) 0 62%, var(--z-yellow) 62% 100%);height:10px;position:absolute;inset:0 0 auto}.heroCard h1{letter-spacing:-2px;color:var(--z-ink);margin:16px 0 8px;font-size:clamp(40px,5.2vw,74px);line-height:1.04}.heroCard p{color:var(--z-muted);margin:7px 0;font-size:22px}.stateIcon{background:var(--z-yellow-soft);width:104px;height:104px;color:var(--z-green);border:2px solid #eee49f;border-radius:30px;place-items:center;font-size:62px;font-weight:950;display:grid}.ok{background:var(--z-green-soft);color:var(--z-green);border-color:#bfe3c8}.missingIcon{background:var(--z-yellow-soft);color:#817400;border-color:#eee49f}.errorIcon{color:#a62929;background:#ffeaea;border-color:#f4c4c4}.productName{max-width:1080px}.unitBadge{background:var(--z-yellow-soft);color:#655d1f;border:1px solid #eee49f;border-radius:999px;margin-top:6px;padding:8px 16px;font-size:20px;font-weight:800}.price{letter-spacing:-6px;color:var(--z-green);margin:28px 0 8px;font-size:clamp(88px,12vw,150px);font-weight:950;line-height:.95}.noPrice{letter-spacing:-2px;color:#8a7d13;font-size:clamp(42px,6vw,76px)}.barcodeText{letter-spacing:.8px;color:#8a978d;margin-top:14px;font-size:19px}.readyPill,.nextHint{color:var(--z-green-dark);background:var(--z-green-soft);border:1px solid #c7e6ce;border-radius:999px;margin-top:28px;padding:9px 15px;font-size:16px;font-weight:800}.hint{max-width:760px}.manual{justify-content:center;gap:10px;display:flex}.manual input{-webkit-user-select:text;user-select:text;border:2px solid var(--z-line);max-width:620px;color:var(--z-ink);background:#fff;border-radius:17px;outline:none;flex:1;padding:17px 20px}.manual input:focus{border-color:var(--z-green);box-shadow:0 0 0 4px #18933a1f}.manual button,.adminPage button{cursor:pointer;background:var(--z-green);color:#fff;border:0;border-radius:17px;padding:16px 26px;font-weight:850;box-shadow:0 8px 20px #18933a24}.manual button:hover,.adminPage button:hover,.loginForm button:hover{background:var(--z-green-dark)}footer{text-align:center;color:#8a978d;font-size:13px}.spinner{border:8px solid #eef4ef;border-top-color:var(--z-green);border-radius:50%;width:78px;height:78px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.adminPage{max-width:1180px;margin:0 auto;padding:28px}.adminHeader{justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px;display:flex}.backLink{color:var(--z-green-dark);font-weight:800;text-decoration:none}.adminAuth{gap:10px;margin-bottom:18px;display:flex}.adminAuth input{border:2px solid var(--z-line);border-radius:16px;flex:1;min-width:0;padding:15px 17px}.adminMessage{background:var(--z-yellow-soft);color:#5f581d;border:1px solid #eee49f;border-radius:14px;margin-bottom:18px;padding:14px 16px}.statsGrid{grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0;display:grid}.statsGrid>div,.syncPanel,.conflictCard{border:1px solid var(--z-line);background:#fff;border-radius:22px;padding:20px;box-shadow:0 8px 24px #18933a0a}.statsGrid strong{color:var(--z-green);font-size:34px;display:block}.statsGrid span{color:var(--z-muted)}.syncPanel{border-left:6px solid var(--z-green);gap:9px;display:grid}.buttonRow{gap:10px;margin-top:10px;display:flex}.adminPage button.secondary{background:var(--z-yellow);color:#4e481b;box-shadow:none}.adminPage button.secondary:hover{background:#f4e986}.adminPage button:disabled{opacity:.55;cursor:default}.conflictSection{margin-top:30px}.conflictSection h2{color:var(--z-ink);font-size:28px}.conflictCard{margin:12px 0}.conflictBarcode{color:var(--z-green-dark);margin-bottom:16px;font-size:26px;font-weight:900}.candidateGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.candidate{background:var(--z-yellow-soft);border:1px solid #f1e9a6;border-radius:16px;gap:5px;padding:15px;display:grid}.candidate span,.candidate small{color:var(--z-muted);overflow-wrap:anywhere}.empty{color:var(--z-muted)}.loginPage{background:radial-gradient(circle at top,#fff9bf 0%,#fffdf2 46%,#f3fbf5 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.loginCard{background:#fff;border:2px solid #dcecdf;border-radius:30px;width:min(520px,100%);padding:38px;box-shadow:0 18px 60px #18933a1f}.loginCard .brandBlock{text-align:left;justify-content:center}.loginCard h1{letter-spacing:-1px;color:var(--z-ink);margin:30px 0 10px;font-size:34px}.loginCard p{color:var(--z-muted);margin:0 0 24px;line-height:1.55}.loginForm{gap:12px;display:grid}.loginForm input{border:2px solid var(--z-line);background:#fff;border-radius:17px;outline:none;width:100%;padding:17px 18px}.loginForm input:focus{border-color:var(--z-green);box-shadow:0 0 0 4px #18933a1f}.loginForm button{cursor:pointer;background:var(--z-green);color:#fff;border:0;border-radius:17px;padding:16px 26px;font-weight:850}.loginForm button:disabled{opacity:.55;cursor:default}.loginBack{color:var(--z-green-dark);margin-top:22px;font-weight:800;text-decoration:none;display:inline-block}.adminNav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.adminLoading{border:1px solid var(--z-line);color:var(--z-muted);background:#fff;border-radius:18px;padding:18px}@media (width>=768px) and (height<=900px){.scannerPage{padding-top:max(12px, env(safe-area-inset-top));padding-bottom:max(12px, env(safe-area-inset-bottom));gap:12px}.logoShell{border-radius:18px;flex-basis:60px;width:60px;height:60px}.brand{font-size:34px}.tagline{margin-top:4px;font-size:15px}.heroCard{border-radius:30px;padding:24px 32px}.heroCard h1{margin-top:10px;font-size:clamp(38px,5vw,64px)}.heroCard p{font-size:20px}.stateIcon{border-radius:26px;width:88px;height:88px;font-size:52px}.price{margin-top:18px;font-size:clamp(76px,10vw,132px)}.readyPill,.nextHint{margin-top:18px}.manual input{padding:14px 18px}.manual button{padding:14px 24px}}@media (display-mode:standalone),(display-mode:fullscreen){body{background:#fffdf2}}@media (width<=760px){.scannerPage{gap:12px;padding:12px}.priceType{display:none}.logoShell{border-radius:16px;flex-basis:54px;width:54px;height:54px}.brand{font-size:31px}.tagline{font-size:14px}.heroCard{border-radius:26px;min-height:66vh;padding:24px 15px}.heroCard h1{letter-spacing:-1px}.price{letter-spacing:-3px}.manual{grid-template-columns:1fr auto;display:grid}.statsGrid{grid-template-columns:repeat(2,1fr)}.candidateGrid{grid-template-columns:1fr}.adminPage{padding:14px}.adminAuth{flex-direction:column}.loginPage{padding:14px}.loginCard{border-radius:24px;padding:26px 20px}.adminHeader{align-items:flex-start}.adminNav{justify-content:flex-start}}.syncProgressCard{border:1px solid var(--z-line);background:#fff;border-radius:22px;margin:0 0 18px;padding:18px 20px;box-shadow:0 8px 24px #18933a0d}.syncProgressTop{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:12px;display:flex}.syncProgressTop>div{gap:4px;display:grid}.syncProgressTop strong{color:var(--z-ink);font-size:18px}.syncProgressTop span{color:var(--z-muted)}.syncProgressTop>b{color:var(--z-green);font-size:28px;line-height:1}.syncProgressTrack{background:#edf4ef;border:1px solid #dce9df;border-radius:999px;width:100%;height:16px;overflow:hidden}.syncProgressFill{border-radius:inherit;background:linear-gradient(90deg, var(--z-green), #35b85a);min-width:0;height:100%;transition:width .35s}.syncProgressCard.ok .syncProgressFill{background:var(--z-green)}.syncProgressCard.error .syncProgressFill{background:#c63c3c}.syncProgressCard.error .syncProgressTop>b{color:#a62929}.syncProgressMeta{color:var(--z-muted);margin-top:9px;font-size:14px}
