/* Buddy Bucks Wallet — styles (Kush Buddy green palette) */
.kb-bbux-wallet{background:#fff;border:2px solid #40a628;border-radius:16px;overflow:hidden;margin:0 0 24px;font-size:15px;line-height:1.55}
.kbw-in-drawer{border:none;border-radius:0;margin:0;height:100%;display:flex;flex-direction:column}
.kbw-in-drawer .kbw-body{overflow-y:auto;flex:1;-webkit-overflow-scrolling:touch}
.kbw-head{position:relative;background:linear-gradient(135deg,#16351b,#1d2327);color:#fff;padding:18px 56px 18px 20px;display:flex;align-items:center;gap:14px}
.kbw-head img{flex:none}
.kbw-lbl{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#b9ccc0}
.kbw-bal-num{font-size:26px}
.kbw-bal-num b{font-weight:900}
.kbw-usd{font-size:14px;font-weight:600;color:#7ee06a}
.kbw-usd,.kbw-usd *{color:#7ee06a!important}
.kbw-close{position:absolute;top:50%;transform:translateY(-50%);right:14px;margin:0;background:#16351b;border:1.5px solid #40a628;color:#7ee06a;font-size:17px;line-height:1;width:38px;height:38px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
.kbw-close:hover{background:#1e4624;border-color:#5fd045;color:#a5ef8f}
.kbw-tabs{display:flex;border-bottom:1.5px solid #e3e8e3}
.kbw-tabs button{flex:1;border:none;background:none;padding:9px 8px;font-size:14px;font-weight:700;color:#5c666e;cursor:pointer;border-bottom:3px solid transparent;font-family:inherit}
.kbw-tabs button.active{color:#40a628;border-bottom-color:#40a628}
.kbw-body{padding:16px 18px}
.kbw-loading{color:#5c666e;text-align:center;padding:20px 0}
/* section headers — white on dark */
.kbw-sec{font-size:12.5px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:#fff;background:#1d2327;border-radius:8px;padding:8px 12px;margin:18px 0 12px}
.kbw-state{font-size:12px;font-weight:800;padding:3px 10px;border-radius:999px;white-space:nowrap;flex:none}
.kbw-state.ok{background:#40a628;color:#fff}
.kbw-state.warn{background:#fff3e0;color:#e65100}
.kbw-state.block{background:#fdecea;color:#c62828}
.kbw-tier,.kbw-coupon{border:1.5px solid #e3e8e3;border-radius:12px;padding:14px 16px;margin-bottom:12px}
.kbw-tier.eligible{border-color:#40a628;background:#f2f9f4}
.kbw-tier.locked{opacity:.85;background:#fafafa}
.kbw-coupon{border-style:dashed;border-color:#f9a825;background:#fffdf5}
.kbw-coupon-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.kbw-ricon{width:30px;height:30px;object-fit:contain;flex:none}
.kbw-ricon.product{width:46px;height:46px;object-fit:cover;border-radius:10px;border:1px solid #e3e8e3}
.kbw-name{font-weight:800;font-size:15.5px;flex:1}
.kbw-value{font-size:13.5px;font-weight:800;color:#2e7d1e;margin-top:3px}
.kbw-code{font-family:ui-monospace,Menlo,monospace;font-size:12.5px;color:#5c666e;letter-spacing:1px;margin-top:2px}
.kbw-why{font-size:13.5px;color:#e65100;margin-top:6px}
.kbw-tier .kbw-why{color:#5c666e}
.kbw-row{margin-top:12px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:nowrap}
.kbw-btn{border:none;cursor:pointer;font-weight:800;border-radius:8px;padding:8px 14px;font-size:13.5px;font-family:inherit;line-height:1.25;text-align:center;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:38px;overflow-wrap:break-word}
.kbw-btn.green{background:#40a628;color:#fff}
.kbw-btn.green:hover{background:#2e7d1e}
.kbw-btn.red{background:#c62828;color:#fff}
.kbw-btn.ghost{background:#fff;border:1.5px solid #e3e8e3;color:#5c666e}
.kbw-btn.cancel{background:#fdeceb;border:1.5px solid #f0c6c0;color:#b23b31}
.kbw-btn.cancel:hover{background:#f9d9d4;border-color:#e8a89f}
.kbw-btn.mutedred{background:#b04a3a;color:#fff}
.kbw-btn.mutedred:hover{background:#93392c}
.kbw-btn[disabled]{background:#e0e0e0;color:#999;cursor:not-allowed}
.kbw-revert{font-size:13px;line-height:1.35;color:#5c666e;text-decoration:underline;cursor:pointer;background:none;border:none;font-family:inherit;text-align:right;max-width:55%;padding:6px 2px;overflow-wrap:break-word}
.kbw-applied{background:#16351b;color:#fff;border:1.5px solid #40a628;border-radius:12px;padding:12px 14px;margin-bottom:6px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;font-weight:700}
.kbw-applied>div{min-width:0}
.kbw-applied .kbw-btn{padding:6px 12px;font-size:12.5px;grid-column:2;grid-row:1;justify-self:end}
.kbw-applied-note{font-size:13px;color:#5c666e;margin:0 2px 14px}
.kbw-applied-name{font-size:15.5px;font-weight:800}
.kbw-applied-val{color:#7ee06a}
.kbw-applied-code{font-size:12.5px;font-weight:400;color:#b9ccc0;margin-top:1px}
.kbw-notice{border-radius:10px;padding:12px 14px;font-size:14px;margin-bottom:12px}
.kbw-notice.warn{background:#fff8e1;border:1px solid #ffe082}
.kbw-notice.err{background:#fdecea;border:1px solid #ef9a9a}
.kbw-err-safe{background:#fff;border-radius:8px;padding:8px 10px;margin-top:8px;font-size:13px}
.kbw-upsell{background:#f2f9f4;border:1.5px dashed #40a628;border-radius:10px;padding:10px 14px;font-size:13.5px;font-weight:700;margin-bottom:12px}
/* one-time toast after apply/redeem */
.kbw-toast{background:#e8f5e9;border:1.5px solid #40a628;border-radius:10px;padding:11px 14px;font-size:13.5px;font-weight:700;color:#1b5e20;margin-bottom:12px}
/* owner-editable promo lines (top of wallet) */
.kbw-promo{display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#16351b,#1d2327);color:#fff;border-radius:10px;padding:10px 14px;font-size:13.5px;margin-bottom:10px}
.kbw-promo-pill{flex:none;background:#f9a825;color:#1d2327;font-size:10.5px;font-weight:900;letter-spacing:1px;border-radius:6px;padding:3px 7px}
.kbw-promo-txt b{color:#7ee06a}
/* typed promo-code entry */
.kbw-code-entry{margin-bottom:4px}
.kbw-code-toggle{background:none;border:none;color:#40a628;font-weight:700;font-size:13.5px;cursor:pointer;padding:2px 0;font-family:inherit;text-decoration:underline}
.kbw-code-form{display:flex;gap:8px;margin-top:6px}
.kbw-code-form input{flex:1;min-width:0;box-sizing:border-box;margin:0;border:1.5px solid #e3e8e3!important;border-radius:8px;padding:9px 12px;font-size:14px;font-family:inherit}
.kbw-code-msg{font-size:13.5px;margin-top:8px;border-radius:8px;padding:8px 12px}
.kbw-code-msg.ok{background:#e8f5e9;border:1px solid #a5d6a7;color:#2e7d1e;font-weight:700}
.kbw-code-msg.err{background:#fdecea;border:1px solid #ef9a9a;color:#c62828}
/* busy overlay: blocks the whole module during apply/remove/revert/reload — only ✕ stays clickable */
.kb-bbux-wallet{position:relative}
.kbw-close{z-index:60}
.kbw-busy{position:absolute;inset:0;z-index:50;background:rgba(255,255,255,.84);display:none;align-items:center;justify-content:center;touch-action:none;overscroll-behavior:contain}
.kbw-busy.on{display:flex}
.kbw-busy-box{text-align:center}
.kbw-busy-ico{position:relative;display:inline-block;width:62px;height:62px}
.kbw-busy-ico img{position:absolute;inset:9px;width:44px;height:44px}
.kbw-busy-ring{position:absolute;inset:0;border-radius:50%;border:4px solid #dcebe0;border-top-color:#40a628;animation:kbwspin .8s linear infinite}
.kbw-busy-txt{margin-top:14px;font-size:13.5px;font-weight:700;color:#16351b}
@keyframes kbwspin{to{transform:rotate(360deg)}}
/* replaced by the wallet: Woo's "Have a coupon? Click here" + WPLoyalty yellow banners */
.woocommerce-form-coupon-toggle{display:none!important}
.wlr-cart-checkout-messages,.wlr-cart-message,.wlr-checkout-message,.wlr-earn-message,.wlr-user-earn-message,.wlr-cart-checkout-message{display:none!important}
.kbw-fineprint{font-size:13px;color:#5c666e;margin-top:8px}
/* reward search */
.kbw-search{width:100%;box-sizing:border-box;border:1.5px solid #e3e8e3!important;border-radius:10px;padding:9px 12px;font-size:14px;font-family:inherit;margin:2px 0 10px}
/* unavailable items: hidden until expanded; always shown while searching */
.kbw-unavail{display:none}
.show-unavail .kbw-unavail,.searching .kbw-unavail{display:block}
.kbw-nomatch{display:none!important}
.kbw-unavail-toggle{display:block;background:none;border:none;color:#40a628;font-weight:700;font-size:13.5px;cursor:pointer;padding:2px 0;margin:2px 0 4px;font-family:inherit;text-decoration:underline}
/* activity */
.kbw-act-filters{display:flex;gap:8px;margin-bottom:12px}
.kbw-act-filters select,.kbw-act-filters input{border:1.5px solid #e3e8e3;border-radius:8px;padding:7px 10px;font-size:13px;font-family:inherit;min-height:38px;box-sizing:border-box;margin:0}
.kbw-act-filters select{flex:none;width:auto!important;padding-right:30px;max-width:100%}
.kbw-act-filters input{flex:1 1 auto;min-width:0;width:auto!important;box-sizing:border-box}
.kbw-act-row{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid #f0f2f0;font-size:13.5px}
.kbw-ic{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:15px;flex:none}
.kbw-ic.earn{background:#e8f5e9}.kbw-ic.redeem{background:#fff8e1}.kbw-ic.revert{background:#e3f2fd}
.kbw-meta{color:#5c666e;font-size:12.5px}
.kbw-amt{margin-left:auto;font-weight:800;white-space:nowrap}
.kbw-amt.plus{color:#40a628}.kbw-amt.minus{color:#c62828}
.kbw-act-empty{text-align:center;color:#5c666e;font-size:13.5px;padding:22px 0}
.kbw-act-note{font-size:12.5px;color:#5c666e;margin-top:10px;text-align:center}
/* inline opener bar above cart/checkout */
.kb-bbux-opener{margin:0 0 16px}
.kb-bbux-opener button{width:100%;display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#16351b,#1d2327);color:#fff;border:2px solid #40a628;border-radius:12px;padding:12px 16px;cursor:pointer;font-family:inherit;font-size:15px;text-align:left}
.kb-bbux-opener button:hover{border-color:#5fd045}
.kb-bbux-opener img{flex:none}
.kb-bbux-opener .kbo-txt{flex:1;font-weight:400;color:#d9e6dc}
.kb-bbux-opener .kbo-txt b{color:#fff;font-weight:800}
.kb-bbux-opener .kbo-usd{color:#7ee06a;font-weight:700;white-space:nowrap}
.kb-bbux-opener .kbo-cta{font-weight:800;color:#7ee06a;white-space:nowrap}
/* floating launcher (FAB) */
.kb-bbux-fab{position:fixed;left:18px;bottom:18px;z-index:99998;display:flex;align-items:center;gap:8px;background:linear-gradient(135deg,#16351b,#1d2327);color:#fff;border:2px solid #40a628;border-radius:999px;padding:9px 16px 9px 10px;cursor:pointer;box-shadow:0 6px 22px rgba(0,0,0,.28);font-family:inherit}
.kb-bbux-fab img{display:block}
.kb-bbux-fab .kbf-bal{font-weight:800;font-size:15px}
.kb-bbux-fab:hover{transform:translateY(-2px)}
/* gamified nudge bubble (above the FAB) + shake */
.kbf-nudge{position:fixed;left:64px;bottom:78px;z-index:99998;max-width:290px;background:#fff;border:2px solid #40a628;border-radius:14px;padding:12px 34px 12px 14px;font-size:13.5px;font-weight:700;line-height:1.45;color:#1d2327;box-shadow:0 8px 26px rgba(0,0,0,.25);cursor:pointer;animation:kbfnudgein .35s ease}
.kbf-nudge .amount,.kbf-nudge b{color:#2e7d1e}
.kbf-nudge:after{content:"";position:absolute;left:14px;bottom:-8px;border:8px solid transparent;border-top-color:#40a628;border-bottom:none}
.kbf-nudge-x{position:absolute;top:6px;right:8px;border:none;background:none;font-size:16px;line-height:1;color:#5c666e;cursor:pointer;padding:2px 5px}
.kbf-nudge-x:hover{color:#1d2327}
@keyframes kbfnudgein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes kbfshake{0%,100%{transform:translateX(0) rotate(0)}20%{transform:translateX(-5px) rotate(-4deg)}40%{transform:translateX(5px) rotate(4deg)}60%{transform:translateX(-4px) rotate(-2deg)}80%{transform:translateX(4px) rotate(2deg)}}
.kb-bbux-fab.kbf-shake{animation:kbfshake .55s ease 2}
/* slide-out drawer (desktop: right panel) */
.kb-bbux-drawer{position:fixed;inset:0;z-index:999999;visibility:hidden;transition:visibility 0s .35s}
.kb-bbux-drawer.open{visibility:visible;transition-delay:0s}
.kbd-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .3s}
.kb-bbux-drawer.open .kbd-backdrop{opacity:1}
.kbd-panel{position:absolute;top:0;right:0;bottom:0;width:440px;max-width:100vw;background:#fff;box-shadow:-8px 0 30px rgba(0,0,0,.25);transform:translateX(105%);transition:transform .32s ease;display:flex;flex-direction:column}
.kb-bbux-drawer.open .kbd-panel{transform:translateX(0)}
.kbd-panel .kb-bbux-wallet{flex:1;min-height:0}
.kbd-handle{display:none}
body.kbw-noscroll{overflow:hidden}
/* modal */
.kbw-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:9999999}
.kbw-modal{background:#fff;border-radius:16px;padding:26px;width:400px;max-width:92vw;max-height:88vh;overflow-y:auto;box-sizing:border-box}
.kbw-modal h4{font-size:18px;margin-bottom:10px}
.kbw-modal-row{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap}
.kbw-modal-row .kbw-btn{flex:1 1 auto;min-width:120px}
.kbw-modal-err{background:#fdecea;border:1px solid #ef9a9a;border-radius:8px;padding:9px 12px;font-size:13.5px;margin-top:12px}
/* points slider (redeem / save-to-wallet modal) */
.kbw-slider-wrap{background:#f2f9f4;border:1.5px solid #cfe6d2;border-radius:12px;padding:16px 16px 13px;margin:14px 0 4px}
#kbw-conv{-webkit-appearance:none;appearance:none;width:100%;height:10px;border-radius:999px;background:#dcebe0;outline:none;margin:6px 0;cursor:pointer}
#kbw-conv::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:28px;height:28px;border-radius:50%;background:#40a628;border:3px solid #fff;box-shadow:0 2px 8px rgba(22,53,27,.35);cursor:grab}
#kbw-conv::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:#40a628;border:3px solid #fff;box-shadow:0 2px 8px rgba(22,53,27,.35);cursor:grab}
#kbw-conv::-moz-range-track{height:10px;border-radius:999px;background:transparent}
.kbw-slider-ends{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:#5c666e}
.kbw-slider-out{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-top:12px;padding-top:11px;border-top:1.5px dashed #cfe6d2}
.kbw-slider-out b{font-size:16px}
.kbw-slider-out #kbw-conv-usd{color:#40a628;font-size:24px;font-weight:900}
@media(max-width:640px){
	.kbw-coupon-top{flex-wrap:wrap}
	.kbw-row{flex-direction:column;align-items:stretch}
	.kbw-btn{width:100%;font-size:12.5px;padding:9px 10px;min-height:42px}
	.kbw-applied .kbw-btn{width:auto}
	.kbw-modal-row .kbw-btn{flex:1 1 100%;min-width:0}
	.kbw-code-form{flex-direction:column}
	.kbw-code-form .kbw-btn{width:100%}
	.kbw-act-filters{flex-wrap:wrap}
	.kbw-act-filters select,.kbw-act-filters input{flex:1 1 100%}
	.kbw-revert{max-width:100%;text-align:center}
	/* mobile: pull-up bottom sheet — panel is always 100vh; collapsed = slid down 35vh (65% visible), expanded = translateY(0). Drag follows the finger via transform. */
	.kbd-panel{top:auto;bottom:0;left:0;right:0;width:100vw;max-width:100vw;height:100vh;transform:translateY(105%);border-radius:20px 20px 0 0;box-shadow:0 -10px 34px rgba(0,0,0,.35);transition:transform .32s ease}
	.kb-bbux-drawer.open .kbd-panel{transform:translateY(35vh)}
	.kb-bbux-drawer.open.kbw-expanded .kbd-panel{transform:translateY(0);border-radius:0}
	.kb-bbux-drawer .kbw-body{overflow:hidden}
	.kb-bbux-drawer.kbw-expanded .kbw-body{overflow-y:auto}
	.kbd-handle{display:block;width:52px;height:5px;border-radius:999px;background:#cfd6cf;margin:6px auto 2px;flex:none;order:-1;position:relative}
	.kbd-handle:before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:140px;height:38px}
	.kb-bbux-fab{left:12px;bottom:12px;padding:8px 13px 8px 9px}
	.kb-bbux-fab .kbf-bal{font-size:13.5px}
	.kb-bbux-opener button{flex-wrap:nowrap;padding:10px 12px;gap:8px;font-size:13px}
	.kb-bbux-opener img{width:24px;height:24px}
	.kb-bbux-opener .kbo-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;min-width:0}
	.kb-bbux-opener .kbo-cta{white-space:nowrap;font-size:12px;max-width:none}
	.kbw-tabs button{padding:9px 6px;font-size:13px;min-width:0}
	.kbf-nudge{left:56px;bottom:66px;max-width:min(300px,78vw)}
	.kbf-nudge:after{left:12px}
}

/* guest mode */
.kbw-guest-mode .kbw-tabs{display:none}
.kbw-guest-bal{font-size:15px;font-weight:700;color:#7ee06a}
.kbw-guest{text-align:center;padding:6px 2px 4px}
.kbw-guest-title{font-size:17px;font-weight:800;margin:8px 0 12px;color:#1d2327}
.kbw-guest-list{text-align:left;font-size:14px;color:#3c434a;margin:0 0 16px;padding:0;list-style:none}
.kbw-guest-list li{margin:0 0 9px;line-height:1.45;padding-left:2px}
.kbw-guest-cta{display:flex;width:100%;text-decoration:none;padding:13px 16px;font-size:15px;min-height:48px}
a.kbw-guest-cta:hover{color:#fff;text-decoration:none}
.kbw-guest-login{display:block;text-align:center;margin-top:12px;font-size:13.5px;color:#5c666e;text-decoration:none}
.kbw-guest-login b{color:#2e7d1e}
.kbw-guest-login:hover{text-decoration:underline}
