:root{--background:#f6f7f9;--surface:#fff;--surface-muted:#eef1f5;--text:#111827;--muted:#687385;--border:#d8dee8;--accent:#005f73;--accent-strong:#004b5d;--danger:#b42318;--success:#067647;--shadow:0 18px 45px #1118271f;--theme-accent:#005f73;--theme-accent-strong:#004b5d;--theme-accent-soft:#e5f3f5;--theme-ring:#005f7338;--theme-shadow:#005f7329}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--background);color:var(--text);letter-spacing:0;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,textarea{font:inherit}button{border:0}a{color:inherit}.app-shell{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom))}.app-frame{width:min(100%,760px);margin:0 auto}.topbar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.brand{align-items:center;gap:10px;min-width:0;display:flex}.brand-mark{background:var(--text);width:40px;height:40px;color:var(--surface);border-radius:8px;flex:none;place-items:center;display:grid}.brand-title{margin:0;font-size:1rem;font-weight:760;line-height:1.15}.brand-subtitle{color:var(--muted);margin:2px 0 0;font-size:.78rem;line-height:1.25}.panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow);border-radius:8px}.auth-panel{margin-top:22dvh;padding:22px}.auth-panel h1,.scanner-header h1{letter-spacing:0;margin:0;font-size:clamp(1.35rem,8vw,2rem);line-height:1.05}.auth-panel p,.scanner-header p{color:var(--muted);line-height:1.5}.button-row{flex-wrap:wrap;gap:10px;display:flex}.button{background:var(--surface-muted);min-height:44px;color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:.92rem;font-weight:700;text-decoration:none;transition:background .16s,box-shadow .16s,transform .16s;display:inline-flex}.button:active{transform:translateY(1px)}.button.primary{background:var(--accent);color:#fff}.button.primary:hover{background:var(--accent-strong)}.button:disabled{cursor:not-allowed;opacity:.55}.icon-button{background:var(--surface);width:44px;height:44px;color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px}.scanner-layout{gap:14px;display:grid}.scan-screen{background:#1b1b1b;min-height:100dvh;padding:clamp(98px,16dvh,156px) 0 0;display:block}.scan-surface{width:min(100%,480px);min-width:0;min-height:calc(100dvh - clamp(98px,16dvh,156px));padding:28px 0 max(16px, env(safe-area-inset-bottom));background:var(--surface);border-radius:26px 26px 0 0;align-content:start;margin:0 auto;display:grid;overflow:hidden;box-shadow:0 -10px 34px #0000002e}.scan-header{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;padding:0 26px 20px;display:grid}.scan-header h1{color:#232936;letter-spacing:.08em;text-align:center;text-transform:uppercase;grid-column:2;margin:0;font-size:clamp(1.55rem,7vw,2rem);font-weight:520;line-height:1}.scan-close-button{cursor:pointer;background:0 0;border-radius:8px;grid-column:3;width:44px;height:44px;position:relative}.scan-close-button:before,.scan-close-button:after{content:"";background:#1f2430;border-radius:999px;width:27px;height:3px;position:absolute;top:21px;left:9px}.scan-close-button:before{transform:rotate(45deg)}.scan-close-button:after{transform:rotate(-45deg)}.scan-content{min-width:0;padding:0 22px}.camera-panel{overflow:hidden}.camera-stage{background:linear-gradient(145deg,#3e4852d9,#9da6a0b3),radial-gradient(circle at 72% 10%,#ef444461,#0000 10%),linear-gradient(#2f3740 0%,#d7d9d2 48%,#9aa09d 100%);border-radius:7px;place-items:center;width:100%;min-width:0;height:clamp(390px,57dvh,610px);display:grid;position:relative;overflow:hidden;box-shadow:0 1px #0f172a14}.camera-stage video{object-fit:cover;width:100%;height:100%;display:block}.scan-reticle{aspect-ratio:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none;background:#ffffff57;border:1px solid #ffffff57;border-radius:9px;width:min(58%,250px);position:absolute;transform:translateY(-8%);box-shadow:inset 0 1px #ffffff47,0 18px 42px #0f172a14}.scan-reticle:before{content:none}.camera-empty{color:#fff;text-align:center;padding:24px}.camera-tap-target{color:#fff;cursor:pointer;background:linear-gradient(#14191f3d,#0000 42%,#0b0e111a);place-items:end center;padding:0 20px clamp(88px,16dvh,145px);display:grid;position:absolute;inset:0}.camera-tap-target:disabled{cursor:default}.camera-tap-target span{color:#fff;text-align:center;text-shadow:0 2px 12px #00000052;max-width:100%;font-size:clamp(1.1rem,5.3vw,1.45rem);font-weight:520;line-height:1.2}@keyframes scan-line{0%,to{opacity:.65;transform:translateY(0)}50%{opacity:1;transform:translateY(calc(min(70vw,300px) - 40px))}}.scan-error{color:var(--danger);background:#fff4f2;border-radius:8px;margin:10px 0 0;padding:12px 14px;font-size:.9rem;line-height:1.35}.scan-caption{color:#687385;text-align:center;margin:8px 0 0;font-size:.84rem;font-weight:680;line-height:1.35}.promo-carousel{scroll-snap-type:x mandatory;gap:16px;min-width:0;margin-top:-8px;padding:0 22px 8px;scroll-padding:22px;display:flex;overflow-x:auto}.promo-card{scroll-snap-align:start;background:#fff;border-radius:8px;flex:none;grid-template-columns:42% minmax(0,1fr);align-items:center;gap:10px;width:min(82vw,395px);min-height:134px;padding:12px 18px 12px 10px;display:grid;box-shadow:0 1px #11182714,0 18px 42px #1118272e}.promo-illustration{min-height:104px;position:relative}.promo-illustration:before{content:"";background:#f3f3f3;border-radius:999px;position:absolute;inset:4px 2px 2px 42px}.promo-phone{background:#9ba0a7;border:3px solid #08006f;border-radius:9px;place-items:center;width:48px;height:82px;display:grid;position:absolute;bottom:5px;left:10px;box-shadow:-11px 8px #f5cf9f}.promo-phone:before{content:"";background:#08006f;border-radius:0 0 4px 4px;width:18px;height:5px;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.promo-qr{background:#fff;border:4px solid #fff;grid-template-columns:repeat(3,5px);grid-auto-rows:5px;gap:2px;display:grid}.promo-qr span{background:#151515}.promo-window{background:#ffffffa8;border:3px solid #bdbdbd;border-radius:7px;align-content:start;gap:6px;width:54px;height:70px;padding:14px 8px 0;display:grid;position:absolute;bottom:11px;right:8px}.promo-window span{background:#c9c9c9;border-radius:2px;height:6px}.promo-window span:first-child{width:32px}.promo-window span:nth-child(2){width:25px}.promo-window span:nth-child(3){width:36px}.promo-copy{min-width:0}.promo-copy h2{color:#1e22ff;letter-spacing:.02em;text-transform:uppercase;margin:0 0 10px;font-size:clamp(.98rem,4.6vw,1.2rem);font-weight:540;line-height:1.15}.promo-copy p{color:#3c4351;margin:0;font-size:clamp(.95rem,4.3vw,1.08rem);line-height:1.25}.promo-copy p:before{content:"•";color:#1f2430;margin-right:12px}.status-strip{border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.status-text{color:var(--muted);margin:0;font-size:.86rem;line-height:1.35}.status-text strong{color:var(--text)}.result-panel{padding:16px}.result-panel h2{margin:0 0 10px;font-size:1rem}.result-screen{min-height:100dvh;padding:max(18px, env(safe-area-inset-top)) 16px max(18px, env(safe-area-inset-bottom));background:radial-gradient(circle at 50% -12%, var(--theme-ring), transparent 42%), linear-gradient(180deg, #fff 0%, var(--theme-accent-soft) 100%);display:grid}.theme-default,.theme-web{--theme-accent:#005f73;--theme-accent-strong:#004b5d;--theme-accent-soft:#e5f3f5;--theme-ring:#005f7333;--theme-shadow:#005f7329}.theme-miniapp{--theme-accent:#4f46e5;--theme-accent-strong:#3730a3;--theme-accent-soft:#ecebff;--theme-ring:#4f46e52e;--theme-shadow:#4f46e52e}.theme-food{--theme-accent:#16803c;--theme-accent-strong:#11632f;--theme-accent-soft:#e9f7ee;--theme-ring:#16803c2e;--theme-shadow:#16803c29}.theme-beauty{--theme-accent:#b83280;--theme-accent-strong:#922668;--theme-accent-soft:#fdebf5;--theme-ring:#b832802e;--theme-shadow:#b8328026}.theme-pet{--theme-accent:#b45309;--theme-accent-strong:#8a3f06;--theme-accent-soft:#fff1df;--theme-ring:#b453092e;--theme-shadow:#b4530929}.theme-products{--theme-accent:#2563eb;--theme-accent-strong:#1d4ed8;--theme-accent-soft:#eaf1ff;--theme-ring:#2563eb2b;--theme-shadow:#2563eb26}.theme-book{--theme-accent:#7c3aed;--theme-accent-strong:#5b21b6;--theme-accent-soft:#f1ebff;--theme-ring:#7c3aed2b;--theme-shadow:#7c3aed26}.theme-unknown{--theme-accent:#475569;--theme-accent-strong:#334155;--theme-accent-soft:#eef2f7;--theme-ring:#47556929;--theme-shadow:#4755691f}.result-card{align-content:start;gap:16px;width:min(100%,620px);min-width:0;margin:0 auto;display:grid}.result-kind{border:1px solid color-mix(in srgb, var(--theme-accent) 18%, transparent);background:color-mix(in srgb, var(--theme-accent-soft) 78%, white);width:fit-content;color:var(--theme-accent-strong);box-shadow:0 10px 28px var(--theme-shadow);border-radius:999px;padding:8px 12px;font-size:.78rem;font-weight:780}.result-card h1{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;text-wrap:pretty;word-break:normal;color:var(--text);margin:0;font-size:clamp(1.8rem,8vw,3rem);line-height:1}.qr-content-box{border:1px solid color-mix(in srgb, var(--theme-accent) 12%, var(--border));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc7;border-radius:14px;gap:8px;padding:15px;display:grid;box-shadow:0 12px 34px #1118270f}.qr-content-box span{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:780}.qr-content-box p{overflow-wrap:anywhere;margin:0;font-size:.95rem;line-height:1.45}.lookup-card{border:1px solid color-mix(in srgb, var(--theme-accent) 15%, var(--border));background:linear-gradient(180deg, #ffffffe6, #ffffffc7), var(--theme-accent-soft);width:100%;min-width:0;max-width:100%;box-shadow:0 18px 44px var(--theme-shadow), inset 0 1px 0 #ffffffe6;border-radius:18px;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:14px;display:grid;overflow:hidden}.lookup-card.compact{flex:none;width:min(82vw,100vw - 48px,330px)}.lookup-image{background:var(--surface-muted);object-fit:cover;border:1px solid #0f172a14;border-radius:12px;width:82px;height:112px;box-shadow:0 12px 30px #1118271f}.lookup-content{align-content:start;gap:8px;min-width:0;display:grid}.lookup-source{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;word-break:normal;min-width:0;color:var(--theme-accent-strong);text-transform:uppercase;font-size:.72rem;font-weight:780}.lookup-card h2,.alternative-section h2{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;text-wrap:pretty;word-break:normal;min-width:0;color:var(--text);margin:0;font-size:1.05rem;line-height:1.15}.lookup-subtitle{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;text-wrap:pretty;word-break:normal;min-width:0;color:var(--muted);margin:0;font-size:.9rem;line-height:1.35}.lookup-facts{gap:7px;margin:0;display:grid}.lookup-facts div{border-top:1px solid color-mix(in srgb, var(--theme-accent) 11%, var(--border));grid-template-columns:minmax(72px,.38fr) minmax(0,1fr);align-items:start;gap:12px;min-width:0;padding-top:7px;display:grid}.lookup-facts .nutrition-fact{--nutrition-color:var(--theme-accent);--nutrition-bg:color-mix(in srgb, var(--nutrition-color) 8%, white);border-top-color:color-mix(in srgb, var(--nutrition-color) 16%, var(--border));background:linear-gradient(90deg, color-mix(in srgb, var(--nutrition-color) 18%, transparent) 0 3px, transparent 3px), #ffffff75;border-radius:8px;margin-top:1px;padding:8px}.lookup-facts dt{color:var(--muted);font-size:.78rem;font-weight:720}.lookup-facts .nutrition-fact dt{color:var(--muted)}.lookup-facts dd{-webkit-hyphens:manual;hyphens:manual;overflow-wrap:break-word;word-break:normal;min-width:0;color:var(--text);text-align:right;margin:0;font-size:.82rem;font-weight:760}.lookup-facts .nutrition-fact dd{border:1px solid color-mix(in srgb, var(--nutrition-color) 24%, transparent);background:var(--nutrition-bg);width:fit-content;color:color-mix(in srgb, var(--nutrition-color) 76%, #111827);border-radius:999px;justify-self:end;padding:3px 8px}.lookup-facts .nutrition-energy{--nutrition-color:#7c3aed}.lookup-facts .nutrition-fat{--nutrition-color:#ea580c}.lookup-facts .nutrition-sugar{--nutrition-color:#dc2626}.lookup-facts .nutrition-protein{--nutrition-color:#2563eb}.lookup-facts .nutrition-score-a{--nutrition-color:#038141}.lookup-facts .nutrition-score-b{--nutrition-color:#85bb2f}.lookup-facts .nutrition-score-c{--nutrition-color:#fecb02}.lookup-facts .nutrition-score-d{--nutrition-color:#ee8100}.lookup-facts .nutrition-score-e{--nutrition-color:#e63e11}.lookup-facts .nutrition-score-unknown{--nutrition-color:#64748b}.source-link{overflow-wrap:anywhere;width:fit-content;max-width:100%;color:var(--theme-accent-strong);font-size:.84rem;font-weight:760;text-decoration:none}.alternative-section{gap:10px;min-width:0;display:grid}.alternative-scroll{scroll-snap-type:x mandatory;gap:12px;margin:0 -16px;padding:0 16px 6px;display:flex;overflow-x:auto}.alternative-scroll .lookup-card{scroll-snap-align:start}.lookup-warning{color:#9a3412;background:#fff7ed;border-radius:8px;margin:0;padding:10px 12px;font-size:.86rem;line-height:1.35}.result-value{resize:vertical;border:1px solid var(--border);background:var(--surface-muted);width:100%;min-height:92px;color:var(--text);border-radius:8px;padding:12px}.url-details{gap:10px;margin:14px 0;display:grid}.url-summary{flex-wrap:wrap;gap:8px;margin:0;display:flex}.url-summary div{border:1px solid color-mix(in srgb, var(--theme-accent) 12%, var(--border));background:#ffffffb3;border-radius:12px;flex:130px;gap:3px;min-width:0;padding:10px;display:grid}.url-summary dt{color:var(--muted);text-transform:uppercase;font-size:.75rem;font-weight:740}.url-summary dd{overflow-wrap:anywhere;min-width:0;margin:0;font-size:.9rem;font-weight:700}.url-empty-note{border:1px solid var(--border);background:var(--surface-muted);color:var(--muted);border-radius:8px;margin:0;padding:10px 12px;font-size:.86rem;line-height:1.35}.params-table-wrap{border:1px solid var(--border);border-radius:8px;max-width:100%;overflow-x:auto}.params-table{border-collapse:collapse;background:var(--surface);table-layout:fixed;width:100%;min-width:320px;font-size:.84rem}.params-table caption{color:var(--text);text-align:left;padding:10px 12px;font-weight:760}.params-table th,.params-table td{border-top:1px solid var(--border);text-align:left;vertical-align:top;padding:10px 12px}.params-table th{color:var(--muted);text-transform:uppercase;font-size:.75rem}.params-table th:first-child,.params-table td:first-child{white-space:nowrap;width:42%}.params-table td{overflow-wrap:anywhere}.params-table td:first-child{overflow-wrap:normal;color:var(--text);font-weight:720;overflow-x:auto}.result-actions{bottom:max(18px, env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--theme-accent-soft) 70%, white));grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin-top:4px;padding-top:10px;display:grid;position:sticky}.result-actions .button{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffd1;border:1px solid #0f172a0f;min-height:52px;box-shadow:0 12px 28px #1118271a}.open-button{color:#fff;background:var(--theme-accent)!important;box-shadow:0 16px 36px var(--theme-shadow)!important}.open-button:hover{background:var(--theme-accent-strong)!important}.alert{border-left:4px solid var(--danger);color:var(--danger);background:#fff4f2;border-radius:8px;padding:12px}.success{color:var(--success)}.viewer-shell{background:var(--surface);min-height:100dvh;position:relative}.viewer-back-button{top:max(12px, env(safe-area-inset-top));z-index:10;min-height:42px;color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;background:#ffffffe6;border:1px solid #0f172a1f;border-radius:999px;padding:0 15px;font-size:.9rem;font-weight:780;position:fixed;left:12px;box-shadow:0 12px 32px #0f172a29}.viewer-loading{place-items:center;min-height:100dvh;padding:24px;display:grid}.viewer-loading p{color:var(--muted);margin:0;font-size:.95rem;font-weight:700}@media (min-width:720px){.scanner-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start}.scanner-header{grid-column:1/-1}}@media (max-width:520px){.lookup-facts div{grid-template-columns:1fr;gap:3px}.lookup-facts dd{text-align:left}}@media (max-width:380px){.lookup-card{grid-template-columns:1fr}.lookup-image{width:72px;height:96px}}
