/* v1.11.12 — shared employee/customer numeric-entry popover */
.tbpos-number-popover[hidden]{display:none!important}
.tbpos-number-popover{
  position:fixed;
  z-index:2147483000;
  width:min(300px,calc(100vw - 20px));
  box-sizing:border-box;
  padding:10px;
  border:1px solid var(--tbpos-number-border,rgba(255,255,255,.22));
  border-radius:14px;
  background:var(--tbpos-number-bg,#241f27);
  color:var(--tbpos-number-text,#fff);
  box-shadow:0 16px 44px rgba(0,0,0,.34);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-size:14px;
  line-height:1.2;
  touch-action:manipulation;
}
.tbpos-number-popover:after{
  content:"";
  position:absolute;
  left:50%;
  width:12px;
  height:12px;
  background:var(--tbpos-number-bg,#241f27);
  border:solid var(--tbpos-number-border,rgba(255,255,255,.18));
  transform:translateX(-50%) rotate(45deg);
}
.tbpos-number-popover[data-placement="below"]:after{top:-7px;border-width:1px 0 0 1px}
.tbpos-number-popover[data-placement="above"]:after{bottom:-7px;border-width:0 1px 1px 0}
.tbpos-number-popover-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px;margin-bottom:8px}
.tbpos-number-popover-head>div{min-width:0}
.tbpos-number-popover-eyebrow{display:block;margin-bottom:2px;color:var(--tbpos-number-muted,#c8bdcc);font-size:9px;font-weight:900;letter-spacing:.13em}
.tbpos-number-popover-head strong{display:block;min-width:0;font-size:12px;line-height:1.15;overflow-wrap:break-word}
.tbpos-number-done{
  min-width:72px;
  min-height:42px;
  margin:0;
  border:0;
  border-radius:9px;
  padding:8px 12px;
  background:var(--tbpos-number-done-bg,#6dbca1);
  color:var(--tbpos-number-done-text,#10281f);
  font:900 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
}
.tbpos-number-value{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  width:100%;
  min-height:50px;
  box-sizing:border-box;
  margin:0 0 8px;
  padding:8px 12px;
  border-radius:10px;
  background:var(--tbpos-number-value-bg,#fff);
  color:var(--tbpos-number-value-text,#201b22);
  font-size:28px;
  line-height:1;
  font-weight:850;
  font-variant-numeric:tabular-nums;
  overflow:hidden;
  white-space:nowrap;
}
.tbpos-number-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.tbpos-number-keypad button,.tbpos-number-touch-tools button{
  min-width:0;
  min-height:46px;
  border:1px solid var(--tbpos-number-border,#ffffff22);
  border-radius:9px;
  background:var(--tbpos-number-key-bg,#3a333e);
  color:var(--tbpos-number-text,#fff);
  font:850 18px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  cursor:pointer;
  user-select:none;
  -webkit-user-select:none;
}
.tbpos-number-keypad button.is-wide{grid-column:span 2;font-size:11px;letter-spacing:.08em}
.tbpos-number-keypad button:disabled,.tbpos-number-touch-tools button:disabled{opacity:.3;cursor:not-allowed}
.tbpos-number-keypad button:focus-visible,.tbpos-number-touch-tools button:focus-visible,.tbpos-number-done:focus-visible{outline:3px solid var(--tbpos-number-focus,#fff);outline-offset:2px}
.tbpos-number-native-hint{margin:0 0 8px;color:var(--tbpos-number-muted,#ddd4e1);font-size:11px;line-height:1.3;text-align:center}
.tbpos-number-touch-tools{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.tbpos-number-touch-tools button{min-height:42px;font-size:11px;letter-spacing:.06em}
input.tbpos-number-input-active{outline:3px solid var(--tbpos-number-focus,#6dbca1)!important;outline-offset:2px!important}
@media (hover:hover) and (pointer:fine){
  .tbpos-number-keypad button:hover,.tbpos-number-touch-tools button:hover{background:color-mix(in srgb,var(--tbpos-number-key-bg,#3a333e) 82%,var(--tbpos-number-text,#fff) 18%)}
  .tbpos-number-done:hover{filter:brightness(1.06)}
}
@media (max-width:620px),(pointer:coarse){
  .tbpos-number-popover{width:min(330px,calc(100vw - 16px));padding:9px;border-radius:12px}
  .tbpos-number-popover-head{align-items:center;margin-bottom:6px}
  .tbpos-number-value{min-height:44px;margin-bottom:6px;font-size:24px}
  .tbpos-number-done{min-width:82px;min-height:44px;font-size:13px}
}
/* v1.14.3 — credential fields use the shared popover without decimal/sign keys. */
.tbpos-number-popover.is-digits-only .tbpos-number-keypad [data-tbpos-number-action="sign"],
.tbpos-number-popover.is-digits-only .tbpos-number-keypad [data-tbpos-number-action="decimal"]{display:none}
.tbpos-number-popover.is-digits-only .tbpos-number-keypad [data-tbpos-number-action="clear"]{grid-row:4;grid-column:1!important;font-size:11px;letter-spacing:.06em}
.tbpos-number-popover.is-digits-only .tbpos-number-keypad [data-tbpos-number-key="0"]{grid-row:4;grid-column:2}
.tbpos-number-popover.is-digits-only .tbpos-number-keypad [data-tbpos-number-action="backspace"]{grid-row:4;grid-column:3}
.tbpos-number-popover.is-masked .tbpos-number-value{justify-content:center;letter-spacing:.18em}

/* v1.14.5 — credential PINs are text inputs to avoid browser password-manager interception. */
input[data-tbpos-credential][data-tbpos-number-mask]{
  -webkit-text-security:disc;
  text-security:disc;
}

/* v1.14.6 — the shared keypad lives under <body>, so it must sit above fullscreen POS (z-index 999999). */
.tbpos-number-popover{z-index:2147483000!important}

/* v1.15.4 — when opened from Neon, numeric entry inherits that terminal's editable palette. */
.tbpos-number-popover.is-neon-themed{box-shadow:0 16px 44px rgba(0,0,0,.5),0 0 20px color-mix(in srgb,var(--tbpos-number-focus,#59E1C3) 24%,transparent)}
.tbpos-number-popover.is-neon-themed .tbpos-number-value{border:1px solid var(--tbpos-number-border,#4D416F)}
.tbpos-number-popover.is-neon-themed .tbpos-number-done{box-shadow:0 0 12px color-mix(in srgb,var(--tbpos-number-done-bg,#59E1C3) 34%,transparent)}
