:root {
  --main-color: #c9433b;
  --background-page: #f5f5f5;
  --background-container: #ffffff;
  --text-color: #5a5a5a;
  --border-color: #dcdcdc;
  --border-radius: 12px;
  --unselected-background: #f1f1f1;
  --unselected-color: #ababab;
  --constrast-color: #ffffff;
  --title-color: #000000;

  --fc-small-font-size: 0.85em;
  --fc-page-bg-color: #fff;
  --fc-neutral-bg-color: hsla(0, 0%, 82%, 0.3);
  --fc-neutral-text-color: grey;
  --fc-border-color: #ddd;
  --fc-button-text-color: var(--main-color);
  --fc-button-bg-color: var(--background-container);
  --fc-button-border-color: #2c3e50;
  --fc-button-hover-bg-color: var(--unselected-background);
  --fc-button-hover-border-color: #1a252f;
  --fc-button-active-bg-color: var(--unselected-background);
  --fc-button-active-border-color: #151e27;
  --fc-event-bg-color: #3788d8;
  --fc-event-border-color: #3788d8;
  --fc-event-text-color: #fff;
  --fc-event-selected-overlay-color: rgba(0, 0, 0, 0.25);
  --fc-more-link-bg-color: #d0d0d0;
  --fc-more-link-text-color: inherit;
  --fc-event-resizer-thickness: 8px;
  --fc-event-resizer-dot-total-width: 8px;
  --fc-event-resizer-dot-border-width: 1px;
  --fc-non-business-color: hsla(0, 0%, 84%, 0.3);
  --fc-bg-event-color: #8fdf82;
  --fc-bg-event-opacity: 0.3;
  --fc-highlight-color: rgba(188, 232, 241, 0.3);
  --fc-today-bg-color: rgba(255, 220, 40, 0.15);
  --fc-now-indicator-color: red;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: Poppins, sans-serif;
}

:has(#mobileMenu.active) body {
  overflow: hidden;



  main {
    pointer-events: none;
  }
}

h1,
h2,
h3 {
  color: var(--title-color);
}

p {color: var(--text-color)}
h1#titulomapa{
    position:absolute;
    padding:1rem;
    transition:font-size 0.3s;
    
    span {
        display: block;
    font-size: 0.8rem;
    font-weight: 400;
    margin-top: -6px;
    color: var(--text-color);
    
    b {color: var(--main-color); cursor:pointer}
    }
}

.wrapper {
    max-inline-size: 1280px;
    margin-inline: auto;
    padding:1em;
    display: grid;
    gap: .625rem;
    z-index: 99;
}

.hidden {
  display: none;
}

button {
  touch-action: manipulation !important;
}

button svg,
a svg {
  pointer-events: none;
}

body {
  background-color: var(--background-page);
}

#mobileMenu {
  display: none;

  svg {
    display: block;
    pointer-events: none;
  }

  [data-state="expanded"] {
    display: none;
  }

  &.active [data-state="expanded"] {
    display: block;
  }

  &.active [data-state="expand"] {
    display: none;
  }
}

header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  z-index: 20;

  img {
    width: 10em;
    padding-inline: 1rem;
  }

  p {
    flex: 1;
    text-align: right;
    align-self: center;
  }

  button {
    font-size: 0.8em;
    padding: 0.5rem 1rem;
    background: transparent;
    border: 0;
    border-radius: 0;
  }

  form {
    display: flex;
    align-items: center;

    button {
      transition: all 0.3s ease;
      color: var(--main-color);

      &:hover {
        background: var(--main-color);
        color: #fff;
      }
    }
  }

  > ul {
    display: flex;
    list-style-type: "";
    gap: 2rem;
    align-items: center;

    li a {
      text-decoration: none;
      color: var(--title-color);
      font-weight: 600;
      display: flex;
      width: 100%;
      align-items: center;
      justify-content: start;
      gap: 0.625rem;

      &:hover {
        color: var(--main-color);
      }
    }
  }

  a.activ {
    color: var(--main-color);
  }
}

main.calendar-page,
main.combo-app {
    max-width:2550px;
    margin:auto;
  padding: 1rem;
  display: grid;
  grid-template-columns: 1fr 300px;
  grid-template-rows: auto 1fr;
  gap: 1rem;
  height: 100vh;
  max-height: calc(100vh - 55px);
  position: relative;

  grid-template-areas:
    "calendar filters"
    "calendar filters";
    

  .calendar {
    grid-area: calendar;

    &.fc-theme-standard .fc-scrollgrid {
      border: 0px;
    }
    &.fc .fc-view-harness {
      background: var(--background-container);
      border-radius: var(--border-radius);
      border: 1px solid var(--border-color);
    }

    &.fc .fc-multimonth {
      border: 0;
    }

    .fc-header-toolbar {
      display: flex;
      flex-direction: row-reverse;
      justify-content: flex-start;
      margin-bottom: 1rem;

      > div {
        background-color: var(--background-container);

        &:nth-child(1) {
          border-top-right-radius: var(--border-radius);
          border-bottom-right-radius: var(--border-radius);
          border: 1px solid var(--border-color);
        }

        &:nth-child(3) {
          border-top: 1px solid var(--border-color);
          border-bottom: 1px solid var(--border-color);
          border-top-left-radius: var(--border-radius);
          border-bottom-left-radius: var(--border-radius);
          overflow: hidden;

          > div {
            margin-left: 0;
          }

          > button {
            padding: 13.2px 20px 13.2px 20px;
            border-right: 1px solid var(--border-color);
            border-radius: 0;
          }

          button {
            outline: 0;
            padding: 13px;
          }

          button:focus {
            outline: 0;
            box-shadow: none;
          }
        }
      }

      .fc-toolbar-title {
        font-size: 1.2rem;
        padding: 11px 20px;
      }

      button {
        border: 0;
      }
    }
  }

  .title {
    margin-top: 1px;
    z-index: 10;
    position: absolute;
    width: calc(100% - 585px);
    padding: 1rem;
    top: 0;
    left: 0;
  }

  .daysleft {
      display:none;
    grid-area: daysleft;
  }

  .filters {
    grid-area: filters;
    /*overflow-y:scroll;*/
    .checkbox-container {
      padding: 0.75rem;
      border-bottom: 1px solid var(--border-color);
    }
    .searchContainer input{
        border-top:none;
        border-radius:0;
        border-left:none;
        border-right: none;
        
    }
  }
}
main.combo-app.editablecalendar{
  grid-template-areas:
    "calendar daysleft"
    "calendar filters";
}
.login-wrapper {
  display: grid;
  grid-template-columns: minmax(600px, 1fr) minmax(100px, 1fr);
  min-height: 100vh;
  max-width: 1500px;
}

.login-container {
  background-color: var(--background-container);
  padding: 4rem;
  display: flex;
  flex-direction: column;
  place-content: center;
  gap: 2em;

  .company-logo {
    width: 12em;
    margin: 2rem auto;
  }

  .authOption-select {
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    display: flex;
    display:none;
    justify-content: space-between;
    overflow: hidden;

    .authOption {
      flex: 1;
      font-size: 1rem;
      font-weight: 700;
      text-align: center;
      background-color: var(--unselected-background);
      color: var(--unselected-color);
      cursor: pointer;
      transition: color 300ms;

      input {
        display: none;
      }

      label {
        display: block;
        width: 100%;
        padding: 0.75rem;
        cursor: pointer;
      }

      &:hover:not(.active) {
        color: var(--main-color);
      }

      &:has(input:checked) {
        background-color: initial;
        color: initial;
        cursor: initial;
      }
    }
  }

  .form-container form {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1em;

    .hint {
      text-align: center;
      opacity: 0.7;
      font-size: 0.9em;
    }
  }
}

#containerLogin,
#containerRegist {
  display: none;
}

.login-container:has(#login:checked) #containerLogin {
  display: block;
}

.login-container:has(#signup:checked) #containerRegist {
  display: block;
}

label:has(input[type="text"], input[type="password"], input[type="email"], select[data-type="team"]),
form div:has(select[data-type="team"]) {
  position: relative;
  &::after {
    content: "";
    background-repeat: no-repeat;
    background-size: auto;
    background-position: center;
    height: 2em;
    width: 2em;
    top: 8px;
    left: 10px;
    position: absolute;
    z-index: 10;
    display: block;
  }
}

label:has(input[data-type="email"])::after {
  background-image: url(../media/jobdpiud/email-icon.svg);
  opacity: 0.9;
}

label:has(input[data-type="password"])::after {
  background-image: url(../media/5bzpubtw/password-icon.svg);
  opacity: 0.9;
}

label:has(input[data-type="name"])::after {
  background-image: url(../media/pkfnmanc/name-icon.svg);
  opacity: 0.9;
}

div:has(select[data-type="team"])::after {
  background-image: url(../media/gzsgzl1y/team.svg);
  opacity: 0.9;
}

input[type="text"],
input[type="password"],
input[type="email"],
select,
.disabledprops{
  font-size: 1rem;
  font-weight: 700;
  width: 100%;
  padding: 0.75rem;
  padding-left: 3rem;
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
}
p.disabledprops{
    color:var(--fc-neutral-text-color);
}

select:required:invalid {
  color: gray;
}

option[value=""][disabled] {
  display: none;
}

option {
  color: black;
}

.checkbox-container {
  font-size: 3rem;
  font-weight: 700;
  padding: 0.75rem 0;
  display: grid;
  grid-template-columns: 1em auto;
  align-items: center;
  input {
    height: 1.2rem;
    width: 1.8rem;
    accent-color: var(--main-color);
  }
  span {
    font-size: 0.85rem;
    font-weight: 500;
  }
}

button {
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
  padding: 0.75rem;
  font-size: 1rem;
  font-weight: 700;
  background-color: var(--main-color);
  color: var(--constrast-color);
}

.media-container {
  align-self: center;
  justify-self: center;
  display: flex;
  justify-content: center;
  align-items: center;

  img {
    width: 80%;
  }
}

.remainingDays {
  background: var(--background-container);
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0.6rem 1rem;
  gap: 1em;
  border-radius: var(--border-radius);
  border: 1px solid var(--border-color);

  span:nth-child(2) {
    flex: 1;
    font-weight: 600;
  }

  span:nth-child(3) {
    font-weight: 700;
    color: var(--main-color);
    margin-right: 0.5rem;
  }
}

details summary::-webkit-details-marker {  display:none;}


.filters {
  background-color: var(--background-container);
  border: 1px solid var(--border-color);
  border-radius: var(--border-radius);
  overflow: hidden;

  form {
    overflow-y: scroll;
    height: auto;
    max-height: calc(100% - 50px);
    min-height:400px;
    /* width */
    &::-webkit-scrollbar {
      width: .312rem;
    }
    
    /* Track */
    &::-webkit-scrollbar-track {
      background: #f1f1f1; 
    }
     
    /* Handle */
    &::-webkit-scrollbar-thumb {
      background: var(--main-color); 
    }
    
    /* Handle on hover */
    &::-webkit-scrollbar-thumb:hover {
      background: #555; 
    }
  }
}

.container-select {
  display: flex;
  justify-content: space-between;

  border-bottom: 1px solid var(--border-color);

  > .option {
    flex: 1;

    label {
      display: block;
      width: 100%;
      text-align: center;
      padding: 0.75rem;
      background-color: var(--unselected-background);
      color: var(--unselected-color);
      font-weight: 700;
      cursor: pointer;
    }

    input[type="radio"] {
      display: none;

      &:checked + label {
        background-color: var(--background-container);
        color: var(--main-color);
      }
    }
  }
}

.title > form {
  display: flex;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}

.title > form > *:not(button, h1) {
  display: none;
}

@media screen and (min-width: 1600px) {
      body:has(.login-container) {
        display: grid;
        place-items: center;
        height: 100vh;
    
            .login-wrapper {
              min-height: auto;
                .login-container {
                    border-radius: var(--border-radius);
                }
            }
        }
        
}

@media screen and (max-width: 1300px) {
    h1#titulomapa{
        font-size: 1.6rem;
    }
}
@media screen and (max-width: 1200px) {
    h1#titulomapa{
        font-size: 1.2rem;
    }
}
@media screen and (max-width: 1100px) {
    h1#titulomapa{
            display:none;
        }
  #mobileMenu {
    display: block;
    z-index: 20;
    color: var(--main-color);
    &:hover{
      background-color: transparent;
      color:var(--main-color);
    }
  }

  form > h1 {
    z-index: 1;
  }

  header {
    position: sticky;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 20;
    background-color:var(--background-page);
    /*background: hsl(0deg 0% 96.08% / 0.5);
    backdrop-filter: blur(3px);
    */
    /*box-shadow: 0 0 25px hsl(0 0% 0% / 0.25);*/
    border-bottom: 1px solid var(--border-color);
    
  }

  header > ul {
    position: absolute;
    left: 0;
    width: 100%;
    translate: -100% 0;
    flex-direction: column;
    background-color: #eaeaeaef;
    padding: 3em;
    gap: 0;
    transition: translate 0.25s ease-in-out;
    height: 100vh;
    height: 100lvh;
    font-size: 1.25rem;

    li {
      width: 100%;
    }

    a {
      padding: 1rem 0;
      display: flex;
      width: 100%;
      align-items: center;
      justify-content: space-between;
    }
  }

  main {
    /*padding-top: 4rem;*/
  }

  /* Toggle menu */
  header:has(.active) ul {
    translate: 0 0;
  }

  .login-wrapper {
    grid-template-columns: 1fr;
  }

  .media-container {
    display: none;
  }

  main.calendar-page,
  main.combo-app {
    padding-top: 1rem;
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
      "title title"
      "calendar daysleft"
      "calendar filters";

    .calendar {
      .fc-header-toolbar {
        justify-content: flex-end;
      }
    }

    .title {
      width: 100%;
      padding: 0;
      position: initial;
      grid-area: title;
    }
  }
}

@media screen and (max-width: 700px), (max-height: 500px) {
  .login-wrapper {
    .login-container {
      padding: 2rem;
    }
    h1 {
        color: black;
        margin-bottom: 0.5rem;
        text-align:center;
    }
    p {
        color: var(--text-color);
        font-size: 0.9rem;
        text-align:center;
    }
  }

  main.calendar-page,
  main.combo-app {
    & .calendar {
      &.fc .fc-view-harness {
        font-size: 0.75rem;
      }
    }
  }

  main.calendar-page,
  main.combo-app {
    height: auto;
    max-height: none;
    grid-template-columns: 1fr;
    grid-template-rows: minmax(55vh, 400px) auto auto auto;
    grid-template-areas:
      "calendar"
      "daysleft"
      "title"
      "filters";

    padding-block: 1rem;

    .fc .fc-scroller-liquid-absolute {
      overflow: hidden !important;
    }

    .calendar .fc-header-toolbar {
      justify-content: space-between;

      .fc-toolbar-title {
        font-size: 0.8rem;
        height: 2.7rem;
      }

      & > div {
        &:nth-child(1) {
          border-radius: var(--border-radius);
        }

        &:nth-child(3) {
          border-radius: var(--border-radius);
          border-right: 1px solid var(--border-color);

          button {
            padding: 0.6rem;
          }
        }
      }
    }

    .title {
      position: initial;
      grid-area: title;
      width: 100%;
      padding: 0;

      h1 {
        font-size: 1.2rem;
        display: none;
      }

      form button {
        font-size: 0.7rem;
        width: 100%;
      }
    }
  }
}

.header-wrapper {
  max-inline-size: 1440px;
  margin-inline: auto;
}

span.span-aniversarios::before,span.span-aniversarios::after {
    content: " 🎉 ";
}
span.adjectify{
    /*color:red;*/
    display:none;
}
span.adjectify.showme{
    /*color:red;*/
    display:inline;
}
.disabledprops{
    
}

body:has( main.password-reset-page) {
        display: grid;
        place-items: center;
        height: 100vh;
        width: 100vw;
        
        .container {width:max-content}
    }
body:has(main.password-change-page) {
     grid-template-rows: auto 1fr;
}
.container {
    background-color: var(--background-container);
    margin: 1rem;
    padding: 2rem;
    border-radius: var(--border-radius);
    display: grid;
    width: calc(100% - 2rem);
    gap: 0rem;
    
    h1, h2 {
        color: var(--title-color);
        font-size:1.8rem;
    }
    
    p {
        color:var(--text-color);
    }
    
    .message.success {
        color: mediumseagreen;
        padding: 1rem 0rem;
    }
    
    form {
        max-width:500px;
        display:flex;
        flex-direction:column;
        padding-top: 2rem;
        gap: 0.5rem;
        
        label {
            color: var(--text-color);
        }
        
        p {
            font-size:0.75rem;
            padding-bottom: 0.3em;
            
            b {color:var(--main-color)}
        }
        
        input {
        padding-left:0.75rem;
        }
        
        > button {
        margin-top:1rem;
        
        &:disabled {
            background-color:var(--unselected-color);
        }
        }
        
        .message {
            margin-bottom: -1rem;
            .error {
                color: red;
            }
        }
    }
}

.home {
    min-height: calc(100vh - 3rem);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.user-info {
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items: center;
    padding:1rem;
    padding-top:0rem;
    
    svg {
    width: 4rem;
    margin-bottom: 1rem;
    }
    
    h1 {margin-top: -0.5rem;}
}


.quick-access {
    display:flex;
    flex-wrap: wrap;
    max-width: 1200px;
    
    a.container{
        flex: 1 0 160px;
        justify-content: flex-start;
        align-items: flex-start;
        display: flex;
        flex-direction: column;
        text-decoration:none;
        transition: transform 300ms ease;
        
        &:hover {
            transform:scale(1.05);
            
            svg, h3 {color: var(--main-color);}
        }
        
        svg {
            color:var(--title-color);
            margin-bottom:1rem;
        }
        
    }
}

.profile {
    display: flex;
    justify-content: center;
    align-items: center;
    > .container {
    max-width:500px;
    }
    form {
        width:100%;
        max-width:500px;
        .container {gap:0.5rem};
        label {color:var(--text-color);}
        input, p.disabledprops {padding-left:0.75rem; font-size:1rem; padding-bottom:0.75rem};
        p.disabledprops {
            background-color: var(--unselected-background);
            min-height:50px;
        }
        button {margin-top: 1rem}
        .date-input {
            width:max-content;
            display:flex;
            flex-direction:column;
            input {max-width:45px; text-align:center}
        }
    } 
}
#profile form {
    padding-top:2rem;
    display:grid;
    grid-template-columns: 45px auto auto 1fr;
    grid-template-areas: 
        'name name name name'
        'email email email email'
        'ramal ramal phone phone'
        'equipa equipa equipa equipa'
        'birthDay birthDaySeparator birthMonth x'
        'submit submit submit submit'
        'password password password password';
        
        div[data-type="name"] {
            grid-area: name;
        }
        
        div[data-type="email"] {
            grid-area: email;
        }
        
        div[data-type="ramal"] {
            grid-area: ramal;
        }
        
        div[data-type="equipa"] {
            grid-area: equipa;
        }
        
        div[data-type="birthDay"] {
            grid-area: birthDay;
            input[type="text"]{
                border-radius:var(--border-radius) 0 0 var(--border-radius);
                border-right:none;
            }
        }
        div[id="birthdayseparator"] {
            grid-area: birthDaySeparator;
            width:0.05em;
            height:100%;
            display:flex;
            flex-direction:column;
            justify-content:space-between;

            #sep1, #sep2{
                font-family:Poppins, sans-serif;
            }
            #sep1{
                margin-left: -20px;
                font-size:1em;
                vertical-align:center;
                padding-bottom:0;
            }
            #sep2{
                font-size:1.3em;
                line-height:2em;
                padding-top:0.2em;
                border-top: 1px solid var(--border-color);
                border-bottom: 1px solid var(--border-color);
                margin-left:-10px;
                padding-bottom:0;
                flex-grow:1;
                
            }
        }
        div[data-type="birthMonth"] {
            grid-area: birthMonth;
            margin-left: -10px;
            label {
            position: relative;
            margin-left: -22px;
            }
            input[type="text"]{
                border-radius: 0px var(--border-radius) var(--border-radius) 0px;
                border-left:none;
                margin-left: -16px;
            }
        }
        
        div[data-type="phoneNumber"] {
            grid-area: phone;
        }
        
        button.btn-primary{
            grid-area: submit;
        }
        
        a.btn-secondary{
            grid-area: password;
        }
        
}

form {
    
    a.btn{
     text-align:center;
     padding: 1rem;
     text-decoration:none;
     color: var(--main-color);
     transition:all 300ms;
     
     &:hover {
        font-weight:bold;
}
    }
}





@media screen and (max-width: 700px), (max-height: 500px) {
    .container,
    body:has( main.password-reset-page) .container{
            place-content: center;
            width: calc(100% - 2rem);
            padding:1.5rem 1rem;
            
        h1 {
            color: var(--title-color);
            font-size: 1.5rem;
            line-height: 2rem;
            margin-bottom: 1rem;
        }
        p {
            color: var(--text-color);
        }
    }
    
    .quick-access {
        margin: 1rem;
        gap: 1rem;
        .container{margin:0; 
            p { font-size: 0.7rem}
        }
        
    } 
    
    }
    
    
body:has(.validation-summary-errors) {
    .validation-summary-errors {
        display:none;
    }
    
    p.alert {color: red; display:block!important}
 
}
    