:root {
  --esl-ink: #282064;
  --esl-muted: #6d6896;
  --esl-violet: #8b6be8;
  --esl-violet-soft: #f3edff;
  --esl-pink: #ee79ae;
  --esl-pink-soft: #fff0f7;
  --esl-mint: #6fc9b8;
  --esl-mint-soft: #edfffb;
  --esl-blue: #6ca2ef;
  --esl-blue-soft: #eef6ff;
  --esl-gold: #e5b73e;
  --esl-line: #eadffb;
  --esl-page: #fbf8ff;
}

html body {
  color: var(--esl-ink);
}

body:not(.landing-page) {
  background:
    radial-gradient(circle at 92% 8%, rgba(238, 121, 174, 0.14) 0 10rem, transparent 10.2rem),
    radial-gradient(circle at 4% 28%, rgba(108, 162, 239, 0.13) 0 12rem, transparent 12.2rem),
    linear-gradient(135deg, #fffdfa 0%, var(--esl-page) 46%, #f7fbff 100%) !important;
}

.admin-page {
  background:
    radial-gradient(circle at 92% 8%, rgba(238, 121, 174, 0.16) 0 10rem, transparent 10.2rem),
    radial-gradient(circle at 4% 28%, rgba(139, 107, 232, 0.14) 0 12rem, transparent 12.2rem),
    linear-gradient(135deg, #fffdfa 0%, #fbf8ff 46%, #f7fbff 100%) !important;
}

h1,
h2,
h3 {
  color: var(--esl-ink);
}

a:not(aside a):not(.footer-link):not(.btn-primary):not(.btn-secondary):not(.gk-button) {
  color: var(--esl-violet);
}

a:not(aside a):hover {
  color: var(--esl-pink);
}

input,
select,
textarea {
  border-color: var(--esl-line) !important;
  color: var(--esl-ink);
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--esl-pink) !important;
  box-shadow: 0 0 0 3px rgba(238, 121, 174, 0.18) !important;
  outline: none !important;
}

button[type="submit"]:not(.unstyled),
.btn-brand,
.login-btn,
.btn-primary:not(.gk-button),
.bg-amber-500,
.bg-amber-600,
.bg-yellow-500,
.bg-yellow-600 {
  background: linear-gradient(135deg, var(--esl-pink), var(--esl-violet)) !important;
  color: #fff !important;
  border-color: transparent !important;
}

button[type="submit"]:hover,
.btn-brand:hover,
.login-btn:hover,
.bg-amber-500:hover,
.bg-amber-600:hover,
.hover\:bg-amber-600:hover,
.hover\:bg-amber-700:hover,
.hover\:bg-yellow-600:hover {
  background: linear-gradient(135deg, #e967a4, #7655d9) !important;
  color: #fff !important;
}

.text-amber-500,
.text-amber-600,
.text-amber-700,
.text-amber-800,
.text-amber-900,
.text-yellow-500,
.text-yellow-600,
.text-yellow-700,
.text-yellow-800,
.text-yellow-900 {
  color: var(--esl-violet) !important;
}

.bg-amber-50,
.bg-yellow-50,
.bg-yellow-100 {
  background-color: var(--esl-violet-soft) !important;
}

.bg-amber-100,
.bg-amber-200,
.bg-yellow-200 {
  background-color: var(--esl-pink-soft) !important;
}

.border-amber-50,
.border-amber-100,
.border-amber-200,
.border-yellow-100,
.border-yellow-200,
.border-yellow-300 {
  border-color: var(--esl-line) !important;
}

.focus\:ring-amber-100:focus,
.focus\:ring-amber-200:focus,
.focus\:ring-amber-300:focus,
.focus\:ring-amber-400:focus,
.focus\:ring-amber-500:focus,
.focus\:ring-yellow-400:focus {
  --tw-ring-color: rgba(238, 121, 174, 0.22) !important;
}

.focus\:border-amber-400:focus,
.focus\:border-amber-500:focus,
.focus\:border-yellow-400:focus {
  border-color: var(--esl-pink) !important;
}

.rounded-lg,
.rounded-xl,
.rounded-2xl,
.rounded-3xl {
  border-color: var(--esl-line);
}

.shadow,
.shadow-lg,
.shadow-xl {
  box-shadow: 0 18px 45px rgba(40, 32, 100, 0.08) !important;
}

table thead,
thead.bg-amber-50 {
  background: var(--esl-violet-soft) !important;
  color: var(--esl-ink) !important;
}

tbody tr:hover,
.hover\:bg-yellow-50\/60:hover,
.hover\:bg-amber-50\/60:hover {
  background-color: #fbf7ff !important;
}

.badge,
.rounded-full.bg-amber-100,
.rounded-full.bg-yellow-100,
span.bg-amber-100,
span.bg-yellow-100 {
  background-color: var(--esl-pink-soft) !important;
  color: var(--esl-violet) !important;
  border-color: #f5c2da !important;
}

.login-card,
.card-soft,
section.bg-white,
.bg-white,
.bg-white\/90,
.bg-white\/95 {
  border-color: rgba(234, 223, 251, 0.9) !important;
}

aside {
  background: rgba(255, 255, 255, 0.96) !important;
  border-color: rgba(139, 107, 232, 0.18) !important;
  box-shadow: 0 18px 48px rgba(40, 32, 100, 0.08) !important;
}

aside nav a {
  color: #625d86 !important;
  font-weight: 850 !important;
}

aside nav a:hover {
  background-color: var(--esl-violet-soft) !important;
  color: var(--esl-ink) !important;
}

aside nav a i {
  color: var(--esl-pink) !important;
}

aside .bg-yellow-500,
aside .bg-amber-500 {
  background: linear-gradient(135deg, var(--esl-pink), var(--esl-violet)) !important;
  color: #fff !important;
  box-shadow: 0 14px 28px rgba(139, 107, 232, 0.26) !important;
}

aside .bg-yellow-500 i,
aside .bg-amber-500 i {
  color: #fff !important;
}

aside .hover\:bg-yellow-50:hover {
  background-color: var(--esl-violet-soft) !important;
}

aside .bg-yellow-100 {
  background-color: var(--esl-pink-soft) !important;
}

aside .text-yellow-800 {
  color: var(--esl-violet) !important;
}

aside .border-yellow-200 {
  border-color: var(--esl-line) !important;
}

.system-sidebar {
  position: sticky;
  top: 0;
  width: 16rem;
  min-height: 100vh;
  flex: 0 0 16rem;
  background:
    linear-gradient(180deg, #fff0f7 0%, #f3edff 48%, #fef7fb 100%) !important;
  border-right: 1px solid rgba(238, 121, 174, 0.34) !important;
  box-shadow: 0 18px 48px rgba(139, 107, 232, 0.14) !important;
  z-index: 20;
  transition: margin-left 0.22s ease, opacity 0.22s ease;
}

.system-sidebar-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 2rem;
  width: 10rem;
  min-height: 5.25rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.system-sidebar-brand img {
  max-height: 4.5rem;
  width: auto;
  object-fit: contain;
  background: transparent;
  filter: drop-shadow(0 10px 18px rgba(40, 32, 100, 0.12));
}

.admin-page > .min-h-screen.flex {
  align-items: stretch;
}

.system-nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: 0.85rem;
  padding: 0.78rem 1rem;
  color: #514674 !important;
  font-size: 0.9rem;
  font-weight: 850 !important;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.system-nav-link:hover {
  background: rgba(255, 255, 255, 0.7) !important;
  color: var(--esl-ink) !important;
  transform: translateX(2px);
}

.system-nav-link i {
  width: 1.1rem;
  color: var(--esl-pink) !important;
  text-align: center;
}

.system-nav-link.active {
  background: linear-gradient(135deg, #ee79ae, #8b6be8) !important;
  color: #fff !important;
  box-shadow: 0 14px 28px rgba(238, 121, 174, 0.32) !important;
}

.system-nav-link.active i {
  color: #fff !important;
}

.system-nav-badge {
  margin-left: auto;
  min-width: 1.75rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: #bf4f88;
  padding: 0.15rem 0.45rem;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 900;
}

.system-nav-link.active .system-nav-badge {
  background: rgba(255, 255, 255, 0.22);
  color: #fff;
}

.system-signout-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: 0.85rem;
  padding: 0.78rem 1rem;
  color: #dc2626 !important;
  font-size: 0.9rem;
  font-weight: 900 !important;
  transition: background 0.16s ease, color 0.16s ease, transform 0.16s ease;
}

.system-signout-link:hover {
  background: #fff1f2 !important;
  color: #b91c1c !important;
  transform: translateX(2px);
}

.system-signout-link i {
  width: 1.1rem;
  color: #ef4444 !important;
  text-align: center;
}

@media (max-width: 900px) {
  .system-sidebar {
    position: relative;
    width: 100%;
    min-height: auto;
    flex-basis: auto;
    border-right: 0 !important;
    border-bottom: 1px solid rgba(139, 107, 232, 0.18) !important;
  }

  .system-sidebar nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .admin-page > .min-h-screen.flex {
    display: block;
  }
}

.fc-toolbar-title {
  color: var(--esl-ink) !important;
}

.fc-button-primary {
  background: linear-gradient(135deg, var(--esl-pink), var(--esl-violet)) !important;
  border-color: transparent !important;
  color: #fff !important;
  box-shadow: 0 10px 22px rgba(139, 107, 232, 0.18) !important;
}

.fc-button-primary:hover,
.fc-button-primary:focus,
.fc-button-primary:not(:disabled).fc-button-active {
  background: linear-gradient(135deg, #e967a4, #7655d9) !important;
  border-color: transparent !important;
}

.fc-daygrid-day.fc-day-today {
  background-color: var(--esl-violet-soft) !important;
}

.fc-event {
  border-color: transparent !important;
  box-shadow: 0 8px 18px rgba(40, 32, 100, 0.12);
}

/* Final sidebar override: keep the shared admin sidebar pink even when page CSS loads stale/old rules. */
#sidebar.system-sidebar {
  background: linear-gradient(180deg, #fff0f7 0%, #f3edff 48%, #fef7fb 100%) !important;
  border-right-color: rgba(238, 121, 174, 0.34) !important;
  box-shadow: 0 18px 48px rgba(139, 107, 232, 0.14) !important;
}

#sidebar .system-nav-link.active {
  background: linear-gradient(135deg, #ee79ae, #8b6be8) !important;
  color: #fff !important;
}

#sidebar .system-nav-link.active i,
#sidebar .system-nav-link.active span {
  color: #fff !important;
}

#sidebar .system-sidebar-brand {
  width: 10rem !important;
  min-height: 5.25rem !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

#sidebar .system-sidebar-brand img {
  max-height: 4.5rem !important;
  width: auto !important;
  object-fit: contain !important;
  background: transparent !important;
  filter: drop-shadow(0 10px 18px rgba(40, 32, 100, 0.12)) !important;
}
