    .field {
      margin-bottom: 1.5rem;
      position: relative;
    }

    label {
      display: block;
      font-size: 0.78rem;
      font-weight: 500;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--ink);
      margin-bottom: 0.5rem;
    }

    label .optional {
      color: var(--muted);
      font-weight: 300;
      text-transform: none;
      letter-spacing: 0;
      font-size: 0.75rem;
    }

    label .req {
      color: var(--accent);
      margin-left: 2px;
    }

    input, select, textarea {
      width: 100%;
      padding: 0.75rem 1rem;
      font-size: 0.95rem;
      background: #fff;
      border: 1.5px solid var(--sixth);
      border-radius: 10px;
      outline: none;
      transition: border-color 0.2s;
      appearance: none;
    }

    input::placeholder { color: #000; font-weight: 300; }

    input:focus, select:focus {
      border-color: var(--primary);
    }

    input.error, select.error {
      border-color: var(--accent);
      background: var(--accent-light);
    }

    input.valid {
      border-color: var(--success);
    }

    .select-wrap {
      position: relative;
    }

    .select-wrap::after {
      content: '';
      position: absolute;
      right: 1rem;
      top: 50%;
      transform: translateY(-50%);
      width: 0;
      height: 0;
      border-left: 5px solid transparent;
      border-right: 5px solid transparent;
      border-top: 6px solid var(--muted);
      pointer-events: none;
    }

    .error-msg {
      font-size: 1rem;
      color: red;
      margin-top: 0.35rem;
      display: none;
      font-weight: 500;
    }

    .error-msg.show { display: block; }

    .divider {
      border: none;
      border-top: 1px solid var(--border);
      margin: 2rem 0 1.75rem;
    }


    .success-banner {
      display: none;
      background: #edf7f2;
      border: 1px solid #a8d5be;
      border-radius: var(--radius);
      padding: 1rem 1.25rem;
      margin-top: 1.25rem;
      color: var(--success);
      font-size: 0.88rem;
      font-weight: 400;
      text-align: center;
    }

    .success-banner.show { display: block; }