/* General ------------------*/
body {
   min-height: 100%;
   font-family: "Chakra Petch", sans-serif;
   background: none;
}

h1, h2, p {
   color: #FFF;
}

h1 {
   padding: 32px 0;
   font-weight: bold;
   text-transform: uppercase;
}

h2 {
   padding-bottom: 32px;
   text-align: center;
}

p {
   font-size: 16px;
}

main {
   padding-top: 50px;
}

a {
   text-decoration: none;
}

/* Alerts -------------------*/
.alert {
   display: flex;
   border: 0;
   border-radius: 0;
}
.alert .svg-inline--fa {
   font-size: 24px;
   height: unset;
}

.alert-body {
   padding: 3px 0px 0px 16px;
   font-size: 16px;
}

.alert-danger {
   color: #DC3545;
   background-color: #F5C6CB;
   border-left: 4px solid #DC3545;
}

.alert-warning {
   background-color: #FFCB77;
   border-left: 4px solid #856404;
}

.alert-success {
   color: #187459;
   background-color: #DAF7E1;
   border-left: 4px solid #187459;
}

.alert-info {
   border-left: 4px solid #055160;
}

/* Loading spinner ----------*/
.loading-overlay {
   background-color: rgba(0, 0, 0, 0.3);
   z-index: 999;
   position: absolute;
   left: 0;
   top: 0;
   width: 100%;
   height: 100%;
   display: none;
}

.loading-overlay div {
   position: absolute;
   left: 50%;
   top: 50%;
   margin-top: -32px;
   margin-left: -32px;
}

/* Navbar -------------------*/
.navbar {
   position: fixed;
   background-color: #187459;
   overflow: hidden;
   padding: 0;
   display: block;
   top: 0;
   width: 64px;
   height: 100vh;
   z-index: 99;
   border-right: 1px solid #CCC;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

.navbar:hover {
   width: 200px;
}

.navbar-nav {
   height: 100%;
}

.nav-item {
   width: 100%;
}

.nav-link {
   display: flex;
   align-items: center;
   height: 64px;
   color: #FFF;
   text-decoration: none;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

.nav-link:active, .nav-link:focus, .nav-link:focus-visible {
   border: 2px solid #FFCB77;
   color: #FFF;
   outline: 0;
}

.nav-home {
   background-color: #051103;
   border-bottom: 1px solid #CCC;
}

.nav-logout {
   margin-top: auto;
   background-color: #DC3545;
   border-top: 1px solid #CCC;
}

.nav-home:hover {
   background-color: #051103;
}

.nav-home .nav-link:hover {
   color: #FFF;
}

.nav-normal:hover {
   background: #FFF;
}

.nav-normal .nav-link:hover {
   color: #187459;
}

.nav-logout:hover {
   background-color: #AC3545;
}

.nav-logout .nav-link:hover {
   color: #FFF;
}

.link-text {
   display: none;
   margin-left: 16px;
}

.navbar:hover .link-text {
   display: inline;
}

.nav-link .svg-inline--fa {
   min-width: 32px;
   margin: 0 16px;
   font-size: 24px;
}

#header .svg-inline--fa {
   color: white;
   font-size: 32px;
   margin: 16px 0 0 0;
}

.card-menu {
   overflow: hidden;
   height: 200px;
   border-radius: 0;
   border: 2px solid #187459;
   background-color: #187459;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

.card-menu:hover {
   border: 2px solid #0D5640;
}

.card-menu:active {
   border: 2px solid #FFCB77;
}

.card-menu .card-title {
   position: absolute;
   bottom: -8px;
   width: 100%;
   left: 0px;
   background-color: #187459;
   color: #FFF;
   padding: 4px 16px;
}

.card-menu img {
   -webkit-transform: scale(1.6);
   transform: scale(1.6);
   -webkit-transition: .2s ease-in-out;
   transition: .2s ease-in-out;
   position: absolute;
   top: 0;
   bottom: 0;
   margin: auto;
}

.card-menu:hover img {
   -webkit-transform: scale(2);
   transform: scale(2);
}

.card-content {
   border-radius: 0;
   border: 1px solid #CCC;
}

/* Table styles -------------------*/
.table-responsive {
   overflow-x: auto;
}

.table {
   min-width: 650px;
   margin: 0;
}

.table thead {
   height: 40px;
   vertical-align: middle;
}

.table thead th {
   background-color: #187459;
   color: #FFF;
}

.table td {
   vertical-align: middle;
   border: 0;
   height: 40px;
}

.table .td-action a {
   display: inline-block;
   height: 100%;
   padding-top: 6px;
   text-decoration: none;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

.table .td-action .action-edit {
   color: #FFF;
   background-color: #055160;
   border: 2px solid #055160;
}

.table .td-action .action-edit:hover {
   color: #055160;
   background-color: #FFF;
   border: 2px solid #FFF;
}

.table .td-action .action-delete {
   color: #FFF;
   background-color: #DC3545;
   border: 2px solid #DC3545;
}

.table .td-action .action-delete:hover {
   color: #DC3545;
   background-color: #FFF;
   border: 2px solid #FFF;
}

.table .td-action a:active, .table .td-action a:focus, .table .td-action a:focus-visible {
   border: 2px solid #FFCB77;
   outline: 0;
}

.dataTables_filter {
   position: absolute;
   top: 16px;
}

.dataTables_filter label {
   margin: 0 1px 8px 0;
}

.dataTables_filter input {
   margin-left: 4px;
   border: 1px solid #187459;
   padding: 4px;
   width: 165px;
   height: 36px;
}

.dataTables_filter input:focus {
   outline: none;
   border: 1px solid #187459;
   box-shadow: inset 0 0 0px 1px rgb(74, 134, 137);
}

.back-to-top {
   position: fixed;
   display: none;
   background: #187459;
   color: #FFF;
   width: 44px;
   height: 44px;
   text-align: center;
   line-height: 1;
   font-size: 16px;
   border-radius: 50%;
   right: 15px;
   bottom: 15px;
   z-index: 52;
   padding-top: 12px;
   transition: background 0.2s;
   -webkit-transition: background 0.2s;
}

.back-to-top:hover, .back-to-top:focus {
   background-color: #0D5640;
   color: #FFF;
}

/* Toast -------------------*/
.toast {
   border-radius: 0;
   position: fixed;
   right: 0;
   top: 32px;
   z-index: 9999;
   padding: 0px 12px 0px 0px;
   font-size: 16px;
   border: none;
   box-shadow: 0 0 10px -2px #fff;
   border-left: 4px solid #187459;
}

/* Forms -------------------*/
.ams-form {
   padding: 16px 48px;
   background-color: rgba(5,17,3,0.4);
   position: relative;
}

.form-outline {
   background-color: rgba(0, 0, 0, 0.075);
   border: 2px solid #187459;
}

.ams-form .form-control {
   margin-bottom: 8px;
}

.ams-form input[type="text"]::placeholder,
.ams-form input[type="password"]::placeholder {
   color: #BBB;
}

.ams-form input[type="text"],
.ams-form input[type="date"],
.ams-form input[type="time"],
.ams-form select,
.ams-form input[type="password"] {
   width: 100%;
   color: #187459 !important;
   border-radius: 0;
   border: 1px solid #187459;
}

.ams-form select {
   -webkit-appearance: none;
   -moz-appearance: none;
   background: url('data:image/svg+xml;utf-8,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M7 10l5 5 5-5z"/><path d="M0 0h24v24H0z" fill="none"/></svg>') 100% 50% no-repeat transparent;
   background-color: #FFF;
}

.ams-form .form-control:focus {
   border-color: #187459 !important;
   box-shadow: inset 0 0 0px 2px rgb(24 116 89);
}

.ams-form input[type="radio"] {
   opacity: 0;
}

.ams-form input[type="radio"]:checked + label {
   border: 2px solid #187459;
   background-color: #187459;
   color: #FFF;
}

.ams-form input[type="radio"]:checked:focus + label {
   border: 2px solid #FFCB77;
   color: #FFCB77;
}

.ams-form input[type="radio"]:not(:checked) + label {
   border: 2px solid #187459;
   color: #187459;
}

.ams-form .custom-control-label {
   -webkit-transition: all 0.2s;
   transition: all 0.2s;
   padding: 4px 10px;
   width: 100%;
}

.ams-form input[type="radio"]:not(:checked):hover + label {
   border: 2px solid #FFCB77;
   color: #FFCB77;
}

.ams-form .custom-control-inline {
   margin-top: -22px;
}

.ams-form .input-group {
   flex-wrap: nowrap;
}

.ams-form .input-group-text {
   background: #187459 !important;
   border: 1px solid #187459;
   border-radius: 0;
}

.ams-form button {
   width: 100%;
}

.ams-form .alert {
   text-align: left;
}

.ams-form .input-group .svg-inline--fa {
   color: #FFF;
   font-size: 24px;
}

.ams-form .ams-form-result-msg {
   display: none;
   margin-top: 16px;
   margin-bottom: 8px;
}

/* Buttons ------------------*/
button {
   background: none;
   border: 0;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

button:disabled, button:disabled:hover {
   background: #CCC;
   border: 2px solid #CCC;
}

.ams-btn {
   display: inline-block;
   color: #FFF;
   padding: 16px;
   margin: 8px 0;
   font-size: 16px;
   transition: all 0.2s;
   -webkit-transition: all 0.2s;
}

.ams-btn:focus {
   outline: none;
}

.ams-btn-green {
   background-color: #187459;
   border: 2px solid #187459;
}

.ams-btn-green:active, .ams-btn-green:focus {
   border: 2px solid #FFCB77;
   background-color: #0D5640;
}

.ams-btn-green:hover {
   background-color: #0D5640;
   color: #FFF;
}

.ams-btn-red {
   background-color: #DC3545;
   border: 2px solid #DC3545;
}

.ams-btn-red:active, .ams-btn-red:focus {
   border: 2px solid #F5C6CB;
   background-color: #AB1E2C;
}

.ams-btn-red:hover {
   background-color: #AB1E2C;
}

/* Footer -------------------*/
#footer {
   width: 100%;
   padding: 24px;
   color: #FFF;
   font-size: 14px;
   text-align: center;
   background-color: #051103;
}

/* Login --------------------*/
#login {
   background: url(../img/login_bg.jpg) no-repeat center fixed; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
}

/* AMS header -----------------*/
#header {
   text-align: center;
}

/* AMS main -----------------*/
#main {
   background: url(../img/home_bg.jpg) no-repeat center fixed; 
   -webkit-background-size: cover;
   -moz-background-size: cover;
   -o-background-size: cover;
   background-size: cover;
   padding: 0px 32px 0 96px;
}

/* Small screens ------------*/
@media (max-width: 768px) {
   #main {
      padding: 0 0 0 64px;
   }
   
   .ams-form {
      padding: 24px;
   }
   
   #login .login-logo {
      width: 126px;
      height: 120px;
   }
   
   .navbar:hover {
      width: 64px;
   }
   
   .navbar:hover .link-text {
      display: none;
   }
   
}

@media (max-width: 450px) {
   #main {
      padding: 0 0 0 32px;
   }
   
   h1 {
      padding: 16px 0;
   }
   
   .navbar {
      width: 32px;
   }
   
   .nav-link .svg-inline--fa {
      min-width: 32px;
      margin: 0;
      font-size: 16px;
   }
   
   .dataTables_filter input {
      width: 100px;
   }
   
}

@media (max-height: 320px) {
   .nav-link {
      height: 32px;
      border-bottom: 1px solid #CCC;
   }
   
}