/* =========================================================================
   Exotecho — Glass UI (dark-first, premium)
   Deep blue→violet gradient, frosted glass surfaces, modern type.
   ========================================================================= */

:root {
  --gx-accent:        #6b7cf6;
  --gx-accent-2:      #8a5cf0;
  --gx-accent-3:      #56b6e6;

  --gx-grad:          linear-gradient(135deg, #5664e6 0%, #7b46e0 100%);
  --gx-grad-bright:   linear-gradient(135deg, #8e9bff 0%, #c19bff 100%);
  --gx-grad-soft:     linear-gradient(135deg, rgba(86,100,230,.18), rgba(123,70,224,.18));

  --gx-glass-bg:        rgba(22, 21, 52, 0.40);
  --gx-glass-bg-strong: rgba(255, 255, 255, 0.06);
  --gx-glass-brd:       rgba(255, 255, 255, 0.14);
  --gx-glass-hi:        inset 0 1px 0 rgba(255, 255, 255, 0.22);
  --gx-glass-blur:      16px;

  --gx-shadow:        0 24px 56px -26px rgba(0, 0, 0, 0.70), var(--gx-glass-hi);
  --gx-shadow-lg:     0 34px 80px -28px rgba(0, 0, 0, 0.82), var(--gx-glass-hi);
  --gx-ring:          0 0 0 4px rgba(107, 124, 246, 0.28);

  --gx-font:          'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --gx-font-head:     'Space Grotesk', 'Plus Jakarta Sans', sans-serif;
  --gx-ease:          cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Typography --------------------------------------------------- */
body, .menu, .dropdown-menu, .btn, .form-control, .form-select, .nav-link, .card,
.app-brand-text, input, button, select, textarea {
  font-family: var(--gx-font) !important;
}
h1, h2, h3, h4, h5, h6, .card-title, .navbar-brand, .app-brand-text,
.gx-gradient-text, .pricing-plans h3, .price-yearly, .offcanvas-title {
  font-family: var(--gx-font-head) !important;
  letter-spacing: -0.01em;
}
.navbar-brand,
.navbar-brand .app-brand-text,
.navbar-brand span {
  font-family: var(--gx-font) !important;
  font-weight: 700;
  letter-spacing: .01em;
}

/* ---------- Deep gradient backdrop --------------------------------------- */
body { position: relative; min-height: 100vh; background: #0a0b1d !important; }
body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(1200px 760px at 12% 2%,  rgba(47, 47, 162, 0.45), transparent 55%),
    radial-gradient(1100px 800px at 90% 20%, rgba(123, 70, 224, 0.32), transparent 55%),
    radial-gradient(900px 760px at 70% 110%, rgba(47, 47, 162, 0.34), transparent 55%),
    linear-gradient(165deg, #08091c 0%, #16164e 55%, #221c66 100%);
}
[data-bs-theme="light"] body { background: #eef0fb !important; }
[data-bs-theme="light"] body::before {
  background:
    radial-gradient(1100px 720px at 10% 0%,  rgba(91, 108, 246, 0.22), transparent 55%),
    radial-gradient(1000px 760px at 92% 18%, rgba(138, 92, 240, 0.18), transparent 55%),
    radial-gradient(900px 740px at 72% 112%, rgba(86, 182, 230, 0.16), transparent 55%),
    linear-gradient(165deg, #eef0fb 0%, #e8ebfb 55%, #f1ecfb 100%);
}

.gx-aurora { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.gx-aurora span {
  position: absolute; display: block; width: 48vw; height: 48vw; border-radius: 50%;
  filter: blur(60px); opacity: .50; mix-blend-mode: screen; will-change: transform;
}
[data-bs-theme="light"] .gx-aurora span { mix-blend-mode: multiply; opacity: .28; }
.gx-aurora span:nth-child(1) { background: radial-gradient(circle at 30% 30%, #2f2fa2, transparent 70%); top: -14vw; left: -8vw;  animation: gx-float-1 24s var(--gx-ease) infinite; }
.gx-aurora span:nth-child(2) { background: radial-gradient(circle at 30% 30%, #7b46e0, transparent 70%); top: -6vw;  right: -10vw; animation: gx-float-2 28s var(--gx-ease) infinite; }
.gx-aurora span:nth-child(3) { background: radial-gradient(circle at 30% 30%, #3a4bd0, transparent 70%); bottom: -18vw; left: 16vw; animation: gx-float-3 32s var(--gx-ease) infinite; }
.gx-aurora span:nth-child(4) { background: radial-gradient(circle at 30% 30%, #6a3cc9, transparent 70%); bottom: -12vw; right: 6vw;  animation: gx-float-1 30s var(--gx-ease) infinite reverse; }
@keyframes gx-float-1 { 0%,100% { transform: translate(0,0) scale(1); }    50% { transform: translate(5vw, 4vw) scale(1.14); } }
@keyframes gx-float-2 { 0%,100% { transform: translate(0,0) scale(1.05); } 50% { transform: translate(-4vw, 6vw) scale(.9); } }
@keyframes gx-float-3 { 0%,100% { transform: translate(0,0) scale(1); }    50% { transform: translate(3vw, -5vw) scale(1.18); } }

.layout-wrapper, .layout-page, .content-wrapper, .authentication-wrapper { position: relative; z-index: 1; }
/* No vertical sidebar in this layout — reclaim the reserved menu gutter so
   content is properly centred. */
.layout-page { padding-left: 0 !important; }

/* ---------- Glass cards -------------------------------------------------- */
.card, .content-footer .footer-container, .dropdown-menu, .modal-content {
  background:
    linear-gradient(158deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.04) 24%, rgba(255,255,255,.02) 100%),
    var(--gx-glass-bg) !important;
  -webkit-backdrop-filter: blur(var(--gx-glass-blur)) saturate(150%);
  backdrop-filter: blur(var(--gx-glass-blur)) saturate(150%);
  border: 1px solid var(--gx-glass-brd) !important;
  box-shadow: var(--gx-shadow);
}
[data-bs-theme="light"] .card,
[data-bs-theme="light"] .content-footer .footer-container {
  background: linear-gradient(158deg, rgba(255,255,255,.72), rgba(255,255,255,.52)) !important;
  border-color: rgba(255,255,255,.8) !important;
  box-shadow: 0 24px 56px -28px rgba(60, 60, 130, 0.30), inset 0 1px 0 rgba(255,255,255,.6);
}
[data-bs-theme="light"] .modal-content {
  background:
    linear-gradient(155deg, rgba(255,255,255,.94), rgba(246,247,255,.86)),
    rgba(246,247,255,.90) !important;
  border-color: rgba(255,255,255,.92) !important;
  box-shadow: 0 30px 80px -24px rgba(55,52,115,.38), inset 0 1px 0 rgba(255,255,255,.96);
  color: #343650;
}
[data-bs-theme="light"] .modal-content .text-body-secondary {
  color: rgba(70,74,110,.70) !important;
}
[data-bs-theme="light"] .modal-backdrop {
  --bs-backdrop-bg: #55536f;
  --bs-backdrop-opacity: .28;
}
.card { border-radius: 18px !important; position: relative; }
.card-header { background: transparent !important; border-bottom-color: rgba(255,255,255,.10) !important; font-weight: 600; }
[data-bs-theme="light"] .card-header { border-bottom-color: rgba(60,60,130,.12) !important; }

/* ---------- Single glass top bar: [brand] [nav] [controls] --------------- */
.navbar { box-shadow: none !important; }
#layout-navbar {
  background:
    linear-gradient(158deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 60%),
    rgba(16, 15, 38, 0.60) !important;
  border-bottom: 1px solid rgba(255,255,255,.10) !important;
  box-shadow: 0 10px 30px -22px rgba(0,0,0,.7) !important;
}
[data-bs-theme="light"] #layout-navbar {
  /* Near-opaque + no blur: a uniform bar, so the page glows behind it can't
     bleed through and create a two-tone "box". */
  background: rgba(246, 247, 252, 0.97) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  border-bottom-color: rgba(120,120,170,.16) !important;
}
/* Desktop: blur the bar (offcanvas is static here, so no fixed-child trap) */
@media (min-width: 1200px) {
  #layout-navbar { -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); }
  #primaryNav.offcanvas,
  #primaryNav .offcanvas-body {
    visibility: visible !important;
    background: transparent !important;
    box-shadow: none !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }
}

/* Nav links: glassy hover, gradient active — never grey */
.navbar-nav .nav-link {
  border-radius: 10px;
  padding: .45rem .8rem;
  font-weight: 500;
  color: rgba(233,235,255,.78) !important;
  transition: background .25s var(--gx-ease), color .25s var(--gx-ease);
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
}
.navbar-nav .nav-link.active,
.navbar-nav .show > .nav-link {
  background: var(--gx-grad) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px -10px rgba(106,78,224,.6);
}
[data-bs-theme="light"] .navbar-nav .nav-link { color: rgba(40,42,80,.8) !important; }
[data-bs-theme="light"] .navbar-nav .nav-link:hover { background: rgba(60,70,160,.08) !important; color: #2a2b50 !important; }
[data-bs-theme="light"] .navbar-nav .nav-link.active { color:#fff !important; }

/* Dropdown menus: dark frosted glass by default. */
.dropdown-menu {
  border-radius: 14px !important;
  padding: .4rem;
  background:
    linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.015)),
    rgba(15, 14, 38, 0.94) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  border: 1px solid rgba(255,255,255,.14) !important;
  box-shadow: 0 26px 64px -22px rgba(0,0,0,.78), inset 0 1px 0 rgba(255,255,255,.12);
  color: #e7e9f5;
}
.dropdown-item { border-radius: 9px; color: rgba(233,235,255,.82) !important; transition: background .2s var(--gx-ease), color .2s var(--gx-ease); }
.dropdown-item:hover, .dropdown-item:focus { background: rgba(255,255,255,.10) !important; color: #fff !important; }
.dropdown-item.active, .dropdown-item:active { background: var(--gx-grad) !important; color:#fff !important; }
.dropdown-item i { color: rgba(200,206,255,.7); }
.dropdown-header { color: rgba(170,178,235,.6) !important; text-transform: uppercase; font-size: .68rem; letter-spacing: .08em; font-weight: 700; }
.dropdown-divider { border-color: rgba(255,255,255,.12); }
.dropdown-menu .text-body-secondary, .dropdown-menu small { color: rgba(200,206,255,.55) !important; }

/* Light theme dropdowns: a pale frosted surface that keeps the page glow
   visible without sacrificing text contrast. */
[data-bs-theme="light"] .dropdown-menu {
  background:
    linear-gradient(155deg, rgba(255,255,255,.88), rgba(246,247,255,.72)),
    rgba(246, 247, 255, 0.76) !important;
  -webkit-backdrop-filter: blur(24px) saturate(165%);
  backdrop-filter: blur(24px) saturate(165%);
  border-color: rgba(255,255,255,.88) !important;
  box-shadow: 0 26px 64px -24px rgba(62,58,125,.34), inset 0 1px 0 rgba(255,255,255,.92);
  color: #343650;
}
[data-bs-theme="light"] .dropdown-item { color: rgba(42,43,80,.84) !important; }
[data-bs-theme="light"] .dropdown-item:hover,
[data-bs-theme="light"] .dropdown-item:focus {
  background: rgba(91,108,246,.10) !important;
  color: #292b50 !important;
}
[data-bs-theme="light"] .dropdown-item.active,
[data-bs-theme="light"] .dropdown-item:active { color: #fff !important; }
[data-bs-theme="light"] .dropdown-item i { color: rgba(75,81,145,.72); }
[data-bs-theme="light"] .dropdown-header { color: rgba(70,74,135,.62) !important; }
[data-bs-theme="light"] .dropdown-divider { border-color: rgba(75,78,135,.14); }
[data-bs-theme="light"] .dropdown-menu .text-body-secondary,
[data-bs-theme="light"] .dropdown-menu small { color: rgba(70,74,110,.64) !important; }
.dropdown-menu .btn-danger,
.dropdown-menu .btn-danger small { color: #fff !important; }

/* Tagify country picker: match the glass dropdown menu system. */
.tagify {
  --tags-border-color: rgba(255,255,255,.14);
  --tags-hover-border-color: rgba(138,150,255,.55);
  --tags-focus-border-color: var(--gx-accent);
  width: 100%;
  min-height: 46px;
  border-radius: 12px !important;
  background: rgba(255,255,255,.06) !important;
  transition: border-color .2s var(--gx-ease), box-shadow .2s var(--gx-ease);
}
.tagify.tagify--focus {
  box-shadow: var(--gx-ring) !important;
}
.tagify__tag > div {
  border-radius: 8px;
  background: var(--gx-grad-soft);
  color: #eef0ff;
}
.tagify__input { color: #eef0ff; }
.tagify__input::before { color: rgba(230,233,255,.45) !important; }
.tagify__dropdown {
  z-index: 1100 !important;
  color: #e7e9f5;
}
.tagify__dropdown__wrapper {
  margin-top: .4rem;
  padding: .4rem;
  max-height: min(360px, 48vh) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  border: 1px solid rgba(255,255,255,.14) !important;
  border-radius: 14px !important;
  background:
    linear-gradient(160deg, rgba(255,255,255,.06), rgba(255,255,255,.015)),
    rgba(15,14,38,.94) !important;
  -webkit-backdrop-filter: blur(24px) saturate(160%);
  backdrop-filter: blur(24px) saturate(160%);
  box-shadow: 0 26px 64px -22px rgba(0,0,0,.78), inset 0 1px 0 rgba(255,255,255,.12);
}
.tagify__dropdown__item {
  margin: 2px 0;
  padding: .55rem .7rem;
  border-radius: 9px;
  color: rgba(233,235,255,.82);
  transition: background .2s var(--gx-ease), color .2s var(--gx-ease);
}
.tagify__dropdown__item--active,
.tagify__dropdown__item:hover {
  background: rgba(255,255,255,.10) !important;
  color: #fff !important;
}
[data-bs-theme="light"] .tagify {
  --tags-border-color: rgba(120,120,170,.25);
  background: rgba(255,255,255,.75) !important;
}
[data-bs-theme="light"] .tagify__tag > div {
  color: #292b50;
}
[data-bs-theme="light"] .tagify__input { color: #292b50; }
[data-bs-theme="light"] .tagify__input::before { color: rgba(70,74,110,.55) !important; }
[data-bs-theme="light"] .tagify__dropdown { color: #343650; }
[data-bs-theme="light"] .tagify__dropdown__wrapper {
  border-color: rgba(255,255,255,.88) !important;
  background:
    linear-gradient(155deg, rgba(255,255,255,.88), rgba(246,247,255,.72)),
    rgba(246,247,255,.76) !important;
  box-shadow: 0 26px 64px -24px rgba(62,58,125,.34), inset 0 1px 0 rgba(255,255,255,.92);
}
[data-bs-theme="light"] .tagify__dropdown__item { color: rgba(42,43,80,.84); }
[data-bs-theme="light"] .tagify__dropdown__item--active,
[data-bs-theme="light"] .tagify__dropdown__item:hover {
  background: rgba(91,108,246,.10) !important;
  color: #292b50 !important;
}

/* Offcanvas (mobile slide-in): frosted panel + smooth motion */
#primaryNav.offcanvas {
  background: transparent;
  border: 0;
}
@media (max-width: 1199.98px) {
  #primaryNav.offcanvas {
    width: 290px;
    background:
      linear-gradient(160deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
      rgba(13, 12, 32, 0.90) !important;
    -webkit-backdrop-filter: blur(26px) saturate(160%);
    backdrop-filter: blur(26px) saturate(160%);
    border-right: 1px solid rgba(255,255,255,.12) !important;
    box-shadow: 30px 0 70px -24px rgba(0,0,0,.75);
    transition: transform .5s var(--gx-ease) !important;
  }
  [data-bs-theme="light"] #primaryNav.offcanvas {
    background: rgba(248,249,255,.9) !important;
    border-right-color: rgba(120,120,170,.2) !important;
  }
  #primaryNav .navbar-nav .nav-link { margin-bottom: .15rem; }
}
.offcanvas-backdrop.show { backdrop-filter: blur(2px); opacity: .55; }

/* ---------- Buttons ------------------------------------------------------ */
.btn {
  border-radius: 12px; font-weight: 600; letter-spacing: .01em;
  transition: transform .2s var(--gx-ease), box-shadow .3s var(--gx-ease), filter .3s var(--gx-ease);
  position: relative; overflow: hidden;
}
.btn:active { transform: translateY(1px) scale(.99); }
.btn-primary {
  border: 0 !important; background: var(--gx-grad) !important; color: #fff !important;
  box-shadow: 0 8px 22px -10px rgba(106, 78, 224, 0.6), inset 0 1px 0 rgba(255,255,255,.25);
}
.btn-primary:hover { filter: brightness(1.08); transform: translateY(-1px); box-shadow: 0 12px 28px -10px rgba(106, 78, 224, 0.72), inset 0 1px 0 rgba(255,255,255,.3); }
.btn::after {
  content: ""; position: absolute; top: 0; left: -120%; width: 60%; height: 100%;
  background: linear-gradient(100deg, transparent, rgba(255,255,255,.45), transparent);
  transform: skewX(-18deg); transition: left .6s var(--gx-ease);
}
.btn:hover::after { left: 140%; }
.btn-outline-primary, .btn-outline-dribbble { border-color: rgba(138,150,255,.55) !important; color: #b9c0ff !important; }
.btn-outline-primary:hover, .btn-outline-dribbble:hover { background: var(--gx-grad) !important; border-color: transparent !important; color:#fff !important; }
[data-bs-theme="light"] .btn-outline-dribbble, [data-bs-theme="light"] .btn-outline-primary { color: var(--gx-accent) !important; border-color: rgba(91,108,246,.5) !important; }

.gx-ripple { position: absolute; border-radius: 50%; transform: scale(0); background: rgba(255,255,255,.45); animation: gx-ripple .6s var(--gx-ease); pointer-events: none; }
@keyframes gx-ripple { to { transform: scale(2.6); opacity: 0; } }

/* ---------- Forms -------------------------------------------------------- */
.form-control, .form-select {
  border-radius: 12px; background: var(--gx-glass-bg-strong) !important;
  border: 1px solid var(--gx-glass-brd) !important; color: #eef0ff !important;
  transition: border-color .25s var(--gx-ease), box-shadow .25s var(--gx-ease), background .25s var(--gx-ease);
}
.form-control::placeholder { color: rgba(230,233,255,.45) !important; }
.form-control:focus, .form-select:focus { border-color: var(--gx-accent) !important; box-shadow: var(--gx-ring) !important; background: rgba(255,255,255,.09) !important; }
[data-bs-theme="light"] .form-control, [data-bs-theme="light"] .form-select { background: rgba(255,255,255,.75) !important; color: #2b2b40 !important; border-color: rgba(120,120,170,.25) !important; }

/* ---------- Tables ------------------------------------------------------- */
.table { --bs-table-bg: transparent; }
.table > thead th { text-transform: uppercase; font-size: .72rem; letter-spacing: .06em; color: rgba(230,233,255,.6); border-bottom: 1px solid rgba(255,255,255,.1) !important; }
.table > tbody > tr { transition: background .25s var(--gx-ease); }
.table > tbody > tr:hover { background: var(--gx-grad-soft) !important; }

/* ---------- Badges / Alerts --------------------------------------------- */
.badge { border-radius: 8px; letter-spacing:.02em; }
.bg-label-primary { background: rgba(107,124,246,.20) !important; color: #b9c0ff !important; }
.alert { border-radius: 14px; border: 1px solid var(--gx-glass-brd); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }

/* ---------- Gradient text ------------------------------------------------ */
.gx-gradient-text, .pricing-plans h3, .card-title.gx-grad {
  background: var(--gx-grad-bright);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

/* ---------- Footer ------------------------------------------------------- */
.content-footer .footer-container { border-radius: 16px; padding: 1rem 1.25rem !important; margin-bottom: .5rem; }
.footer-link, .footer-link:visited { color: rgba(200,206,255,.72) !important; transition: color .25s var(--gx-ease); }
.footer-link:hover { color: #aeb8ff !important; }
[data-bs-theme="light"] .footer-link { color: rgba(70,76,140,.85) !important; }
[data-bs-theme="light"] .footer-link:hover { color: var(--gx-accent) !important; }

/* ---------- Scrollbar / motion ------------------------------------------ */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--gx-accent), var(--gx-accent-2)); border-radius: 10px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

.gx-reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s var(--gx-ease), transform .7s var(--gx-ease); }
.gx-reveal.gx-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  /* Card hover motion is intentionally kept even under reduce-motion so the
     hover animation is consistent between environments (many dev/Windows
     Server browsers report reduce-motion, which was hiding it). The heavier
     background aurora and scroll-reveal stay calm for reduce-motion users. */
  .gx-aurora span { animation: none !important; }
  .gx-reveal { opacity: 1 !important; transform: none !important; }
  .btn { transition: none !important; }
}
