.modal-input-wrap.has-prefix[data-v-06f27052]{background:#fff;border:1.5px solid #e9ecef;border-radius:12px;align-items:center;gap:.5rem;padding:0 1rem;display:flex}.modal-prefix[data-v-06f27052]{color:#1a1a1a;white-space:nowrap;border-right:1.5px solid #e9ecef;padding-right:.5rem;font-weight:600}.modal-input-wrap.has-prefix .input[data-v-06f27052]{box-shadow:none;border:none;padding-left:0}.modal-input-wrap.has-prefix .input[data-v-06f27052]:focus{background:0 0;outline:none}.modal-enter-active[data-v-06f27052],.modal-leave-active[data-v-06f27052]{transition:opacity .2s}.modal-enter-from[data-v-06f27052],.modal-leave-to[data-v-06f27052]{opacity:0}.notification-startup-prompt{z-index:1400;width:calc(100% - 24px);max-width:456px;position:fixed;top:16px;left:50%;transform:translate(-50%)}.notification-startup-card{background:color-mix(in srgb, var(--color-surface) 96%, white);border:1px solid color-mix(in srgb, var(--color-primary) 16%, var(--color-border));border-radius:20px;flex-direction:column;gap:14px;padding:16px;display:flex;box-shadow:0 18px 42px #0000002e}.notification-startup-copy{flex-direction:column;gap:4px;display:flex}.notification-startup-title{color:var(--color-text);font-size:15px;font-weight:800}.notification-startup-text{color:var(--color-text-muted);font-size:13px;line-height:1.5}.notification-startup-actions{justify-content:flex-end;gap:10px;display:flex}.qr-modal-wrap{-webkit-backdrop-filter:blur(12px);z-index:2000;color:#fff;opacity:0;background:#000c;flex-direction:column;transition:opacity .3s;display:none;position:fixed;inset:0;overflow:hidden}.qr-modal-wrap.active{opacity:1;display:flex}.scanner-header{z-index:10;justify-content:center;align-items:center;width:100%;padding:24px 24px 12px;display:flex}.scanner-header h2{text-align:center;margin:0;font-size:18px;font-weight:700}.scanner-instruction{z-index:10;justify-content:center;width:100%;padding:0 24px;display:flex}.scanner-container{flex:1;justify-content:center;align-items:center;padding:20px;display:flex;position:relative}.scanner-video-wrap{aspect-ratio:1;border-radius:24px;width:100%;max-width:320px;position:relative;overflow:hidden;box-shadow:0 0 40px #00000080}.scanner-video-wrap video{object-fit:cover;width:100%;height:100%}.scanner-overlay{pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scanner-target{width:240px;height:240px;position:relative}.scanner-corner{border:4px solid var(--color-primary);width:30px;height:30px;position:absolute}.corner-tl{border-bottom:none;border-right:none;border-radius:12px 0 0;top:0;left:0}.corner-tr{border-bottom:none;border-left:none;border-radius:0 12px 0 0;top:0;right:0}.corner-bl{border-top:none;border-right:none;border-radius:0 0 0 12px;bottom:0;left:0}.corner-br{border-top:none;border-left:none;border-radius:0 0 12px;bottom:0;right:0}.scanner-line{background:linear-gradient(90deg, transparent, var(--color-primary), transparent);width:100%;height:2px;box-shadow:0 0 10px var(--color-primary);animation:2.5s ease-in-out infinite scan-move;position:absolute;top:0;left:0}@keyframes scan-move{0%,to{transform:translateY(0)}50%{transform:translateY(240px)}}.scanner-footer{z-index:10;flex-direction:column;align-items:center;gap:20px;padding:32px 24px 48px;display:flex}#qr-status{text-align:center;color:#fffc;max-width:280px;font-size:15px;font-weight:500}.scanner-cancel-btn{background:var(--color-error,#dc2626);color:#fff;border:1px solid color-mix(in srgb, var(--color-error,#dc2626) 82%, black);cursor:pointer;box-shadow:0 8px 20px color-mix(in srgb, var(--color-error,#dc2626) 28%, transparent);border-radius:12px;padding:12px 36px;font-size:15px;font-weight:700;transition:all .2s}.scanner-cancel-btn:hover{background:color-mix(in srgb, var(--color-error,#dc2626) 88%, black);border-color:color-mix(in srgb, var(--color-error,#dc2626) 70%, black);transform:translateY(-1px)}.scanner-cancel-btn:active{transform:translateY(0)}:root{--color-primary:#7c3aed;--color-primary-rgb:124, 58, 237;--color-secondary:#ec4899;--color-gradient:linear-gradient(135deg, #7c3aed 0%, #ec4899 100%);--color-primary-light:color-mix(in srgb, var(--color-primary) 15%, white);--color-surface:#fff;--color-surface-elevated:#fff;--color-bg:color-mix(in srgb, var(--color-primary) 8%, white);--color-bg-alt:#f3f4f6;--color-text:#1a1a2e;--color-text-muted:#6b7280;--color-border:color-mix(in srgb, var(--color-primary) 16%, white);--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-focus-ring:color-mix(in srgb, var(--color-primary) 14%, transparent);--radius:12px;--radius-sm:6px;--shadow:0 4px 12px #7c3aed1f;--shadow-sm:0 2px 4px #7c3aed14;--bottom-nav-height:64px;--header-height:56px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;max-width:480px;margin:0 auto;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}button{font-family:inherit}button,a,[role=button],[tabindex]:not([tabindex="-1"]),.btn,.tab-pill,.stepper-btn,.scan-machine-btn,.back-btn,.faq-question,.filter-toggle-btn,.switch-btn,.type-btn,.header-search-btn,.compact-card,.branch-card,.news-card{-webkit-tap-highlight-color:transparent;touch-action:manipulation}:root[data-theme=dark]{--color-surface:#1c1c28;--color-surface-elevated:#222232;--color-bg:#12121a;--color-bg-alt:#222232;--color-bg-hover:#ffffff0d;--color-primary-light:color-mix(in srgb, var(--color-primary) 15%, #12121a);--color-text:#f3f4f6;--color-text-muted:#9ca3af;--color-border:#2d2d3e;--color-focus-ring:color-mix(in srgb, var(--color-primary) 30%, transparent);--shadow:0 4px 16px #00000080, 0 0 1px #7c3aed26;--shadow-sm:0 2px 4px #0000004d}:root[data-theme=dark] .input-readonly{color:var(--color-text-muted)!important;background-color:#222232!important;border-color:#333346!important}:root[data-theme=dark] .alert-error{color:#fca5a5;background:#ef444426;border:1px solid #ef44444d}:root[data-theme=dark] .alert-success{color:#6ee7b7;background:#10b98126;border:1px solid #10b9814d}:root[data-theme=dark] .shimmer{background:linear-gradient(90deg,#1f1f2e 25%,#2c2c3e 50%,#1f1f2e 75%) 0 0/200% 100%}:root[data-theme=dark] .badge-green{color:#34d399!important;background:#10b98126!important}:root[data-theme=dark] .badge-amber{color:#fbbf24!important;background:#f59e0b26!important}:root[data-theme=dark] .badge-red{color:#fca5a5!important;background:#ef444426!important}:root[data-theme=dark] .badge-blue{color:#60a5fa!important;background:#3b82f626!important}:root[data-theme=dark] .badge-purple{color:#a78bfa!important;background:#8b5cf626!important}.btn{border-radius:var(--radius);cursor:pointer;touch-action:manipulation;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:15px;font-weight:600;text-decoration:none;transition:opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-gradient);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9}.btn-ghost{background:var(--color-surface,#fff);color:var(--color-primary);border:1.5px solid var(--color-primary)}.btn-ghost:hover:not(:disabled){background:var(--color-primary-light)}.btn-danger{background:var(--color-error);color:#fff}.btn-block{width:100%}.btn-sm{padding:8px 14px;font-size:13px}.card{background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-green{color:#065f46;background:#d1fae5}.badge-amber{color:#92400e;background:#fef3c7}.badge-red{color:#991b1b;background:#fee2e2}.badge-blue{color:#1e40af;background:#dbeafe}.badge-purple{color:#6b21a8;background:#f3e8ff}.input{border:1.5px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:var(--color-surface);outline:none;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.input:focus{border-color:var(--color-primary)}select.input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}.input::placeholder{color:var(--color-text-muted)}.input.error{border-color:var(--color-error)}.input-group{align-items:stretch;gap:8px;display:flex}.input-group .input{flex:1}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:13px;font-weight:600}.form-error{color:var(--color-error);margin-top:4px;font-size:13px}.tab-group{flex-wrap:wrap;gap:8px;display:flex}.tab-pill{border:1.5px solid var(--color-border);cursor:pointer;background:var(--color-surface);color:var(--color-text);-webkit-user-select:none;user-select:none;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.tab-pill:hover{border-color:var(--color-primary)}.tab-pill.active{background:var(--color-gradient);border-color:var(--color-primary);color:#fff}.bottom-nav{width:100%;max-width:480px;height:var(--bottom-nav-height);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:100;align-items:stretch;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{color:var(--color-text-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;text-decoration:none;transition:color .15s,font-weight .15s;display:flex}.bottom-nav a.active,.bottom-nav a.router-link-active,.bottom-nav a.router-link-exact-active,.bottom-nav a:hover{color:var(--color-primary)}.bottom-nav a.active,.bottom-nav a.router-link-active,.bottom-nav a.router-link-exact-active{font-weight:700}.bottom-nav svg{stroke:currentColor;fill:none;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.scan-machine-dock{z-index:120;width:100%;max-width:480px;padding:24px 24px calc(24px + env(safe-area-inset-bottom));background:var(--color-surface);border-radius:32px 32px 0 0;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -12px 32px #0000002e}.scan-machine-btn{background:var(--color-gradient);color:#fff;cursor:pointer;border:none;border-radius:16px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:58px;font-size:16px;font-weight:800;transition:transform .1s;display:flex}.scan-machine-btn:active{transform:scale(.98)}.scan-machine-btn svg{flex-shrink:0;width:24px;height:24px}.shimmer{border-radius:var(--radius-sm);background:linear-gradient(90deg,#e5e7eb 25%,#f3f4f6 50%,#e5e7eb 75%) 0 0/200% 100%;animation:1.4s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-block{height:16px;margin-bottom:8px}.skeleton-block.tall{height:48px}.skeleton-block.short{width:60%}.banner{background:var(--color-primary-light);border:1px solid color-mix(in srgb, var(--color-primary) 30%, white);border-radius:var(--radius);flex-direction:column;gap:10px;padding:14px 16px;display:flex}.banner-row{align-items:center;gap:8px;display:flex}.empty-state{text-align:center;color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:48px 24px;display:flex}.empty-state svg{width:48px;height:48px;stroke:var(--color-border);fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.empty-state p{max-width:260px;font-size:15px}.page-header{padding-top:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;backface-visibility:hidden;align-items:center;gap:12px;padding-bottom:16px;padding-left:16px;padding-right:16px;display:flex;position:sticky;top:-1px;transform:translateZ(0)}.page-header .back-btn{cursor:pointer;color:var(--color-text);border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:6px;transition:background .15s;display:flex}.page-header .back-btn:hover{background:var(--color-bg)}.page-header .back-btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.page-header h1{flex:1;font-size:17px;font-weight:700}.page-content{padding:16px;padding-bottom:calc(var(--bottom-nav-height) + 16px)}.page-content-with-dock{padding-bottom:calc(120px + env(safe-area-inset-bottom))}.outlet-logo{object-fit:cover;background:var(--color-primary-light);border-radius:10px;width:40px;height:40px}.outlet-logo-initials{background:var(--color-gradient);color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:700;display:flex}.divider{background:var(--color-border);height:1px;margin:16px 0}.spinner{border:4px solid var(--color-border);border-top:4px solid var(--color-primary);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{z-index:3000;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0;transform:translateZ(0)}.modal-box{background:var(--color-surface);border-radius:var(--radius);width:100%;max-width:400px;padding:24px;box-shadow:0 10px 40px #0003}.modal-title{color:var(--color-text);margin-bottom:12px;font-size:18px;font-weight:700}.modal-message{color:var(--color-text-muted);margin-bottom:24px;font-size:15px;line-height:1.5}.modal-input-wrap{margin-bottom:24px}.modal-footer{justify-content:flex-end;gap:12px;display:flex}.modal-footer .btn{flex:1}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:14px}.alert-error{color:#991b1b;background:#fee2e2;border:1px solid #fca5a5}.alert-success{color:#065f46;background:#d1fae5;border:1px solid #6ee7b7}:root[data-theme=dark] .card{border:1px solid #ffffff0a}:root[data-theme=dark] .bottom-nav{border-top-color:#ffffff0f;box-shadow:0 -1px #ffffff0a}:root[data-theme=dark] .scan-machine-dock{box-shadow:0 -8px 32px #0006}:root[data-theme=dark] .modal-overlay{background:#000000a6}:root[data-theme=dark] .modal-box{border:1px solid #ffffff0f;box-shadow:0 20px 50px #00000080}:root[data-theme=dark] .banner{border-color:color-mix(in srgb, var(--color-primary) 30%, transparent)}:root[data-theme=dark] .page-header{border-bottom-color:#ffffff0f}.machine-header{padding-top:16px;padding-top:calc(16px + env(safe-area-inset-top,0px));background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:100;backface-visibility:hidden;align-items:center;gap:12px;padding-bottom:16px;padding-left:16px;padding-right:16px;display:flex;position:sticky;top:-1px;transform:translateZ(0)}.machine-header-logo{object-fit:cover;border-radius:10px;flex-shrink:0;width:40px;height:40px}.machine-header-info{flex:1;min-width:0}.machine-header-outlet{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.machine-header-title{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;font-size:17px;font-weight:700;overflow:hidden}.machine-header-back{cursor:pointer;color:var(--color-text-muted);border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;align-items:center;padding:8px;transition:background .15s;display:flex}.machine-header-back:hover{background:var(--color-bg)}.machine-header-back svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.machine-row{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.machine-row-left{align-items:center;gap:8px;display:flex}.machine-row-label{color:var(--color-text);font-size:15px;font-weight:700}.machine-row-capacity{color:var(--color-text-muted);font-size:13px}.amount-picker{text-align:center;background:var(--color-bg);padding:24px 16px 20px}.amount-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin-bottom:16px;font-size:12px;font-weight:700}.amount-stepper{justify-content:center;align-items:center;gap:16px;margin-bottom:10px;display:flex}.stepper-btn{touch-action:manipulation;border:2px solid var(--color-primary);background:var(--color-surface);width:48px;height:48px;color:var(--color-primary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:24px;font-weight:300;line-height:1;transition:background .15s,color .15s;display:flex}.stepper-btn:hover{background:var(--color-primary);color:#fff}.stepper-btn:disabled{border-color:var(--color-border);color:var(--color-text-muted);cursor:not-allowed}.stepper-btn:disabled:hover{background:var(--color-surface);color:var(--color-text-muted)}.amount-display{color:var(--color-primary);letter-spacing:-.5px;min-width:140px;font-size:36px;font-weight:800}.amount-time{color:var(--color-text);margin-bottom:4px;font-size:20px;font-weight:700}.amount-hint{color:var(--color-text-muted);font-size:12px}.config-section{padding:0 16px 4px}.config-option{border-bottom:1px solid var(--color-border);text-align:center;flex-direction:column;align-items:center;padding:14px 0;display:flex}.config-option:last-child{border-bottom:none}.config-option-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:700}.config-option-tabs{justify-content:center}.price-section{background:var(--color-surface);border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.price-row{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.price-row:last-child{border-bottom:none}.price-row-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-size:12px;font-weight:700}.price-row-value{color:var(--color-text);font-size:18px;font-weight:700}.price-row-value.discount{color:var(--color-success)}.price-row.total{background:var(--color-bg)}.price-row.total .price-row-label{font-size:13px}.price-row.total .price-row-value{color:var(--color-primary);font-size:24px}.voucher-row{border-bottom:1px solid var(--color-border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.voucher-feedback{border-radius:var(--radius-sm);padding:6px 10px;font-size:13px}.voucher-feedback.error{color:#991b1b;background:#fee2e2}.voucher-feedback.success{color:#065f46;background:#d1fae5}.auth-section{padding:16px 16px 32px}.auth-banner{background:var(--color-primary-light);border:1px solid color-mix(in srgb, var(--color-primary) 30%, white);border-radius:var(--radius);padding:16px}.auth-banner p{color:var(--color-text);margin-bottom:12px;font-size:14px;font-weight:500}.auth-banner-actions{gap:8px;display:flex}.wallet-row{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.wallet-row-info{flex-direction:column;flex:1;gap:2px;display:flex}.wallet-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-size:11px;font-weight:700}.wallet-value{color:var(--color-primary);font-size:15px;font-weight:700}.wallet-divider{background:var(--color-border);width:1px;height:32px}.pay-buttons{flex-direction:column;gap:10px;display:flex}.machine-skeleton{padding:16px}.skeleton-header{align-items:center;gap:12px;margin-bottom:20px;display:flex}.skeleton-logo{border-radius:10px;flex-shrink:0;width:40px;height:40px}.skeleton-title-group{flex-direction:column;flex:1;gap:6px;display:flex}.error-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:60vh;padding:32px 24px;display:flex}.error-page svg{width:56px;height:56px;stroke:var(--color-error);fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.error-page h2{color:var(--color-text);font-size:18px;font-weight:700}.error-page p{color:var(--color-text-muted);max-width:280px;font-size:14px}:root[data-theme=dark] .voucher-feedback.error{color:#fca5a5;background:#ef444426}:root[data-theme=dark] .voucher-feedback.success{color:#6ee7b7;background:#10b98126}:root[data-theme=dark] .auth-banner{border-color:color-mix(in srgb, var(--color-primary) 30%, transparent)}
