/* ===== Lock screen (encrypted workspace unlock gate) ===== */
.lock-overlay {
  position: fixed; inset: 0; z-index: 200;
  background: var(--bg);
  display: grid; place-items: center;
  padding: 24px;
}
.lock-card {
  width: 100%; max-width: 400px;
  background: var(--bg-elev); border: 1px solid var(--border); border-radius: 14px;
  box-shadow: var(--shadow);
  padding: 30px 28px;
  display: flex; flex-direction: column; align-items: center; gap: 10px;
  text-align: center;
}
.lock-logo {
  width: 46px; height: 46px; border-radius: 12px;
  background: linear-gradient(135deg, var(--accent), var(--accent-2));
  display: grid; place-items: center;
  color: #0b0c10; font-weight: 800; font-size: 24px;
  margin-bottom: 4px;
}
.lock-title { margin: 0; font-size: 19px; }
.lock-sub { margin: 0 0 8px; font-size: 13px; color: var(--text-dim); }
.lock-input { flex: 1; }
.lock-btn { flex-shrink: 0; }
.lock-error { min-height: 16px; font-size: 12.5px; color: var(--danger); }
.lock-note { margin: 4px 0 0; font-size: 11.5px; color: var(--text-faint); line-height: 1.5; }

.lock-card.shake { animation: lock-shake 0.35s; }
@keyframes lock-shake {
  20% { transform: translateX(-7px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(3px); }
}
