html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin: 0;
  padding: 0;
}

.footer {
    bottom: 0;
    width: 100%;
    height: 60px; /* Height of the footer */
}

/* Custom DataTables Responsive Control Icon & Child Row Styling */
table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control {
    position: relative;
    padding-left: 2.25rem !important;
    cursor: pointer;
}

table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr > th.dtr-control:before {
    top: 50%;
    left: 0.65rem;
    height: 1.25rem;
    width: 1.25rem;
    margin-top: -0.625rem;
    display: inline-block;
    position: absolute;
    background-color: #f2f7ea;
    border: 1.5px solid #5F7F2E;
    border-radius: 50%;
    box-shadow: 0 1px 3px rgba(95, 127, 46, 0.2);
    content: "" !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%235F7F2E'%3E%3Cpath d='M8 2a.75.75 0 0 1 .75.75v4.5h4.5a.75.75 0 0 1 0 1.5h-4.5v4.5a.75.75 0 0 1-1.5 0v-4.5h-4.5a.75.75 0 0 1 0-1.5h4.5v-4.5A.75.75 0 0 1 8 2z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 0.7rem 0.7rem;
    transition: all 0.2s ease;
}

table.dataTable.dtr-inline.collapsed > tbody > tr.parent > td.dtr-control:before,
table.dataTable.dtr-inline.collapsed > tbody > tr.parent > th.dtr-control:before {
    content: "" !important;
    background-color: #5F7F2E;
    border-color: #5F7F2E;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath d='M2.75 7.25a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5H2.75z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 0.7rem 0.7rem;
}

table.dataTable.dtr-inline.collapsed > tbody > tr > td.dtr-control:hover:before {
    transform: scale(1.15);
    background-color: #5F7F2E;
    border-color: #5F7F2E;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath d='M8 2a.75.75 0 0 1 .75.75v4.5h4.5a.75.75 0 0 1 0 1.5h-4.5v4.5a.75.75 0 0 1-1.5 0v-4.5h-4.5a.75.75 0 0 1 0-1.5h4.5v-4.5A.75.75 0 0 1 8 2z'/%3E%3C/svg%3E");
}

table.dataTable.dtr-inline.collapsed > tbody > tr.parent:hover > td.dtr-control:before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23ffffff'%3E%3Cpath d='M2.75 7.25a.75.75 0 0 0 0 1.5h10.5a.75.75 0 0 0 0-1.5H2.75z'/%3E%3C/svg%3E");
}

table.dataTable > tbody > tr.child {
    background-color: #f8fafc;
}

table.dataTable > tbody > tr.child ul.dtr-details {
    display: inline-block;
    list-style-type: none;
    margin: 0;
    padding: 0.5rem 1rem;
}

table.dataTable > tbody > tr.child ul.dtr-details > li {
    border-bottom: 1px solid #e9ecef;
    padding: 0.5rem 0;
}

table.dataTable > tbody > tr.child ul.dtr-details > li:last-child {
    border-bottom: none;
}

table.dataTable > tbody > tr.child span.dtr-title {
    font-weight: 600;
    min-width: 130px;
    display: inline-block;
    color: #495057;
}

/* Standard Action Button Styles */
.btn-action-view {
    background-color: #0dcaf0 !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem !important;
    border-radius: 0.25rem !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}
.btn-action-view:hover {
    background-color: #0bacce !important;
    color: #ffffff !important;
}

.btn-action-widget {
    background-color: #6f42c1 !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem !important;
    border-radius: 0.25rem !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}
.btn-action-widget:hover {
    background-color: #59359a !important;
    color: #ffffff !important;
}

.btn-action-edit {
    background-color: #ffc107 !important;
    color: #212529 !important;
    border: none !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem !important;
    border-radius: 0.25rem !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}
.btn-action-edit:hover {
    background-color: #e0a800 !important;
    color: #212529 !important;
}

.btn-action-delete {
    background-color: #dc3545 !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem !important;
    border-radius: 0.25rem !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}
.btn-action-delete:hover {
    background-color: #c82333 !important;
    color: #ffffff !important;
}

.btn-action-grn {
    background-color: #0d6efd !important;
    color: #ffffff !important;
    border: none !important;
    box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;
    padding: 0.25rem 0.5rem !important;
    font-size: 0.85rem !important;
    border-radius: 0.25rem !important;
    font-weight: 500 !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.25rem !important;
}
.btn-action-grn:hover {
    background-color: #0b5ed7 !important;
    color: #ffffff !important;
}