a {
    text-decoration:none;
}

.table th {
    font-weight:normal;
    background-color:#01579b !important;
    color:#fff;
}

.table th.light-th {
    background-color:#fff !important;
    color:#01579b;
}

.guardian-button {
    background-color:#fff !important;
    color:#01579b;
    border: none;
}

.point {
    cursor:pointer;
}

.tableLink {
    color: #01579b;
    cursor:pointer;
}

.page-item.active .page-link {
    background-color: #01579b;
    border-color: #01579b;
}

.right-txt {
	text-align:right;
}

.center-txt {
	text-align:center;
}

.left-txt {
	text-align:left;
}

.red-txt {
	color:#dc3545 !important;
}

.green-txt {
	color:#198754 !important;
}

.orange-txt {
	color:orange !important;
}

.blue-txt {
	color:blue !important;
}

.grey-txt {
	color:rgb(224, 224, 224) !important;
}

.unselected-icon {
    opacity:0.2;
  }

/* Datatables */
td.details-control {
    background: url('../img/details_open.png') no-repeat center center;
    cursor: pointer;
}
tr.shown td.details-control {
    background: url('../img/details_close.png') no-repeat center center;
    cursor: pointer;
}

.tableIcon {
    font-size: 1.25rem;
    color: #01579b;
    cursor:pointer;
}

.tableIconNoPoint {
    font-size: 1.25rem;
    color: #01579b;
}

/* Modals */
.modal-header {
    background-color:#01579b;
    color:#fff;
}

/* Loader */
.loader {
    position: fixed;
    z-index: 999;
    overflow: show;
    margin: auto;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    width: 50px;
    height: 50px;
}

/* Accordions */
.accordion-button, .accordion-button:not(.collapsed) {
    background-color:#01579b;
    color:#fff;
}

/* Select2 */
.select2-selection__rendered {
    line-height: 36px !important;
}
.select2-container .select2-selection--single {
    height: 36px !important;
}
.select2-selection__arrow {
    height: 36px !important;
}

/* Calendar */
.fc .fc-button-primary {
    background-color: #01579b !important;
    border-color: #fff !important;
}

.fc-event {
    border-color:#fff !important;
}

/* --- Dark Mode ----------------------------------------------------------- */
:root {
  --brand:#01579b;
  --bg:#ffffff;
  --text:#212529;
  --muted:#6c757d;
  --card:#ffffff;
  --table-stripe:#f8f9fa;
  --border:#dee2e6;
  --link:#01579b;
}

.dark-mode {
  --brand:#0a84ff;          /* calmer blue that pops on dark */
  --bg:#0f1216;
  --text:#e7eaf0;
  --muted:#a7afbe;
  --card:#151a21;
  --table-stripe:#1a2028;
  --border:#2a3240;
  --link:#7dbcff;
  color: var(--text);
  background-color: var(--bg);
}

.dark-mode a { color: var(--link); }
.dark-mode a:hover { color: #beddff; }

.dark-mode .table {
  color: var(--text);
  background-color: var(--card);
}
.dark-mode .table-striped tbody tr:nth-of-type(odd) {
  background-color: var(--table-stripe);
}
.dark-mode .table th,
.dark-mode .table td {
  border-color: var(--border);
}
.dark-mode .table th {
  background-color: var(--brand) !important;
  color:#fff;
}
.dark-mode .table th.light-th {
  background-color: var(--card) !important;
  color: var(--brand);
}

/* Icons/links inside tables */
.dark-mode .tableLink,
.dark-mode .tableIcon,
.dark-mode .tableIconNoPoint {
  color: var(--link);
}

/* Modals */
.dark-mode .modal-content { background-color: var(--card); color: var(--text); }
.dark-mode .modal-header { background-color: var(--brand); color:#fff; }
.dark-mode .btn-close { filter: invert(1) grayscale(100%); }

/* Accordions */
.dark-mode .accordion-button,
.dark-mode .accordion-button:not(.collapsed) {
  background-color: var(--brand);
  color:#fff;
}
.dark-mode .accordion-item { background-color: var(--card); border-color: var(--border); }

/* Select2 */
.dark-mode .select2-container .select2-selection--single {
  background-color: var(--card) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
.dark-mode .select2-selection__rendered { color: var(--text) !important; }
.dark-mode .select2-dropdown {
  background-color: var(--card);
  border-color: var(--border);
  color: var(--text);
}

/* DataTables chrome */
.dark-mode .page-item .page-link { background-color: var(--card); color: var(--text); border-color: var(--border); }
.dark-mode .page-item.active .page-link { background-color: var(--brand); border-color: var(--brand); color:#fff; }
.dark-mode div.dataTables_filter input { background-color: var(--card); color: var(--text); border-color: var(--border); }
.dark-mode .dt-button,
.dark-mode .btn { background-color: var(--card); color: var(--text); border-color: var(--border); }

/* Loader */
.dark-mode .spinner-border { color: var(--brand) !important; }

/* Calendar (if used) */
.dark-mode .fc .fc-button-primary {
  background-color: var(--brand) !important;
  border-color: #fff !important;
}

/* --- Theme Toggle Button ------------------------------------------------- */
.theme-toggle {
  position: fixed;
  left: 50%;
  transform: translateX(-50%);
  bottom: 18px;
  z-index: 1060;
}
.theme-toggle .btn {
  border-radius: 999px;
  padding: 0.5rem 1rem;
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}
.dark-mode .theme-toggle .btn {
  background-color: var(--brand);
  color:#fff;
  border-color: transparent;
}


/* Keep Select2 control height consistent with BS5 inputs */
.select2-selection__rendered { line-height: 38px !important; }
.select2-container .select2-selection--single { height: 40px !important; }
.select2-selection__arrow { height: 40px !important; }
.dark-mode .select2-selection__arrow b { border-top-color: var(--text) !important; }


/* --- Dark mode: DataTables specifics --- */
.dark-mode table.dataTable {
  background-color: var(--card);
  color: var(--text);
  border-color: var(--border);
}
.dark-mode table.dataTable > thead > tr > th,
.dark-mode table.dataTable > thead > tr > td,
.dark-mode table.dataTable > tbody > tr > th,
.dark-mode table.dataTable > tbody > tr > td {
  border-color: var(--border) !important;
}

/* Row backgrounds (DataTables adds .odd/.even) */
.dark-mode table.dataTable tbody tr {
  background-color: var(--card) !important;
}
.dark-mode table.dataTable.stripe tbody tr.odd,
.dark-mode table.dataTable.display tbody tr.odd {
  background-color: var(--table-stripe) !important;
}
.dark-mode table.dataTable.stripe tbody tr.even,
.dark-mode table.dataTable.display tbody tr.even {
  background-color: var(--card) !important;
}

/* Hover + selected rows */
.dark-mode table.dataTable.hover tbody tr:hover,
.dark-mode table.dataTable.display tbody tr:hover {
  background-color: rgba(255,255,255,0.06) !important;
}
.dark-mode table.dataTable tbody tr.selected,
.dark-mode table.dataTable tbody > tr.selected > * {
  background-color: rgba(122, 176, 255, 0.18) !important;
  color: var(--text) !important;
}

/* Length/Filter/Info/Paging chrome */
.dark-mode .dataTables_wrapper .dataTables_length label,
.dark-mode .dataTables_wrapper .dataTables_filter label,
.dark-mode .dataTables_wrapper .dataTables_info,
.dark-mode .
