:root{color:#181818;font-synthesis:none;--ink:#181818;--muted:#68665f;--paper:#fff;--accent:#ff4554;--line:#d5d2ca;--mono:"SFMono-Regular", Menlo, Consolas, monospace;background:#eceae5;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.4}*{box-sizing:border-box}html,body{min-width:280px}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.app-shell{border-right:1px solid var(--line);border-left:1px solid var(--line);background:var(--paper);flex-direction:column;width:min(100%,520px);min-height:100svh;margin:0 auto;display:flex}.site-header{border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;gap:12px;min-height:70px;padding:0 26px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;display:inline-flex}.brand-mark{background:var(--accent);letter-spacing:-.1em;place-items:center;width:34px;height:34px;font-size:22px;font-weight:800;line-height:1;display:grid}.brand-mark span{color:#fff}.brand-name{letter-spacing:-.055em;font-size:20px;font-weight:760}.logout-inline{flex:none}.logout-link{width:auto;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border:0;padding:0;font-size:12px;font-weight:650}.logout-link:hover{color:#ad2734;background:0 0}.logout-link span{color:var(--accent)}.content-frame{flex:1;padding:38px 26px 52px}.desk,.auth-view{width:100%}.eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.02em;text-transform:uppercase;margin:0 0 20px;font-size:11px;font-weight:600}.eyebrow strong{color:var(--ink);margin-left:7px;font-weight:700}h1{overflow-wrap:anywhere;letter-spacing:-.065em;max-width:440px;margin:0;font-size:clamp(44px,9vw,60px);font-weight:760;line-height:.98}.heading-dot{color:var(--accent)}.customer-name{font-size:clamp(40px,8vw,56px)}.intro-copy,.auth-view>p:not(.eyebrow,.notice,.small){color:#55524d;max-width:380px;margin:14px 0 28px;font-size:16px;line-height:1.45}.scan-card{border:1px solid var(--ink);overflow:hidden}.scan-visual{background:var(--accent);place-items:center;min-height:240px;display:grid}.scan-target{aspect-ratio:1;width:174px;position:relative}.target-corner{border:0 solid var(--ink);width:25%;height:25%;position:absolute}.top-left{border-top-width:4px;border-left-width:4px;top:0;left:0}.top-right{border-top-width:4px;border-right-width:4px;top:0;right:0}.bottom-left{border-bottom-width:4px;border-left-width:4px;bottom:0;left:0}.bottom-right{border-bottom-width:4px;border-right-width:4px;bottom:0;right:0}.target-center{font-family:var(--mono);font-size:38px;font-weight:300;position:absolute;top:50%;left:50%;transform:translate(-50%,-53%)}button,.button{border:1px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;text-align:left;border-radius:0;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:58px;padding:14px 18px;font-size:15px;font-weight:670;text-decoration:none;display:flex}button:hover,.button:hover{background:#343434}button:focus-visible,.button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button>span,.button>span{color:var(--accent);font-size:20px;font-weight:400;line-height:1}.scan-card>button{border:0;border-top:1px solid var(--ink)}.secondary{color:var(--ink);background:#fff}.secondary:hover{background:#f4f2ed}.secondary>span{color:var(--ink)}button:disabled{cursor:not-allowed}.camera{aspect-ratio:1;background:var(--ink);position:relative;overflow:hidden}.camera video{object-fit:cover;width:100%;height:100%;display:block}.scan-guide{border:3px solid var(--accent);pointer-events:none;position:absolute;inset:16%}.loading-visual{min-height:200px;margin-top:26px}.loading-symbol{font-size:90px;animation:2.2s linear infinite turn}@keyframes turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-symbol{animation:none}}.balance{border:1px solid var(--ink);background:var(--accent);flex-direction:column;justify-content:space-between;min-height:155px;margin:27px 0 0;padding:20px;display:flex}.balance span{font-family:var(--mono);text-transform:uppercase;font-size:11px;font-weight:600}.balance strong{overflow-wrap:anywhere;letter-spacing:-.07em;font-size:clamp(66px,14vw,94px);line-height:.92}.actions{border-right:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.actions button{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:#77746e;background:#fff;min-height:72px;padding:13px;font-size:13px;font-weight:620;line-height:1.25}.actions button:nth-child(2n){border-right:0}.actions button:disabled:hover{background:#fff}.actions button:not(:disabled){color:var(--ink);cursor:pointer}.actions button:not(:disabled):hover{background:#fff0f1}.actions button:disabled{color:#8c8983}.operation-panel{border:1px solid var(--ink);margin-top:25px;padding:19px}.operation-panel h2{letter-spacing:-.04em;margin:0 0 18px;font-size:23px;line-height:1.1}.operation-panel p{margin:10px 0}.operation-panel label{margin-bottom:8px;font-size:13px;font-weight:650;display:block}.operation-panel input{border:1px solid var(--ink);width:100%;min-height:54px;font:inherit;border-radius:0;padding:12px 14px;font-size:22px}.operation-panel input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.operation-panel>button{margin-top:18px}.operation-panel .reward-option{min-height:66px;color:var(--ink);background:#fff;margin-top:-1px}.operation-panel .reward-option:hover{background:#fff0f1}.operation-panel .reward-option span{color:var(--muted);white-space:nowrap;font-size:12px}.operation-back,.operation-rescan{margin-top:13px}.operation-rescan{margin-top:26px}.small{color:var(--muted);margin:18px 0 16px;font-size:12px;line-height:1.4}.auth-view{padding-top:10px}.auth-view>p:not(.eyebrow,.notice,.small){margin-bottom:30px}.logout-block{margin-top:12px}.logout-block .secondary{min-height:52px}.notice{border-left:3px solid var(--accent);color:#842932;background:#fff0f1;margin:22px 0;padding:13px 15px;font-size:14px;line-height:1.4}.site-footer{border-top:1px solid var(--line);color:var(--muted);font-family:var(--mono);text-align:center;padding:18px 26px 22px;font-size:10px}@media (width<=520px){.app-shell{border:0}.site-header{min-height:64px;padding:0 20px}.content-frame{padding:30px 20px 42px}.site-footer{padding:17px 20px 20px}}@media (width<=340px){.brand-name{font-size:18px}.logout-link{font-size:11px}.scan-target{width:150px}.scan-visual{min-height:210px}}
