@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500&family=Roboto:wght@700&display=swap");
@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.5/font/bootstrap-icons.css");

:root {
  --header-height: 3rem;
  --nav-width: 4.5rem;
  --first-color: #2841ec;
  --first-color-light: #afa5d9;
  --white-color: #f7f6fb;
  --purewhite-color: #ffffff;
  --logo-color: #ffff00;
  --body-font: "Nunito", sans-serif;
  --primary-font: "Montserrat", sans-serif;
  --secondary-font: "Roboto", sans-serif;
  --normal-font-size: 1rem;
  --z-fixed: 100;
  --primary-trans: 1s;
}

*,
::before,
::after {
  box-sizing: border-box;
}

* {
  font-family: var(--primary-font);
}

/* Navbar */
body {
  position: relative;
  margin: var(--header-height) 0 0 0;
  padding: 0;
  margin: 0;
  height: 100vh;
  font-family: var(--body-font);
  font-size: var(--normal-font-size);
  transition: var(--primary-trans);
}

#body-pd {
  margin-right: calc(var(--nav-width) + 2rem);
}

a {
  text-decoration: none;
}

.header {
  width: 100%;
  height: var(--header-height);
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1rem;
  background-color: var(--white-color);
  z-index: var(--z-fixed);
  transition: var(--primary-trans);
}

.header_toggle {
  color: var(--first-color);
  font-size: 1.5rem;
  cursor: pointer;
}

.header_img {
  width: 5rem;
  height: 5rem;
  display: flex;
  justify-content: center;
  border-radius: 50%;
  overflow: hidden;
}

.header_img img {
  width: 20rem;
}

.l-navbar {
  position: fixed;
  top: 0;
  left: -30%;
  width: var(--nav-width);
  height: 100vh;
  background-color: var(--first-color);
  padding: 0.5rem 1rem 0 0;
  transition: var(--primary-trans);
  z-index: var(--z-fixed);
}

.nav {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
}

.nav_logo,
.nav_link {
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: center;
  column-gap: 1rem;
  padding: 0.5rem 0 0.5rem 1.5rem;
  position: relative;
  color: var(--first-color-light);
  margin-bottom: 1.5rem;
  transition: var(--primary-trans);
  text-decoration: none;
}

.nav_logo {
  margin-bottom: 2rem;
  text-decoration: none;
}

.nav_logo-icon {
  font-size: 2rem;
  color: var(--white-color);
  text-decoration: none;
}

.nav_logo-name {
  color: var(--white-color);
  font-weight: 700;
  font-size: 1rem;
}

.nav_logo-name1 {
  color: var(--logo-color);
  font-size: 1.3rem;
}

.nav_link:hover {
  color: var(--white-color);
}

.nav_icon {
  font-size: 2rem;
}

.nav_name {
  font-size: 1.3rem;
}

.show {
  left: 0;
}

.body-pd {
  padding-left: calc(var(--nav-width) + 1rem);
}

.active {
  color: var(--white-color);
}

.nav_list .active::before {
  content: "";
  position: absolute;
  left: 0;
  width: 2px;
  height: 32px;
  background-color: var(--white-color);
}

.height-100 {
  height: 100vh;
}

@media screen and (min-width: 768px) {
  body {
    margin: calc(var(--header-height) + 1rem) 0 0 0;
    padding-left: calc(var(--nav-width) + 2rem);
  }

  .header {
    height: calc(var(--header-height) + 1rem);
    padding: 0 2rem 0 calc(var(--nav-width) + 2rem);
  }

  .header_img {
    width: 40px;
    height: 40px;
  }

  .header_img img {
    width: 45px;
  }

  .l-navbar {
    left: 0;
    padding: 1rem 1rem 0 0;
  }

  .show {
    width: calc(var(--nav-width) + 175px);
  }

  .body-pd {
    padding-left: calc(var(--nav-width) + 188px);
  }
}

/* Courses List */
.accordion-button {
  background-color: #d9d9d9 !important;
  color: #808080 !important;
  font-weight: bolder;
}

.accordion-button1 {
  background-color: #2841ec;
  border: none;
  padding: 5px 10px;
  color: white;
  border-radius: 5px;
  margin-left: 81%;
}

.accordion-header {
  position: relative;
}

.accordion-header span {
  border: 2px solid #808080;
  border-radius: 5px;
  color: #808080;
  padding: 5px 10px;
  font-weight: lighter !important;
  position: absolute;
  margin-left: 60%;
}

.accordion-item {
  margin-top: 2rem;
  margin-bottom: 2rem;
  border: 1px solid #808080;
  border-radius: 5px;
}

.accordion-button i {
  font-size: larger;
  color: #808080;
  margin-right: 10px;
}

.accordion-collapse {
  width: 100%;
}

.accordion-body a {
  text-decoration: none;
  color: #808080;
  font-weight: 500;
}

.accordion-body strong {
  margin-bottom: 4%;
}

.accordion-body p input {
  margin-left: 50%;
}

.courses {
  justify-content: space-between;
}

/* courses highlights  */
.grades {
  margin-left: 5%;
}

.grades h3 {
  color: #808080;
}

.grades a button {
  display: flex;
  /* justify-content: center; */
  color: #808080;
  padding: 5px 10px;
  font-size: larger;
  text-align: center;
  border: 1px solid #808080;
  width: 90%;
  margin-bottom: 10px;
  font-weight: bolder;
}

.grades a button i {
  color: #808080;
  font-size: larger;
  font-weight: 900;
  margin-left: 20%;
  margin-right: 3%;
}

.highlights h1,
.user-highlight {
  color: #808080;
  border-bottom: 5px solid #808080;
  margin-top: 5%;
}

.underline h4 {
  border-bottom: 5px solid #808080;
  margin-left: 10px;
  color: #808080;
  margin-top: 5%;
}

.imgbg h1,
h2,
h3,
h4,
h5,
h6 {
  color: #808080;
}

.img-bg {
  width: 100%;
}

pre .long-code {
  height: 5vh;
  overflow-y: scroll;
}

.butons {
  margin: 2rem;
  display: flex;
  justify-content: space-between;
}

.btn a:hover {
  color: var(--purewhite-color);
}

.hurray {
  width: 100%;
  color: green;
  display: flex;
  justify-content: center;
  font-size: 2rem;
}

.contimg {
  display: flex;
  justify-content: center;
}

.contimg img {
  width: 60rem;
  height: 40rem;
}

.small img {
  width: 30rem;
  height: 20rem;
}

/* Web Code display */
pre {
  max-height: 20rem;
}

/* Code Wraper */
.code-wrapper {
  position: relative;
}

.code-wrapper pre {
  background-color: #071e3d;
  color: white;
  padding: 8px 20px;
  border-radius: 0 0 5px 5px;
}

#copy-button {
  position: absolute;
  top: 8px;
  right: 8px;
  padding: 7px;
  outline: none;
  color: white;
  font-size: 18px;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.5s ease-in;
  opacity: 0;
  border: 1px solid antiquewhite;
}

#copy-button:active {
  background-color: #423e3e;
}

.code-wrapper:hover #copy-button {
  opacity: 1;
}

/* Table styling */
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td,
th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

tr:nth-child(even) {
  background-color: #dddddd;
}

.search i {
  float: right;
}

.bi-bell {
  border-radius: 50px;
  background-color: darkgrey;
  padding: 2px;
}

/* .bi-search {
  border-radius: 50px;
  background-color: darkgrey;
  padding: 2px;
  position: relative;
  right: 20px;
} */
.trainee {
  background-color: darkgrey;
  position: relative;
  top: 30px;
}

#download {
  position: relative;
  left: 40%;
  bottom: 17%;
  padding-left: 40%;
}

.bi-download {
  border-radius: 50px;
  background-color: white;
  padding: 8px;
}

.scores ul {
  display: flex;
  flex-direction: row;
  list-style: none;
  margin: 0;
  padding: 0;
  justify-content: space-between;
}

.bar {
  border: 1px solid gray;
  border-radius: 10px;
  padding: 5px;
  position: relative;
  right: 2%;
  float: right;
  margin-top: -39%;
}

#high {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid gray;
  border-radius: 10px;
  margin-right: 8%;
  margin-top: 5%;
}

#high h6,
#high p,
#high i {
  margin: 0;
}

.grading h4 {
  margin-top: 5%;
}

#Average {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid gray;
  border-radius: 10px;
  margin-top: 5%;
  max-width: 60%;
}

#Average h6,
#Average p,
#Average i {
  margin: 0;
}

#Mid {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid gray;
  border-radius: 10px;
  margin-right: 10%;
  margin-top: 5%;
  max-width: 60%;
}

#Mid h6,
#Mid p,
#Mid i {
  margin: 0;
}

#Ave {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid gray;
  border-radius: 10px;
  margin-right: 10%;
  margin-top: 5%;
  max-width: 60%;
}

#Ave h6,
#Ave p,
#Ave i {
  margin: 0;
}

#Below {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid gray;
  border-radius: 10px;
  margin-top: 5%;
  max-width: 60%;
}

.prof-image img {
  width: 15rem;
  height: 15rem;
}

#Below h6,
#Below p,
#Below i {
  margin: 0;
}

.trainee h3 {
  margin-bottom: 18%;
}

.student {
  display: flex;
  flex-direction: row;
  margin-top: 15px;
  padding: 40px;
  background-color: white;
}

.buttons {
  margin-left: 39%;
}

.students h5 {
  margin-left: 15%;
  margin-top: -20%;
}

.cohort h5 {
  margin-left: 20%;
  margin-top: -20%;
}

.performance {
  position: absolute;
  max-width: 30%;
  margin-left: 50%;
}

.user-cards {
  display: flex;
  text-align: center;
}

.addStudent {
  width: 50%;
  margin: 0 auto;
  box-shadow: 5px 5px 5px 0.9px #808080;
  justify-content: center;
  align-items: center;
  border-radius: 25px;
  background-color: #d9d9d9;
  text-align: center;
}

.addStudent input {
  border-radius: 5px;
  border: none;
  width: 70%;
  height: 5vh;
  border-bottom: 1px solid #808080;
  text-transform: capitalize;
}

/* Authorization App */
.log {
  background: linear-gradient(360deg, #2841ec 5%, rgba(61, 84, 118, 0) 70%),
    url(/static/Images/LandingPage.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  overflow: hidden;
  width: 100%;
}

.logtitle {
  font-family: var(--secondary-font);
  color: var(--purewhite-color);
  font-size: 1.6em;
  margin-left: 4rem;
}

.logtitle .nav_logo-name1 {
  font-family: var(--secondary-font);
  font-size: 1.2em;
}

.logp {
  font-family: var(--secondary-font);
  color: var(--purewhite-color);
  font-size: 2.5em;
  margin-top: 5rem;
  margin-left: 25%;
}

.logp span {
  font-family: var(--secondary-font);
  color: var(--logo-color);
}

.loginfo {
  color: var(--purewhite-color);
  display: flex;
  font-size: 1.5em;
  justify-content: center;
  align-items: center;
}

.loginfo span {
  color: var(--logo-color);
}

.vl {
  border-left: 0.5rem solid var(--purewhite-color);
  height: 2em;
  margin: 0 1vw;
}

/* Login Form */
.login-card {
  background-color: transparent;
  padding: 40px;
  border-radius: 12px;
  max-width: 450px;
  width: 100%;
  margin: 50px auto;
  box-sizing: border-box;
}

form {
  display: flex;
  flex-direction: column;
}

.input-fieldset {
  border: 1px solid rgba(255, 255, 255, 0.4);
  border-radius: 0.25rem;
  padding: 10px 15px 5px 15px;
  margin-bottom: 25px;
  background-color: transparent;
  position: relative;
}

.input-fieldset:focus-within {
  border-color: #86b7fe;
  box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.input-fieldset legend {
  color: var(--purewhite-color);
  font-size: 1em;
  padding: 0 5px;
  background-color: transparent;
  margin-left: 10px;
  float: none;
  width: auto;
  max-width: calc(100% - 20px);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.input-group {
  background-color: transparent;
  border: none;
  overflow: visible;
  position: relative;
}

.input-group .form-control {
  background-color: transparent;
  border: none !important;
  outline: none !important;
  height: calc(2.25rem + 2px);
  color: var(--purewhite-color);
  box-shadow: none;
}

.input-group .form-control::placeholder {
  color: var(--purewhite-color);
  opacity: 1;
}

.input-group .form-control::-webkit-input-placeholder {
  color: var(--purewhite-color);
}

.input-group .form-control::-moz-placeholder {
  color: var(--purewhite-color);
  opacity: 1;
}

.input-group .form-control:-ms-input-placeholder {
  color: var(--purewhite-color);
}

.input-group .form-control::-ms-input-placeholder {
  color: var(--purewhite-color);
}

.input-group-text {
  background-color: transparent;
  border: none;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  padding: 0 10px;
  z-index: 2;
  cursor: pointer;
}

.input-group-text i {
  color: var(--purewhite-color);
}

input[type="password"].form-control {
  font-family: 'Arial', sans-serif;
  color: var(--purewhite-color);
}

.btn.btn-primary {
  background-color: #007bff;
  border-color: #007bff;
  padding: 12px 20px;
  font-size: 1.15em;
  font-weight: 600;
  border-radius: 8px;
  color: var(--purewhite-color);
}

.btn.btn-primary:hover {
  background-color: #0056b3;
  border-color: #004085;
}

/* Styles for Django Messages */
.alert-danger {
  background-color: rgba(255, 99, 71, 0.2) !important;
  color: #FF6347 !important;
  border: 1px solid #FF6347 !important;
  border-radius: 8px !important;
  margin-bottom: 15px;
  padding: 10px 15px;
  font-size: 0.9em;
  font-weight: 500;
}

.alert-success {
  background-color: rgba(60, 179, 113, 0.2) !important;
  color: #3CB371 !important;
  border: 1px solid #3CB371 !important;
  border-radius: 8px !important;
  margin-bottom: 15px;
  padding: 10px 15px;
  font-size: 0.9em;
  font-weight: 500;
}

.alert-warning {
  background-color: rgba(255, 215, 0, 0.2) !important;
  color: #343a40;
  border: 1px solid #343a40 !important;
  border-radius: 8px !important;
  margin-bottom: 15px;
  padding: 10px 15px;
  font-size: 0.9em;
  font-weight: 500;
}

.alert-info {
  background-color: rgba(100, 149, 237, 0.2) !important;
  color: #6495ED !important;
  border: 1px solid #6495ED !important;
  border-radius: 8px !important;
  margin-bottom: 15px;
  padding: 10px 15px;
  font-size: 0.9em;
  font-weight: 500;
}

/* Styles for pop-up error messages above input fields */

.input-group-relative {
  position: relative;
}

.input-group-relative .invalid-feedback {
  position: absolute;
  top: -30px;
  left: 0;
  z-index: 10;
  background-color: rgba(255, 99, 71, 0.9);
  color: white;
  padding: 5px 10px;
  border-radius: 5px;
  font-size: 0.8em;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}

.input-group-relative .form-control.is-invalid+.invalid-feedback {
  opacity: 1;
}

.input-group-relative .form-control:focus.is-invalid+.invalid-feedback {
  opacity: 1;
}

.form-control.is-invalid {
  border-color: #FF6347 !important;
  box-shadow: 0 0 0 0.25rem rgba(255, 99, 71, 0.9) !important;
}

/* Cards Styling */
.card1 {
  position: relative;
  height: 400px;
  width: 100%;
  margin: 10px 0;
  transition: ease all var(--primary-trans);
  perspective: 1200px;
}

.card1:hover .cover {
  transform: rotateX(0deg) rotateY(-180deg);
}

.card1:hover .cover:before {
  transform: translateZ(30px);
}

.card1:hover .cover:after {
  background-color: black;
}

.card1:hover .cover h1 {
  transform: translateZ(100px);
}

.card1:hover .cover .cardl {
  transform: translateZ(60px);
}

.card1:hover .cover a {
  transform: translateZ(-60px) rotatey(-180deg);
}

.cover {
  position: absolute;
  height: 100%;
  width: 100%;
  transform-style: preserve-3d;
  transition: ease all var(--primary-trans);
  background-repeat: no-repeat;
}

.cover:before {
  content: "";
  position: absolute;
  border: 5px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.3);
  top: 20px;
  left: 20px;
  right: 20px;
  bottom: 20px;
  z-index: 2;
  transition: ease all var(--primary-trans);
  transform-style: preserve-3d;
  transform: translateZ(0px);
}

.cover:after {
  content: "";
  position: absolute;
  top: 0px;
  left: 0px;
  right: 0px;
  bottom: 0px;
  z-index: 2;
  transition: ease all var(--primary-trans);
  background: rgba(0, 0, 0, 0.4);
}

.cover h1 {
  font-weight: 600;
  position: absolute;
  bottom: 55px;
  left: 25px;
  color: white;
  transform-style: preserve-3d;
  transition: ease all var(--primary-trans);
  z-index: 3;
  font-size: 2vw;
  transform: translateZ(0px);
}

.cover .cardl {
  font-weight: 200;
  position: absolute;
  top: 55px;
  right: 50px;
  color: white;
  transform-style: preserve-3d;
  transition: ease all var(--primary-trans);
  z-index: 4;
  font-size: 2em;
  transform: translateZ(0px);
}

.item-a {
  background-position: center center;
  background: linear-gradient(to left,
      rgba(40, 65, 236, 0.5),
      rgba(40, 65, 236, 0.5)),
    url(/static/Images/welcome-6520500.png);
  background-repeat: no-repeat;
  background-size: contain;
}

.item-b {
  background-position: center center;
  background: linear-gradient(to left,
      rgba(40, 65, 236, 0.5),
      rgba(40, 65, 236, 0.5)),
    url(/static/Images/Linux.png);
  background-repeat: no-repeat;
  background-size: contain;
}

.item-c {
  background-position: center center;
  background: linear-gradient(to left,
      rgba(40, 65, 236, 0.5),
      rgba(40, 65, 236, 0.5)),
    url(/static/Images/Terminal.png);
  background-repeat: no-repeat;
  background-size: contain;
}

.card-back {
  position: absolute;
  height: 100%;
  width: 100%;
  background: var(--first-color);
  transform-style: preserve-3d;
  transition: ease all var(--primary-trans);
  transform: translateZ(-1px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.card1 a {
  transform-style: preserve-3d;
  transition: ease transform var(--primary-trans), ease background 0.5s;
  transform: translateZ(-1px) rotatey(-180deg);
  background: transparent;
  border: 1px solid white;
  font-weight: 200;
  font-size: 1.3em;
  color: white;
  padding: 14px 32px;
  outline: none;
  text-decoration: none;
}

.card1 :hover {
  color: var(--logo-color);
}

/* Accounts Settings */
.main-body {
  padding-top: 2rem;
}

/* Modal styling  */
body.modal-open {
  padding: 0px !important;
  margin: 0px !important;
  overflow: hidden !important;
}

.header.modal-open,
.l-navbar.modal-open {
  padding-right: 17px;
}

.modal-backdrop.show+.container {
  filter: blur(5px);
  transition: filter 0.3s ease-out;
}

.modal-backdrop,
.modal {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100vw !important;
  height: 100vh !important;
}

/* Custom CSS for AJAX success message */
#ajax-message-container {
  position: fixed;
  top: 2rem;
  left: 10rem;
  z-index: 1100;
  width: 90%;
  opacity: 0;
  transition: opacity 0.5s ease-in-out;
}

#ajax-message-container.show {
  opacity: 1;
}

/* Inbox Styling */
.list-group-item-action {
  color: var(--first-color);
}

.chat-online {
  color: #34ce57;
}

.chat-offline {
  color: #e4606d;
}

.chat-messages {
  display: flex;
  flex-direction: column;
  max-height: 800px;
  overflow-y: scroll;
}

.chat-message-left,
.chat-message-right {
  display: flex;
  flex-shrink: 0;
}

.chat-message-left {
  margin-right: auto;
}

.chat-message-right {
  flex-direction: row-reverse;
  margin-left: auto;
}

.py-3 {
  padding-top: 1rem !important;
  padding-bottom: 1rem !important;
}

.px-4 {
  padding-right: 1.5rem !important;
  padding-left: 1.5rem !important;
}

.flex-grow-0 {
  flex-grow: 0 !important;
}

.border-top {
  border-top: 1px solid #dee2e6 !important;
}

/* Table numbering styling */
.sub {
  counter-reset: step;
  position: relative;
}

.sub td:first-child:before {
  counter-increment: step;
  content: counter(step, decimal);
  color: blue;
  position: absolute;
  left: -16px;
}

/* styles for the animated notifications  */
.toast {
  position: absolute;
  top: .5rem;
  width: 20rem;
  border-radius: 12px;
  background: #fff 0.1;
  padding: 20px 35px 20px 25px;
  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1);
  border-left: 6px solid #28a745;
  overflow: hidden;
  transform: translateX(calc(100% - 15rem));
  transition: all 0.1s cubic-bezier(0.68, -0.55, 0.265, 1.35);

}

.toast.show {
  opacity: 1;
  visibility: visible;
  transition-delay: 0s;
}

.toast.active {
  transform: translateX(0%);
}

.toast-content {
  display: flex;
  align-items: center;
}

.check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 27px;
  background-color: #28a745;
  color: #fff;
  font-size: 20px;
  border-radius: 50%;
}

.message {
  display: flex;
  flex-direction: column;
  margin: 0 20px;
}

.text {
  font-size: 20px;
  font-weight: 400;
  color: #666666;
}

.text-1 {
  font-weight: 600;
  color: #333;
}

.text-2 {
  font-size: 14px;
}

.close {
  position: absolute;
  top: 10px;
  right: 15px;
  padding: 5px;
  cursor: pointer;
  opacity: 0.7;
  color: #ff0000;
}

.close:hover {
  opacity: 1;
}

.progress {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  width: 100%;
  background: #ddd;
}

.progress:before {
  content: "";
  position: absolute;
  bottom: 0;
  right: 0;
  height: 100%;
  width: 100%;
  background-color: #28a745;
  transition: width 0.5s ease-in-out;
}

.progress.active:before {
  animation: progress 3s linear forwards;
}

@keyframes progress {
  100% {
    right: 100%;
  }
}