@font-face {
  font-family: 'Vazir';
  src: url('../fonts/Vazir.woff2') format('woff2'), url('../fonts/Vazir.woff') format('woff');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
:root { --bs-font-sans-serif: 'Vazir', Tahoma, sans-serif; }
body, input, select, textarea, button { font-family: 'Vazir', Tahoma, sans-serif; }
body { background: #f4f6fa; }
.headlogo { width: 100%; max-width: 145px; }
.card { border: 1px solid #e5e9f0; border-radius: 16px; box-shadow: 0 4px 18px #28365008; }
.card-header { font-weight: 700; line-height: 1.8; gap: 1rem; flex-wrap: wrap; }
.card-body { padding: 1.5rem; }
.app-dashboard .container-xxl .container-xxl { padding: 0; }
.app-dashboard .navbar { border: 1px solid #e5e9f0; box-shadow: 0 3px 16px #28365008; }
.app-dashboard .panel-header {
  border-radius: 18px;
  border-color: #e1e8f2;
  background: linear-gradient(110deg, #f7faff, #fff 65%) !important;
  box-shadow: 0 6px 24px #233e6710;
  padding-inline: 1.25rem;
}
.panel-header-inner { display: flex; align-items: center; gap: 1rem; width: 100%; min-width: 0; }
.header-brand { display: flex; align-items: center; gap: .8rem; min-width: 0; color: #243b59; }
.header-brand:hover { color: #225bb0; }
.header-brand-mark {
  display: grid; place-items: center; flex-shrink: 0; width: 42px; height: 42px;
  border-radius: 13px; background: linear-gradient(145deg, #377bd3, #204d96);
  color: #fff; box-shadow: 0 4px 10px #2d65b32b; font-size: 23px;
}
.header-brand-text { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.header-brand-title { font-size: .95rem; white-space: nowrap; }
.header-brand-title strong { color: #245ba6; font-weight: 700; }
.header-brand-caption { color: #64748b; font-size: .7rem; white-space: nowrap; }
.header-account { display: flex; align-items: center; gap: .7rem; margin-inline-start: auto; min-width: 0; }
.header-avatar {
  display: grid; place-items: center; flex-shrink: 0; width: 38px; height: 38px;
  border: 1px solid #d6e4f8; border-radius: 50%; background: #eaf2ff; color: #285a9f; font-weight: 700;
}
.header-user { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.header-user-name { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #293d56; font-size: .82rem; font-weight: 700; }
.header-user-role { color: #63758c; font-size: .7rem; }
.header-logout-form { margin: 0; margin-inline-start: .45rem; padding-inline-start: 1rem; border-inline-start: 1px solid #dfe7f1; }
.header-logout, .header-menu-button {
  display: inline-flex; align-items: center; justify-content: center; gap: .4rem;
  min-width: 40px; min-height: 40px; padding: .4rem .7rem;
  border: 1px solid transparent; border-radius: 11px; background: transparent; color: #66758a;
  font-size: .78rem; transition: background-color .15s, color .15s;
}
.header-logout i, .header-menu-button i { font-size: 21px; }
.header-logout:hover { background: #fff0f0; border-color: #f7dada; color: #af3030; }
.header-menu-button { background: #edf3fb; color: #345d90; flex-shrink: 0; padding: .4rem; }
.header-menu-button:hover { background: #e0ebfa; }
@media (max-width: 767px) {
  .app-dashboard .panel-header { padding-inline: .75rem; border-radius: 14px; }
  .panel-header-inner { gap: .6rem; }
  .header-brand-mark, .header-brand-caption, .header-logout span { display: none; }
  .header-avatar { width: 30px; height: 30px; }
  .header-avatar svg { width: 20px; height: 20px; }
  .header-brand-title { font-size: .78rem; }
  .header-account { gap: .4rem; }
  .header-user-name { max-width: 100px; font-size: .74rem; }
  .header-user-role { font-size: .63rem; }
  .header-logout-form { margin-inline-start: .15rem; padding-inline-start: .4rem; }
  .header-logout { padding-inline: .35rem; }
}
@media (max-width: 380px) {
  .header-brand-title { font-size: 0; }
  .header-brand-title strong { font-size: .85rem; }
  .header-user-name { max-width: 85px; }
}
.app-dashboard .form-control, .app-dashboard .form-select { min-height: 44px; border-radius: 9px; }
.app-dashboard .form-label, .app-dashboard .col-form-label { line-height: 1.9; color: #364152; }
.app-dashboard label + .form-control.mt-5 { margin-top: .5rem !important; }
.app-dashboard .col-sm-1.col-form-label { width: auto; min-width: 8rem; }
.app-dashboard .table th { background: #f6f8fc; white-space: nowrap; padding-block: 1rem; }
.app-dashboard .table td { padding-block: 1rem; vertical-align: middle; }
.app-dashboard .table td:last-child .d-flex { flex-wrap: nowrap; }
.app-dashboard .table-responsive { border: 1px solid #edf0f5; border-radius: 10px; }
.app-dashboard .layout-page, .app-dashboard .content-wrapper,
.app-dashboard .card, .app-dashboard .card-body { min-width: 0; }
.app-dashboard .table-responsive {
  max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch;
  scrollbar-width: auto; scrollbar-color: #6788af #e9eff7;
}
.app-dashboard .table-responsive::-webkit-scrollbar { height: 10px; }
.app-dashboard .table-responsive::-webkit-scrollbar-track { background: #e9eff7; }
.app-dashboard .table-responsive::-webkit-scrollbar-thumb { background: #6788af; border-radius: 8px; }
.table-scroll-control { margin-block: .5rem; padding: .6rem .85rem; background: #eff5fc; border: 1px solid #d6e3f3; border-radius: 10px; color: #365577; }
.table-scroll-control[hidden] { display: none; }
.table-scroll-control label { display: block; margin: 0; font-size: .75rem; line-height: 1.8; }
.table-scroll-control input { display: block; width: 100%; height: 32px; margin: .2rem 0 0; accent-color: #2878b9; cursor: ew-resize; }
@media print { .table-scroll-control { display: none !important; } }
.app-dashboard .table { margin-bottom: 0; }
.app-dashboard .pagination { margin: 1rem; }
.app-messages { margin-block-end: 1rem; }
.alert { border-radius: 10px; line-height: 1.9; }
.required-label::after { content: ' *'; color: #b42318; }
.form-control[readonly] { background-color: #f8f9fc; }
.select2-container .select2-selection--single { min-height: 44px; display: flex; align-items: center; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: normal; }
.modal-title { font-weight: 700; }
.select-field > label { display: block; margin-bottom: .5rem; }
.datepicker-container { z-index: 1090; }
.app-login .authentication-bg { background: #fff; }
.app-login .login-banner { height: 100vh; height: 100dvh; overflow: hidden; background: #fff; justify-content: center; }
.app-login .login-banner-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; min-width: 0; object-fit: fill; }
.app-login .form-control { min-height: 48px; }
.app-login .btn-primary { min-height: 48px; }
a:focus-visible, button:focus-visible { outline: 3px solid #8b7ef3; outline-offset: 3px; }
@media (max-width: 767px) {
  .card-body { padding: 1rem; }
  .card-header { padding: 1rem; font-size: 1rem; }
  .card-header .btn { width: 100%; }
  .app-login .authentication-bg { padding-inline: 1.5rem !important; }
  .app-login .w-px-400 { width: 100% !important; }
  .app-dashboard .container-p-y { padding-block: 1rem !important; }
}
