th, td { white-space: nowrap; }

.nowrap { white-space: nowrap; }

.wrap {
    white-space: normal;
    word-break: break-word;
}

.min-250 {
    min-width: 250px;
}

select[readonly] {
    pointer-events: none;
}

.color-red {
    color: red;
}

.container {
    position: relative;
}

.middle {
    transition: .5s ease;
    opacity: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    text-align: center;
}

.container:hover img {
    opacity: 0.6;
}

.container:hover .middle {
    opacity: 1;
}

.text {
    background-color: #707070;
    color: white;
    font-size:.88rem;
    padding: 4px 8px;
}

.table_left {
    width: 48%; text-align: right;
}

.table_middle {
    width: 4%; text-align: center;
}

.table_right {
    width: 48%; text-align: left;
}

.select2-container--default .select2-selection--single {
    background-color: #fff;
    border: 1px solid #e9ecef;
    border-radius: 4px;
}

.select2-dropdown {
    background-color: #fff;
    border: 1px solid #e9ecef;
    border-radius: 4px;
}

.modal-overflow {
    overflow-x: auto; 
    max-width: 100%;
}

.table-timesheet {
    border-collapse: collapse !important;
    table-layout: fixed;
    width: 100%;
}
.table-timesheet th,
.table-timesheet td {
    border: 1px solid #999 !important;
    padding: 4px;
    vertical-align: middle;
    text-align: center;
    font-size: 13px;
}
.table-timesheet td {
    height: 25px;
}
.timeslot {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.reservasi-item {
    background-color: #c6f6d5;
    border: 1px solid #9ae6b4;
    border-radius: 6px;
    padding: 2px;
    font-size: 12px;
    line-height: 1.1;
}
.reservasi-item small {
    font-size: 11px;
    color: #333;
}

.bg-light-green {
    background-color: #d4edda !important;
}
.bg-light-red {
    background-color: #f8d7da !important;
}

body {
    background-color: #F3E6F1 !important;
}

.main-sidebar {
    background-color: #5E4B8B !important;
}

.navbar {
    background-color: #6C5B9A !important;
}

.btn-primary {
    background-color: #8E7DBE;
    border-color: #8E7DBE;
}

.tooltip-indicator {
    text-decoration: underline dotted;
    cursor: help;
}

.badge-kepuasan {
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    display: inline-block;
    min-width: 140px;
    text-align: center;
    letter-spacing: 0.3px;
}

.badge-very-satisfied {
    background: linear-gradient(135deg, #28a745, #20c997);
    color: #fff;
}

.badge-satisfied {
    background: linear-gradient(135deg, #007bff, #17a2b8);
    color: #fff;
}

.badge-neutral {
    background: linear-gradient(135deg, #6c757d, #adb5bd);
    color: #fff;
}

.badge-dissatisfied {
    background: linear-gradient(135deg, #ffc107, #fd7e14);
    color: #212529;
}

.badge-very-dissatisfied {
    background: linear-gradient(135deg, #dc3545, #b02a37);
    color: #fff;
}

.reset-custom-select-search {
    display:none;
    position:absolute;
    right:10px;
    top:50%;
    transform:translateY(-50%);
    border:none;
    background:none;
    color:red;
    font-size:20px;
    font-weight:bold;
    cursor:pointer;
    z-index:1000;
}

.list-group-custom-select-search {
    display:none;
    position:absolute;
    top:100%;
    left:0;
    width:100%;
    max-height:250px;
    overflow-y:auto;
    z-index:99999;
    background:#fff;
    border:1px solid #ced4da;
    border-radius:4px;
}

.wrapper-custom-select-search {
    position:relative; 
    width:100%;
}

.textbox-custom-select-search {
    padding-right:45px;
}

/* =========================================================
   ROOT
   ========================================================= */
:root{
    --primary:#7c6cf2;
    --primary-dark:#6d5ce8;
    --secondary:#a78bfa;
    --accent:#c4b5fd;

    --primary-soft:rgba(124,108,242,.10);
    --secondary-soft:rgba(167,139,250,.12);

    --success:#34d399;
    --info:#8b5cf6;
    --warning:#fbbf24;
    --danger:#f87171;

    --bg:#f6f3ff;
    --bg-secondary:#fbfaff;

    --card-bg:rgba(255,255,255,.88);
    --border:rgba(124,108,242,.10);

    --text-dark:black;
    --text-muted:black;

    --shadow-sm:0 4px 18px rgba(124,108,242,.06);
    --shadow-md:0 10px 28px rgba(124,108,242,.10);
    --shadow-lg:0 16px 38px rgba(124,108,242,.14);

    --radius:18px;
    --radius-sm:12px;
    --transition:all .3s ease;
}

/* =========================================================
   GLOBAL
   ========================================================= */
html{scroll-behavior:smooth;}

body{
    background:
        radial-gradient(circle at top right, rgba(196,181,253,.18), transparent 30%),
        radial-gradient(circle at bottom left, rgba(167,139,250,.14), transparent 35%),
        linear-gradient(135deg,#f8f5ff,#f3efff,#fbfaff) !important;
    font-family:'Inter','Segoe UI',sans-serif;
    color:var(--text-dark);
}

.page-wrapper,
.container{
    position:relative;
    background:transparent !important;
}

th, td, .nowrap{white-space:nowrap;}
.wrap{
    white-space:normal;
    word-break:break-word;
}

.min-250{min-width:250px;}
.color-red{color:red;}

select[readonly]{pointer-events:none;}

/* =========================================================
   SCROLLBAR
   ========================================================= */
::-webkit-scrollbar{
    width:9px;
    height:9px;
}
::-webkit-scrollbar-track{
    background:#f3f0ff;
    border-radius:20px;
}
::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--primary),var(--secondary));
    border-radius:20px;
    border:2px solid #f3f0ff;
}
::-webkit-scrollbar-thumb:hover{
    background:linear-gradient(180deg,#9333ea,#6d28d9);
}
*{
    scrollbar-width:thin;
    scrollbar-color:#8b5cf6 #f3f0ff;
}

/* =========================================================
   SIDEBAR + NAVBAR
   ========================================================= */
.main-sidebar{background-color:#5E4B8B !important;}
.navbar{background-color:#6C5B9A !important;}

/* =========================================================
   CARD
   ========================================================= */
.card{
    position:relative;
    overflow:hidden;
    margin-bottom:20px;
    border:none !important;
    border-radius:var(--radius) !important;
    background:var(--card-bg) !important;
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    box-shadow:var(--shadow-sm) !important;
    transition:var(--transition);
}
.card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md) !important;
}
.card::before{
    content:"";
    position:absolute;
    top:0; left:0;
    width:100%;
    height:4px;
    background:linear-gradient(90deg,var(--primary),var(--secondary));
}
.card-body{padding:1rem !important;}

.card-title{
    font-size:1rem !important;
    font-weight:700 !important;
    color:var(--text-dark) !important;
    margin-bottom:3px !important;
}
.card-subtitle{
    color:var(--text-muted) !important;
    font-size:.88rem !important;
    font-weight:500;
    margin-top: .2rem;
}

/* =========================================================
   FORM
   ========================================================= */
label{
    font-size:.9rem;
    font-weight:600;
    color:var(--text-dark);
    margin-bottom:5px;
}

p{
    font-size:.9rem;
}

.form-control,
.select2-container--default .select2-selection--single{
    min-height:36px !important;
    height:36px !important;
    border-radius:8px !important;
    border:1px solid var(--border) !important;
    background:rgba(255,255,255,.95) !important;
    color:var(--text-dark) !important;
    font-size:.88rem !important;
    font-weight:400 !important;
    box-shadow:none !important;
    transition:var(--transition);
}

textarea.form-control{
    min-height:auto !important;
    height:auto !important;
}

/* INPUT */
.form-control{
    padding:.32rem .65rem !important;
    line-height:1.35 !important;
}

/* FOCUS */
.form-control:focus,
.select2-container--default.select2-container--focus .select2-selection--single{
    border-color:var(--primary) !important;
    box-shadow:0 0 0 2px rgba(124,108,242,.08) !important;
    background:#fff !important;
}

/* PLACEHOLDER */
.form-control::placeholder{
    font-size:.75rem;
    font-weight:400;
    color:#9ca3af;
}

/* SELECT2 */
/* SAMAKAN BORDER INPUT + SELECT2 SECARA IDENTIK */

.form-control,
.select2-container--default .select2-selection--single{
    min-height:36px !important;
    height:36px !important;
    border-radius:8px !important;
    border:1px solid #cfc4f7 !important; /* pakai warna fix biar sama */
    background:#ffffff !important;
    color:var(--text-dark) !important;
    font-size:.88rem !important;
    font-weight:400 !important;
    box-shadow:none !important;
    outline:none !important;
    transition:all .2s ease;
}

/* KHUSUS INPUT */
.form-control{
    padding:.32rem .65rem !important;
    appearance:none !important;
    -webkit-appearance:none !important;
    background-clip:padding-box !important;
}

/* KHUSUS SELECT2 */
.select2-container--default .select2-selection--single{
    padding:0 30px 0 10px !important;
    display:flex !important;
    align-items:center !important;
    box-sizing:border-box !important;
}

/* TEXT DI DALAM SELECT2 */
.select2-container--default .select2-selection--single .select2-selection__rendered{
    line-height:34px !important;
    padding:0 !important;
    margin:0 !important;
    font-size:.88rem !important;
    font-weight:400 !important;
    color:var(--text-dark) !important;
}

/* ARROW */
.select2-container--default .select2-selection--single .select2-selection__arrow{
    height:34px !important;
    width:24px !important;
    right:6px !important;
    top:1px !important;
}

/* HILANGKAN BORDER DOUBLE */
.select2-container--default .select2-selection--single .select2-selection__arrow b{
    border-color:#7c6cf2 transparent transparent transparent !important;
}

/* FOCUS */
.form-control:focus,
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
    border:1px solid #7c6cf2 !important;
    box-shadow:0 0 0 2px rgba(124,108,242,.08) !important;
}

/* PENTING:
   Bootstrap kadang kasih border beda via background-image di select native
*/
select.form-control{
    background-image:none !important;
}

/* =========================================================
   BUTTON
   ========================================================= */
.btn{
    border:none !important;
    border-radius:10px !important;
    padding:.45rem .9rem !important;
    font-size:.88rem !important;
    font-weight:600 !important;
    transition:var(--transition);
}

button.btn-sm,
a.btn-sm {
    border:none !important;
    border-radius:10px !important;
    padding:.27rem .75rem !important;
    font-size:.80rem !important;
    font-weight:600 !important;
    transition:var(--transition);
}

.btn-primary{
    background:linear-gradient(135deg,var(--primary),var(--secondary)) !important;
    color:#fff !important;
}

.btn-info{
    background:linear-gradient(135deg,#8b5cf6,#a78bfa) !important;
    color:#fff !important;
}

.btn:hover{
    transform:translateY(-1px);
    box-shadow:var(--shadow-lg);
}

/* =========================================================
   TABLE RESPONSIVE
   ========================================================= */
.table-responsive,
.modal-overflow{
    width:100%;
    max-width:100%;
    overflow-x:auto !important;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    border-radius:14px;
    display:block;
}

/* =========================================================
   TABLE COMPACT
   ========================================================= */
.table{
    width:100% !important;
    min-width:100%;
    margin-bottom:0 !important;
    border-collapse:separate;
    border-spacing:0;
    table-layout:auto !important;
    font-size:.88rem;
}

table.report.dataTable tbody th,
table.report.dataTable tbody td,
table.report.dataTable thead th,
table.report.dataTable thead td {
    padding:7px 8px !important;
    vertical-align: middle !important;
    font-size:.96rem;
}

/* HEADER + FOOTER */
.table thead th,
.table tbody th,
.table tfoot th,
.table tfoot td{
    font-weight:700;
    font-size:.96rem;
    padding:5px 8px !important;
    white-space:nowrap;
    vertical-align:middle !important;
    line-height:1.3;
}

/* Sticky header */
.table thead th{
    position:sticky;
    top:0;
    z-index:2;
}

/* BODY */
.table tbody td{
    padding:5px 8px !important;
    border-color:rgba(124,108,242,.08) !important;
    color:var(--text-dark);
    font-size:1rem;
    vertical-align:middle !important;
    line-height:1.3;
}

/* Footer sticky optional */
.table tfoot th,
.table tfoot td{
    position:sticky;
    bottom:0;
    z-index:1;
}

/* ROW STYLE */
.table-striped tbody tr:nth-of-type(odd){
    background:rgba(245,243,255,.65);
}

.table-hover tbody tr:hover{
    background:rgba(124,108,242,.06) !important;
}

/* Compact buttons in table */
.table .btn,
.table button{
    border:none !important;
    border-radius:10px !important;
    padding:.22rem .65rem !important;
    font-size:.80rem !important;
    font-weight:600 !important;
    transition:var(--transition);
}

/* Badge compact */
.table .badge{
    padding:.25em .45em !important;
    font-size:.76rem !important;
}

/* =========================================================
   DATATABLE
   ========================================================= */
.dataTables_wrapper{
    width:100%;
    font-size:.86rem;
}

.dataTables_wrapper .row{
    width:100%;
    margin:0;
}

.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select{
    border-radius:8px !important;
    border:1px solid var(--border) !important;
    padding:.3rem .55rem !important;
    font-size:1rem !important;
}

.dataTables_wrapper .dataTables_info,
.dataTables_wrapper .dataTables_paginate{
    font-size:.98rem;
    padding-top:8px !important;
}

.container-fluid .dataTables_wrapper {
    padding: 0 5px;
}


/* =========================================================
   PAGINATION
   ========================================================= */
.page-link{
    border:none !important;
    border-radius:8px !important;
    margin:0 2px;
    padding:.3rem .6rem !important;
    font-size:.96rem !important;
    color:var(--primary-dark);
}

.page-item.active .page-link{
    background:linear-gradient(135deg,var(--primary),var(--secondary)) !important;
    color:#fff !important;
}

/* =========================================================
   MODAL
   ========================================================= */
.modal-content{
    border:none !important;
    border-radius:20px !important;
    overflow:hidden;
    box-shadow:var(--shadow-lg);
}

.modal-header{
    background:linear-gradient(90deg,var(--primary),var(--secondary));
    color:#fff;
    border:none !important;
}

.modal-title{
    font-size:1.05rem;
    font-weight:700;
}

/* =========================================================
   UTILITY
   ========================================================= */
.tooltip-indicator{
    text-decoration:underline dotted;
    cursor:help;
}

.table_left{width:48%; text-align:right;}
.table_middle{width:4%; text-align:center;}
.table_right{width:48%; text-align:left;}

.bg-light-green{background-color:#d4edda !important;}
.bg-light-red{background-color:#f8d7da !important;}


/* =========================================================
   DISABLED / READONLY FORM STYLE
   ========================================================= */
.form-control:disabled,
.form-control[readonly],
.form-control-link,
select.form-control:disabled,
select.form-control[readonly],
select.custom-select:disabled,
select.custom-select[readonly],
textarea.form-control:disabled,
textarea.form-control[readonly]{
    background-color:#f3f0ff !important;
    background-image:none !important;
    color:black !important;
    border-color:rgba(124,108,242,.08) !important;
    cursor:not-allowed !important;
    opacity:1 !important;
    box-shadow:none !important;
}

/* Select readonly tetap ada icon dropdown tapi lebih soft */
select.form-control[readonly],
select.custom-select[readonly]{
    background-image:url("data:image/svg+xml;utf8,<svg fill='%23b4a7d6' height='20' viewBox='0 0 20 20' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M5.516 7.548c.436-.446 1.043-.481 1.576 0L10 10.511l2.908-2.963c.533-.481 1.14-.446 1.576 0 .436.445.408 1.197 0 1.615l-3.696 3.77c-.218.223-.503.334-.788.334-.285 0-.57-.111-.788-.334l-3.696-3.77c-.408-.418-.436-1.17 0-1.615z'/></svg>") !important;
    background-repeat:no-repeat !important;
    background-position:right .75rem center !important;
    background-size:16px !important;
}

/* Select2 disabled */
.select2-container--default.select2-container--disabled .select2-selection--single{
    background:#f3f0ff !important;
    border-color:rgba(124,108,242,.08) !important;
    cursor:not-allowed !important;
}

.select2-container--default.select2-container--disabled .select2-selection__rendered{
    color:#7c7aa0 !important;
}

/* Checkbox & radio disabled */
input[type="checkbox"]:disabled,
input[type="radio"]:disabled{
    cursor:not-allowed;
    opacity:.65;
}

/* Placeholder readonly/disabled */
.form-control:disabled::placeholder,
.form-control[readonly]::placeholder{
    color:#9f9bbd !important;
}

/* =========================
   COMPACT PREMIUM DRDA UI
==========================*/

.billing-wrap{
    background: linear-gradient(180deg,#faf7ff 0%,#f4efff 100%);
    border-radius: 14px;
    padding: 12px;
}

.billing-card{
    border:none;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 4px 14px rgba(124,108,242,.07);
    background:#fff;
    height:100%;
    margin-bottom:10px;
}

.billing-card-header{
    padding:10px 14px;
    font-size:1rem;
    font-weight:700;
    letter-spacing:.2px;
    color:#fff;
    line-height:1.2;
}

.billing-card-body{
    padding:12px;
}

/* GRADIENT */
.gradient-purple-1{
    background:linear-gradient(135deg,#7c6cf2,#9f7aea);
}
.gradient-purple-2{
    background:linear-gradient(135deg,#8b5cf6,#c084fc);
}
.gradient-purple-3{
    background:linear-gradient(135deg,#6d5ce8,#8b5cf6);
}

/* SUMMARY */
.summary-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    min-height:34px;
    padding:6px 0;
    border-bottom:1px solid #eee8ff;
}

.summary-row:last-child{
    border-bottom:none;
}

.summary-label{
    font-size:.88rem;
    font-weight:600;
    color:#6b5ca5;
    margin-bottom:0;
    line-height:1.2;
}

.summary-value{
    font-size:.88rem;
    font-weight:700;
    color:#2d1b69;
    line-height:1.2;
}

/* FORM */
.billing-form-group{
    margin-bottom:10px;
}

.billing-form-group label{
    font-size:.88rem;
    font-weight:700;
    color:#5b4b91;
    margin-bottom:4px;
    display:block;
    line-height:1.2;
}

.billing-input,
.billing-select{
    height:36px !important;
    min-height:36px !important;
    border-radius:9px !important;
    border:1.3px solid #ddd6fe !important;
    padding:6px 10px !important;
    font-size:.88rem !important;
    font-weight:600;
    color:#2d1b69;
    background:#fcfbff;
    box-shadow:none !important;
    transition:all .2s ease;
}

.billing-input:focus,
.billing-select:focus{
    border-color:#8b5cf6 !important;
    box-shadow:0 0 0 3px rgba(139,92,246,.10) !important;
    background:#fff;
}

/* STATIC BOX */
.billing-static-box{
    height:36px;
    border-radius:9px;
    background:#f3f0ff;
    display:flex;
    align-items:center;
    padding:0 10px;
    font-size:.88rem;
    font-weight:400;
    color:#2d1b69;
}

/* GRAND TOTAL */
.grand-total-box{
    background:linear-gradient(135deg,#f3f0ff,#ede9fe);
    border-radius:10px;
    padding:8px 12px;
    margin-top:8px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.grand-total-box .title{
    font-size:.88rem;
    font-weight:700;
    color:#5b4b91;
    line-height:1.2;
}

.grand-total-box .value{
    font-size:2rem;
    font-weight:800;
    color:#6d28d9;
    line-height:1;
}

.payable-box .value{
    color:#059669;
}

/* ROW SPACING FIX */
.row{
    margin-left:-6px !important;
    margin-right:-6px !important;
}

.row > div{
    padding-left:6px !important;
    padding-right:6px !important;
}

/* REMOVE EXTRA BOOTSTRAP SPACE */
.mb-4{
    margin-bottom:.6rem !important;
}

.mb-3{
    margin-bottom:.5rem !important;
}

.mt-3{
    margin-top:.5rem !important;
}

.mt-2{
    margin-top:.35rem !important;
}

.pt-3,
.pt-2,
.p-3{
    padding-top:.5rem !important;
}

.card-body .row .col-md-2,
.card-body .row .col-md-3,
.card-body .row .col-md-4,
.card-body .row .col-md-6,
.card-body .row .col-12{
    margin-bottom: 5px;
}

.page-wrapper .page-titles{
    width:auto !important;
    margin-left:-25px !important;
    margin-right:-25px !important;
    padding:14px 24px !important;
    background:linear-gradient(135deg,#7c6cf2,#9f7aea) !important;
    border-radius:0 0 18px 18px;
    box-shadow:0 4px 14px rgba(124,108,242,.12);
}

/* text */
.page-wrapper .page-titles h4{
    color:#fff !important;
    font-weight:700;
    margin-bottom:0 !important;
    font-size:1.25rem;
}

/* breadcrumb */
.page-wrapper .page-titles .breadcrumb{
    background:transparent !important;
    margin-bottom:0 !important;
    padding:0 !important;
}

.page-wrapper .page-titles .breadcrumb-item,
.page-wrapper .page-titles .breadcrumb-item a{
    color:rgba(255,255,255,.9) !important;
    font-weight:500;
    font-size:.92rem;
}

/* active */
.page-wrapper .page-titles .breadcrumb-item.active{
    color:#fff !important;
    font-weight:700;
}

/* separator */
.page-wrapper .page-titles .breadcrumb-item + .breadcrumb-item::before{
    color:rgba(255,255,255,.7) !important;
}

/* Parent DataTable */
.dataTables_wrapper{
    position:relative !important;
}

/* Processing box */
.dataTables_wrapper .dataTables_processing{
    position:absolute !important;
    top:50% !important;
    left:50% !important;
    transform:translate(-50%, -50%) !important;

    width:auto !important;
    min-width:180px;
    padding:10px 18px !important;

    margin:0 !important;

    background:rgba(255,255,255,.92) !important;
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);

    border:1px solid rgba(124,108,242,.12) !important;
    border-radius:14px !important;

    box-shadow:0 8px 24px rgba(124,108,242,.18) !important;

    color:#6d28d9 !important;
    font-size:.92rem !important;
    font-weight:700 !important;

    z-index:20 !important; /* cukup di atas table saja */
}

/* Optional spinner style */
.dataTables_wrapper .dataTables_processing::before{
    content:"";
    display:inline-block;
    width:14px;
    height:14px;
    margin-right:8px;
    border:2px solid #c4b5fd;
    border-top-color:#7c6cf2;
    border-radius:50%;
    animation:dtSpin .7s linear infinite;
    vertical-align:middle;
}

@keyframes dtSpin{
    to{transform:rotate(360deg);}
}

/* Jangan blur parent lain */
.card,
.card-body{
    overflow:visible !important;
}

/* Kalau pakai responsive wrapper */
.table-responsive{
    position:relative !important;
}

/* =========================================================
   TRUE RESPONSIVE LAYOUT (mobile & tablet)
   Menggantikan hack lama yang memaksa lebar desktop 1280px.
   Prinsip: konten mengikuti lebar layar asli, tabel yang lebar
   boleh scroll horizontal di dalam wrapper-nya saja (bukan
   seluruh halaman), sidebar jadi off-canvas di layar kecil.
   ========================================================= */
html, body{
    max-width:100%;
    overflow-x:hidden;
}

.page-wrapper,
.container{
    max-width:100%;
}

.container-fluid{
    max-width:100%;
}

/* Halaman lain tetap bisa scroll bebas, hanya tabel/datatable
   di dalam card yang diizinkan scroll horizontal sendiri */
.card-body{
    max-width:100%;
}

/* =========================================================
   MOBILE SIDEBAR (OFF-CANVAS)
   ========================================================= */
.sidebar-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(17,10,40,.45);
    z-index:19;
    backdrop-filter:blur(2px);
}

body.show-sidebar .sidebar-overlay{
    display:block;
}

@media (max-width: 767.98px){
    body{
        overflow-x:hidden;
    }

    .left-sidebar{
        box-shadow:0 0 40px rgba(0,0,0,.25);
    }

    .page-wrapper{
        padding-top:6px;
    }
}

/* =========================================================
   TOPBAR / NAVBAR RESPONSIVE
   ========================================================= */
@media (max-width: 575.98px){
    .navbar-header{
        width:auto !important;
    }

    .navbar-header .navbar-brand span img{
        width:100px !important;
        height:auto !important;
    }

    .u-pro .profile-pic .hidden-md-down{
        display:none !important;
    }
}

/* =========================================================
   PAGE TITLE / BREADCRUMB RESPONSIVE
   ========================================================= */
@media (max-width: 767.98px){
    .page-wrapper .page-titles{
        display:block !important;
        padding:12px 16px !important;
        text-align:left;
    }

    .page-wrapper .page-titles .text-right{
        text-align:left !important;
    }

    .page-wrapper .page-titles .d-flex.justify-content-end{
        justify-content:flex-start !important;
        margin-top:6px;
    }

    .page-wrapper .page-titles h4{
        font-size:1.05rem !important;
    }

    .page-wrapper .page-titles .breadcrumb{
        flex-wrap:wrap;
    }
}

/* =========================================================
   CARD / SPACING RESPONSIVE
   ========================================================= */
@media (max-width: 575.98px){
    .page-wrapper .page-titles{
        margin-left:-10px !important;
        margin-right:-10px !important;
    }

    .card-body{
        padding:.85rem !important;
    }

    .card-title{
        font-size:.95rem !important;
    }

    .container-fluid{
        padding-left:10px !important;
        padding-right:10px !important;
    }
}

/* =========================================================
   TOOLBAR / ACTION BUTTONS RESPONSIVE
   Baris tombol "Tambah Data", filter, export, dsb supaya rapi
   dan tidak terpotong di layar kecil.
   ========================================================= */
@media (max-width: 767.98px){
    .card-body > .row.mb-3,
    .card-body > .row.mb-2,
    .table-toolbar,
    .d-flex.justify-content-between.align-items-center{
        flex-wrap:wrap;
        row-gap:8px;
    }

    .btn-toolbar,
    .card-body .btn-group{
        flex-wrap:wrap;
        row-gap:6px;
    }

    .card-body .btn{
        white-space:normal;
    }
}

/* =========================================================
   FILTER / FORM TOOLBAR RESPONSIVE (TABLET)
   Pola "col-lg-3 col-md-3" / "col-lg-2 col-md-2" / "form-group
   col-md-3" dipakai di HAMPIR SEMUA halaman filter laporan &
   form SOAP/vital-sign/stok. Di lebar tablet (768-991px) 4-6
   field dalam satu baris jadi terlalu sempit, jadi dijadikan
   2 kolom per baris supaya tetap nyaman dipakai.
   Tidak mempengaruhi desktop (>=992px tetap seperti semula)
   maupun mobile (<768px yang otomatis sudah 100% lebar).
   ========================================================= */
@media (min-width: 768px) and (max-width: 991.98px){
    .form-group.col-md-3,
    .col-lg-3.col-md-3,
    .form-group.col-md-2,
    .col-lg-2.col-md-2{
        flex:0 0 50%;
        max-width:50%;
        margin-bottom:10px;
    }
}

/* =========================================================
   FORM GRID RESPONSIVE
   ========================================================= */
@media (max-width: 767.98px){
    .row > [class*="col-md-"],
    .row > [class*="col-lg-"]{
        margin-bottom:8px;
    }

    .grand-total-box .value{
        font-size:1.5rem !important;
    }

    .guide-steps{
        margin-left:0;
    }
}

/* =========================================================
   TABLE / DATATABLES RESPONSIVE
   Tabel tetap horizontal-scroll di dalam wrapper-nya (bukan
   memaksa seluruh halaman jadi lebar 1280px).
   ========================================================= */
.table-responsive,
.dataTables_wrapper{
    overflow-x:auto !important;
    width:100% !important;
    -webkit-overflow-scrolling:touch;
}

/* Nested DataTables inside .table-responsive must NOT create a second
   scroller — that is what pushes the Action column outside the table. */
.table-responsive .dataTables_wrapper,
.table-responsive .dataTables_wrapper > .row,
.table-responsive .dataTables_wrapper [class*="col-"]{
    overflow:visible !important;
    max-width:100%;
}

table,
.table,
.dataTable{
    width:100% !important;
}

/* Action column: shrink-to-fit so buttons stay inside the cell.
   Jangan pakai thead th:last-child — di header 2 baris (rowspan/colspan)
   last-child baris kedua adalah kolom lain (mis. Admin), bukan Action. */
th.col-action,
td.col-action,
table.table-hover > tbody > tr > td:last-child:has(.btn),
table.dataTable > tbody > tr > td:last-child:has(.btn){
    width:1%;
    white-space:nowrap;
    vertical-align:middle !important;
}

.dt-action-btns{
    display:inline-flex;
    flex-wrap:nowrap;
    align-items:center;
    justify-content:flex-end;
    gap:4px;
    max-width:none;
    white-space:nowrap;
}

.dt-action-btns .btn,
td.col-action .btn,
table.table-hover > tbody > tr > td:last-child .btn,
table.dataTable > tbody > tr > td:last-child .btn{
    margin:0 !important;
    white-space:nowrap;
}

@media (max-width: 767.98px){
    .table{
        font-size:.8rem;
    }

    /* Tabel info/key-value kecil (mis. "Branch Name : xxx") yang
       tidak dibungkus .table-responsive: biarkan teks wrap normal
       supaya tidak memaksa halaman melebar ke samping. */
    .card-body table.table:not(.table-hover):not(.dataTable) th,
    .card-body table.table:not(.table-hover):not(.dataTable) td{
        white-space:normal;
    }

    .dataTables_wrapper .dataTables_length,
    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_info,
    .dataTables_wrapper .dataTables_paginate{
        width:100%;
        text-align:left !important;
        float:none !important;
        margin-bottom:6px;
    }

    .dataTables_wrapper .dataTables_filter input{
        width:100%;
        margin-left:0 !important;
    }

    .dataTables_wrapper .dataTables_paginate{
        display:flex;
        flex-wrap:wrap;
    }
}

/* =========================================================
   ACTION COLUMN — keep inside the table on tablet/mobile
   Tabel data dipaksa 100% + nowrap membuat tombol Action
   “offside” keluar dari border tabel. Di layar kecil tabel
   boleh lebih lebar dari layar (scroll di dalam wrapper),
   dan kolom Action di-freeze di kanan tetap di DALAM tabel.
   ========================================================= */
@media (max-width: 991.98px){
    .card-body .table-responsive,
    .modal-body .table-responsive,
    .modal-overflow{
        overflow-x:auto !important;
        max-width:100%;
        -webkit-overflow-scrolling:touch;
    }

    .table-responsive table.table.table-hover,
    .table-responsive table.dataTable,
    .dataTables_wrapper table.table.table-hover,
    .dataTables_wrapper table.dataTable{
        width:max-content !important;
        min-width:100% !important;
        max-width:none !important;
    }

    th.col-action{
        position:sticky;
        right:0;
        z-index:4;
        background:linear-gradient(180deg,#faf9ff,#f5f2ff) !important;
        box-shadow:-6px 0 8px -6px rgba(75,55,140,.22);
    }

    td.col-action,
    table.table-hover > tbody > tr > td:last-child:has(.btn),
    table.dataTable > tbody > tr > td:last-child:has(.btn){
        position:sticky;
        right:0;
        z-index:3;
        background:#fff;
        box-shadow:-6px 0 8px -6px rgba(75,55,140,.18);
    }

    table.table-striped tbody tr:nth-of-type(odd) > td.col-action,
    table.table-striped tbody tr:nth-of-type(odd) > td:last-child:has(.btn){
        background:#faf8ff;
    }

    table.table-hover tbody tr:hover > td.col-action,
    table.table-hover tbody tr:hover > td:last-child:has(.btn){
        background:#f3efff !important;
    }

    /* Header rowspan/colspan: sticky kanan menempel ke sel yang salah
       (contoh Branch: Action nempel di atas Admin). Matikan freeze,
       tabel tetap scroll horizontal supaya Action di dalam tabel. */
    table.has-complex-header th.col-action,
    table.has-complex-header td.col-action,
    table.has-complex-header > tbody > tr > td:last-child{
        position:static !important;
        right:auto !important;
        box-shadow:none !important;
        background:inherit !important;
        z-index:auto;
    }

    table.has-complex-header.table-striped tbody tr:nth-of-type(odd) > td.col-action,
    table.has-complex-header.table-striped tbody tr:nth-of-type(odd) > td:last-child{
        background:transparent;
    }

    .dt-action-btns{
        flex-wrap:nowrap;
        white-space:nowrap;
        max-width:none;
    }
}

@media (max-width: 575.98px){
    /* Tombol Action jadi ikon saja supaya kolom tidak terlalu lebar */
    td.col-action .btn:has(i),
    table.table-hover > tbody > tr > td:last-child .btn:has(i),
    table.dataTable > tbody > tr > td:last-child .btn:has(i){
        font-size:0 !important;
        line-height:1 !important;
        padding:.35rem .5rem !important;
    }

    td.col-action .btn i,
    table.table-hover > tbody > tr > td:last-child .btn i,
    table.dataTable > tbody > tr > td:last-child .btn i{
        font-size:.85rem !important;
        margin:0 !important;
    }

    td.col-action .btn:not(:has(i)),
    table.table-hover > tbody > tr > td:last-child .btn:not(:has(i)),
    table.dataTable > tbody > tr > td:last-child .btn:not(:has(i)){
        font-size:.75rem !important;
        padding:.28rem .5rem !important;
    }
}

/* =========================================================
   MODAL RESPONSIVE
   ========================================================= */
@media (max-width: 575.98px){
    .modal-dialog{
        margin:.6rem;
        max-width:calc(100% - 1.2rem);
    }

    .modal-body{
        padding:.9rem !important;
    }

    .table_left,
    .table_middle,
    .table_right{
        width:auto !important;
        display:block;
        text-align:left !important;
    }
}

/* =========================================================
   FORM-STYLE TABLES (Add/Edit modal "label | input" layout)
   Dipakai di hampir semua halaman CRUD: <table class="table
   table-striped table-bordered"> tanpa table-hover/id table_data
   dipakai sebagai layout 2 kolom label+input, BUKAN tabel data.
   Di layar kecil, dipecah jadi stack vertikal supaya label
   panjang tidak memaksa lebar & terpotong di dalam modal.
   (Tabel data asli selalu punya class table-hover / id table_data
   sehingga tidak terpengaruh rule ini.)
   ========================================================= */
@media (max-width: 767.98px){
    table.table.table-striped.table-bordered:not(.table-hover){
        border:none;
        margin-bottom:4px !important;
    }

    table.table.table-striped.table-bordered:not(.table-hover) tbody,
    table.table.table-striped.table-bordered:not(.table-hover){
        display:block;
        width:100%;
    }

    table.table.table-striped.table-bordered:not(.table-hover) tr{
        display:block;
        width:100%;
        border-bottom:1px solid #ece6fb;
        padding:8px 2px;
    }

    table.table.table-striped.table-bordered:not(.table-hover) tr:last-child{
        border-bottom:none;
    }

    table.table.table-striped.table-bordered:not(.table-hover) td{
        display:block;
        width:100% !important;
        max-width:100% !important;
        border:none !important;
        padding:3px 2px !important;
        white-space:normal !important;
        word-break:break-word;
    }

    table.table.table-striped.table-bordered:not(.table-hover) td:first-child{
        font-weight:700;
        font-size:.82rem;
        color:#5b4b91;
        padding-bottom:4px !important;
    }

    table.table.table-striped.table-bordered:not(.table-hover) td:first-child abbr{
        text-decoration:none;
    }
}

/* =========================================================
   NAV TABS RESPONSIVE (mis. tab riwayat pasien)
   Supaya label tab yang panjang tidak pecah berantakan,
   dijadikan scroll horizontal saja di layar kecil.
   ========================================================= */
@media (max-width: 767.98px){
    .nav-tabs{
        flex-wrap:nowrap;
        overflow-x:auto;
        overflow-y:hidden;
        -webkit-overflow-scrolling:touch;
        white-space:nowrap;
    }

    .nav-tabs .nav-item{
        flex:0 0 auto;
    }

    .nav-tabs .nav-link{
        white-space:nowrap;
    }
}

/* =========================================================
   LOGIN PAGE RESPONSIVE
   ========================================================= */
@media (max-width: 575.98px){
    .login-register{
        padding:8% 14px !important;
        position:relative !important;
        min-height:100vh;
    }

    .login-box{
        width:100% !important;
        max-width:400px;
    }
}

.sunday-column {
    background-color: #ffd6d6 !important; /* merah pastel */
}

.month-odd {
    background-color: #dbeafe !important; /* biru pastel */
}

.month-even {
    background-color: #fffbea !important; /* krem */
}

/* SELECT2 MULTIPLE */
.select2-container--default .select2-selection--multiple{
    min-height:36px !important;
    border-radius:8px !important;
    border:1px solid #cfc4f7 !important;
    background:#ffffff !important;
    color:var(--text-dark) !important;
    font-size:.88rem !important;
    font-weight:400 !important;
    box-shadow:none !important;
    transition:all .2s ease;
    padding:2px 6px !important;
}

/* FOCUS */
.select2-container--default.select2-container--focus .select2-selection--multiple,
.select2-container--default.select2-container--open .select2-selection--multiple{
    border:1px solid #7c6cf2 !important;
    box-shadow:0 0 0 2px rgba(124,108,242,.08) !important;
}

/* TEXT INPUT PENCARIAN */
.select2-container--default .select2-search--inline .select2-search__field{
    color:var(--text-dark) !important;
    font-size:.88rem !important;
    margin-top:4px !important;
}

/* PLACEHOLDER */
.select2-container--default .select2-search--inline .select2-search__field::placeholder{
    color:000 !important;
    opacity:1;
}

/* TAG YANG TERPILIH */
.select2-container--default .select2-selection--multiple .select2-selection__choice{
    background:#f5f3ff !important;
    border:1px solid #d8cff8 !important;
    border-radius:6px !important;
    color:#111827 !important;
    font-size:.80rem !important;
    font-weight:500 !important;
    padding:2px 8px !important;
    margin-top:3px !important;
}

/* TEKS DI DALAM TAG */
.select2-selection__choice__display{
    color:#111827 !important;
}

/* TOMBOL X */
.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{
    color:#6b7280 !important;
    margin-right:4px !important;
    border:none !important;
}

.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{
    background:none !important;
    color:#ef4444 !important;
}

















































































/* =========================================================
   PREMIUM PAGE HEADER / BREADCRUMB
   ========================================================= */

.page-wrapper .page-titles {
    position: relative !important;
    width: auto !important;
    max-width: none !important;
    margin-left: -25px !important;
    margin-right: -25px !important;
    margin-bottom: 25px !important;
    min-height: 74px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background:
        radial-gradient(
            circle at 85% 20%,
            rgba(255,255,255,.20),
            transparent 28%
        ),
        linear-gradient(
            135deg,
            #6d5ce7 0%,
            #806bea 45%,
            #a477e8 100%
        ) !important;
    border-radius: 0 0 22px 22px !important;
    box-shadow:
        0 8px 25px rgba(109,92,232,.20),
        0 2px 6px rgba(109,92,232,.10);
    overflow: hidden !important;
    z-index: 5;
}

/* Decorative glow */
.page-wrapper .page-titles::before {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    right: 8%;
    top: -120px;
    background: rgba(255,255,255,.10);
    border-radius: 50%;
    pointer-events: none;
}

.page-wrapper .page-titles::after {
    content: "";
    position: absolute;
    width: 90px;
    height: 90px;
    right: 2%;
    bottom: -55px;
    background: rgba(255,255,255,.08);
    border-radius: 50%;
    pointer-events: none;
}

/* Title */
.page-wrapper .page-titles h4 {
    position: relative;
    z-index: 2;
    margin: 0 !important;
    font-size: 1.18rem !important;
    font-weight: 750 !important;
    letter-spacing: -.2px;
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.08);
}

/* Breadcrumb wrapper */
.page-wrapper .page-titles .breadcrumb {
    position: relative;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    padding: 7px 12px !important;
    margin: 0 !important;
    background: rgba(255,255,255,.13) !important;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 10px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.10);
}

/* Breadcrumb item */
.page-wrapper .page-titles .breadcrumb-item,
.page-wrapper .page-titles .breadcrumb-item a {
    color: rgba(255,255,255,.82) !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    text-decoration: none !important;
    transition: all .2s ease;
}

/* Breadcrumb hover */
.page-wrapper .page-titles .breadcrumb-item a:hover {
    color: #fff !important;
}

/* Active breadcrumb */
.page-wrapper .page-titles .breadcrumb-item.active {
    color: #fff !important;
    font-weight: 700 !important;
}

/* Hide the glass pill when it only repeats the page title */
.page-wrapper .page-titles .breadcrumb:has(> .breadcrumb-item:only-child) {
    display: none !important;
}

/* Breadcrumb separator */
.page-wrapper .page-titles
.breadcrumb-item + .breadcrumb-item::before {
    content: "›" !important;
    color: rgba(255,255,255,.55) !important;
    font-size: 1rem;
    font-weight: 400;
    padding: 0 8px !important;
}

/* =========================================================
   PREMIUM CARD
   ========================================================= */
/* Remove old heavy top line */
.card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 24px;
    right: 24px;
    width: auto;
    height: 5px;
    border-radius: 0 0 8px 8px;
    background:
        linear-gradient(
            90deg,
            #7c6cf2,
            #a78bfa,
            #c084fc
        );
}

/* Card hover */
.card:hover {
    transform: translateY(-2px);
    border-color: rgba(124,108,242,.14) !important;
    box-shadow:
        0 6px 16px rgba(75,55,140,.06),
        0 18px 40px rgba(124,108,242,.10) !important;
}

/* =========================================================
   CARD HEADER / TITLE
   ========================================================= */
.card-title {
    position: relative;
    margin-bottom: 2px !important;
    color: #241744 !important;
    font-size: 1rem !important;
    font-weight: 750 !important;
    letter-spacing: -.15px;
}

.card-subtitle {
    color: #8a82a3 !important;
    font-size: 0.95rem !important;
    font-weight: 500 !important;
    margin-top: 2px !important;
}

/* =========================================================
   FILTER CARD
   ========================================================= */
.card:has(.card-title:first-child) {
    background:
        radial-gradient(
            circle at 100% 0%,
            rgba(167,139,250,.06),
            transparent 28%
        ),
        #fff !important;
}

/* =========================================================
   FORM LABEL
   ========================================================= */
.card label {
    color: #4b4265 !important;
    font-size: 0.95rem !important;
    font-weight: 650 !important;
    letter-spacing: .05px;
    margin-bottom: 6px !important;
}

.card .form-control:hover,
.card .select2-container--default
.select2-selection--single:hover {
    border-color: #cfc4f7 !important;
}

.card .form-control:focus,
.card .select2-container--default.select2-container--focus
.select2-selection--single {
    border-color: #8b5cf6 !important;
    box-shadow:
        0 0 0 3px rgba(139,92,246,.09) !important;
}

/* =========================================================
   TABLE CARD HEADER
   ========================================================= */
.card-body .table-responsive {
    border: 1px solid #eeeafa;
    border-radius: 12px;
    background: #fff;
    box-shadow:
        0 2px 8px rgba(60,45,110,.025);
}

/* =========================================================
   TABLE HEADER
   ========================================================= */
.table thead th {
    background:
        linear-gradient(
            180deg,
            #faf9ff,
            #f5f2ff
        ) !important;
    color: black; !important;
    border-bottom:
        1px solid #e7e0f7 !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    letter-spacing: .1px;
}

/* First header */
.table thead th:first-child {
    border-top-left-radius: 10px;
}

/* Last header */
.table thead th:last-child {
    border-top-right-radius: 10px;
}

/* =========================================================
   TABLE BODY
   ========================================================= */
.table tbody td {
    color: black !important;
    font-size: 0.95rem !important;
    border-bottom:
        1px solid #f0edf7 !important;
    background: transparent;
}

.table tbody tr {
    transition:
        background .18s ease,
        transform .18s ease;
}

.table tbody tr:hover {
    background:
        rgba(124,108,242,.035) !important;
}

/* =========================================================
   PRICE INPUT
   ========================================================= */
.price-list-guide {
    margin-bottom: 16px !important;
    padding: 14px 18px !important;
    background: linear-gradient(
        135deg,
        rgba(124,108,242,.08),
        rgba(167,139,250,.12)
    ) !important;
    border: 1px solid rgba(124,108,242,.15) !important;
    border-left: 4px solid #7c6cf2 !important;
    border-radius: 14px !important;
    color: #4c3d91 !important;
    box-shadow: 0 4px 16px rgba(124,108,242,.06);
}

.guide-icon {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg,#7c6cf2,#a78bfa);
    color: #fff;
    border-radius: 10px;
    font-size: 15px;
}

.price-list-guide h6 {
    font-size: .92rem;
    color: #4c3d91;
}

.guide-steps {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-left: 48px;
    flex-wrap: wrap;
}

.guide-step {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: .84rem;
    color: #5f5680;
}

.guide-step b {
    width: 23px;
    height: 23px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #7c6cf2;
    color: #fff;
    border-radius: 50%;
    font-size: .75rem;
}

.guide-step strong {
    color: #4c3d91;
}

.guide-steps > i {
    color: #a78bfa;
    font-size: .7rem;
}

@media (max-width: 767px) {
    form label:has(+ br + button[name="s"]) {
    display: none;
    }

    form label:has(+ br + button[name="s"]) + br {
    display: none;
    }

    form label:has(+ br + button[name="s"]) ~ button[name="s"] {
    float: right;
    }
}

a.doc-link {
    font-weight: 600;
}

.form-control-link {
    min-height: 38px;
    display: flex;
    align-items: center;
    cursor: default !important;
}

.form-control-link a.doc-link {
    font-weight: 600;
    cursor: pointer;
}

a[target="_blank"]:not(.btn):not(.dropdown-item):not([href^="javascript"]):not([href="#"])::after {
    content: "";
    display: inline-block;
    width: 0.95em;
    height: 0.95em;
    margin-left: 0.4em;
    vertical-align: -0.05em;
    background-color: currentColor;
    opacity: 0.85;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M14 3h7v7h-2V6.41l-9.29 9.3-1.42-1.42 9.3-9.29H14V3zM5 5h6v2H7v10h10v-4h2v6H5V5z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.form-control-link a[target="_blank"]::after {
    width: 14px;
    height: 14px;
    margin-left: 6px;
    vertical-align: -2px;
    opacity: 0.9;
}

a[target="_blank"]:not(.btn) i.fa-external-link-alt,
a[target="_blank"]:not(.btn) i.fas.fa-external-link-alt {
    display: none;
}