/* Nightlife frontend theme, v20260914-3. Screen only; no admin or print styling. */
@media screen {
body.nightlife-theme {
  --cc-card-bg-color: #21151c;
  --cc-card-text-color: #f5ebdd;
  --cc-button-bg-color: #781f3d;
  --cc-button-bg-color-rgb: 120,31,61;
  --cc-button-text-color: #f5ebdd;
  --night-bg: #100c10;
  --night-panel: #21151c;
  --night-raised: #302029;
  --night-primary: #781f3d;
  --night-hover: #942e50;
  --night-text: #f5ebdd;
  --night-muted: #c5b4bd;
  --night-gold: #c5a263;
  --night-line: #59434d;
  --bs-primary: #781f3d;
  --bs-primary-rgb: 120,31,61;
  --bs-secondary-rgb: 33,21,28;
  --bs-info-rgb: 197,162,99;
  --bs-body-bg: #100c10;
  --bs-body-color: #f5ebdd;
  --bs-heading-color: #f5ebdd;
  --bs-secondary-color: #c5b4bd;
  --bs-tertiary-color: #c5b4bd;
  --bs-border-color: #59434d;
  --bs-link-color: #e4b7c6;
  --bs-link-hover-color: #e8cc99;
  --bs-link-color-rgb: 228,183,198;
  --bs-link-hover-color-rgb: 232,204,153;
  color-scheme: dark;
  color: var(--night-text);
  background: var(--night-bg) !important;
  accent-color: var(--night-primary);
}
body.nightlife-theme #eventmie_app::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at 10% 15%, #781f3d30, transparent 58%),
              radial-gradient(ellipse at 90% 85%, #c5a2630d, transparent 50%);
  animation: nightlife-ambience 14s ease-in-out infinite alternate;
}
body.nightlife-theme #eventmie_app { position: relative; }
body.nightlife-theme :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6,label,legend) { color: var(--night-text); }
body.nightlife-theme a { color: var(--bs-link-color); }
body.nightlife-theme a:hover { color: var(--bs-link-hover-color); }
body.nightlife-theme :is(.text-dark,.text-black,.text-gray-800,.text-gray-900,.text-body,.text-white) { color: var(--night-text) !important; }
body.nightlife-theme :is(.text-muted,.text-secondary,.text-gray-500,.text-gray-600,.text-gray-700,.form-text,.breadcrumb-item.active) { color: var(--night-muted) !important; }
body.nightlife-theme :is(.text-primary,.text-info,.link-primary,.link-info) { color: #e4b7c6 !important; }
body.nightlife-theme :is(.bg-white,.bg-light,.bg-gray-100,.bg-gray-200,.bg-secondary,.dashboard-body-bg,.dashboard-content,.card,.list-group-item,.accordion-item,.accordion-button,.offcanvas,.dropdown-menu,.modal-content,.swal2-popup,.vue-confirm-dialog .dialog) {
  background-color: var(--night-panel) !important;
  color: var(--night-text);
  border-color: var(--night-line);
}
body.nightlife-theme :is(.bg-dark,.bg-black,.nav-header,.nav-header.menu-fixed,footer,.footer,.navbar-vertical) { background-color: var(--night-bg) !important; color: var(--night-text); }
body.nightlife-theme .bg-gradient:not(.btn) { background: linear-gradient(125deg, #29131e, #100c10 75%) !important; }
body.nightlife-theme :is(.bg-primary,.bg-info,.bg-primary-soft,.bg-info-soft,.bg-primary-subtle,.bg-info-subtle,.card-top) { background-color: var(--night-primary) !important; color: var(--night-text) !important; }
body.nightlife-theme :is(.border-primary,.border-info) { border-color: var(--night-gold) !important; }
body.nightlife-theme :is(.border-light,.border-white,.border-dark) { border-color: var(--night-line) !important; }
body.nightlife-theme :is(hr,.card-header,.card-footer,.modal-header,.modal-footer,.dropdown-divider) { border-color: var(--night-line); }
body.nightlife-theme :is(.card-header,.card-footer) { background-color: transparent; }

/* Preserve card geometry; an inset outline does not change the grid width. */
body.nightlife-theme :is(div:has(> .position-relative > .card-top),#buy-tickets,#buy-tickets .list-group-item) {
  border-radius: .7rem;
  background-color: var(--night-panel);
  outline: 1px solid var(--night-gold);
  outline-offset: -1px;
  box-shadow: 0 8px 24px #00000024;
  transition: box-shadow .3s ease, outline-color .3s ease;
}
body.nightlife-theme div:has(> .position-relative > .card-top) > .rounded-bottom { padding: .65rem; }
body.nightlife-theme :is(div:has(> .position-relative > .card-top),#buy-tickets .list-group-item):is(:hover,:focus-within) {
  outline-color: #e8cc99;
  box-shadow: 0 0 18px #c5a26326;
}
body.nightlife-theme :is(.card-category,.card-venue) { color: var(--night-muted); }

body.nightlife-theme .btn { --bs-btn-focus-shadow-rgb: 197,162,99; transition: background-color .25s ease, border-color .25s ease, box-shadow .25s ease; }
body.nightlife-theme :is(.btn-primary,.btn-info,.btn.bg-gradient,.scrollEvent,.swal2-confirm) {
  --bs-btn-bg: #781f3d;
  --bs-btn-border-color: #a64d6b;
  --bs-btn-hover-bg: #942e50;
  --bs-btn-active-bg: #942e50;
  --bs-btn-disabled-bg: #4c2634;
  background: var(--night-primary) !important;
  color: var(--night-text) !important;
  border-color: #a64d6b !important;
}
body.nightlife-theme :is(.btn-primary,.btn-info,.btn.bg-gradient,.scrollEvent,.swal2-confirm):is(:hover,:active) { background: var(--night-hover) !important; box-shadow: 0 0 16px #781f3d55; }
body.nightlife-theme :is(.btn-outline-primary,.btn-outline-info,.btn-light,.btn-white,.btn-secondary,.btn-dark,.btn-outline-dark) { background-color: var(--night-raised); color: var(--night-text); border-color: var(--night-line); }
body.nightlife-theme :is(.btn-outline-primary,.btn-outline-info,.btn-light,.btn-white,.btn-secondary,.btn-dark,.btn-outline-dark):hover { background-color: #462533; color: var(--night-text); border-color: var(--night-gold); }
body.nightlife-theme :is(.btn:disabled,.btn.disabled) { opacity: .55; box-shadow: none; }
body.nightlife-theme :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline: 2px solid #e8cc99 !important; outline-offset: 3px; }
body.nightlife-theme :is(.btn,.form-check-input):focus { box-shadow: 0 0 0 .2rem #c5a26340; }
body.nightlife-theme :is(.nav-link,.navbar .nav-link,.dropdown-item,.page-link,.arrow-btn) { color: var(--night-text); }
body.nightlife-theme :is(.dropdown-item:hover,.dropdown-item:focus,.nav-link:hover,.nav-link:focus,.page-link:hover) { background-color: var(--night-raised); color: #e8cc99; }
body.nightlife-theme :is(.nav-pills .nav-link.active,.dropdown-item.active,.page-item.active .page-link,.pagination .active>a,.list-group-item.active) { background-color: var(--night-primary); color: var(--night-text); border-color: var(--night-gold); }
body.nightlife-theme .nav-lb-tab .nav-link.active { color: #e8cc99; border-bottom-color: var(--night-gold); }
body.nightlife-theme .page-link { background-color: var(--night-panel); border-color: var(--night-line); }
body.nightlife-theme .page-item.disabled .page-link { background-color: var(--night-bg); color: var(--night-muted); }
body.nightlife-theme .navbar-toggler .icon-bar { background-color: var(--night-text); }

body.nightlife-theme :is(.form-control,.form-select,.custom-select,.input-group-text,.mx-input,.multiselect__tags,.multiselect__input,.multiselect__single,.vs__dropdown-toggle,.vs__search,.select2-selection) {
  background-color: #180f15;
  color: var(--night-text);
  border-color: var(--night-line);
}
body.nightlife-theme :is(input,textarea)::placeholder { color: #b9a6b1; opacity: 1; }
body.nightlife-theme :is(.form-control,.form-select,.mx-input,.custom-select):focus { background-color: #180f15; color: var(--night-text); border-color: var(--night-gold); box-shadow: 0 0 0 .2rem #c5a26325; }
body.nightlife-theme :is(.form-control,.form-select):disabled { background-color: #30242c; color: var(--night-muted); }
body.nightlife-theme .form-check-input { background-color: #180f15; border-color: #a58e9c; }
body.nightlife-theme .form-check-input:checked { background-color: var(--night-primary); border-color: var(--night-gold); }
body.nightlife-theme :is(.form-control,.form-select).is-invalid { border-color: #ef8f9f; }
body.nightlife-theme :is(.invalid-feedback,.text-danger) { color: #ff9aaa !important; }
body.nightlife-theme .text-success { color: #8cdbb0 !important; }
body.nightlife-theme .text-warning { color: #efca7c !important; }
body.nightlife-theme :is(.alert-info,.alert-primary) { background-color: #39212e; color: var(--night-text); border-color: #97647a; }
body.nightlife-theme .alert-danger { background-color: #421e29; color: #ffc5cf; border-color: #a55063; }
body.nightlife-theme .alert-success { background-color: #18382b; color: #b4edcb; border-color: #427e5d; }
body.nightlife-theme .alert-warning { background-color: #3b301b; color: #f3d99e; border-color: #9a7b40; }
body.nightlife-theme .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
body.nightlife-theme .accordion-button:not(.collapsed) { color: #e8cc99; box-shadow: inset 0 -1px var(--night-line); }
body.nightlife-theme .accordion-button::after { filter: grayscale(1) brightness(3); }
body.nightlife-theme .table { --bs-table-bg: #21151c; --bs-table-color: #f5ebdd; --bs-table-border-color: #59434d; --bs-table-striped-bg: #2a1c25; --bs-table-striped-color: #f5ebdd; --bs-table-hover-bg: #37232e; --bs-table-hover-color: #f5ebdd; color: var(--night-text); }
body.nightlife-theme :is(.table-light,.table thead,.dataTables_info) { --bs-table-bg: #302029; --bs-table-color: #f5ebdd; background-color: var(--night-raised); color: var(--night-text); }

/* Third-party menus can be mounted directly under body. */
body.nightlife-theme :is(.mx-datepicker-main,.mx-datepicker-popup,.mx-calendar,.mx-time,.multiselect__content-wrapper,.vs__dropdown-menu,.select2-dropdown,.ql-toolbar,.ql-container,.ql-picker-options) { background-color: var(--night-panel); color: var(--night-text); border-color: var(--night-line); }
body.nightlife-theme :is(.mx-calendar-header-label,.mx-btn,.mx-icon-calendar,.mx-icon-clear,.vs__dropdown-option,.multiselect__option) { color: var(--night-text); }
body.nightlife-theme :is(.mx-table-date .cell:hover,.mx-time-item:hover,.multiselect__option--highlight,.vs__dropdown-option--highlight,.select2-results__option--highlighted) { background-color: #462533; color: var(--night-text); }
body.nightlife-theme :is(.mx-table-date .cell.active,.mx-time-item.active,.mx-table-date .cell.in-range,.multiselect__tag) { background-color: var(--night-primary); color: var(--night-text); }
body.nightlife-theme .mx-table-date .cell.disabled { background-color: #180f15; color: #887580; }
body.nightlife-theme .mx-table-date .cell.today { color: #e8cc99; }
body.nightlife-theme .vs__selected { color: var(--night-text); background-color: var(--night-raised); border-color: var(--night-line); }
body.nightlife-theme :is(.vs__open-indicator,.vs__clear) { fill: var(--night-muted); }
body.nightlife-theme .ql-stroke { stroke: var(--night-muted); }
body.nightlife-theme .ql-fill { fill: var(--night-muted); }
body.nightlife-theme .ql-editor.ql-blank::before { color: var(--night-muted); }
body.nightlife-theme .schedule-info[data-selected="true"] { background-color: var(--night-primary) !important; color: var(--night-text) !important; border-color: var(--night-gold) !important; }
body.nightlife-theme .schedule-info[data-selected="true"] :is(.text-dark,.text-primary,.text-xs,.h5,.badge) { color: var(--night-text) !important; }
body.nightlife-theme :is(.skeleton-box-banner,.skeleton) { background-color: #302029; }
body.nightlife-theme .skeleton { background-image: linear-gradient(45deg,transparent,#c5a26320,transparent); }
body.nightlife-theme :is(.progress-bar,.vue-progressbar) { background-color: var(--night-gold) !important; }

/* Only discovery and booking CTAs sparkle; no text flashing or click overlays. */
body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary) { position: relative; }
body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::before,
body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::after {
  content: "";
  position: absolute;
  pointer-events: none;
  width: 8px;
  height: 8px;
  background-color: #c5a263;
  clip-path: polygon(50% 0,61% 35%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 35%);
  animation: nightlife-stars 6s ease-in-out infinite;
}
body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::before { inset-block-start: 3px; inset-inline-end: 7px; }
body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::after { inset-block-end: 3px; inset-inline-start: 7px; width: 6px; height: 6px; animation-delay: -3s; }
body.nightlife-theme :is(.btn:disabled,.btn.disabled)::before,
body.nightlife-theme :is(.btn:disabled,.btn.disabled)::after { animation: none; opacity: .25; }
@keyframes nightlife-stars {
  0%,100% { opacity: .35; transform: scale(.65) rotate(0); background-color: #c5a263; }
  45% { opacity: .95; transform: scale(1) rotate(35deg); background-color: #f5ebdd; }
  75% { opacity: .6; transform: scale(.8) rotate(60deg); background-color: #df9bb3; }
}
@keyframes nightlife-ambience { from { opacity: .45; } to { opacity: 1; } }

/* Homepage categories: replace the original compiled blue gradient. */
body.nightlife-theme .bg-gradient-primary:has(.category-card) {
  background: #c5a263 !important;
  isolation: isolate;
  border-block: 1px solid #e8cc99;
}
body.nightlife-theme .bg-gradient-primary:has(.category-card)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: linear-gradient(90deg, #c5a263f2, #c5a263b8 55%, #c5a26370),
    url('../images/nightlife-date-cinema.png') center 55% / cover no-repeat;
}
body.nightlife-theme .bg-gradient-primary:has(.category-card) > .container > .row:first-child :is(h5,p) {
  color: #21151c !important;
  text-shadow: none;
}
body.nightlife-theme .category-card { outline: 1px solid #e8cc99; outline-offset: -1px; }
body.nightlife-theme .category-card .event-count-badge {
  background: #21151ce8 !important;
  border-color: #e8cc99 !important;
}
body.nightlife-theme .category-card :is(.text-white-50,.category-info h3) {
  color: #f5ebdd !important;
  opacity: 1;
}
body.nightlife-theme .category-content { background: linear-gradient(transparent 25%, #100c10ed); }

/* Both existing CSS-only tab panels retain their content and switching rules. */
body.nightlife-theme .home-main-how-it-work .howit-tabs .tab-label {
  color: #c5b4bd;
  border-bottom-color: transparent;
}
body.nightlife-theme .home-main-how-it-work .howit-tabs .tab-label:hover { color: #f5ebdd; }
body.nightlife-theme #tab-organiser:checked + label[for="tab-organiser"],
body.nightlife-theme #tab-customer:checked + label[for="tab-customer"] {
  color: #e8cc99;
  border-color: #c5a263;
}
body.nightlife-theme .home-main-how-it-work .step-icon {
  color: #e8cc99 !important;
  border-color: #c5a263 !important;
  background: #321c28;
}
body.nightlife-theme .home-main-how-it-work .step-number { color: #a38b65; }
/* The legacy connector extends beyond the last column at desktop widths. */
body.nightlife-theme .home-main-how-it-work .step::after { display: none; }
body.nightlife-theme .home-main-how-it-work .step :is(h5,p) { position: relative; }
body.nightlife-theme .howit-tabs input[type="radio"] {
  display: block;
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
body.nightlife-theme .howit-tabs input[type="radio"]:focus-visible + .tab-label {
  outline: 2px solid #e8cc99;
  outline-offset: 3px;
}
/* Match Bootstrap's entire collapsed-navbar range, including tablets. */
@media (max-width: 991.98px) {
  body.nightlife-theme .nav-header.nav-header-classic .navbar-collapse {
    background: #21151c !important;
    color: #f5ebdd;
    border: 1px solid #59434d;
    box-shadow: 0 12px 28px #00000066;
    max-height: calc(100vh - 90px);
    max-height: calc(100dvh - 90px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .navbar-collapse :is(.nav-link,.dropdown-item,.dropdown-toggle,.nav-item) {
    color: #f5ebdd !important;
    border-color: #59434d;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .navbar-collapse :is(.nav-link,.dropdown-item):is(:hover,:focus-visible) {
    color: #e8cc99 !important;
    background-color: #302029 !important;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .navbar-collapse .dropdown-menu {
    background: #180f15 !important;
    border-color: #59434d;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .navbar-collapse .dropdown-menu.show {
    position: static !important;
    transform: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    margin: 0 !important;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .navbar-collapse .dropdown-item {
    white-space: normal;
    overflow-wrap: anywhere;
    padding-block: .65rem;
  }
  body.nightlife-theme .nav-header.nav-header-classic .navbar .dropdown-toggle::after { color: #e8cc99 !important; }
  body.nightlife-theme .nav-header .navbar-toggler .icon-bar { background-color: #f5ebdd !important; }
}
@media (max-width: 767px) {
  body.nightlife-theme #eventmie_app::before { animation: none; opacity: .6; }
  body.nightlife-theme .navbar-collapse { background-color: var(--night-bg); }
  body.nightlife-theme :is(.form-control,.form-select,.mx-input) { font-size: max(1rem, 16px); }
  body.nightlife-theme div:has(> .position-relative > .card-top) { overflow-wrap: anywhere; }
  body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  body.nightlife-theme #eventmie_app::before,
  body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::before,
  body.nightlife-theme :is(.nav-header .btn-primary,.scrollEvent,#buy-tickets .btn-primary)::after { animation: none; }
  body.nightlife-theme :is(.btn,div:has(> .position-relative > .card-top),#buy-tickets .list-group-item) { transition: none; }
}
}
