  body { font-family: -apple-system, sans-serif; background: #f4f4f6; display: flex;
         align-items: center; justify-content: center; min-height: 100vh; margin: 0;
         padding: 20px; box-sizing: border-box; }
  .box { background: white; padding: 40px 32px; border-radius: 12px;
         box-shadow: 0 2px 16px rgba(0,0,0,0.08);
         width: 100%; max-width: 360px; text-align: center; }
  img { width: 56px; height: 56px; border-radius: 12px; margin-bottom: 16px; }
  h1 { font-size: 1.25rem; margin: 0 0 8px; color: var(--ink-heading); }
  p { color: var(--ink-faint); font-size: 0.9rem; margin: 0 0 24px; }
  input { width: 100%; padding: 13px 14px; border: 1px solid #ddd; border-radius: 8px;
          font-size: 1rem; box-sizing: border-box; margin-bottom: 12px;
          -webkit-appearance: none; }
  input:focus { outline: 2px solid #a1006b; border-color: #a1006b; }
  button { width: 100%; padding: 13px; background: #a1006b; color: white; border: none;
           border-radius: 8px; font-size: 1rem; cursor: pointer; font-weight: 600; }
  button:hover { background: #8a005b; }
  button:focus { outline: 2px solid #a1006b; outline-offset: 2px; }
  .error { color: #c00; font-size: 0.875rem; margin-bottom: 12px; }
  .locked { color: #c00; font-size: 0.875rem; margin-bottom: 12px; }
  .gbtn { display:flex; align-items:center; justify-content:center; gap:10px; width:100%;
          padding:12px; background:#fff; color:#3c4043; border:1px solid #dadce0; border-radius:8px;
          font-size:0.95rem; font-weight:600; cursor:pointer; text-decoration:none; box-sizing:border-box; }
  .gbtn:hover { background:#f7f8fa; }
  .divider { display:flex; align-items:center; gap:10px; color:#727272; font-size:0.8rem; margin:16px 0; }
  .divider::before, .divider::after { content:""; flex:1; height:1px; background:#eee; }
