@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2)format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2)format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2)format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2)format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2)format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2)format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-ext-600-normal-BtBW-rpm.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-600-normal-wReYPmz2.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-cyrillic-600-normal-CQEPC0hM.woff2)format("woff2"),url(/assets/montserrat-cyrillic-600-normal-DUglwBrH.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-vietnamese-600-normal-DKe6qT_E.woff2)format("woff2"),url(/assets/montserrat-vietnamese-600-normal-SJ-HTWuM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-ext-600-normal-DSkTqI9L.woff2)format("woff2"),url(/assets/montserrat-latin-ext-600-normal-CSDhkhgS.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/montserrat-latin-600-normal-UVxSCcoG.woff2)format("woff2"),url(/assets/montserrat-latin-600-normal-CdhFl4lI.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--black:#000;--text:#1f1f1f;--muted:#80868f;--line:#e4e9f0;--surface:#fff;--canvas:#f2f5f9;--track:#e0e7ef;--pink:#f92e65;--mint:#29eec1;--teal:#29cee1;--green:#5ad68d;--green-ink:#138a4a;--yellow:#fed339;--red:#e70403;--index-blue:#026ff4;--font:"Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;--radius-group:16px;--tap:44px;--gutter:16px;--header-h:64px;--tabs-h:48px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{background:var(--canvas);min-height:100dvh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.4}h1,h2,p,ul,dl,dd{margin:0;padding:0}ul{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.num,.code{font-variant-numeric:tabular-nums}.code{letter-spacing:.06em}.screen{flex-direction:column;min-height:100dvh;display:flex}.screen__body{width:100%;max-width:640px;padding:var(--gutter) var(--gutter) calc(var(--gutter) + var(--safe-bottom));flex:1;margin:0 auto}.screen--with-fab .screen__body{padding-bottom:calc(120px + var(--safe-bottom))}.header{z-index:10;grid-template-columns:var(--tap) 1fr var(--tap);min-height:calc(var(--header-h) + var(--safe-top));padding:var(--safe-top) 8px 0;background:var(--black);color:#fff;align-items:center;gap:8px;display:grid;position:sticky;top:0}.header__side{display:flex}.header__side--right{justify-content:flex-end}.header__titles{text-align:center;min-width:0}.header__title{white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:600;line-height:1.25;overflow:hidden}.header__subtitle{color:#ffffffa8;font-variant-numeric:tabular-nums;font-size:13px}.icon-button{width:var(--tap);height:var(--tap);border-radius:50%;place-items:center;display:grid}.icon-button:active{background:#ffffff1f}.tabs{top:calc(var(--header-h) + var(--safe-top));z-index:9;height:var(--tabs-h);background:var(--surface);border-bottom:1px solid var(--line);align-items:stretch;display:flex;position:sticky}.tabs__list{flex:1;display:flex}.tabs__tab{color:var(--muted);flex:1;font-size:15px;font-weight:500;transition:color .16s;position:relative}.tabs__tab:after{content:"";background:var(--black);border-radius:3px 3px 0 0;height:3px;transition:transform .2s;position:absolute;bottom:-1px;left:22%;right:22%;transform:scaleX(0)}.tabs__tab[aria-selected=true]{color:var(--black)}.tabs__tab[aria-selected=true]:after{transform:scaleX(1)}.tabs__action{width:52px;color:var(--black);place-items:center;display:grid}.tabs__action:disabled{color:var(--muted);cursor:default}.group{background:var(--surface);border-radius:var(--radius-group);overflow:hidden}.group+.group,section+section{margin-top:20px}.group-letter{color:var(--muted);padding:0 4px 8px;font-size:13px;font-weight:600}.row{align-items:center;gap:14px;min-height:64px;padding:12px 16px;display:flex}.group>li+li .row,.group>li+li.row,.group>.row+.row{border-top:1px solid var(--line)}a.row:active{background:var(--canvas)}.row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.row__title{text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500;overflow:hidden}.row__meta{color:var(--muted);gap:12px;font-size:13px;display:flex}.row__type{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.empty{text-align:center;color:var(--muted);padding:48px 24px}.empty a{color:var(--text);font-weight:600;text-decoration:underline}.empty__action{min-height:var(--tap);background:var(--black);color:#fff;border-radius:999px;margin-top:12px;padding:0 20px;font-weight:600}.avatar{object-fit:cover;border-radius:50%;flex:none;width:48px;height:48px}.avatar--blank{background:linear-gradient(135deg, var(--mint), var(--teal));color:#fff;place-items:center;font-size:15px;font-weight:600;display:grid}.event-row .row__title{white-space:normal;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.event-row__sold{flex-direction:column;flex:none;align-items:flex-end;font-size:15px;font-weight:600;display:flex}.event-row__capacity{color:var(--muted);font-weight:400}.event-row__label{color:var(--muted);font-size:12px}button.row{text-align:left;width:100%}button.row:active{background:var(--canvas)}.search{padding:12px var(--gutter) 0}.search input{width:100%;min-height:var(--tap);border:1px solid var(--line);background:var(--surface);font:inherit;border-radius:999px;padding:0 16px;font-size:16px}.search input:focus-visible{outline:2px solid var(--black);outline-offset:0}.sheet{background:var(--surface);width:100%;max-width:520px;color:var(--text);border:0;border-radius:20px 20px 0 0;margin:auto auto 0;padding:0}.sheet::backdrop{background:#00000073}.sheet__body{padding:24px var(--gutter) calc(16px + var(--safe-bottom))}.sheet__title{overflow-wrap:anywhere;font-size:20px;font-weight:600}.sheet__facts{margin:16px 0 0}.sheet__facts>div{border-top:1px solid var(--line);gap:16px;padding:10px 0;display:flex}.sheet__facts dt{width:64px;color:var(--muted);flex:none}.sheet__facts dd{overflow-wrap:anywhere;min-width:0}.sheet__status--in{color:var(--green-ink);font-weight:600}.sheet__error{color:var(--red);background:#fdecec;border-radius:12px;margin-top:12px;padding:10px 14px;font-weight:600}.sheet__actions{flex-direction:column;gap:8px;margin-top:20px;display:flex}.sheet__primary,.sheet__secondary{border-radius:999px;min-height:52px;font-size:16px;font-weight:600}.sheet__primary{background:var(--black);color:#fff}.sheet__primary--undo{background:var(--canvas);color:var(--red)}.sheet__primary:disabled,.sheet__secondary:disabled{opacity:.6}.attendee-row--voided .row__title{color:var(--muted);text-decoration:line-through}.status-check{background:var(--green);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;display:grid}.status-tag{background:var(--canvas);color:var(--muted);border-radius:999px;flex:none;padding:3px 10px;font-size:12px;font-weight:600}.scan-fab{left:50%;bottom:calc(24px + var(--safe-bottom));z-index:20;background:var(--pink);color:#fff;border-radius:50%;place-items:center;width:76px;height:76px;margin-left:-38px;transition:transform .12s;display:grid;position:fixed;box-shadow:0 10px 24px -6px #f92e658c,0 2px 6px #0000001f}.scan-fab:active{transform:scale(.94)}.stats-total{text-align:center;padding:28px 0 32px}.stats-total__count{letter-spacing:-.02em;font-size:64px;font-weight:500;line-height:1}.stats-total__of{color:var(--muted);font-weight:400}.stats-total__label{color:var(--muted);margin-top:10px}.bars{flex-direction:column;gap:12px;display:flex}.bar{background:var(--track);isolation:isolate;border-radius:999px;justify-content:space-between;align-items:center;gap:12px;height:44px;padding:0 18px;display:flex;position:relative;overflow:hidden}.bar__fill{z-index:-1;border-radius:inherit;transition:width .4s;position:absolute;inset:0 auto 0 0}.bar--total .bar__fill{background:var(--green)}.bar--type .bar__fill{background:var(--teal)}.bar__name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.bar__value{flex:none;font-weight:600}.bars+section{margin-top:28px}.stale{background:#fff6d6;border-radius:12px;margin-bottom:16px;padding:10px 14px;font-size:14px}.row__time{color:var(--muted);flex:none;font-size:14px}.list-note{color:var(--muted);padding:16px 4px 0;font-size:13px}.list-age{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin:-8px 0 12px;padding:0 4px;font-size:13px;display:flex}.list-age__refresh{min-height:var(--tap);color:var(--text);padding:0 4px;font-weight:600}.list-age__refresh:disabled{color:var(--muted)}.letter-group{content-visibility:auto;contain-intrinsic-size:auto 400px;scroll-margin-top:calc(var(--header-h) + var(--tabs-h) + var(--safe-top) + 8px)}.letter-list--indexed{margin-right:12px}.letter-index{top:calc((100dvh + var(--header-h) + var(--tabs-h) + var(--safe-top)) / 2);z-index:8;touch-action:none;-webkit-user-select:none;user-select:none;flex-direction:column;width:28px;display:flex;position:fixed;right:0;transform:translateY(-50%)}.letter-index__letter{height:20px;color:var(--index-blue);font-size:12px;font-weight:700;line-height:20px}.letter-bubble{z-index:8;background:var(--pink);color:#fff;pointer-events:none;border-radius:50% 50% 0;place-items:center;width:72px;height:72px;font-size:38px;font-weight:500;display:grid;position:fixed;right:36px;transform:translateY(calc(10px - 100%))}.scanner{background:var(--black);color:#fff;flex-direction:column;display:flex;position:fixed;inset:0}.scanner__video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.scanner__bar,.scanner__viewport,.scanner__manual{position:relative}.scanner__bar{z-index:2;padding:calc(8px + var(--safe-top)) 8px 0;justify-content:space-between;display:flex}.scanner__tools{gap:4px;display:flex}.scanner__viewport{z-index:1;padding:0 var(--gutter);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:28px;display:flex}.scanner__frame{aspect-ratio:1;border-radius:28px;width:min(72vw,300px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffffd9}.scanner__frame--live{box-shadow:inset 0 0 0 2px #ffffffd9,0 0 0 100vmax #00000073}.scanner__laser{background:var(--red);border-radius:2px;height:2px;animation:2.4s ease-in-out infinite alternate laser;position:absolute;top:50%;left:8%;right:8%;box-shadow:0 0 12px 2px #e70403b3}@keyframes laser{0%{top:12%}to{top:88%}}.scanner__hint{color:#fff;text-align:center;background:#0000008c;border-radius:14px;max-width:320px;padding:6px 14px;font-size:14px}.scanner__retry{min-height:var(--tap);color:var(--black);background:#fff;border-radius:999px;padding:0 22px;font-weight:600}.scanner__manual{z-index:1;padding:var(--gutter) var(--gutter) calc(var(--gutter) + var(--safe-bottom));gap:8px;display:flex}.scanner__manual input{color:#fff;min-width:0;min-height:48px;font:inherit;background:#ffffff29;border:0;border-radius:999px;outline:none;flex:1;padding:0 16px;font-size:16px}.scanner__manual input::placeholder{color:#fff9}.scanner__manual input:focus-visible{box-shadow:inset 0 0 0 2px var(--pink)}.scanner__manual button{background:var(--pink);color:#fff;border-radius:999px;flex:none;min-height:48px;padding:0 20px;font-weight:600}.scanner__manual button:disabled{opacity:.5;cursor:default}.scan-result{z-index:10;width:100%;padding:calc(var(--safe-top) + 24px) 24px calc(var(--safe-bottom) + 24px);color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:absolute;inset:0}.scan-result--good{background:var(--green);color:var(--black)}.scan-result--warn{background:var(--yellow);color:var(--black)}.scan-result--pending{cursor:default;background:#000000b8}.scan-result--bad{background:var(--red)}.scan-result__icon{background:#ffffff38;border-radius:50%;place-items:center;width:96px;height:96px;margin-bottom:8px;display:grid}.scan-result__icon svg{width:52px;height:52px}.scan-result__title{font-size:28px;font-weight:600;line-height:1.2}.scan-result__detail{overflow-wrap:anywhere;max-width:100%;font-size:17px;font-weight:500}.scan-result__hint{opacity:.85;margin-top:24px;font-size:14px}.login{min-height:100dvh;padding:calc(var(--safe-top) + 32px) 24px calc(var(--safe-bottom) + 24px);background:linear-gradient(32deg,#36cdd9 18%,#9fdfcf 55%,#eeedc6 92%);flex-direction:column;justify-content:center;gap:32px;display:flex}.login__brand,.login__form{width:100%;max-width:400px;margin:0 auto}.login__brand{text-align:center}.login__logo{width:168px;height:auto}.login__title{letter-spacing:.02em;margin-top:4px;font-size:22px;font-weight:500}.login__fields{background:var(--surface);border-radius:var(--radius-group);overflow:hidden;box-shadow:0 10px 30px #00465024}.login__field{padding:10px 16px 8px;display:block}.login__field+.login__field{border-top:1px solid var(--line)}.login__field:focus-within{box-shadow:inset 3px 0 0 var(--pink)}.login__label{color:var(--muted);font-size:12px;font-weight:500;display:block}.login__field input{width:100%;font:inherit;color:var(--text);background:0 0;border:0;outline:none;padding:4px 0;font-size:16px}.login__error{background:var(--surface);color:var(--red);border-radius:12px;margin-top:12px;padding:10px 14px;font-size:14px}.login__submit{background:var(--black);color:#fff;border-radius:999px;width:100%;min-height:52px;margin-top:16px;font-size:16px;font-weight:600}.login__submit:disabled{opacity:.6;cursor:default}.login__signup{min-height:var(--tap);text-underline-offset:3px;align-self:center;align-items:center;padding:0 12px;font-weight:500;text-decoration:underline;display:inline-flex}.settings__value{text-align:right;overflow-wrap:anywhere;flex:1;min-width:0}.logout{width:100%;min-height:56px;color:var(--red);font-size:16px;font-weight:600;display:block}.logout:active{background:var(--canvas)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important}.scanner__laser{animation:none}}
