:root{--bg:oklch(11% .006 60);--bg-elev:oklch(14.5% .008 70);--surface:oklch(14.5% .008 70);--surface-2:oklch(18.5% .011 75);--gold:oklch(82% .14 84);--gold-soft:oklch(90% .09 88);--gold-deep:oklch(66% .13 70);--text:oklch(97% .005 90);--muted:oklch(70% .014 80);--border:oklab(100% 0 5.96046e-8/.09);--input-border:oklab(100% 0 5.96046e-8/.12);--danger:oklch(62% .2 25);--ok:oklch(72% .14 145);--font:"Inter Tight", system-ui, sans-serif;--display:"Sora", ui-sans-serif, system-ui, sans-serif;--gradient-gold:linear-gradient(135deg, var(--gold-soft), var(--gold) 45%, var(--gold-deep));--shadow-soft:0 30px 80px -40px oklch(0% 0 0/.9);--radius:.9rem;--radius-xl:1.1rem;--radius-2xl:1.35rem}*{box-sizing:border-box}html,body,#root{overscroll-behavior:none;background:radial-gradient(120% 70% at 50% -8%, color-mix(in oklab, var(--gold) 12%, transparent) 0%, var(--bg) 52%), var(--bg);height:100dvh;max-height:100dvh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}body{width:100%;position:fixed;inset:0}#root{flex-direction:column;display:flex}.app{width:100%;max-width:28rem;padding:1.15rem 1.15rem max(1.15rem, env(safe-area-inset-bottom));overscroll-behavior:none;flex-direction:column;gap:.95rem;height:100%;min-height:0;max-height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}.app:not(.app-home){-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow:hidden auto}.app-home{overscroll-behavior:none;padding-bottom:max(.75rem, env(safe-area-inset-bottom));gap:.5rem;overflow:hidden}.home-scroll{flex-direction:column;flex:auto;gap:.65rem;min-height:0;display:flex;overflow:hidden}.brand{text-align:center;margin-bottom:0;padding-top:.2rem}.brand-row{flex-direction:column;justify-content:center;align-items:center;gap:.55rem;display:flex}.brand-icon-wrap{background:var(--gradient-gold);box-shadow:0 0 0 1px color-mix(in oklab, var(--gold-soft) 45%, transparent), 0 0 18px color-mix(in oklab, var(--gold) 28%, transparent), 0 6px 14px oklch(0% 0 0/.5);border-radius:22%;flex-shrink:0;place-items:center;padding:2px;display:grid}.brand-icon{object-fit:cover;background:#151515;border-radius:20%;width:2.65rem;height:2.65rem;display:block;box-shadow:inset 0 0 0 1px #ffffff14}.brand-copy{text-align:center;flex-direction:column;align-items:center;gap:.2rem;min-width:0;line-height:1.15;display:flex}.brand-name{font-family:var(--display);letter-spacing:.28em;text-indent:.28em;background-image:var(--gradient-gold);color:#0000;text-transform:uppercase;-webkit-background-clip:text;background-clip:text;font-size:1.55rem;font-weight:600}.brand-q{background-image:var(--gradient-gold);color:#0000;-webkit-background-clip:text;background-clip:text}.brand-plan{letter-spacing:.06em;text-transform:none;vertical-align:middle;color:color-mix(in oklab, var(--text) 55%, transparent);-webkit-text-fill-color:color-mix(in oklab, var(--text) 55%, transparent);background:0 0;margin-left:.35rem;font-size:.42em;font-weight:600;position:relative;top:-.12em}.brand-tag{color:var(--muted);letter-spacing:.04em;max-width:18rem;font-size:.65rem;font-weight:500;line-height:1.45;display:block}.brand-tag strong{color:var(--gold-soft);font-weight:600}.status-pill-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.status-pill{border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);align-items:center;gap:.45rem;min-width:0;padding:.55rem .7rem;display:flex}.status-pill-icon{width:.9rem;height:.9rem;color:var(--gold);flex-shrink:0}.status-pill-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--muted);flex:1;font-size:.7rem;overflow:hidden}.status-pill-dot{background:var(--danger);width:.4rem;height:.4rem;box-shadow:0 0 8px color-mix(in oklab, var(--danger) 45%, transparent);border-radius:50%;flex-shrink:0}.status-pill-dot.on{background:var(--gold);box-shadow:0 0 8px color-mix(in oklab, var(--gold) 55%, transparent)}.connection-dots{display:none}.connection-row{flex-direction:row;align-items:center;gap:.4rem;display:flex}.connection-label{color:var(--muted);letter-spacing:.04em;-webkit-user-select:none;user-select:none;font-size:.62rem;font-weight:500;line-height:1}.connection-dot{border:none;border-radius:50%;flex-shrink:0;width:.65rem;height:.65rem;padding:0}.connection-dot.online{background:var(--ok);box-shadow:0 0 0 2px #00000059,0 0 10px #3a9a5a8c}.connection-dot.offline{background:var(--danger);box-shadow:0 0 0 2px #00000059,0 0 10px #cc444473}.status{text-align:center;color:var(--muted);margin:0;font-size:.82rem}.status.ok{color:var(--ok)}.status.err{color:var(--danger)}.btn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;border-radius:var(--radius-xl);cursor:pointer;width:100%;padding:.8rem 1rem;font-weight:600;transition:border-color .15s,transform .12s}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--gradient-gold);color:oklch(16% .02 70);border-color:color-mix(in oklab, var(--gold) 55%, transparent);box-shadow:0 12px 28px -16px color-mix(in oklab, var(--gold) 55%, transparent)}.btn.large{padding:1.15rem 1.1rem;font-size:1.05rem}.field{flex-direction:column;gap:.4rem;display:flex}.field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}.field input{font:inherit;border-radius:var(--radius);border:1px solid var(--input-border);background:var(--bg);color:var(--text);width:100%;min-width:0;padding:.7rem .85rem}.row{align-items:stretch;gap:.5rem;width:100%;min-width:0;display:flex}.row>input{flex:auto;width:auto;min-width:0}.row .btn{white-space:nowrap;flex:none;width:auto}.row.row-actions .btn{flex:1 1 0}.panel{border:1px solid var(--border);border-radius:var(--radius-2xl);background:var(--surface);padding:.85rem}.panel-soft{background:color-mix(in oklab, var(--surface) 88%, var(--gold) 4%)}.result{background:linear-gradient(165deg, color-mix(in oklab, var(--surface) 85%, var(--gold) 8%), var(--surface));border:1px solid color-mix(in oklab, var(--gold) 28%, var(--border));border-radius:var(--radius-2xl);box-shadow:var(--shadow-soft);padding:.95rem 1rem;position:relative}.result-top{align-items:flex-start;gap:.5rem;display:flex}.result-top h2{font-size:1.1rem;font-family:var(--display);letter-spacing:-.02em;color:var(--gold-soft);flex:1;margin:0 0 .35rem;font-weight:600}.result-close{appearance:none;color:var(--muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0 .15rem;font-size:1.75rem;line-height:1}.result-close:hover{color:var(--text)}.result h2{font-size:1.1rem;font-family:var(--display);color:var(--gold-soft);margin:0 0 .35rem}.result .meta{color:var(--muted);margin:.15rem 0;font-size:.85rem}.result .price{color:var(--gold-soft);margin:.45rem 0 0;font-size:1.35rem;font-weight:700}.result-row{justify-content:space-between;align-items:center;gap:.75rem;padding:.2rem 0;font-size:.78rem;display:flex}.result-row span:first-child{color:var(--muted)}.result-row span:last-child{color:var(--gold-soft);text-align:right;font-weight:600}.scanner-wrap{border-radius:var(--radius-2xl);border:1px solid var(--border);background:#000;min-height:280px;position:relative;overflow:hidden}.ean-reader{width:100%}.ean-reader video{border-radius:var(--radius-2xl);object-fit:cover;width:100%!important}.muted{color:var(--muted);font-size:.82rem}.pair-box{border:1px solid var(--border);border-radius:var(--radius-2xl);text-align:center;box-sizing:border-box;background:var(--surface);width:100%;min-width:0;max-width:100%;padding:.95rem;overflow:hidden}.pair-box .field{text-align:left;width:100%;min-width:0;max-width:100%}.pair-box .row{width:100%;min-width:0;max-width:100%}.pair-box .row>input{flex:1 1 0;width:0;min-width:0;max-width:100%}.pair-box .row>.btn{flex:none;width:auto;max-width:none;padding-left:.85rem;padding-right:.85rem}.offline-ean-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;max-height:min(38vh,14rem);margin:.35rem 0 .75rem;padding:0;list-style:none;overflow-y:auto}.offline-ean-list::-webkit-scrollbar{width:4px}.offline-ean-list::-webkit-scrollbar-thumb{background:oklab(100% 0 5.96046e-8/.18);border-radius:4px}.pending-panel{text-align:left;flex-direction:column;flex:none;min-height:0;display:flex;overflow:hidden}.pending-panel--fill{flex:auto;min-height:0;max-height:100%}.pending-panel-head{flex-shrink:0;margin:0}.pending-panel-list{flex:auto;min-height:0;max-height:none;margin:.4rem 0 .55rem}.pending-panel-actions{flex-shrink:0;margin-top:0}.pending-panel-confirm{flex-shrink:0;margin-top:.55rem}.tile-pill-grid{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.tile-pill{appearance:none;border-radius:var(--radius-xl);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;text-align:left;flex-direction:column;align-items:flex-start;gap:.45rem;min-width:0;padding:.75rem .8rem;display:flex}.tile-pill:disabled{opacity:.45;cursor:not-allowed}.tile-pill.active{border-color:color-mix(in oklab, var(--gold) 45%, var(--border));background:color-mix(in oklab, var(--gold) 10%, var(--surface));box-shadow:0 0 0 1px color-mix(in oklab, var(--gold) 18%, transparent)}.tile-pill-icon{width:1rem;height:1rem;color:var(--gold)}.tile-pill-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.72rem;font-weight:600;overflow:hidden}.scan-card{appearance:none;border-radius:var(--radius-2xl);border:1px solid color-mix(in oklab, var(--gold) 40%, transparent);background:color-mix(in oklab, var(--gold) 10%, var(--surface));width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;box-shadow:0 16px 40px -24px color-mix(in oklab, var(--gold) 50%, transparent);padding:.95rem 1rem .85rem;position:relative;overflow:hidden}.scan-card:disabled{opacity:.45;cursor:not-allowed}.scan-card:before{content:"";background:linear-gradient(90deg, transparent, var(--gold-soft), var(--gold), var(--gold-soft), transparent);height:2px;box-shadow:0 0 12px color-mix(in oklab, var(--gold) 55%, transparent);opacity:0;pointer-events:none;border-radius:999px;animation:2.6s ease-in-out infinite scanline-up;position:absolute;bottom:6%;left:1rem;right:1rem}@keyframes scanline-up{0%{opacity:0;bottom:6%}12%{opacity:1}88%{opacity:.9}to{opacity:0;bottom:88%}}.scan-card-row{align-items:center;gap:.75rem;display:flex}.scan-card-icon{width:1.35rem;height:1.35rem;color:var(--gold);flex-shrink:0}.scan-card-title{color:var(--gold-soft);margin:0;font-size:.95rem;font-weight:650}.scan-card-sub{color:var(--muted);margin:.12rem 0 0;font-size:.65rem}.scan-bars{align-items:flex-end;gap:3px;height:2.35rem;margin-top:.85rem;display:flex}.scan-bars span{background:color-mix(in oklab, var(--text) 72%, transparent);border-radius:1px;flex:1;min-width:2px}.ean-panel{border:1px solid var(--border);border-radius:var(--radius-2xl);background:var(--surface);padding:.75rem}.ean-panel .row{align-items:center}.session-row{align-items:stretch;gap:.45rem;width:100%;min-width:0;display:flex}.session-row .session-select{text-align:left;flex:auto;width:auto;min-width:0}.session-row .session-remove{white-space:nowrap;flex:none;align-self:stretch;width:auto}.ean-panel input{border-radius:var(--radius);border:1px solid var(--input-border);background:var(--bg);letter-spacing:.08em}.home-thumb-zone{flex-direction:column;flex-shrink:0;gap:.55rem;margin-top:auto;margin-bottom:.85cm;padding-top:.35rem;display:flex}.home-license{text-align:center;color:var(--muted);letter-spacing:.02em;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem .45rem;margin:.15rem 0 0;padding:0 .25rem;font-size:.58rem;line-height:1.35;display:flex}.home-license strong{color:var(--gold-soft);font-weight:600}.home-license-sep{opacity:.55}.app-home .brand{text-align:left;flex:auto;min-width:0;padding-top:0}.app-home .brand-row{flex-direction:row;justify-content:flex-start;align-items:center;gap:.55rem}.app-home .brand-copy{text-align:left;align-items:flex-start}.app-home .brand-icon{width:2rem;height:2rem}.app-home .brand-name{letter-spacing:.18em;text-indent:.18em;font-size:1.15rem}.home-top{justify-content:space-between;align-items:flex-start;gap:.65rem;width:100%;display:flex}.app-home .status-pill-grid{flex-direction:column;flex:none;align-items:stretch;gap:.28rem;width:auto;min-width:0;display:flex}.app-home .status-pill{border-radius:.65rem;gap:.3rem;width:max-content;max-width:7.5rem;margin-left:auto;padding:.28rem .45rem}.app-home .status-pill-icon{width:.72rem;height:.72rem}.app-home .status-pill-label{flex:0 auto;font-size:.58rem}.app-home .status-pill-dot{width:.32rem;height:.32rem;margin-left:.1rem}
