:root{--ink-900: #0b1f3a;--ink-800: #14304f;--text: #1b2b3e;--muted: #5b6b80;--subtle: #8a98ab;--line: #dce2ea;--line-strong: #c3ccd8;--bg: #f6f8fa;--surface: #ffffff;--surface-2: #f0f3f7;--brand: #0e8f6e;--brand-700: #0b7359;--brand-100: #e4f3ed;--warn: #b7791f;--warn-100: #fbf3e4;--danger: #b42318;--danger-100: #fcebea;--info: #1d5bd8;--info-100: #e7eefb;--r-card: 16px;--r-btn: 14px;--r-field: 12px;--shadow-card: 0 1px 2px rgba(11, 31, 58, .06);--tabbar-h: 64px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}*{box-sizing:border-box}html{height:100%;-webkit-text-size-adjust:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input{font-family:inherit}button,.btn{user-select:none;-webkit-user-select:none}a{color:var(--ink-900)}.app-frame{position:relative;min-height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:var(--bg)}.app-frame--dark{background:var(--ink-900)}@media(min-width:600px){body{background:var(--surface-2)}.app-frame{box-shadow:0 0 0 1px var(--line)}}.screen{flex:1;display:flex;flex-direction:column;gap:12px;padding:8px 16px calc(24px + var(--tabbar-h) + var(--safe-b));animation:screen-in .18s ease-out backwards}.app-frame--focus .screen{padding-bottom:24px}.screen--scan{padding:0;gap:0}@keyframes screen-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.screen{animation:none}}.hdr{position:sticky;top:0;z-index:5;display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:8px;align-items:center;min-height:56px;padding:var(--safe-t) 12px 0;background:#f6f8faeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.screen>.hdr{margin:-8px -16px 0}.hdr--back{grid-template-columns:minmax(max-content,1fr) minmax(0,auto) minmax(max-content,1fr);padding:var(--safe-t) 8px 0}.hdr-left,.hdr-right{display:flex;align-items:center;gap:6px}.hdr-right{justify-content:flex-end}.hdr-title{margin:0;font-size:17px;font-weight:700;color:var(--ink-900);letter-spacing:-.01em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hdr--back .hdr-title{text-align:center}.hdr--back .hdr-left,.hdr--back .hdr-right{min-width:44px}.hdr-btn{width:40px;height:40px;border:0;border-radius:12px;background:transparent;color:var(--ink-900);display:grid;place-items:center;cursor:pointer}.hdr-btn:active{background:var(--surface-2)}.hdr .pay-badge{height:26px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;margin:0 auto;max-width:480px;height:calc(var(--tabbar-h) + var(--safe-b));padding:0 4px var(--safe-b);display:grid;grid-template-columns:repeat(5,1fr);background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--line),0 -8px 24px #0b1f3a0f}.tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--subtle);text-decoration:none;font-size:11px;font-weight:600;letter-spacing:.01em;user-select:none;-webkit-user-select:none}.tab.active{color:var(--ink-900)}.tab-icon{display:grid;place-items:center}.tab-icon svg{width:24px;height:24px;display:block}.tab--scan .tab-icon{width:60px;height:60px;margin-top:-21px;border-radius:50%;background:var(--brand);color:#fff;box-shadow:0 6px 16px #0e8f6e59,0 0 0 4px #ffffffeb;transition:transform .1s ease,background .12s ease}.tab--scan .tab-icon svg{width:28px;height:28px}.tab--scan .tab-label{color:var(--brand-700)}.tab--scan:active .tab-icon{transform:scale(.96)}.tab--scan.active .tab-icon{background:var(--brand-700)}.app-frame--dark .tabbar{background:#0b1f3aeb;box-shadow:0 -1px #ffffff1a}.app-frame--dark .tab{color:#ffffff8c}.app-frame--dark .tab.active{color:#fff}.app-frame--dark .tab--scan .tab-icon{box-shadow:0 6px 16px #0e8f6e59,0 0 0 4px #0b1f3aeb}.app-frame--dark .tab--scan .tab-label{color:#fff}.bottom-action{position:sticky;bottom:0;z-index:10;display:flex;flex-direction:column;gap:8px;padding:10px 16px calc(12px + var(--safe-b));background:#f6f8faf0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 -1px 0 var(--line)}.bottom-action .paybadges{margin:0}.app-frame--tabs{padding-bottom:calc(var(--tabbar-h) + var(--safe-b))}.app-frame--tabs .bottom-action{bottom:calc(var(--tabbar-h) + var(--safe-b));padding-bottom:34px}.card{background:var(--surface);border-radius:var(--r-card);padding:16px;box-shadow:var(--shadow-card)}.card>:first-child{margin-top:0}.card>:last-child{margin-bottom:0}.center{text-align:center}h1{margin:2px 0 6px;font-size:22px;color:var(--ink-900);letter-spacing:-.02em;line-height:1.2;font-weight:700}h2{margin:6px 0;color:var(--ink-900);font-size:18px;letter-spacing:-.015em;font-weight:700}h3{margin:0 0 4px;font-size:15px;color:var(--ink-900);font-weight:700}p{margin:6px 0}.muted{color:var(--muted)}.small{font-size:13px}.err{background:var(--danger-100)}.err .muted{color:#7a1a12}.notice{background:var(--warn-100)}.notice .muted{color:#6b4a10}.card.ok{background:var(--brand-100)}.card.ok .muted{color:var(--brand-700)}.card.promo{display:flex;align-items:center;gap:14px;background:var(--brand-100)}.hero-card{background:var(--ink-900);color:#fff}.hero-card .muted{color:#ffffffb8}.hero-card h1,.hero-card h2,.hero-card h3{color:#fff}.section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--subtle);margin:8px 4px -4px}.card .section-title{margin:0 0 8px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.err-text{color:var(--danger)}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:.02em;padding:4px 9px;border-radius:999px;white-space:nowrap}.status-pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-pill.on{background:var(--brand-100);color:var(--brand-700)}.status-pill.off{background:var(--danger-100);color:var(--danger)}.status-icon{width:56px;height:56px;border-radius:50%;margin:2px auto 10px;display:grid;place-items:center}.status-icon svg{width:26px;height:26px}.status-icon.success{background:var(--brand-100);color:var(--brand-700)}.status-icon.error{background:var(--danger-100);color:var(--danger)}.status-icon.warn{background:var(--warn-100);color:var(--warn)}.status-icon.info{background:var(--info-100);color:var(--info)}.status-icon.neutral{background:var(--surface-2);color:var(--muted)}.list{background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);overflow:hidden;padding:0}.row{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:12px 16px;border:0;background:var(--surface);color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.list>*+*{border-top:1px solid var(--line)}div.row{cursor:default}a.row:active,button.row:active:not(:disabled){background:var(--surface-2)}.row:disabled{opacity:.6;cursor:default}.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.row-title{font-size:15px;font-weight:600;color:var(--ink-900)}.row-sub{font-size:12.5px;color:var(--muted)}.row-end{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:13px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.row .chevron{width:20px;height:20px;color:var(--subtle);flex-shrink:0;transition:transform .15s ease}.row .chevron.open{transform:rotate(90deg)}.row.danger .row-title{color:var(--danger)}.row-panel{padding:4px 16px 16px;background:var(--surface)}.row-panel>.btn{margin-top:10px}.dot{width:8px;height:8px;border-radius:50%;background:var(--line-strong);flex-shrink:0}.dot.on{background:var(--brand)}.entry-pos{font-weight:700;color:var(--brand);white-space:nowrap;font-variant-numeric:tabular-nums}.entry-neg{font-weight:700;color:var(--ink-900);white-space:nowrap;font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:52px;padding:0 18px;border:1px solid var(--ink-900);border-radius:var(--r-btn);background:var(--ink-900);color:#fff;font-size:16px;font-weight:600;line-height:1.2;text-decoration:none;cursor:pointer;transition:background .12s ease,border-color .12s ease,transform .1s ease}.btn:hover:not(:disabled){background:var(--ink-800);border-color:var(--ink-800)}.btn:active:not(:disabled){transform:scale(.985)}.btn.block{display:flex;width:100%}.card>*+.btn{margin-top:10px}.btn.ghost{background:var(--surface);color:var(--ink-900);border-color:var(--line-strong)}.btn.ghost:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.btn.light{background:#fff;color:var(--ink-900);border-color:#fff}.btn.light:hover:not(:disabled){background:var(--surface-2);border-color:var(--surface-2)}.btn.google{background:#fff;color:var(--ink-900);border-color:var(--line-strong);gap:12px}.btn.google:hover:not(:disabled){background:var(--surface-2);border-color:var(--line-strong)}.btn.google svg{flex:none}.or-divider{display:flex;align-items:center;gap:12px;margin:14px 0;color:var(--muted);font-size:13px}.or-divider:before,.or-divider:after{content:"";flex:1;height:1px;background:var(--line)}.btn.sm{min-height:40px;padding:0 12px;font-size:13px;border-radius:10px;flex-shrink:0}.btn.danger{color:var(--danger);border-color:#f0c8c4;background:var(--surface)}.btn.danger:hover:not(:disabled){background:var(--danger-100);border-color:var(--danger)}.btn:disabled{opacity:.5;cursor:default}.pay-btn{width:100%;min-height:56px;font-size:16.5px}.big-btn{min-height:60px;font-size:17px}.big-btn svg{width:26px;height:26px}.btn-row{display:flex;gap:8px}.btn-row .btn{flex:1}.row-2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.row-2 .btn{width:100%}.fl-label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 6px}.fl-input{width:100%;min-height:48px;padding:10px 14px;border:1px solid transparent;border-radius:var(--r-field);background:var(--surface-2);font-size:16px;font-family:inherit;letter-spacing:.08em;color:var(--text);outline:none}.fl-input:focus{border-color:var(--ink-900);background:var(--surface)}.fl-input:disabled{opacity:.6}.fl-input.plain{letter-spacing:normal}.code-input{letter-spacing:.35em;text-align:center;font-size:22px;font-weight:700}.amounts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.amount{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:72px;padding:12px 8px;background:var(--surface);color:var(--ink-900);border:0;border-radius:var(--r-btn);box-shadow:var(--shadow-card);cursor:pointer;transition:box-shadow .12s ease,background .12s ease}.amount.selected{background:var(--brand-100);box-shadow:inset 0 0 0 2px var(--brand)}.amount:disabled{opacity:.55;cursor:default}.amount-value{font-size:22px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.cur{font-size:11px;font-weight:600;color:var(--muted);letter-spacing:.02em}.ghost-amount{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.amount-alt{font-size:14px;font-weight:600}.amount .cur s{opacity:.7;margin-right:3px}.stepper-card .stepper{display:flex;align-items:center;justify-content:center;gap:16px;margin:4px 0 8px}.step-btn{width:52px;height:52px;border-radius:var(--r-btn);border:0;background:var(--surface-2);color:var(--ink-900);font-size:26px;cursor:pointer;line-height:1}.step-btn:active:not(:disabled){background:var(--line)}.step-btn:disabled{opacity:.4;cursor:default}.stepper-value{font-size:32px;font-weight:700;letter-spacing:-.025em;color:var(--ink-900);min-width:130px;text-align:center;font-variant-numeric:tabular-nums}.big-amount{font-size:42px;font-weight:700;letter-spacing:-.03em;color:var(--ink-900);margin:4px 0 2px;font-variant-numeric:tabular-nums}.big-amount .cur{font-size:15px;margin-left:4px}.methods{display:flex;flex-direction:column;gap:8px}.method{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:60px;padding:12px 16px;background:var(--surface);border:0;border-radius:var(--r-btn);box-shadow:var(--shadow-card);font-size:15px;font-weight:600;color:var(--text);cursor:pointer}.method:active:not(:disabled){background:var(--surface-2)}.method:disabled{opacity:.5;cursor:default}.method .m-label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left}.method .m-label b{font-size:15px;color:var(--ink-900);font-weight:700}.method .m-label em{font-style:normal;color:var(--subtle);font-size:11px;font-weight:500}.method .m-badges{display:flex;gap:4px;flex-shrink:0}.method .m-badges .pay-badge{height:28px}.checkout-proc{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12.5px;color:var(--muted);margin:6px 0 10px}.checkout-proc svg{width:13px;height:13px;flex-shrink:0}.processing .spinner{width:28px;height:28px;margin:8px auto;border:3px solid var(--line);border-top-color:var(--ink-900);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.processing .spinner{animation:none}}.wallet{display:none}.wallet.wallet-on{display:block}.wallet-target{min-height:48px}.wallet-target>*{width:100%!important}.wallet-or{text-align:center;color:var(--subtle);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin:8px 0 0}.bay-hero{padding-bottom:14px}.bay-row{display:flex;align-items:center;gap:14px;margin:4px 0 10px}.bay-num{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;white-space:nowrap;min-width:96px;min-height:76px;padding:8px 14px;border-radius:14px;background:var(--ink-900);color:#fff;line-height:1}.bay-num .bay-big{font-size:44px;font-weight:800;letter-spacing:-.02em;margin-top:2px}.bay-num .bay-big.long{font-size:24px}.bay-meta{display:flex;flex-direction:column;gap:4px;min-width:0}.bay-name{font-size:20px;font-weight:800;letter-spacing:-.01em;color:var(--ink-900)}.bay-service{display:inline-block;align-self:flex-start;font-size:12px;font-weight:600;color:var(--brand-700);background:var(--brand-100);border-radius:6px;padding:1px 7px;margin:2px 0}.bay-verify{margin:0;font-size:13.5px;color:var(--ink-800);background:var(--brand-100);border-radius:12px;padding:10px 12px}.bay-chip{display:inline-flex;align-items:baseline;gap:6px;padding:6px 10px;border-radius:10px;background:var(--ink-900);color:#fff;line-height:1}.bay-chip .bay-big{font-size:20px;font-weight:800}.bay-chip .bay-big.long{font-size:14px}.promo-pct{font-size:22px;font-weight:800;color:var(--brand-700);background:#fff;border-radius:12px;padding:8px 12px;letter-spacing:-.02em;flex-shrink:0}.fleet-card h3{margin:0 0 4px}.paybadges{margin:6px 0 0;text-align:center}.paybadges-title{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-bottom:6px}.paybadges-title svg{width:13px;height:13px}.paybadges-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.pay-badge{height:28px;width:auto;display:inline-block;vertical-align:middle}.pay-badge.lg{height:38px}.pay-badge.sm{height:22px;margin-right:6px}.pay-proc{display:inline-flex;align-items:center}.pay-badges.center{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:4px 0}.hello h1{font-size:26px;margin:8px 0 2px}.hello p{margin:0 0 4px}.points-amount{font-size:44px;font-weight:800;letter-spacing:-.02em;line-height:1.05;margin:2px 0 6px;font-variant-numeric:tabular-nums;color:var(--ink-900)}.points-amount small{font-size:16px;font-weight:600;color:var(--muted);margin-left:6px}.hero-card .points-amount{color:#fff}.hero-card .points-amount small{color:#ffffffb8}.hint-card{position:relative}.hint-card h3{padding-right:40px}.hint-close{position:absolute;top:8px;right:8px;width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:var(--subtle);display:grid;place-items:center;cursor:pointer}.empty-state{text-align:center;padding:28px 16px}.empty-state .status-icon{margin-bottom:12px}.scan{position:relative;flex:1;min-height:calc(100dvh - var(--tabbar-h) - var(--safe-b));background:var(--ink-900);color:#fff;overflow:hidden}.scan-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scan-mask{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;pointer-events:none}.scan-frame{position:relative;width:240px;height:240px;border-radius:20px;box-shadow:0 0 0 200vmax #0b1f3a8c}.scan-corners{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;width:calc(100% + 4px);height:calc(100% + 4px);color:#fff}.scan-top{position:relative;z-index:2;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:56px;padding:var(--safe-t) 8px 0}.scan-top h1{grid-column:2;margin:0;text-align:center;font-size:17px;color:#fff}.scan-close{grid-column:3;width:40px;height:40px;border-radius:12px;color:#fff;display:grid;place-items:center;text-decoration:none}.scan-close:active{background:#ffffff1f}.scan-hint{position:absolute;left:16px;right:16px;top:calc(50% + 136px);z-index:2;margin:0;text-align:center;font-size:14px;color:#ffffffd9}.scan-bad{position:absolute;left:16px;right:16px;top:calc(50% - 176px);z-index:2;padding:10px 14px;border-radius:12px;background:var(--danger);color:#fff;text-align:center;font-size:14px;font-weight:600}.scan-actions{position:absolute;left:16px;right:16px;bottom:calc(var(--tabbar-h) + var(--safe-b) + 16px);z-index:2;display:flex;flex-direction:column;align-items:stretch;gap:10px}.scan-actions .btn.ghost{background:#ffffff1f;color:#fff;border-color:transparent}.scan-torch{align-self:center;width:52px;height:52px;border-radius:50%;border:0;background:#ffffff29;color:#fff;display:grid;place-items:center;cursor:pointer}.scan-torch.on{background:#fff;color:var(--ink-900)}.scan-start{position:absolute;left:16px;right:16px;bottom:calc(var(--tabbar-h) + var(--safe-b) + 84px);z-index:2;text-align:center;color:#ffffffd9;font-size:14px}.scan-start p{margin:0 0 12px}.scan-start .btn{min-height:56px}.receipt{font-size:14px}.receipt-rows{margin:14px 0 10px}.receipt-rows>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--line)}.receipt-rows dt{color:var(--muted);font-weight:500;flex-shrink:0}.receipt-rows dd{margin:0;min-width:0;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;color:var(--text);overflow-wrap:anywhere}.receipt-rows .mono{font-size:12px;word-break:break-all}.receipt-rows .sep{border-bottom:none;padding:2px 0}.receipt-rows .total{border-top:2px solid var(--ink-900);border-bottom:none;padding-top:10px;font-size:16px}.receipt-rows .total dd{color:var(--ink-900);font-weight:700}.legal h1{font-size:20px;margin-bottom:2px}.legal h2{font-size:14px;margin-top:18px;text-transform:uppercase;letter-spacing:.06em;color:var(--subtle);font-weight:600}.legal p{font-size:14px;color:var(--text);line-height:1.6}.legal ul{margin:6px 0 0;padding-left:20px}.legal li{font-size:14px;color:var(--text);line-height:1.6;margin:6px 0}.install-steps{margin:6px 0 2px;padding-left:22px;color:var(--text)}.install-steps li{margin:7px 0}.ios-share{width:15px;height:15px;vertical-align:-3px;margin:0 1px;color:var(--ink-900)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#0b1f3a73;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:480px;max-height:88dvh;overflow-y:auto;background:var(--surface);border-radius:16px 16px 0 0;padding:10px 20px calc(20px + var(--safe-b));box-shadow:0 -12px 32px #0b1f3a2e;animation:sheet-in .2s ease-out both}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-handle{display:block;width:36px;height:4px;border-radius:2px;background:var(--line-strong);margin:0 auto 14px}.sheet-title{margin:0 0 6px;font-size:18px}.sheet .status-icon{margin:4px auto 12px}.sheet-steps{margin:8px 0 0;padding-left:20px;color:var(--text);font-size:14px}.sheet-steps li{margin:6px 0}.sheet .btn.block{margin-top:10px}.map-wrap{position:relative;margin:0 -16px;height:max(280px,55dvh);background:var(--surface-2);box-shadow:0 1px 0 var(--line)}.map-wrap>.map-box{position:absolute;top:0;right:0;bottom:0;left:0}.map-recenter{position:absolute;right:12px;bottom:12px;z-index:2;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--ink-900);box-shadow:0 2px 8px #0b1f3a2e;display:grid;place-items:center;cursor:pointer}.map-recenter svg{width:22px;height:22px}.maplibregl-ctrl-attrib{font-size:11px}.me-dot{z-index:2;width:16px;height:16px;border-radius:50%;background:var(--info);border:3px solid #fff;box-shadow:0 0 0 1px #1d5bd866}.me-ring{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;border:2px solid rgba(29,91,216,.55);animation:me-pulse 2s ease-out infinite}@keyframes me-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(1.6);opacity:0}}@media(prefers-reduced-motion:reduce){.me-ring{animation:none;opacity:.5}}.pin{z-index:1;width:34px;height:40px;border:0;padding:0;background:transparent;cursor:pointer}.pin:before{content:"";position:absolute;left:3px;top:2px;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--ink-900);box-shadow:0 2px 6px #0b1f3a4d;transition:transform .12s ease,background .12s ease}.pin:after{content:"";position:absolute;left:11px;top:10px;width:12px;height:12px;border-radius:50%;background:var(--subtle)}.pin.on:after{background:var(--brand)}.pin.selected:before{background:var(--brand);transform:rotate(-45deg) scale(1.15)}.pin.selected:after{background:#fff}.pin-n{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#fff;color:var(--ink-900);font-size:11px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 1px 3px #0b1f3a40}.row.selected{background:var(--brand-100);box-shadow:inset 3px 0 0 var(--brand)}.row-actions{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 14px;background:var(--brand-100);box-shadow:inset 3px 0 0 var(--brand)}.row-actions .btn{flex:1;min-height:44px;font-size:14px;border-radius:12px}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;min-height:40px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink-900);font:inherit;font-size:14px;font-weight:600;white-space:nowrap;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink-900);color:#fff;border-color:var(--ink-900)}.btn .star-on{color:var(--brand)}.carousel{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 16px;padding:4px 16px 8px;margin:0 -16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.carousel::-webkit-scrollbar{display:none}.carousel-card{flex:0 0 100%;scroll-snap-align:start;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:14px 16px;display:flex;flex-direction:column;gap:6px}.carousel-card h3{margin:0;font-size:17px;display:flex;align-items:center;gap:6px}.carousel-card .star-on{color:var(--brand);display:inline-flex}.carousel-card p{margin:0}.carousel-dist{font-weight:700;font-size:15px}.carousel-status{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}.carousel-actions{display:flex;gap:8px;margin-top:6px}.carousel-actions .btn{flex:1;min-height:44px;padding:0 12px;font-size:14px;border-radius:12px}.carousel-source{margin:-2px 4px 0;font-size:12px;color:var(--subtle)}.carousel-source button{font:inherit;color:var(--brand);background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.carousel-dots{display:flex;justify-content:center;gap:2px;margin:-10px 0 -6px}.carousel-dots button{width:24px;height:24px;padding:0;border:0;background:none;display:grid;place-items:center;cursor:pointer}.carousel-dots button:before{content:"";display:block;width:8px;height:8px;border-radius:4px;background:var(--line-strong);transition:width .2s ease,background-color .2s ease}.carousel-dots button[aria-current=true]:before{width:18px;background:var(--brand)}@media(prefers-reduced-motion:reduce){.carousel-dots button:before{transition:none}}.busy-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#fffc;display:grid;place-items:center;padding:24px}.busy-card{display:flex;flex-direction:column;align-items:center;gap:10px;min-width:200px;max-width:320px;padding:22px 28px;background:var(--surface);border-radius:16px;box-shadow:0 8px 30px #0b1f3a2e;text-align:center}.busy-spinner{width:40px;height:40px;border:4px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite}@media(prefers-reduced-motion:reduce){.busy-spinner{animation:none}}.busy-label{margin:0;font-size:16px;font-weight:700;color:var(--ink-900)}.busy-sub{margin:0;font-size:13px;color:var(--muted)}.net-banner{position:fixed;top:0;left:0;right:0;z-index:30;padding:calc(8px + env(safe-area-inset-top)) 16px 8px;background:var(--warn-100);color:#6b4a10;font-size:13px;font-weight:600;text-align:center;box-shadow:0 1px 0 var(--line)}.net-banner button{font:inherit;color:inherit;background:none;border:0;padding:0;text-decoration:underline;cursor:pointer}.net-banner-on{--net-banner-h: calc(36px + var(--safe-t))}.net-banner-on .hdr{top:var(--net-banner-h);padding-top:0}.net-banner-on .screen{padding-top:calc(8px + var(--net-banner-h))}.net-banner-on .app-frame--focus>.hdr{margin-top:var(--net-banner-h)}.net-banner-on .app-frame--focus .screen{padding-top:8px}.net-banner-on .screen--scan{padding-top:var(--net-banner-h)}@media print{.net-banner{display:none}.net-banner-on .hdr{top:0}.net-banner-on .screen{padding-top:8px}}.dir-list .btn{justify-content:flex-start;gap:12px}@media print{body{background:#fff}.app-frame{max-width:100%;box-shadow:none}.hdr,.tabbar,.bottom-action,.receipt-no-print{display:none!important}.screen{padding:0;animation:none}.card{box-shadow:none;border:1px solid var(--line)}}.consent{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;color:var(--muted);cursor:pointer;text-align:left}.consent input{width:22px;height:22px;margin:0;flex-shrink:0;accent-color:var(--brand);cursor:pointer}.consent a{color:var(--ink-900);text-decoration:underline}.consent-hint,.pay-note{margin:0;font-size:12px;color:var(--muted);text-align:center}.card .consent{margin-top:8px}.card .pay-note{margin-top:10px}
