/* [hidden] da solo non basta: display:flex dell'autore batte lo UA su [hidden] */
.st-lockscreen {
  position: fixed;
  inset: 0;
  z-index: 99999;
  pointer-events: none;
}
.st-lockscreen[hidden] {
  display: none;
  pointer-events: none;
}
.st-lockscreen:not([hidden]) {
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}
.st-lockscreen__backdrop {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(0, 0, 0, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  pointer-events: auto;
}
.st-lockscreen__panel {
  position: relative;
  z-index: 2;
  pointer-events: auto;
  width: 100%;
  max-width: 250px;
  padding: 24px 16px 20px;
  background: var(--st-bg-primary);
  border: 1px solid var(--st-border);
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.6);
}
.st-lockscreen__hint {
  margin: 0 0 16px;
  text-align: center;
  font-size: 13px;
  color: var(--st-text-secondary);
}
.st-lockscreen__dots {
  display: flex;
  justify-content: center;
  gap: 12px;
  margin-bottom: 20px;
}
.st-lockscreen__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--st-text-subtle);
  transition: background 0.12s;
}
.st-lockscreen__dot--filled {
  background: var(--st-text-primary);
}
.st-lockscreen--shake .st-lockscreen__dot {
  /* TODO: token — error shake */
  background: #e55;
  animation: st-lockscreen-dot-flash 0.35s ease;
}
@keyframes st-lockscreen-dot-flash {
  50% {
    /* TODO: token — error flash */
    background: #f88;
  }
}
.st-lockscreen--shake .st-lockscreen__panel {
  animation: st-lockscreen-shake 0.4s ease;
}
@keyframes st-lockscreen-shake {
  0%,
  100% {
    transform: translateX(0);
  }
  25% {
    transform: translateX(-8px);
  }
  75% {
    transform: translateX(8px);
  }
}
.st-lockscreen__pad {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  max-width: 220px;
  margin: 0 auto;
  position: relative;
  z-index: 2;
  pointer-events: auto;
}
.st-lockscreen__key {
  padding: 12px 0;
  border: 1px solid var(--st-border);
  border-radius: 8px;
  background: var(--st-bg-raised);
  color: var(--st-text-primary);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 18px;
  cursor: pointer;
  transition: background 0.12s, border-color 0.12s;
}
.st-lockscreen__key:hover {
  background: var(--st-bg-elevated);
  border-color: var(--st-border-strong);
}
.st-lockscreen__key--back {
  font-size: 16px;
}
.st-lockscreen__key-spacer {
  pointer-events: none;
}
