    /* Signup-page-only structural styles. All colors come from /css/club.css tokens. */
    .signup-wrap {
      min-height: 80vh;
      display: flex;
      align-items: flex-start;
      justify-content: center;
      padding: 3rem 1.5rem 4rem;
    }
    .signup-shell {
      width: 100%;
      max-width: 520px;
      background: var(--bg-card);
      border: 1px solid var(--border-2);
      border-radius: 1rem;
      padding: 2rem;
    }
    .signup-shell h1 {
      font-size: 1.5rem;
      font-weight: 800;
      letter-spacing: -.02em;
      margin: 0 0 .25rem;
      color: var(--text);
    }
    .signup-shell .subtitle {
      font-size: .9rem;
      color: var(--text-muted);
      margin: 0 0 1.5rem;
      line-height: 1.55;
    }

    .compliance-notice {
      background: color-mix(in srgb, var(--gold) 8%, transparent);
      border: 1px solid color-mix(in srgb, var(--gold) 22%, transparent);
      border-radius: .55rem;
      padding: .9rem 1rem;
      font-size: .85rem;
      color: var(--text-muted);
      line-height: 1.6;
      margin-bottom: 1.5rem;
    }
    .compliance-notice strong { color: var(--text); }

    .field { margin-bottom: 1.1rem; }
    .field-label {
      display: block;
      color: var(--text-muted);
      font-size: .82rem;
      font-weight: 500;
      margin-bottom: .35rem;
    }
    .field-required { color: var(--pink-light); }
    .field-help {
      color: var(--text-dim);
      font-size: .76rem;
      margin: .35rem 0 0;
      line-height: 1.5;
    }

    .form-input {
      display: block;
      width: 100%;
      box-sizing: border-box;
      background: var(--bg-panel);
      border: 1px solid var(--border-2);
      border-radius: .5rem;
      padding: .65rem .85rem;
      color: var(--text);
      font-family: inherit;
      font-size: .92rem;
      line-height: 1.4;
      transition: border-color .15s, box-shadow .15s;
    }
    .form-input:focus {
      outline: 0;
      border-color: color-mix(in srgb, var(--gold) 55%, transparent);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--gold) 18%, transparent);
    }
    .form-input::placeholder { color: var(--text-dim); }

    .input-prefix {
      display: flex;
      align-items: stretch;
      background: var(--bg-panel);
      border: 1px solid var(--border-2);
      border-radius: .5rem;
      overflow: hidden;
      transition: border-color .15s, box-shadow .15s;
    }
    .input-prefix:focus-within {
      border-color: color-mix(in srgb, var(--gold) 55%, transparent);
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--gold) 18%, transparent);
    }
    .input-prefix-label {
      display: inline-flex;
      align-items: center;
      padding: 0 .85rem;
      background: var(--bg-card-2);
      color: var(--text-dim);
      font-size: .82rem;
      border-right: 1px solid var(--border-2);
      white-space: nowrap;
    }
    .input-prefix .form-input {
      flex: 1;
      background: transparent;
      border: 0;
      border-radius: 0;
      box-shadow: none !important;
    }

    hr.divider {
      border: 0;
      border-top: 1px solid var(--border);
      margin: 1.4rem 0 1.25rem;
    }

    .check-row {
      display: flex;
      align-items: flex-start;
      gap: .65rem;
      margin-bottom: .8rem;
    }
    .check-row input[type="checkbox"] {
      flex-shrink: 0;
      appearance: none;
      -webkit-appearance: none;
      width: 18px;
      height: 18px;
      margin-top: 2px;
      border-radius: 4px;
      background: var(--bg-panel);
      border: 1px solid var(--border-2);
      cursor: pointer;
      position: relative;
      transition: background .15s, border-color .15s;
    }
    .check-row input[type="checkbox"]:checked {
      background: var(--gold);
      border-color: var(--gold);
    }
    .check-row input[type="checkbox"]:checked::after {
      content: '';
      position: absolute;
      left: 5px;
      top: 1px;
      width: 5px;
      height: 10px;
      border: solid var(--on-accent);
      border-width: 0 2px 2px 0;
      transform: rotate(45deg);
    }
    .check-row input[type="checkbox"]:focus {
      outline: 0;
      box-shadow: 0 0 0 2px color-mix(in srgb, var(--gold) 25%, transparent);
    }
    .check-row label {
      flex: 1;
      color: var(--text-muted);
      font-size: .82rem;
      line-height: 1.55;
      cursor: pointer;
    }
    .check-row label strong { color: var(--text); }
    .check-row label a { color: var(--pink-light); }
    .check-row label a:hover { color: var(--pink); }

    .btn-submit {
      display: block;
      width: 100%;
      box-sizing: border-box;
      text-align: center;
      background: var(--gold-btn);
      color: var(--on-accent);
      font-family: inherit;
      font-weight: 700;
      font-size: .95rem;
      padding: .85rem;
      border-radius: .55rem;
      border: 0;
      cursor: pointer;
      transition: background .15s;
      margin-top: .25rem;
    }
    .btn-submit:hover:not(:disabled) { background: var(--gold-btn-h); }
    .btn-submit:disabled { opacity: .6; cursor: not-allowed; }

    .signup-foot {
      text-align: center;
      font-size: .85rem;
      color: var(--text-muted);
      margin: 1.1rem 0 0;
    }
    .signup-foot a { color: var(--pink-light); }
    .signup-foot a:hover { color: var(--pink); }

    .error-msg {
      background: rgba(220,80,90,.10);
      border: 1px solid rgba(220,80,90,.32);
      border-radius: .5rem;
      padding: .85rem 1rem;
      font-size: .87rem;
      color: #f4d4d8;
      margin-bottom: 1rem;
      line-height: 1.55;
    }
    .error-msg strong { color: #ffe4e7; }
    .error-msg .err-headline { display:block; font-weight:700; margin-bottom:.25rem; color:#ffe4e7; }
    .error-msg .err-detail   { display:block; }
    .error-msg .err-meta     {
      display:block; margin-top:.5rem; padding-top:.45rem;
      border-top: 1px solid rgba(220,80,90,.25);
      font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
      font-size: .75rem; color:#e8b4b9; word-break: break-all;
    }
    .error-msg .err-meta-label { color:#caa0a4; }
