:root{
  --pink-50:#FFF5F8; --pink-100:#FFE8EF; --pink-200:#FBD3E0; --pink-300:#F7B7CD;
  --pink-400:#F292B4; --pink-500:#E86C97; --pink-600:#D64C7F; --pink-700:#B23A66;
  --ink:#4A3A42; --muted:#9A8891; --mint:#7ED0B4; --mint-d:#4FB999;
  --shadow:0 8px 30px rgba(214,76,127,.10); --shadow-sm:0 4px 14px rgba(214,76,127,.08);
  --ui:-apple-system,BlinkMacSystemFont,'SF Pro Text','SF Pro Display','Segoe UI',Roboto,'Helvetica Neue',Arial,'Noto Sans',sans-serif;
}
*{font-family:var(--ui)}
body{background:linear-gradient(160deg,#FFF9FB 0%,#FFF0F5 100%);color:var(--ink);min-height:100vh;margin:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4,.brand-font{font-family:var(--ui);font-weight:700}
.fw-600{font-weight:600}
a{color:var(--pink-600)}
.topbar{background:rgba(255,255,255,.9);backdrop-filter:blur(10px);border-bottom:1px solid var(--pink-200);
  height:64px;position:sticky;top:0;z-index:1040;box-shadow:0 2px 20px rgba(214,76,127,.06)}
.topbar .logo{font-family:var(--ui);font-weight:700;color:var(--pink-600);font-size:1.12rem;letter-spacing:-.3px}
.topbar .logo i{color:var(--pink-500)}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--pink-300),var(--pink-500));
  display:grid;place-items:center;color:#fff;font-weight:700}
.layout{display:flex;min-height:calc(100vh - 64px)}
.sidebar{width:250px;flex:0 0 250px;background:#fff;border-right:1px solid var(--pink-100);padding:18px 14px;
  position:sticky;top:64px;height:calc(100vh - 64px);transition:.25s;z-index:1035}
.nav-pill{display:flex;align-items:center;gap:12px;padding:12px 15px;border-radius:14px;color:var(--ink);
  text-decoration:none;font-weight:600;font-size:.95rem;margin-bottom:6px;transition:.18s}
.nav-pill i{font-size:1.15rem;width:24px;text-align:center;color:var(--pink-400)}
.nav-pill:hover{background:var(--pink-50);color:var(--pink-600)}
.nav-pill.active{background:linear-gradient(135deg,var(--pink-400),var(--pink-600));color:#fff;box-shadow:var(--shadow-sm)}
.nav-pill.active i{color:#fff}
.side-card{margin-top:20px;padding:14px;background:linear-gradient(135deg,var(--pink-100),var(--pink-50));border-radius:16px;text-align:center}
.content{flex:1;padding:26px 30px;max-width:100%;overflow-x:hidden}
.page-title{font-size:1.9rem;margin-bottom:4px;color:var(--pink-700)}
.page-sub{color:var(--muted);margin-bottom:22px;font-size:.92rem}
.card-soft{background:#fff;border:1px solid var(--pink-100);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.card-head{background:linear-gradient(135deg,var(--pink-400),var(--pink-600));color:#fff;padding:15px 22px;
  font-family:var(--ui);font-weight:700;font-size:1.05rem;display:flex;align-items:center;gap:10px}
.card-body-p{padding:22px}
.stat{background:#fff;border:1px solid var(--pink-100);border-radius:20px;padding:18px 20px;box-shadow:var(--shadow-sm);height:100%}
.stat .ic{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;font-size:1.4rem;margin-bottom:12px}
.stat .val{font-family:var(--ui);font-weight:700;font-size:1.6rem;line-height:1;color:var(--ink)}
.stat .lb{color:var(--muted);font-size:.85rem;margin-top:6px}
.ic-pink{background:var(--pink-100);color:var(--pink-600)}
.ic-mint{background:#E0F5EE;color:var(--mint-d)}
.ic-amber{background:#FFF0DC;color:#E39A22}
.ic-violet{background:#EEE8FB;color:#8B6DD6}
.form-label-p{font-weight:600;color:var(--ink);font-size:.9rem;margin-bottom:6px;display:block}
.form-control-p{border:1.5px solid var(--pink-200);border-radius:13px;padding:10px 14px;width:100%;outline:0;transition:.15s;background:var(--pink-50);font-size:.95rem}
.form-control-p:focus{border-color:var(--pink-400);background:#fff;box-shadow:0 0 0 4px rgba(242,146,180,.15)}
.btn-pink{background:linear-gradient(135deg,var(--pink-500),var(--pink-600));color:#fff;border:0;border-radius:13px;
  padding:11px 24px;font-weight:600;box-shadow:var(--shadow-sm);transition:.18s;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
.btn-pink:hover{color:#fff;transform:translateY(-1px);box-shadow:0 8px 22px rgba(214,76,127,.28)}
.btn-mint{background:linear-gradient(135deg,var(--mint),var(--mint-d));color:#fff;border:0;border-radius:12px;padding:9px 18px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.btn-mint:hover{color:#fff;filter:brightness(.97)}
.btn-ghost{background:var(--pink-50);color:var(--pink-600);border:1.5px solid var(--pink-200);border-radius:12px;padding:9px 18px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn-soft-edit{background:#E0F5EE;color:var(--mint-d);border:0;border-radius:9px;font-weight:600;padding:6px 14px;cursor:pointer;text-decoration:none;display:inline-block}
.btn-soft-del{background:#FDE4EA;color:var(--pink-600);border:0;border-radius:9px;font-weight:600;padding:6px 14px;cursor:pointer;text-decoration:none;display:inline-block}
.btn-soft-info{background:#E8EEFB;color:#5B7FD6;border:0;border-radius:9px;font-weight:600;padding:6px 14px;cursor:pointer;text-decoration:none;display:inline-block}
.tbl{width:100%;border-collapse:separate;border-spacing:0}
.tbl thead th{background:var(--pink-50);color:var(--pink-700);font-weight:700;font-size:.82rem;text-transform:uppercase;
  letter-spacing:.4px;padding:14px 16px;border-bottom:2px solid var(--pink-100);text-align:left}
.tbl tbody td{padding:13px 16px;border-bottom:1px solid var(--pink-50);font-size:.92rem;vertical-align:middle}
.tbl tbody tr:hover{background:var(--pink-50)}
.idpill{background:var(--pink-100);color:var(--pink-600);border-radius:8px;padding:3px 9px;font-weight:600;font-size:.82rem}
.pointbadge{background:linear-gradient(135deg,#FFF0DC,#FFE0B8);color:#C77E14;border-radius:20px;padding:4px 12px;font-weight:700;font-size:.82rem;white-space:nowrap}
.tablecard{background:#fff;border:1px solid var(--pink-100);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}
.tabletop{padding:16px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}
.search-box{background:var(--pink-50);border:1px solid var(--pink-200);border-radius:14px;padding:9px 14px;display:flex;align-items:center;gap:8px;color:var(--muted)}
.search-box input{border:0;background:transparent;outline:0;width:100%;font-size:.9rem;color:var(--ink)}
.pager{display:flex;gap:6px;flex-wrap:wrap}
.pager a,.pager span{min-width:38px;height:38px;border-radius:11px;border:1.5px solid var(--pink-200);background:#fff;color:var(--pink-600);
  display:grid;place-items:center;font-weight:600;text-decoration:none;padding:0 10px}
.pager a.active{background:linear-gradient(135deg,var(--pink-400),var(--pink-600));color:#fff;border-color:transparent}
.pager span.dis{opacity:.4}
.item-row{display:flex;gap:10px;align-items:center;background:var(--pink-50);border:1px solid var(--pink-100);border-radius:14px;padding:10px;margin-bottom:10px}
.qty-input{width:80px;flex:0 0 80px}
.sel-p{border:1.5px solid var(--pink-200);border-radius:11px;padding:9px 12px;background:#fff;outline:0;flex:1;min-width:120px;font-size:.92rem}
.flash{padding:13px 18px;border-radius:14px;margin-bottom:18px;font-weight:600;display:flex;align-items:center;gap:10px}
.flash-success{background:#E0F5EE;color:var(--mint-d);border:1px solid #b8e8d8}
.flash-error{background:#FDE4EA;color:var(--pink-600);border:1px solid var(--pink-200)}
.menu-btn{display:none;background:var(--pink-50);border:1px solid var(--pink-200);border-radius:11px;width:42px;height:42px;color:var(--pink-600);font-size:1.3rem;cursor:pointer}
.backdrop{display:none;position:fixed;inset:64px 0 0 0;background:rgba(74,58,66,.35);z-index:1030}
.modal-p{position:fixed;inset:0;background:rgba(74,58,66,.45);z-index:2000;display:none;align-items:center;justify-content:center;padding:16px}
.modal-p.show{display:flex}
.modal-card{background:#fff;border-radius:22px;max-width:480px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;max-height:92vh;overflow-y:auto}
@media(max-width:900px){
  .sidebar{position:fixed;left:-270px;top:64px;box-shadow:0 10px 40px rgba(0,0,0,.15)}
  .sidebar.open{left:0}
  .backdrop.show{display:block}
  .menu-btn{display:grid;place-items:center}
  .content{padding:20px 16px}
  .page-title{font-size:1.5rem}
  .card-body-p{padding:16px}
  .tbl thead{display:none}
  .tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:100%}
  .tbl tbody tr{border:1px solid var(--pink-100);border-radius:16px;margin-bottom:12px;padding:6px;box-shadow:var(--shadow-sm)}
  .tbl tbody td{border:0;padding:8px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:right}
  .tbl tbody td::before{content:attr(data-l);font-weight:700;color:var(--pink-600);font-size:.8rem;text-align:left}
}
/* Login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{background:#fff;border-radius:26px;box-shadow:var(--shadow);width:100%;max-width:400px;padding:36px 30px;border:1px solid var(--pink-100)}
.login-logo{width:70px;height:70px;border-radius:22px;background:linear-gradient(135deg,var(--pink-300),var(--pink-500));display:grid;place-items:center;color:#fff;font-size:2rem;margin:0 auto 16px}
/* Lookup public */
.lookup-hero{background:linear-gradient(135deg,var(--pink-400),var(--pink-600));color:#fff;padding:40px 20px;text-align:center}
.balance-ring{width:150px;height:150px;border-radius:50%;background:linear-gradient(135deg,var(--pink-400),var(--pink-600));display:grid;place-items:center;color:#fff;margin:0 auto;box-shadow:0 10px 30px rgba(214,76,127,.3)}
.gift-card{background:#fff;border:1px solid var(--pink-100);border-radius:18px;overflow:hidden;box-shadow:var(--shadow-sm);transition:.18s;height:100%}
.gift-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.gift-thumb{height:120px;background:linear-gradient(135deg,var(--pink-100),var(--pink-200));display:grid;place-items:center;font-size:2.6rem;color:var(--pink-500)}

/* ============ Mini-utilities (tự chứa, không cần Bootstrap CDN) ============ */
*,*::before,*::after{box-sizing:border-box}
.container{width:100%;max-width:1140px;margin:0 auto;padding:0 12px}
.row{display:flex;flex-wrap:wrap;margin:0 -8px}
.row>[class*="col"]{padding:0 8px}
.g-2{margin:0 -6px}.g-2>[class*="col"]{padding:6px}
.g-3{margin:0 -8px}.g-3>[class*="col"]{padding:8px}
.g-4{margin:0 -12px}.g-4>[class*="col"]{padding:12px}
[class*="col-"]{flex:0 0 auto}
.col-12{width:100%}.col-6{width:50%}
@media(min-width:768px){.col-md-3{width:25%}.col-md-4{width:33.333%}.col-md-6{width:50%}}
@media(min-width:992px){.col-lg-3{width:25%}.col-lg-5{width:41.666%}.col-lg-7{width:58.333%}}
@media(max-width:991px){.col-lg-5,.col-lg-7{width:100%}}
@media(max-width:767px){.col-md-3,.col-md-4,.col-md-6{width:100%}}
.d-flex{display:flex}.d-inline{display:inline}.d-none{display:none}.d-inline-block{display:inline-block}
.align-items-center{align-items:center}.justify-content-end{justify-content:flex-end}
.justify-content-between{justify-content:space-between}.justify-content-center{justify-content:center}
.flex-wrap{flex-wrap:wrap}.ms-auto{margin-left:auto}
.gap-2{gap:8px}.gap-3{gap:12px}
.text-center{text-align:center}.text-nowrap{white-space:nowrap}.text-end{text-align:right}
.text-muted{color:var(--muted)}.text-danger{color:var(--pink-600)}
.small{font-size:.85rem}.fw-normal{font-weight:400}.fw-bold{font-weight:700}
.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:16px}.mb-4{margin-bottom:24px}
.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:16px}.mt-4{margin-top:24px}
.p-3{padding:16px}.px-3{padding-left:16px;padding-right:16px}.py-0{padding-top:0;padding-bottom:0}
.border-top{border-top:1px solid var(--pink-100)}
.w-100{width:100%}
@media(min-width:576px){.d-sm-inline{display:inline}}
@media(min-width:768px){.d-md-inline{display:inline}.px-md-4{padding-left:24px;padding-right:24px}}
/* Dropdown (CSS-only, không cần JS) */
.dropdown{position:relative}
.dropdown-menu{position:absolute;right:0;top:calc(100% + 8px);background:#fff;border:1px solid var(--pink-100);
  border-radius:14px;box-shadow:var(--shadow);padding:8px;min-width:210px;list-style:none;margin:0;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:.15s;z-index:1050}
.dropdown:hover .dropdown-menu,.dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:none}
.dropdown-menu li{list-style:none}
.dropdown-item{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.9rem}
.dropdown-item:hover{background:var(--pink-50)}
.dropdown-menu-end{right:0}

/* ============ Icon tự chứa bằng emoji (không cần CDN) ============ */
.bi{display:inline-block;font-style:normal;line-height:1;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.bi::before{display:inline-block}
.bi-heart-fill::before{content:"🎀"}
.bi-speedometer2::before{content:"📊"}
.bi-droplet-fill::before{content:"🍼"}
.bi-droplet-half::before{content:"🍼"}
.bi-tag-fill::before{content:"🏷️"}
.bi-people-fill::before{content:"👥"}
.bi-gift-fill::before{content:"🎁"}
.bi-clock-history::before{content:"🕘"}
.bi-search::before{content:"🔍"}
.bi-list::before{content:"☰"}
.bi-plus-lg::before{content:"➕"}
.bi-plus-circle::before{content:"➕"}
.bi-person-plus::before{content:"👤"}
.bi-person-vcard::before{content:"🧾"}
.bi-check2::before,.bi-check2-circle::before{content:"✅"}
.bi-check-circle-fill::before{content:"✅"}
.bi-trash3::before{content:"🗑️"}
.bi-box-arrow-in-right::before{content:"🔑"}
.bi-box-arrow-right::before{content:"🚪"}
.bi-arrow-left::before{content:"←"}
.bi-arrow-up-circle-fill::before{content:"⬆️"}
.bi-bag-heart-fill::before{content:"🛍️"}
.bi-bag-check-fill::before{content:"🛒"}
.bi-star-fill::before{content:"⭐"}
.bi-exclamation-triangle-fill::before{content:"⚠️"}
.bi-info-circle::before{content:"ℹ️"}
.bi-pause-circle::before{content:"⏸️"}
.bi-gear-fill::before{content:"⚙️"}

/* role badges + audit */
.bi-person-badge::before{content:"🪪"}
.bi-shield-lock-fill::before{content:"🔒"}
.bi-x-circle::before{content:"✖️"}
.bi-lock-fill::before{content:"🔒"}
.rolebadge{display:inline-block;font-size:.68rem;font-weight:700;padding:1px 8px;border-radius:20px}
.role-admin{background:#EEE8FB;color:#7A55C9}
.role-staff{background:#E0F5EE;color:var(--mint-d)}
.status-cancel{background:#F3E2E7;color:#9A8891;border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:600;text-decoration:line-through}
.status-active{background:#E0F5EE;color:var(--mint-d);border-radius:20px;padding:2px 10px;font-size:.78rem;font-weight:600}
.chk-confirm{display:flex;gap:10px;align-items:flex-start;background:#FFF6DE;border:1px solid #F5D98A;border-radius:12px;padding:12px;margin:14px 0;cursor:pointer}
.chk-confirm input{margin-top:3px;width:18px;height:18px;flex:0 0 18px}
.receipt{background:var(--pink-50);border:1px dashed var(--pink-300);border-radius:14px;padding:16px}

/* thẻ chọn quà trong màn đổi quà */
.giftpick{background:var(--pink-50);border:1.5px solid var(--pink-100);border-radius:16px;padding:12px 10px;text-align:center;cursor:pointer;transition:.15s;height:100%}
.giftpick:hover{border-color:var(--pink-400);box-shadow:var(--shadow-sm);transform:translateY(-2px)}
.giftpick-off{opacity:.55;filter:grayscale(.3)}
.giftpick-off:hover{transform:none;border-color:var(--pink-200)}

/* ô số lượng khi đổi quà */
.qtybox{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--pink-50);border:1px solid var(--pink-100);border-radius:14px;padding:10px 14px;margin-bottom:12px}
.qtyctrl{display:inline-flex;align-items:center;gap:6px}
.qbtn{width:34px;height:34px;border-radius:10px;border:1.5px solid var(--pink-300);background:#fff;color:var(--pink-600);font-size:1.2rem;font-weight:700;cursor:pointer;line-height:1}
.qbtn:hover{background:var(--pink-100)}
#r_qty{width:64px;text-align:center;border:1.5px solid var(--pink-200);border-radius:10px;padding:7px;font-size:1rem;font-weight:700;color:var(--ink);outline:0}

/* ============ Logo KHANG BABY ============ */
.brand-lockup{display:inline-flex;align-items:center;gap:9px;vertical-align:middle}
.brand-mark{display:block;flex:0 0 auto}
.brand-img{border-radius:6px}
.brand-wm{font-family:'Quicksand',var(--ui);font-weight:800;letter-spacing:.5px;line-height:1;font-size:1.15rem;display:inline-flex;gap:.18em;-webkit-text-stroke:.6px var(--o);paint-order:stroke fill}
.brand-wm .wm-k{color:var(--k)} .brand-wm .wm-b{color:var(--b)}
.topbar .brand-lockup .brand-wm{font-size:1.42rem}
.topbar .logo{gap:10px}
.login-logo-lockup{display:flex;justify-content:center;margin-bottom:6px}
.login-logo-lockup .brand-wm{font-size:1.5rem}
.hero-logo{display:inline-flex;background:#fff;border-radius:20px;padding:12px 20px;box-shadow:0 8px 24px rgba(214,76,127,.2)}
.hero-logo .brand-wm{font-size:1.5rem}
.side-logo{display:flex;justify-content:center;align-items:center}
.side-logo .brand-wm{font-size:1.05rem}
@media(max-width:900px){.topbar .brand-lockup .brand-wm{font-size:1.2rem}}

/* ============ Ô tìm quà khi đổi ============ */
.giftsearch{background:var(--pink-50);border:1.5px solid var(--pink-200);border-radius:12px;padding:8px 12px;display:flex;align-items:center;gap:8px;margin-bottom:12px}
.giftsearch input{border:0;background:transparent;outline:0;width:100%;font-size:.92rem;color:var(--ink)}
.giftpick-col[hidden]{display:none !important}
.gift-noresult{padding:14px;text-align:center;color:var(--muted)}

/* ============ Trang chủ (landing) ============ */
.lookup-hero{position:relative}
.home-topbtn{position:absolute;top:16px;right:18px}
.btn-home-ghost{display:inline-flex;align-items:center;gap:7px;background:rgba(255,255,255,.2);border:1.5px solid rgba(255,255,255,.6);color:#fff;border-radius:12px;padding:8px 15px;font-weight:600;text-decoration:none;font-size:.9rem;backdrop-filter:blur(4px);transition:.15s}
.btn-home-ghost:hover{background:#fff;color:var(--pink-600)}
.home-card{background:#fff;border:1px solid var(--pink-100);border-radius:20px;box-shadow:var(--shadow);padding:26px 24px;text-align:center;height:100%}
.home-ic{width:60px;height:60px;border-radius:18px;display:inline-grid;place-items:center;font-size:1.8rem;margin-bottom:8px}
@media(max-width:520px){.home-topbtn{position:static;text-align:center;margin-bottom:14px}}

/* ============ Giỏ đổi nhiều quà ============ */
.giftpick{position:relative}
.gift-view{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:8px;border:0;background:rgba(255,255,255,.85);color:var(--pink-600);cursor:pointer;display:grid;place-items:center;font-size:.8rem;box-shadow:0 2px 6px rgba(0,0,0,.1)}
.gift-view:hover{background:#fff}
.cart-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--pink-50)}
.cart-thumb{flex:0 0 40px}
.cart-info{flex:1;min-width:0}
.cart-qtyctrl{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}
.cart-qtyctrl .qbtn{width:28px;height:28px;font-size:1rem}
.cart-q{width:46px;text-align:center;border:1.5px solid var(--pink-200);border-radius:8px;padding:4px;font-weight:700;color:var(--ink);outline:0;font-size:.9rem}
.cart-line{flex:0 0 auto;text-align:right;color:var(--pink-600);font-size:.9rem;min-width:52px}
.cart-x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:.85rem;margin-top:2px}
.cart-x:hover{color:var(--pink-600)}
.cart-total{background:var(--pink-50);border:1px solid var(--pink-100);border-radius:12px;padding:12px 14px;margin:12px 0}
.toast-msg{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;padding:10px 20px;border-radius:30px;font-weight:600;font-size:.9rem;opacity:0;pointer-events:none;transition:.25s;z-index:3000;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.toast-msg.show{opacity:1;transform:translateX(-50%) translateY(0)}

/* thanh giỏ nổi cố định đáy màn hình */
.cartbar{position:fixed;left:50%;bottom:-90px;transform:translateX(-50%);z-index:1900;background:linear-gradient(135deg,var(--pink-500),var(--pink-600));color:#fff;border-radius:18px;box-shadow:0 12px 34px rgba(214,76,127,.4);padding:10px 14px;display:flex;align-items:center;gap:16px;transition:.3s;max-width:94vw}
.cartbar.show{bottom:18px}
.cartbar-info{display:flex;align-items:center;gap:11px;cursor:pointer;line-height:1.25}
.cartbar-ic{position:relative;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.2);display:grid;place-items:center;font-size:1.2rem;flex:0 0 40px}
.cartbar-badge{position:absolute;top:-6px;right:-6px;background:#fff;color:var(--pink-600);border-radius:20px;min-width:20px;height:20px;display:grid;place-items:center;font-size:.72rem;font-weight:800;padding:0 5px}
@media(max-width:560px){.cartbar{width:94vw;justify-content:space-between}.cartbar .btn-mint{padding:9px 12px}}
body{padding-bottom:84px}

/* hàng công cụ: ô tìm + nút giỏ cạnh nhau */
.gifttools{display:flex;gap:10px;align-items:stretch;margin-bottom:10px;flex-wrap:wrap}
.cartbtn{position:relative;padding:9px 16px;white-space:nowrap;flex:0 0 auto}
.cartbtn-badge{position:absolute;top:-8px;right:-8px;background:#fff;color:var(--pink-600);border:2px solid var(--pink-400);border-radius:20px;min-width:22px;height:22px;display:grid;place-items:center;font-size:.74rem;font-weight:800;padding:0 5px}
.cartbtn-badge.has{background:var(--mint-d);color:#fff;border-color:#fff}
/* nút + thêm vào giỏ trên thẻ quà */
.gift-add{position:absolute;top:6px;right:6px;width:30px;height:30px;border-radius:10px;border:0;background:linear-gradient(135deg,var(--mint),var(--mint-d));color:#fff;cursor:pointer;display:grid;place-items:center;font-size:.95rem;font-weight:800;box-shadow:0 3px 8px rgba(79,185,153,.4);transition:.15s}
.gift-add:hover{transform:scale(1.12)}
/* logo sidebar to + căn giữa */
.side-card{padding:18px 14px}
.side-logo{display:flex;justify-content:center;align-items:center}
.side-logo .brand-mark{width:56px;height:53px}
.side-logo .brand-wm{font-size:1.32rem}
.side-card .fw-600{display:block;text-align:center;font-size:.98rem;letter-spacing:.4px}
.side-card .text-muted{display:block;text-align:center}
/* ẩn thanh nổi cũ nếu còn */
.cartbar{display:none !important}
body{padding-bottom:24px}
