body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 0;
    background-color: #f4f4f9;
    color: #333;
  }

  .container {
    padding: 10px;
    max-width: 600px;
    margin: 0 auto;
  }

  h1 {
    text-align: center;
    margin-bottom: 20px;
    color: #555;
  }
   @media (max-width: 600px) {
    #tabs {
      flex-direction: column;
      align-items: center;
    }
    #tabs > div {
      width: 100%;
      text-align: center;
    }
  }

  @media (min-width: 601px) {
    #tabs {
      flex-direction: row;
      align-items: center;
      justify-content: flex-start;
    }
    #tabs > div {
      margin-right: 10px;
    }
  }

  #tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
    margin-top: 10px;
  }

  #tabs select {
    padding: 8px;
  }

  #tabs .tab {
    display: inline-block;
    padding: 4px 12px;
    margin: 4px;
    border: 1px solid #797777;
    border-radius: 6px;
    cursor: pointer;
  }


    .tab-instruction {
        display: flex; /* Use flexbox for layout */
        justify-content: center; /* Center horizontally */
        align-items: center; /* Center vertically */
        text-align: center; /* Ensure multiline text is centered */
        margin-bottom: 10px;
        width: 100%; /* Optional: full width of the parent */
    }
        
        .tab.active {
        background: #007bff;
        color: #fff;
        border-color: #007bff;
    }

  .tab-content {
    display: none;
  }

  .tab-content.active {
    display: block;
  }

        .custom-hidden {
            display: none !important;
        }
        .day-box {
            border: 1px solid #ccc;
            border-radius: 5px;
            padding: 8px;
            margin-top: 10px;
            background-color: #f1f1f1;
        }
        .time-slot {
            display: inline-block;
            background-color: #007bff;
            color: white;
            padding: 5px 8px; /* Slightly larger for better tap targets */
            border-radius: 5px;
            margin: 3px;
            font-size: 1rem; /* Increased size for better readability and tapping */
            cursor: pointer; /* Indicate it's clickable */
            transition: background-color 0.15s ease, transform 0.15s ease;
        }
        
        .time-slot:hover {
            background-color: #0056b3;
            transform: translateY(-1px);
        }
        p {
          margin-top: 5px;
          margin-bottom: 8px;
        }

  .title {
    width: 100%;
    font-size: 1.2em;
    margin-top: 4px;
    text-align: center;
    font-weight: bold;
  }
h4 {
    margin-top: 0;
    margin-bottom: .5rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--bs-heading-color);
    font-size: calc(1.275rem + .3vw);
    font-weight: bold;
}
  .month-card {
    background: #d4e4f5;
    padding: 15px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    margin-bottom: 20px;
  }

  .month-header {
    width: 100%;
    font-size: 1.2em;
    margin-bottom: 10px;
    text-align: center;
    font-weight: bold;
  }

  .month-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 5px;
  }

  .calendar-day {
    position: relative;
    text-align: center;
    padding: 10px;
    border-radius: 8px;
    background: #f4f4f9;
    cursor: default;    
  }
  
  .Xcalendar-day::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border-top: 2px solid lightcoral; /* Diagonal line color */
    border-left: 2px solid transparent; /* Adjust as needed */
    transform: rotate(45deg); /* Rotate to create diagonal line */
    z-index: 1; /* Ensure it overlays the background */
    pointer-events: none; /* Allow interactions to pass through */
  }

  .calendar-day::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -7px;
    width: 90%;
    height: 90%;
    border-top: 2px solid rgb(247, 177, 177); /* Adjust color and width as needed */
    border-right: 2px solid transparent;
    transform: rotate(30deg);
    pointer-events: none; /* Allow interactions to pass through */
  }

  .Xcalendar-day::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -7px;
    width: 90%;
    height: 90%;
    border-top: 2px solid lightcoral; /* Adjust color and width as needed */
    border-right: 2px solid transparent;
    transform: rotate(30deg);
    pointer-events: none; /* Allow interactions to pass through */
  }
  .calendar-day.highlighted {
    background: #007bff;
    color: #fff;
    cursor: pointer;
  }

  .calendar-day:hover.highlighted {
    background: #0056b3;
  }

  .calendar-day.highlighted::after {
    display: none; /* Remove the diagonal line for highlighted days */
  }

  .calendar-day.empty {
    position: relative; /* Required for positioning the pseudo-elements */
    background: #f4f4f9;
    text-align: center;
    padding: 10px;
    border-radius: 8px;
    cursor: default;
    color: #666; /* Optional: Gray text for "Not Available" */
  }
  
  /* Create the diagonal line */
  .calendar-day.empty::after {
    content: '';
    position: absolute;
    top: 15px;
    left: -7px;
    width: 90%;
    height: 90%;
    border-top: 2px solid rgb(247, 177, 177);
    border-right: 2px solid transparent;
    transform: rotate(30deg);
    pointer-events: none; /* Allow interactions to pass through */
  }

  /* Modal styling */
  .modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(93 92 153 / 50%);
    justify-content: center;
    align-items: center;
    z-index: 1004;
  }

    .modal-content {
        background: #fff;
        padding: 20px;
        border-radius: 10px;
        text-align: left;
        width: 95%; /* Adjust width for smaller screens */
        max-width: 400px; /* Limit the width on larger screens */
        box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
        margin: auto; /* Center the modal on mobile */

  max-height: 90vh;       /* or any suitable limit */
  overflow-y: auto;        /* enables vertical scrolling */
  overflow-x: hidden;      /* optional: disable horizontal scroll */
  padding-right: 10px;     /* avoid scrollbar overlap */
  box-sizing: border-box;

    }

  .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 20px;
    background: #007bff;
    padding: 10px;
    border-radius: 5px;
  }

  .modal-header h3 {
    margin: 0;
    font-size: 1.2em;
    color: white; /* #333; */
  }

    .modal-body p {
        margin: 10px 0;
        font-size: 1em;
        text-align: left; /* Align text for better readability */
    }

        .modal-body p {
            margin: 10px 0;
        }

  .modal-close {
    cursor: pointer;
    font-size: 2em;
    color: white; /* #333; */
  }

  .modal-close:hover {
    color: #333;
  }

  /* Spinner */
  /* Overlay with 50% transparent background */
/* Overlay with 50% transparent background */
.loading-overlay {
  display: none; /* Initially hidden */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5); /* 50% transparent black */
  z-index: 999; /* Overlay above other content */
  display: flex;
  flex-direction: column;
  justify-content: flex-start; /* Align content towards the top */
  align-items: center;
  padding-top: 30%; /* Push content down to the top 25% */
}

/* Title message */
.loading-message {
  color: white;
  font-size: 1.5em;
  margin-bottom: 20px;
  text-align: center;
}

/* Spinner */
.spinner {
  border: 8px solid #f3f3f3; /* Light grey border */
  border-top: 8px solid #007bff; /* Blue border */
  border-radius: 50%;
  width: 50px;
  height: 50px;
  animation: spin 1s linear infinite;
}

/* Spinner animation */
@keyframes spin {
  0% {
      transform: rotate(0deg);
  }
  100% {
      transform: rotate(360deg);
  }
}



  .Xspinner {
    display: none;
    position: fixed;
    top: 25%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1000;
    border: 8px solid #f3f3f3;
    border-top: 8px solid #007bff;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    animation: spin 1s linear infinite;
  }

  @keyframes Xspin {
    0% {
      transform: translate(-50%, -50%) rotate(0deg);
    }
    100% {
      transform: translate(-50%, -50%) rotate(360deg);
    }
  }
    /* Ensure mobile-friendly spacing */
    ul {
        list-style: none; /* Remove default bullets */
        padding: 0; /* Remove default padding */
        margin: 0; /* Remove default margin */
    }

        ul li {
            padding: 15px 10px; /* Add padding for touch-friendly spacing */
            margin-bottom: 10px; /* Add spacing between list items */
            margin-left: 5px;
            width: 90%;
            border: 1px solid #ddd; /* Add a subtle border */
            border-radius: 8px; /* Rounded corners */
            background-color: #bbd8f5; /* White background for contrast */
            font-size: 1.2em; /* Increase font size for readability */
            text-align: center; /* Center-align text */
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow for better visual separation */
            cursor: pointer; /* Show pointer cursor to indicate interactivity */
        }

            /* Add hover effect for better interactivity */
            ul li:hover {
                background-color: #f9f9f9; /* Slightly darker background on hover */
                border-color: #007bff; /* Highlight border */
            }

          .button {
              padding: 10px;
              font-size: 1.2em; /* Larger, readable button text */
              background-color: #007bff; /* Primary color */
              color: white;
              border: 1px;
              border-radius: 5px;
              cursor: pointer;
              transition: background-color 0.3s ease;
          }

          .button-small {
              padding: 5px;
              font-size: 0.8em; /* Larger, readable button text */
              background-color: #007bff; /* Primary color */
              color: white;
              border: none;
              width: 70px;
              margin-top: 16px;
              border-radius: 5px;
              cursor: pointer;
              transition: background-color 0.3s ease;
          }
        
        button:disabled {
            background-color: #ddd;
            cursor: not-allowed;
        }          

/* BOOKING FORM */
     Xinput:invalid {
          border: 1px solid red;
          box-shadow: 0 0 5px rgba(255, 0, 0, 0.5);
      }
    input[type="tel"] {
        font-family: Arial, sans-serif;
        padding: 5px;
        border: 1px solid #ddd;
        border-radius: 5px;
        width: 100%;
        box-sizing: border-box;
    }

    input[type="tel"]:focus {
        border-color: #007bff;
        outline: none;
        box-shadow: 0 0 5px rgba(0, 123, 255, 0.5);
    }

    /* Form elements spacing */
    form {
        display: flex;
        flex-direction: column; /* Stack items vertically */
        gap: 15px; /* Add spacing between elements */
    }

    form label {
        font-size: 1.05em; /* Ensure readable labels */
        margin-bottom: -5px; /* Space between label and input */
        margin-top: 0px;
        font-weight: bold; /* Highlight labels for clarity */
    }
        
        form input,
        form select {
          padding: 5px;
          Xpadding: 8px 9px; /* Add padding for spacing */
          margin-bottom: 5px; /* Spacing from other elements */
          margin-top: -5px;
          width: 96%;
          Xwidth: 85%; /* Set consistent width */
          margin-left: 5px; /* Align left */
          border: 1px solid #ccc;
          border-radius: 5px;
          Xborder: 1px solid #ddd; /* Subtle border */
          Xborder-radius: 8px; /* Rounded corners */
          background-color: white; /* White background */
          Xfont-size: 16px;
          font-size: 1.1em; /* Increase font size for readability */
          text-align: left; /* Align text to the left */
          box-sizing: border-box; /* NEW HERE NEW HERE Include padding and border in width */
          box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */
          color: #333; /* Darker text color for contrast */
          appearance: none; /* Remove OS styling for customization */
          -webkit-appearance: none; /* Remove OS styling in Safari */
          -moz-appearance: none; /* Remove OS styling in Firefox */
          cursor: pointer; /* Indicate interactivity */
          Xbackground-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6H0z' fill='%23666'/%3E%3C/svg%3E"); /* Custom arrow icon */
          Xbackground-repeat: no-repeat;
          Xbackground-position: right 10px center; /* Adjust position of the arrow */
          Xbackground-size: 12px 12px; /* Set size of the arrow */
        }
        form select {        
          background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6H0z' fill='%23666'/%3E%3C/svg%3E"); /* Custom arrow icon */
          background-repeat: no-repeat;
          background-position: right 10px center; /* Adjust position of the arrow */
          background-size: 12px 12px; /* Set size of the arrow */
        }        
        Xxform Xxselect {
          padding: 10px; /* Comfortable touch area */
          font-size: 1em; /* Make text readable */
          border: 1px solid #ddd;
          border-radius: 5px;
          Xwidth: 100%; /* Full-width input fields */
          box-sizing: border-box; /* Include padding and border in width */
        }     
        .Xaddress-input {
          width: 96%;
          padding: 10px;
          font-size: 16px;
          border: 1px solid #ccc;
          border-radius: 5px;
        }
        Xform select {

            padding: 8px 9px; /* Add padding for spacing */
            margin-bottom: 5px; /* Spacing from other elements */
            margin-top: -5px;
            width: 85%; /* Set consistent width */
            margin-left: 5px; /* Align left */
            border: 1px solid #ddd; /* Subtle border */
            border-radius: 8px; /* Rounded corners */
            background-color: white; /* Light blue background */
            font-size: 1.2em; /* Increase font size for readability */
            text-align: left; /* Center text */
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */
            color: #333; /* Darker text color for contrast */
            appearance: none; /* Remove default OS-specific styles */
            -webkit-appearance: none; /* For Safari */
            -moz-appearance: none; /* For Firefox */
            cursor: pointer; /* Indicate interactivity */
        }
        select:hover,
        select:focus {
            background-color: white; /* Lighter blue for hover/focus */
            border-color: #aaa; /* Slightly darker border */
            outline: none; /* Remove default focus outline */
        }


        /* Submit button */
        form button {
            padding: 10px;
            font-size: 1.2em; /* Larger, readable button text */
            background-color: #007bff; /* Primary color */
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            transition: background-color 0.3s ease;
        }

            form button:disabled {
                background-color: #aaa; /* Gray out when disabled */
                cursor: not-allowed; /* Show disabled cursor */
            }

            form button:not(:disabled):hover {
                background-color: #0056b3; /* Darker blue on hover */
            }

        /* Input focus state for accessibility */
        form input:focus,
        form select:focus {
            outline: none;
            border-color: #007bff; /* Highlight border on focus */
            box-shadow: 0 0 5px rgba(0, 123, 255, 0.5); /* Add subtle glow */
        }
    .checkmark {
        display: inline-block;
        width: 20px;
        height: 20px;
        border: 0px solid black;
        border-radius: 5px;
        text-align: center;
        line-height: 20px;
        font-size: 20px;
        color: red;
    }

        .checkmark::after {
            content: "\2713";
            color: red;
        }
    .tab.active.checkmark {
        display: block; 
    }

    .shrink-text {
      border: 1px solid #d3d2d2;
      text-align: center;
        align-items: center;
        display: block;
        width: 98%; /* Ensures the container defines the text area */
        font-size: 1.2rem; /* Base font size */
        /*white-space: nowrap; 
        overflow: hidden; 
        text-overflow: ellipsis; */
        transform-origin: left; /* Transform scaling origin */
        transform: scale(1); /* Default scale, can be adjusted if needed */
        margin-bottom: 10px;
        margin-left: 0px;
        margin-right: 40px;
        background-color: #dfe3e7;
        padding: 5px;
    }

    .mobile-card {
      border: 1px solid #ddd;
      border-radius: 8px;
      padding: 10px;
      margin: 10px 0;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      background-color: #f9f9f9;
      font-family: Arial, sans-serif;
  }
  .mobile-card h3 {
      font-size: 16px;
      margin: 0 0 8px;
      color: #333;
  }
  .mobile-card table {
      width: 100%;
      border-collapse: collapse;
  }
  .mobile-card table th,
  .mobile-card table td {
      text-align: left;
      padding: 8px 5px;
      border-bottom: 1px solid #ddd;
      font-size: 14px;
  }
  .mobile-card table th {
      font-weight: bold;
      background-color: #f4f4f4;
  }
  .mobile-card table td {
      word-wrap: break-word;
  }
  .mobile-card table tr:last-child td {
      border-bottom: none;
  }
  @media (max-width: 600px) {
      .mobile-card h3 {
          font-size: 14px;
      }
      .mobile-card table th,
      .mobile-card table td {
          font-size: 12px;
          padding: 6px 3px;
      }
  }

/* from: function generateMobileFriendlyCards(data) */    
  .mobile-card {
      border: 1px solid #ddd;
      border-radius: 8px;
      padding: 10px;
      margin: 10px 0;
      box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
      background-color: #f9f9f9;
      font-family: Arial, sans-serif;
  }
  .mobile-card h3 {
      font-size: 16px;
      margin: 0 0 8px;
      color: #333;
  }
  .mobile-card table {
      width: 100%;
      border-collapse: collapse;
  }
  .mobile-card table th,
  .mobile-card table td {
      text-align: left;
      padding: 8px 5px;
      border-bottom: 1px solid #ddd;
      font-size: 14px;
  }
  .mobile-card table th {
      font-weight: bold;
      background-color: #f4f4f4;
  }
  .mobile-card table td {
      word-wrap: break-word;
  }
  .mobile-card table tr:last-child td {
      border-bottom: none;
  }
  @media (max-width: 600px) {
      .mobile-card h3 {
          font-size: 14px;
      }
      .mobile-card table th,
      .mobile-card table td {
          font-size: 12px;
          padding: 6px 3px;
      }
  }
  html {
      scroll-behavior: smooth;
  }

  .invalid {
    border: 1px solid red !important;
    box-shadow: 0 0 5px rgba(255, 0, 0, 0.5);
}

        /* Container for the picker */
        .payer-picker {
            position: relative;
            cursor: pointer;
            width: 95%; /* Ensure consistent width */
            margin-left: 3px;
            margin-bottom: 9px;
        }

        /* Items container */
        .payer-options {
            max-height: 165px; /* Two lines * 60px height approx */
            overflow-y: auto;
            border: 1px solid #d1d5db; /* Gray border */
            border-radius: 0.5rem; /* Rounded corners */
            box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.06);
            background-color: #ffffff;
            margin-top: 0.25rem;
        }

        /* Individual item style */
        .payer-item {
            padding: 0.75rem 1rem;
            border-bottom: 1px solid #e5e7eb; /* Light separator */
            cursor: pointer;
            transition: background-color 0.2s;
        }

        .payer-item:last-child {
            border-bottom: none;
        }

        .payer-item:hover {
            background-color: #f3f4f6;
        }

        .payer-item.selected {
            background-color: #eff6ff; /* Blue background for selected */
            border-left: 4px solid #3b82f6;
            font-weight: 600;
        }
        
        /* Line 1 (Date/Time & Type) */
        .line-one {
            font-size: 1.1em; /*  0.95rem Base font size for line 1 elements */
            font-weight: 600;
            color: #1f2937; /* Dark gray text */
            margin-bottom: 2px;
        }
        /* Line 2 (Name & Location) */
        .line-two {
            font-size: 0.9rem; /*  0.8rem
            color: #4b5563; /* Medium gray text */
        }

        /* Button Band Styling */
        .button-band button {
            transition: all 0.2s;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        .button-band button:disabled {
            opacity: 0.5;
            cursor: not-allowed;
            box-shadow: none;
        }
        /* Button Band Styling */
        .Xbutton-band > div {
            /* Styling to make the div look and behave like a button */
            cursor: pointer;
            text-align: center;
            user-select: none; /* Prevent text selection on click/tap */
            transition: all 0.2s;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        .button-band .disabled {
            opacity: 0.5;
            pointer-events: none; /* Disables click events */
            cursor: not-allowed;
            box-shadow: none;
        }
        /* Custom Message Box style (since we avoid alert()) */
        .message-box {
            position: fixed;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            background-color: #10b981; /* Green color */
            color: white;
            padding: 1.5rem;
            border-radius: 0.5rem;
            box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
            z-index: 1000;
            text-align: center;
            opacity: 0;
            transition: opacity 0.3s ease-in-out;
        }
        .message-box.show {
            opacity: 1;
        }

/* Rotate caret when dropdown is open */
.Xpayer-options:not(.hidden) + .Xcaret {
  transform: rotate(180deg);
}

/* Hamburger Menu Icon */
.xclose {
font-size: 34px; 
margin-right: 27px;
cursor: pointer;
text-align: right;
}

.hamburger {
    /*position: fixed;*/
    top: 10px;
    left: 15px;
    /* z-index: 1001;  Above everything */
    cursor: pointer;
}

.bar {
    width: 30px;
    height: 2px;
    background-color: #5a5a5a;
    margin: 4px 0;
    transition: all 0.3s ease;
}
.barshort {
    width: 25px;
    height: 2px;
    background-color: #5a5a5a;
    margin: 4px 0;
    transition: all 0.3s ease;
}
/* Optional: Add Animation for Bars When Menu Opens */
.hamburger.open .bar:nth-child(1) {
    transform: translateY(9px) rotate(55deg);
    background-color: white;
    width: 25px;
}
.hamburger.open .barshort:nth-child(2) {
    opacity: 0; /* fades out */ 
}
.hamburger.open .bar:nth-child(3) {
opacity: 0;
}
.hamburger.open .barshort:nth-child(4) {
    transform: translateY(-9px) rotate(-55deg);
    background-color: white;
    width: 25px;
}
/* Slide-out Menu */
.menu {
    position: fixed;
    top: 0px;
    left: -250px; /* Hidden by default */
    width: 250px;
    height: 100%;
    background-color: #2c3e50;
    box-shadow: 2px 0 5px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    padding-top: 15px; /* Space for the hamburger icon */
    transition: left 0.3s ease; /* Smooth slide-in effect */
    z-index: 1000;
    color: white;
    padding-left: 0; /* Reset padding */
    margin: 0;       /* Reset margin */
}

.menu a {
    text-decoration: none;
    color: white;
    font-size: 1em;
    padding: 10px 15px 5px 5px;
    transition: background-color 0.2s ease;
}

.menu a:hover {
    background-color: #34495e;
}

/* Menu Open State */
.menu.menu-open {
    left: 0; /* Slide the menu into view */
}

  #suggestions {
    margin-top: 5px;
    border: 1px solid #ccc;
    border-radius: 5px;
    background: #fff;
    max-height: 200px;
    overflow-y: auto;
  }
  .suggestion-item {
    padding: 10px;
    cursor: pointer;
  }
  .suggestion-item:hover {
    background: #f0f0f0;
  }

  .flex-container {
    display: flex;
    align-items: center;
    gap: 8px; /* Adds spacing */
}

  /* --- layout utilities for the subform --- */
   #subform {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    margin-top: -7px;
  }

  .subform-row {
    display: flex;
    flex-wrap: wrap;  /* stacks gracefully on mobile */
    gap: 12px;
  }

  .field {
    display: flex;
    flex-direction: column;
    flex: 1 1 200px;
  }

  .field label {
    margin-bottom: 12px;
    font-weight: 600;
  }

.Xform-input { margin-top: 7px; background-image: none; background-color: transparent; }

  /* Make DOB smaller to allow Verify button & result on same line */
  .XXfield--dob {
    flex: 0 0 160px;
  }

  .XXfield--button {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
  }

  .XXfield--result {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  #verificationResult {
    min-height: 40px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    border: 1px solid #eee;
    border-radius: 6px;
    background: #f9f9fb;
  }
  
  /* Optional: tighten spacing on very small screens */
  @media (max-width: 480px) {
    .field--button { min-width: 140px; }
  }