/* ═══ BFH Pathology & Scan Manager — Public CSS ═══ */
:root{--bps-teal:#0B7A75;--bps-gold:#C9963E;--bps-purple:#5b47c8;--bps-dark:#1B3A5C;}

/* ── Wrap ── */
.bps-wrap{font-family:-apple-system,BlinkMacSystemFont,"DM Sans","Segoe UI",sans-serif;color:#1a2030;}
.bps-wrap *{box-sizing:border-box;}

/* ── Filter Bar ── */
.bps-filter-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:20px;}
.bps-search-box{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px solid #e2e8f0;border-radius:10px;padding:8px 14px;flex:1;min-width:200px;transition:border-color .15s;}
.bps-search-box:focus-within{border-color:var(--bps-teal);}
.bps-search-box input{border:none;outline:none;font-size:14px;width:100%;font-family:inherit;color:#1e293b;}
.bps-cat-pills{display:flex;gap:6px;flex-wrap:wrap;}
.bps-cat-pill{padding:6px 14px;border-radius:20px;border:1.5px solid rgba(11,122,117,.2);background:#fff;color:var(--bps-teal);font-size:.82rem;font-weight:700;cursor:pointer;font-family:inherit;transition:all .16s;}
.bps-cat-pill.on{background:var(--bps-teal);color:#fff;border-color:var(--bps-teal);}
.bps-cat-pill:hover:not(.on){background:rgba(11,122,117,.06);}

/* ── Lab Test Grid ── */
.bps-lab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:14px;}
.bps-scan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:14px;}

/* ── Lab Card ── */
.bps-lab-card{background:#fff;border-radius:14px;border:1.5px solid rgba(201,150,62,.22);padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s;position:relative;}
.bps-lab-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.12);}
.bps-lab-card.cart-added{border-color:rgba(22,163,74,.4);background:#f0fdf4;}
.bps-lab-ico{width:36px;height:36px;background:rgba(201,150,62,.1);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:8px;}
.bps-lab-name{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:4px;line-height:1.3;}
.bps-lab-meta{font-size:11px;color:#64748b;margin-bottom:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bps-disc-badge{background:#dc2626;color:#fff;font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;}
.bps-nabl-badge{background:rgba(11,122,117,.1);color:var(--bps-teal);font-size:9px;font-weight:800;padding:2px 6px;border-radius:4px;}
.bps-price-row{display:flex;align-items:baseline;gap:6px;margin-bottom:4px;}
.bps-price{font-size:16px;font-weight:800;color:var(--bps-gold);}
.bps-price-orig{font-size:11px;color:#94a3b8;text-decoration:line-through;}
.bps-offer-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px;}
.bps-offer-tag{font-size:9px;font-weight:700;padding:2px 7px;border-radius:20px;background:rgba(11,122,117,.09);color:var(--bps-teal);}
.bps-add-btn{width:100%;padding:7px 0;border:none;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;font-family:inherit;transition:all .18s;}
.bps-add-btn.lab{background:var(--bps-gold);color:#fff;}
.bps-add-btn.lab:hover{opacity:.88;}
.bps-add-btn.added{background:#16a34a;color:#fff;}
.bps-add-btn.added:hover{background:#dc2626;}

/* ── Scan Card ── */
.bps-scan-card{background:#fff;border-radius:14px;border:1.5px solid rgba(91,71,200,.18);padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.06);transition:transform .2s,box-shadow .2s;}
.bps-scan-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(0,0,0,.12);}
.bps-scan-card.cart-added{border-color:rgba(22,163,74,.4);background:#f0fdf4;}
.bps-scan-ico{width:36px;height:36px;background:rgba(91,71,200,.1);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;margin-bottom:8px;}
.bps-scan-name{font-size:13px;font-weight:700;color:#1e293b;margin-bottom:4px;line-height:1.3;}
.bps-scan-centre{font-size:11px;color:#64748b;margin-bottom:6px;}
.bps-scan-price{font-size:16px;font-weight:800;color:var(--bps-purple);}
.bps-add-btn.scan{background:linear-gradient(135deg,var(--bps-purple),#4338ca);color:#fff;}
.bps-add-btn.scan:hover{opacity:.88;}

/* ── Skeleton ── */
.bps-sk-card{border-radius:14px;overflow:hidden;background:#fff;border:1px solid #f1f5f9;}
.bps-sk-top{height:90px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;animation:bps-sk 1.4s infinite;}
.bps-sk-top.bps-sk-scan{background:linear-gradient(90deg,#f5f3ff 25%,#ede9fe 50%,#f5f3ff 75%);background-size:200% 100%;animation:bps-sk 1.4s infinite;}
.bps-sk-body{padding:10px;}
.bps-sk-l{height:10px;border-radius:5px;margin:6px 0;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;animation:bps-sk 1.4s infinite;}
.bps-sk-l.w7{width:70%;}
.bps-sk-btn{height:28px;border-radius:8px;margin-top:8px;background:linear-gradient(90deg,#f1f5f9 25%,#e2e8f0 50%,#f1f5f9 75%);background-size:200% 100%;animation:bps-sk 1.4s infinite;}
.bps-sk-btn.bps-sk-scan-btn{background:linear-gradient(90deg,#f5f3ff 25%,#ede9fe 50%,#f5f3ff 75%);background-size:200% 100%;animation:bps-sk 1.4s infinite;}
@keyframes bps-sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ── Toast ── */
#bps-toast{transition:opacity .22s;pointer-events:none;}
#bps-toast.show{opacity:1!important;display:block!important;}

/* ── Cart FAB ── */
#bps-cart-fab{transition:transform .18s;}
#bps-cart-fab:hover{transform:scale(1.1);}

/* ── Responsive ── */
@media(max-width:600px){
  .bps-lab-grid,.bps-scan-grid{grid-template-columns:repeat(2,1fr);gap:10px;}
  .bps-filter-bar{flex-direction:column;align-items:stretch;}
}
