/* Ssentezo theme — rest of UI (color-only, responsive-safe).
 * Loaded after sb-admin-2.min.css + sidebar-ssentezo.css.
 * Palette from AdminLTE v2 skin-blue (main Ssentezo system):
 * primary #3c8dbc / dark #367fa9, success #00a65a, info #00c0ef,
 * warning #f39c12, danger #dd4b39, content bg #ecf0f5, borders #d2d6de.
 * RULE: only color / background / border-color / shadow-color here.
 * No layout, sizing, positioning, or breakpoints — mobile unaffected.
 */
:root {
  --primary: #3c8dbc;
  --success: #00a65a;
  --info: #00c0ef;
  --warning: #f39c12;
  --danger: #dd4b39;
}

/* Base links */
a {
  color: #3c8dbc;
}
a:hover {
  color: #367fa9;
}
.btn-link {
  color: #3c8dbc;
}
.btn-link:hover {
  color: #367fa9;
}

/* Solid buttons — primary */
.btn-primary {
  color: #fff;
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.btn-primary:hover {
  color: #fff;
  background-color: #367fa9;
  border-color: #367fa9;
}
.btn-primary:focus, .btn-primary.focus {
  color: #fff;
  background-color: #367fa9;
  border-color: #367fa9;
  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.5);
}
.btn-primary.disabled, .btn-primary:disabled {
  color: #fff;
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #2e6da4;
  border-color: #2e6da4;
}
.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.5);
}

/* Solid buttons — success */
.btn-success {
  color: #fff;
  background-color: #00a65a;
  border-color: #00a65a;
}
.btn-success:hover {
  color: #fff;
  background-color: #008d4c;
  border-color: #008d4c;
}
.btn-success:focus, .btn-success.focus {
  color: #fff;
  background-color: #008d4c;
  border-color: #008d4c;
  box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5);
}
.btn-success.disabled, .btn-success:disabled {
  color: #fff;
  background-color: #00a65a;
  border-color: #00a65a;
}
.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
  color: #fff;
  background-color: #007a42;
  border-color: #007a42;
}
.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,
.show > .btn-success.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5);
}

/* Solid buttons — info */
.btn-info {
  color: #fff;
  background-color: #00c0ef;
  border-color: #00c0ef;
}
.btn-info:hover {
  color: #fff;
  background-color: #00acd6;
  border-color: #00acd6;
}
.btn-info:focus, .btn-info.focus {
  color: #fff;
  background-color: #00acd6;
  border-color: #00acd6;
  box-shadow: 0 0 0 0.2rem rgba(0, 192, 239, 0.5);
}
.btn-info.disabled, .btn-info:disabled {
  color: #fff;
  background-color: #00c0ef;
  border-color: #00c0ef;
}
.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
  color: #fff;
  background-color: #0099bb;
  border-color: #0099bb;
}
.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,
.show > .btn-info.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 192, 239, 0.5);
}

/* Solid buttons — warning */
.btn-warning {
  color: #fff;
  background-color: #f39c12;
  border-color: #f39c12;
}
.btn-warning:hover {
  color: #fff;
  background-color: #e08e0b;
  border-color: #e08e0b;
}
.btn-warning:focus, .btn-warning.focus {
  color: #fff;
  background-color: #e08e0b;
  border-color: #e08e0b;
  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);
}
.btn-warning.disabled, .btn-warning:disabled {
  color: #fff;
  background-color: #f39c12;
  border-color: #f39c12;
}
.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
  color: #fff;
  background-color: #d2850b;
  border-color: #d2850b;
}
.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,
.show > .btn-warning.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);
}

/* Solid buttons — danger */
.btn-danger {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39;
}
.btn-danger:hover {
  color: #fff;
  background-color: #d73925;
  border-color: #d73925;
}
.btn-danger:focus, .btn-danger.focus {
  color: #fff;
  background-color: #d73925;
  border-color: #d73925;
  box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5);
}
.btn-danger.disabled, .btn-danger:disabled {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39;
}
.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
  color: #fff;
  background-color: #c23321;
  border-color: #c23321;
}
.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,
.show > .btn-danger.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5);
}

/* Outline buttons */
.btn-outline-primary {
  color: #3c8dbc;
  border-color: #3c8dbc;
}
.btn-outline-primary:hover {
  color: #fff;
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.btn-outline-primary:focus, .btn-outline-primary.focus {
  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.5);
}
.btn-outline-primary.disabled, .btn-outline-primary:disabled {
  color: #3c8dbc;
  background-color: transparent;
}
.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
  color: #fff;
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.btn-outline-success {
  color: #00a65a;
  border-color: #00a65a;
}
.btn-outline-success:hover {
  color: #fff;
  background-color: #00a65a;
  border-color: #00a65a;
}
.btn-outline-success:focus, .btn-outline-success.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5);
}
.btn-outline-success.disabled, .btn-outline-success:disabled {
  color: #00a65a;
  background-color: transparent;
}
.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,
.show > .btn-outline-success.dropdown-toggle {
  color: #fff;
  background-color: #00a65a;
  border-color: #00a65a;
}
.btn-outline-info {
  color: #00c0ef;
  border-color: #00c0ef;
}
.btn-outline-info:hover {
  color: #fff;
  background-color: #00c0ef;
  border-color: #00c0ef;
}
.btn-outline-info:focus, .btn-outline-info.focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 192, 239, 0.5);
}
.btn-outline-info.disabled, .btn-outline-info:disabled {
  color: #00c0ef;
  background-color: transparent;
}
.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,
.show > .btn-outline-info.dropdown-toggle {
  color: #fff;
  background-color: #00c0ef;
  border-color: #00c0ef;
}
.btn-outline-warning {
  color: #f39c12;
  border-color: #f39c12;
}
.btn-outline-warning:hover {
  color: #fff;
  background-color: #f39c12;
  border-color: #f39c12;
}
.btn-outline-warning:focus, .btn-outline-warning.focus {
  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);
}
.btn-outline-warning.disabled, .btn-outline-warning:disabled {
  color: #f39c12;
  background-color: transparent;
}
.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,
.show > .btn-outline-warning.dropdown-toggle {
  color: #fff;
  background-color: #f39c12;
  border-color: #f39c12;
}
.btn-outline-danger {
  color: #dd4b39;
  border-color: #dd4b39;
}
.btn-outline-danger:hover {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39;
}
.btn-outline-danger:focus, .btn-outline-danger.focus {
  box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5);
}
.btn-outline-danger.disabled, .btn-outline-danger:disabled {
  color: #dd4b39;
  background-color: transparent;
}
.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,
.show > .btn-outline-danger.dropdown-toggle {
  color: #fff;
  background-color: #dd4b39;
  border-color: #dd4b39;
}

/* Background utilities */
.bg-primary {
  background-color: #3c8dbc !important;
}
a.bg-primary:hover, a.bg-primary:focus,
button.bg-primary:hover, button.bg-primary:focus {
  background-color: #367fa9 !important;
}
.bg-success {
  background-color: #00a65a !important;
}
a.bg-success:hover, a.bg-success:focus,
button.bg-success:hover, button.bg-success:focus {
  background-color: #008d4c !important;
}
.bg-info {
  background-color: #00c0ef !important;
}
a.bg-info:hover, a.bg-info:focus,
button.bg-info:hover, button.bg-info:focus {
  background-color: #00acd6 !important;
}
.bg-warning {
  background-color: #f39c12 !important;
}
a.bg-warning:hover, a.bg-warning:focus,
button.bg-warning:hover, button.bg-warning:focus {
  background-color: #e08e0b !important;
}
.bg-danger {
  background-color: #dd4b39 !important;
}
a.bg-danger:hover, a.bg-danger:focus,
button.bg-danger:hover, button.bg-danger:focus {
  background-color: #d73925 !important;
}

/* Gradient utilities (auth pages use bg-gradient-primary).
 * Primary gradient uses the Ssentezo sidebar dark-blue family (#222d32 -> #1a2226).
 */
.bg-gradient-primary {
  background-color: #222d32;
  background-image: linear-gradient(180deg, #222d32 10%, #1a2226 100%);
  background-size: cover;
}
.bg-gradient-success {
  background-color: #00a65a;
  background-image: linear-gradient(180deg, #00a65a 10%, #008d4c 100%);
  background-size: cover;
}
.bg-gradient-info {
  background-color: #00c0ef;
  background-image: linear-gradient(180deg, #00c0ef 10%, #00acd6 100%);
  background-size: cover;
}
.bg-gradient-warning {
  background-color: #f39c12;
  background-image: linear-gradient(180deg, #f39c12 10%, #e08e0b 100%);
  background-size: cover;
}
.bg-gradient-danger {
  background-color: #dd4b39;
  background-image: linear-gradient(180deg, #dd4b39 10%, #c23321 100%);
  background-size: cover;
}

/* Text utilities */
.text-primary {
  color: #3c8dbc !important;
}
a.text-primary:hover, a.text-primary:focus {
  color: #367fa9 !important;
}
.text-success {
  color: #00a65a !important;
}
a.text-success:hover, a.text-success:focus {
  color: #008d4c !important;
}
.text-info {
  color: #00c0ef !important;
}
a.text-info:hover, a.text-info:focus {
  color: #00acd6 !important;
}
.text-warning {
  color: #f39c12 !important;
}
a.text-warning:hover, a.text-warning:focus {
  color: #e08e0b !important;
}
.text-danger {
  color: #dd4b39 !important;
}
a.text-danger:hover, a.text-danger:focus {
  color: #d73925 !important;
}

/* Badges */
.badge-primary {
  color: #fff;
  background-color: #3c8dbc;
}
a.badge-primary:hover, a.badge-primary:focus {
  color: #fff;
  background-color: #367fa9;
}
a.badge-primary:focus, a.badge-primary.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.5);
}
.badge-success {
  color: #fff;
  background-color: #00a65a;
}
a.badge-success:hover, a.badge-success:focus {
  color: #fff;
  background-color: #008d4c;
}
a.badge-success:focus, a.badge-success.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 166, 90, 0.5);
}
.badge-info {
  color: #fff;
  background-color: #00c0ef;
}
a.badge-info:hover, a.badge-info:focus {
  color: #fff;
  background-color: #00acd6;
}
a.badge-info:focus, a.badge-info.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(0, 192, 239, 0.5);
}
.badge-warning {
  color: #fff;
  background-color: #f39c12;
}
a.badge-warning:hover, a.badge-warning:focus {
  color: #fff;
  background-color: #e08e0b;
}
a.badge-warning:focus, a.badge-warning.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(243, 156, 18, 0.5);
}
.badge-danger {
  color: #fff;
  background-color: #dd4b39;
}
a.badge-danger:hover, a.badge-danger:focus {
  color: #fff;
  background-color: #d73925;
}
a.badge-danger:focus, a.badge-danger.focus {
  outline: 0;
  box-shadow: 0 0 0 0.2rem rgba(221, 75, 57, 0.5);
}

/* Card accent borders */
.border-left-primary {
  border-left-color: #3c8dbc !important;
}
.border-left-success {
  border-left-color: #00a65a !important;
}
.border-left-info {
  border-left-color: #00c0ef !important;
}
.border-left-warning {
  border-left-color: #f39c12 !important;
}
.border-left-danger {
  border-left-color: #dd4b39 !important;
}
.border-bottom-primary {
  border-bottom-color: #3c8dbc !important;
}
.border-bottom-success {
  border-bottom-color: #00a65a !important;
}
.border-bottom-info {
  border-bottom-color: #00c0ef !important;
}
.border-bottom-warning {
  border-bottom-color: #f39c12 !important;
}
.border-bottom-danger {
  border-bottom-color: #dd4b39 !important;
}

/* Page chrome — color only */
#wrapper #content-wrapper {
  background-color: #ecf0f5;
}
.card {
  border-color: #d2d6de;
}
.topbar .dropdown-list .dropdown-header {
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.page-item.active .page-link {
  color: #fff;
  background-color: #3c8dbc;
  border-color: #3c8dbc;
}
.dropdown-item.active, .dropdown-item:active {
  color: #fff;
  background-color: #3c8dbc;
}
.progress-bar {
  background-color: #3c8dbc;
}
.progress-bar.bg-success {
  background-color: #00a65a !important;
}
.progress-bar.bg-info {
  background-color: #00c0ef !important;
}
.progress-bar.bg-warning {
  background-color: #f39c12 !important;
}
.progress-bar.bg-danger {
  background-color: #dd4b39 !important;
}
.scroll-to-top {
  color: #fff;
  background: rgba(60, 141, 188, 0.6);
}
.scroll-to-top:hover {
  background: #367fa9;
}
.form-control:focus {
  border-color: #8fbcd8;
  box-shadow: 0 0 0 0.2rem rgba(60, 141, 188, 0.25);
}

/* Login page — compact, vertically centered (scoped to .page-login).
 * Single centered card (no dead split column); only centering + spacing
 * tweaks here, no breakpoints or widths — mobile stacking unaffected.
 */
.page-login {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.page-login .container {
  margin-top: auto;
  margin-bottom: auto;
}
.page-login .login-alert:empty {
  display: none;
}
.page-login .login-alert {
  margin-bottom: 1rem;
}
.page-login form.user .form-group {
  margin-bottom: 0.85rem;
}
.page-login form.user .form-control-user {
  padding: 1.1rem 1rem;
}
.page-login form.user .btn-user {
  padding: 0.6rem 1rem;
}

/* Auth pages (body.bg-gradient-primary = login / forgot / reset / confirm):
 * darken remaining bright blues to the Ssentezo slate family.
 * Scoped to the body class so in-app pages are untouched.
 */
body.bg-gradient-primary a {
  color: #367fa9;
}
body.bg-gradient-primary a:hover {
  color: #2c6a8f;
}
body.bg-gradient-primary .btn-primary {
  color: #fff;
  background-color: #222d32;
  border-color: #222d32;
}
body.bg-gradient-primary .btn-primary:hover {
  color: #fff;
  background-color: #1a2226;
  border-color: #1a2226;
}
body.bg-gradient-primary .btn-primary:focus, body.bg-gradient-primary .btn-primary.focus {
  color: #fff;
  background-color: #1a2226;
  border-color: #1a2226;
  box-shadow: 0 0 0 0.2rem rgba(34, 45, 50, 0.5);
}
body.bg-gradient-primary .btn-primary.disabled, body.bg-gradient-primary .btn-primary:disabled {
  color: #fff;
  background-color: #222d32;
  border-color: #222d32;
}
body.bg-gradient-primary .btn-primary:not(:disabled):not(.disabled):active, body.bg-gradient-primary .btn-primary:not(:disabled):not(.disabled).active,
body.bg-gradient-primary .show > .btn-primary.dropdown-toggle {
  color: #fff;
  background-color: #101517;
  border-color: #101517;
}
body.bg-gradient-primary .custom-control-input:checked ~ .custom-control-label::before {
  color: #fff;
  border-color: #222d32;
  background-color: #222d32;
}
body.bg-gradient-primary .custom-control-input:focus ~ .custom-control-label::before {
  box-shadow: 0 0 0 0.2rem rgba(34, 45, 50, 0.25);
}
body.bg-gradient-primary .custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
  border-color: #6b8794;
}
body.bg-gradient-primary .custom-control-input:not(:disabled):active ~ .custom-control-label::before {
  color: #fff;
  background-color: #4a5a61;
  border-color: #4a5a61;
}
body.bg-gradient-primary .form-control:focus {
  border-color: #557f93;
  box-shadow: 0 0 0 0.2rem rgba(54, 127, 169, 0.25);
}

/* ============================================================
 * Ssentezo UI polish — AdminLTE-flavoured, responsive-safe.
 * Only color / typography / padding / radius / shadow here.
 * No widths, floats, positions, display or breakpoints changes
 * except one small-screen padding reduction at the bottom.
 * Navbar / sidebar untouched (sidebar-ssentezo.css owns it).
 * ============================================================ */

/* --- Base typography: readable, higher contrast --- */
body {
  font-family: "Nunito", "Source Sans Pro", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #333940;
  font-size: 0.92rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
h1.h3, .h3 {
  color: #222d32;
  font-weight: 700;
  letter-spacing: -0.01em;
}
p { color: #333940; }
.text-gray-800 { color: #2e343b !important; }
.text-gray-600 { color: #5b6770 !important; }
small, .small { color: #5b6770; }
td small, th small { color: #5b6770; }

/* Card titles: darker brand blue for WCAG contrast on white */
.card-header .text-primary,
.card-header h6 {
  color: #2c6a8f !important;
  font-size: 0.92rem;
  letter-spacing: 0.01em;
}

/* --- Cards: flat Ssentezo "box" feel --- */
.card {
  border-radius: 0.35rem;
  box-shadow: 0 1px 2px rgba(34, 45, 50, 0.08) !important;
}
.card-header {
  background-color: #fff;
  border-bottom: 1px solid #e8ecf1;
  padding: 0.85rem 1.25rem;
}
.card-header:first-child { border-radius: 0.35rem 0.35rem 0 0; }
.card-body { padding: 1.25rem; }
.card.shadow { border-top: 3px solid #3c8dbc; }

/* --- Buttons: consistent padding, weight, Ssentezo radius --- */
.btn {
  font-weight: 600;
  font-size: 0.875rem;
  letter-spacing: 0.01em;
  padding: 0.52rem 1.15rem;
  border-radius: 0.3rem;
  line-height: 1.5;
}
.btn-sm, .btn-group-sm > .btn {
  padding: 0.36rem 0.8rem;
  font-size: 0.8rem;
  border-radius: 0.28rem;
}
.btn-lg, .btn-group-lg > .btn {
  padding: 0.7rem 1.4rem;
  font-size: 0.95rem;
}
.btn-block { margin-bottom: 0.5rem; }
.btn i.fas, .btn i.fa, .btn .fa, .btn .fas { margin-right: 0.35rem; }
.btn .fa-eye, .btn .fa-search { margin-right: 0; }
/* BS3 compat shims (old markup in datatables): size + color only */
.btn-xs {
  padding: 0.3rem 0.65rem;
  font-size: 0.75rem;
  line-height: 1.4;
  border-radius: 0.25rem;
  font-weight: 600;
}
.btn-default {
  color: #33424f;
  background-color: #eef2f6;
  border-color: #d2d6de;
}
.btn-default:hover {
  color: #222d32;
  background-color: #dde5ec;
  border-color: #c3ccd4;
}
.pull-right { float: right !important; }
.pull-left { float: left !important; }

/* --- Status pills: clear, high-contrast, uppercase --- */
.status-pill,
.badge.status-pill,
span.badge, span.label {
  display: inline-block;
  font-style: normal;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  line-height: 1;
  padding: 0.42em 0.8em;
  border-radius: 10rem;
  white-space: nowrap;
  vertical-align: middle;
}
/* Legacy BS3 .label shim -> same pill treatment */
.label {
  display: inline-block;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.045em;
  text-transform: uppercase;
  line-height: 1;
  padding: 0.42em 0.8em;
  border-radius: 10rem;
  white-space: nowrap;
}
.label-default, .badge-default, .status-default { color: #33424f; background-color: #e3e8ee; }
.label-primary, .badge-primary, .status-primary { color: #fff; background-color: #367fa9; }
.label-success, .badge-success, .status-success,
.status-paid, .status-fully-paid, .status-approved, .status-active, .status-disbursed {
  color: #fff; background-color: #008d4c;
}
.label-info, .badge-info, .status-info,
.status-open, .status-pending {
  color: #fff; background-color: #0288b7;
}
.label-warning, .badge-warning, .status-warning,
.status-missed, .status-missed-repayment, .status-past-maturity {
  color: #212529; background-color: #ffc63b;
  border: 1px solid #e0a800;
}
.label-danger, .badge-danger, .status-danger,
.status-rejected, .status-failed, .status-canceled, .status-cancelled, .status-defaulted {
  color: #fff; background-color: #c23321;
}
/* Duration / meta pill inside tables (replaces faint rgba badge) */
.meta-pill {
  display: inline-block;
  font-weight: 600;
  font-size: 0.72rem;
  color: #33424f;
  background-color: #eef2f6;
  border: 1px solid #d2d6de;
  padding: 0.3em 0.65em;
  border-radius: 10rem;
  white-space: nowrap;
}
/* Missed-days sub-text under a pill */
.status-sub {
  display: block;
  margin-top: 0.3rem;
  font-size: 0.75rem;
  color: #5b6770;
}
/* Icon action button in tables */
.btn-view {
  color: #367fa9;
  background-color: #e8f1f7;
  border-color: #c4d9e6;
  padding: 0.32rem 0.6rem;
}
.btn-view:hover {
  color: #fff;
  background-color: #367fa9;
  border-color: #367fa9;
}

/* Fix low-contrast helper texts inside forms/tables */
.text-info { color: #047a9e !important; }
a.text-info:hover { color: #03627f !important; }
.text-warning { color: #8a5a00 !important; }
.text-success { color: #007a42 !important; }
.text-primary { color: #2c6a8f !important; }

/* --- Tables: Ssentezo-style header, calm grid --- */
.table { color: #333940; font-size: 0.875rem; }
.table thead th {
  background-color: #eef3f7;
  color: #2f3e4e;
  font-size: 0.74rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: 2px solid #d2d6de !important;
  padding: 0.7rem 0.75rem;
  white-space: nowrap;
}
.table-bordered { border-color: #e0e6ec; }
.table-bordered th, .table-bordered td { border-color: #e6ebf0; }
.table-striped tbody tr:nth-of-type(odd) { background-color: #f7fafc; }
.table-hover tbody tr:hover { background-color: #eaf3f9; }
.table td { padding: 0.65rem 0.75rem; vertical-align: middle; }
.table td .btn { margin: 0.1rem 0; }

/* --- DataTables controls --- */
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_info {
  color: #5b6770;
  font-size: 0.85rem;
  font-weight: 400;
}
.dataTables_wrapper .dataTables_filter input {
  border: 1px solid #d2d6de;
  border-radius: 0.3rem;
  padding: 0.4rem 0.7rem;
  margin-left: 0.5rem;
  font-size: 0.875rem;
}
.dataTables_wrapper .dataTables_length select {
  border: 1px solid #d2d6de;
  border-radius: 0.3rem;
  padding: 0.3rem 0.5rem;
  font-size: 0.85rem;
  color: #333940;
  background-color: #fff;
}
.dataTables_wrapper .dataTables_paginate .paginate_button { font-size: 0.83rem; }

/* --- Forms --- */
label.control-label, .col-form-label {
  font-weight: 600;
  color: #3d464e;
  font-size: 0.85rem;
  margin-bottom: 0.35rem;
}
.form-control {
  font-size: 0.9rem;
  color: #2e343b;
  border-radius: 0.3rem;
  padding: 0.5rem 0.75rem;
}
.form-control::placeholder { color: #8a95a0; }
select.form-control { font-weight: 400; }
textarea.form-control { line-height: 1.55; }
.invalid-feedback, .text-danger { font-size: 0.82rem; }

/* --- Alerts --- */
.alert { font-size: 0.875rem; border-radius: 0.35rem; }
.alert-success { color: #155724; background-color: #d4edda; border-color: #b9dfc2; }
.alert-danger { color: #721c24; background-color: #f8d7da; border-color: #f0b6bc; }
.alert-warning { color: #664d03; background-color: #fff3cd; border-color: #f3dd9a; }
.alert-info { color: #055160; background-color: #cff4fc; border-color: #a4e3f0; }

/* --- Empty states (apply / view pages) --- */
.empty-state {
  text-align: center;
  padding: 2.5rem 1.5rem;
}
.empty-state .empty-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  background-color: #eef3f7;
  color: #367fa9;
  font-size: 1.4rem;
  margin-bottom: 1rem;
}
.empty-state.warning .empty-icon { background-color: #fff3cd; color: #8a5a00; }
.empty-state h3 { color: #2f3e4e; font-size: 1.2rem; font-weight: 700; margin-bottom: 0.4rem; }
.empty-state p { color: #5b6770; font-size: 0.92rem; margin-bottom: 0; }

/* --- Page sub-header row (title + action) --- */
.page-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 1.25rem;
}
.page-head h1 { margin-bottom: 0; }
.page-sub { color: #5b6770; font-size: 0.88rem; margin-top: 0.15rem; }

/* --- Navbar / sidebar guards: keep recently-edited nav pixel-identical --- */
.topbar .badge, .sidebar .badge {
  text-transform: none;
  letter-spacing: normal;
  font-size: 0.65rem;
  padding: 0.25em 0.45em;
}
.topbar .btn { padding: 0.375rem 0.75rem; font-size: 0.85rem; }

/* --- Small screens: keep tap targets, reduce bulk (no layout change) --- */
@media (max-width: 576px) {
  body { font-size: 0.9rem; }
  .btn { padding: 0.48rem 0.95rem; font-size: 0.84rem; }
  .card-body { padding: 1rem; }
  .table { font-size: 0.83rem; }
}
