/* =========================================
   Booka Base Styles – OFFICIAL
========================================= */

/* Reset & Box Model */
*,
*::before,
*::after {
  box-sizing: border-box;
}

/* Body */
body {
  margin: 0;
  font-family: var(--font-base);
  background: var(--bg-main);
  color: var(--text-primary);
  line-height: 1.8;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  margin: 0 0 12px;
  font-weight: 700;
  color: var(--text-primary);
}

h1 { font-size: 48px; }
h2 { font-size: 34px; }
h3 { font-size: 20px; }
h4 { font-size: 16px; }
h5 { font-size: 14px; }
h6 { font-size: 13px; }

/* Text */
p {
  margin: 0 0 16px;
  font-size: 16px;
  color: var(--text-muted);
}

/* Container */
.container {
  width: 100%;
  max-width: 1200px;
  margin: auto;
  padding: 40px 16px;
}

/* Sections */
.section {
  margin-top: 80px;
}

/* Utilities */
.text-center {
  text-align: center;
}

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 8px; }
.mt-2 { margin-top: 16px; }
.mt-3 { margin-top: 24px; }
.mt-4 { margin-top: 40px; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 8px; }
.mb-2 { margin-bottom: 16px; }
.mb-3 { margin-bottom: 24px; }
.mb-4 { margin-bottom: 40px; }

/* =========================================
   Dashboard Typography Override (FINAL)
========================================= */

.dashboard-main {
  font-size: 14px;
  line-height: 1.6;
}

/* Headings */
.dashboard-main h1 {
  font-size: 26px;
  font-weight: 700;
}

.dashboard-main h2 {
  font-size: 22px;
  font-weight: 700;
}

.dashboard-main h3 {
  font-size: 18px;
  font-weight: 700;
}

.dashboard-main h4 {
  font-size: 15px;
  font-weight: 600;
}

.dashboard-main h5 {
  font-size: 14px;
  font-weight: 600;
}

.dashboard-main h6 {
  font-size: 13px;
  font-weight: 600;
}

/* Paragraphs */
.dashboard-main p {
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 12px;
}

/* Small & muted */
.dashboard-main small,
.dashboard-main .text-muted {
  font-size: 13px;
}

/* Lists */
.dashboard-main li {
  font-size: 14px;
}


/* ==================================================
   BOOKA CUSTOMER BOOKING FLOW
================================================== */

.booka-booking-page {
    direction: rtl;
    width: 100%;
    min-height: 100vh;
    padding: 60px 24px;
    background: #f7f8fc;
    font-family: "Cairo", sans-serif;
}

.booka-booking-container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}


/* ================= Header ================= */

.booka-booking-header {
    max-width: 650px;
    margin: 0 auto 45px;
    text-align: center;
}

.booka-booking-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 7px 14px;
    margin-bottom: 14px;

    background: #eeeeff;
    border-radius: 999px;

    color: #4f46e5;

    font-size: 13px;
    font-weight: 700;
}

.booka-booking-title {
    margin: 0 0 12px !important;

    color: #111827 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 36px !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
}

.booka-booking-description {
    margin: 0 !important;

    color: #6b7280 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 15px !important;
    line-height: 1.9 !important;
}


/* ================= Services Grid ================= */

.booka-services-grid {
    width: 100%;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;
}


/* ================= Service Card ================= */

.booka-service-card {
    width: 100%;

    display: flex !important;
    flex-direction: column !important;

    position: relative;

    overflow: hidden;

    background: #ffffff !important;

    border: 1px solid #e9ebf2 !important;
    border-radius: 22px !important;

    color: inherit !important;
    text-decoration: none !important;

    box-shadow:
        0 8px 30px
        rgba(15, 23, 42, 0.06);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.booka-service-card:hover {
    transform: translateY(-5px);

    border-color: #d8d7ff !important;

    box-shadow:
        0 18px 45px
        rgba(79, 70, 229, 0.13);
}


/* ================= Service Image ================= */

.booka-service-image {
    position: relative;

    width: 100%;
    height: 210px;

    overflow: hidden;

    background: #f0f1f7;
}

.booka-service-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.booka-service-placeholder {
    width: 100%;
    height: 100%;

    display: flex;
    align-items: center;
    justify-content: center;

    background:
        linear-gradient(
            135deg,
            #eeeeff 0%,
            #f8f8ff 100%
        );

    color: #4f46e5;

    font-size: 42px;
}


/* ================= Card Body ================= */

.booka-service-body {
    width: 100%;

    display: flex;
    flex-direction: column;

    flex: 1;

    padding: 22px;
}

.booka-service-name {
    margin: 0 0 16px !important;

    color: #111827 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.6 !important;
}


/* ================= Service Details ================= */

.booka-service-details {
    display: flex;
    align-items: center;
    flex-wrap: wrap;

    gap: 8px;

    margin-bottom: 22px;
}

.booka-service-detail {
    display: inline-flex;
    align-items: center;

    padding: 6px 11px;

    background: #f4f5f8;

    border-radius: 9px;

    color: #6b7280;

    font-family: "Cairo", sans-serif;
    font-size: 12px;
    font-weight: 600;
}

.booka-service-price {
    background: #eeeeff;
    color: #4f46e5;
}


/* ================= Select Action ================= */

.booka-service-action {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: auto;
    padding-top: 17px;

    border-top: 1px solid #f0f1f5;

    color: #4f46e5;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.booka-service-arrow {
    width: 34px;
    height: 34px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #4f46e5;

    border-radius: 50%;

    color: #ffffff;

    font-size: 17px;

    transition: transform 0.2s ease;
}

.booka-service-card:hover .booka-service-arrow {
    transform: translateX(-4px);
}


/* ================= Empty State ================= */

.booka-booking-empty {
    max-width: 600px;

    margin: 30px auto;
    padding: 55px 25px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 22px;

    text-align: center;
}

.booka-booking-empty-icon {
    margin-bottom: 12px;

    color: #4f46e5;

    font-size: 40px;
}

.booka-booking-empty h3 {
    margin: 0 0 8px !important;

    font-family: "Cairo", sans-serif !important;
}

.booka-booking-empty p {
    margin: 0 !important;
}


/* ================= Tablet ================= */

@media (max-width: 950px) {

    .booka-services-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ================= Mobile ================= */

@media (max-width: 650px) {

    .booka-booking-page {
        padding: 35px 15px;
    }

    .booka-booking-header {
        margin-bottom: 30px;
    }

    .booka-booking-title {
        font-size: 28px !important;
    }

    .booka-services-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .booka-service-image {
        height: 190px;
    }

    .booka-service-body {
        padding: 18px;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   SELECT STAFF
================================================== */

.booka-staff-grid {
    width: 100%;
    max-width: 850px;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 20px;

    margin: 0 auto;
}


/* ================= Staff Card ================= */

.booka-staff-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;

    min-height: 330px;

    padding: 35px 25px 25px;

    background: #ffffff !important;

    border: 1px solid #e9ebf2 !important;
    border-radius: 22px !important;

    color: inherit !important;
    text-decoration: none !important;

    box-shadow:
        0 8px 30px
        rgba(15, 23, 42, 0.06);

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        border-color 0.2s ease;
}

.booka-staff-card:hover {
    transform: translateY(-5px);

    border-color: #d8d7ff !important;

    box-shadow:
        0 18px 45px
        rgba(79, 70, 229, 0.13);
}


/* ================= Staff Avatar ================= */

.booka-staff-avatar {
    width: 105px;
    height: 105px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-bottom: 22px;

    background:
        linear-gradient(
            135deg,
            #eeeeff,
            #e4e3ff
        );

    border-radius: 50%;

    color: #4f46e5;

    font-family: "Cairo", sans-serif;
    font-size: 38px;
    font-weight: 800;
}

.booka-staff-avatar-img {
    width: 105px;
    height: 105px;
    margin-bottom: 22px;
    border-radius: 50%;
    object-fit: cover;
}


/* ================= Staff Information ================= */

.booka-staff-info {
    width: 100%;

    text-align: center;
}

.booka-staff-name {
    margin: 0 0 7px !important;

    color: #111827 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
}

.booka-staff-service {
    margin: 0 !important;

    color: #6b7280 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 13px !important;
}


/* ================= Staff Action ================= */

.booka-staff-action {
    width: 100%;

    display: flex;
    align-items: center;
    justify-content: space-between;

    margin-top: auto;
    padding-top: 20px;

    border-top: 1px solid #f0f1f5;

    color: #4f46e5;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;
}

.booka-staff-arrow {
    width: 36px;
    height: 36px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #4f46e5;

    border-radius: 50%;

    color: #ffffff;

    font-size: 17px;
}

.booka-staff-card:hover
.booka-staff-arrow {
    transform: translateX(-4px);
}


/* ================= Back Link ================= */

.booka-back-link {
    display: inline-flex;

    margin-top: 20px;
    padding: 11px 20px;

    background: #4f46e5;

    border-radius: 10px;

    color: #ffffff !important;

    text-decoration: none !important;

    font-family: "Cairo", sans-serif;
    font-size: 13px;
    font-weight: 700;
}


/* ================= Responsive ================= */

@media (max-width: 700px) {

    .booka-staff-grid {
        grid-template-columns: 1fr;
    }

    .booka-staff-card {
        min-height: 290px;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   SELECT DATE
================================================== */

.booka-date-summary {
    width: 100%;
    max-width: 760px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 22px;
    padding: 18px 25px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 18px;

    box-shadow:
        0 8px 30px
        rgba(15, 23, 42, 0.05);
}

.booka-date-summary-item {
    flex: 1;

    display: flex;
    flex-direction: column;
    align-items: center;

    gap: 4px;

    text-align: center;
}

.booka-date-summary-label {
    color: #9ca3af;

    font-size: 12px;
    font-weight: 600;
}

.booka-date-summary-item strong {
    color: #111827;

    font-size: 14px;
    font-weight: 700;
}

.booka-date-summary-divider {
    width: 1px;
    height: 38px;

    margin: 0 25px;

    background: #eceef3;
}


/* ================= Date Card ================= */

.booka-date-card {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;
    padding: 38px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 22px;

    text-align: center;

    box-shadow:
        0 12px 40px
        rgba(15, 23, 42, 0.07);
}


/* ================= Calendar Icon ================= */

.booka-date-icon {
    width: 72px;
    height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 18px;

    background: #eeeeff;

    border-radius: 50%;

    font-size: 30px;
}


/* ================= Header ================= */

.booka-date-card-header {
    margin-bottom: 28px;
}

.booka-date-card-header h2 {
    margin: 0 0 8px;

    color: #111827;

    font-family: "Cairo", sans-serif;
    font-size: 22px;
    font-weight: 800;
}

.booka-date-card-header p {
    margin: 0;

    color: #6b7280;

    font-size: 13px;
}


/* ================= Date Field ================= */

.booka-date-field {
    text-align: right;
}

.booka-date-field label {
    display: block;

    margin-bottom: 9px;

    color: #111827;

    font-size: 14px;
    font-weight: 700;
}

.booka-date-input {
    width: 100%;
    height: 58px;

    padding: 0 18px;

    background: #f8f9fc;

    border: 1px solid #e1e4eb;
    border-radius: 12px;

    color: #111827;

    font-family: "Cairo", sans-serif;
    font-size: 15px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.booka-date-input:focus {
    border-color: #4f46e5;

    box-shadow:
        0 0 0 4px
        rgba(79, 70, 229, 0.08);
}


/* ================= Continue Button ================= */

.booka-date-continue {
    width: 100%;
    min-height: 55px;

    margin-top: 22px;

    background: #4f46e5;

    border: none;
    border-radius: 12px;

    color: #ffffff;

    cursor: pointer;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease,
        opacity 0.2s ease;
}

.booka-date-continue:not(:disabled):hover {
    transform: translateY(-2px);

    box-shadow:
        0 10px 25px
        rgba(79, 70, 229, 0.22);
}

.booka-date-continue:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}


/* ================= Error ================= */

.booka-date-error {
    margin-top: 15px;
    padding: 12px;

    background: #fff1f1;

    border: 1px solid #ffd3d3;
    border-radius: 10px;

    color: #dc2626;

    font-size: 13px;
}


/* ================= Back ================= */

.booka-booking-back {
    max-width: 760px;

    margin: 20px auto 0;

    text-align: center;
}


/* ================= Responsive ================= */

@media (max-width: 700px) {

    .booka-date-card {
        padding: 28px 18px;
    }

    .booka-date-summary {
        padding: 15px;
    }

    .booka-date-summary-divider {
        margin: 0 12px;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   SELECT SLOT
================================================== */

.booka-slot-summary {
    width: 100%;
    max-width: 900px;

    display: flex;
    align-items: stretch;

    margin: 0 auto 25px;
    padding: 20px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 20px;

    box-shadow:
        0 8px 30px
        rgba(15, 23, 42, 0.05);
}


.booka-slot-summary-item {
    flex: 1;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 5px;

    text-align: center;
}


.booka-slot-summary-label {
    color: #9ca3af;

    font-size: 12px;
    font-weight: 600;
}


.booka-slot-summary-item strong {
    color: #111827;

    font-size: 14px;
    font-weight: 700;
}


.booka-slot-summary-divider {
    width: 1px;

    margin: 5px 20px;

    background: #e9ebf2;
}


/* ================= Slots Card ================= */

.booka-slots-card {
    width: 100%;
    max-width: 900px;

    margin: 0 auto;
    padding: 35px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 22px;

    box-shadow:
        0 12px 40px
        rgba(15, 23, 42, 0.07);
}


/* ================= Card Header ================= */

.booka-slots-card-header {
    margin-bottom: 30px;

    text-align: center;
}


.booka-slots-icon {
    width: 65px;
    height: 65px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 15px;

    background: #eeeeff;

    border-radius: 50%;

    color: #4f46e5;

    font-size: 30px;
    font-weight: 700;
}


.booka-slots-card-header h2 {
    margin: 0 0 7px;

    color: #111827;

    font-family: "Cairo", sans-serif;
    font-size: 22px;
    font-weight: 800;
}


.booka-slots-card-header p {
    margin: 0;

    color: #6b7280;

    font-size: 13px;
}


/* ================= Slots Grid ================= */

.booka-slots-grid {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 12px;
}


/* ================= Slot Button ================= */

.booka-slot-button {
    min-height: 58px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 18px;

    background: #f8f9fc;

    border: 1px solid #e4e7ee;
    border-radius: 12px;

    color: #111827;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        border-color 0.2s ease,
        background 0.2s ease,
        box-shadow 0.2s ease;
}


.booka-slot-button:hover {
    transform: translateY(-2px);

    background: #ffffff;

    border-color: #4f46e5;

    box-shadow:
        0 8px 20px
        rgba(79, 70, 229, 0.10);
}


.booka-slot-time {
    font-size: 14px;
    font-weight: 700;
}


.booka-slot-arrow {
    width: 30px;
    height: 30px;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #eeeeff;

    border-radius: 50%;

    color: #4f46e5;

    font-size: 15px;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}


.booka-slot-button:hover
.booka-slot-arrow {
    background: #4f46e5;

    color: #ffffff;
}


/* ================= Empty State ================= */

.booka-slots-empty {
    width: 100%;
    max-width: 760px;

    margin: 0 auto;
    padding: 50px 25px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 22px;

    text-align: center;

    box-shadow:
        0 12px 40px
        rgba(15, 23, 42, 0.07);
}


.booka-slots-empty-icon {
    width: 70px;
    height: 70px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 18px;

    background: #eeeeff;

    border-radius: 50%;

    color: #4f46e5;

    font-size: 32px;
}


.booka-slots-empty h2 {
    margin-bottom: 8px;

    font-family: "Cairo", sans-serif;
    font-size: 22px;
}


.booka-slots-empty p {
    max-width: 500px;

    margin: 0 auto 25px;

    color: #6b7280;

    font-size: 13px;
}


.booka-slots-change-date {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 48px;

    padding: 0 25px;

    background: #4f46e5;

    border-radius: 11px;

    color: #ffffff;

    font-size: 13px;
    font-weight: 700;

    text-decoration: none;
}


/* ================= Responsive ================= */

@media (max-width: 800px) {

    .booka-slots-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


@media (max-width: 600px) {

    .booka-slot-summary {
        flex-direction: column;

        gap: 15px;
    }


    .booka-slot-summary-divider {
        width: 100%;
        height: 1px;

        margin: 0;
    }


    .booka-slots-card {
        padding: 25px 18px;
    }


    .booka-slots-grid {
        grid-template-columns: 1fr;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   CONFIRM BOOKING
================================================== */

.booka-confirm-layout {
    width: 100%;
    max-width: 1000px;

    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 24px;

    margin: 0 auto;
}


/* ================= Cards ================= */

.booka-confirm-summary,
.booka-confirm-form-card {
    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 22px;

    box-shadow:
        0 12px 40px
        rgba(15, 23, 42, 0.06);
}


/* ================= Summary ================= */

.booka-confirm-summary {
    padding: 30px;
}


.booka-confirm-summary-header {
    display: flex;
    align-items: center;

    gap: 14px;

    margin-bottom: 25px;
    padding-bottom: 22px;

    border-bottom: 1px solid #eef0f4;
}


.booka-confirm-summary-icon {
    width: 48px;
    height: 48px;

    flex-shrink: 0;

    display: flex;
    align-items: center;
    justify-content: center;

    background: #eeeeff;

    border-radius: 50%;

    color: #4f46e5;

    font-size: 20px;
    font-weight: 800;
}


.booka-confirm-summary-header h2,
.booka-confirm-form-header h2 {
    margin: 0 0 5px !important;

    color: #111827 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 19px !important;
    font-weight: 800 !important;
}


.booka-confirm-summary-header p,
.booka-confirm-form-header p {
    margin: 0 !important;

    color: #8a919f !important;

    font-size: 12px !important;
}


/* ================= Detail Row ================= */

.booka-confirm-detail {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    min-height: 54px;

    padding: 10px 0;

    border-bottom: 1px solid #f0f1f5;
}


.booka-confirm-detail:last-child {
    border-bottom: none;
}


.booka-confirm-detail-label {
    color: #8a919f;

    font-size: 13px;
    font-weight: 600;
}


.booka-confirm-detail strong {
    color: #111827;

    font-size: 14px;
    font-weight: 700;

    text-align: left;
}


.booka-confirm-price {
    margin-top: 8px;
    padding: 16px;

    background: #f7f7ff;

    border: none;
    border-radius: 12px;
}


.booka-confirm-price strong {
    color: #4f46e5;

    font-size: 18px;
    font-weight: 800;
}


/* ================= Form Card ================= */

.booka-confirm-form-card {
    padding: 30px;
}


.booka-confirm-form-header {
    margin-bottom: 25px;
    padding-bottom: 22px;

    border-bottom: 1px solid #eef0f4;
}


/* ================= Form ================= */

.booka-confirm-form {
    width: 100%;
}


.booka-confirm-field {
    margin-bottom: 20px;

    text-align: right;
}


.booka-confirm-field label {
    display: block;

    margin-bottom: 8px;

    color: #111827;

    font-size: 13px;
    font-weight: 700;
}


.booka-confirm-field small {
    display: block;

    margin-top: 7px;

    color: #9ca3af;

    font-size: 11px;
}


.booka-confirm-input {
    width: 100%;
    height: 55px;

    padding: 0 16px;

    background: #f8f9fc;

    border: 1px solid #e1e4eb;
    border-radius: 12px;

    color: #111827;

    font-family: "Cairo", sans-serif;
    font-size: 14px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}


.booka-confirm-input::placeholder {
    color: #adb2bd;
}


.booka-confirm-input:focus {
    background: #ffffff;

    border-color: #4f46e5;

    box-shadow:
        0 0 0 4px
        rgba(79, 70, 229, 0.08);
}


.booka-confirm-phone-input {
    text-align: right;
}


/* ================= Submit ================= */

.booka-confirm-submit {
    width: 100%;
    min-height: 56px;

    margin-top: 7px;

    background: #4f46e5;

    border: none;
    border-radius: 12px;

    color: #ffffff;

    cursor: pointer;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.booka-confirm-submit:hover {
    transform: translateY(-2px);

    box-shadow:
        0 12px 25px
        rgba(79, 70, 229, 0.22);
}


/* ================= Messages ================= */

.booka-confirm-messages {
    margin-bottom: 20px;
}


.booka-confirm-message {
    padding: 12px 15px;

    background: #effaf3;

    border: 1px solid #ccebd6;
    border-radius: 10px;

    color: #15803d;

    font-size: 12px;
}


.booka-confirm-message-error {
    background: #fff2f2;

    border-color: #ffd3d3;

    color: #dc2626;
}


/* ================= Responsive ================= */

@media (max-width: 800px) {

    .booka-confirm-layout {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 600px) {

    .booka-confirm-summary,
    .booka-confirm-form-card {
        padding: 22px 18px;
    }


    .booka-confirm-detail {
        align-items: flex-start;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   VERIFY OTP
================================================== */

.booka-otp-card {
    width: 100%;
    max-width: 560px;

    margin: 0 auto;
    padding: 38px;

    background: #ffffff;

    border: 1px solid #e9ebf2;
    border-radius: 24px;

    text-align: center;

    box-shadow:
        0 12px 40px
        rgba(15, 23, 42, 0.07);
}


/* ================= Icon ================= */

.booka-otp-icon {
    width: 72px;
    height: 72px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin: 0 auto 20px;

    background: #eeeeff;

    border-radius: 50%;

    color: #4f46e5;

    font-size: 28px;
    font-weight: 800;
}


/* ================= Header ================= */

.booka-otp-header {
    margin-bottom: 28px;
}


.booka-otp-header h2 {
    margin: 0 0 8px !important;

    color: #111827 !important;

    font-family: "Cairo", sans-serif !important;
    font-size: 22px !important;
    font-weight: 800 !important;
}


.booka-otp-header p {
    margin: 0 0 10px !important;

    color: #8a919f !important;

    font-size: 13px !important;
}


.booka-otp-phone {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 8px 18px;

    background: #f4f3ff;

    border-radius: 10px;

    color: #4f46e5;

    direction: ltr;

    font-size: 15px;
    font-weight: 700;
}


/* ================= Form ================= */

.booka-otp-form {
    width: 100%;
}


.booka-otp-field {
    margin-bottom: 20px;

    text-align: right;
}


.booka-otp-field label {
    display: block;

    margin-bottom: 9px;

    color: #111827;

    font-size: 13px;
    font-weight: 700;
}


.booka-otp-input {
    width: 100%;
    height: 62px;

    padding: 0 18px;

    background: #f8f9fc;

    border: 1px solid #e1e4eb;
    border-radius: 13px;

    color: #111827;

    font-family: "Cairo", sans-serif;
    font-size: 22px;
    font-weight: 700;

    text-align: center;

    letter-spacing: 8px;

    outline: none;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background 0.2s ease;
}


.booka-otp-input::placeholder {
    color: #b1b5be;

    font-size: 13px;
    font-weight: 500;

    letter-spacing: normal;
}


.booka-otp-input:focus {
    background: #ffffff;

    border-color: #4f46e5;

    box-shadow:
        0 0 0 4px
        rgba(79, 70, 229, 0.08);
}


/* ================= Submit ================= */

.booka-otp-submit {
    width: 100%;
    min-height: 56px;

    background: #4f46e5;

    border: none;
    border-radius: 12px;

    color: #ffffff;

    cursor: pointer;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.booka-otp-submit:hover {
    transform: translateY(-2px);

    box-shadow:
        0 12px 25px
        rgba(79, 70, 229, 0.22);
}


/* ================= Messages ================= */

.booka-otp-messages {
    margin-bottom: 20px;
}


.booka-otp-message {
    padding: 13px 15px;

    border-radius: 11px;

    font-size: 12px;
    font-weight: 600;
}


.booka-otp-message-error {
    background: #fff2f2;

    border: 1px solid #ffd3d3;

    color: #dc2626;
}


.booka-otp-message-success {
    background: #effaf3;

    border: 1px solid #ccebd6;

    color: #15803d;
}


/* ================= Notice ================= */

.booka-otp-notice {
    margin-top: 25px;
    padding-top: 22px;

    border-top: 1px solid #eef0f4;
}


.booka-otp-notice span {
    display: block;

    margin-bottom: 4px;

    color: #111827;

    font-size: 12px;
    font-weight: 700;
}


.booka-otp-notice p {
    margin: 0 !important;

    color: #9ca3af !important;

    font-size: 11px !important;
}


/* ================= Responsive ================= */

@media (max-width: 600px) {

    .booka-otp-card {
        padding: 30px 20px;
    }

}

/* ==================================================
   BOOKA BOOKING FLOW
   PAYMENT TEST
================================================== */

.booka-payment-test-button {
    width: 100%;
    min-height: 56px;

    display: flex;
    align-items: center;
    justify-content: center;

    margin-top: 28px;

    background: #4f46e5;

    border-radius: 12px;

    color: #ffffff;

    font-family: "Cairo", sans-serif;
    font-size: 14px;
    font-weight: 700;

    text-decoration: none;

    transition:
        transform 0.2s ease,
        box-shadow 0.2s ease;
}

.booka-payment-test-button:hover {
    transform: translateY(-2px);

    box-shadow:
        0 12px 25px
        rgba(79, 70, 229, 0.22);
}


