@font-face {
  font-family: Open_Sans;
  src: url(fonts/OpenSans-VariableFont_wdth\,wght.ttf);
}

html{
  min-height:100%;
}

#theHeader,
#copyright,
#api_custom_date,
#cant_manage_api,
#retrieves_keyapi,
.template-section,
.template-api,
.api_name_edit {
  display:none;
}

.api-hide {
  display: none !important;
}

#theIdentificationPage,
#theRegisterPage,
#thePasswordPage,
#theProfilePage{
  width:100%;
  height:100%;
  min-height:100vh;
  margin:0;
  font-family: 'Open_Sans', sans-serif;
}

#theIdentificationPage #the_page,
#theRegisterPage #the_page,
#thePasswordPage #the_page,
#theProfilePage #the_page{
  min-height:100vh;
  height:100%;
}

#mode{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:100vh;
  overflow-y:auto;
  max-width:100vw;
  overflow-x:hidden;
}

#login-form,
#register-form,
#password-form,
.profile-section{
  border-radius:15px;
  max-width:400px;
  width:75%;
  margin:0 auto;
  margin-top:50px;
  box-shadow: 0px 4px 10px 0px rgba(0, 0, 0, 0.15);
  padding:50px;
}

#logo-section{
  max-width:300px;
  margin:0 auto;
  padding-top:50px;
}

#logo-section h1{
  margin:0;
}

#logo-section img{
  width: 100%;
  min-width: 300px;
  max-height: 200px;
  object-fit: contain;
}

h1{
  font-size: 30px;
  font-weight: 400;
  margin:0;
  margin-bottom:30px;
  text-align:center;
}

h1 i{
  margin:10px;
}

#login-form form,
#register-form form,
#password-form form{
  display:flex;
  justify-content:center;
  flex-direction:column;
}

#password-form p,
.profile-section p{
  text-align:center;
  font-size:15px;
  font-weight:500;
  margin:0;
}

#password-form .error-message{
  bottom:0;
}

.input-container,
.input-modal {
  border-radius:3px;
  padding:5px 15px;
  margin-bottom:25px;
  flex-wrap:nowrap;
}

.input-container input,
.input-modal input,
.input-container select,
.input-container textarea{
  background-color:transparent;
  border:none;
  width:100%;
  line-height:25px;
} 

.input-container textarea {
  resize: none;
}

input:-webkit-autofill {
  background-color: transparent !important;
  color: inherit !important;
}

input:-webkit-autofill::first-line {
  color: inherit !important;
}

.input-container input:focus,
.input-modal input:focus,
.profile-section .api-tab-line.edit input:focus,
.input-container select:focus,
.input-container textarea:focus{
  border:none;
  outline:none;
}

select {
  padding: 5px 0;
}

.input-container i,
.input-modal i {
  font-size:15px;
  margin-right:5px;
}

.column-flex{
  display:flex;
  flex-direction:column;
  position:relative;
}

.row-flex{
  display:flex;
  flex-direction:row;
  align-items:center;
}

.remember-me-container {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-family: 'Open_Sans', sans-serif;
  font-size: 16px;
  margin-bottom:5px;
  margin-left:20px;
}

.gallery-icon-checkmark {
  width: 18px;
  height: 18px;
  border-radius: 2px;
  display: inline-block;
  margin-right: 8px;
  line-height: 18px;
  font-size: 14px;
}

.remember-me-container:hover label{
  cursor:pointer;
}

.gallery-icon-checkmark::before {
  opacity: 0;
}

input[type="checkbox"]#remember_me {
  display: none;
}

input[type="checkbox"]#remember_me:checked + label ~ .gallery-icon-checkmark::before,
input[type="checkbox"]#remember_me:checked + .gallery-icon-checkmark::before {
  opacity: 1;
  font-size: 12px;
  margin: 2px;
  vertical-align: text-top;
}

label{
margin-bottom:5px;
font-size:15px;
font-weight:700;
}

p.form-instructions{
  padding-bottom:25px;
}
 
.btn-main{
  border:none;
  padding:15px;
  margin-top:15px;
  cursor:pointer;
  text-decoration:none!important;
}

.btn-cancel,
.btn-link {
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  height: fit-content;
}

.btn-link {
  text-decoration: underline;
  margin-top: 15px;
}

a.btn-main{
  display:block;
  text-align:center;
}

.btn-main:disabled {
  cursor: not-allowed;
}

#return-to-gallery{
  margin: 30px auto;
  display:block;
  width:fit-content;
}

.secondary-links{
  margin-top:40px;
  text-align:center;
}

#theIdentificationPage a,
#theRegisterPage a,
#thePasswordPage a,
#theProfilePage a{
  text-decoration:underline;
}

#theIdentificationPage a:hover,
#theRegisterPage a:hover,
#thePasswordPage a:hover,
#theProfilePage a:hover{
  border-bottom:none;
}

#separator{
  width:300px;
  display:block;
  margin: 15px auto;
}

#header-options{
  position:fixed;
  width:100%;
  display:flex;
  justify-content: space-between;
  font-size:15px;
}

#header-options > *{
  padding:15px;
}

#theIdentificationPage #header-options .toggle-mode,
#theProfilePage #header-options .toggle-mode{
  cursor:pointer;
}

.gallery-icon-sun{
  display:none;
}

.gallery-icon-eye{
  cursor:pointer;
}

#language-switch{
  display:flex;
  justify-content: flex-end;
  font-size:15px;
  position: fixed;
  right: 0;
  bottom: 0;
}

#lang-select{
  width:fit-content;
  position:relative;
}

#selected-language-container{
  padding:15px;
}

#lang-select #other-languages{
  display:none;
  border-radius: 5px;
  padding: 15px;
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
  margin-right:11px;
  width:max-content;
  position:absolute;
  bottom:40px;
  right:0;
  max-height:50vh;
  overflow:auto;
}

#lang-select #other-languages span{
  text-decoration:none;
  display:block;
  padding:5px 0;
}

#lang-select #other-languages span:hover{
  cursor:pointer;
}

#lang-select:hover #other-languages{
  display:block;
}

#lang-select .gallery-icon-left-chevron:before{
  rotate: 90deg;
}

#selected-language{
  margin-left:5px;
  text-decoration:underline;
}

.success-message,
.infos-message {
  width: calc(100% - 34px);
  display: block;
  padding: 15px;
  margin-bottom:15px;
  font-weight:700;
}

.error-message{
  text-align: left;
  position: absolute;
  bottom: 5px;
  left:0;
  margin: 0;
  display:none;
}

#error_api_key_date.error-message {
  bottom: -20px;
}

.error-message i,
p.error-message,
.modal-secret {
  color: #EB3223!important;
}

.error_block_container {
  position: absolute;
  right: 15px;
  max-width: 300px;
  top:40px;
}

.error_block {
  display:flex;
  background-color:#BE4949;
  border-radius:5px;
  color:#FFC8C8;
  padding:15px;
  position:relative;
  align-items:center;
}

.error_block p{
  margin:0;
}

.error_block .gallery-icon-cancel:before{
  font-size:33px;
  margin-left:0;
  margin-right:15px;
}

#password-form p.intro-paragraph{
  margin-bottom:15px;
}

.profile-section {
  width: 100%;
  max-width: 700px;
  margin-top: 0;
  margin-bottom: 25px;
}

#account-section {
  margin-top: 25px;
}

.profile-section .title {
  position: relative;
}

.profile-section .title p {
  margin-bottom: 10px;
}

.profile-section .form {
  margin-top: 0;
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.6s ease;
}

.profile-section .form.open {
  overflow: hidden;
}

.profile-section .reset {
  display: flex;
  justify-content: space-between;
  /* gap: 15px; */
}

.profile-section .save,
.profile-section .new-apikey,
.profile-section .modal-input-keys {
  display: flex;
  gap: 15px;
  justify-content: flex-end;
  align-items: center;
} 

.profile-section .modal-input-keys {
  position: absolute;
  right: 30px;
}

.profile-section .save .btn-main,
.profile-section .new-apikey .btn-main,
.profile-section .reset .btn-main {
  padding: 10px 35px;
}

.profile-section h1 {
  margin-bottom: 10px;
}

.gallery-icon-up-open:not(
  .api-list .gallery-icon-up-open, 
  #api_key_list_expired .gallery-icon-up-open
) {
  position: absolute;
  top: 50%;
  cursor: pointer;
  right: 0;
  transition: transform 0.5s ease;
}

.gallery-icon-up-open.close,
.profile-section .icon-collapse.close {
  position: relative;
  transform: rotate(180deg);
}

.profile-section .api-icon-collapse .icon-collapse.close {
  top: 2px;
  left: -0.2px;
}

.profile-section .icon-collapse {
  display: inline-block;
  transition: transform 0.4s;
  vertical-align: middle;
}

.profile-section .username {
  width: fit-content;
  cursor: not-allowed;
  background-color: transparent !important;
  border: none !important;
}

.profile-section .input-container.radio,
.profile-section .section-expiration,
.profile-section .api-icon-action   {
  gap: 10px;
}

.profile-section .api-icon-action {
  padding-right: 10px;
  font-size: 14px;
}

.profile-section .input-container.radio label {
  display: flex;
  align-items: center;
  margin-bottom: 0;
  padding: 5px 0;
  gap: 5px;
  cursor: pointer;
}

.profile-section .preferences-options {
  gap: 20px;
  padding: 20px;
  margin-top: 5px;
}

.profile-section .preferences-options .option {
  gap: 15px;
}

.profile-section .api-tab {
  display: grid;
  grid-template-columns: 60px 2fr 1fr 1fr 1fr 0.5fr;
  /* grid-template-columns: 60px 200px 100px 100px 100px 30px; */
  justify-items: start;
  align-items: center;
  max-height: 40px;
}

.profile-section .api-list-head {
  padding: 15px 0;
  border-radius: 8px;
  margin-top: 15px;
}

.profile-section .api-expiration {
  width: fit-content;
  margin-bottom: 0;
}

.profile-section .api-mail-infos {
  position: relative;
  font-size: 12px;
  padding-top: 20px;
  margin-bottom: 25px;
  text-align: start;
}

.profile-section .api-icon-collapse {
  justify-self: center;
}

.profile-section .api-tab-line,
.profile-section .api-tab-collapse {
  padding: 10px 0;
  border-radius: 8px;
  white-space: nowrap;
}

.profile-section .api-tab-line.open {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.profile-section .api-tab-collapse.open {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.profile-section .api-tab-line i:not(#api_key_list_expired, .api_expiration .api-skull),
.profile-section .icon-clone {
  cursor: pointer;
}

.profile-section .api-tab-collapse .key {
  gap: 10px;
  padding: 5px 0;
}

.profile-section .api-tab-collapse {
  padding-bottom: 20px;
  display: grid;
  grid-template-columns: 60px auto;
}

.profile-section .api_name,
.profile-section .api_creation,
.profile-section .api_expiration {
  text-overflow: ellipsis;
  max-width: 90%;
  overflow: hidden;
}

.profile-section #show_expired_list {
  display: none;
}

.profile-section #api_key_list_expired .api_expiration {
  text-overflow: unset;
  max-width: unset;
}

.profile-section #api_key_list .border-line {
  border: 1px solid transparent !important;
}

.profile-section .api-list-head > p{
  text-align: start !important;
}

.profile-section .api_last_use {
  max-width: 98%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.profile-section .api_name_edit {
  width: max-content;
  background-color: transparent;
  border: none;
  border-radius: 3px;
  width: 90%;
}

.profile-section .new-apikey .btn-link{
  font-weight: 700;
}

.profile-section .api-copy {
  padding: 1px 10px;
  width: fit-content;
  font-size: 12px;
}

.profile-section #show_expired_list {
  margin: 15px 0;
}

.profile-section #api_key_list_expired {
  max-height: 0;
  transition: max-height 0.3s ease;
  overflow: hidden;
}

.profile-section .api-info {
  font-size: 12px;
}

.profile-section .api_key
.profile-section #api_id_key,
.profile-section #api_secret_key {
  font-family: monospace !important;
}

.profile-section .display-section {
  cursor: pointer;
}

/* Modal */

.bg-modal {
  display: none;
  position: fixed;
  z-index: 100;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  overflow: auto;
}

.close-modal {
  position: absolute;
  right: -40px;
  top: -40px;
  font-size: 30px;
  text-decoration: none !important;
  cursor: pointer;
}

.body-modal {
  display: flex;
  flex-direction: column;
  position: absolute;
  border-radius: 10px;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -48%);
  text-align: left;
  padding: 30px;
  max-width: 600px;
  width: 100%;
}

#api_modal_revoke .body-modal {
  max-width: 400px;
}

.body-modal .btn-main {
  margin-top: 0;
}

.title-modal {
  font-size: 24px !important;
  font-weight: 600 !important;
}

.subtitle-modal {
  font-size: 16px !important;
  font-weight: 400;
}

.head-modal {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 5px;
}

#generate_keyapi .head-modal,
#api_modal_edit .head-modal,
#api_modal_revoke .head-modal {
  margin-bottom: 25px;
}

.input-modal-id {
  margin-top: 25px;
  margin-bottom: 5px;
}

.input-modal-key {
  margin-top: 30px;
}

/* The switch */
.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 24px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

label.switch {
  margin-bottom: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  -webkit-transition: .4s;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 16px;
  width: 16px;
  left: 4px;
  bottom: 4px;
  -webkit-transition: .4s;
  transition: .4s;
}

input:checked + .slider:before {
  -webkit-transform: translateX(26px);
  -ms-transform: translateX(26px);
  transform: translateX(26px);
}

input:checked + .slider:before, input:checked + .slider::after {
  margin-left: 10px;
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

/* Tooltips */
[data-tooltip]:hover::after {
    position: absolute;
    content: attr(data-tooltip);
    animation: fadeIn 100ms cubic-bezier(0.42, 0, 0.62, 1.32) forwards;
    animation-delay: 100ms;
    border-radius: 5px;
    max-width: min(250px, calc(100vw - 20px));
    width: max-content;
    white-space: normal;
    word-wrap: break-word;
    text-align: center;
    font-size: 12px;
    padding: 5px 10px;
    box-shadow: 0px 10px 33px #3333332e;
}

[data-tooltip].tooltip-flip:hover::after {
    left: auto;
    right: 5px;
}

/*Responsive display*/
@media only screen and (max-width: 768px) {
  #login-form, #register-form, #password-form, .profile-section{
    max-width:300px;
    width:50vw;
  }

  #separator{
    width:100%;
  }

  #language-switch{
    position:unset;
  }
}