/* Scoped ONLY to appointment flow wrappers */
[data-appointment-flow]{
  /* do not set fonts/colors globally; rely on site/Bootstrap */
}

/* Wrapper safety */
[data-appointment-flow] .o_wappointment_wrap{ min-height: 1px; overflow-x: hidden; padding-top: 50px; padding-bottom: 50px; }
[data-appointment-flow] .oe_structure{ width: 100%; }

/* Truncation helpers used by templates */
[data-appointment-flow] .text-truncate{
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%;
}
[data-appointment-flow] .cursor-default{ cursor: default; }

/* Sidebar readability */
[data-appointment-flow] .o_appointment_details_column h4,
[data-appointment-flow] .o_appointment_details_column h5{ line-height: 1.25; }
[data-appointment-flow] .o_appointment_details_type{ gap: .5rem; }
[data-appointment-flow] .o_appointment_user_short_card .text-truncate{ max-width: 100%; }

/* Calendar: make day cells look like clickable tiles without overriding theme */
[data-appointment-flow] [data-appointment-calendar] a[data-cal-day]{
  display:block;
  border-radius:.5rem;
}

/* Avoid layout shift from icons */
[data-appointment-flow] .fa-fw{ width: 1.25em; text-align:center; }

/* Turnstile / iframes: prevent overflow on small screens */
[data-appointment-flow] .s_turnstile_container,
[data-appointment-flow] iframe,
[data-appointment-flow] img,
[data-appointment-flow] video{ max-width:100%; }
[data-appointment-flow] iframe{ display:block; }

/* Forms: avoid box sizing surprises */
[data-appointment-flow] .form-control{ box-sizing:border-box; }

.c2{
   padding: 0px !important;
   overflow: hidden;
   height: 100% !important;
   border-radius: 12px !important;
   border-bottom-right-radius: 9px !important;
    border-bottom-left-radius: 9px !important;
}

[data-appointment-flow] .o_appointment_list_columns {
  --bs-gutter-x: 0;  /* remove the left/right padding that creates the “space” */
}

/* optional: keep some spacing between cards without outer gutters */
[data-appointment-flow] .o_appointment_list_columns {
  --bs-gutter-y: 1rem;
}


.o_appointment_list_grid {
    display: grid;
    /* Gap between cards (equivalent to Bootstrap gutters) */
    gap: 3.5rem; 
    
    /* Default: 1 column (Mobile) */
    grid-template-columns: repeat(1, 1fr);
}

/* Medium devices (Tablets, 768px and up) -> 2 columns */
@media (min-width: 768px) {
    .o_appointment_list_grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Large devices (Desktops, 992px and up) -> 3 columns */
@media (min-width: 992px) {
    .o_appointment_list_grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Extra Large devices (Large Desktops, 1200px and up) -> 4 columns */
@media (min-width: 1200px) {
    .o_appointment_list_grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

/* Ensure the empty state spans the full width of the grid */
.o_appointment_grid_empty {
    grid-column: 1 / -1;
}

/* Optional: ensures all cards in a row have the same height */
.o_wappointment_card {
    height: 100%;
}
.o_not_editable{
  font-size: 16px !important;
}
.o_wappointment_message_intro{
  font-size: 11pt !important;
}


[data-appointment-flow] .card-title{
  font-size: 20px !important;
  line-height: 1.2 !important;
}
.o_wappointment_card_location{
  align-items: center !important;
  gap: 5px !important;
  font-size: 14px;
}
.o_wappointment_card_location span{
  font-size: 12px !important;
  font-weight: 500 !important;
}

.search-query{
  border-top-left-radius: 4px !important;
  border-bottom-left-radius: 4px !important;
  padding: 12px !important;
}

.search-query:focus{
  box-shadow: none !important;
  outline: none !important;
}

.slot-text{
  font-size: 13px !important;
  font-weight: 700 !important;
  width: calc(50% - 5px);

}
.slot-con{
  flex-wrap: wrap !important;
  max-width: 200px !important;
}.month-txt{
  font-size: 18px !important;
}

.dets-desc-title{
  font-size: 16px !important;
  font-weight: 600 !important;
  margin-bottom: 12px !important;
}
.dets-desc{
  font-size: 14px !important;
  line-height: 1.5 !important;
}
.o_wappointment_wrap{ min-height: 1px; overflow-x: hidden; padding-top: 50px; padding-bottom: 50px; }
.o_appointment_index {
  padding-bottom: 50px; 
  padding-top: 30px;
}

.appointment_submit_form input[type="text"], .appointment_submit_form input[type="email"]{
  font-size: 14px !important;
  height: 50px !important;
  padding-left: 15px;
  border-radius: 5px !important;
}

.appointment_submit_form button{
  font-size: 16px !important;
  height: 50px !important;
  border-radius: 5px !important;
}


.whoami label{
  margin-top: 4px !important;
}


.o_today::after {
    content: "";
    position: absolute;
    top: auto;
    left: 50%;
    bottom: auto;
    right: auto;
    width: 2.5em;
    height: .16em;
    bottom: 0.25rem;
    transform: translateX(-50%);
    background-color: var(--dynamic-highlight);
    border-radius: 50rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}