/* Bright layered-paper theme shared by public, admin, and client surfaces. */
:root {
  --paper-white: #fffdfd;
  --paper-blush: #fff2f6;
  --paper-rose: #ffd5e3;
  --paper-pink: #f7a7c4;
  --paper-lilac: #d6b4ec;
  --paper-violet: #75449a;
  --paper-plum: #4d246d;
  --paper-ink: #34213f;
  --paper-muted: #786681;
  --paper-line: #ead9eb;
  --paper-shadow: 0 12px 32px rgba(95, 50, 112, .11);
}

html { background: var(--paper-blush); }
body {
  background-color: var(--paper-blush) !important;
  color: var(--paper-ink) !important;
  overflow-x: hidden;
}

body::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 42% 48% at 92% 4%, transparent 0 25%, rgba(117,68,154,.16) 26% 32%, rgba(214,180,236,.24) 33% 41%, rgba(247,167,196,.22) 42% 50%, rgba(255,213,227,.28) 51% 61%, transparent 62%),
    radial-gradient(ellipse 36% 44% at 4% 96%, transparent 0 27%, rgba(117,68,154,.12) 28% 35%, rgba(214,180,236,.2) 36% 45%, rgba(247,167,196,.18) 46% 57%, transparent 58%),
    linear-gradient(135deg, #fffdfd 0%, #fff6f8 48%, #fdf1fa 100%);
}

/* Tailwind palette overrides used by the landing and admin login pages. */
.bg-base, .bg-surface, .bg-surface2 { background-color: rgba(255,253,253,.94) !important; }
.text-ink { color: var(--paper-ink) !important; }
.text-muted { color: var(--paper-muted) !important; }
.text-muted2 { color: #9a879e !important; }
.text-accent, .text-accent2 { color: var(--paper-violet) !important; }
.border-white\/\[0\.06\], .border-white\/10, .border-white\/\[0\.08\] { border-color: var(--paper-line) !important; }
.bg-white\/\[0\.03\], .bg-white\/5 { background-color: rgba(255,255,255,.76) !important; }

.glass {
  background: rgba(255,255,255,.78) !important;
  border-color: rgba(117,68,154,.15) !important;
  box-shadow: 0 10px 28px rgba(95,50,112,.08);
}
.grad-text {
  background: linear-gradient(90deg, var(--paper-plum), #a64c82) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
}
.grad-btn {
  color: #fff !important;
  background: linear-gradient(100deg, var(--paper-violet), #b55287) !important;
  box-shadow: 0 8px 20px rgba(117,68,154,.2);
}
.grad-btn:hover { box-shadow: 0 12px 26px rgba(117,68,154,.28) !important; }
.bg-grid {
  background-image:
    linear-gradient(rgba(117,68,154,.055) 1px, transparent 1px),
    linear-gradient(90deg, rgba(117,68,154,.055) 1px, transparent 1px) !important;
}
.blob { filter: blur(70px) !important; opacity: .55; }
.card-hover:hover { border-color: rgba(117,68,154,.3) !important; box-shadow: var(--paper-shadow) !important; }
.nav-link::after { background: linear-gradient(90deg, var(--paper-violet), var(--paper-pink)) !important; }
.img-frame::after { background: linear-gradient(145deg, rgba(247,167,196,.13), rgba(117,68,154,.14)) !important; }

/* Landing page. */
body > nav.fixed {
  background: rgba(255,253,253,.9) !important;
  border-color: var(--paper-line) !important;
  box-shadow: 0 4px 20px rgba(95,50,112,.07);
}
body > section { color: var(--paper-ink); }
body > section:nth-of-type(even) { background-color: rgba(255,242,246,.72) !important; }
body > section .text-white,
body > section .text-white\/90,
body > section .text-white\/80,
body > section .text-white\/70 { color: var(--paper-ink) !important; }
body > section .text-white\/60,
body > section .text-white\/50 { color: var(--paper-muted) !important; }
body > section .grad-btn,
body > section .grad-btn .text-white { color: #fff !important; }
body > footer { background: var(--paper-plum) !important; }
body > footer .text-muted, body > footer .text-muted2 { color: #eadcf0 !important; }

/* Shared form styling. */
input, select, textarea {
  background-color: rgba(255,255,255,.92) !important;
  border-color: #dec8e0 !important;
  color: var(--paper-ink) !important;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--paper-violet) !important;
  box-shadow: 0 0 0 3px rgba(117,68,154,.13) !important;
}

/* Admin login. */
body.bg-base .bg-grid { opacity: .75; }
body.bg-base .lg\:grid-cols-2 > div:first-child {
  background: linear-gradient(145deg, #fff2f6, #efdaf3) !important;
  border-color: #dcc5df !important;
}
body.bg-base .lg\:grid-cols-2 > div:first-child p,
body.bg-base .lg\:grid-cols-2 > div:first-child .text-ink { color: var(--paper-ink) !important; }
body.bg-base .lg\:grid-cols-2 > div:first-child .text-white\/40,
body.bg-base .lg\:grid-cols-2 > div:first-child .text-white\/50,
body.bg-base .lg\:grid-cols-2 > div:first-child .text-white\/60 { color: var(--paper-muted) !important; }
body.bg-base .lg\:grid-cols-2 > div:last-child { background: rgba(255,253,253,.9) !important; }
.field-input { background: #fff !important; border-color: #ddc8df !important; color: var(--paper-ink) !important; }
.gate-num.now { background: var(--paper-violet) !important; color: #fff !important; }
.gate-num.locked { background: rgba(117,68,154,.1) !important; color: #8e7497 !important; }

/* Client login. */
.login-card { background: rgba(255,253,253,.94) !important; border: 1px solid var(--paper-line) !important; box-shadow: var(--paper-shadow) !important; }
.card-wrap { border: 1px solid var(--paper-line) !important; box-shadow: var(--paper-shadow) !important; }
.left-panel { background: linear-gradient(145deg, var(--paper-plum), #8d579e) !important; }
.bc1 { background: radial-gradient(circle, rgba(247,167,196,.34), transparent 70%) !important; }
.bc2 { background: radial-gradient(circle, rgba(214,180,236,.35), transparent 70%) !important; }
.bc3 { background: radial-gradient(circle, rgba(117,68,154,.18), transparent 70%) !important; }
.login-btn, .btn-sign-in, .btn-verify {
  background: linear-gradient(100deg, var(--paper-violet), #b55287) !important;
  color: #fff !important;
}

/* Admin and client portals. */
.app, .main, .main-content, .content { background-color: transparent !important; }
.sidebar, #sidebar {
  background: linear-gradient(180deg, var(--paper-plum), #6f3b84) !important;
  box-shadow: 8px 0 26px rgba(78,36,109,.12);
}
.sidebar .nav-item.active, .nav-item.active {
  background: rgba(255,255,255,.15) !important;
  border-left-color: var(--paper-pink) !important;
}
.nav-active-dot { background: var(--paper-pink) !important; }
.topbar, .top-bar, header.topbar {
  background: rgba(255,253,253,.92) !important;
  border-color: var(--paper-line) !important;
  box-shadow: 0 3px 16px rgba(95,50,112,.06);
}
/* Full-width module heading stripe shared by every admin page. */
#module-content-area .rounded-xl.p-5.flex.flex-col.justify-between[class~="sm:flex-row"][class~="sm:items-center"] {
  background: linear-gradient(100deg, var(--paper-plum) 0%, var(--paper-violet) 68%, #a64c82 100%) !important;
  box-shadow: 0 10px 24px rgba(78,36,109,.16);
}
.stat-card, .section-card, .controls-bar, .bos-stat, .card, .panel, .modal-content {
  background: rgba(255,253,253,.94) !important;
  border-color: var(--paper-line) !important;
  box-shadow: 0 6px 22px rgba(95,50,112,.07) !important;
}
.stat-card:hover, .section-card:hover { box-shadow: var(--paper-shadow) !important; }
.si-blue, .si-teal, .si-purple, .bos-stat-icon {
  background: #f5e8f6 !important;
  color: var(--paper-violet) !important;
}
.tab-btn.active { color: var(--paper-violet) !important; border-color: var(--paper-violet) !important; }
.data-table th, table th { background: #fff2f6 !important; color: #826b88 !important; }
.data-table tr:hover td, table tr:hover td { background: #fff7fa !important; }
.btn-primary, .primary-btn, button.bg-blue-600 {
  background: var(--paper-violet) !important;
  border-color: var(--paper-violet) !important;
  color: #fff !important;
}

@media (max-width: 899px) {
  body::before {
    background:
      radial-gradient(ellipse 70% 34% at 100% 0%, rgba(214,180,236,.34), transparent 70%),
      linear-gradient(145deg, #fffdfd, #fff1f6) !important;
  }
  #home .inline-flex:first-of-type {
    max-width: 100%;
    line-height: 1.45;
  }
  .login-card { border-radius: 8px !important; }
}
