@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&display=swap');

:root {
  --tressia-bg: #f8f3ee;
  --tressia-ink: #1f1628;
  --tressia-muted: #62556e;
  --tressia-primary: #7b2ff2;
  --tressia-rose: #e35d9a;
  --tressia-amber: #f0b56f;
  --tressia-glass-bg: rgba(255, 255, 255, 0.62);
  --tressia-glass-border: rgba(255, 255, 255, 0.76);
  --tressia-shadow-soft: 0 10px 32px rgba(76, 45, 122, 0.12);
  --tressia-shadow-strong: 0 18px 40px rgba(76, 45, 122, 0.2);
}

html,
body {
  font-family: 'Sora', 'Avenir Next', 'Segoe UI', sans-serif;
}

.tressia-admin-body {
  color: var(--tressia-ink);
  background: var(--tressia-bg);
}

.admin-aurora-bg,
.admin-grain {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

.admin-aurora-bg {
  z-index: 0;
  background:
    radial-gradient(circle at 12% 20%, rgba(123, 47, 242, 0.2), transparent 38%),
    radial-gradient(circle at 86% 26%, rgba(227, 93, 154, 0.25), transparent 36%),
    radial-gradient(circle at 70% 88%, rgba(240, 181, 111, 0.25), transparent 40%),
    linear-gradient(180deg, #fffaf4 0%, #f8f3ee 40%, #f5efe8 100%);
  filter: saturate(1.05);
}

.admin-grain {
  z-index: 1;
  opacity: 0.08;
  background-image: radial-gradient(circle at center, rgba(31, 22, 40, 0.2) 0.5px, transparent 0.5px);
  background-size: 3px 3px;
}

.layout-wrapper {
  position: relative;
  z-index: 2;
}

.layout-navbar,
.menu,
.card,
.footer,
.dropdown-menu {
  border: 1px solid var(--tressia-glass-border) !important;
  background: var(--tressia-glass-bg) !important;
  box-shadow: var(--tressia-shadow-soft) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.layout-navbar {
  border-radius: 18px;
}

.card,
.dropdown-menu,
.footer {
  border-radius: 20px !important;
}

.layout-menu {
  border-radius: 0 22px 22px 0;
}

.menu .menu-inner > .menu-item.active > .menu-link,
.menu .menu-inner > .menu-item.open > .menu-link,
.menu .menu-inner > .menu-item > .menu-link:hover {
  background: linear-gradient(130deg, var(--tressia-primary), var(--tressia-rose)) !important;
  color: #fff !important;
}

.menu .menu-inner > .menu-item.active > .menu-link .menu-icon,
.menu .menu-inner > .menu-item.open > .menu-link .menu-icon,
.menu .menu-inner > .menu-item > .menu-link:hover .menu-icon {
  color: #fff !important;
}

.menu .menu-header-text,
.text-muted {
  color: var(--tressia-muted) !important;
}

.card-header {
  border-bottom: 1px solid rgba(123, 47, 242, 0.12) !important;
}

.table thead th {
  color: #2a1f34;
  font-weight: 700;
  border-bottom-color: rgba(123, 47, 242, 0.18) !important;
}

.table tbody tr {
  transition: transform 0.16s ease, background-color 0.16s ease;
}

.table tbody tr:hover {
  background-color: rgba(123, 47, 242, 0.06);
}

.form-control,
.form-select {
  border-radius: 12px !important;
  border-color: rgba(123, 47, 242, 0.18) !important;
  background: rgba(255, 255, 255, 0.8) !important;
}

.form-control:focus,
.form-select:focus {
  border-color: rgba(123, 47, 242, 0.5) !important;
  box-shadow: 0 0 0 0.2rem rgba(123, 47, 242, 0.12) !important;
}

.btn-primary,
.bg-primary {
  background: linear-gradient(135deg, var(--tressia-primary), var(--tressia-rose)) !important;
  border: none !important;
}

.btn-primary {
  box-shadow: 0 10px 24px rgba(123, 47, 242, 0.28) !important;
}

.btn-outline-primary {
  color: var(--tressia-primary) !important;
  border-color: rgba(123, 47, 242, 0.45) !important;
}

.btn-outline-primary:hover {
  background: linear-gradient(135deg, var(--tressia-primary), var(--tressia-rose)) !important;
  color: #fff !important;
  border-color: transparent !important;
}

.bg-label-primary {
  background: rgba(123, 47, 242, 0.14) !important;
  color: #5a20b8 !important;
}

.bg-label-success {
  background: rgba(46, 164, 89, 0.15) !important;
  color: #16703c !important;
}

.bg-label-danger {
  background: rgba(227, 93, 154, 0.16) !important;
  color: #9f2d66 !important;
}

.bg-label-secondary,
.badge.text-bg-light {
  background: rgba(98, 85, 110, 0.14) !important;
  color: #58486a !important;
}

.alert {
  border: 1px solid rgba(123, 47, 242, 0.2) !important;
  border-radius: 14px !important;
  box-shadow: 0 10px 22px rgba(76, 45, 122, 0.1);
}

.content-footer .footer-link {
  color: var(--tressia-primary) !important;
}

/* Login page */
.authentication-wrapper .authentication-inner {
  max-width: 560px;
  margin-inline: auto;
}

.authentication-wrapper .card {
  background: rgba(255, 255, 255, 0.74) !important;
  border: 1px solid rgba(255, 255, 255, 0.85) !important;
  box-shadow: var(--tressia-shadow-strong) !important;
}

.authentication-wrapper .app-brand-text {
  letter-spacing: 0.01em;
}
