/* [project]/frontend/src/styles/shared.css [app-client] (css) */
.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;
}

/*# sourceMappingURL=frontend_src_styles_shared_345dd8c3.css.map*/