/* ================================================================
   Prize Bond OCR Scanner — pb-scanner.css v5.0
   prizebond.kherifootwear.com — Pakistan National Savings
================================================================ */

/* ── Scoped reset ─────────────────────────────────────────────── */
#pbs-root,#pbs-root *,
#pbs-modal-bg,#pbs-modal-bg * { box-sizing:border-box; margin:0; padding:0; }

/* ── Design tokens ────────────────────────────────────────────── */
#pbs-root {
  --g:    #0a5c38;
  --gd:   #084d2f;
  --gm:   #0f8050;
  --gl:   #e4f5ec;
  --gb:   #6ec896;
  --red:  #c0392b;
  --rl:   #fde9e7;
  --rb:   #f0a8a0;
  --gold: #a86f00;
  --gl2:  #fdf3d0;
  /* Prize tiers */
  --p1:   #b8860b;   /* 1st prize gold */
  --p1l:  #fdf6d3;
  --p1b:  #f5d060;
  --p2:   #5f7f9f;   /* 2nd prize silver-blue */
  --p2l:  #e8f0f8;
  --p2b:  #a8c4df;
  --p3:   #7a5c9a;   /* 3rd prize purple */
  --p3l:  #f0eaf8;
  --p3b:  #c4a8e0;
  --blue: #1a5fa8;
  --bl:   #e8f0fb;
  --bg:   #f2f5f0;
  --card: #ffffff;
  --bdr:  #dce5d6;
  --txt:  #14201a;
  --t2:   #3a5040;
  --t3:   #728070;
  --r:    16px;
  --rs:   10px;
  --shad: 0 8px 40px rgba(0,0,0,.13);
  --font: -apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}

#pbs-root {
  font-family: var(--font);
  background: var(--card);
  color: var(--txt);
  border-radius: var(--r);
  border: 1px solid var(--bdr);
  box-shadow: var(--shad);
  max-width: 1000px;
  margin: 0 auto 52px;
  overflow: hidden;
}

/* ================================================================
   HEADER
================================================================ */
.pbs-header {
  background: linear-gradient(135deg,#063d24 0%,#0a5c38 50%,#0f8050 100%);
  padding: 24px 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.pbs-hd-brand { display:flex; align-items:center; gap:16px; }
.pbs-hd-icon {
  font-size:2.1rem;
  background:rgba(255,255,255,.13);
  border:1.5px solid rgba(255,255,255,.22);
  width:54px; height:54px;
  border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  box-shadow: 0 2px 12px rgba(0,0,0,.25);
}
.pbs-hd-title { color:#fff; font-size:1.25rem; font-weight:800; letter-spacing:-.3px; }
.pbs-hd-sub   { color:rgba(255,255,255,.65); font-size:.78rem; margin-top:4px; }
.pbs-hd-link  { color:rgba(255,255,255,.85); text-decoration:none; }
.pbs-hd-link:hover { color:#fff; text-decoration:underline; }

.pbs-hd-pills  { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.pbs-pill {
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.2);
  color:#fff; font-size:.68rem; font-weight:600;
  padding:4px 11px; border-radius:20px; letter-spacing:.2px;
}
.pbs-pill--live {
  background:rgba(0,255,120,.15);
  border-color:rgba(0,255,120,.35);
  color:#7dffbf;
  animation: pbs-pulse-pill 2s ease-in-out infinite;
}
@keyframes pbs-pulse-pill {
  0%,100% { opacity:1; }
  50%      { opacity:.65; }
}

/* ================================================================
   OFFLINE BAR
================================================================ */
.pbs-offline-bar {
  background:#7a4a00; color:#ffe0a0; font-size:.82rem; font-weight:600;
  padding:9px 20px; display:flex; align-items:center;
  justify-content:space-between; gap:12px; flex-wrap:wrap;
  border-bottom:1px solid #5a3800;
}
.pbs-offline-q { white-space:nowrap; }
.pbs-offline-q strong { color:#fff; }

/* ================================================================
   CONTROLS
================================================================ */
.pbs-controls {
  padding: 18px 22px;
  background: #f7faf7;
  border-bottom: 1px solid var(--bdr);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.pbs-ctrl-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.pbs-ctrl-top { gap:14px; }

.pbs-cg { display:flex; flex-direction:column; gap:4px; }
.pbs-clabel { font-size:.71rem; font-weight:700; color:var(--t2); text-transform:uppercase; letter-spacing:.6px; }
.pbs-csel {
  height:36px; padding:0 28px 0 11px;
  border:1.5px solid var(--bdr); border-radius:8px;
  background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23728070'/%3E%3C/svg%3E") no-repeat right 10px center;
  appearance:none; -webkit-appearance:none;
  font-size:.85rem; color:var(--txt); font-family:var(--font);
  cursor:pointer; transition:border-color .15s;
}
.pbs-csel:focus { outline:none; border-color:var(--gm); box-shadow:0 0 0 3px rgba(15,128,80,.12); }

.pbs-cg--db .pbs-db-info {
  display:flex; align-items:center; gap:8px;
  padding:6px 12px; background:#fff;
  border:1.5px solid var(--bdr); border-radius:8px;
  font-size:.8rem; color:var(--t2);
}
.pbs-db-icon { font-size:1rem; }

/* Buttons */
.pbs-btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 17px; border:none; border-radius:9px;
  font-size:.84rem; font-weight:700; font-family:var(--font);
  cursor:pointer; transition:all .18s; white-space:nowrap;
  letter-spacing:.1px;
}
.pbs-btn:disabled { opacity:.38; cursor:not-allowed; }

.pbs-btn-green  { background:var(--g); color:#fff; }
.pbs-btn-green:hover:not(:disabled)  { background:var(--gd); transform:translateY(-1px); box-shadow:0 4px 14px rgba(10,92,56,.3); }

.pbs-btn-red    { background:var(--red); color:#fff; }
.pbs-btn-red:hover:not(:disabled)    { background:#a5302a; transform:translateY(-1px); box-shadow:0 4px 14px rgba(192,57,43,.28); }

.pbs-btn-gray   { background:#e8ede8; color:var(--t2); border:1.5px solid var(--bdr); }
.pbs-btn-gray:hover:not(:disabled)   { background:#d8e0d8; transform:translateY(-1px); }

.pbs-btn-ghost  { background:transparent; color:var(--t3); border:1.5px solid var(--bdr); }
.pbs-btn-ghost:hover:not(:disabled)  { background:#f0f4f0; color:var(--t2); }

/* Manual Checker button — prominent */
.pbs-btn-manual {
  background:linear-gradient(135deg,#1a5fa8,#2478cc);
  color:#fff; border:none;
  box-shadow: 0 2px 10px rgba(26,95,168,.3);
  text-decoration:none;
}
.pbs-btn-manual:hover {
  background:linear-gradient(135deg,#145190,#1f68b5);
  transform:translateY(-1px);
  box-shadow:0 4px 14px rgba(26,95,168,.35);
  color:#fff;
}

/* Download buttons */
.pbs-btn-dl {
  background:#fff; color:var(--t2);
  border:1.5px solid var(--bdr);
}
.pbs-btn-dl:hover:not(:disabled) {
  background:#f7faf7; border-color:var(--g); color:var(--g);
  transform:translateY(-1px);
}

.pbs-btn-divider {
  width:1px; height:28px; background:var(--bdr); margin:0 4px;
  align-self:center;
}

/* ================================================================
   CAMERA WRAP — bigger
================================================================ */
.pbs-cam-wrap {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;     /* maintains proportions; taller on mobile */
  min-height: 340px;
  background: #0a1208;
  overflow: hidden;
}
@media (max-width:640px) {
  .pbs-cam-wrap { aspect-ratio: 4 / 3; min-height: 260px; }
}

.pbs-cam-state {
  position:absolute; inset:0;
  display:flex; flex-direction:column;
  align-items:center; justify-content:center;
  gap:10px; padding:20px; text-align:center;
}
.pbs-state-err { background:rgba(192,57,43,.06); }
.pbs-state-icon { font-size:3rem; opacity:.7; }
.pbs-state-title { font-size:1.1rem; font-weight:700; color:#fff; }
.pbs-state-sub   { font-size:.82rem; color:rgba(255,255,255,.55); max-width:320px; }

/* ── Scan overlay ─────────────────────────────────────────────── */
.pbs-scan-ov {
  position:absolute; inset:0;
  display:none; flex-direction:column;
  align-items:center; justify-content:center;
  pointer-events:none;
}

/* Bigger scan frame */
.pbs-scan-frame {
  position:relative;
  width: min(80%, 560px);
  height: min(42%, 220px);
  border: none;
}

/* Corner markers */
.pbs-c {
  position:absolute;
  width:28px; height:28px;
  border-color:#4fffb0; border-style:solid;
  border-width:0;
}
.pbs-tl { top:0; left:0;  border-top-width:3px; border-left-width:3px; border-radius:4px 0 0 0; }
.pbs-tr { top:0; right:0; border-top-width:3px; border-right-width:3px; border-radius:0 4px 0 0; }
.pbs-bl { bottom:0; left:0;  border-bottom-width:3px; border-left-width:3px; border-radius:0 0 0 4px; }
.pbs-br { bottom:0; right:0; border-bottom-width:3px; border-right-width:3px; border-radius:0 0 4px 0; }

/* Scanning laser */
.pbs-laser {
  position:absolute; left:0; right:0; top:0;
  height:3px;
  background:linear-gradient(90deg,transparent 0%,#4fffb0 20%,#00ff80 50%,#4fffb0 80%,transparent 100%);
  box-shadow:0 0 12px 2px rgba(0,255,128,.5);
  animation: pbs-laser 1.8s ease-in-out infinite;
}
@keyframes pbs-laser {
  0%   { top:0;    opacity:1; }
  50%  { top:calc(100% - 3px); opacity:.9; }
  100% { top:0;    opacity:1; }
}

/* ── LIVE DETECTED NUMBER overlay inside scan frame ────────────── */
.pbs-detected-overlay {
  position:absolute;
  bottom:-44px; left:50%; transform:translateX(-50%);
  display:flex; align-items:center; gap:8px;
  background:rgba(0,0,0,.75);
  border:1.5px solid rgba(78,255,176,.5);
  border-radius:10px; padding:6px 16px;
  min-width:200px; justify-content:center;
  pointer-events:none;
}
.pbs-det-label {
  font-size:.7rem; font-weight:700; color:#4fffb0;
  text-transform:uppercase; letter-spacing:.5px;
}
.pbs-det-num {
  font-size:1.35rem; font-weight:800; color:#fff;
  letter-spacing:.18em; font-variant-numeric:tabular-nums;
}
.pbs-det-flash { animation: pbs-det-pop .3s ease; }
@keyframes pbs-det-pop {
  0%   { transform:translateX(-50%) scale(.92); opacity:.6; }
  60%  { transform:translateX(-50%) scale(1.05); opacity:1; }
  100% { transform:translateX(-50%) scale(1); }
}

.pbs-scan-hint-wrap {
  position:absolute;
  bottom: min(10%, 28px);
  left:0; right:0;
  display:flex; justify-content:center; pointer-events:none;
}
.pbs-scan-hint {
  font-size:.75rem; color:rgba(255,255,255,.7);
  background:rgba(0,0,0,.45); backdrop-filter:blur(4px);
  padding:5px 14px; border-radius:20px;
  border:1px solid rgba(255,255,255,.12);
}

/* Status pill */
.pbs-status-pill {
  position:absolute; top:14px; left:14px;
  display:flex; align-items:center; gap:7px;
  background:rgba(0,0,0,.6); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px; padding:5px 12px;
  font-size:.77rem; font-weight:600; color:#fff;
}

.pbs-sdot {
  width:8px; height:8px; border-radius:50%;
  background:#aaa; flex-shrink:0;
  transition:background .25s;
}
.pbs-sdot.scanning  { background:#4fffb0; animation:pbs-dot-blink 1s ease-in-out infinite; }
.pbs-sdot.detected  { background:#ffdd44; }
.pbs-sdot.stopped   { background:#888; }
.pbs-sdot.error     { background:var(--red); }
.pbs-sdot.ready     { background:#4fffb0; }
@keyframes pbs-dot-blink {
  0%,100% { opacity:1; } 50% { opacity:.4; }
}

/* Confidence pill */
.pbs-conf-pill {
  position:absolute; bottom:14px; right:14px;
  background:rgba(0,0,0,.6); backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.12);
  border-radius:22px; padding:5px 12px;
  font-size:.75rem; color:rgba(255,255,255,.8);
}
.pbs-conf-pill strong { color:#4fffb0; }

/* ── WIN ALERT overlay ─────────────────────────────────────────── */
.pbs-win-alert {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%);
  pointer-events:none; display:none; z-index:20;
}
.pbs-win-alert-inner {
  padding:14px 28px; border-radius:14px;
  display:flex; align-items:center; gap:10px;
  font-size:1.35rem; font-weight:900; letter-spacing:-.2px;
  border:2.5px solid;
  box-shadow:0 8px 40px rgba(0,0,0,.5);
  backdrop-filter:blur(8px);
  animation:none;
}
.pbs-win-alert-icon { font-size:1.8rem; }
.pbs-alert-in { animation: pbs-alert-bounce .45s cubic-bezier(.175,.885,.32,1.275); }
@keyframes pbs-alert-bounce {
  0%   { opacity:0; transform:scale(.6); }
  70%  { opacity:1; transform:scale(1.08); }
  100% { opacity:1; transform:scale(1); }
}

/* Prize tier colors for alert */
.pbs-win-alert--p1 { background:rgba(184,134,11,.88); border-color:#f5d060; color:#fff6cc; }
.pbs-win-alert--p2 { background:rgba(95,127,159,.88); border-color:#a8c4df; color:#e8f4ff; }
.pbs-win-alert--p3 { background:rgba(122,92,154,.88); border-color:#c4a8e0; color:#f0e8ff; }
.pbs-win-alert--win { background:rgba(10,92,56,.88); border-color:#4fffb0; color:#ccffe8; }

/* ================================================================
   STATS
================================================================ */
.pbs-stats {
  display:grid; grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--bdr);
  border-bottom:1px solid var(--bdr);
}
.pbs-stat {
  padding:18px 10px; text-align:center;
  display:flex; flex-direction:column; gap:4px;
  border-right:1px solid var(--bdr);
  transition:background .2s;
}
.pbs-stat:last-child { border-right:none; }
.pbs-stat:hover { background:#f7faf7; }

.pbs-stat-n {
  font-size:1.75rem; font-weight:900; color:var(--txt);
  line-height:1; transition:transform .2s;
}
.pbs-stat--win  .pbs-stat-n { color:var(--g); }
.pbs-stat--lose .pbs-stat-n { color:var(--red); }
.pbs-stat--prize .pbs-stat-n { color:var(--gold); font-size:1.3rem; }

.pbs-stat-l { font-size:.72rem; font-weight:600; color:var(--t3); text-transform:uppercase; letter-spacing:.5px; }
.pbs-prize-n { font-size:1.15rem !important; }

/* bump animation */
.bump { animation: pbs-bump .22s ease; }
@keyframes pbs-bump {
  0%   { transform:scale(1.3); }
  100% { transform:scale(1); }
}

@media (max-width:520px) {
  .pbs-stats { grid-template-columns:repeat(2,1fr); }
  .pbs-stat:nth-child(2) { border-right:none; }
  .pbs-stat:nth-child(3) { border-right:1px solid var(--bdr); border-top:1px solid var(--bdr); }
  .pbs-stat:nth-child(4) { border-top:1px solid var(--bdr); border-right:none; }
}

/* ================================================================
   RESULTS LIST
================================================================ */
.pbs-results { padding:22px 20px; }

.pbs-results-hdr {
  display:flex; align-items:center; justify-content:space-between;
  gap:12px; flex-wrap:wrap; margin-bottom:16px;
}
.pbs-results-title {
  font-size:1rem; font-weight:800; color:var(--txt);
  display:flex; align-items:center; gap:8px;
}
.pbs-badge-count {
  background:var(--g); color:#fff; font-size:.7rem; font-weight:700;
  padding:2px 9px; border-radius:20px; min-width:24px; text-align:center;
}

.pbs-legend-row { display:flex; gap:12px; flex-wrap:wrap; }
.pbs-leg { font-size:.72rem; color:var(--t3); font-weight:600; letter-spacing:.1px; }
.pbs-leg--p1   { color:var(--p1); }
.pbs-leg--p2   { color:var(--p2); }
.pbs-leg--p3   { color:var(--p3); }
.pbs-leg--win  { color:var(--g);   }
.pbs-leg--lose { color:var(--red); }
.pbs-leg--chk  { color:var(--t3);  }

/* Empty state */
.pbs-empty {
  text-align:center; padding:40px 20px;
  color:var(--t3);
}
.pbs-empty-icon { font-size:2.5rem; display:block; margin-bottom:10px; opacity:.6; }
.pbs-empty p    { font-size:.92rem; font-weight:600; }
.pbs-empty-sub  { font-size:.8rem; margin-top:4px; opacity:.75; }

/* List */
.pbs-list { display:flex; flex-direction:column; gap:8px; max-height:440px; overflow-y:auto; }
.pbs-list::-webkit-scrollbar       { width:5px; }
.pbs-list::-webkit-scrollbar-track { background:#f0f4f0; border-radius:4px; }
.pbs-list::-webkit-scrollbar-thumb { background:var(--bdr); border-radius:4px; }

/* List items */
.pbs-item {
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:12px 15px; border-radius:11px;
  border:1.5px solid var(--bdr); background:#fff;
  transition:all .2s;
  animation: pbs-item-slide .25s ease;
}
@keyframes pbs-item-slide {
  from { opacity:0; transform:translateY(-8px); }
  to   { opacity:1; transform:translateY(0); }
}

.pbs-item.checking  { background:#f8f9f8; border-color:#dde5dd; }
.pbs-item.losing    { background:#fef8f7; border-color:var(--rb); }

/* Prize tier item styles */
.pbs-item--p1 { background:var(--p1l); border-color:var(--p1b); }
.pbs-item--p2 { background:var(--p2l); border-color:var(--p2b); }
.pbs-item--p3 { background:var(--p3l); border-color:var(--p3b); }
.pbs-item.winning:not([class*='pbs-item--p']) { background:var(--gl); border-color:var(--gb); }

.pbs-item.winning { cursor:pointer; }
.pbs-item.winning:hover { transform:translateX(4px); box-shadow:0 3px 14px rgba(0,0,0,.09); }
.pbs-item.winning:focus { outline:2.5px solid var(--g); outline-offset:2px; }

.pbs-item-num {
  font-size:1.05rem; font-weight:800; color:var(--txt);
  font-variant-numeric:tabular-nums; letter-spacing:.06em;
  flex-shrink:0;
}

/* Item tags */
.pbs-item-tag {
  font-size:.65rem; font-weight:700; padding:2px 8px; border-radius:20px;
  letter-spacing:.3px; text-transform:uppercase;
}
.pbs-item-tag--manual  { background:var(--bl); color:var(--blue); }
.pbs-item-tag--offline { background:var(--gl2); color:var(--gold); }

/* Badges */
.pbs-badge {
  display:inline-flex; align-items:center; gap:5px;
  font-size:.76rem; font-weight:700; padding:3px 10px; border-radius:7px;
  letter-spacing:.15px;
}
/* Prize tier badges */
.pbs-badge--p1  { background:var(--p1); color:#fff; }
.pbs-badge--p2  { background:var(--p2); color:#fff; }
.pbs-badge--p3  { background:var(--p3); color:#fff; }
.pbs-badge--win { background:var(--g);  color:#fff; }
.pbs-badge--lose { background:var(--rl); color:var(--red); }
.pbs-badge--chk  { background:#f0f0f0; color:var(--t3); }
.pbs-badge--offq { background:var(--gl2); color:var(--gold); }

.pbs-win-count {
  margin-left:auto;
  width:22px; height:22px; border-radius:50%;
  background:rgba(255,255,255,.6);
  font-size:.72rem; font-weight:800;
  display:flex; align-items:center; justify-content:center;
  color:var(--g); border:1.5px solid rgba(0,0,0,.1);
}
.pbs-item-prize { font-size:.85rem; font-weight:800; color:var(--g); margin-left:auto; }
.pbs-item--p1 .pbs-item-prize { color:var(--p1); }
.pbs-item--p2 .pbs-item-prize { color:var(--p2); }
.pbs-item--p3 .pbs-item-prize { color:var(--p3); }

.pbs-tap-hint { font-size:.7rem; color:var(--t3); margin-left:auto; opacity:.8; }

/* Spinner */
.pbs-spin {
  display:inline-block; width:12px; height:12px;
  border:2px solid rgba(0,0,0,.12);
  border-top-color:var(--g);
  border-radius:50%;
  animation:pbs-spin .7s linear infinite;
}
@keyframes pbs-spin { to { transform:rotate(360deg); } }

/* ================================================================
   QUICK CHECK — SEPARATE SECTION
================================================================ */
.pbs-qc-section {
  border-top: 2px solid var(--bdr);
  background: linear-gradient(180deg,#f7faf7 0%,#fff 100%);
  padding: 0;
}

.pbs-qc-section-hdr {
  padding: 22px 24px 16px;
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:8px;
  border-bottom:1px solid var(--bdr);
}
.pbs-qc-section-title {
  display:flex; align-items:center; gap:10px;
  font-size:1.05rem; font-weight:800; color:var(--txt);
}
.pbs-qc-section-icon {
  width:34px; height:34px; border-radius:9px;
  background:var(--g); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.05rem;
}
.pbs-qc-section-sub { font-size:.8rem; color:var(--t3); }

.pbs-qc-wrap { padding:20px 24px 24px; }

/* Tabs */
.pbs-qc-tabs {
  display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px;
}
.pbs-qc-tab {
  flex:1; min-width:130px; max-width:200px;
  display:flex; flex-direction:column; align-items:center; gap:3px;
  padding:12px 10px; border-radius:11px;
  border:1.5px solid var(--bdr); background:#fff;
  cursor:pointer; transition:all .18s; font-family:var(--font);
}
.pbs-qc-tab.active {
  background:var(--g); border-color:var(--g); color:#fff;
  box-shadow:0 3px 12px rgba(10,92,56,.25);
}
.pbs-qct-icon { font-size:1.3rem; }
.pbs-qc-tab b,
.pbs-qc-tab { font-size:.82rem; font-weight:700; color:var(--txt); }
.pbs-qc-tab.active,
.pbs-qc-tab.active .pbs-qct-desc { color:#fff; }
.pbs-qct-desc { font-size:.68rem; font-weight:500; color:var(--t3); }
.pbs-qc-tab:hover:not(.active) { background:#f0f6f2; border-color:#aaccbb; }

/* Panels */
.pbs-qc-panel { display:none; }
.pbs-qc-panel.active { display:block; }

.pbs-qc-desc { font-size:.81rem; color:var(--t2); margin-bottom:12px; line-height:1.5; }

.pbs-qc-input-row {
  display:flex; gap:10px; align-items:center; flex-wrap:wrap;
}
.pbs-qc-input-wrap {
  position:relative; flex:1; min-width:150px;
}
.pbs-qc-input-icon {
  position:absolute; left:12px; top:50%; transform:translateY(-50%);
  font-size:1rem; pointer-events:none;
}
.pbs-qc-input {
  width:100%; height:44px;
  padding:0 14px 0 38px;
  border:1.5px solid var(--bdr); border-radius:10px;
  font-size:1rem; font-weight:700; font-family:var(--font);
  color:var(--txt); background:#fff;
  transition:border-color .15s;
  letter-spacing:.1em;
}
.pbs-qc-input:focus {
  outline:none; border-color:var(--gm);
  box-shadow:0 0 0 3.5px rgba(15,128,80,.12);
}
.pbs-qc-input::placeholder { font-weight:400; letter-spacing:0; color:#bbc8bb; }

.pbs-qc-btn { height:44px; padding:0 20px; font-size:.88rem; flex-shrink:0; }

/* QC results */
.pbs-qc-result { margin-top:14px; }

.pbs-qcr-loading {
  display:flex; align-items:center; gap:8px;
  font-size:.82rem; color:var(--t3); padding:10px 0;
}
.pbs-qcr-error {
  background:var(--rl); color:var(--red);
  border:1px solid var(--rb); border-radius:8px;
  padding:10px 14px; font-size:.82rem; font-weight:600;
}
.pbs-qcr-lose {
  background:#f8f9f8; border:1.5px solid var(--bdr);
  border-radius:8px; padding:12px 16px;
  font-size:.85rem; color:var(--t2);
}
.pbs-qcr-win {
  border-radius:11px; overflow:hidden;
  border:1.5px solid var(--gb);
}
.pbs-qcr-win--p1 { border-color:var(--p1b); }
.pbs-qcr-win--p2 { border-color:var(--p2b); }
.pbs-qcr-win--p3 { border-color:var(--p3b); }

.pbs-qcr-win-header {
  background:var(--g); padding:10px 14px;
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  flex-wrap:wrap;
}
.pbs-qcr-win--p1 .pbs-qcr-win-header { background:var(--p1); }
.pbs-qcr-win--p2 .pbs-qcr-win-header { background:var(--p2); }
.pbs-qcr-win--p3 .pbs-qcr-win-header { background:var(--p3); }

.pbs-qcr-win-label { font-size:.82rem; font-weight:800; color:#fff; }
.pbs-qcr-win-total { font-size:.82rem; font-weight:800; color:rgba(255,255,255,.9); }
.pbs-qcr-win-rows  { max-height:220px; overflow-y:auto; }
.pbs-qcr-win-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:9px 14px; gap:10px; flex-wrap:wrap;
  border-bottom:1px solid rgba(0,0,0,.05);
}
.pbs-qcr-win-row:last-child { border-bottom:none; }
.pbs-qcr-win-num   { font-size:.9rem; font-weight:800; color:var(--txt); letter-spacing:.06em; }
.pbs-qcr-win-meta  { font-size:.75rem; color:var(--t3); flex:1; text-align:center; }
.pbs-qcr-win-prize { font-size:.82rem; font-weight:700; color:var(--g); white-space:nowrap; }

/* ================================================================
   FOOTER / BRANDING
================================================================ */
.pbs-footer {
  background:linear-gradient(135deg,#063d24,#0a5c38);
  padding:20px 26px;
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.1);
}
.pbs-footer-brand { display:flex; align-items:center; gap:12px; }
.pbs-footer-icon  { font-size:1.6rem; opacity:.8; }
.pbs-footer-name  { color:#fff; font-size:.95rem; font-weight:800; }
.pbs-footer-tag   { color:rgba(255,255,255,.55); font-size:.73rem; margin-top:2px; }
.pbs-footer-links { display:flex; gap:16px; flex-wrap:wrap; }
.pbs-footer-links a {
  color:rgba(255,255,255,.7); font-size:.78rem; font-weight:600;
  text-decoration:none;
  transition:color .15s;
}
.pbs-footer-links a:hover { color:#fff; text-decoration:underline; }

/* ================================================================
   WIN MODAL
================================================================ */
.pbs-modal-bg {
  position:fixed; inset:0; z-index:9999;
  background:rgba(0,0,0,.6); backdrop-filter:blur(4px);
  display:flex; align-items:center; justify-content:center; padding:16px;
}
.pbs-modal {
  background:#fff; border-radius:20px;
  width:100%; max-width:500px; max-height:90vh;
  overflow-y:auto; position:relative;
  box-shadow:0 24px 80px rgba(0,0,0,.35);
  animation:pbs-modal-in .3s cubic-bezier(.175,.885,.32,1.275);
}
@keyframes pbs-modal-in {
  from { opacity:0; transform:scale(.88) translateY(20px); }
  to   { opacity:1; transform:scale(1) translateY(0); }
}

.pbs-modal-x {
  position:absolute; top:14px; right:16px;
  background:rgba(0,0,0,.06); border:none; border-radius:50%;
  width:32px; height:32px; font-size:1rem;
  cursor:pointer; color:var(--t2);
  display:flex; align-items:center; justify-content:center;
  transition:background .15s;
}
.pbs-modal-x:hover { background:rgba(0,0,0,.12); }

.pbs-modal-head {
  padding:28px 24px 20px;
  text-align:center;
  background:linear-gradient(180deg,var(--gl) 0%,#fff 100%);
  border-bottom:1px solid var(--bdr);
}
.pbs-modal-trophy { font-size:2.5rem; margin-bottom:6px; }
.pbs-modal-h { font-size:1.2rem; font-weight:800; color:var(--txt); }
.pbs-modal-bondnum { font-size:1.7rem; font-weight:900; color:var(--g); letter-spacing:.12em; margin-top:6px; }
.pbs-modal-prize-badge { margin-top:8px; }
.pbs-modal-tier-badge {
  display:inline-flex; padding:4px 14px; border-radius:20px;
  font-size:.8rem; font-weight:800;
}
.pbs-modal-tier--p1 { background:var(--p1); color:#fff; }
.pbs-modal-tier--p2 { background:var(--p2); color:#fff; }
.pbs-modal-tier--p3 { background:var(--p3); color:#fff; }
.pbs-modal-tier--win { background:var(--g); color:#fff; }

.pbs-modal-body { padding:16px 20px; display:flex; flex-direction:column; gap:10px; }

.pbs-win-row {
  background:#f7faf7; border-radius:10px; padding:12px 14px;
  border:1px solid var(--bdr);
}
.pbs-win-row-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.pbs-win-label { font-size:.82rem; font-weight:700; color:var(--t2); }
.pbs-win-label--p1 { color:var(--p1); }
.pbs-win-label--p2 { color:var(--p2); }
.pbs-win-label--p3 { color:var(--p3); }
.pbs-win-prize { font-size:.92rem; font-weight:800; color:var(--g); }
.pbs-win-meta {
  display:flex; gap:16px; margin-top:6px;
  font-size:.75rem; color:var(--t3); flex-wrap:wrap;
}

.pbs-modal-foot {
  padding:16px 20px; border-top:1px solid var(--bdr);
  display:flex; align-items:center; justify-content:space-between; gap:10px;
}
.pbs-modal-total { font-size:.88rem; color:var(--t2); }
.pbs-modal-total strong { color:var(--g); font-size:1.05rem; }

/* ================================================================
   RESPONSIVE
================================================================ */
@media (max-width:700px) {
  .pbs-controls { padding:14px 14px; }
  .pbs-ctrl-btns { gap:8px; }
  .pbs-btn { padding:8px 12px; font-size:.8rem; }
  .pbs-results { padding:16px 14px; }
  .pbs-qc-section-hdr { padding:16px 14px 12px; }
  .pbs-qc-wrap { padding:14px 14px 18px; }
  .pbs-qc-tabs { gap:8px; }
  .pbs-qc-tab { min-width:100px; padding:10px 8px; }
  .pbs-footer { padding:16px 18px; }
}

@media (max-width:460px) {
  .pbs-hd-title { font-size:1rem; }
  .pbs-qc-tab { flex:1 1 100px; }
  .pbs-item-prize, .pbs-tap-hint { display:none; }
  .pbs-btn-divider { display:none; }
}
