@charset "UTF-8";

@import url('outergate.css');
@import url('theme.css');
@import url('https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,100..900;1,100..900&display=swap');

body {
  position: relative;
  display: grid;
  height: 100%;
  grid-template-columns: 1fr;
  grid-template-rows: auto 1fr auto;
  min-height: 100vh;
  align-items: center;
  background-color: var(--oar-smoke);
  font-family: "Montserrat", sans-serif;
  font-optical-sizing: auto;
  font-weight: 500;
  font-style: normal;
  font-size: 1em;
  color: var(--oar-darkgray);
  overflow-x: hidden;
}

footer {
  position: sticky;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: var(--default-gap);
  top: 100%;
  width: 100%;
  padding: 1.2em var(--doc-min-padding);
  background-color: var(--oar-white);
}
main {
  display: flex;
  flex-direction: column;
  position: relative;
  min-height: 100%;
  align-self: stretch;
  justify-self: stretch;
  gap: var(--doc-min-padding);
  justify-content: flex-start;
  align-items: center;
  width: 100%;
  padding: var(--doc-min-padding);
  text-align: left;
}
  main > section, .main-section {
    width: 100%;
    position: relative;
    display: grid;
    grid-auto-flow: row;
    grid-auto-columns: 1fr;
    justify-content: center;
    align-items: flex-start;
    align-content: flex-start;
    gap: var(--default-gap);
  }
    main > section > article, .section-article {
      position: relative;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-items: flex-start;
      gap: var(--default-gap);
    }

.back-links {
  display: flex;
  gap: 2em;
  justify-content: flex-start;
  align-items: center;
}
  .back-links a {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    color: var(--oar-midgray);
    transition: color 0.3s;
  }
    .back-links a:hover {
      color: var(--oar-blue);
    }
    .back-links a .material-symbols-outlined {
      font-size: 1em;
    }
.badge-info {
  font-size: 0.8em;
  font-weight: 500;
  font-style: italic;
}
.badge-link {
  position: absolute;
  display: inline-flex;
  bottom: var(--doc-min-padding);
  left: var(--doc-min-padding);
  padding: 0.5em;
  box-sizing: border-box;
  background-color: white;
  border-radius: 0.5em;
  color: var(--oar-midgray);
  align-items: center;
  gap: 0.5em;
}
.classroom-item {
  justify-content: flex-start;
  align-items: flex-start;
  height: 100%;
  padding: var(--doc-min-padding);
  box-sizing: border-box;
}
  .classroom-item h3 {
    font-family: Yorkville, montserrat, sans-serif;
    font-size: 2.5em;
    line-height: 1em;
    margin: 0px;
  }
.doc-width {
  width: var(--doc-width);
  justify-self: center;
  align-self: center;
}
.fw-message {
  padding: var(--default-gap);
  margin-bottom: var(--default-gap);
  border-radius: var(--default-radius);
  background-color: var(--oar-lightgray);
  color: var(--oar-midgray);
}
  .fw-message .message-info {
    padding: 0px;
    margin: 0px;
    border-top: none;
  }
  .fw-message .message-time {
    margin-bottom: 2em;
  }
.fw-msgs-separator {
  position: relative;
  border: none;
  border-bottom: solid 1px var(--oar-midgray);
  margin: 3em 0 2em 0;
  overflow: visible;
}
  .fw-msgs-separator::after {
    content: "Mensajes anteriores";
    position: absolute;
    top: 0;
    left: 50%;
    padding: 1em;
    transform: translate(-50%, -50%);
    background-color: var(--oar-smoke);
    color: var(--oar-midgray);
    font-size: 0.9em;
    font-style: italic;
  }
.main-footer {
  position: sticky;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1em;
  top: 100%;
  padding: 0.65em;
  background-color: var(--oar-white);
  border-radius: 3em;
  filter: var(--drop-shadow);
}
.message-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.message-info {
  display: flex;
  gap: var(--default-gap);
  align-items: center;
  justify-content: flex-start;
  padding: 1em 0;
  margin: 1em 0;
  border-top: solid 1px var(--oar-lightgray);
  border-bottom: solid 1px var(--oar-lightgray);
}
  .message-info p {
    margin: 0;
    font-size: 0.8em;
    line-height: 1.2rem;
  }
.message-item {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 0.6em 0;
  border-bottom: solid 1px var(--oar-lightgray);
  color: var(--oar-midgray);
  transition: all 0.3s;
}
.message-item:hover {
  color: var(--oar-darkgray);
}
.message-item:first-of-type {
  padding-top: 0px;
}
.message-item:last-of-type {
  padding-bottom: 0px;
  border-bottom: none;
}
.message-item.reading {
  color: var(--oar-darkgray);
}
  .message-item > * {
    margin: 0.3rem 0;
  }
  .message-item .flex-row {
    gap: 0.6rem;
  }
  .message-item .material-symbols-outlined {
    font-size: 1.1rem;
  }
  .message-item .message-date {
    font-size: 0.8em;
    color: var(--oar-midgray);
  }
.messages-list {
  position: relative;
  max-height: 100%;
  align-self: stretch;
  overflow-y: auto !important;
  height: auto !important;
}
  .messages-list::before {
    content: "";
    position: sticky;
    display: block;
    height: 1em;
    width: 100%;
    top: 0px;
    left: 0px;
    pointer-events: none;
    background-image: linear-gradient(to bottom, var(--oar-white), transparent);
  }
  .messages-list::after {
    content: "";
    position: sticky;
    display: block;
    height: 1em;
    width: 100%;
    bottom: 0px;
    left: 0px;
    pointer-events: none;
    background-image: linear-gradient(to bottom, transparent, var(--oar-white));
  }
.message-subject {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  margin-bottom: 2em;
}
  .message-subject h3 {
    margin: 0px;
  }
.message-time {
  font-size: 0.8em;
  color: var(--oar-midgray);
  font-style: italic;
}
.module-card {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
.module-card h3 {
  font-family: Yorkville, montserrat, sans-serif;
  font-size: 2em;
  line-height: 1em;
}
.module-view {
  margin-bottom: 1em;
}
  .module-view a.draft {
    filter: grayscale(1);
    opacity: 0.8;
  }
.progression-bar {
  height: 1em;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  color: var(--oar-white);
  background-color: currentColor;
  border: solid currentColor 3px;
  width: 100%;
  overflow: hidden;
  border-radius: 1em;
}
.recipient-item {
  display: flex;
  gap: 0.5em;
  padding: 0.6em 0.8em;
  border-radius: 1.3em;
  align-items: center;
  color: white;
  font-size: 0.85em;
  background-color: var(--oar-midgray);
}
.recipient-item[data-recipient-role="STU"] { background-color: var(--oar-red); }
.recipient-item[data-recipient-role="TCH"] { background-color: var(--oar-blue); }
.recipient-item[data-recipient-role="ADM"] { background-color: var(--oar-green); }
.recipient-item[data-recipient-role="DIR"] { background-color: var(--oar-gold); }
  .recipient-item p,
  .recipient-item button {
    margin: 0;
    padding: 0;
  }
  .recipient-item .material-symbols-outlined {
    font-size: 1em;
  }
.tray {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  max-height: 100%;
  width: 100%;
  overflow: hidden;
  background-color: var(--oar-smoke);
  opacity: 0.7;
  transition: opacity 0.3s, background-color 0.3s, filter 0.3s;
}
.tray:has(.btn[active]) {
  background-color: var(--oar-white);
  opacity: 1;
  filter: var(--drop-shadow);
}
  .tray > .btn {
    padding-bottom: 0.5em;
    padding-left: 0;
    font-weight: 700;
    color: var(--oar-blue);
    background-color: inherit;
    justify-content: flex-start;
  }
  .tray > .btn[active] {
    pointer-events: none;
  }

#attachments-container .btn {
  display: flex;
  gap: 0.3em;
  position: relative;
  padding: 0.5em;
  border-radius: 1em;
  color: white;
  background-color: var(--oar-gold);
}
  #attachments-container .btn > .material-symbols-outlined {
    font-size: 1.1em;
  }
#cc-container {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  width: 100%;
  gap: 0.6em;
}
#change-pfp {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
  #change-pfp::after {
    content: "Cambiar";
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    top: 0;
    left: 0;
    height: 100%;
    width: 100%;
    border-radius: 10em;
    color: white;
    font-weight: 700;
    background-color: color-mix(in lab, var(--oar-blue), transparent 50%);
    opacity: 0;
    transition: opacity 0.3s;
  }
  #change-pfp:hover::after {
    opacity: 1;
  }
#classrooms-carousel items {
  --cols: 4;
  height: max(60vh, 500px);
}
#content-search {
  padding-right: 1.65em;
}
#content-search-group:has(#content_id:not([value=""]))::after {
  content: "check";
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  right: 0;
  bottom: 5px;
  font-size: 1.3em;
  pointer-events: none;
  color: var(--oar-blue);
  font-family: "Material Symbols Outlined";
}
#inbox .message-item.unread {
  color: var(--oar-darkgray);
  background-color: color-mix(in lab, var(--oar-blue), transparent 85%);
  padding: 0.6em;
  border-radius: 0.4em;
  border-bottom: none;
}
  #inbox .message-item.unread::after {
    --ratio: 0.5em;
    content: "";
    position: absolute;
    display: block;
    top: 0.6em;
    right: 0.6em;
    height: var(--ratio);
    width: var(--ratio);
    border-radius: 50%;
    background-color: var(--oar-red);
  }
#inbox-btn {
  transition: opacity 0.3s;
}
#inbox-btn:hover {
  opacity: 0.7;
}
#hamburger {
  background-color: var(--oar-white) !important;
  color: var(--oar-darkgray) !important;
  filter: var(--drop-shadow);
}
  #hamburger span {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #hamburger svg {
    height: 1.5em;
  }
  #hamburger rect {
    transform-origin: center;
    transition: transform 0.2s var(--default-bezier), y 0.3s var(--default-bezier) 0.2s;
  }
  #hamburger.times rect {
    transition: y 0.2s var(--default-bezier), transform 0.3s var(--default-bezier) 0.2s;
  }
  #hamburger.times rect:nth-child(2n+1){
    y: 11px;
    transform: rotate(45deg);
  }
  #hamburger.times rect:nth-child(2){
    transform: rotate(135deg);
  }
#login-page {
  min-height: 100vh;
  align-items: center;
}
#login-slideshow {
  padding: 0px;
  color: white;
}
  #login-slideshow > slide {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    padding: var(--double-padding);
    padding-right: 50%;
    padding-bottom: 5em;
    font-size: 1.5em;
  }
    #login-slideshow > slide > * {
      position: relative;
    }
    #login-slideshow > slide::before {
      content: "";
      position: absolute;
      display: block;
      top: 0px;
      left: 0px;
      width: 100%;
      height: 100%;
      background-image: linear-gradient(to top right, var(--oar-blue) 25%, transparent);
    }
  #login-slideshow thumbnails {
    bottom: var(--double-padding);
    left: var(--double-padding);
  }
#main-header {
  position: sticky;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: 1fr;
  align-items: center;
  gap: var(--default-gap);
  top: 0px;
  width: 100%;
  padding: var(--doc-min-padding);
  background-color: var(--oar-smoke);
  z-index: 1000;
}
  #main-header .logo {
    height: 4em;
  }
#main-menu {
  position: relative;
  display: flex;
  gap: 0.5em;
  justify-content: flex-start;
  align-items: center;
  z-index: 3;
}
  #main-menu a {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--default-gap);
    max-width: 1.75em;
    padding: 1em;
    border-radius: 2.1em;
    background-color: transparent;
    color: var(--oar-midgray);
    overflow: hidden;
    transition: background-color 0.3s, color 0.3s, max-width 0.5s var(--default-bezier);
  }
  #main-menu a:hover {
    background-color: var(--oar-lightgray);
  }
  #main-menu a.current {
    background-color: var(--oar-white);
    color: var(--oar-darkgray);
    max-width: 20em;
    filter: var(--drop-shadow);
  }
  #main-menu a span[data-notifications]:not([data-notifications="0"])::after,
  #main-menu a span[data-messages]:not([data-messages="0"])::after {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    top: -0.25em;
    right: -0.25em;
    height: 1em;
    width: 1em;
    padding: 0.2em;
    border-radius: 50%;
    background-color: var(--oar-red);
    color: var(--oar-white);
    font: initial;
    font-family: "Montserrat", sans-serif;
    font-size: 0.38em;
    font-optical-sizing: auto;
    font-weight: 500;
    font-style: normal;
    transform: scale(0);
    animation: notification-bullet 0.3s var(--default-bezier) 0.3s forwards;
  }
  #main-menu a span[data-notifications]:not([data-notifications="0"])::after {
    content: attr(data-notifications);
  }
  #main-menu a span[data-messages]:not([data-messages="0"])::after {
    content: attr(data-messages);
  }
    #main-menu span {
      position: relative;
    }
    #main-menu a p {
      margin: 0px;
      margin-right: 0.2em;
      white-space: nowrap;
    }
    #main-menu a .material-symbols-outlined {
      font-size: 1.75em;
    }
#main-pfp {
  --ratio: 3.5em;
  cursor: pointer;
  transition: filter 0.3s;
}
#main-pfp:hover {
  filter: drop-shadow(0px 2px 0.6em color-mix(in lab, currentColor 50%, transparent));
}
#message-form {
  grid-area: form;
  align-self: flex-start;
  height: 100%;
  display: grid;
  grid-template-rows: auto auto 1fr;
  grid-auto-columns: auto;
}
#messages-page {
  position: relative;
  grid-template-columns: 350px 1fr;
  grid-template-rows: 1fr;
  grid-template-areas: "trays view";
  gap: var(--double-padding);
  height: 100%;
}
#message-trays {
  --v-height: 1fr;
  grid-area: trays;
  position: relative;
  display: grid;
  grid-template-rows: var(--v-height) 3.5em auto;
  align-items: flex-start;
  align-content: flex-start;
  gap: var(--default-gap);
  max-height: 100%;
  /* transition: grid-template-rows 0.5s var(--default-bezier); */
}
#message-trays:has(#outbox-btn[active]) {
  grid-template-rows: 3.5em var(--v-height) auto;
}
#message-viewer {
  grid-area: view;
  position: relative;
  height: 100%;
}
  #message-viewer > article,
  #message-viewer > hr {
    animation: message-fade 0.75s var(--default-bezier) forwards;
  }
#message-writer {
  grid-area: view;
  position: absolute;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-rows: 1fr auto;
  grid-template-areas:
    'form form'
    'disc send';
  align-content: flex-start;
  align-items: center;
  justify-items: flex-end;
  gap: var(--default-gap);
  right: 0px;
  bottom: 0px;
  height: 0px;
  width: 100%;
  padding-top: 0px;
  padding-bottom: 0px;
  background-color: var(--oar-white);
  filter: var(--drop-shadow);
  transition: height 0.5s var(--default-bezier), padding 0.3s 0.2s;
}
#message-writer.active {
  height: 100%;
  padding-top: 1rem;
  padding-bottom: 1rem;
  transition: height 0.5s var(--default-bezier), padding 0.3s;
}
#message-writer.active:has(#reply-id:not([value=""])) {
  height: max(566px, 70%);
  max-height: 100%;
  overflow: auto;
}
#modules-grid {
  column-gap: 2em;
}

#news-slideshow {
  height: 400px;
  padding: 0px;
  color: white;
  background-color: var(--oar-blue);
}
  #news-slideshow slide {
    padding: var(--doc-min-padding) var(--doc-min-padding) 3em var(--doc-min-padding);
  }
  #news-slideshow slide::before {
    content: "";
    position: absolute;
    display: block;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background-image: linear-gradient(to right, var(--oar-blue) 25%, transparent);
  }
    #news-slideshow slide > * {
      position: relative;
    }
  #news-slideshow thumbnails{
    bottom: 1em;
    left: max(var(--doc-margin), 1em);
  }
#notifications-page {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: var(--default-gap);
}
#sidebar-menu {
  position: fixed;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  gap: 0.5em;
  top: 0px;
  right: 100%;
  height: 100vh;
  max-width: 70vw;
  padding: 8.5em calc(var(--doc-min-padding) + 1.5em) 8.5em var(--doc-min-padding);
  background-color: var(--oar-smoke);
  z-index: 2;
  box-shadow: var(--courtain-off);
  transition: transform 0.5s var(--default-bezier), box-shadow 0.5s ease-out;
}
#sidebar-menu.active {
  transform: translateX(100%);
  box-shadow: var(--courtain-on);
}
  #sidebar-menu a {
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: center;
    gap: var(--default-gap);
    padding: 0.6em 0;
  }
    #sidebar-menu a span {
      position: relative;
    }
    #sidebar-menu a span[data-notifications]:not([data-notifications="0"])::after,
    #sidebar-menu a span[data-messages]:not([data-messages="0"])::after {
      position: absolute;
      display: flex;
      justify-content: center;
      align-items: center;
      top: -0.25em;
      right: -0.25em;
      height: 1em;
      width: 1em;
      padding: 0.2em;
      border-radius: 50%;
      background-color: var(--oar-red);
      color: var(--oar-white);
      font: initial;
      font-family: "Montserrat", sans-serif;
      font-size: 0.38em;
      font-optical-sizing: auto;
      font-weight: 500;
      font-style: normal;
    }
    #sidebar-menu a span[data-notifications]:not([data-notifications="0"])::after {
      content: attr(data-notifications);
    }
    #sidebar-menu a span[data-messages]:not([data-messages="0"])::after {
      content: attr(data-messages);
    }
    #sidebar-menu a > p {
      margin: 0;
    }
#tabs-navigation {
  position: relative;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: var(--default-gap);
  flex-wrap: wrap;
  width: 100%;
}
  #tabs-navigation .pill-link:last-child {
    background-color: color-mix(in lab, var(--oar-blue), transparent 90%);
    color: var(--oar-blue);
  }
  #tabs-navigation .pill-link:not(:last-child) {
    margin-right: 1em;
    color: var(--oar-midgray);
  }
  #tabs-navigation .pill-link:not(:last-child)::after {
    position: absolute;
    content: "chevron_right";
    right: -1.5em;
    color: currentColor;
    font-family: "Material Symbols Outlined";
  }
#user-thumb {
  position: relative;
  display: grid;
  justify-self: end;
  justify-content: end;
  align-items: center;
  gap: var(--default-gap);
  grid-template-columns: auto auto;
  grid-template-rows: 1fr;
}
  #user-thumb .user-info {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: flex-end;
  }
    #user-thumb .user-info p {
      margin: 0;
    }
    #user-thumb .user-info p:first-child {
      font-weight: 700;
      font-size: 1.1em;
    }
