:root {
    --bs-link-color: teal;
    --bs-link-hover-color: rgba(0,100,100);
}

body {
    /*overflow-x: hidden;*/
    background-color: rgb(250,250,250);
}

::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-button {
  width: 0px;
  height: 0px;
}
::-webkit-scrollbar-thumb {
  background: #92afaf;
  border: 2px solid #cedbdb;
  border-radius: 0px;
}
::-webkit-scrollbar-thumb:hover {
  background: #008080;
}
::-webkit-scrollbar-thumb:active {
  background: #00b3b3;
}
::-webkit-scrollbar-track {
  background: transparent;
  border: 0px none #ffffff;
  border-radius: 0px;
}
::-webkit-scrollbar-track:hover {
  background: #cedbdb;
}
::-webkit-scrollbar-track:active {
  background: #cedbdb;
}
::-webkit-scrollbar-corner {
  background: transparent;
}

.container, .container-fluid {
    /*overflow-x: hidden;*/
}

.panel, .dashboard-block {
    box-shadow: 0 10px 15px rgba(0,0,0,.1);
    padding: 2em;
    outline: 1px solid #0001;
    background: white;
}

.dashboard-block button > i.bi::before {
    transition: transform .5s ease-in-out;
}

.dashboard-block button > i.bi.rotate::before {
    transition: transform .5s ease-in-out;
}

.dashboard-block div.head > div >.bi {
    font-size: 4em;
    width: 1.5em;
    height: 1.5em;
    border-radius: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: teal;
}

.dashboard-block div.head > div >.value {
    font-size: 3em;
    font-weight:bold;
    display: block;
}

.dashboard-block div.head > div {
    display: flex;
    flex-direction: column;
    justify-content: end;
}

.container hr {
    opacity: .15;
    mix-blend-mode: multiply;
}

.panel.green {
    background-color: hsl(78deg, 51%, 90%)
}

.panel h3, .panel h4, .panel h5, .panel h6 {
    position: relative;
}
.panel h3::before, .panel h4::before, .panel h5::before, .panel h6::before {
    position: absolute;
    display: block;
    content: "";
    border-radius: 0 2em 2em 0;
    left: -2rem;
    max-width: 1rem;
    aspect-ratio: .5;
    top: 10%;
    height: 80%;
}
.panel h3::before {
    background: teal;
}

.panel h4::before {
    background: hsl(180, 100%, 38%);
}

.panel h5::before {
    background: lightgray;
}

.display-6 {
    font-size: 1.5rem;
}

button.user {
    height: 3em;
    box-sizing: border-box;
    aspect-ratio: 1;
    border-radius: 100%;
    background-color: lightgray;
    color: black;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.5s ease, color 0.7s ease;
    border: none;
    outline: 3px solid white;
    font-family: 'Montserrat';
    font-weight: 400;
    margin-right: .5em;
}

.transform-rotate-180 {
    transform: rotate(180deg);
}

.transform-rotate-45 {
    transform: rotate(45deg);
}

button.user:hover {
    background-color: teal;
    color: white;
}

.user-dropdown i.bi {
    color: teal;
}

.navbar-toggler:focus {
    box-shadow: none;
}

.table-group-divider {
    border-top-color: teal;
}

.table-striped.table-hover>tbody>tr:nth-of-type(odd)>*,
.table-striped-tbody.table-hover>tbody:nth-of-type(odd)>tr>* {
    --bs-table-accent-bg: rgba(0,0,0,.025);
}

.table-striped.table-hover>tbody>tr:nth-of-type(even):hover>*,
.table-striped-tbody.table-hover>tbody:nth-of-type(even):hover>tr>* {
    --bs-table-accent-bg: rgba(0,128,128,.035);
}

.table-striped.table-hover>tbody>tr:nth-of-type(odd):hover>*,
.table-striped-tbody.table-hover>tbody:nth-of-type(odd):hover>tr>* {
    --bs-table-accent-bg: rgba(0,96,96,.045);
}

.table-hover>tbody>tr:hover>* {
    --bs-table-accent-bg: rgba(0,128,128,.035);
    border-bottom-color: rgba(0,128,128,.2);
}

/* SIDE MENU */

.side-menu {
  width: 60px;
  min-height: 100vh;
  transition: width .35s ease-in-out;
  color: white;
  background: linear-gradient(180deg, teal 0%, hsl(180, 100%, 38%) 100%);
  min-height: 100vh;
  height: 100%;
}

.side-menu #toggler {
    position: absolute;
    top: 1em;
    right: -0.5em;
    width: 1em;
    height: 1em;
    border-radius: 100%;
    display: block;
    border: 0;
    padding: 0;
    margin: 0;
    line-height: 1em;
    outline: teal 2px solid;
    box-shadow: 0 3px 5px rgb(0 0 0 / 50%);
    font-weight:bold;
    color: teal;
    background-color: white;
    transition: transform .5s ease-in-out;
}

.side-menu.show {
  width: 300px;
}

.side-menu h1 {
    display: flex;
    font-family: "Montserrat";
    text-shadow: 0 2px 5px rgba(0,0,0,.3);
}

.side-menu h1 > span {
    width: 0px;
    overflow: hidden;
    transition: all .35s ease-in-out;
    opacity: 0;
}

.side-menu.show h1 > span {
    opacity: 1;
}

.side-menu.show h1 > span:first-of-type { width: 2.25ch; }
.side-menu.show h1 > span:nth-child(2)  { width: 3.5ch;  }

.side-menu .navbar-proto {
    width: calc(100% + (var(--bs-gutter-x) * 0.5));
}

.side-menu .navbar-proto > ul {
    overflow-x: hidden;
}

.side-menu .nav-item.active ul.dropdown-menu {
    --bs-dropdown-link-color: teal;
}

.side-menu .nav-item.active .dropdown-item:focus, .side-menu .nav-item.active .dropdown-item:hover {
    color: var(--bs-link-hover-color);
    background: linear-gradient(90deg, #fff, rgba(0,128,128,.05) 25%, #fff)
}

.side-menu .navbar-proto > ul > li > a.nav-link > span,
.side-menu .navbar-proto > ul > li  ul.dropdown-menu > li span {
    color: inherit;
    overflow: hidden;
    transition: opacity .5s ease-in-out;
    opacity: 0;
}
.side-menu .navbar-proto > ul > li > a.nav-link {
    color: inherit;
}
.side-menu.show .navbar-proto > ul > li > a.nav-link > span,
.side-menu.show .navbar-proto > ul > li  ul.dropdown-menu > li span {
    opacity: 1;
    font-size: inherit;
}

.side-menu .navbar-proto > ul > li .bi::before {
    width: 1.5em;
    text-align: center;
}

.side-menu .navbar-proto > ul > li .bi {
    color: inherit;
}

.side-menu ul.dropdown-menu {
    --bs-dropdown-bg: transparent;
    --bs-dropdown-color: white;
    --bs-dropdown-link-color: white;
    --bs-dropdown-padding-y: 0;
    --bs-dropdown-border-radius: 0 0 0 1em;
    --bs-dropdown-link-hover-bg: rgba(255,255,255,.25);
    --bs-dropdown-link-hover-color: white;
    border: none;
    border-left: 2px dashed rgba(255,255,255,.5);
}

.side-menu ul.dropdown-menu > li > a {
    border-radius: 1em
}

.side-menu ul.dropdown-menu .bi {
    margin-left: -.5em;
}

.side-menu .navbar-proto > ul > li  {
    --bg-opacity: 0;
    background: rgba(255,255,255,var(--bg-opacity));
    padding-left: 0.25em;
    border-radius: 1em 0 0 1em;
    transition: background .25s ease-in-out;
    white-space: nowrap;
    color: white;
}

.side-menu .navbar-proto > ul > li:hover {
    --bg-opacity: .25;
}

.side-menu .navbar-proto > ul > li.active {
    --bg-opacity: 1;
    color: teal;
}

.side-menu .navbar-proto > ul > hr {
    border-style: dashed;
    width: calc(100% - (var(--bs-gutter-x) * 0.5));
}

.navbar-top-proto {
    margin-left: calc(-1 * var(--bs-gutter-x) / 2);
    margin-right: calc(-1 * var(--bs-gutter-x) / 2);
    z-index: 1000;
    backdrop-filter: blur(5px);
    background-blend-mode: multiply;
    background-color: #00000008 !important;
}

.no-transitions, .no-transitions * {
    transition: none !important;
}

.form-control:focus, .form-select:focus, .form-check-input:focus {
    border-color: teal;
    box-shadow: 0 0 0 0.25rem rgba(0,128,128,.25);
}

.form-check-input:checked {
    background-color: teal;
    border-color: teal;
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: teal;
    --bs-btn-border-color: teal;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: rgb(0, 147, 147);
    --bs-btn-hover-border-color: #0a58ca;
    --bs-btn-focus-shadow-rgb: 0,128,128;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: rgb(0, 147, 147);
    --bs-btn-active-border-color: #0a53be;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0,128,128,.25);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: teal;
    --bs-btn-disabled-border-color: teal;
}

.btn-outline-primary {
    --bs-btn-color: teal;
    --bs-btn-border-color: teal;
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: teal;
    --bs-btn-hover-border-color: teal;
    --bs-btn-focus-shadow-rgb: 0,128,128;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: teal;
    --bs-btn-active-border-color: teal;
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 128, 128, 0.125);
    --bs-btn-disabled-color: teal;
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: teal;
    --bs-gradient: none;
}

.opacity-50-hover {
    opacity: .5;
    transition: opacity .5s ease-in-out;
}

.opacity-50-hover:hover {
    opacity: 1;
}

.form-floating > *[required] ~ label::after {
    content: " *";
    color: red;
}

.user-select-none {
    user-select: none;
}

input:read-only, textarea:read-only {
    /*pointer-events: none;*/
    user-select: none;
}

.nav.nav-tabs .nav-link:not(.active):not([disabled]) {
    color: teal;
    border: 1px solid #00000008;
}

.grid-2-cols {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: 1fr;
    grid-column-gap: px;
    grid-row-gap: 0px;
    padding-top: .25em;
    padding-bottom: 1em;
}

.grid-2-cols > * {
    border-bottom-width: 1px;
    border-bottom-color: lightgray;
}

.grid-2-cols > *:nth-child(odd) {
    background: lightgray;
    padding: .5em .5em .5em 1em;
    font-size: .8rem;
    line-height: 1.75rem;
    font-style: italic;
    border-bottom-style: solid;
}

.grid-2-cols > *:nth-child(even) {
    padding: .5em;
    border-bottom-style: dotted;
}

.grid-shared-header {
    display: grid;
    grid-template-columns: auto 1fr;
}

table {
    counter-reset: table;
}

table td.td-counter:before {
    counter-increment: table;
    content: counter(table);
}

/* error page */

.shade-header {
    background: #262626;
    background: -webkit-radial-gradient(ellipse farthest-side at top center, #969696 0%, #262626 100%);
    background: -moz-radial-gradient(ellipse farthest-side at top center, #969696 0%, #262626 100%);
    background: radial-gradient(ellipse farthest-side at top center, #969696 0%, #262626 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

    font-family: Montserrat;
    font-weight: bold;
    font-size: 9em;
    text-shadow: 0 20px 50px #0002, 0 20px 13px #0004;
}

td.min, th.min {
    width: 1%;
    white-space: nowrap;
}

.pointer-events-none {
    pointer-events: none;;
}

input::-webkit-inner-spin-button { margin-left: 1em; }

nav[aria-label='breadcrumb'] ol.breadcrumb li > a {
    text-decoration: none;
    color: var(--bs-breadcrumb-item-active-color);
}

nav[aria-label='breadcrumb'] ol.breadcrumb li > a:hover {
    text-decoration: underline;
    color: var(--bs-link-color);
}

nav[aria-label='breadcrumb'] ol.breadcrumb li:last-child {
    font-weight: 600;
}

nav[aria-label='breadcrumb'] ol.breadcrumb li::before {
    font-weight: normal;
    opacity: .5
}

details.folder {
    border: 2px solid #0001;
    border-radius: 5px;
}

details.folder > summary {
    margin: .5em;
}

details.folder > summary::marker {
    color:hsla(180, 100%, 38%, 25%)
}

details.folder > table {
    border-top: 1px solid #0003;
}

.gray-badge {
    background-color: #00000008 !important;
    color: #0006 !important;
    box-shadow: inset 0 2px 4px #0003;
}

ul.nav.nav-tabs[role="tablist"] {
    display: inline-flex;
    flex-wrap: nowrap;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
}

ul.nav.nav-tabs[role="tablist"] > li {
    white-space: nowrap;
}

textarea.form-control {
    min-height: 8em;
}

.grid-4-cols {
    display: grid;
    grid-template-columns: auto 1fr 1fr min-content;
    grid-template-rows: 1fr;
    grid-row-gap: 0px;
    padding-top: .25em;
    padding-bottom: 1em;
}

.grid-4-cols > * {
    border-bottom-width: 1px;
    border-bottom-color: lightgray;
}

.grid-4-cols > *:nth-child(4n-3) {
    background: #00000008;
    /*padding: .5em .5em .5em 1em;*/
    border-bottom-style: solid;
    padding: .5em;
    vertical-align: middle;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

.grid-4-cols > *:not(:nth-child(4n-3)) {
    padding: .5em;
    border-bottom-style: dotted;
}

input[type=number].no-arrows::-webkit-outer-spin-button,
input[type=number].no-arrows::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.bootstrap-table th, .table th {
    vertical-align: middle !important;
}

button > i.bi::before, .btn > i.bi::before,
button > i.bi, .btn > i.bi {
    user-select: none;
    pointer-events:none;
}

.border-top-success {
    border-top-color: var(--bs-success);
    border-top-width: 4px;
}

.border-top-warning {
    border-top-color: var(--bs-warning);
    border-top-width: 4px;
}

.grid-holder {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto;
}

.content-side {
    overflow-x: hidden;
}

@media screen and (max-width: 767.98px) {
    html {
        font-size: 13px;
    }
}

.no-wrap {
    white-space: nowrap;
}
