:root{--primary:#21654c;--secondary:#d9f382;--success:#19764b;--warning:#926114;--error:#b63838;--background:#f7f8f4;--surface:#fff;--text:#192b24;--muted:#617169;--border:#dde5dd}*{box-sizing:border-box}body{margin:0;color:var(--text);background:var(--background);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.6}a{color:inherit}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #c17d23;outline-offset:4px}[hidden]{display:none!important}.v-wrap{max-width:1160px;margin:auto;padding:0 24px}.v-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:86px;border-bottom:1px solid var(--border)}.v-brand{font-size:28px;font-weight:900;letter-spacing:-1.5px;text-decoration:none}.v-brand b{color:var(--primary)}.v-links,.v-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.v-links a{text-decoration:none;font-size:14px}.v-button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 22px;background:var(--primary);border:1px solid var(--primary);border-radius:12px;color:white;text-decoration:none;font-weight:700;cursor:pointer;line-height:1.4}.v-button:hover{filter:brightness(.93)}.v-button.secondary{background:transparent;color:var(--text);border-color:var(--border)}.v-button:disabled{opacity:.55;cursor:wait}.v-hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:72px;padding:86px 0}.v-kicker{text-transform:uppercase;letter-spacing:2px;font-size:12px;font-weight:800;color:var(--primary)}.v-hero h1{font-size:clamp(40px,5.3vw,66px);line-height:1.06;letter-spacing:-3px;margin:20px 0 26px;font-weight:800}.v-hero h1 em{font-style:normal;color:var(--primary)}.v-lead{color:var(--muted);font-size:18px;max-width:520px}.v-note{font-size:13px;color:var(--muted)}.v-hero .v-actions{margin:28px 0 22px}.v-scene{background:#e6eddf;border-radius:36px;min-height:490px;padding:30px;display:grid;place-items:center;position:relative}.v-phone{width:266px;border:7px solid #20372c;border-radius:37px;background:#f5f6f0;padding:20px 12px 24px;box-shadow:0 24px 45px #23432d25;transform:rotate(4deg)}.v-phone-top{font-size:11px;display:flex;justify-content:space-between;padding:0 5px 20px}.v-wallet{border-radius:22px;background:#285b46;color:white;padding:24px 20px}.v-wallet h3{font-size:21px;line-height:1.2;margin:20px 0}.v-wallet small{opacity:.8}.v-wallet strong{display:block;font-size:48px;line-height:1.2}.v-wallet hr{border:0;border-top:1px solid #ffffff40;margin:20px 0}.v-demo-qr{width:85px;height:85px;margin:20px auto 0;border:8px solid white;background:repeating-conic-gradient(#20372c 0% 25%,white 0% 50%) 0/12px 12px}.v-float{background:white;border:1px solid var(--border);border-radius:14px;padding:12px 18px;box-shadow:0 8px 20px #20372c12;font-size:13px;position:absolute;bottom:44px;left:-22px}.v-float strong{display:block}.v-section{padding:66px 0;border-top:1px solid var(--border)}.v-section h2,.v-heading{font-size:clamp(27px,3.5vw,40px);line-height:1.2;letter-spacing:-1.3px;font-weight:800;margin:12px 0 24px}.v-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.v-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.v-card{padding:26px;border:1px solid var(--border);border-radius:20px;background:var(--surface);min-width:0}.v-card h3{font-size:19px;margin:10px 0}.v-card p{color:var(--muted)}.v-number{font-size:13px;font-weight:800;background:#eaf1df;border-radius:10px;width:38px;height:38px;display:grid;place-items:center}.v-banner{background:var(--primary);color:white;border-radius:28px;padding:46px;margin:36px 0}.v-banner .v-button{background:var(--secondary);color:var(--text);border:0}.v-footer{border-top:1px solid var(--border);padding:28px 0;font-size:13px;color:var(--muted)}.v-form{max-width:600px;margin:42px auto}.v-form label{display:block;font-size:14px;font-weight:650;margin:14px 0 6px}.v-form input:not([type=checkbox]):not([type=color]),.v-form select,.v-form textarea,.v-input{display:block;width:100%;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:white;min-height:48px;color:var(--text)}.v-form input[type=color]{min-height:48px;width:80px}.v-form input[type=checkbox]{width:20px;height:20px;vertical-align:middle}.v-form .helptext{font-size:12px;color:var(--muted)}.errorlist{color:var(--error);font-size:14px;padding-left:20px}.v-message{padding:14px 18px;border:1px solid var(--border);background:#eaf2e7;border-radius:12px;margin:16px 0}.v-message.error{background:#fff0f0;color:var(--error)}.v-progress{width:100%;height:8px;accent-color:var(--primary)}.v-step-label{font-size:13px;color:var(--muted);margin:14px 0}.v-step{border:0;padding:0;margin:0}.v-step legend{font-size:28px;font-weight:800;margin:14px 0}.v-metric{font-size:34px;font-weight:800;display:block}.v-scroll{overflow:auto;max-width:100%}.v-table{width:100%;border-collapse:collapse;font-size:14px}.v-table td,.v-table th{padding:13px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}.v-empty{text-align:center;padding:32px}.v-qr{display:block;width:180px;height:180px;margin:22px auto}.v-customer{max-width:440px;margin:35px auto}.v-stack>*+*{margin-top:18px}.v-shell{max-width:1240px;margin:auto;display:grid;grid-template-columns:210px minmax(0,1fr);gap:32px;padding:30px 24px}.v-side nav{display:grid;gap:6px}.v-side a{padding:10px 14px;text-decoration:none;border-radius:10px}.v-side a[aria-current=page]{background:#e1ecd9;color:var(--primary);font-weight:800}.v-side small{display:block;color:var(--muted);margin:12px}.v-main{min-width:0}.v-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.v-top h1{font-size:27px;font-weight:800;line-height:1.2;margin:0}.v-skip{position:absolute;left:-999px}.v-skip:focus{left:10px;top:10px;background:white;padding:15px;z-index:999}.v-offline{background:#fff0cf;padding:12px;text-align:center}.v-form details{margin-top:20px}.v-form .v-actions{margin-top:25px}.v-form .v-button{margin-top:10px}.v-label{display:block;font-size:13px;color:var(--muted)}
@media(max-width:800px){.v-hero{gap:28px;padding:44px 0;grid-template-columns:1fr}.v-hero h1{letter-spacing:-2px}.v-scene{min-height:450px}.v-float{left:12px}.v-grid{grid-template-columns:1fr}.v-grid.two{grid-template-columns:1fr}.v-section{padding:40px 0}.v-links .optional{display:none}.v-nav{min-height:76px}.v-wrap{padding:0 20px}.v-shell{grid-template-columns:1fr;padding:20px;gap:20px}.v-side nav{display:flex;overflow:auto;white-space:nowrap}.v-side small{margin:0 12px}.v-top{align-items:flex-start}.v-banner{padding:28px}.v-form{margin:25px auto}.v-card{padding:20px}.v-nav .v-button{padding:10px 13px}.v-links{gap:10px}.v-brand{font-size:25px}}
.v-side{min-width:0}.v-shell{overflow-wrap:anywhere}.v-side nav{max-width:100%}
@media(prefers-reduced-motion:no-preference){.v-button{transition:filter .15s,transform .15s}.v-button:hover{transform:translateY(-1px)}}

/* Loyalty visual system: calm navy, mint accent, high contrast surfaces. */
:root{--primary:#123B5D;--secondary:#B8F2D0;--success:#147D64;--warning:#A66A00;--error:#B42318;--background:#F4F7FA;--surface:#FFFFFF;--text:#102A43;--muted:#627D98;--border:#D9E2EC}
body{background:linear-gradient(180deg,#f7fafc 0%,#eef4f7 100%);color:var(--text)}
.v-nav{min-height:78px;border-bottom-color:#d7e3ea}.v-brand{font-size:25px;letter-spacing:-1px;color:#102a43}.v-brand b{color:#40c995}
.v-button{background:var(--primary);border-color:var(--primary);border-radius:10px;box-shadow:0 5px 14px #123b5d1c;min-height:46px}.v-button.secondary{background:#fff;color:var(--primary);border-color:#b9cad7;box-shadow:none}.v-button:hover{filter:brightness(1.08)}
.v-card{border-color:#d9e2ec;border-radius:16px;box-shadow:0 10px 30px #102a4310}.v-message{border-color:#d4e7de;background:#effaf4}.v-message.error{background:#fff2f0}.v-input,.v-form input:not([type=checkbox]):not([type=color]),.v-form select,.v-form textarea{border-color:#c9d6df;border-radius:10px;background:#fff}.v-input:focus,.v-form input:focus,.v-form select:focus,.v-form textarea:focus{border-color:#40c995;box-shadow:0 0 0 3px #40c9952e;outline:0}
.v-wallet{background:linear-gradient(135deg,#123b5d,#1c6682);box-shadow:0 16px 30px #123b5d30}.v-shell{gap:28px}.v-side{border-right-color:#d9e2ec}.v-side nav a[aria-current=page]{background:#dff7eb;color:#123b5d;font-weight:800}
.v-metric{color:#123b5d}.v-kicker{color:#147d64}.v-section{border-top-color:#d9e2ec}.v-footer{border-top-color:#d9e2ec}
@media(max-width:800px){.v-nav{min-height:70px}.v-brand{font-size:23px}.v-card{border-radius:14px}.v-button{min-height:48px}.v-side{border-right:0}}
