body {
  overflow-x: hidden;
}

a {
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

/* Custom Classes */
.text-purple {
  color: #522DDF !important;
}

.btn-theme {
  padding: 10px 25px !important;
}

.btn-purple {
  background-color: #522DDF;
  color: #ffffff;
  border: 1px solid #522DDF;
}

.btn-purple:hover,
.btn-purple:focus,
.btn-outline-purple:hover {
  background-color: #522DDF;
  color: #ffffff;
  border: 1px solid #522DDF;
}

.btn-outline-purple {
  color: #522DDF;
  border: 1px solid #522DDF;
}

.bg-purple {
  background-color: #522DDF;
}

.purple-tab .nav-link {
  color: #522DDF;
}

.bg-opacity-purple {
  background: rgb(139 61 255 / 8%);
}

.shadow {
  box-shadow: 0 10px 40px 0 rgba(47, 47, 47, .1) !important;
}

.transition-3d-hover {
  transition: all 0.2s ease-in-out;
}

.transition-3d-hover:hover {
  -webkit-transform: translateY(-3px);
  transform: translateY(-3px);
}

.osahan-dropdown-box {
  background-image: url("../img/bg.html") !important;
  background-size: cover;
  background-repeat: no-repeat;
}

.card-osahan-demo .card-img-top {
  border-radius: 18px 0 0 0 !important;
  border-right: 0px !important;
  border-bottom: 0px !important;
}

.card-osahan-demo {
  transition: all .35s;
  -webkit-transition: all .35s;
  -moz-transition: all .35s;
}

.card-osahan-demo:hover {
  box-shadow: 0px 0px 40px 10px rgba(0, 0, 0, 0.05);
  transform: translateY(-10px);
}

/* Nav */
.osahan-main-nav {
  -webkit-transition: all .5s;
  -moz-transition: all .5s;
  transition: all .5s;
}

.osahan-main-nav.fixed-top {
  background-color: #ffffff;
  box-shadow: 0px 10px 15px rgba(0, 0, 0, 0.04);
}

.navbar-nav .dropdown-menu {
  box-shadow: 0px 24px 21px rgb(0 0 0 / 11%) !important;
}

.dropdown:hover>.dropdown-menu {
  display: block;
  animation: dropdown-show 0.25s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

@keyframes dropdown-show {
  from {
    opacity: 0;
    transform: scale(0.9);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.dropdown-menu:hover .dropdown-item {
  opacity: 0.6;
}

.dropdown-menu .dropdown-item:hover {
  opacity: unset;
  font-weight: 500;
}

.dropdown-item {
  transition: all 0.2s ease-in-out;
  padding-right: 40px;
}

.dropdown-item:hover {
  -webkit-transform: translateX(3px);
  transform: translateX(3px);
}

.dropdown-item:after {
  content: "\ea6c";
  font-family: remixicon !important;
  font-style: normal;
  position: absolute;
  right: 0;
  font-size: 14px;
  line-height: 24px;
  opacity: 0;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.dropdown-item:hover:after {
  opacity: unset;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.dropdown-item {
  position: relative;
}

.single-dropdown-nav .dropdown-menu {
  border: none;
  border-radius: 11px;
  padding: 14px 22px 14px 14px;
  min-width: 270px;
}

.single-dropdown-nav .dropdown-menu .dropdown-item {
  padding: 7px 40px 7px 14px;
  border-radius: 6px;
}

.single-dropdown-nav .dropdown-menu .dropdown-item::after {
  right: 11px;
}

.site-brand small {
  font-size: 11px;
  letter-spacing: 0.1px;
}

.site-brand .fw-bold {
  line-height: 20px;
}

.site-brand .lh-1 {
  line-height: 12px !important;
}

.osahan-dropdown-box p.lead.mb-5 {
  font-size: 13px;
  margin-bottom: 29px !important;
}

.osahan-dropdown-box a.btn {
  padding: 10px 23px !important;
  border-radius: 32px;
  font-size: 14px;
  background: #000;
  border: none;
}

.osahan-dropdown-box h1.text-primary {
  font-size: 25px;
  color: #000 !important;
}

.osahan-dropdown-box h5.text-dark {
  font-size: 15px;
  opacity: 0.7;
  margin-top: 30px !important;
}

/* Back To Top */
#back-to-top {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  box-shadow: 0 10px 40px 0 rgba(47, 47, 47, .1) !important;
  background-color: #fff;
  color: #2d2a3e;
  width: 50px;
  border-radius: 100px;
  cursor: pointer;
  height: 50px;
  border: 3px solid #ebebeb;
  text-transform: uppercase;
  font-weight: bold;
  font-size: 14px;
}

#back-to-top:hover {
  box-shadow: 0 10px 40px 0 rgba(47, 47, 47, .1) !important;
  background-color: #2d2a3e;
  color: #ffffff;
}

/* Sidebar */
#sidebar .offcanvas-header .link-light {
  color: #000 !important;
}

#sidebar .offcanvas-body .nav-item .nav-link {
  text-align: center;
  padding: 15px 20px !important;
}

#sidebar .offcanvas-body .nav-item.dropdown {
  position: unset !important;
}

#sidebar .offcanvas-body .dropdown-menu {
  position: relative !important;
  transform: unset !important;
  box-shadow: none !important;
}

#sidebar .offcanvas-body .dropdown-menu .dropdown-mega-content .col-lg-3 {
  border: none !important;
  padding: 15px 15px !important;
  text-align: center;
}

/* Page Loading */
.page-loading {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  -webkit-transition: all .4s .2s ease-in-out;
  transition: all .4s .2s ease-in-out;
  background-color: #fff;
  opacity: 0;
  visibility: hidden;
  z-index: 9999;
}

[data-bs-theme="dark"] .page-loading {
  background-color: #121519;
}

.page-loading.active {
  opacity: 1;
  visibility: visible;
}

.page-loading-inner {
  position: absolute;
  top: 50%;
  left: 0;
  width: 100%;
  text-align: center;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  -webkit-transition: opacity .2s ease-in-out;
  transition: opacity .2s ease-in-out;
  opacity: 0;
}

.page-loading.active>.page-loading-inner {
  opacity: 1;
}

.page-loading-inner>span {
  display: block;
  font-family: "Inter", sans-serif;
  font-size: 1rem;
  font-weight: normal;
  color: #6f788b;
}

[data-bs-theme="dark"] .page-loading-inner>span {
  color: #fff;
  opacity: .6;
}

.page-spinner {
  display: inline-block;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: .75rem;
  vertical-align: text-bottom;
  background-color: #d7dde2;
  border-radius: 50%;
  opacity: 0;
  -webkit-animation: spinner .75s linear infinite;
  animation: spinner .75s linear infinite;
}

[data-bs-theme="dark"] .page-spinner {
  background-color: rgba(255, 255, 255, .25);
}

@-webkit-keyframes spinner {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }

  50% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}

@keyframes spinner {
  0% {
    -webkit-transform: scale(0);
    transform: scale(0);
  }

  50% {
    opacity: 1;
    -webkit-transform: none;
    transform: none;
  }
}









/* appointments  */

/* Base Styles */
    .appointment-details-modern {
        font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
        color: var(--dark);
    }
    
    /* Appointment Header */
    .appointment-header-card {
        background: var(--linear);
        color: white;
        border-radius: var(--border-radius);
        padding: 1.5rem;
        margin-bottom: 1.5rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    }
    
    .client-name-title {
        font-weight: 700;
        margin-bottom: 0.5rem;
        font-size: 1.75rem;
    }
    
    .appointment-id-badge {
        background-color: rgba(255, 255, 255, 0.15);
        border-radius: 50px;
        padding: 0.4rem 1rem;
        font-size: 0.9rem;
        display: inline-block;
        border: 1px solid rgba(255, 255, 255, 0.3);
    }
    
    /* Status Badges */
    .status-badge {
        display: inline-block;
        padding: 0.4rem 1.2rem;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.85rem;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }
    
    .status-confirmed {
        background-color: rgba(76, 201, 240, 0.15);
        color: var(--success);
        border: 1px solid rgba(76, 201, 240, 0.3);
    }
    
    .status-pending {
        background-color: rgba(255, 193, 7, 0.15);
        color: #ffc107;
        border: 1px solid rgba(255, 193, 7, 0.3);
    }
    
    .status-cancelled {
        background-color: rgb(220, 53, 70);
        color: #fff;
        border: 1px solid rgba(220, 53, 69, 0.3);
    }
    
    .status-completed {
        background-color: rgba(8, 124, 111, 0.15);
        color: var(--primary);
        border: 1px solid rgba(8, 124, 111, 0.3);
    }
    
    /* Info Cards */
    .info-card {
        background-color: white;
        border-radius: var(--border-radius);
        padding: 1.5rem;
        margin-bottom: 1.5rem;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        border: 1px solid rgba(0, 0, 0, 0.05);
        transition: var(--transition);
    }
    
    .info-card:hover {
        box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    }
    
    /* .sidebar-card {
        height: 100%;
    } */

    .info-card.sidebar-card{
      position: sticky;
      top: 2rem;
    }
    
    /* Card Headers */
    .card-header-icon {
        display: flex;
        align-items: center;
        margin-bottom: 1.25rem;
        padding-bottom: 0.75rem;
        border-bottom: 2px solid rgba(8, 124, 111, 0.1);
    }
    
    .card-header-icon i {
        color: var(--primary);
        font-size: 1.25rem;
        margin-right: 0.75rem;
    }
    
    .card-header-icon h4 {
        color: var(--primary);
        font-weight: 600;
        font-size: 1.1rem;
        margin: 0;
    }
    
    /* Detail Grid */
    .detail-grid {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
        gap: 1rem;
    }
    
    .detail-item {
        display: flex;
        flex-direction: column;
        padding: 0.75rem 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    }
    
    .detail-item:last-child {
        border-bottom: none;
    }
    
    .detail-label {
        font-weight: 500;
        color: var(--gray);
        font-size: 0.95rem;
        margin-bottom: 0.25rem;
    }
    
    .detail-value {
        font-weight: 600;
        color: var(--dark);
        font-size: 1rem;
    }
    
    .highlight {
        color: var(--primary);
        font-weight: 700;
    }
    
    .time-highlight {
        color: var(--accent);
        font-weight: 600;
    }
    
    /* Notes Section */
    .notes-section {
        margin-top: 0.5rem;
    }
    
    .note-item {
        margin-bottom: 1.25rem;
    }
    
    .note-item:last-child {
        margin-bottom: 0;
    }
    
    .note-title {
        color: var(--primary);
        font-size: 1rem;
        font-weight: 600;
        margin-bottom: 0.5rem;
    }
    
    .note-content {
        background-color: rgba(8, 124, 111, 0.05);
        padding: 1rem;
        border-radius: 8px;
        border-left: 3px solid var(--primary);
        line-height: 1.5;
    }
    
    /* Summary Grid */
    .summary-grid {
        display: flex;
        flex-direction: column;
        gap: 1rem;
    }
    
    .summary-item {
        display: flex;
        justify-content: space-between;
        align-items: center;
        padding: 0.75rem 0;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    }
    
    .summary-item:last-child {
        border-bottom: none;
    }
    
    .summary-label {
        font-weight: 500;
        color: var(--gray);
        font-size: 0.95rem;
    }
    
    .summary-value {
        font-weight: 600;
        /* color: var(--dark); */
        text-align: right;
    }
    
    /* Time Visualization */
    .time-visualization {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0.75rem;
        padding: 1rem 0;
    }
    
    .time-slot {
        text-align: center;
        width: 100%;
    }
    
    .time-label {
        font-weight: 600;
        color: var(--primary);
        font-size: 0.9rem;
        margin-bottom: 0.25rem;
    }
    
    .time-value {
        font-weight: 600;
        color: var(--dark);
        font-size: 1rem;
    }
    
    .time-line {
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        position: relative;
    }
    
    .time-line::before {
        content: '';
        position: absolute;
        width: 100%;
        height: 2px;
        background-color: var(--accent);
        opacity: 0.3;
        z-index: 1;
    }
    
    .time-duration {
        background-color: white;
        padding: 0.5rem 1rem;
        border-radius: 50px;
        font-weight: 600;
        color: var(--accent);
        border: 2px solid var(--accent);
        z-index: 2;
        display: flex;
        align-items: center;
        gap: 0.5rem;
    }
    
    /* Quick Info Grid */
    .quick-info-grid {
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
    }
    
    .quick-info-item {
        display: flex;
        align-items: center;
        gap: 1rem;
    }
    
    .quick-info-item i {
        color: var(--primary);
        font-size: 1.25rem;
        width: 24px;
    }
    
    .quick-info-label {
        font-weight: 500;
        color: var(--gray);
        font-size: 0.9rem;
        margin-bottom: 0.25rem;
    }
    
    .quick-info-value {
        font-weight: 600;
        color: var(--dark);
        font-size: 1rem;
    }
    
    /* Intake Table */
    .intake-table {
        width: 100%;
        border-collapse: separate;
        border-spacing: 0;
    }
    
    .intake-table thead th {
        background-color: rgba(8, 124, 111, 0.08);
        color: var(--primary);
        font-weight: 600;
        padding: 1rem;
        text-align: left;
        border-bottom: 2px solid rgba(8, 124, 111, 0.15);
    }
    
    .intake-table tbody tr {
        transition: var(--transition);
    }
    
    .intake-table tbody tr:hover {
        background-color: rgba(8, 124, 111, 0.03);
    }
    
    .intake-table tbody td {
        padding: 1rem;
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        vertical-align: top;
    }
    
    .intake-table tbody tr:last-child td {
        border-bottom: none;
    }
    
    /* Responsive Adjustments */
    @media (max-width: 992px) {
        .col-lg-4.ps-lg-3 {
            padding-left: 0 !important;
        }
        
        .detail-grid {
            grid-template-columns: 1fr;
        }
    }
    
    @media (max-width: 768px) {
        .appointment-header-card .d-flex {
            flex-direction: column;
            align-items: flex-start !important;
        }
        
        .mt-3.mt-md-0 {
            margin-top: 1rem !important;
        }
        
        .info-card {
            padding: 1.25rem;
        }
        
        .card-header-icon {
            flex-direction: column;
            align-items: flex-start;
        }
        
        .card-header-icon i {
            margin-bottom: 0.5rem;
        }
    }