/* 잠금 상태에서는 다운로더 화면을 숨기고 비밀번호 창만 보여 줍니다. */
body.locked .menu-bar,
body.locked .desktop { visibility: hidden; }
body.locked { overflow: hidden; }

.gate {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  padding: 24px 16px;
  background-color: var(--paper);
  background-image: radial-gradient(#dadad5 .6px, transparent .6px);
  background-size: 18px 18px;
}
.gate[hidden] { display: none; }
.gate-window {
  width: min(380px, 100%);
  overflow: hidden;
  border: 1px solid #bcbcb9;
  border-radius: 10px;
  background: rgba(255, 255, 253, .97);
  box-shadow: var(--shadow);
}
.gate-form { padding: 24px 26px 22px; }
.gate-form h1 { margin: 0; font-size: 26px; letter-spacing: -.04em; line-height: 1.1; }
.gate-form > p:not(.field-error) { margin: 7px 0 20px; color: var(--muted); font-size: 12px; }
.gate-field { display: block; font-size: 11px; color: #555; }
.gate-field input {
  width: 100%;
  height: 44px;
  margin-top: 6px;
  padding: 0 12px;
  border: 1px solid #c7c7c3;
  border-radius: 7px;
  background: white;
  color: #222;
  font-family: ui-monospace, Menlo, Consolas, monospace;
  font-size: 13px;
  outline: 0;
}
.gate-field input:focus { border-color: #6c9b36; box-shadow: 0 0 0 3px rgba(183, 235, 105, .28); }
.gate-form .field-error { min-height: 32px; margin: 8px 1px 6px; line-height: 1.4; }
.gate-form .download-button:disabled { opacity: .6; cursor: progress; }
.gate-form .download-button:focus-visible,
.gate-field input:focus-visible { outline: 2px solid #527e25; outline-offset: 2px; }
