/* ==========================================================
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;
}
