/* QuickPOS Shared PIN Gate Styles
   Used by index.html (POS), order-display.html (KDS), display.html (customer display).
   Relies on CSS variables: --bg, --bg2, --fg, --fg2, --fg3, --primary, --primary-dim,
   --primary-glow, --border, --border2, --card, --card2, --radius, --radius-xl,
   --red, --font-display
*/

.lock-screen {
  position: fixed; inset: 0; z-index: 9999;
  background: var(--bg);
  display: flex; align-items: center; justify-content: center;
}
.lock-screen-inner {
  display: flex; flex-direction: column; align-items: center; gap: 20px;
  padding: 40px 20px;
  width: 100%; max-width: 340px;
}
.lock-logo {
  display: flex; align-items: center; gap: 12px; margin-bottom: 8px;
}
.lock-brand {
  font-family: var(--font-display); font-size: 26px; font-weight: 800;
}
.lock-title {
  font-size: 16px; color: var(--fg2); font-weight: 500;
}

.lock-dots {
  display: flex; gap: 18px;
}
.lock-dots span {
  width: 18px; height: 18px; border-radius: 50%;
  border: 2px solid var(--border2);
  transition: background 0.15s, border-color 0.15s, transform 0.15s;
}
.lock-dots span.filled {
  background: var(--primary); border-color: var(--primary);
  transform: scale(1.15);
  box-shadow: 0 0 0 4px var(--primary-dim);
}
.lock-dots.shake { animation: pinShake 0.5s ease; }
@keyframes pinShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-10px); }
  40% { transform: translateX(10px); }
  60% { transform: translateX(-7px); }
  80% { transform: translateX(7px); }
}
.lock-error {
  font-size: 14px; color: var(--red); min-height: 20px; font-weight: 500;
  text-align: center;
}

.pin-box {
  background: var(--card); border: 1px solid var(--border2);
  border-radius: var(--radius-xl); padding: 28px 24px 20px;
  display: flex; flex-direction: column; align-items: center; gap: 20px;
  width: 100%;
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
}

.lock-pad {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 10px; width: 100%; max-width: 260px;
}
.pin-key {
  height: 62px; border-radius: var(--radius);
  background: var(--card2); border: 1px solid var(--border);
  color: var(--fg); font-size: 24px; font-weight: 600;
  font-family: var(--font-display);
  display: flex; align-items: center; justify-content: center;
  transition: background .1s, transform .1s, border-color .15s;
  cursor: pointer; position: relative; overflow: hidden;
}
.pin-key::after {
  content: ''; position: absolute; inset: 0;
  background: var(--primary); opacity: 0;
  transition: opacity .15s;
  border-radius: inherit;
}
.pin-key:hover  { background: var(--bg2); border-color: var(--border2); }
.pin-key:active { transform: scale(0.93); }
.pin-key:active::after { opacity: .12; }
.pin-key:disabled { opacity: .5; cursor: not-allowed; }
.pin-del { font-size: 20px; color: var(--fg2); }
