html {
  font-size: 14px;
  min-height: 100%;
}

@media (min-width: 768px) {
  html { font-size: 16px; }
}

html[data-font="notosansarabic"] body,
html[data-font="notosansarabic"] button,
html[data-font="notosansarabic"] input,
html[data-font="notosansarabic"] select,
html[data-font="notosansarabic"] textarea {
  font-family: "Noto Sans Arabic", Tahoma, Arial, sans-serif;
}

html[data-font="notonaskharabic"] body,
html[data-font="notonaskharabic"] button,
html[data-font="notonaskharabic"] input,
html[data-font="notonaskharabic"] select,
html[data-font="notonaskharabic"] textarea {
  font-family: "Noto Naskh Arabic", "Noto Sans Arabic", Tahoma, Arial, sans-serif;
}

html[data-font="tahoma"] body,
html[data-font="tahoma"] button,
html[data-font="tahoma"] input,
html[data-font="tahoma"] select,
html[data-font="tahoma"] textarea {
  font-family: Tahoma, Arial, sans-serif;
}

html[data-font="arial"] body,
html[data-font="arial"] button,
html[data-font="arial"] input,
html[data-font="arial"] select,
html[data-font="arial"] textarea {
  font-family: Arial, Tahoma, sans-serif;
}

html, body { min-height: 100%; }
body {
  margin: 0;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
}

.app-navbar {
  background: var(--app-surface);
  color: var(--bs-body-color);
}
.app-navbar .navbar-brand,
.app-navbar .nav-link { color: var(--bs-body-color); }
.app-navbar .nav-link:hover,
.app-navbar .nav-link:focus { color: var(--bs-primary); }
.app-main { min-height: calc(100vh - 150px); }
.app-footer { color: var(--bs-body-color); background: var(--app-surface); }
.card, .dropdown-menu, .modal-content {
  background-color: var(--app-surface);
  color: var(--bs-body-color);
  border-color: var(--app-border);
}
.table { --bs-table-bg: var(--app-surface); --bs-table-color: var(--bs-body-color); }
.table-light {
  --bs-table-bg: var(--app-subtle);
  --bs-table-color: var(--bs-body-color);
}
.form-control, .form-select {
  background-color: var(--app-input-bg);
  color: var(--bs-body-color);
  border-color: var(--app-border);
}
.form-control:focus, .form-select:focus {
  background-color: var(--app-input-bg);
  color: var(--bs-body-color);
}

html[data-theme="light"] {
  --app-surface: #ffffff;
  --app-subtle: #f3f5f8;
  --app-border: #dee2e6;
  --app-input-bg: #ffffff;
}
html[data-theme="dark"] {
  color-scheme: dark;
  --bs-body-bg: #111827;
  --bs-body-color: #e5e7eb;
  --bs-emphasis-color: #ffffff;
  --bs-secondary-color: #aeb8c5;
  --bs-border-color: #374151;
  --bs-primary: #8ab4ff;
  --bs-link-color: #9ec5fe;
  --bs-link-hover-color: #c2dcff;
  --app-surface: #1f2937;
  --app-subtle: #273449;
  --app-border: #374151;
  --app-input-bg: #111827;
}
html[data-theme="smart"] {
  --app-surface: #ffffff;
  --app-subtle: #f3f5f8;
  --app-border: #dee2e6;
  --app-input-bg: #ffffff;
}
@media (prefers-color-scheme: dark) {
  html[data-theme="smart"] {
    color-scheme: dark;
    --bs-body-bg: #111827;
    --bs-body-color: #e5e7eb;
    --bs-emphasis-color: #ffffff;
    --bs-secondary-color: #aeb8c5;
    --bs-border-color: #374151;
    --bs-primary: #8ab4ff;
    --bs-link-color: #9ec5fe;
    --bs-link-hover-color: #c2dcff;
    --app-surface: #1f2937;
    --app-subtle: #273449;
    --app-border: #374151;
    --app-input-bg: #111827;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem rgba(255,255,255,.8), 0 0 0 0.25rem rgba(37,99,235,.65);
}
.settings-card { max-width: 1200px; }
.text-muted { color: var(--bs-secondary-color) !important; }

/* RTL right-side application navigation, consistent surfaces, alerts and tables */
:root{--app-bg:#f4f6fa;--app-surface:#fff;--app-text:#1f2937;--app-muted:#6b7280;--app-border:#dce2ea;--app-nav:#fff;--app-accent:#1d4ed8}
html[data-theme="dark"]{--app-bg:#111827;--app-surface:#1f2937;--app-text:#f3f4f6;--app-muted:#c0c7d2;--app-border:#374151;--app-nav:#172033;--app-accent:#93c5fd;color-scheme:dark}
@media(prefers-color-scheme:dark){html[data-theme="smart"]{--app-bg:#111827;--app-surface:#1f2937;--app-text:#f3f4f6;--app-muted:#c0c7d2;--app-border:#374151;--app-nav:#172033;--app-accent:#93c5fd;color-scheme:dark}}
body{background:var(--app-bg);color:var(--app-text);font-family:var(--app-font,Tahoma),Arial,sans-serif}
.app-shell{display:flex;min-height:100vh;direction:rtl}.app-sidebar{width:255px;flex:0 0 255px;background:var(--app-nav);border-left:1px solid var(--app-border);padding:1rem;display:flex;flex-direction:column;gap:.35rem}.app-brand{font-weight:800;font-size:1.15rem;line-height:1.6;padding:.75rem .5rem 1rem;border-bottom:1px solid var(--app-border);margin-bottom:.5rem;overflow-wrap:anywhere}.app-nav-link{display:block;padding:.72rem .85rem;border-radius:.6rem;color:var(--app-text);text-decoration:none}.app-nav-link:hover,.app-nav-link:focus{background:color-mix(in srgb,var(--app-accent) 12%,var(--app-surface));color:var(--app-text)}.app-sidebar-bottom{margin-top:auto;border-top:1px solid var(--app-border);padding-top:.8rem}.app-content{min-width:0;flex:1;padding:1rem 1.2rem}.app-footer{color:var(--app-muted);background:var(--app-surface);border-color:var(--app-border)!important}.app-navbar{display:none}.page-heading{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin:.3rem 0 1.2rem}.page-heading h1{font-size:1.55rem;font-weight:750;margin:0 0 .35rem}.page-heading p{margin:0}.card{background:var(--app-surface);color:var(--app-text);border-color:var(--app-border);box-shadow:0 2px 10px rgb(0 0 0 / 3%)}.card-header{background:color-mix(in srgb,var(--app-surface) 88%,var(--app-text) 12%);color:var(--app-text);border-color:var(--app-border)}.table{--bs-table-bg:var(--app-surface);--bs-table-color:var(--app-text);--bs-table-border-color:var(--app-border);--bs-table-hover-bg:color-mix(in srgb,var(--app-accent) 8%,var(--app-surface));--bs-table-hover-color:var(--app-text);margin-bottom:0}.table thead th{background:color-mix(in srgb,var(--app-surface) 85%,var(--app-text) 15%);color:var(--app-text);white-space:nowrap}.form-control,.form-select{background-color:var(--app-surface);color:var(--app-text);border-color:var(--app-border)}.form-control:focus,.form-select:focus{background-color:var(--app-surface);color:var(--app-text)}.text-muted{color:var(--app-muted)!important}.alert{border-width:1px}.alert .alert-heading,.alert h1,.alert h2,.alert h3,.alert strong{color:inherit}.alert-success{background:#d1fae5;color:#065f46;border-color:#6ee7b7}.alert-warning{background:#fef3c7;color:#78350f;border-color:#fcd34d}.alert-danger{background:#fee2e2;color:#7f1d1d;border-color:#fca5a5}.alert-info{background:#dbeafe;color:#1e3a8a;border-color:#93c5fd}html[data-theme="dark"] .alert-success{background:#064e3b;color:#d1fae5;border-color:#047857}html[data-theme="dark"] .alert-warning{background:#78350f;color:#fef3c7;border-color:#b45309}html[data-theme="dark"] .alert-danger{background:#7f1d1d;color:#fee2e2;border-color:#b91c1c}html[data-theme="dark"] .alert-info{background:#1e3a8a;color:#dbeafe;border-color:#1d4ed8}@media(prefers-color-scheme:dark){html[data-theme="smart"] .alert-success{background:#064e3b;color:#d1fae5;border-color:#047857}html[data-theme="smart"] .alert-warning{background:#78350f;color:#fef3c7;border-color:#b45309}html[data-theme="smart"] .alert-danger{background:#7f1d1d;color:#fee2e2;border-color:#b91c1c}html[data-theme="smart"] .alert-info{background:#1e3a8a;color:#dbeafe;border-color:#1d4ed8}}
@media(max-width:850px){.app-shell{display:block}.app-sidebar{width:auto;border-left:0;border-bottom:1px solid var(--app-border)}.app-sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.app-sidebar-bottom{margin-top:.4rem}.app-content{padding:.8rem}.page-heading h1{font-size:1.3rem}}
/* Dashboard notification headers adapt with the selected theme. */
html[data-theme="light"] .card-header.bg-warning-subtle{background:#fff3cd!important;color:#664d03!important;border-color:#ffecb5!important}
html[data-theme="light"] .card-header.bg-danger-subtle{background:#f8d7da!important;color:#842029!important;border-color:#f5c2c7!important}
html[data-theme="dark"] .card-header.bg-warning-subtle{background:#78350f!important;color:#fef3c7!important;border-color:#b45309!important}
html[data-theme="dark"] .card-header.bg-danger-subtle{background:#7f1d1d!important;color:#fee2e2!important;border-color:#b91c1c!important}
@media(prefers-color-scheme:dark){html[data-theme="smart"] .card-header.bg-warning-subtle{background:#78350f!important;color:#fef3c7!important;border-color:#b45309!important}html[data-theme="smart"] .card-header.bg-danger-subtle{background:#7f1d1d!important;color:#fee2e2!important;border-color:#b91c1c!important}}

/* Additive usability improvements: keep the established visual design. */
.app-nav-link { font-weight: 700; }
.app-sidebar nav { min-width: 0; }
.app-content, .card, .card-body, .form-card { min-width: 0; }
.table-responsive { max-width: 100%; -webkit-overflow-scrolling: touch; }
input, select, textarea, button { max-width: 100%; }
img, video, canvas { max-width: 100%; height: auto; }
@media (max-width: 576px) {
  .app-sidebar { padding: .65rem; }
  .app-sidebar nav { grid-template-columns: minmax(0, 1fr); }
  .app-content { padding: .65rem; }
  .page-heading { align-items: stretch; }
  .page-heading > .btn, .page-heading > a.btn { width: 100%; }
  .card-body { padding: .85rem; }
  .form-card .row > [class*="col-"] { min-width: 0; }
  .btn { white-space: normal; }
}


/* Additional responsive safeguards for phones and narrow screens. */
html, body { max-width: 100%; overflow-x: hidden; }
.app-content, .app-sidebar, main, .card, .card-body, .page-heading { min-width: 0; }
.table-responsive { width: 100%; overflow-x: auto; }
.table-responsive table { min-width: 640px; }
.form-control, .form-select, .btn { max-width: 100%; }
.btn { white-space: normal; }
@media (max-width: 575.98px) {
  .app-content { padding: .65rem; }
  .page-heading { align-items: stretch; }
  .page-heading > .btn { align-self: flex-start; }
  .card-body { padding: .85rem; }
  .form-card .card-body { padding: .85rem; }
  .app-sidebar nav { grid-template-columns: minmax(0, 1fr); }
  .app-sidebar-bottom form, .app-sidebar-bottom .btn { width: 100%; }
}


/* Mobile navigation and report-specific print/PDF output. */
.mobile-menu-toggle { display: none; }
@media (max-width: 850px) {
  .app-sidebar { display: block; width: 100%; flex: none; padding: .65rem; }
  .mobile-menu-toggle { display: block; width: 100%; text-align: right; margin-bottom: .5rem; }
  .app-sidebar .app-brand { display: block; }
  .app-sidebar nav { display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .app-sidebar.mobile-menu-open nav { display: grid; }
  .app-sidebar-bottom { display: none; }
  .app-sidebar.mobile-menu-open .app-sidebar-bottom { display: block; }
}
@media (max-width: 575.98px) {
  .app-sidebar nav { grid-template-columns: minmax(0, 1fr); }
}
@media print {
  @page { size: landscape; margin: 10mm; }
  body { background: #fff !important; color: #000 !important; }
  .app-sidebar, .app-footer, .page-heading, button, .btn, form, .alert { display: none !important; }
  .app-shell, .app-content, main { display: block !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
  .card { box-shadow: none !important; border: 0 !important; }
  .table-responsive { overflow: visible !important; }
  .table-responsive table { min-width: 0 !important; width: 100% !important; font-size: 9pt; }
  .table th, .table td { padding: 4px !important; color: #000 !important; background: #fff !important; }
  .print-excluded, [data-print-button-hidden="true"] { display: none !important; }
  .report-section { break-inside: avoid; }
}
