@font-face {
  font-family: 'KanzAlMarjaan';
  src: url('/fonts/KANZ-AL-MARJAAN.OTF') format('opentype');
  font-weight: normal;
  font-style: normal;
}
body, input, textarea, select, label, button, h1, h2, h3, h4, h5, h6, .custom-font {
    font-family: 'KanzAlMarjaan', Arial, Helvetica, sans-serif !important;
}
html, body { direction: ltr; }
.container { margin-top: 20px; max-width: 95%; }
.card { margin-bottom: 1.5rem; border-radius: 0.5rem; box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075); }
.card-header { background-color: #f8f9fa; border-bottom: 1px solid rgba(0,0,0,0.125); font-weight: bold; }
table.table { width: 100% !important; }
.table thead th { background-color: #f8f9fa; border-bottom: 2px solid #dee2e6; }
.form-control:focus { border-color: #80bdff; box-shadow: 0 0 0 0.2rem rgba(0,123,255,0.25); }
.alert { animation: fadeIn 0.5s; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
.btn { border-radius: 0.3rem; transition: all 0.3s; }
.btn:hover { transform: translateY(-1px); box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15); }
.modal-content { border-radius: 0.5rem; box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15); }
.modal-header { background-color: #f8f9fa; }
.nav-tabs .nav-link { border-top-left-radius: 0.5rem; border-top-right-radius: 0.5rem; transition: all 0.3s; }
.nav-tabs .nav-link.active { background-color: #f8f9fa; border-color: #dee2e6 #dee2e6 #fff; font-weight: bold; }
@media (max-width: 768px) {
    .container { max-width: 100%; padding: 0.5rem; }
    .btn { font-size: 0.85rem; padding: 0.25rem 0.5rem; }
    .custom-font { font-size: 0.95rem; }
    .table { display: block; overflow-x: auto; }
}
.is-invalid {
    border-color: #dc3545;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.loading {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background-color: rgba(255,255,255,0.7); display: flex; justify-content: center; align-items: center;
    z-index: 9999;
}
.loading::after {
    content: "";
    width: 50px;
    height: 50px;
    border: 5px solid #f3f3f3;
    border-top: 5px solid #3498db;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
/* --- DataTables header/body width alignment fix --- */

/* 1) Make the table use fixed layout and fill its container */
table.dataTable {
  table-layout: fixed !important;
  width: 100% !important;
}

/* 2) Ensure the scrolling wrapper (if you use scrollX) also stays at 100% */
.dataTables_wrapper .dataTables_scrollHeadInner,
.dataTables_wrapper .dataTables_scrollBody {
  width: 100% !important;
}

/* 3) Box-sizing helps prevent off-by-1px rounding issues */
table.dataTable th,
table.dataTable td {
  box-sizing: border-box;
}
