@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_kks/assets/roboto-latin-400-normal-BqEyEoaF.woff2)format("woff2"),url(/_kks/assets/roboto-latin-400-normal-D27F5sTu.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:400;src:url(/_kks/assets/roboto-latin-ext-400-normal-C3tdtHj3.woff2)format("woff2"),url(/_kks/assets/roboto-latin-ext-400-normal-CIveymTr.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_kks/assets/roboto-latin-700-normal-BZpUvMxY.woff2)format("woff2"),url(/_kks/assets/roboto-latin-700-normal-YuyVweIx.woff)format("woff")}@font-face{font-family:Roboto;font-style:normal;font-display:swap;font-weight:700;src:url(/_kks/assets/roboto-latin-ext-700-normal-DSBUz0N1.woff2)format("woff2"),url(/_kks/assets/roboto-latin-ext-700-normal-BDePAh3g.woff)format("woff")}@font-face{font-family:Roboto Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_kks/assets/roboto-condensed-latin-700-normal-DRbp0YnP.woff2)format("woff2"),url(/_kks/assets/roboto-condensed-latin-700-normal-BOl6B_hI.woff)format("woff")}@font-face{font-family:Roboto Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/_kks/assets/roboto-condensed-latin-ext-700-normal-B004qtqu.woff2)format("woff2"),url(/_kks/assets/roboto-condensed-latin-ext-700-normal-O6H_RRvN.woff)format("woff")}:root{color:#f8f8f6;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;--primary:#f02d3a;--primary-shade:#d32833;--muted:#a9a9a9;--line:#323232;--surface:#151515;--success:#62d48e;--danger:#f0525d;--pending:#e8c56b;--radius:10px;--app-width:480px;background:#000;font-family:Roboto,Arial,sans-serif;font-size:15px;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{overscroll-behavior-y:contain;margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:2px solid #fff}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Roboto Condensed,Arial Narrow,sans-serif;font-weight:700;line-height:1.1}button svg{flex-shrink:0}img{max-width:100%}.muted,.bar-name{color:var(--muted)}.bar-name{overflow-wrap:anywhere;font-size:12px}.primary{border-radius:var(--radius);background:var(--primary);color:#fff;border:0;justify-content:center;align-items:center;gap:16px;min-height:52px;padding:12px 18px;font-size:19px;font-weight:700;display:flex}.primary:active{background:var(--primary-shade)}.wide{width:100%}.notice{border:1px solid var(--line);border-radius:var(--radius);overflow-wrap:anywhere;background:#262626;align-items:center;gap:8px;margin:16px 0;padding:12px;font-size:13px;display:flex}.notice button{background:0 0;border:0;flex-shrink:0;place-items:center;width:44px;height:44px;margin-left:auto;display:grid}.notice.error{color:#ffb8be;background:#291216;border-color:#77313a;display:block}.error-text{color:var(--danger)!important}.offline-notice{border-left:3px solid var(--pending)}.loading{place-items:center;min-height:100dvh;display:grid}.login-layout,.app-shell{width:min(100%, var(--app-width));background:#050505;min-height:100dvh;margin:0 auto}.login-layout{flex-direction:column;display:flex}.login-brand{padding:calc(52px + env(safe-area-inset-top)) 24px 42px;flex-direction:column;align-items:center;gap:12px;display:flex}.login-brand img{filter:drop-shadow(0 0 5px #fffc);width:min(280px,100%)}.login-brand>span{color:var(--muted);letter-spacing:.2em;font-size:12px;font-weight:700}.login-panel{padding:0 24px max(24px, env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.login-form-wrap h1{letter-spacing:-.025em;margin-bottom:12px;font-size:40px}.login-form-wrap>.muted{font-size:14px}.login-form-wrap form{margin-top:28px}.login-form-wrap label{margin:18px 0;font-size:13px;display:block}.login-form-wrap input{border:1px solid var(--line);border-radius:var(--radius);background:#0a0a0a;width:100%;min-height:54px;margin-top:8px;padding:14px;font-size:16px;display:block}.login-form-wrap input:focus{border-color:var(--primary)}.login-form-wrap .primary{margin-top:26px}.login-help{color:var(--muted);margin-top:24px;font-size:12px;line-height:1.8}.login-help a{color:#fff}.login-bottom{color:var(--muted);text-align:center;margin-top:auto;padding-top:40px;font-size:11px}.topbar{min-height:calc(74px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 16px 0;background:#000;border-bottom:1px solid #222;justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding:8px 0;text-decoration:none;display:flex}.brand img{filter:drop-shadow(0 0 5px #fffc);width:170px}.brand>span{color:var(--muted);letter-spacing:.2em;font-size:9px;font-weight:700}.topbar-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.connection{color:var(--muted);align-items:center;gap:5px;font-size:11px;display:flex}.connection i{background:var(--success);border-radius:50%;width:6px;height:6px}.connection.offline i{background:var(--pending)}.profile-button{border-radius:var(--radius);color:#fff;background:0 0;border:0;place-items:center;width:44px;height:44px;display:grid}.profile-button.selected{background:var(--surface);box-shadow:inset 0 -2px var(--primary)}.content{padding:28px 20px calc(88px + env(safe-area-inset-bottom))}.page-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}.page-heading>div{min-width:0}.page-heading h1{letter-spacing:-.025em;margin-top:8px;font-size:40px}.refresh-button{border:1px solid var(--line);border-radius:var(--radius);background:0 0;flex-shrink:0;place-items:center;width:44px;height:44px;padding:0;display:grid}.refresh-button>span:first-child{display:flex}.refresh-button>span:last-child{display:none}.sync-line{color:var(--muted);flex-wrap:wrap;align-items:center;column-gap:12px;margin:14px 0 24px;font-size:11px;display:flex}.sync-line button{min-height:44px;color:var(--pending);background:0 0;border:0;padding:0;text-decoration:underline}.tabs{border-bottom:1px solid var(--line);margin-bottom:20px;display:flex}.tabs button{min-width:0;min-height:48px;color:var(--muted);background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:10px 4px;font-size:14px;font-weight:700}.tabs button.active{border-bottom-color:var(--primary);color:#fff}.tabs button>span{background:#262626;border-radius:5px;margin-left:8px;padding:2px 6px;font-size:11px}.promotion-grid{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.promotion-card{border-radius:var(--radius);background:var(--surface);overflow:hidden}.promotion-image{aspect-ratio:1;background:#111;position:relative;overflow:hidden}.promotion-image>img{object-fit:cover;width:100%;height:100%;display:block}.image-placeholder{background:radial-gradient(circle at 50% 42%,#272727 0,#171717 34%,#101010 70%);place-items:center;height:100%;min-height:70px;display:grid}.image-placeholder svg{width:48px;height:48px;color:var(--muted);stroke-width:1px}.badge{border:1px solid var(--line);color:#fff;background:#151515;border-radius:5px;padding:5px 9px;font-size:11px;font-weight:700;position:absolute;top:12px;left:12px}.badge.valid{color:var(--success);border-color:#264933}.promotion-body{padding:18px}.promotion-body .bar-name{margin-bottom:8px}.promotion-body h2{overflow-wrap:anywhere;font-size:24px}.schedule{color:var(--muted);margin-top:12px;font-size:12px;line-height:1.7}.card-footer{border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:flex}.card-footer code{overflow-wrap:anywhere;font-size:12px}.card-footer svg{flex-shrink:0;width:18px;height:18px}.bottom-nav{z-index:10;width:min(100%, var(--app-width));padding-bottom:env(safe-area-inset-bottom);background:#000;border-top:1px solid #222;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav button{color:#858585;background:0 0;border:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-height:62px;padding:8px;font-size:10px;display:flex;position:relative}.bottom-nav button.active{color:#fff}.bottom-nav i{background:var(--pending);border-radius:50%;width:6px;height:6px;position:absolute;top:8px;left:calc(50% + 10px)}.empty{color:var(--muted);text-align:center;padding:40px 16px}.empty>svg{width:36px;height:36px;margin-bottom:16px}.empty h2{color:#fff;margin-bottom:12px;font-size:24px}.empty p{font-size:13px}.pull-hint{color:var(--muted);text-align:center;padding:15px;font-size:12px}.scanner-page>.muted{margin-bottom:20px;font-size:13px}.camera{aspect-ratio:.87;border:1px solid var(--line);border-radius:var(--radius);background:#111;position:relative;overflow:hidden}.camera video{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera-overlay{flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex;position:absolute;inset:0 0 96px}.scan-guide{aspect-ratio:1.1;place-items:center;width:65%;display:grid;position:relative}.scan-guide>svg{color:#858585;stroke-width:1px;width:58px;height:58px}.scan-guide span{border:3px solid var(--primary);width:30px;height:30px;position:absolute}.scan-guide span:first-child{border-top-left-radius:var(--radius);border-bottom:0;border-right:0;top:0;left:0}.scan-guide span:nth-child(2){border-top-right-radius:var(--radius);border-bottom:0;border-left:0;top:0;right:0}.scan-guide span:nth-child(3){border-bottom-left-radius:var(--radius);border-top:0;border-right:0;bottom:0;left:0}.scan-guide span:nth-child(4){border-bottom-right-radius:var(--radius);border-top:0;border-left:0;bottom:0;right:0}.camera-overlay>p{color:#fff;text-align:center;background:#000c;border-radius:5px;max-width:calc(100% - 24px);padding:5px 10px;font-size:11px}.camera-controls{background:linear-gradient(#0000,#000);justify-content:center;align-items:center;gap:30px;width:100%;height:100px;display:flex;position:absolute;bottom:0}.round-button{color:#fff;background:#262626;border:1px solid #555;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.round-button.lit{border-color:var(--primary);background:var(--primary)}.camera-start{outline:2px solid var(--primary);background:var(--primary);color:#fff;border:4px solid #111;border-radius:50%;place-items:center;width:64px;height:64px;display:grid}.camera-start:focus-visible{outline:3px solid #fff}.camera-start>svg{width:26px;height:26px}.camera-state{width:44px;color:var(--muted);text-align:center;font-size:11px}.stop-symbol{background:#fff;border-radius:3px;width:20px;height:20px}.scanner-tip{grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:22px 0;display:grid}.scanner-tip>span{border:1px solid var(--line);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:10px;display:grid}.scanner-tip>p{color:var(--muted);font-size:12px}.list-caption{color:var(--muted);justify-content:space-between;gap:8px;margin-bottom:14px;font-size:11px;display:flex}.log-list{flex-direction:column;gap:12px;display:flex}.log-entry{border-radius:var(--radius);background:var(--surface);grid-template-columns:36px minmax(0,1fr);align-items:start;gap:8px 12px;padding:16px;display:grid}.log-icon{border-radius:var(--radius);width:36px;height:36px;color:var(--success);background:#16291d;place-items:center;display:grid}.log-icon.pending{color:var(--pending);background:#30291a}.log-icon.rejected{color:var(--danger);background:#32171a}.log-entry h2{overflow-wrap:anywhere;font-size:20px}.log-entry p{color:var(--muted);overflow-wrap:anywhere;margin-top:6px;font-size:12px}.log-entry small{color:var(--muted);overflow-wrap:anywhere;margin-top:6px;font-size:11px;display:block}.status{color:var(--success);grid-column:2;font-size:11px}.status.pending{color:var(--pending)}.status.rejected{color:var(--danger)}.profile-card{border-radius:var(--radius);background:var(--surface);margin:20px 0;padding:24px}.avatar{border:2px solid var(--primary);color:#fff;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:18px;display:grid}.avatar svg{width:30px;height:30px}.profile-card h2{overflow-wrap:anywhere;font-size:28px}.profile-card>.muted{overflow-wrap:anywhere;margin-top:6px;font-size:13px}.profile-card dl{border-top:1px solid var(--line);margin:24px 0;padding-top:8px}.profile-card dt{color:var(--muted);margin:16px 0 6px;font-size:12px}.profile-card dd{margin:0;font-size:14px}.bar-chip{border:1px solid var(--line);overflow-wrap:anywhere;border-radius:5px;margin:2px 6px 2px 0;padding:6px 10px;font-size:12px;display:inline-block}.logout-button{border:1px solid var(--line);border-radius:var(--radius);background:0 0;justify-content:center;align-items:center;gap:10px;width:100%;min-height:48px;padding:12px;font-size:14px;font-weight:700;display:flex}.support-link{color:var(--muted);text-align:center;overflow-wrap:anywhere;margin-top:24px;font-size:12px;display:block}.result-sheet{width:min(100%, var(--app-width));max-width:100%;max-height:90dvh;padding:16px 22px max(24px, env(safe-area-inset-bottom));border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;color:#f8f8f6;background:#151515;border-bottom:0;margin:0 auto;position:fixed;inset:auto 0 0;overflow-y:auto;box-shadow:0 -8px 60px #0008}.result-sheet::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000b}.sheet-handle{background:#555;border-radius:4px;width:36px;height:4px;margin:0 auto 24px}.sheet-close{background:#262626;border:0;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:absolute;top:24px;right:16px}.result-icon{width:46px;height:46px;color:var(--success);background:#16291d;border-radius:50%;place-items:center;margin:10px 0 18px;display:grid}.result-icon.invalid{color:var(--danger);background:#32171a}.result-sheet h2{margin-bottom:22px;font-size:30px}.result-promotion{border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:14px;margin-bottom:20px;padding:12px;display:flex}.result-promotion>img,.result-promotion>.image-placeholder{object-fit:cover;border-radius:5px;flex-shrink:0;width:72px;height:72px}.result-promotion>div{min-width:0}.result-promotion h3{overflow-wrap:anywhere;font-size:20px}.result-promotion p{color:var(--muted);overflow-wrap:anywhere;margin-top:6px;font-size:12px}.result-sheet>.muted,.result-sheet>.error-text{margin-bottom:22px;font-size:13px}.spinning{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
