/* ==========================================================
Theme
========================================================== */

:root{
    --primary:#2E86DE;
    --primary-dark:#1D6FD0;
    --warning:#F8C146;
    --border:#E6ECF3;
    --bg:#F8FAFC;
    --text:#2C3E50;
    --muted:#6C757D;
    --radius:10px;
    --shadow:0 3px 12px rgba(0,0,0,.08);
}

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

.app-topbar{
    background:#fff;
    border-bottom:1px solid var(--border);
    position:sticky;
    top:0;
    z-index:1030;
    box-shadow:0 2px 10px rgba(0,0,0,.05);
}

.navbar-brand img{
    height:55px;
    width:auto;
}

/* ==========================================================
   Buttons
========================================================== */

.btn-primary{
    background:var(--primary);
    border-color:var(--primary);
    border-radius:8px;
    font-weight:600;
    padding:.7rem 1.5rem;
    transition:.25s;
}

.btn-primary:hover{
    background:var(--primary-dark);
    border-color:var(--primary-dark);
}

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

.card{
    border:none;
    border-radius:12px;
    box-shadow:var(--shadow);
}

.card-header{
    padding:.65rem 1rem;
    border-bottom:1px solid rgba(0,0,0,.05);
    font-weight:600;
}

.card-header h5,
.card-header h6{
    margin:0;
    font-size:15px;
}

.card-body{
    padding:12px;
}

/* ==========================================================
   Doctor Card
========================================================== */

.doctor-card{
    border-radius:12px;
    overflow:hidden;
}

.doctor-card img{
    width:80px;
    height:80px;
    border-radius:50%;
    object-fit:cover;
}

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

.form-label{
    font-weight:600;
    color:var(--text);
    margin-bottom:.4rem;
}

.form-control{
    border-radius:8px;
    border:1px solid var(--border);
    padding:.65rem .9rem;
}

.form-control:focus{
    border-color:var(--primary);
    box-shadow:0 0 0 .15rem rgba(46,134,222,.15);
}

/* ==========================================================
   Time Slots
========================================================== */

.time-slot{
    display:block;
    cursor:pointer;
    margin:0;
}

.time-slot input{
    display:none;
}

.time-slot span{
    display:block;
    padding:8px 4px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    text-align:center;
    font-size:13px;
    font-weight:600;
    color:var(--text);
    transition:.2s;
}

.time-slot:hover span{
    border-color:var(--primary);
    background:#F5FAFF;
}

.time-slot input:checked + span{
    background:var(--primary);
    border-color:var(--primary);
    color:#fff;
}

.time-slot.disabled{
    cursor:not-allowed;
}

.time-slot.disabled span{
    background:#F5F5F5;
    color:#A0A0A0;
    border-color:#E4E4E4;
    text-decoration:line-through;
}

.time-slot.disabled:hover span{
    border-color:#E4E4E4;
    background:#F5F5F5;
}

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

.session-card .card-body{
    padding:10px;
}

.session-card .row{
    --bs-gutter-x:.5rem;
    --bs-gutter-y:.5rem;
}

.session-card .card-header{
    padding:.6rem .9rem;
}

/* ==========================================================
   Consultation Fee
========================================================== */

.fee-card{
    background:#F8FAFC;
}

.fee-card h3{
    color:var(--primary);
    font-weight:700;
}

/* ==========================================================
   Sticky Button
========================================================== */

.sticky-book{
    margin-top:20px;
}

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

@media (max-width:991px){

    .navbar-brand img{
        height:48px;
    }

    .doctor-card{
        text-align:center;
    }

    .doctor-card .d-flex{
        flex-direction:column;
    }

    .doctor-card img{
        margin-bottom:15px;
    }

    .session-card{
        margin-bottom:15px;
    }
}

@media (max-width:768px){

    .time-slot span{
        font-size:12px;
        padding:9px 2px;
    }

    .sticky-book{
        position:fixed;
        left:0;
        right:0;
        bottom:0;
        background:#fff;
        padding:12px;
        box-shadow:0 -2px 12px rgba(0,0,0,.15);
        z-index:999;
    }

    .content-page{
        padding-bottom:90px;
    }
}

.status-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    padding-right: 35px;
    border-radius: 8px;
    font-weight: 600;
    cursor: pointer;
}

.select-icon {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #6c757d;
}

/* Some browsers support option colors */
.status-select option {
    font-weight: 600;
}

.status-select option[value=""] {
    color: #343a40;
}

.status-select option[value="available"] {
    color: #28a745;
}

.status-select option[value="0"] {
    color: #ffc107;
}

.status-select option[value="1"] {
    color: #007bff;
}

.status-select option[value="-1"] {
    color: #dc3545;
}

.btn-xs{
    padding: .3rem .5rem;
    font-size: .7rem;
    line-height: 1.2;
}

.fa {
    font-size: 0.9rem;
    margin: 2px 1px;
}

@media (max-width: 575.98px) {
    #sys_modal .modal-dialog {
        width: 100%;
        max-width: 100%;
        margin: 0;
    }

    #sys_modal .modal-content {
        width: 100%;
        border-radius: 0;
    }
}


 /* Appointment confirmation */
.appointment-confirmation {
    width: 100%;
    min-height: 100%;
    display: flex;
    justify-content: center;
    padding: 30px 15px;
    background: #f4f7f9;
}

.confirmation-card {
    width: 100%;
    max-width: 430px;
    background: #f8fafb;
    border-radius: 18px;
    padding: 28px 20px 22px;
    text-align: center;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
}

/* Success icon */

.success-icon-wrapper {
    display: flex;
    justify-content: center;
    margin-bottom: 15px;
}

.success-icon {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: #43b94a;
    color: white;

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

    font-size: 42px;
    font-weight: bold;

    box-shadow:
        0 0 0 8px rgba(67, 185, 74, 0.12),
        0 4px 12px rgba(67, 185, 74, 0.25);
}

.success-icon i {
    line-height: 1;
}

/* Heading */

.confirmation-title {
    margin: 10px 0 7px;
    color: #17191c;
    font-size: 20px;
    line-height: 1.35;
    font-weight: 700;
}

.confirmation-subtitle {
    margin-bottom: 25px;
    color: #7b858d;
    font-size: 12px;
    line-height: 1.45;
}

/* Appointment information */

.appointment-info {
    background: #ffffff;
    border-radius: 12px;
    padding: 14px;
    text-align: left;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

/* Doctor */

.doctor-info {
    display: flex;
    align-items: center;
    gap: 12px;
}

.doctor-avatar {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 50%;
    overflow: hidden;
    background: #e9eef2;
}

.doctor-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.doctor-name {
    color: #222;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

.doctor-speciality {
    margin-top: 2px;
    color: #8a9299;
    font-size: 11px;
}

/* Divider */

.appointment-info hr {
    margin: 12px 0;
    border: 0;
    border-top: 1px solid #edf0f2;
}

/* Appointment rows */

.appointment-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 12px;

    color: #343a40;
    font-size: 0.8rem;
    line-height: 1.5;
}

.appointment-row:first-of-type {
    margin-top: 0;
}

.appointment-row i {
    width: 18px;
    flex-shrink: 0;

    color: #252b30;
    font-size: 14px;
    margin-top: 1px;
}

/* Details button */

.details-button {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;

    gap: 8px;

    margin-top: 8px;
    padding: 10px;

    background: #ffffff;
    color: #252525;

    border-radius: 0 0 10px 10px;

    text-decoration: none;
    font-size: 12px;
    font-weight: 500;

    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);

    transition: all 0.2s ease;
}

.details-button:hover {
    color: #198754;
    background: #f8fff9;
}

.details-button i {
    font-size: 10px;
}

/* Appointment number */

.appointment-number {
    margin-top: 18px;
    color: #8a9299;
    font-size: 11px;
}

.appointment-number strong {
    color: #343a40;
}


/* Mobile */

@media (max-width: 575px) {

    .appointment-confirmation {
        padding: 15px 10px;
    }

    .confirmation-card {
        max-width: 100%;
        padding: 25px 15px 20px;
        border-radius: 15px;
    }

    .success-icon {
        width: 62px;
        height: 62px;
        font-size: 36px;
    }

    .confirmation-title {
        font-size: 18px;
    }

    .confirmation-subtitle {
        font-size: 11px;
        margin-bottom: 20px;
    }

    .appointment-info {
        padding: 12px;
    }
}


/* Very small phones */

@media (max-width: 375px) {

    .confirmation-card {
        padding-left: 12px;
        padding-right: 12px;
    }

    .doctor-name {
        font-size: 13px;
    }

    .appointment-row {
        font-size: 11px;
    }
}

.flatpickr-calendar .flatpickr-day {
    margin: 2px;
    transition: all .15s ease;
}

.flatpickr-calendar .flatpickr-day.today {
    background: #fff7ed;
    border-color: #f97316;
    color: #ea580c;
}

.flatpickr-calendar .flatpickr-day.selected {
    background: #10b981 !important;
    border-color: #10b981 !important;
    color: #fff !important;
}

.flatpickr-calendar .flatpickr-day:hover {
    background: #dbeafe;
    border-color: #3b82f6;
    color: #2563eb;
}

/*end ccolor */

