:root{--ep-color-brand-primary:#176b87;--ep-color-brand-dark:#132a3a;--ep-color-accent:#2ec4b6;--ep-color-premium:#e5a93d;--ep-color-ivory:#f7f5ef;--ep-color-white:#fff;--ep-color-anthracite:#202a33;--ep-color-gray:#667085;--ep-color-danger:#c83e4d;--ep-color-success:#198754;--ep-background:var(--ep-color-white);--ep-background-soft:var(--ep-color-ivory);--ep-surface:var(--ep-color-white);--ep-text:var(--ep-color-anthracite);--ep-text-muted:var(--ep-color-gray);--ep-text-on-brand:var(--ep-color-white);--ep-border:#e4e7ec;--ep-border-strong:#d0d5dd;--ep-state-paid:var(--ep-color-accent);--ep-state-pending:var(--ep-color-premium);--ep-state-used:var(--ep-color-brand-dark);--ep-state-invalid:var(--ep-color-danger);--ep-state-refunded:var(--ep-color-gray);--ep-state-early-payout:var(--ep-color-brand-primary);--ep-state-reserve:var(--ep-color-premium);--ep-badge-standard:var(--ep-color-brand-primary);--ep-badge-vip:var(--ep-color-premium);--ep-badge-staff:var(--ep-color-brand-dark);--ep-badge-press:var(--ep-color-gray);--ep-badge-security:var(--ep-color-danger);--ep-font-heading:"Manrope","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--ep-font-body:"Inter","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--ep-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--ep-fw-regular:400;--ep-fw-medium:500;--ep-fw-semibold:600;--ep-fw-bold:700;--ep-fw-extra:800;--ep-fs-display:2rem;--ep-fs-h1:1.625rem;--ep-fs-h2:1.375rem;--ep-fs-h3:1.125rem;--ep-fs-body:1rem;--ep-fs-small:0.875rem;--ep-fs-caption:0.75rem;--ep-fs-button:0.9375rem;--ep-lh-tight:1.2;--ep-lh-body:1.5;--ep-lh-loose:1.7;--ep-space-0:0;--ep-space-1:0.25rem;--ep-space-2:0.5rem;--ep-space-3:0.75rem;--ep-space-4:1rem;--ep-space-5:1.25rem;--ep-space-6:1.5rem;--ep-space-8:2rem;--ep-space-10:2.5rem;--ep-space-12:3rem;--ep-space-16:4rem;--ep-mobile-margin:1rem;--ep-radius-xs:4px;--ep-radius-control:12px;--ep-radius-card:16px;--ep-radius-pill:999px;--ep-shadow-xs:0 1px 2px rgba(19,42,58,.06);--ep-shadow-sm:0 1px 3px rgba(19,42,58,.08),0 1px 2px rgba(19,42,58,.04);--ep-shadow-md:0 4px 12px rgba(19,42,58,.1),0 2px 4px rgba(19,42,58,.05);--ep-shadow-lg:0 12px 24px rgba(19,42,58,.14),0 4px 8px rgba(19,42,58,.06);--ep-focus-ring:0 0 0 3px rgba(23,107,135,.35);--ep-touch-target:44px;--ep-transition-fast:120ms cubic-bezier(0.4,0,0.2,1);--ep-transition-base:200ms cubic-bezier(0.4,0,0.2,1);--ep-transition-slow:320ms cubic-bezier(0.4,0,0.2,1);--ep-container-narrow:640px;--ep-container-default:960px;--ep-container-wide:1200px;--ep-z-dropdown:1000;--ep-z-sticky:1020;--ep-z-fixed:1030;--ep-z-modal:1050;--ep-z-popover:1060;--ep-z-toast:1080}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:var(--ep-background);color:var(--ep-text);font-family:var(--ep-font-body);font-size:var(--ep-fs-body);line-height:var(--ep-lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{font-family:var(--ep-font-heading);color:var(--ep-color-brand-dark);line-height:var(--ep-lh-tight);margin:0 0 var(--ep-space-4)}h1{font-size:var(--ep-fs-h1);font-weight:var(--ep-fw-extra)}h2{font-size:var(--ep-fs-h2);font-weight:var(--ep-fw-bold)}h3{font-size:var(--ep-fs-h3);font-weight:var(--ep-fw-semibold)}.ep-display{font-family:var(--ep-font-heading);font-size:var(--ep-fs-display);font-weight:var(--ep-fw-extra);color:var(--ep-color-brand-dark);line-height:var(--ep-lh-tight);letter-spacing:-.01em}p{margin:0 0 var(--ep-space-4)}small{font-size:var(--ep-fs-small);color:var(--ep-text-muted)}a{color:var(--ep-color-brand-primary);text-decoration:none;transition:color var(--ep-transition-fast)}a:hover{color:var(--ep-color-brand-dark);text-decoration:underline}a:focus-visible{outline:none;box-shadow:var(--ep-focus-ring);border-radius:var(--ep-radius-xs)}img,svg,video{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer}.ep-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ep-space-2);min-height:var(--ep-touch-target);padding:0 var(--ep-space-5);font-family:var(--ep-font-body);font-size:var(--ep-fs-button);font-weight:var(--ep-fw-semibold);border-radius:var(--ep-radius-control);border:1px solid transparent;background:transparent;color:var(--ep-text);transition:background var(--ep-transition-fast),color var(--ep-transition-fast),transform var(--ep-transition-fast),box-shadow var(--ep-transition-fast);text-decoration:none}.ep-btn:focus-visible{outline:none;box-shadow:var(--ep-focus-ring)}.ep-btn:disabled{opacity:.5;cursor:not-allowed}.ep-btn--primary{background:var(--ep-color-brand-primary);color:var(--ep-color-white)}.ep-btn--primary:hover:not(:disabled){background:var(--ep-color-brand-dark);transform:translateY(-1px);box-shadow:var(--ep-shadow-md)}.ep-btn--success{background:var(--ep-color-accent);color:var(--ep-color-brand-dark)}.ep-btn--success:hover:not(:disabled){filter:brightness(.95)}.ep-btn--danger{background:var(--ep-color-danger);color:var(--ep-color-white)}.ep-btn--ghost{background:transparent;color:var(--ep-color-brand-primary);border-color:var(--ep-border)}.ep-btn--ghost:hover:not(:disabled){background:var(--ep-background-soft);border-color:var(--ep-color-brand-primary)}.ep-card{background:var(--ep-surface);border:1px solid var(--ep-border);border-radius:var(--ep-radius-card);padding:var(--ep-space-6);box-shadow:var(--ep-shadow-sm)}.ep-field{display:flex;flex-direction:column;gap:var(--ep-space-2);margin-bottom:var(--ep-space-4)}.ep-field__label{font-size:var(--ep-fs-small);font-weight:var(--ep-fw-semibold);color:var(--ep-color-brand-dark)}.ep-field__input{width:100%;min-width:0;box-sizing:border-box;min-height:var(--ep-touch-target);padding:0 var(--ep-space-4);font-size:var(--ep-fs-body);color:var(--ep-text);background:var(--ep-color-white);border:1px solid var(--ep-border-strong);border-radius:var(--ep-radius-control);transition:border-color var(--ep-transition-fast),box-shadow var(--ep-transition-fast)}.ep-field{min-width:0}.ep-field__input:focus-visible{outline:none;border-color:var(--ep-color-brand-primary);box-shadow:var(--ep-focus-ring)}.ep-field__error{font-size:var(--ep-fs-small);color:var(--ep-color-danger)}.ep-status{display:inline-flex;align-items:center;gap:var(--ep-space-2);padding:4px var(--ep-space-3);font-size:var(--ep-fs-caption);font-weight:var(--ep-fw-semibold);border-radius:var(--ep-radius-pill);text-transform:uppercase;letter-spacing:.03em}.ep-status:before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}.ep-status--paid{background:rgba(46,196,182,.15);color:var(--ep-color-accent)}.ep-status--pending{background:rgba(229,169,61,.18);color:var(--ep-color-premium)}.ep-status--used{background:rgba(19,42,58,.1);color:var(--ep-color-brand-dark)}.ep-status--invalid{background:rgba(200,62,77,.14);color:var(--ep-color-danger)}.ep-status--refund{background:rgba(102,112,133,.14);color:var(--ep-color-gray)}.ep-container{width:100%;max-width:var(--ep-container-default);margin:0 auto;padding:0 var(--ep-mobile-margin)}.ep-container--wide{max-width:var(--ep-container-wide)}.ep-container--narrow{max-width:var(--ep-container-narrow)}.scanner-root{min-height:100dvh;background:var(--ep-color-brand-dark);color:var(--ep-color-white);display:grid;grid-template-rows:auto 1fr auto}.scanner-header{padding:var(--ep-space-4) var(--ep-space-5);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid hsla(0,0%,100%,.12)}.scanner-header__title{font-size:var(--ep-fs-body);font-weight:var(--ep-fw-bold);color:var(--ep-color-white)}.scanner-header__zone{padding:4px var(--ep-space-3);border-radius:var(--ep-radius-pill);background:rgba(46,196,182,.15);color:var(--ep-color-accent);font-size:var(--ep-fs-caption);font-weight:var(--ep-fw-semibold);text-transform:uppercase;letter-spacing:.05em}.scanner-viewport{position:relative;overflow:hidden;display:grid;place-items:center}.scanner-viewport #reader{width:100%;height:100%}.scanner-frame{position:absolute;inset:0;pointer-events:none;display:grid;place-items:center}.scanner-frame__box{width:min(70vw,320px);height:min(70vw,320px);border:3px solid var(--ep-color-accent);border-radius:24px;box-shadow:0 0 0 9999px rgba(19,42,58,.55)}.scanner-result{padding:var(--ep-space-6);display:grid;grid-gap:var(--ep-space-3);gap:var(--ep-space-3);border-top:1px solid hsla(0,0%,100%,.12);background:rgba(0,0,0,.2)}.scanner-result__status{font-family:var(--ep-font-heading);font-size:var(--ep-fs-h2);font-weight:var(--ep-fw-extra);letter-spacing:-.01em}.scanner-result--valid{--accent:var(--ep-color-accent)}.scanner-result--used{--accent:var(--ep-color-premium)}.scanner-result--invalid{--accent:var(--ep-color-danger)}.scanner-result__status{color:var(--accent,var(--ep-color-white))}.scanner-result__detail{color:hsla(0,0%,100%,.75);font-size:var(--ep-fs-small)}.scanner-result__button{align-self:start;background:var(--ep-color-accent);color:var(--ep-color-brand-dark);font-weight:var(--ep-fw-bold);border:none;padding:var(--ep-space-3) var(--ep-space-5);border-radius:var(--ep-radius-control);cursor:pointer;font-size:var(--ep-fs-body)}.scanner-error{padding:var(--ep-space-6);color:var(--ep-color-danger);font-size:var(--ep-fs-small)}.scanner-root{grid-template-rows:auto 1fr}.scanner-boot{display:grid;place-items:center;height:100dvh;color:hsla(0,0%,100%,.7)}.scanner-header{gap:8px;padding:10px 14px;flex-wrap:wrap}.scanner-header__who{display:flex;align-items:center;gap:10px;min-width:0}.scanner-header__title{font-size:15px;font-weight:800}.scanner-header__sub,.scanner-header__title{max-width:52vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scanner-header__sub{font-size:12px;color:hsla(0,0%,100%,.65)}.scanner-header__tags{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.scanner-tag{padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;border:0;font-family:inherit}.scanner-tag--on{background:rgba(46,196,182,.18);color:#5fe3d6}.scanner-tag--off{background:rgba(230,138,25,.22);color:#f2b35a}.scanner-tag--queue{background:rgba(232,168,56,.22);color:#f2b35a;cursor:pointer}.scanner-tag--report{background:hsla(0,0%,100%,.14);color:#fff;cursor:pointer}.scanner-hint{z-index:5;position:absolute;left:0;right:0;bottom:18px;text-align:center;font-size:14px;color:hsla(0,0%,100%,.85);text-shadow:0 1px 4px rgba(0,0,0,.6);pointer-events:none}.scanner-syncmsg{position:fixed;left:12px;right:12px;bottom:14px;z-index:40;padding:12px 14px;border-radius:12px;background:#0f7b75;color:#fff;font-size:14px;font-weight:600}.scanner-flash{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:28px 22px;text-align:center;color:#fff;cursor:pointer;animation:scanner-pop .16s ease-out}.scanner-flash--valid{background:#0f9d58}.scanner-flash--used{background:#d9822b}.scanner-flash--invalid{background:#c62828}.scanner-flash--offline{background:#1f5fa8}.scanner-flash__title{font-size:34px;font-weight:900;letter-spacing:-.01em;line-height:1.1}.scanner-flash__name{font-size:26px;font-weight:800}.scanner-flash__type{font-size:18px;font-weight:700;padding:4px 14px;border-radius:999px;background:hsla(0,0%,100%,.22)}.scanner-flash__sub{font-size:16px;opacity:.92;max-width:420px}.scanner-flash__tap{margin-top:18px;font-size:13px;opacity:.75}@keyframes scanner-pop{0%{transform:scale(.96);opacity:.4}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion:reduce){.scanner-flash{animation:none}}.scanner-root--setup{grid-template-rows:1fr;place-items:center}.scanner-setup{width:min(100%,420px);padding:28px 22px;display:grid;grid-gap:14px;gap:14px}.scanner-setup__logo{display:flex;justify-content:center}.scanner-setup h1{margin:0;text-align:center;font-size:24px;font-weight:900}.scanner-setup p{margin:0;color:hsla(0,0%,100%,.8);font-size:15px;line-height:1.5}.scanner-setup label{display:block;margin:12px 0 6px;font-size:13px;font-weight:700;color:hsla(0,0%,100%,.75);text-transform:uppercase;letter-spacing:.05em}.scanner-setup__input{width:100%;padding:14px;border-radius:12px;border:2px solid hsla(0,0%,100%,.2);background:hsla(0,0%,100%,.08);color:#fff;font-size:22px;font-weight:800;letter-spacing:.12em;text-align:center;font-family:inherit;box-sizing:border-box}select.scanner-setup__input{font-size:16px;letter-spacing:0;text-align:left}.scanner-setup__input:focus{outline:3px solid #2ec4b6;border-color:transparent}.scanner-setup__button{margin-top:12px;width:100%;padding:15px;border:0;border-radius:12px;background:#2ec4b6;color:#0b2a3a;font-size:17px;font-weight:900;cursor:pointer;font-family:inherit}.scanner-setup__button:disabled{opacity:.5;cursor:not-allowed}.scanner-setup__link{margin-top:8px;background:none;border:0;color:hsla(0,0%,100%,.7);text-decoration:underline;font-size:14px;cursor:pointer;font-family:inherit}.scanner-setup__error{margin-top:10px;background:rgba(198,40,40,.25);color:#ffb4b4}.scanner-setup__error,.scanner-setup__notice{padding:10px 12px;border-radius:10px;font-size:14px}.scanner-setup__notice{background:rgba(232,168,56,.2);color:#f2c879}.scanner-setup__event{margin-top:10px;padding:12px;border-radius:12px;background:rgba(46,196,182,.15);color:#5fe3d6;font-weight:800;text-align:center}.scanner-setup__list{display:grid;grid-gap:8px;gap:8px}.scanner-setup__choice{padding:12px;border-radius:12px;border:2px solid hsla(0,0%,100%,.2);background:transparent;color:#fff;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;text-align:left}.scanner-setup__choice.is-on{border-color:#2ec4b6;background:rgba(46,196,182,.15)}.scanner-sheet-back{position:fixed;inset:0;z-index:70;background:rgba(0,0,0,.55);display:flex;align-items:flex-end}.scanner-sheet{width:100%;max-height:88dvh;overflow-y:auto;background:#12303f;border-radius:20px 20px 0 0;padding:18px 16px 24px;box-sizing:border-box}.scanner-sheet__head{display:flex;justify-content:space-between;align-items:center}.scanner-sheet__head h2{margin:0;font-size:18px}.scanner-sheet__head button{background:hsla(0,0%,100%,.14);color:#fff;border:0;padding:8px 14px;border-radius:10px;font-weight:700;font-family:inherit;cursor:pointer}.scanner-sheet__event{margin:4px 0 12px;color:hsla(0,0%,100%,.7);font-size:14px}.scanner-sheet__kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-bottom:14px}.scanner-sheet__kpis div{background:hsla(0,0%,100%,.08);border-radius:12px;padding:10px 6px;text-align:center}.scanner-sheet__kpis b{display:block;font-size:24px;font-weight:900}.scanner-sheet__kpis span{font-size:11px;color:hsla(0,0%,100%,.7)}.scanner-sheet__list{list-style:none;margin:0;padding:0;display:grid;grid-gap:4px;gap:4px}.scanner-sheet__list li{display:grid;grid-template-columns:70px 100px 1fr;grid-gap:8px;gap:8px;align-items:center;padding:8px 10px;border-radius:8px;background:hsla(0,0%,100%,.05);font-size:13px}.scanner-sheet__list li em{font-style:normal;color:hsla(0,0%,100%,.7);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scanner-sheet__list li.is-valid strong{color:#5fe3a0}.scanner-sheet__list li.is-used strong{color:#f2b35a}.scanner-sheet__list li.is-invalid strong{color:#ff8a8a}.scanner-sheet__list li.is-offline strong{color:#8cb8f0}.scanner-sheet__list li.is-empty{display:block;text-align:center;color:hsla(0,0%,100%,.6)}.scanner-sheet__note{margin:12px 0;font-size:12px;color:hsla(0,0%,100%,.6)}.scanner-sheet__actions{display:grid;grid-gap:8px;gap:8px}.scanner-sheet__actions button{padding:13px;border-radius:12px;border:0;font-weight:800;font-size:15px;font-family:inherit;cursor:pointer;background:#2ec4b6;color:#0b2a3a}.scanner-sheet__actions button.is-danger{background:rgba(198,40,40,.3);color:#ffb4b4}.scanner-error{position:fixed;left:12px;right:12px;bottom:14px;z-index:45;padding:12px 14px;border-radius:12px;background:#7f1d1d;color:#fff;font-size:14px;font-weight:600}.scanner-checking{position:fixed;left:0;right:0;top:96px;z-index:55;display:flex;justify-content:center;pointer-events:none}.scanner-checking span{padding:10px 18px;border-radius:999px;background:rgba(15,157,88,.95);color:#fff;font-weight:800;font-size:15px;box-shadow:0 6px 18px rgba(0,0,0,.35)}.scanner-manual-btn{bottom:56px;padding:12px;border-radius:12px;border:2px solid hsla(0,0%,100%,.35);font-weight:800;font-size:14px;font-family:inherit;cursor:pointer}.scanner-manual-btn,.scanner-zoom{position:absolute;left:12px;right:12px;z-index:6;background:rgba(18,48,63,.88);color:#fff}.scanner-zoom{bottom:112px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:12px;font-weight:700;font-size:13px}.scanner-zoom input{flex:1 1;accent-color:#2ec4b6}