    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    body {
      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
      background: #f0f4ff;
      min-height: 100vh;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 32px 16px;
    }

    .page-logo { margin-bottom: 28px; }
    .page-logo img { height: 32px; display: block; }

    .auth-box {
      background: #fff;
      border-radius: 20px;
      padding: 36px 40px 32px;
      width: 100%;
      max-width: 420px;
      box-shadow: 0 4px 32px rgba(0,0,0,.08);
    }
    @media (max-width: 460px) { .auth-box { padding: 26px 20px 24px; } }

    .auth-box__title {
      font-size: 22px; font-weight: 900;
      text-align: center; margin-bottom: 24px; color: #111827;
    }

    /* Google button */
    .btn-google {
      display: flex; align-items: center; justify-content: center; gap: 10px;
      width: 100%; padding: 11px 16px;
      background: #fff; color: #374151;
      border: 1.5px solid #e5e7eb; border-radius: 11px;
      font-size: 14px; font-weight: 700;
      cursor: pointer; text-decoration: none;
      transition: background .15s, border-color .15s, box-shadow .15s;
      font-family: inherit;
    }
    .btn-google:hover {
      background: #f9fafb; border-color: #d1d5db;
      box-shadow: 0 2px 8px rgba(0,0,0,.07);
    }
    .btn-google svg { width: 18px; height: 18px; flex-shrink: 0; }

    /* Divider */
    .divider {
      display: flex; align-items: center; gap: 12px;
      margin: 20px 0;
    }
    .divider hr { flex: 1; border: none; border-top: 1px solid #f3f4f6; }
    .divider span { font-size: 12px; font-weight: 700; color: #d1d5db; white-space: nowrap; }

    /* Formularz */
    .f-field { margin-bottom: 15px; }
    .f-field label { display: block; font-size: 12px; font-weight: 700; margin-bottom: 5px; color: #374151; }
    .f-field input {
      width: 100%; padding: 10px 14px;
      border: 1.5px solid #e5e7eb; border-radius: 10px;
      font-size: 14px; outline: none;
      transition: border-color .15s, box-shadow .15s;
      font-family: inherit; color: #111827;
    }
    .f-field input:focus { border-color: #0b61ff; box-shadow: 0 0 0 3px #eff6ff; }

    .btn-submit {
      display: flex; align-items: center; justify-content: center;
      width: 100%; padding: 12px;
      background: #0b61ff; color: #fff;
      border: none; border-radius: 11px;
      font-size: 15px; font-weight: 800;
      cursor: pointer; margin-top: 4px;
      transition: filter .15s, box-shadow .15s, transform .1s;
      font-family: inherit;
    }
    .btn-submit:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 4px 14px rgba(11,97,255,.25); }
    .btn-submit:active { transform: translateY(0); }

    .alert { padding: 11px 14px; border-radius: 10px; font-size: 13px; margin-bottom: 18px;
             display: flex; gap: 8px; align-items: center; }
    .alert--error   { background: #fee2e2; color: #991b1b; }
    .alert--success { background: #dcfce7; color: #166534; }
    .alert svg { width: 15px; height: 15px; flex-shrink: 0; }

    .auth-footer { text-align: center; margin-top: 20px; font-size: 13px; color: #6b7280; }
    .auth-footer a { color: #0b61ff; text-decoration: none; font-weight: 700; }
    .auth-footer a:hover { text-decoration: underline; }
