:root{
  --bg:#070503;--panel:#110c07;--panel-2:#18100a;--panel-3:#22160c;--text:#f7efe2;--muted:#b8a98f;
  --gold:#d7a53a;--gold-2:#ffe08a;--gold-3:#b77a18;--green:#25c26e;--red:#ef4444;--warning:#f59e0b;
  --border:rgba(215,165,58,.24);--shadow:0 24px 80px rgba(0,0,0,.45);--radius:22px;
  --font-body:"Cormorant Garamond", Georgia, serif;--font-title:"Cinzel", Georgia, serif;--font-button:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}html{min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font-body);scroll-behavior:smooth;scrollbar-color:rgba(215,165,58,.7) rgba(255,255,255,.04);scrollbar-width:thin}body{margin:0;min-height:100%;background:radial-gradient(circle at 22% 0%, rgba(215,165,58,.13), transparent 34%),radial-gradient(circle at 90% 12%, rgba(255,224,138,.10), transparent 24%),linear-gradient(180deg,#050403 0%,#0a0704 46%,#050403 100%);color:var(--text)}
::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:999px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#8c611d,#ffe08a,#8c611d);border-radius:999px;border:2px solid rgba(8,6,4,.9)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#b77a18,#fff0b0,#b77a18)}
a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,select,textarea{font:inherit}.container{width:min(1160px,calc(100% - 32px));margin-inline:auto}.app-shell{min-height:100dvh;display:flex;flex-direction:column}
.header{position:sticky;top:0;z-index:40;background:rgba(8,6,4,.84);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.nav{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-logo{width:45px;height:45px;border-radius:50%;object-fit:cover;border:1px solid rgba(255,224,138,.4);box-shadow:0 0 28px rgba(215,165,58,.18)}.brand-text{display:flex;flex-direction:column;align-items:flex-start;min-width:0}.brand-title{font-family:var(--font-title);font-size:19px;letter-spacing:.08em;font-weight:800;text-transform:uppercase;color:var(--gold-2);line-height:1.08;display:block}.brand-subtitle{font-family:var(--font-button);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);margin-top:4px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}.nav-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}
.icon{width:19px;height:19px;display:inline-block;vertical-align:-4px;flex:0 0 auto}.icon-lg{width:28px;height:28px}.cup-icon{width:24px;height:24px;display:block}.stat-icon{width:30px;height:30px;color:var(--gold-2);opacity:.94}.bottom-icon{width:21px;height:21px;margin:0 auto 3px;display:block}.tiny-icon{width:15px;height:15px}
.btn{font-family:var(--font-button);appearance:none;border:1px solid var(--border);background:rgba(255,255,255,.03);color:var(--text);border-radius:14px;padding:11px 15px;font-weight:800;font-size:13px;letter-spacing:.02em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;transition:transform .18s ease,border-color .18s ease,background-position .35s ease,box-shadow .18s ease;text-align:center}.btn:hover{transform:translateY(-1px);border-color:rgba(255,224,138,.55);background:rgba(215,165,58,.08)}.btn-primary{border-color:rgba(215,165,58,.72);background:linear-gradient(115deg,#b77a18 0%,#ffe08a 42%,#e0ae45 52%,#9f6816 100%);background-size:220% 100%;background-position:left center;color:#120b05;box-shadow:0 12px 34px rgba(215,165,58,.22)}.btn-primary:hover{background-position:right center;background-color:transparent;color:#120b05;box-shadow:0 16px 42px rgba(215,165,58,.28)}.btn-danger{border-color:rgba(239,68,68,.35);color:#fecaca;background:rgba(239,68,68,.08)}.btn-success{border-color:rgba(37,194,110,.35);color:#bbf7d0;background:rgba(37,194,110,.08)}.btn-ghost{background:transparent}.btn-sm{padding:8px 11px;min-height:34px;border-radius:11px;font-size:12px}.main{flex:1;padding:26px 0 92px}.actions{display:flex;gap:10px;flex-wrap:wrap}
.auth-wrap{min-height:calc(100dvh - 74px);display:grid;place-items:center;padding:28px 0}.auth-card{width:min(520px,100%);border:1px solid var(--border);background:linear-gradient(180deg,rgba(24,16,10,.96),rgba(10,7,4,.96));border-radius:28px;box-shadow:var(--shadow);padding:28px;position:relative;overflow:hidden}.auth-card:before,.premium-card:before{content:"";position:absolute;inset:-1px;background:linear-gradient(135deg,rgba(255,224,138,.16),transparent 35%,rgba(215,165,58,.10));pointer-events:none;border-radius:inherit}.auth-logo{width:92px;height:92px;border-radius:50%;object-fit:cover;margin:0 auto 18px;border:1px solid rgba(255,224,138,.35)}.eyebrow{font-family:var(--font-button);font-size:10px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold);font-weight:900;margin-bottom:8px}.h1{font-family:var(--font-title);font-size:clamp(31px,5.4vw,54px);line-height:1;margin:0 0 14px;letter-spacing:.01em}.h2{font-family:var(--font-title);font-size:clamp(24px,3.3vw,35px);line-height:1.08;margin:0 0 14px}.h3{font-family:var(--font-button);font-size:18px;margin:0 0 8px;font-weight:900}.lead{color:var(--muted);line-height:1.65;margin:0 0 22px;font-size:17px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-5{grid-template-columns:repeat(5,minmax(0,1fr))}.card,.premium-card{border:1px solid var(--border);background:linear-gradient(180deg,rgba(24,16,10,.86),rgba(12,8,5,.86));border-radius:var(--radius);box-shadow:0 16px 60px rgba(0,0,0,.22);padding:20px;position:relative;overflow:hidden}.card-muted{background:rgba(255,255,255,.025)}.stat{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.stat-number{font-family:var(--font-title);font-size:31px;font-weight:900;color:var(--gold-2);line-height:1}.stat-label{font-family:var(--font-button);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:800}.form{display:grid;gap:14px}.form-row{display:grid;gap:8px}label{font-family:var(--font-button);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:900}input,select,textarea{width:100%;border:1px solid rgba(215,165,58,.22);background:rgba(0,0,0,.34);color:var(--text);border-radius:14px;padding:13px 14px;outline:none;transition:.18s ease;font-family:var(--font-button);font-size:14px}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:rgba(255,224,138,.7);box-shadow:0 0 0 4px rgba(215,165,58,.10)}.help{font-family:var(--font-button);font-size:12px;color:var(--muted);line-height:1.5}.divider{height:1px;background:var(--border);margin:18px 0}.tabs{display:flex;gap:8px;background:rgba(0,0,0,.20);border:1px solid var(--border);padding:6px;border-radius:16px;margin-bottom:18px}.tab{font-family:var(--font-button);flex:1;padding:11px;border-radius:12px;text-align:center;font-size:13px;font-weight:900;color:var(--muted);cursor:pointer}.tab.is-active{background:rgba(215,165,58,.13);color:var(--gold-2)}.hidden{display:none!important}.text-muted{color:var(--muted)}.text-gold{color:var(--gold-2)}.text-green{color:#bbf7d0}.text-red{color:#fecaca}.mb-0{margin-bottom:0}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mt-5{margin-top:22px}.center{text-align:center}
.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:18px;background:rgba(0,0,0,.18);max-width:100%}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:13px 14px;border-bottom:1px solid rgba(215,165,58,.13);text-align:left;font-family:var(--font-button);font-size:13px;vertical-align:middle}th{color:var(--gold-2);font-size:10px;text-transform:uppercase;letter-spacing:.13em;background:rgba(215,165,58,.06)}tr:last-child td{border-bottom:0}.table-compact table{min-width:560px}.badge{font-family:var(--font-button);display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:rgba(255,255,255,.03)}.badge-success{color:#bbf7d0;border-color:rgba(37,194,110,.3);background:rgba(37,194,110,.08)}.badge-warning{color:#fde68a;border-color:rgba(245,158,11,.3);background:rgba(245,158,11,.08)}.badge-danger{color:#fecaca;border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.08)}.flash{font-family:var(--font-button);border:1px solid var(--border);border-radius:15px;padding:12px 14px;margin-bottom:14px;background:rgba(215,165,58,.08);color:var(--text);font-size:14px}.flash.success{border-color:rgba(37,194,110,.35);background:rgba(37,194,110,.08)}.flash.error{border-color:rgba(239,68,68,.35);background:rgba(239,68,68,.08)}.flash.warning{border-color:rgba(245,158,11,.35);background:rgba(245,158,11,.08)}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:50;background:rgba(8,6,4,.92);border-top:1px solid var(--border);backdrop-filter:blur(18px);padding:8px max(12px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-right))}.bottom-nav-inner{width:min(760px,100%);margin:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.bottom-link{font-family:var(--font-button);border-radius:14px;padding:8px 4px;text-align:center;color:var(--muted);font-size:10px;font-weight:900}.bottom-link.is-active{background:rgba(215,165,58,.12);color:var(--gold-2)}
.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-top:12px}.stamp-cup{height:46px;border:1px solid rgba(215,165,58,.20);border-radius:15px;display:grid;place-items:center;background:rgba(255,255,255,.035);opacity:.42;color:var(--muted);transition:.2s ease}.stamp-cup.is-filled{background:linear-gradient(135deg,rgba(37,194,110,.22),rgba(215,165,58,.08));border-color:rgba(37,194,110,.58);color:#86efac;opacity:1;box-shadow:0 0 22px rgba(37,194,110,.14)}.qr-card{display:grid;place-items:center;gap:12px}.qr-box{width:min(260px,100%);aspect-ratio:1;background:#fff;border-radius:20px;padding:14px;display:grid;place-items:center;box-shadow:0 20px 70px rgba(0,0,0,.35)}.qr-box canvas,.qr-box img{width:100%!important;height:100%!important}.code-pill{font-family:var(--font-button);font-size:12px;font-weight:900;letter-spacing:.15em;color:#160f08;background:linear-gradient(135deg,#fff4c4,#d7a53a);border-radius:999px;padding:8px 12px}.scan-box{border:1px dashed rgba(255,224,138,.35);border-radius:22px;padding:12px;background:rgba(0,0,0,.18);overflow:hidden}.scan-video{width:100%;border-radius:16px;background:#000;min-height:280px;object-fit:cover}.scan-frame{position:relative}.scan-frame:after{content:"";position:absolute;inset:18%;border:2px solid rgba(255,224,138,.85);border-radius:20px;box-shadow:0 0 0 9999px rgba(0,0,0,.22);pointer-events:none}.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;align-items:center}.hero-phone{border:1px solid var(--border);border-radius:34px;background:linear-gradient(180deg,#1c120a,#080604);padding:20px;box-shadow:var(--shadow)}.mini-logo{width:38px;height:38px;border-radius:50%;object-fit:cover}.list{display:grid;gap:10px}.list-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid rgba(215,165,58,.14);border-radius:16px;padding:12px;background:rgba(255,255,255,.025)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.72);display:none;align-items:center;justify-content:center;padding:18px}.modal-backdrop.is-open{display:flex}.modal{width:min(440px,100%);border:1px solid var(--border);background:linear-gradient(180deg,#1b120b,#090604);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.install-card{display:none}.install-card.is-visible{display:block}.map-placeholder{min-height:210px;border-radius:20px;border:1px solid var(--border);background:radial-gradient(circle at 50% 50%, rgba(215,165,58,.18), transparent 34%), linear-gradient(135deg,#111,#21150b);display:grid;place-items:center;text-align:center;padding:24px;color:var(--muted)}.map-box{min-height:340px;border-radius:20px;overflow:hidden;border:1px solid var(--border);background:#111}.chart-bars{display:grid;gap:8px}.bar-row{display:grid;grid-template-columns:90px 1fr 48px;gap:10px;align-items:center;font-family:var(--font-button);font-size:12px}.bar-track{height:9px;background:rgba(255,255,255,.06);border-radius:999px;overflow:hidden}.bar-fill{height:100%;background:linear-gradient(90deg,#b77a18,#ffe08a);border-radius:999px}.loading{opacity:.6;pointer-events:none}.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(16px);z-index:110;opacity:0;transition:.22s ease;max-width:min(520px,calc(100% - 24px));padding:12px 14px;border-radius:14px;border:1px solid var(--border);background:linear-gradient(180deg,#1b120b,#090604);box-shadow:var(--shadow);font-family:var(--font-button);font-size:13px}.toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}
@media (max-width:920px){.grid-5,.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}.nav-actions .hide-sm{display:none}.bottom-nav-inner{grid-template-columns:repeat(5,1fr)}}
@media (max-width:640px){.container{width:min(100% - 22px,1160px)}.main{padding-top:18px}.auth-card{padding:20px;border-radius:24px}.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}.brand-title{font-size:16px}.brand-subtitle{max-width:155px;font-size:9px}.h1{font-size:34px}.h2{font-size:26px}.card,.premium-card{padding:16px;border-radius:18px}.lead{font-size:16px}.stat-number{font-size:28px}.stamp-cup{height:42px}.bottom-link{font-size:9px}.nav{min-height:66px}.brand-logo{width:40px;height:40px}.main{padding-bottom:94px}.nav-actions{gap:6px}.btn{padding:10px 12px;font-size:12px}.table-wrap{border-radius:14px}}
@media (display-mode:standalone){.pwa-only-hide{display:none!important}}
/* Lubessi Club V4 refinements */
.app-preloader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,rgba(215,165,58,.15),transparent 32%),#050403;transition:opacity .42s ease,visibility .42s ease}.app-preloader img{width:108px;height:108px;border-radius:50%;object-fit:cover;animation:lubessiPulse 1.35s ease-in-out infinite;box-shadow:0 0 80px rgba(215,165,58,.25)}.app-preloader.is-hidden{opacity:0;visibility:hidden}@keyframes lubessiPulse{0%,100%{transform:scale(.94);filter:drop-shadow(0 0 0 rgba(255,224,138,.0))}50%{transform:scale(1.08);filter:drop-shadow(0 0 28px rgba(255,224,138,.34))}}
.brand-text{display:flex!important;flex-direction:column!important;align-items:flex-start!important}.brand-subtitle{display:block!important;white-space:nowrap!important;clear:both}.h1{font-size:clamp(28px,4.7vw,48px)}.h2{font-size:clamp(22px,3vw,31px)}
.btn.btn-primary:hover,.btn.btn-primary:focus{background:linear-gradient(115deg,#b77a18 0%,#ffe08a 42%,#e0ae45 52%,#9f6816 100%)!important;background-size:220% 100%!important;background-position:right center!important;color:#120b05!important}.btn:not(.btn-primary):hover{background:rgba(215,165,58,.08);color:var(--text)}
.tabs-premium{gap:10px;padding:6px;background:rgba(0,0,0,.38);box-shadow:inset 0 0 0 1px rgba(255,224,138,.08)}.tabs-premium .tab{border:1px solid rgba(215,165,58,.28);background:rgba(0,0,0,.28);color:var(--gold-2);transition:.2s ease}.tabs-premium .tab.is-active{background:linear-gradient(115deg,#b77a18,#ffe08a,#d7a53a);color:#120b05;box-shadow:0 10px 26px rgba(215,165,58,.18)}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-2) 50%),linear-gradient(135deg,var(--gold-2) 50%,transparent 50%),linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.34));background-position:calc(100% - 20px) 52%,calc(100% - 14px) 52%,0 0;background-size:6px 6px,6px 6px,100% 100%;background-repeat:no-repeat;padding-right:42px}select option{background:#120c07;color:#fff3cf}.link-button{appearance:none;border:0;background:transparent;color:var(--gold-2);font-family:var(--font-button);font-size:13px;font-weight:900;cursor:pointer;text-decoration:none}.link-button:hover{text-decoration:underline}.stamp-grid{gap:10px}.stamp-cup{height:44px;border-radius:999px;border-color:rgba(215,165,58,.22);background:radial-gradient(circle at 30% 20%,rgba(255,224,138,.1),rgba(255,255,255,.025));box-shadow:inset 0 0 0 1px rgba(255,255,255,.03)}.stamp-cup.is-filled{background:radial-gradient(circle at 35% 24%,rgba(255,255,255,.2),rgba(37,194,110,.2) 48%,rgba(3,99,50,.36));border-color:rgba(37,194,110,.66)}.cup-icon{width:22px;height:22px}.stat-number{font-size:28px;margin-top:5px}.badge{white-space:nowrap}.table-wrap table td,.table-wrap table th{white-space:nowrap}.toast-wrap{position:fixed;right:18px;top:88px;z-index:120;display:grid;gap:10px;width:min(380px,calc(100% - 36px))}.toast{position:static;max-width:none;transform:translateX(18px);opacity:0;border-radius:16px}.toast.is-visible{transform:translateX(0);opacity:1}.toast-success{border-color:rgba(37,194,110,.35);background:linear-gradient(180deg,rgba(11,55,32,.98),rgba(8,20,13,.98))}.toast-error{border-color:rgba(239,68,68,.38);background:linear-gradient(180deg,rgba(76,21,16,.98),rgba(28,9,7,.98))}.toast-warning{border-color:rgba(245,158,11,.4);background:linear-gradient(180deg,rgba(72,43,10,.98),rgba(23,14,5,.98))}.notification-btn{position:relative}.notif-badge{position:absolute;top:-6px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-family:var(--font-button);font-size:10px;font-weight:900;display:none;place-items:center}.notif-badge.is-visible{display:grid}.site-footer{border-top:1px solid rgba(215,165,58,.14);padding:18px 0 calc(88px + env(safe-area-inset-bottom));text-align:center;color:var(--muted);font-family:var(--font-button);font-size:12px}.site-footer a{color:var(--gold-2);font-weight:800}.scan-video{aspect-ratio:1/1;min-height:0;height:auto}.scan-box{max-width:420px;margin-inline:auto;width:100%}.code-pill{user-select:all}.form-hint{font-family:var(--font-button);font-size:11px;color:var(--muted)}
@media(max-width:640px){.h1{font-size:31px}.h2{font-size:24px}.stat-number{font-size:26px}.toast-wrap{top:74px;right:11px;width:calc(100% - 22px)}.site-footer{font-size:11px}.tabs-premium .tab{font-size:12px}.stamp-cup{height:40px}.table-wrap table td,.table-wrap table th{font-size:12px;padding:11px 12px}.btn{border-radius:13px}}

/* Lubessi Club V4 refinements */
.main{padding-top:32px}.auth-card{width:min(480px,92%)}
.btn-primary,.btn-primary:hover,.btn-primary:focus{background-image:linear-gradient(115deg,#b77a18 0%,#ffe08a 42%,#e0ae45 52%,#9f6816 100%)!important;background-size:220% 100%;color:#120b05!important}.btn-primary:hover{background-position:right center!important;background-color:transparent!important}.btn-primary:active{transform:translateY(0) scale(.99)}
input,select,textarea{font-family:var(--font-button);font-size:16px}input::placeholder,textarea::placeholder{color:rgba(248,232,195,.46)}input[name="username"]{text-transform:lowercase}input[type="password"]{letter-spacing:.07em}
select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--gold-2) 50%),linear-gradient(135deg,var(--gold-2) 50%,transparent 50%),linear-gradient(180deg,rgba(0,0,0,.34),rgba(0,0,0,.34));background-position:calc(100% - 21px) 52%,calc(100% - 14px) 52%,0 0;background-size:7px 7px,7px 7px,100% 100%;background-repeat:no-repeat;padding-right:46px}select option{background:#120c07;color:#fff3cf}
.tabs-premium{padding:7px;border-radius:18px;background:rgba(0,0,0,.24)}.tabs-premium .tab{border:1px solid rgba(215,165,58,.28);background:rgba(0,0,0,.24);color:var(--muted);transition:.2s ease}.tabs-premium .tab.is-active{background:linear-gradient(115deg,#b77a18,#ffe08a 44%,#d7a53a);color:#120b05;border-color:rgba(255,224,138,.66);box-shadow:0 10px 28px rgba(215,165,58,.18)}
.custom-select{position:relative;font-family:var(--font-button)}.custom-select-native{position:absolute!important;opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important}.custom-select-toggle{width:100%;min-height:48px;border:1px solid rgba(215,165,58,.35);background:linear-gradient(180deg,rgba(8,6,4,.96),rgba(16,10,5,.96));color:var(--text);border-radius:16px;padding:13px 44px 13px 14px;text-align:left;font-size:16px;font-weight:750;position:relative;cursor:pointer}.custom-select-toggle:after{content:"";position:absolute;right:16px;top:50%;transform:translateY(-45%);border-left:6px solid transparent;border-right:6px solid transparent;border-top:7px solid var(--gold-2)}.custom-select.is-open .custom-select-toggle{border-color:rgba(255,224,138,.76);box-shadow:0 0 0 4px rgba(215,165,58,.11)}.custom-select-menu{position:absolute;z-index:80;top:calc(100% + 7px);left:0;right:0;max-height:230px;overflow:auto;border:1px solid rgba(215,165,58,.38);border-radius:16px;background:#120c07;box-shadow:0 22px 60px rgba(0,0,0,.45);padding:6px;display:none}.custom-select.is-open .custom-select-menu{display:block}.custom-select-option{padding:11px 12px;border-radius:12px;color:var(--text);cursor:pointer;font-weight:750}.custom-select-option:hover,.custom-select-option.is-selected{background:linear-gradient(115deg,rgba(183,122,24,.95),rgba(255,224,138,.84));color:#120b05}.custom-select-option.is-disabled{opacity:.45;pointer-events:none}.form-row .custom-select{width:100%}
.link-button{display:inline-flex;align-items:center;justify-content:center;margin-inline:auto;padding:0;border:0;background:transparent!important;color:var(--gold-2);font-family:var(--font-button);font-size:13px;font-weight:900;cursor:pointer;text-decoration:none}.link-button:hover{text-decoration:underline;color:#fff1ad}
.stamp-grid{justify-content:center;max-width:300px;margin-inline:auto;margin-top:16px}.stamp-cup{width:42px;height:42px;border-radius:999px}.stamp-cup .cup-icon{width:22px;height:22px}.stat-number{font-family:var(--font-button);font-size:26px;margin-top:10px;line-height:1.05}.progress-badge{margin-top:10px;display:inline-flex}.progress-badge span + span{margin-left:4px}
.table-wrap td.actions{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;min-width:max-content}.table-wrap td.actions form{display:inline-flex;margin:0}.table-wrap .btn{white-space:nowrap}.badge{white-space:nowrap}.table-wrap table td,.table-wrap table th{white-space:nowrap}.table-wrap td strong{white-space:nowrap}.list-item.notification-item{align-items:stretch}.notification-content{display:flex;flex-direction:column;width:100%;gap:8px}.notification-date{margin-top:10px;font-family:var(--font-button);font-size:12px;color:rgba(248,232,195,.62)}
.app-preloader{background:radial-gradient(circle at 50% 42%,rgba(215,165,58,.18),transparent 34%),#050403}.app-preloader img.preloader-logo{width:150px;height:auto;border-radius:0;object-fit:contain;animation:lubessiPulse 1.35s ease-in-out infinite;box-shadow:none;filter:drop-shadow(0 0 32px rgba(215,165,58,.20))}.brand-logo{object-fit:contain;border-radius:0;border:0;box-shadow:none}.auth-logo{object-fit:contain;border-radius:0;border:0;box-shadow:none;background:transparent}.mini-logo{object-fit:contain;border-radius:0}.qr-card .auth-logo{width:96px;height:auto}.scan-permission{border:1px solid rgba(215,165,58,.25);border-radius:18px;padding:14px;background:rgba(215,165,58,.05);margin-bottom:14px}.scan-video video{object-fit:cover!important;border-radius:16px}.manual-token-box{display:none}.site-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.help .date-line{display:block;margin-top:12px}.client-scope-note{border:1px solid rgba(215,165,58,.18);border-radius:16px;padding:12px;background:rgba(215,165,58,.05)}
@media(max-width:640px){.main{padding-top:32px;padding-bottom:32px}.h1{font-size:28px}.h2{font-size:22px}.auth-wrap{padding:22px 0}.auth-card{padding:22px}.lead{font-size:16px}.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}.nav{min-height:70px}.brand-title{font-size:16px}.brand-subtitle{font-size:9px;max-width:190px}.btn{font-size:13px}.stamp-cup{width:39px;height:39px}.stat-number{font-size:24px}.app-preloader img.preloader-logo{width:138px}.custom-select-toggle{font-size:16px}.table-wrap td.actions{gap:7px}.main .container{width:min(100% - 24px,1160px)}}

/* Lubessi Club V4.2 refinements */
.auth-card{width:min(480px,92%)!important}.main{padding-top:32px!important;padding-bottom:32px!important}
.toast-wrap{top:94px!important}.toast{margin-top:6px}
.client-scope-text{border:0!important;background:transparent!important;padding:0!important;margin-top:6px!important}
.client-scope-note{border:0!important;background:transparent!important;padding:0!important;margin-top:6px!important}
.table-wrap{overflow:auto;max-height:none}.table-wrap table{min-width:max-content}.table-compact td,.table-compact th{padding-top:10px!important;padding-bottom:10px!important}.table-wrap td{vertical-align:middle!important}.table-wrap td.actions{display:flex!important;flex-wrap:nowrap!important;align-items:center!important;gap:6px!important;min-width:max-content!important}.table-wrap td.actions form{display:inline-flex!important;margin:0!important}.actions.actions-tight{gap:8px}.nowrap{white-space:nowrap!important}
.custom-select{position:relative;z-index:20}.custom-select.is-open{z-index:99999}.custom-select-menu{position:fixed!important;z-index:999999!important;overflow:auto!important}.card,.table-wrap{overflow:visible}.card:has(.table-wrap){overflow:hidden}.card:has(.custom-select.is-open){overflow:visible!important}
.custom-select-toggle{background:linear-gradient(180deg,rgba(8,6,4,.98),rgba(16,10,5,.98))!important;color:var(--text)!important}.custom-select-option{white-space:nowrap}.custom-select-option.is-selected{background:linear-gradient(115deg,#b77a18,#ffe08a 44%,#d7a53a)!important;color:#120b05!important}
.stamp-grid{grid-template-columns:repeat(5,42px)!important;justify-content:center!important}.stamp-cup{border-radius:999px!important;width:42px!important;height:42px!important}.stamp-cup .cup-icon{width:22px!important;height:22px!important}.qr-card .stamp-grid{margin-top:18px!important}
.stat-number{font-family:var(--font-button)!important;font-size:24px!important;margin-top:12px!important;line-height:1.08!important}.progress-badge{margin-top:12px!important}.progress-badge span+span{margin-left:5px!important}
.scan-permission .help{margin-top:8px}.scan-video{background:#000!important}.scan-frame{overflow:hidden!important}.brand-logo,.auth-logo,.preloader-logo{image-rendering:auto}.notification-item .notification-date,.notification-date{display:block!important;margin-top:14px!important;padding-top:2px!important}
input,select,textarea{font-size:16px!important}input[name="username"]{text-transform:lowercase!important}input:focus,textarea:focus,select:focus{font-size:16px!important}
@media(max-width:640px){.hero .actions,.actions{gap:5px!important}.btn{font-size:12px!important;gap:4px!important;padding-left:8px!important;padding-right:8px!important;min-height:38px!important}.btn .icon,.btn .tiny-icon{width:16px!important;height:16px!important}.main{padding-top:32px!important;padding-bottom:32px!important}.table-wrap table td,.table-wrap table th{padding:9px 10px!important;font-size:12px!important}.table-wrap td.actions{gap:5px!important}.stat-number{font-size:22px!important}.stamp-grid{grid-template-columns:repeat(5,39px)!important}.stamp-cup{width:39px!important;height:39px!important}.toast-wrap{top:80px!important}}


/* V4.3 fixes */
.install-modal.is-open{display:flex}.install-modal-box{max-width:430px}.install-ios-help strong{color:var(--gold-2)}
.custom-select-menu.is-open{display:block!important;position:fixed!important;z-index:999999!important}
.scan-box{aspect-ratio:1/1!important;display:grid!important;place-items:center!important;max-width:min(430px,100%)!important}
.scan-video,#qrReader,#qrReader__scan_region{width:100%!important;aspect-ratio:1/1!important;min-height:0!important;height:auto!important;border-radius:16px!important;overflow:hidden!important;background:#000!important}
#qrReader video{width:100%!important;height:100%!important;object-fit:cover!important}
#qrReader__dashboard_section,#qrReader__dashboard_section_csr,#qrReader__status_span{display:none!important}
#qrReader__scan_region img{display:none!important}.scan-frame:after{inset:12%!important;border-radius:22px!important}
.btn[disabled],.is-busy{opacity:.72!important;pointer-events:none!important}.notification-enabled{display:none!important}
@media(max-width:640px){.hero .actions,.actions{gap:5px!important}.actions .btn{font-size:11px!important;gap:4px!important;padding-left:8px!important;padding-right:8px!important;min-height:38px!important}.scan-box{max-width:100%!important}.scan-frame:after{inset:11%!important}}

/* Lubessi Club V4.4 final refinements */
.auth-wrap{min-height:auto!important;place-items:start center!important;padding-top:28px!important;padding-bottom:28px!important}
.brand-logo,.auth-logo,.mini-logo,.qr-card .auth-logo{border-radius:50%!important;object-fit:cover!important;background:#000!important;border:1px solid rgba(255,224,138,.32)!important;box-shadow:0 0 28px rgba(215,165,58,.14)!important}
.app-preloader img.preloader-logo{border-radius:0!important;object-fit:contain!important;background:transparent!important;border:0!important;box-shadow:none!important;width:150px!important;height:auto!important}
.table-wrap{display:block!important;width:100%!important;max-width:100%!important;overflow-x:auto!important;overflow-y:hidden!important;-webkit-overflow-scrolling:touch!important;touch-action:pan-x pan-y!important}
.table-wrap table{width:max-content!important;min-width:760px!important;max-width:none!important}.table-wrap th,.table-wrap td{white-space:nowrap!important}.table-wrap .help{white-space:nowrap!important}
.scan-success-overlay{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:5}.scan-success-overlay.is-visible{opacity:1}.scan-success-mark{width:96px;height:96px;border-radius:999px;display:grid;place-items:center;background:rgba(37,194,110,.16);border:2px solid rgba(37,194,110,.92);box-shadow:0 0 48px rgba(37,194,110,.35);color:#bbf7d0}.scan-success-mark svg{width:52px;height:52px}.scan-fail .scan-success-mark{background:rgba(239,68,68,.16);border-color:rgba(239,68,68,.92);color:#fecaca;box-shadow:0 0 48px rgba(239,68,68,.25)}
#scanResult .manual-stamp-form.is-hidden{display:none!important}
.install-modal .modal-actions .btn{white-space:nowrap}.install-ios-help{display:block;color:var(--muted)}
@media(max-width:640px){.auth-wrap{padding-top:18px!important;padding-bottom:18px!important}.table-wrap table{min-width:720px!important}.app-preloader img.preloader-logo{width:138px!important}.brand-logo{width:44px!important;height:44px!important}}

/* Lubessi Club V4.5 backup manager */
.code-box{display:block;width:100%;overflow:auto;white-space:pre-wrap;word-break:break-word;border:1px solid var(--border);border-radius:16px;background:rgba(0,0,0,.34);color:var(--gold-2);padding:14px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:13px;line-height:1.6}

/* V4.7 - Lubessi filxhan design + client layout */
.client-dashboard .client-progress-section{margin-top:0;position:relative;overflow:hidden;background:radial-gradient(circle at 50% -12%,rgba(255,224,138,.10),transparent 34%),linear-gradient(180deg,rgba(28,18,10,.96),rgba(11,7,4,.98));}
.client-dashboard .client-progress-section:before{content:"";position:absolute;inset:0;background:url('../img/lubessi-cup.png') center 28%/min(760px,86%) auto no-repeat;opacity:.035;filter:blur(.2px);pointer-events:none;}
.client-dashboard .client-progress-section>*{position:relative;z-index:1}.client-main-grid{align-items:start}.progress-coffee-card{padding:18px;border-radius:22px;background:linear-gradient(180deg,rgba(255,224,138,.035),rgba(255,255,255,.018));}.progress-card-head{align-items:flex-start;gap:12px}.progress-card-head strong{font-size:17px;color:var(--text)}.progress-meta{margin-top:14px!important;text-align:center}.lubessi-cup-grid,.stamp-grid.lubessi-cup-grid{display:grid!important;grid-template-columns:repeat(5,58px)!important;gap:13px!important;justify-content:center!important;align-items:center!important;margin-top:18px!important;margin-inline:auto!important;max-width:100%!important}.stamp-cup.lubessi-cup-stamp{width:58px!important;height:58px!important;border-radius:20px!important;position:relative;display:grid!important;place-items:center!important;padding:5px!important;background:radial-gradient(circle at 50% 34%,rgba(255,244,196,.22),rgba(215,165,58,.075) 48%,rgba(0,0,0,.16) 100%)!important;border:1px solid rgba(255,224,138,.27)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 12px 26px rgba(0,0,0,.25)!important;opacity:.58!important;overflow:hidden!important;transition:transform .2s ease,opacity .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease!important}.stamp-cup.lubessi-cup-stamp:before{content:"";position:absolute;inset:6px;border-radius:16px;background:linear-gradient(145deg,rgba(255,241,196,.17),rgba(255,255,255,.025));z-index:0}.stamp-cup.lubessi-cup-stamp .stamp-cup-img{position:relative;z-index:1;width:118%!important;height:80%!important;object-fit:contain!important;max-width:none!important;filter:drop-shadow(0 8px 10px rgba(0,0,0,.42));opacity:.72;transition:.2s ease}.stamp-cup.lubessi-cup-stamp.is-filled{opacity:1!important;background:radial-gradient(circle at 50% 34%,rgba(190,255,214,.66),rgba(43,194,111,.38) 43%,rgba(7,73,41,.62) 100%)!important;border-color:rgba(72,255,154,.72)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 0 0 1px rgba(37,194,110,.28),0 18px 34px rgba(37,194,110,.20),0 8px 20px rgba(0,0,0,.28)!important}.stamp-cup.lubessi-cup-stamp.is-filled:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(86,255,156,.22),rgba(255,255,255,0) 55%);mix-blend-mode:screen;pointer-events:none}.stamp-cup.lubessi-cup-stamp.is-filled .stamp-cup-img{opacity:1;filter:drop-shadow(0 10px 12px rgba(0,0,0,.35)) saturate(1.05) brightness(1.08)}.stamp-cup.lubessi-cup-stamp:hover{transform:translateY(-2px)}.progress-badge{margin-top:0!important}.client-qr-section{margin-top:0}.client-dashboard .qr-card{order:2}.client-dashboard .client-progress-section{order:1}.auth-wrap{min-height:0!important}.client-dashboard .code-pill{margin-top:2px}
@media(max-width:640px){.client-dashboard .client-progress-section{border-radius:20px}.progress-coffee-card{padding:15px}.lubessi-cup-grid,.stamp-grid.lubessi-cup-grid{grid-template-columns:repeat(5,54px)!important;gap:10px!important}.stamp-cup.lubessi-cup-stamp{width:54px!important;height:54px!important;border-radius:18px!important}.stamp-cup.lubessi-cup-stamp:before{border-radius:14px}.progress-card-head strong{font-size:15px}.progress-meta{font-size:14px}.client-dashboard .h2{font-size:23px}.client-main-grid{margin-top:18px!important}}
@media(max-width:390px){.lubessi-cup-grid,.stamp-grid.lubessi-cup-grid{grid-template-columns:repeat(5,50px)!important;gap:8px!important}.stamp-cup.lubessi-cup-stamp{width:50px!important;height:50px!important}}

/* V4.8 - Lubessi real cup progress refinement */
.client-dashboard .client-main-grid{grid-template-columns:1fr!important;max-width:760px;margin-left:auto!important;margin-right:auto!important}.client-dashboard .qr-card,.client-dashboard .client-main-grid>.card{width:100%}.lubessi-cup-grid,.stamp-grid.lubessi-cup-grid{grid-template-columns:repeat(5,64px)!important;gap:14px!important}.stamp-cup.lubessi-cup-stamp{width:64px!important;height:64px!important;border-radius:18px!important;padding:4px!important;background:linear-gradient(145deg,rgba(255,255,255,.96),rgba(246,236,206,.88))!important;border:1px solid rgba(255,224,138,.24)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 10px 22px rgba(0,0,0,.24)!important;opacity:1!important;overflow:hidden!important}.stamp-cup.lubessi-cup-stamp:before,.stamp-cup.lubessi-cup-stamp:after{display:none!important}.stamp-cup.lubessi-cup-stamp .stamp-cup-img{position:absolute!important;inset:5px!important;width:calc(100% - 10px)!important;height:calc(100% - 10px)!important;object-fit:contain!important;max-width:none!important;transition:opacity .18s ease,transform .18s ease,filter .18s ease!important}.stamp-cup.lubessi-cup-stamp .stamp-cup-black{opacity:.96!important;filter:drop-shadow(0 6px 8px rgba(0,0,0,.28)) saturate(.98)!important}.stamp-cup.lubessi-cup-stamp .stamp-cup-green{opacity:0!important;filter:drop-shadow(0 7px 10px rgba(15,112,56,.28)) saturate(1.08)!important}.stamp-cup.lubessi-cup-stamp.is-filled{background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(244,237,209,.92))!important;border-color:rgba(49,217,123,.68)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.78),0 0 0 1px rgba(49,217,123,.23),0 10px 22px rgba(0,0,0,.22)!important}.stamp-cup.lubessi-cup-stamp.is-filled .stamp-cup-black{opacity:0!important}.stamp-cup.lubessi-cup-stamp.is-filled .stamp-cup-green{opacity:1!important}.stamp-cup.lubessi-cup-stamp:hover{transform:translateY(-2px)}
@media(max-width:640px){.lubessi-cup-grid,.stamp-grid.lubessi-cup-grid{grid-template-columns:repeat(5,58px)!important;gap:11px!important}.stamp-cup.lubessi-cup-stamp{width:58px!important;height:58px!important;border-radius:17px!important}.stamp-cup.lubessi-cup-stamp .stamp-cup-img{inset:4px!important;width:calc(100% - 8px)!important;height:calc(100% - 8px)!important}.client-dashboard .client-main-grid{max-width:100%!important}}

/* V4.9 - Client dashboard order: Progress -> Digital Card -> Locations */
.client-dashboard .client-main-grid{display:grid!important;}
.client-dashboard .client-qr-section{order:1!important;}
.client-dashboard .client-locations-section{order:2!important;}

/* V4.10 - Add to Home Screen card button new row */
.install-card [data-install-btn]{
  display:flex!important;
  width:max-content!important;
  margin-top:12px!important;
  margin-left:0!important;
  clear:both!important;
}
@media(max-width:420px){
  .install-card [data-install-btn]{width:100%!important;justify-content:center!important;}
}


/* V4.11 - Lokali scan uses the same Lubessi cup design + progress badge spacing */
.card-muted .lubessi-cup-grid,
#scanResult .lubessi-cup-grid{
  grid-template-columns:repeat(5,64px)!important;
  gap:14px!important;
  justify-content:center!important;
  margin-top:20px!important;
}
#scanResult .stamp-cup.lubessi-cup-stamp{
  width:64px!important;
  height:64px!important;
  border-radius:18px!important;
}
.progress-badge{
  margin-top:12px!important;
}
.progress-badge span+span{
  margin-left:-3px!important;
}
@media(max-width:640px){
  .card-muted .lubessi-cup-grid,
  #scanResult .lubessi-cup-grid{
    grid-template-columns:repeat(5,58px)!important;
    gap:11px!important;
  }
  #scanResult .stamp-cup.lubessi-cup-stamp{
    width:58px!important;
    height:58px!important;
  }
}
@media(max-width:390px){
  .card-muted .lubessi-cup-grid,
  #scanResult .lubessi-cup-grid{
    grid-template-columns:repeat(5,52px)!important;
    gap:8px!important;
  }
  #scanResult .stamp-cup.lubessi-cup-stamp{
    width:52px!important;
    height:52px!important;
  }
}

/* V5 - privacy, maps, global progress, reward celebration */
a.card-link{display:block;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}a.card-link:hover{transform:translateY(-2px);border-color:rgba(255,224,138,.38);box-shadow:0 16px 44px rgba(0,0,0,.26)}
#cameraModal.modal,#rewardCelebration.modal{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;width:auto;max-width:none;padding:18px;border:0;border-radius:0;background:rgba(0,0,0,.72);box-shadow:none}#cameraModal.modal.is-open,#rewardCelebration.modal.is-open{display:flex}#cameraModal .modal-panel,#rewardCelebration .modal-panel{width:min(460px,100%);border:1px solid var(--border);background:linear-gradient(180deg,#1b120b,#090604);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.modal-close{width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:rgba(0,0,0,.2);color:var(--text);display:grid;place-items:center}.reward-celebration-panel{padding:34px 24px!important;background:radial-gradient(circle at 50% 0,rgba(255,224,138,.18),transparent 38%),linear-gradient(180deg,#1b120b,#090604)!important}.reward-celebration-panel .auth-logo{width:92px;margin-inline:auto;margin-bottom:16px}.reward-celebration-panel .h2{color:var(--gold-2)}
.client-dashboard>.client-progress-section{margin-bottom:20px}.client-dashboard>.client-qr-section{margin-bottom:20px}.client-locations-section{margin-top:0!important}
.cafe-privacy-note{border:1px solid rgba(255,224,138,.16);border-radius:18px;padding:14px;background:rgba(255,255,255,.025);color:var(--muted)}
@media(max-width:640px){.client-dashboard>.client-progress-section{margin-bottom:16px}.client-dashboard>.client-qr-section{margin-bottom:16px}}

/* Lubessi Club V5.1 refinements */
.client-locations-section .eyebrow{margin-bottom:6px}.client-locations-section .h2{margin-bottom:6px!important}.client-scope-text{margin-top:5px!important;margin-bottom:0!important}.client-cafe-mini{display:flex!important;align-items:center;justify-content:space-between;gap:14px}.client-cafe-mini strong{font-size:calc(1em + 4px);line-height:1.15}.client-cafe-mini .help{margin-top:4px!important;margin-bottom:0!important}.client-cafe-icon{width:32px;height:32px;color:var(--gold-2);flex:0 0 auto}.cafes-page-title{margin-bottom:8px!important}.cafe-title-lg{font-size:calc(1em + 4px);line-height:1.15}.cafe-address{margin-top:8px!important;margin-bottom:0!important}.client-cafes-list .card-link{display:flex!important;align-items:center;justify-content:space-between;gap:14px}
.stat-card-link{text-decoration:none;color:inherit;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stat-card-link:hover{transform:translateY(-2px);border-color:rgba(255,224,138,.42);box-shadow:0 16px 44px rgba(0,0,0,.25)}
.clickable-row,.client-detail-row{cursor:pointer}.clickable-row:hover td,.client-detail-row:hover td{background:rgba(215,165,58,.045)}
.pagination{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap}.page-link,.page-dots{font-family:var(--font-button);min-width:34px;height:34px;border:1px solid var(--border);border-radius:11px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--text);font-weight:900}.page-link.is-active{background:linear-gradient(115deg,#b77a18,#ffe08a 44%,#d7a53a);color:#120b05}.page-dots{border-color:transparent;color:var(--muted)}.report-filter input[type="date"]{color-scheme:dark}.report-filter-actions{align-self:end}.btn-excel{white-space:nowrap!important}.transactions-head{align-items:flex-start}
.bottom-nav-inner.nav-count-4{grid-template-columns:repeat(4,1fr)!important;max-width:560px}.bottom-nav-inner.nav-count-5{grid-template-columns:repeat(5,1fr)!important}.camera-modal-head{align-items:center;margin-bottom:4px}.camera-modal-head h3{font-size:24px!important;margin:0}.camera-modal-head + .help{margin-top:6px!important}.cafe-rewards-table table{min-width:520px!important}.cafe-rewards-table th,.cafe-rewards-table td{padding-top:11px!important;padding-bottom:11px!important}.client-detail-modal-content .list-item{align-items:center}.client-detail-modal-content .list-item span{text-align:right;color:var(--muted);font-family:var(--font-button)}
@media(max-width:640px){.client-cafe-mini strong,.cafe-title-lg{font-size:calc(1em + 3px)}.client-cafe-icon{width:30px;height:30px}.report-filter .grid-3{grid-template-columns:1fr!important}.transactions-head{gap:10px}.transactions-head .btn{min-width:92px}.bottom-nav-inner.nav-count-4{width:min(420px,100%)}.camera-modal-head h3{font-size:22px!important}.pagination{gap:5px}.page-link,.page-dots{min-width:32px;height:32px}}
#clientRewardCelebration.modal,#clientRewardRedeemed.modal,#clientDetailModal.modal,#cafeRewardRedeemed.modal{position:fixed;inset:0;z-index:140;display:none;align-items:center;justify-content:center;width:auto;max-width:none;padding:18px;border:0;border-radius:0;background:rgba(0,0,0,.72);box-shadow:none}
#clientRewardCelebration.modal.is-open,#clientRewardRedeemed.modal.is-open,#clientDetailModal.modal.is-open,#cafeRewardRedeemed.modal.is-open{display:flex}
#clientRewardCelebration .modal-panel,#clientRewardRedeemed .modal-panel,#clientDetailModal .modal-panel,#cafeRewardRedeemed .modal-panel{width:min(460px,100%);border:1px solid var(--border);background:linear-gradient(180deg,#1b120b,#090604);border-radius:24px;padding:22px;box-shadow:var(--shadow)}

/* Lubessi Club V5.3 refinements */
.card p:last-child,.card-muted p{margin-bottom:0!important}.client-locations-grid{margin-top:14px!important}.client-locations-section .h2{margin-bottom:6px!important}.client-locations-section .help{margin-bottom:0!important}.client-cafe-mini{min-height:74px}.client-cafe-mini strong,.client-map-card .cafe-title-lg{font-size:calc(1em + 4px)!important}.client-cafe-mini .help{margin-top:3px!important}.client-map-card{display:block!important}.client-map-main{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;width:100%}.client-map-info{min-width:0}.client-map-card .cafe-address{margin-top:8px!important;margin-bottom:8px!important}.client-map-icon{align-self:center!important;width:36px!important;height:36px!important;flex:0 0 auto!important;color:var(--gold-2)!important}.map-badge{display:inline-flex!important;width:max-content!important}.notification-title{font-size:17px!important}.notification-date{margin-top:5px!important}.admin-dashboard-redeems{margin-top:20px!important}.admin-dashboard-stamps{margin-top:20px!important}.reports-card .lead,.premium-card .lead{margin-top:10px!important;margin-bottom:18px!important}.report-actions-grid{display:grid;gap:10px;margin-top:16px}.report-actions-row{display:grid;gap:10px}.report-actions-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.report-actions-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.report-actions-row .btn{width:100%;justify-content:center;white-space:nowrap!important}.locations-table td,.locations-table th{padding-top:10px!important;padding-bottom:10px!important}.locations-table table{min-width:560px!important}.cafe-rewards-table table{min-width:320px!important}.cafe-rewards-table td,.cafe-rewards-table th{padding-top:10px!important;padding-bottom:10px!important}.table-wrap td.actions{gap:10px!important}.scan-success-overlay.is-visible{z-index:8}.verify-info{margin-top:10px!important}.grid-1{grid-template-columns:1fr!important}.edit-anchor{scroll-margin-top:92px}.client-dashboard>.client-locations-section{margin-top:0!important}
@media(max-width:640px){.table-wrap td.actions{gap:10px!important}.report-actions-row-2{grid-template-columns:repeat(2,minmax(0,1fr))}.report-actions-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.report-actions-row .btn{font-size:10px!important;padding-left:6px!important;padding-right:6px!important}.client-map-icon{width:32px!important;height:32px!important}.client-map-card .cafe-address{margin-top:7px!important;margin-bottom:7px!important}.client-cafe-mini strong,.client-map-card .cafe-title-lg{font-size:calc(1em + 3px)!important}}
@media(max-width:380px){.report-actions-row-3{grid-template-columns:1fr}.report-actions-row-2{grid-template-columns:1fr}.report-actions-row .btn{font-size:11px!important}}
.card>.lead{margin-top:8px!important;margin-bottom:14px!important}.card>.lead+ .table-wrap{margin-top:8px!important}.card>.stat+ .table-wrap{margin-top:10px!important}.client-rewards-page .lead{margin-bottom:12px!important}.admin-dashboard-redeems .h2,.admin-dashboard-stamps .h2{margin-bottom:8px!important}

/* Lubessi Club V5.4 refinements */
.report-filter,.report-filter .grid,.report-filter .form-row{max-width:100%;min-width:0;overflow:visible}.report-filter input[type="date"]{width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;box-sizing:border-box!important;-webkit-appearance:none;appearance:none}.report-filter .grid-3{grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,auto)!important}.report-filter-actions .btn{width:100%}
@media(max-width:920px){.report-filter .grid-3{grid-template-columns:1fr!important}}

/* Lubessi Club V5.5 - iOS Larger Text/Display Zoom cup grid + modal hide fix */
.reward-celebration-modal:not(.is-open){display:none!important;}
.client-dashboard .lubessi-cup-grid,
.client-dashboard .stamp-grid.lubessi-cup-grid,
#scanResult .lubessi-cup-grid,
.card-muted .lubessi-cup-grid{
  width:min(100%, 340px)!important;
  max-width:100%!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:clamp(7px,2vw,13px)!important;
  overflow:hidden!important;
  justify-content:center!important;
}
.client-dashboard .stamp-cup.lubessi-cup-stamp,
#scanResult .stamp-cup.lubessi-cup-stamp,
.card-muted .stamp-cup.lubessi-cup-stamp{
  width:100%!important;
  height:auto!important;
  aspect-ratio:1/1!important;
  min-width:0!important;
}
.client-dashboard .stamp-cup.lubessi-cup-stamp .stamp-cup-img,
#scanResult .stamp-cup.lubessi-cup-stamp .stamp-cup-img,
.card-muted .stamp-cup.lubessi-cup-stamp .stamp-cup-img{
  inset:clamp(3px,1.2vw,5px)!important;
  width:calc(100% - clamp(6px,2.4vw,10px))!important;
  height:calc(100% - clamp(6px,2.4vw,10px))!important;
}
.progress-coffee-card,
.progress-coffee-card > div,
.client-progress-section,
#scanResult .card-muted{min-width:0!important;overflow:hidden!important;}
@media(max-width:640px){
  .client-dashboard .lubessi-cup-grid,
  .client-dashboard .stamp-grid.lubessi-cup-grid,
  #scanResult .lubessi-cup-grid,
  .card-muted .lubessi-cup-grid{
    width:min(100%, 315px)!important;
    gap:clamp(6px,1.8vw,10px)!important;
  }
}
@media(max-width:390px){
  .client-dashboard .lubessi-cup-grid,
  .client-dashboard .stamp-grid.lubessi-cup-grid,
  #scanResult .lubessi-cup-grid,
  .card-muted .lubessi-cup-grid{
    width:100%!important;
    gap:6px!important;
  }
}

/* Lubessi Club V5.6 - Samsung/iOS zoom hardening, no page horizontal scroll, map/nav layering */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden !important;
  -webkit-text-size-adjust: 100% !important;
  text-size-adjust: 100% !important;
}
body, .app-shell, .header, .main, .footer, .bottom-nav, .container,
.card, .premium-card, .auth-card, .hero, .grid, .form, .table-wrap,
.client-dashboard, .client-main-grid, .client-progress-section, .client-qr-section,
.client-locations-section, .progress-coffee-card, .scan-box, .map-box {
  max-width: 100% !important;
  min-width: 0 !important;
}
.container {
  overflow-x: clip;
}
.main {
  padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
}
.bottom-nav {
  z-index: 9999 !important;
}
.map-box,
.leaflet-container {
  position: relative !important;
  z-index: 1 !important;
  max-width: 100% !important;
  margin-bottom: calc(18px + env(safe-area-inset-bottom)) !important;
}
.leaflet-pane,
.leaflet-map-pane,
.leaflet-tile-pane,
.leaflet-overlay-pane,
.leaflet-marker-pane,
.leaflet-tooltip-pane,
.leaflet-popup-pane,
.leaflet-control-container,
.leaflet-top,
.leaflet-bottom {
  z-index: 2 !important;
}
.table-wrap {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
}
.table-wrap table {
  max-width: none !important;
}

/* Cups: never overflow even with Display Zoom / Larger Text */
.lubessi-cup-grid,
.stamp-grid.lubessi-cup-grid,
.client-dashboard .lubessi-cup-grid,
.client-dashboard .stamp-grid.lubessi-cup-grid,
#scanResult .lubessi-cup-grid,
.card-muted .lubessi-cup-grid {
  display: grid !important;
  width: min(100%, 320px) !important;
  max-width: 100% !important;
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
  gap: clamp(5px, 1.6vw, 10px) !important;
  justify-content: center !important;
  align-items: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  overflow: hidden !important;
}
.stamp-cup.lubessi-cup-stamp,
.client-dashboard .stamp-cup.lubessi-cup-stamp,
#scanResult .stamp-cup.lubessi-cup-stamp,
.card-muted .stamp-cup.lubessi-cup-stamp {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  min-width: 0 !important;
  border-radius: clamp(13px, 4vw, 18px) !important;
}
.stamp-cup.lubessi-cup-stamp .stamp-cup-img,
.client-dashboard .stamp-cup.lubessi-cup-stamp .stamp-cup-img,
#scanResult .stamp-cup.lubessi-cup-stamp .stamp-cup-img,
.card-muted .stamp-cup.lubessi-cup-stamp .stamp-cup-img {
  inset: clamp(3px, 1vw, 5px) !important;
  width: calc(100% - clamp(6px, 2vw, 10px)) !important;
  height: calc(100% - clamp(6px, 2vw, 10px)) !important;
  max-width: none !important;
  object-fit: contain !important;
}
.progress-card-head,
.progress-meta,
.card .lead,
.h1, .h2, .h3, .brand-title, .brand-subtitle,
.btn, .bottom-link, label, input, select, textarea, th, td, .help, .badge {
  max-width: 100% !important;
}

@media (max-width: 640px) {
  .container {
    width: 100% !important;
    padding-left: max(12px, env(safe-area-inset-left)) !important;
    padding-right: max(12px, env(safe-area-inset-right)) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
  .main {
    padding-top: 18px !important;
    padding-bottom: calc(28px + env(safe-area-inset-bottom)) !important;
  }
  .nav {
    min-height: 66px !important;
    gap: 8px !important;
    overflow: hidden !important;
  }
  .brand {
    flex: 1 1 auto !important;
    gap: 8px !important;
    overflow: hidden !important;
  }
  .brand-logo {
    width: 38px !important;
    height: 38px !important;
    flex: 0 0 38px !important;
  }
  .brand-title {
    font-size: clamp(16px, 5vw, 20px) !important;
    line-height: 1.04 !important;
    letter-spacing: .075em !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  .brand-subtitle {
    font-size: 9px !important;
    line-height: 1.15 !important;
    max-width: 160px !important;
  }
  .nav-actions {
    flex: 0 0 auto !important;
    gap: 6px !important;
  }
  .nav-actions .btn {
    font-size: 12px !important;
    min-height: 38px !important;
    padding: 8px 10px !important;
    border-radius: 13px !important;
    white-space: nowrap !important;
  }
  .auth-card, .card, .premium-card {
    padding: 18px !important;
    border-radius: 22px !important;
  }
  .auth-logo {
    width: 72px !important;
    height: 72px !important;
  }
  .h1 {
    font-size: clamp(27px, 8.5vw, 36px) !important;
    line-height: 1.03 !important;
  }
  .h2 {
    font-size: clamp(21px, 7vw, 28px) !important;
    line-height: 1.08 !important;
  }
  .h3 {
    font-size: 17px !important;
  }
  .lead {
    font-size: 16px !important;
    line-height: 1.45 !important;
  }
  .eyebrow, label, th {
    font-size: 10px !important;
    letter-spacing: .14em !important;
  }
  .btn {
    font-size: 12px !important;
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .bottom-nav-inner {
    gap: 4px !important;
  }
  .bottom-link {
    font-size: 9px !important;
    padding: 7px 2px !important;
  }
  .bottom-icon {
    width: 20px !important;
    height: 20px !important;
  }
  .progress-coffee-card {
    padding: 14px !important;
  }
  .progress-card-head {
    gap: 8px !important;
  }
  .progress-card-head strong {
    font-size: 15px !important;
  }
  .progress-meta {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
  .lubessi-cup-grid,
  .stamp-grid.lubessi-cup-grid,
  .client-dashboard .lubessi-cup-grid,
  .client-dashboard .stamp-grid.lubessi-cup-grid,
  #scanResult .lubessi-cup-grid,
  .card-muted .lubessi-cup-grid {
    width: min(100%, 300px) !important;
    gap: clamp(4px, 1.5vw, 8px) !important;
  }
  input, select, textarea {
    font-size: 16px !important;
    max-width: 100% !important;
  }
  .qr-box {
    width: min(260px, 100%) !important;
  }
  .map-box {
    min-height: 280px !important;
    max-height: calc(100dvh - 190px) !important;
  }
}

@media (max-width: 380px) {
  .container {
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .brand-title {
    font-size: 16px !important;
  }
  .brand-subtitle {
    max-width: 130px !important;
    font-size: 8px !important;
  }
  .nav-actions .btn {
    font-size: 11px !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  .h1 {
    font-size: 28px !important;
  }
  .h2 {
    font-size: 22px !important;
  }
  .lubessi-cup-grid,
  .stamp-grid.lubessi-cup-grid,
  .client-dashboard .lubessi-cup-grid,
  .client-dashboard .stamp-grid.lubessi-cup-grid,
  #scanResult .lubessi-cup-grid,
  .card-muted .lubessi-cup-grid {
    width: 100% !important;
    gap: 4px !important;
  }
}

/* Lubessi Club V5.7 - padding/preloader/soft-delete polish */
.main{padding-bottom:calc(28px + env(safe-area-inset-bottom))!important}
.btn,.bottom-link,.badge,.brand-title,.brand-subtitle,.nav-actions,.actions{overflow-wrap:normal!important;word-break:normal!important}
.btn,.bottom-link{white-space:nowrap!important}
.card p,.help,.lead,td,th{overflow-wrap:break-word;word-break:normal}
.table-wrap td,.table-wrap th{overflow-wrap:normal!important;word-break:normal!important}
