/* [project]/frontend/src/styles/shared.css [app-client] (css) */
:root {
  --app-scrollbar-size: 8px;
  --app-scrollbar-thumb: color-mix(in srgb, var(--primary, #8bc34a) 58%, white);
  --app-scrollbar-thumb-hover: color-mix(in srgb, var(--primary, #8bc34a) 82%, #4caf50);
  --app-scrollbar-track: color-mix(in srgb, var(--primary, #8bc34a) 8%, transparent);
}

body {
  font-family: var(--font-publico), system-ui, -apple-system, "Segoe UI", sans-serif;
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--app-scrollbar-thumb) transparent;
}

::-webkit-scrollbar {
  width: var(--app-scrollbar-size);
  height: var(--app-scrollbar-size);
}

::-webkit-scrollbar-track {
  background: none;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--app-scrollbar-thumb), color-mix(in srgb, var(--app-scrollbar-thumb-hover) 72%, white)) content-box;
  border: 2px solid rgba(0, 0, 0, 0);
  border-radius: 999px;
  min-height: 44px;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--app-scrollbar-thumb-hover) content-box;
}

::-webkit-scrollbar-corner {
  background: none;
}

.app-calendar-wrapper {
  width: 100%;
}

.app-calendar-wrapper .fc {
  border: none;
  font-family: inherit;
}

.app-calendar-wrapper .fc .fc-toolbar.fc-header-toolbar {
  flex-wrap: wrap;
  gap: .5rem;
}

.app-calendar-wrapper .fc .fc-button {
  color: #1f2937;
  background-color: #fff;
  border: 1px solid rgba(148, 163, 184, .4);
  border-radius: .5rem;
  transition: background-color .2s, color .2s, border-color .2s;
}

.app-calendar-wrapper .fc .fc-button:hover {
  color: #3b7c1e;
  background-color: #f0fdf4;
  border-color: rgba(139, 195, 74, .5);
}

.app-calendar-wrapper .fc .fc-button:focus-visible {
  color: #3b7c1e;
  background-color: #f0fdf4;
  border-color: rgba(139, 195, 74, .5);
}

.app-calendar-wrapper .fc .fc-button:focus-visible {
  outline-offset: 2px;
  outline: 2px solid rgba(139, 195, 74, .6);
}

.app-calendar-wrapper .fc .fc-button.fc-button-primary {
  color: #fff;
  background-color: #8bc34a;
  border-color: rgba(0, 0, 0, 0);
}

.app-calendar-wrapper .fc .fc-button.fc-button-primary:hover {
  background-color: #7cb342;
}

.app-calendar-wrapper .fc .fc-button.fc-button-primary:focus-visible {
  background-color: #7cb342;
}

.app-calendar-wrapper .fc .fc-daygrid-day-number {
  color: #111827;
  padding: .5rem;
  font-weight: 600;
}

.app-calendar-wrapper .fc .app-calendar-cell {
  transition: background-color .2s, transform .2s;
}

.app-calendar-wrapper .fc .app-calendar-cell:hover .fc-daygrid-day-frame {
  background-color: rgba(240, 253, 244, .9);
}

.app-calendar-wrapper .fc .app-calendar-cell--selected .fc-daygrid-day-frame, .app-calendar-wrapper .fc .app-calendar-cell--selected .fc-timegrid-col-frame {
  background: rgba(139, 195, 74, .15);
  border-radius: .75rem;
}

.app-calendar-wrapper .fc .app-calendar-selected-range {
  background: rgba(139, 195, 74, .18);
  border-radius: .75rem;
}

.app-calendar-wrapper .fc .app-calendar-cell--today .fc-daygrid-day-frame {
  border: 1px solid rgba(139, 195, 74, .6);
  border-radius: .75rem;
  box-shadow: 0 0 0 2px rgba(139, 195, 74, .2);
}

.app-calendar-wrapper .fc .app-calendar-cell--disabled {
  opacity: .35;
  pointer-events: none;
}

.app-calendar-wrapper .fc .app-calendar-cell--disabled .fc-daygrid-day-number {
  color: #9ca3af;
  text-decoration: line-through;
}

.mascot-loader {
  background: radial-gradient(circle at top, rgba(255, 247, 228, .9), #f1f5f9 55%, #e2e8f0 100%);
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 2.5rem 1.5rem;
  display: flex;
}

.mascot-loader__card {
  text-align: center;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .2);
  border-radius: 24px;
  width: min(440px, 100%);
  padding: 2.5rem 2rem;
  box-shadow: 0 28px 70px rgba(15, 23, 42, .18);
}

.mascot-loader__pet {
  width: 150px;
  height: 140px;
  margin: 0 auto 1.5rem;
  animation: 1.8s ease-in-out infinite mascot-bob;
  position: relative;
}

.mascot-loader__face {
  background: #f3c98b;
  border: 3px solid #2f2f2f;
  border-radius: 40% 40% 34% 34%;
  justify-content: center;
  align-items: center;
  gap: 28px;
  display: flex;
  position: absolute;
  top: 18px;
  bottom: 10px;
  left: 12px;
  right: 12px;
}

.mascot-loader__ear {
  transform-origin: bottom;
  background: #e7b773;
  border: 3px solid #2f2f2f;
  border-radius: 60% 60% 40% 40%;
  width: 54px;
  height: 60px;
  animation: 1.6s ease-in-out infinite mascot-ear;
  position: absolute;
  top: -4px;
}

.mascot-loader__ear--left {
  left: 4px;
  transform: rotate(-18deg);
}

.mascot-loader__ear--right {
  animation-delay: .2s;
  right: 4px;
  transform: rotate(18deg);
}

.mascot-loader__eye {
  background: #1f2937;
  border-radius: 999px;
  width: 12px;
  height: 18px;
  position: relative;
}

.mascot-loader__eye:after {
  content: "";
  background: #fff;
  border-radius: 999px;
  width: 4px;
  height: 4px;
  position: absolute;
  top: 3px;
  left: 4px;
}

.mascot-loader__blush {
  background: rgba(244, 146, 118, .6);
  border-radius: 999px;
  width: 18px;
  height: 12px;
  position: absolute;
  bottom: 18px;
}

.mascot-loader__blush--left {
  left: 18px;
}

.mascot-loader__blush--right {
  right: 18px;
}

.mascot-loader__snout {
  background: #fdf3e1;
  border: 3px solid #2f2f2f;
  border-radius: 40% 40% 55% 55%;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  width: 70px;
  height: 44px;
  display: flex;
  position: absolute;
  bottom: -4px;
  left: 50%;
  transform: translateX(-50%);
}

.mascot-loader__nose {
  background: #1f2937;
  border-radius: 50% 50% 60% 60%;
  width: 16px;
  height: 12px;
}

.mascot-loader__mouth {
  border-bottom: 3px solid #1f2937;
  border-radius: 0 0 40px 40px;
  width: 22px;
  height: 10px;
}

.mascot-loader__tail {
  transform-origin: 0;
  background: #e7b773;
  border: 3px solid #2f2f2f;
  border-radius: 999px;
  width: 40px;
  height: 18px;
  animation: .8s ease-in-out infinite mascot-wag;
  position: absolute;
  bottom: 20px;
  right: -18px;
}

.mascot-loader__paws {
  justify-content: center;
  gap: 10px;
  margin-bottom: 1.5rem;
  display: flex;
}

.mascot-loader__paw {
  background: #1f2937;
  border-radius: 50%;
  width: 14px;
  height: 14px;
  animation: 1.2s ease-in-out infinite mascot-paw;
  position: relative;
}

.mascot-loader__paw:before, .mascot-loader__paw:after {
  content: "";
  background: #1f2937;
  border-radius: 50%;
  width: 6px;
  height: 6px;
  position: absolute;
  top: -8px;
}

.mascot-loader__paw:before {
  left: -6px;
}

.mascot-loader__paw:after {
  right: -6px;
}

.mascot-loader__paw:nth-child(2) {
  animation-delay: .15s;
}

.mascot-loader__paw:nth-child(3) {
  animation-delay: .3s;
}

.mascot-loader__title {
  color: #1f2937;
  margin: 0 0 .35rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.mascot-loader__subtitle {
  color: #64748b;
  margin: 0;
  font-size: .95rem;
}

@keyframes mascot-bob {
  0%, 100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-8px);
  }
}

@keyframes mascot-ear {
  0%, 100% {
    transform: rotate(-10deg);
  }

  50% {
    transform: rotate(4deg);
  }
}

@keyframes mascot-wag {
  0%, 100% {
    transform: rotate(20deg);
  }

  50% {
    transform: rotate(-20deg);
  }
}

@keyframes mascot-paw {
  0%, 100% {
    opacity: .5;
    transform: translateY(0);
  }

  50% {
    opacity: 1;
    transform: translateY(-4px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .mascot-loader__pet, .mascot-loader__ear, .mascot-loader__tail, .mascot-loader__paw {
    animation: none;
  }
}

[data-sonner-toast][data-styled="true"] [data-description] {
  color: var(--foreground) !important;
}

/* [next]/internal/font/google/nunito_cc21227f.module.css [app-client] (css) */
@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../media/224e262ef877bfa4-s.753dfc0d.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../media/7f11d98043fdedc9-s.317fa95e.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../media/e6d00ff86ef9e699-s.51ae28b9.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../media/d8cb5ab3660140cd-s.3379eac0.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Nunito;
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url("../media/07454f8ad8aaac57-s.p.fc65572f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Nunito Fallback;
  src: local(Arial);
  ascent-override: 99.71%;
  descent-override: 34.82%;
  line-gap-override: 0.0%;
  size-adjust: 101.39%;
}

.nunito_cc21227f-module__yMU85G__className {
  font-family: Nunito, Nunito Fallback;
  font-style: normal;
}

.nunito_cc21227f-module__yMU85G__variable {
  --font-publico: "Nunito", "Nunito Fallback";
}

/* [next]/internal/font/google/fredoka_45355868.module.css [app-client] (css) */
@font-face {
  font-family: Fredoka;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/067795c9f78c6bf4-s.f63538db.woff2") format("woff2");
  unicode-range: U+307-308, U+590-5FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;
}

@font-face {
  font-family: Fredoka;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/f9aedf9ed40823e0-s.29e2fe95.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Fredoka;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/4aba713303114048-s.p.16a1b9bd.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Fredoka Fallback;
  src: local(Arial);
  ascent-override: 95.64%;
  descent-override: 23.17%;
  line-gap-override: 0.0%;
  size-adjust: 101.84%;
}

.fredoka_45355868-module__BZI48W__className {
  font-family: Fredoka, Fredoka Fallback;
  font-style: normal;
  font-weight: 600;
}

.fredoka_45355868-module__BZI48W__variable {
  --font-publico-display: "Fredoka", "Fredoka Fallback";
}

/* [next]/internal/font/google/plus_jakarta_sans_d24c8020.module.css [app-client] (css) */
@font-face {
  font-family: Plus Jakarta Sans;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../media/0b1dc8ddaa74ba49-s.8624a701.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: Plus Jakarta Sans;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../media/e629b5bc06499d58-s.8e66b869.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Plus Jakarta Sans;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../media/1a099d89ee94ee96-s.f6ed4c33.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Plus Jakarta Sans;
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url("../media/fba5a26ea33df6a3-s.p.1bbdebe6.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Plus Jakarta Sans Fallback;
  src: local(Arial);
  ascent-override: 98.88%;
  descent-override: 21.15%;
  line-gap-override: 0.0%;
  size-adjust: 104.98%;
}

.plus_jakarta_sans_d24c8020-module__px7Z1q__className {
  font-family: Plus Jakarta Sans, Plus Jakarta Sans Fallback;
  font-style: normal;
}

.plus_jakarta_sans_d24c8020-module__px7Z1q__variable {
  --font-cliente: "Plus Jakarta Sans", "Plus Jakarta Sans Fallback";
}

/* [next]/internal/font/google/lexend_35c0a1ce.module.css [app-client] (css) */
@font-face {
  font-family: Lexend;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/08328e320c8f68d1-s.b7a7e326.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: Lexend;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/ce5b45ab00236ec9-s.728b7cae.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Lexend;
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../media/ca31d6821328a4e9-s.p.8036670a.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Lexend Fallback;
  src: local(Arial);
  ascent-override: 90.98%;
  descent-override: 22.74%;
  line-gap-override: 0.0%;
  size-adjust: 109.91%;
}

.lexend_35c0a1ce-module__zzEsfa__className {
  font-family: Lexend, Lexend Fallback;
  font-style: normal;
}

.lexend_35c0a1ce-module__zzEsfa__variable {
  --font-prestador: "Lexend", "Lexend Fallback";
}

/*# sourceMappingURL=%5Broot-of-the-server%5D__e6f8d494._.css.map*/