.app-sidebar-secondary {
    transform: translateX(-100%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    will-change: transform, opacity, visibility;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.25s ease-in-out,
                visibility 0s linear 0.3s;
}

.app-sidebar-secondary.sidebar-open {
    transform: translateX(0);
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
                opacity 0.25s ease-in-out,
                visibility 0s linear 0s;
}

/* İçerik animasyonu için */
.app-sidebar-secondary .tab-content {
    opacity: 0;
    transition: opacity 0.25s ease 0.1s;
}

.app-sidebar-secondary.sidebar-open .tab-content {
    opacity: 1;
}

/* İşletim sistemi ayarlarından azaltılmış hareket tercih eden kullanıcılar için animasyonları devre dışı bırak
   (erişilebilirlik, hareket hassasiyeti, vestibüler rahatsızlık veya düşük performanslı cihaz tercihi) */
@media (prefers-reduced-motion: reduce) {
    .app-sidebar-secondary,
    .app-sidebar-secondary.sidebar-open,
    .app-sidebar-secondary .tab-content,
    .app-sidebar-secondary.sidebar-open .tab-content {
        transition: none;
    }
}

/* Mobil drawer modunda ikincil sidebar gizleme */
@media (max-width: 991.98px) {
    .app-sidebar-secondary {
        display: none;
    }

    .app-sidebar-secondary.sidebar-open {
        display: block;
    }
}

.any-more-head {
    cursor: pointer;
}
.any-more-head .ki-down{
    font-size: 20px;
    color: var(--bs-primary);
    background-color: var(--bs-primary-light);
    padding: 5px;
    border-radius:10px;
    font-weight: 500;
}
.any-more-head:hover .ki-down{
    color: var(--bs-primary-light);
    background-color: var(--bs-primary);
}

.any-more-head-area::before,
.any-more-head-area::after {
    content: '';
    position: absolute;
    top: 50%;
    width: calc(50% - 20px);
    height: 0.5px;
    background: rgba(128, 146, 190, .2);
}

.any-more-head-area::before {
    left: 0;
}

.any-more-head-area::after {
    right: 0;
}

.any-more-head-area span {
    transform: rotate(0deg);
    transition: transform 0.5s ease;

}
.opened-any-more {
    transform: rotate(180deg)!important;
    transition: transform 0.2s ease;
}

.opened-any-more .ki-down {
    color: var(--bs-secondary-inverse);
    background-color: var(--bs-secondary-light);
}

.any-more-head:hover .opened-any-more .ki-down {
    color: var(--bs-secondary-inverse);

    background-color: var(--bs-secondary) ;
}

.any-more-body {
    max-height: 0; /* Başlangıçta gizli */
    overflow: hidden; /* Taşmayı engelle */
    transition: max-height 0.5s ease-out;
}

.any-more-body.open {
    max-height: 1000px; /* Yüksekliği arttırarak görünür yap */
    transition: max-height 2s ease-out;
}

.any-more-area:has(.any-more-body.open) .any-more-label {
    display: none;
}

td {
    vertical-align:middle;
}
.head-area{
    font-size:15px;
    border-bottom: 1px solid #000;
}
table.table th,
table.table td {
    text-align: left !important;
}

table.table th:first-child,
table.table td:first-child {
    text-align: left !important;
}

table.table th:last-child,
table.table td:last-child {
    text-align: center !important;
}

.favorite-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transform-origin: center;
    transition: transform .25s ease-in-out;
    line-height: 1
}

.favorite-btn.pulse {
    animation: pulse-animation .25s ease-in-out;
}

@keyframes pulse-animation {
    0%   { transform: scale(1); }
    50%  { transform: scale(1.35); }
    100% { transform: scale(1); }
}

.fav-title {
    display: block;
    min-height: 32px;
    line-height: 1.2;
}

/* Ana içerik alanı smooth geçiş */
.app-wrapper {
    transition: margin-right 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Sidebar açıldığında kart responsive davranışı */
[data-kt-app-sidebar-secondary-enabled="true"] .profile-card-responsive .profile-text-col {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    transition: flex 0.6s ease, max-width 0.6s ease;
}

/* SVG görselini küçülterek kaybettir */
[data-kt-app-sidebar-secondary-enabled="true"] .profile-card-responsive .position-absolute.bottom-0.end-0 {
    opacity: 0;
    transform: scale(0);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Sidebar açılınca title'daki nowrap'i kaldır */

[data-kt-app-sidebar-secondary-enabled="true"] .profile-card-responsive .profile-text-col #profile_title {
    white-space: normal !important
}

.profile-card-responsive .position-absolute.bottom-0.end-0 {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.6s ease 0.2s, transform 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s;
}
@media only screen and (max-width: 768px) {
    .hide-on-mobile {
        display: none !important;
    }
    .card .card-body {
        padding: 6px!important;
        color: var(--bs-card-color);
    }
    .card .card-header{
        padding-left: 10px!important;
        padding-right: 10px!important;
    }
    .mobile-mb-20{
        margin-bottom:20px
    }
}
@media only screen and (min-width: 768px) {
    .hide-on-desktop {
        display: none !important;
    }
    :root {
        /* Değişken Tanımları */
        --s-0: 0;
        --s-5: 5px;
        --s-10: 10px;
        --s-15: 15px;
        --s-20: 20px;
        --s-25: 25px;
        --s-30: 30px;
    }

    @media (max-width: 767px) {

        .mobile-m-0  { margin: var(--s-0) !important; }
        .mobile-mt-0 { margin-top: var(--s-0) !important; }
        .mobile-mb-0 { margin-bottom: var(--s-0) !important; }
        .mobile-my-0 { margin-top: var(--s-0) !important; margin-bottom: var(--s-0) !important; }
        .mobile-mx-0 { margin-left: var(--s-0) !important; margin-right: var(--s-0) !important; }

        .mobile-p-0  { padding: var(--s-0) !important; }
        .mobile-pt-0 { padding-top: var(--s-0) !important; }
        .mobile-pb-0 { padding-bottom: var(--s-0) !important; }
        .mobile-py-0 { padding-top: var(--s-0) !important; padding-bottom: var(--s-0) !important; }
        .mobile-px-0 { padding-left: var(--s-0) !important; padding-right: var(--s-0) !important; }
        /* --- 5px --- */
        .mobile-m-5  { margin: var(--s-5) !important; }
        .mobile-mt-5 { margin-top: var(--s-5) !important; }
        .mobile-mb-5 { margin-bottom: var(--s-5) !important; }
        .mobile-my-5 { margin-top: var(--s-5) !important; margin-bottom: var(--s-5) !important; }
        .mobile-mx-5 { margin-left: var(--s-5) !important; margin-right: var(--s-5) !important; }

        .mobile-p-5  { padding: var(--s-5) !important; }
        .mobile-pt-5 { padding-top: var(--s-5) !important; }
        .mobile-pb-5 { padding-bottom: var(--s-5) !important; }
        .mobile-py-5 { padding-top: var(--s-5) !important; padding-bottom: var(--s-5) !important; }
        .mobile-px-5 { padding-left: var(--s-5) !important; padding-right: var(--s-5) !important; }

        /* --- 10px --- */
        .mobile-m-10  { margin: var(--s-10) !important; }
        .mobile-mt-10 { margin-top: var(--s-10) !important; }
        .mobile-mb-10 { margin-bottom: var(--s-10) !important; }
        .mobile-my-10 { margin-top: var(--s-10) !important; margin-bottom: var(--s-10) !important; }
        .mobile-mx-10 { margin-left: var(--s-10) !important; margin-right: var(--s-10) !important; }

        .mobile-p-10  { padding: var(--s-10) !important; }
        .mobile-pt-10 { padding-top: var(--s-10) !important; }
        .mobile-pb-10 { padding-bottom: var(--s-10) !important; }
        .mobile-py-10 { padding-top: var(--s-10) !important; padding-bottom: var(--s-10) !important; }
        .mobile-px-10 { padding-left: var(--s-10) !important; padding-right: var(--s-10) !important; }

        /* --- 15px --- */
        .mobile-m-15  { margin: var(--s-15) !important; }
        .mobile-mt-15 { margin-top: var(--s-15) !important; }
        .mobile-mb-15 { margin-bottom: var(--s-15) !important; }
        .mobile-my-15 { margin-top: var(--s-15) !important; margin-bottom: var(--s-15) !important; }
        .mobile-mx-15 { margin-left: var(--s-15) !important; margin-right: var(--s-15) !important; }

        .mobile-p-15  { padding: var(--s-15) !important; }
        .mobile-pt-15 { padding-top: var(--s-15) !important; }
        .mobile-pb-15 { padding-bottom: var(--s-15) !important; }
        .mobile-py-15 { padding-top: var(--s-15) !important; padding-bottom: var(--s-15) !important; }
        .mobile-px-15 { padding-left: var(--s-15) !important; padding-right: var(--s-15) !important; }

        /* --- 20px --- */
        .mobile-m-20  { margin: var(--s-20) !important; }
        .mobile-mt-20 { margin-top: var(--s-20) !important; }
        .mobile-mb-20 { margin-bottom: var(--s-20) !important; }
        .mobile-my-20 { margin-top: var(--s-20) !important; margin-bottom: var(--s-20) !important; }
        .mobile-mx-20 { margin-left: var(--s-20) !important; margin-right: var(--s-20) !important; }

        .mobile-p-20  { padding: var(--s-20) !important; }
        .mobile-pt-20 { padding-top: var(--s-20) !important; }
        .mobile-pb-20 { padding-bottom: var(--s-20) !important; }
        .mobile-py-20 { padding-top: var(--s-20) !important; padding-bottom: var(--s-20) !important; }
        .mobile-px-20 { padding-left: var(--s-20) !important; padding-right: var(--s-20) !important; }

        /* --- 25px --- */
        .mobile-m-25  { margin: var(--s-25) !important; }
        .mobile-mt-25 { margin-top: var(--s-25) !important; }
        .mobile-mb-25 { margin-bottom: var(--s-25) !important; }
        .mobile-my-25 { margin-top: var(--s-25) !important; margin-bottom: var(--s-25) !important; }
        .mobile-mx-25 { margin-left: var(--s-25) !important; margin-right: var(--s-25) !important; }

        .mobile-p-25  { padding: var(--s-25) !important; }
        .mobile-pt-25 { padding-top: var(--s-25) !important; }
        .mobile-pb-25 { padding-bottom: var(--s-25) !important; }
        .mobile-py-25 { padding-top: var(--s-25) !important; padding-bottom: var(--s-25) !important; }
        .mobile-px-25 { padding-left: var(--s-25) !important; padding-right: var(--s-25) !important; }

        /* --- 30px --- */
        .mobile-m-30  { margin: var(--s-30) !important; }
        .mobile-mt-30 { margin-top: var(--s-30) !important; }
        .mobile-mb-30 { margin-bottom: var(--s-30) !important; }
        .mobile-my-30 { margin-top: var(--s-30) !important; margin-bottom: var(--s-30) !important; }
        .mobile-mx-30 { margin-left: var(--s-30) !important; margin-right: var(--s-30) !important; }

        .mobile-p-30  { padding: var(--s-30) !important; }
        .mobile-pt-30 { padding-top: var(--s-30) !important; }
        .mobile-pb-30 { padding-bottom: var(--s-30) !important; }
        .mobile-py-30 { padding-top: var(--s-30) !important; padding-bottom: var(--s-30) !important; }
        .mobile-px-30 { padding-left: var(--s-30) !important; padding-right: var(--s-30) !important; }
    }
}

/* Fatura kalemleri - Deselect edilen satırlar için stil */
/* DataTables select varsayılan box-shadow stilini override et */
#einvoice_items_table.dataTable > tbody > tr.selected > *,
#esevoucher_items_table.dataTable > tbody > tr.selected > *,
#non_invoice_items_table.dataTable > tbody > tr.selected > * {
    box-shadow: inset 0 0 0 9999px var(--bs-gray-200) !important;
    color: var(--bs-gray-500) !important;
}

#einvoice_items_table tr.selected,
#esevoucher_items_table tr.selected,
#non_invoice_items_table tr.selected {
    opacity: 0.6;
}

#einvoice_items_table tr.selected td,
#esevoucher_items_table tr.selected td,
#non_invoice_items_table tr.selected td {
    text-decoration: line-through;
    color: var(--bs-gray-500);
}

/* Checkbox ve action butonları için line-through kaldır */
#einvoice_items_table tr.selected td:first-child,
#esevoucher_items_table tr.selected td:first-child,
#non_invoice_items_table tr.selected td:first-child,
#einvoice_items_table tr.selected td:last-child,
#esevoucher_items_table tr.selected td:last-child,
#non_invoice_items_table tr.selected td:last-child {
    text-decoration: none;
}

/* Input ve select elemanları için stil */
#einvoice_items_table tr.selected input,
#einvoice_items_table tr.selected select,
#esevoucher_items_table tr.selected input,
#esevoucher_items_table tr.selected select,
#non_invoice_items_table tr.selected input,
#non_invoice_items_table tr.selected select {
    opacity: 0.6;
    pointer-events: none;
}

/* Checkbox hariç - tıklanabilir ve belirgin kalmalı */
#einvoice_items_table tr.selected input.isSelected,
#esevoucher_items_table tr.selected input.isSelected,
#non_invoice_items_table tr.selected input.isSelected,
#einvoice_items_table tr.selected .form-check-input.isSelected,
#esevoucher_items_table tr.selected .form-check-input.isSelected,
#non_invoice_items_table tr.selected .form-check-input.isSelected {
    opacity: 1 !important;
    pointer-events: auto !important;
    background-color: #fff !important;
    border: 2px solid var(--bs-gray-400) !important;
    box-shadow: none !important;
}

/* Checkbox wrapper için stil */
#einvoice_items_table tr.selected .form-check,
#esevoucher_items_table tr.selected .form-check,
#non_invoice_items_table tr.selected .form-check {
    text-decoration: none;
    opacity: 1 !important;
}

/* Checkbox hücresine box-shadow uygulanmasın */
#einvoice_items_table.dataTable > tbody > tr.selected > td:first-child,
#esevoucher_items_table.dataTable > tbody > tr.selected > td:first-child,
#non_invoice_items_table.dataTable > tbody > tr.selected > td:first-child {
    box-shadow: inset 0 0 0 9999px var(--bs-gray-100) !important;
}

/* SweetAlert2 - Yükseklik otomatik ayarlama */
.swal2-popup-auto-height {
    max-height: 90vh !important;
}
.swal2-popup-auto-height .swal2-html-container {
    max-height: none !important;
    overflow: visible !important;
}

/* Utility - Max Height vh */
.mh-70vh {
    max-height: 70vh !important;
}

/* Card Loading Overlay */
.card-loading {
    position: relative;
}

.card-loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    min-height: 120px;
    background-color: rgba(255, 255, 255, 0.7);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    border-radius: var(--bs-card-border-radius);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    animation: fadeIn 0.2s ease-in-out;
}
[data-bs-theme="dark"] .card-loading-overlay {
    background-color: rgba(0, 0, 0, 0.7);
}

.card-loading-overlay .spinner-border {
    width: 3rem;
    height: 3rem;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Drawer açılma efekti */
#kt_protocol_drawer.effect-slow {
    transition: transform 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* ========== Select2 UX Çözümü ========== */
/* Seçim varken: dropdown arrow gizle */
.select2-selection--clearable.form-select {
    background-image: none !important;
}

/* X butonunu sağa sabitle (arrow'un yerine) */
.select2-selection--clearable .select2-selection__clear {
    position: absolute !important;
    right: 1.25rem !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    padding: 0 !important;
    margin: 0 !important;
    font-size: 1rem;
    color: var(--bs-gray-500);
    z-index: 2;
}

.select2-selection--clearable .select2-selection__clear:hover {
    background-color: var(--bs-danger) !important;
}

.select2-selection--clearable .select2-selection__rendered {
    padding-right: 0.1rem !important;
}

/* ========== Sticky Patient Info Bar ========== */
.prt-scroll-head {
    position: fixed;
    top: var(--bs-app-header-height, 70px);
    left: 0;
    right: 0;
    z-index: 105;
    background: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border-bottom: 1px solid rgba(0,0,0,0.08);
    padding: 10px 24px 4px;
    display: none;
}
[data-bs-theme="dark"] .prt-scroll-head {
    background: rgba(0, 0, 0, 0.65);
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
    border-bottom: 1px solid rgba(255,255,255,0.08);
}
.prt-scroll-head .scroll-row {
    margin-bottom: 2px;
}
.prt-scroll-head .scroll-item {
    padding: 3px 6px;
    font-size: 0.9rem;
    line-height: 1.5;
}
.prt-scroll-head .scroll-item strong {
    color: var(--bs-gray-900);
    font-weight: 700;
    margin-right: 3px;
}
.prt-scroll-head .scroll-item span,
.prt-scroll-head .scroll-item {
    color: var(--bs-gray-700);
    font-weight: 500;
}
.prt-scroll-head .scroll-item a {
    color: var(--bs-primary);
    font-weight: 600;
    text-decoration: none;
}
.prt-scroll-head .scroll-item a:hover {
    text-decoration: underline;
}
.prt-scroll-head .any-more-sc {
    display: none;
}
.prt-scroll-head .any-more-sc.active {
    display: flex;
    flex-wrap: wrap;
}
.prt-scroll-head .any-more-btn-area {
    text-align: center;
    padding: 0;
    cursor: pointer;
    position: relative;
}
.prt-scroll-head .any-more-btn-area i {
    transition: transform 0.3s ease;
}
.prt-scroll-head .any-more-btn-area.transform-css i {
    transform: rotate(180deg);
}
@media (max-width: 1024px) {
    .prt-scroll-head {
        display: none !important;
    }
}

body [data-webview-margin="false"] {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

body [data-webview-visible="false"] {
    display: none !important;
}

body[data-webview-source] .app-wrapper {
    margin-left: 0 !important;
    margin-top: 0 !important;
}

body [data-webview-tab="true"] .card {
    border: 0px solid black !important;
    box-shadow: none !important;
}

/* WebView: body'yi viewport'a değil İÇERİĞE göre boyutlandır.
   Temada `html, body { height: 100% }` var → webview'de body = viewport = RN'in
   ScrollView'a verdiği güncel yükseklik. Bu durumda body.scrollHeight viewport
   tabanına oturur ve içerik küçülünce (modal kapanışı) yeni yükseklik RN'e
   bildirilemez (height bridge ratchet'i). height:auto + min-height:0 bunu kırar.
   position:relative ise body'ye append edilen position:absolute modal'ın içeren
   bloğunu body yapar → modal yüksekliği body.scrollHeight'e dahil olur. */
body[data-webview-source] {
    position: relative !important;
    height: auto !important;
    min-height: 0 !important;
}

/* WebView: modal içeride dikey scroll ETMESİN. İçerik viewport'tan uzun olsa bile
   .modal kendi içinde kaymak yerine sayfa (body) yükselir ve webview'in kendi
   scroll'u tüm modalı kaydırarak gösterir. Kısa modaller dikeyde ortalı kalır.

   Mekanik: Bootstrap .modal varsayılan olarak position:fixed + overflow-y:auto
   (viewport'a kilitli, iç scroll). WebView'de bunu position:absolute + height:auto
   + overflow:visible yaparak dokümanın scrollHeight'ine dahil ediyoruz; modal body'ye
   eklendiği için (bkz. openUrlNewModal) konumlanma ana doküman akışına göre olur. */
body[data-webview-source].modal-open {
    /* Bootstrap'in açık modalde body'e koyduğu overflow:hidden kilidini kaldır */
    overflow: auto !important;
    padding-right: 0 !important;
}
body[data-webview-source] .modal {
    position: absolute !important;
    height: auto !important;
    overflow: visible !important;
}
body[data-webview-source] .modal .modal-dialog:not([class*="modal-fullscreen"]) {
    display: flex !important;
    align-items: center !important;
    /* Kısa içerik: en az bir viewport yüksekliği → dikeyde ortalı.
       Uzun içerik: dialog içeriğe göre büyür, sayfa uzar, webview kaydırır. */
    min-height: 100vh !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
/* Açıkça scrollable (modal-dialog-scrollable) işaretlenmiş modaller de WebView'de
   iç scroll yerine sayfayı uzatsın. */
body[data-webview-source] .modal-dialog-scrollable .modal-content {
    max-height: none !important;
    overflow: visible !important;
}
body[data-webview-source] .modal-dialog-scrollable .modal-body {
    overflow-y: visible !important;
}
/* ========== FullCalendar Non-Business Saatler ========== */
.fc-non-business {
    background-color: rgba(0, 0, 0, 0.08) !important;
}
[data-bs-theme="dark"] .fc-non-business {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

/* FullCalendar Dark Mode Header */
[data-bs-theme="dark"] .fc th,
[data-bs-theme="dark"] .fc .fc-col-header-cell {
    background-color: var(--bs-secondary) !important;
    color: var(--bs-gray-700) !important;
}
