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

:root {
  --xv-bg: #f3f5f7;
  --xv-surface: #ffffff;
  --xv-surface-soft: #fbfcfd;
  --xv-border: #e2e8f0;
  --xv-border-strong: #cfd8e3;
  --xv-ink: #0f172a;
  --xv-ink-soft: #334155;
  --xv-muted: #64748b;
  --xv-accent: #166534;
  --xv-accent-dark: #114426;
  --xv-accent-soft: #e8f5ec;
  --xv-danger: #b91c1c;
  --xv-shadow:
    0 1px 2px rgba(15, 23, 42, 0.05), 0 8px 20px rgba(15, 23, 42, 0.03);
}

body.xv-body {
  background: var(--xv-bg) !important;
  color: var(--xv-ink) !important;
  font-family: "Manrope", "Segoe UI", system-ui, sans-serif !important;

  /* Alias custom page variable systems to a single design token source. */
  --primary: var(--xv-accent);
  --primary-dark: var(--xv-accent-dark);
  --primary-light: #22c55e;
  --primary-soft: var(--xv-accent-soft);
  --accent: var(--xv-accent);
  --accent-dark: var(--xv-accent-dark);
  --accent-soft: var(--xv-accent-soft);
  --green-900: var(--xv-accent-dark);
  --green-800: var(--xv-accent-dark);
  --green-700: var(--xv-accent);
  --green-600: #22a15a;
  --green-500: #34d399;
  --green-400: #4ade80;
  --green-300: #86efac;
  --green-200: #cfe7d6;
  --green-100: var(--xv-accent-soft);
  --green-50: #f4fbf6;
  --navy: var(--xv-ink);
  --navy-mid: var(--xv-ink-soft);
  --navy-soft: #475569;
  --cream: var(--xv-bg);
  --text: var(--xv-ink);
  --text-primary: var(--xv-ink);
  --text-secondary: var(--xv-muted);
  --text-muted: var(--xv-muted);
  --bg: var(--xv-bg);
  --bg-light: var(--xv-bg);
  --card-bg: var(--xv-surface);
  --border: var(--xv-border);
  --card-shadow: var(--xv-shadow);
  --card-hover: 0 10px 28px rgba(15, 23, 42, 0.12);
}

body.xv-body h1,
body.xv-body h2,
body.xv-body h3,
body.xv-body h4,
body.xv-body h5,
body.xv-body h6 {
  color: var(--xv-ink) !important;
  letter-spacing: -0.01em;
}

body.xv-body h1.home-hero-title {
  color: #ffffff !important;
}

body.xv-body.has-top-nav .main-content:not(.with-sidebar) {
  padding-top: 5.65rem !important;
}

/* Public/regular-user top-nav pages should never inherit sidebar offsets. */
body.xv-body.has-top-nav .main-content,
body.xv-body.has-top-nav .main-content.with-sidebar,
body.xv-body.has-top-nav .main-content.with-sidebar.collapsed,
body.xv-body.has-top-nav .main-content.collapsed {
  margin-left: 0 !important;
}

body.xv-body.has-sidebar .main-content.with-sidebar {
  padding-top: 1.15rem !important;
}

body.xv-body .main-content > .container-fluid {
  max-width: 1280px;
  margin: 0 auto;
  padding-left: 1rem;
  padding-right: 1rem;
}

body.xv-body .main-content > .container-fluid,
body.xv-body .main-content .container,
body.xv-body .main-content .container-fluid {
  padding-top: 0.6rem;
}

body.xv-body .main-content .row.align-items-center.mb-4,
body.xv-body .main-content .row.pt-4.pb-3,
body.xv-body .main-content .row.mb-4:first-child {
  background: var(--xv-surface);
  border: 1px solid var(--xv-border);
  border-radius: 16px;
  box-shadow: var(--xv-shadow);
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding: 1rem 1.1rem !important;
}

body.xv-body .main-content .row.align-items-center.mb-4 > [class*="col-"],
body.xv-body .main-content .row.pt-4.pb-3 > [class*="col-"],
body.xv-body .main-content .row.mb-4:first-child > [class*="col-"] {
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}

body.xv-body .breadcrumb {
  background: transparent;
  margin-bottom: 0.75rem;
}

body.xv-body .breadcrumb-item,
body.xv-body .breadcrumb-item a {
  color: var(--xv-muted);
  font-weight: 600;
  text-decoration: none;
}

body.xv-body .breadcrumb-item.active {
  color: var(--xv-ink-soft);
}

body.xv-body .card,
body.xv-body .table-responsive,
body.xv-body .list-group,
body.xv-body .accordion-item,
body.xv-body .modal-content {
  border: 1px solid var(--xv-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--xv-shadow) !important;
  background: var(--xv-surface) !important;
}

body.xv-body .card-header,
body.xv-body .card-footer,
body.xv-body .list-group-item,
body.xv-body .accordion-button {
  border-color: var(--xv-border) !important;
  background: var(--xv-surface-soft) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .card-title,
body.xv-body .fw-bold,
body.xv-body .fw-semibold {
  color: var(--xv-ink) !important;
}

body.xv-body .text-muted,
body.xv-body .small,
body.xv-body small {
  color: var(--xv-muted) !important;
}

body.xv-body .table {
  --bs-table-bg: transparent;
  --bs-table-accent-bg: transparent;
  --bs-table-color: var(--xv-ink-soft);
  --bs-table-border-color: #e7edf3;
  margin-bottom: 0;
}

body.xv-body .table thead th,
body.xv-body .table-green thead th {
  background: #f7f9fb !important;
  color: #334155 !important;
  border-bottom: 1px solid var(--xv-border) !important;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

body.xv-body .table tbody tr,
body.xv-body .table-green tbody tr {
  border-bottom: 1px solid #edf2f7;
}

body.xv-body .table tbody tr:hover,
body.xv-body .table-hover tbody tr:hover,
body.xv-body .table-green tbody tr:hover {
  background: #f8fbf8 !important;
}

body.xv-body .table tbody td,
body.xv-body .table-green tbody td {
  color: var(--xv-ink-soft) !important;
  vertical-align: middle;
}

body.xv-body .table.table-bordered,
body.xv-body .table.table-striped {
  border-color: var(--xv-border) !important;
}

body.xv-body .table.table-bordered > :not(caption) > * > *,
body.xv-body .table.table-striped > :not(caption) > * > * {
  border-color: #e6edf5 !important;
}

body.xv-body .btn {
  border-radius: 10px !important;
  font-weight: 700;
  font-size: 0.85rem;
}

body.xv-body .btn-primary,
body.xv-body .btn-success,
body.xv-body .btn-create,
body.xv-body .btn-add,
body.xv-body .btn-plan,
body.xv-body .btn-green-primary {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(22, 101, 52, 0.16);
}

body.xv-body .btn-primary:hover,
body.xv-body .btn-success:hover,
body.xv-body .btn-create:hover,
body.xv-body .btn-add:hover,
body.xv-body .btn-plan:hover,
body.xv-body .btn-green-primary:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
  color: #fff !important;
}

body.xv-body .btn-outline-primary,
body.xv-body .btn-green-outline,
body.xv-body .btn-outline-success {
  background: #fff !important;
  color: var(--xv-accent) !important;
  border-color: #cfe0d3 !important;
}

body.xv-body .btn-outline-primary:hover,
body.xv-body .btn-green-outline:hover,
body.xv-body .btn-outline-success:hover {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent-dark) !important;
  border-color: #b6d1bc !important;
}

body.xv-body .btn-outline-danger,
body.xv-body .btn-danger {
  color: var(--xv-danger) !important;
  border-color: #fecaca !important;
  background: #fff !important;
}

body.xv-body .btn-outline-danger:hover,
body.xv-body .btn-danger:hover {
  background: #fee2e2 !important;
  color: #991b1b !important;
  border-color: #fca5a5 !important;
}

body.xv-body .btn-info,
body.xv-body .btn-outline-info {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border-color: #bfdbfe !important;
}

body.xv-body .btn-info:hover,
body.xv-body .btn-outline-info:hover {
  background: #dbeafe !important;
  color: #1e40af !important;
  border-color: #93c5fd !important;
}

body.xv-body .btn-warning,
body.xv-body .btn-outline-warning {
  background: #fffbeb !important;
  color: #a16207 !important;
  border-color: #fde68a !important;
}

body.xv-body .btn-warning:hover,
body.xv-body .btn-outline-warning:hover {
  background: #fef3c7 !important;
  color: #854d0e !important;
  border-color: #facc15 !important;
}

body.xv-body .btn-secondary,
body.xv-body .btn-outline-secondary,
body.xv-body .btn-outline-dark {
  background: #ffffff !important;
  color: var(--xv-ink-soft) !important;
  border-color: var(--xv-border) !important;
}

body.xv-body .btn-secondary:hover,
body.xv-body .btn-outline-secondary:hover,
body.xv-body .btn-outline-dark:hover {
  background: var(--xv-surface-soft) !important;
  color: var(--xv-ink) !important;
  border-color: var(--xv-border-strong) !important;
}

body.xv-body .badge,
body.xv-body .status-badge,
body.xv-body .role-chip,
body.xv-body .bk-badge,
body.xv-body .state-badge {
  border-radius: 999px !important;
  font-weight: 700 !important;
  letter-spacing: 0.01em;
}

body.xv-body .badge.bg-success,
body.xv-body .badge-success,
body.xv-body .badge-active,
body.xv-body .status-confirmed,
body.xv-body .status-active {
  background: #dcfce7 !important;
  color: #047857 !important;
  border: 1px solid #bbf7d0 !important;
}

body.xv-body .badge.bg-info,
body.xv-body .badge-info,
body.xv-body .pay-paid {
  background: #dbeafe !important;
  color: #1d4ed8 !important;
  border: 1px solid #bfdbfe !important;
}

body.xv-body .badge.bg-warning,
body.xv-body .badge-warning,
body.xv-body .pay-pending,
body.xv-body .status-pending {
  background: #fef3c7 !important;
  color: #a16207 !important;
  border: 1px solid #fde68a !important;
}

body.xv-body .badge.bg-danger,
body.xv-body .badge-danger,
body.xv-body .status-cancelled,
body.xv-body .badge-inactive {
  background: #fee2e2 !important;
  color: #b91c1c !important;
  border: 1px solid #fecaca !important;
}

body.xv-body .form-control,
body.xv-body .form-select,
body.xv-body .form-check-input,
body.xv-body textarea {
  border: 1px solid #d7e0ea !important;
  border-radius: 10px !important;
  background: #fff !important;
  color: var(--xv-ink) !important;
  box-shadow: none !important;
}

body.xv-body .form-control:focus,
body.xv-body .form-select:focus,
body.xv-body .form-check-input:focus,
body.xv-body textarea:focus {
  border-color: #8cb69a !important;
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.12) !important;
}

body.xv-body .input-group-text {
  background: #f8fbf8 !important;
  color: #355042 !important;
  border-color: #d7e0ea !important;
}

body.xv-body .alert {
  border-radius: 12px !important;
  border-width: 1px !important;
  font-weight: 600;
}

body.xv-body .alert-success {
  background: #ecfdf3 !important;
  color: #065f46 !important;
  border-color: #a7f3d0 !important;
}

body.xv-body .alert-warning {
  background: #fffbeb !important;
  color: #92400e !important;
  border-color: #fde68a !important;
}

body.xv-body .alert-danger {
  background: #fef2f2 !important;
  color: #991b1b !important;
  border-color: #fecaca !important;
}

body.xv-body .alert-info {
  background: #eff6ff !important;
  color: #1e40af !important;
  border-color: #bfdbfe !important;
}

body.xv-body .border.p-3,
body.xv-body .border.p-4,
body.xv-body .border.rounded,
body.xv-body form > .border {
  border: 1px solid var(--xv-border) !important;
  border-radius: 18px !important;
  background: var(--xv-surface) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .text-primary {
  color: var(--xv-accent) !important;
}

body.xv-body .text-success {
  color: #047857 !important;
}

body.xv-body .text-info {
  color: #1d4ed8 !important;
}

body.xv-body .text-warning {
  color: #a16207 !important;
}

body.xv-body .text-danger {
  color: var(--xv-danger) !important;
}

body.xv-body .table-dark,
body.xv-body .table-dark th {
  background: #f8fbf8 !important;
  color: #475569 !important;
  border-color: var(--xv-border) !important;
}

body.xv-body dl.row {
  margin: 0;
  padding: 1rem;
  border: 1px solid var(--xv-border);
  border-radius: 16px;
  background: var(--xv-surface);
  box-shadow: var(--xv-shadow);
}

body.xv-body dl.row dt {
  color: var(--xv-muted);
  font-size: 0.76rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

body.xv-body dl.row dd {
  color: var(--xv-ink);
  font-weight: 700;
}

/* Normalise custom page wrappers to one dashboard language */
body.xv-body .svc-page,
body.xv-body .acc-page,
body.xv-body .booking-section,
body.xv-body .booking-container,
body.xv-body .trip-results-page,
body.xv-body .seller-dashboard-shell,
body.xv-body .admin-dashboard-shell {
  background: transparent !important;
}

body.xv-body .services-hero,
body.xv-body .booking-hero,
body.xv-body .acc-header,
body.xv-body .svc-header,
body.xv-body .planner-header,
body.xv-body .services-cards-row,
body.xv-body .services-stats-bar,
body.xv-body .stats-strip,
body.xv-body .table-card,
body.xv-body .table-toolbar {
  background: var(--xv-surface) !important;
  color: var(--xv-ink) !important;
  border: 1px solid var(--xv-border) !important;
  box-shadow: var(--xv-shadow) !important;
  border-radius: 16px !important;
}

body.xv-body .services-hero-overlay {
  display: none !important;
}

body.xv-body .services-hero,
body.xv-body .booking-hero {
  padding: 1.25rem !important;
}

body.xv-body .services-hero-title,
body.xv-body .hero-title,
body.xv-body .planner-header h1,
body.xv-body .svc-header h1,
body.xv-body .acc-header h1 {
  font-size: clamp(1.3rem, 2vw, 1.85rem) !important;
  font-weight: 800 !important;
  color: var(--xv-ink) !important;
}

body.xv-body .services-hero-subtitle,
body.xv-body .hero-subtitle,
body.xv-body .planner-header p,
body.xv-body .svc-header p,
body.xv-body .acc-header p {
  color: var(--xv-muted) !important;
  font-weight: 500;
}

body.xv-body .services-tagline,
body.xv-body .hero-badge {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent) !important;
  border: 1px solid #cfe7d6 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

body.xv-body .services-cards-row {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.9rem !important;
  margin-top: 0.85rem !important;
}

body.xv-body .service-info-card,
body.xv-body .service-info-card--featured {
  padding: 1rem !important;
}

body.xv-body .featured-badge {
  background: var(--xv-accent) !important;
  color: #fff !important;
  border-radius: 999px !important;
}

body.xv-body .services-stats-bar {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.7rem;
  padding: 0.75rem !important;
}

body.xv-body .services-stats-bar .stat-item {
  background: var(--xv-surface-soft) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 12px !important;
  padding: 0.7rem !important;
}

body.xv-body .services-stats-bar .stat-number {
  color: var(--xv-ink) !important;
  font-weight: 800 !important;
}

body.xv-body .services-stats-bar .stat-label {
  color: var(--xv-muted) !important;
  font-weight: 600;
}

body.xv-body .services-stats-bar .stat-divider {
  display: none !important;
}

body.xv-body .step-indicator {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 14px !important;
  box-shadow: var(--xv-shadow) !important;
  padding: 0.8rem !important;
}

body.xv-body .step .step-number {
  background: #edf4ef !important;
  color: #355042 !important;
  border: 1px solid #cfe0d3 !important;
}

body.xv-body .step.active .step-number {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .step .step-label {
  color: var(--xv-muted) !important;
  font-weight: 700;
}

body.xv-body .step.active .step-label {
  color: var(--xv-ink) !important;
}

body.xv-body .form-section {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .step-section-header,
body.xv-body .form-section h3,
body.xv-body .form-section h4 {
  color: var(--xv-ink) !important;
}

body.xv-body .step-section-desc,
body.xv-body .form-section p,
body.xv-body .form-section small {
  color: var(--xv-muted) !important;
}

body.xv-body .empty-state {
  background: var(--xv-surface);
  border: 1px solid var(--xv-border);
  border-radius: 16px;
  box-shadow: var(--xv-shadow);
}

body.xv-body .services-hero *:not(.btn):not(.badge),
body.xv-body .booking-hero *:not(.btn):not(.badge),
body.xv-body .acc-header *:not(.btn):not(.badge),
body.xv-body .svc-header *:not(.btn):not(.badge),
body.xv-body .planner-header *:not(.btn):not(.badge) {
  color: inherit !important;
}

body.xv-body .service-info-card,
body.xv-body .stat-card,
body.xv-body .acc-card,
body.xv-body .service-card,
body.xv-body .category-card,
body.xv-body .booking-card {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

body.xv-body .service-info-card:hover,
body.xv-body .stat-card:hover,
body.xv-body .acc-card:hover,
body.xv-body .service-card:hover,
body.xv-body .category-card:hover,
body.xv-body .booking-card:hover {
  border-color: var(--xv-border-strong) !important;
  transform: translateY(-2px);
  transition:
    transform 0.16s ease,
    border-color 0.16s ease;
}

body.xv-body .btn-group .btn,
body.xv-body .action-group .act-btn,
body.xv-body .action-btn {
  border-radius: 9px !important;
}

body.xv-body .pagination .page-link {
  color: var(--xv-ink-soft) !important;
  border-color: var(--xv-border) !important;
}

body.xv-body .pagination .page-item.active .page-link {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .page-container {
  max-width: 960px;
  margin: 0 auto;
  padding: 1.5rem 1rem 2.5rem;
}

body.xv-body .page-header {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  font-size: clamp(1.35rem, 1.9vw, 1.95rem);
  font-weight: 800;
  margin-bottom: 1rem;
}

body.xv-body .payment-methods {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

body.xv-body .payment-methods img {
  width: 56px;
  height: 36px;
  border-radius: 8px;
  border: 1px solid var(--xv-border);
  background: #fff;
  object-fit: cover;
}

body.xv-body .success-icon,
body.xv-body .error-icon {
  font-size: 2.9rem;
  line-height: 1;
  margin-bottom: 0.8rem;
}

body.xv-body .success-icon {
  color: #16a34a;
}

body.xv-body .error-icon {
  color: #dc2626;
}

body.xv-body .billing-info {
  text-align: left;
  background: var(--xv-surface-soft);
  border: 1px solid var(--xv-border);
  border-radius: 12px;
  padding: 1rem 1.1rem;
}

body.xv-body .billing-info h5 {
  margin-bottom: 0.8rem;
}

body.xv-body .transaction-detail {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.9rem;
  padding: 0.4rem 0;
  border-bottom: 1px dashed #dbe4ee;
}

body.xv-body .transaction-detail:last-child {
  border-bottom: 0;
}

body.xv-body .additional-options-page,
body.xv-body .gd-page,
body.xv-body .ad-page {
  max-width: 1280px;
  margin: 0 auto;
}

/* Phase 3: broaden coverage for detail-heavy and booking/admin utility classes */
body.xv-body .detail-card,
body.xv-body .summary-card,
body.xv-body .section-card,
body.xv-body .info-card,
body.xv-body .review-item,
body.xv-body .offer-card,
body.xv-body .related-card,
body.xv-body .booking-summary-card,
body.xv-body .price-summary-card,
body.xv-body .pricing-card,
body.xv-body .resource-info,
body.xv-body .det-card,
body.xv-body .professional-card,
body.xv-body .asp-card,
body.xv-body .asp-card-info {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 14px !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .cards-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.85rem;
}

body.xv-body .asp,
body.xv-body .asp-body {
  background: transparent !important;
  color: var(--xv-ink) !important;
}

body.xv-body .asp-sidebar-card,
body.xv-body .asp-card,
body.xv-body .asp-empty,
body.xv-body .asp-search-form,
body.xv-body .asp-info-strip {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .asp-search-form {
  border-radius: 16px !important;
}

body.xv-body .asp-hero {
  background: linear-gradient(
    135deg,
    var(--xv-accent-dark) 0%,
    var(--xv-accent) 60%,
    #1f8f58 100%
  ) !important;
}

body.xv-body .asp-field label,
body.xv-body .asp-results-count,
body.xv-body .asp-card-location,
body.xv-body .asp-description,
body.xv-body .asp-price-meta,
body.xv-body .asp-price-note,
body.xv-body .asp-empty p {
  color: var(--xv-muted) !important;
}

body.xv-body .asp-field input,
body.xv-body .asp-field select,
body.xv-body .asp-results-header select {
  background: #fff !important;
  color: var(--xv-ink) !important;
  border: 1px solid var(--xv-border) !important;
}

body.xv-body .asp-field input:focus,
body.xv-body .asp-field select:focus,
body.xv-body .asp-results-header select:focus {
  border-color: #8cb69a !important;
  box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.12) !important;
}

body.xv-body .asp-btn-search,
body.xv-body .asp-btn-availability {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .asp-btn-search:hover,
body.xv-body .asp-btn-availability:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
}

body.xv-body .asp-card-badge,
body.xv-body .asp-rating-badge,
body.xv-body .asp-price-amount,
body.xv-body .asp-price-per-night,
body.xv-body .asp-results-count strong,
body.xv-body .asp-card-info h5 a,
body.xv-body .asp-rating-label {
  color: var(--xv-accent) !important;
}

body.xv-body .asp-amenity,
body.xv-body .asp-range-labels span,
body.xv-body .asp-check-row input[type="checkbox"] {
  accent-color: var(--xv-accent) !important;
}

body.xv-body .payment-page {
  background: var(--xv-bg) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .payment-page .bg-primary {
  background: linear-gradient(
    135deg,
    var(--xv-accent-dark) 0%,
    var(--xv-accent) 100%
  ) !important;
}

body.xv-body .payment-page .progress-steps-container {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .payment-page .step-number {
  background: var(--xv-accent-soft) !important;
  border-color: #cfe7d6 !important;
  color: var(--xv-accent) !important;
}

body.xv-body .payment-page .step-item.active .step-number {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
  box-shadow: 0 8px 18px rgba(22, 101, 52, 0.16) !important;
}

body.xv-body .payment-page .step-item span {
  color: var(--xv-muted) !important;
}

body.xv-body .payment-page .step-item.active span {
  color: var(--xv-ink) !important;
}

body.xv-body .payment-page .step-line,
body.xv-body .payment-page .step-line.active {
  background: #d7e0ea !important;
}

body.xv-body .payment-page .services-banner {
  background: linear-gradient(
    135deg,
    var(--xv-accent) 0%,
    var(--xv-accent-dark) 100%
  ) !important;
  border: 1px solid #2f7d53 !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .payment-page .service-pill,
body.xv-body .payment-page .section-chip {
  background: rgba(255, 255, 255, 0.14) !important;
  border-color: rgba(255, 255, 255, 0.26) !important;
}

body.xv-body .payment-page .info-section,
body.xv-body .payment-page .pay-later-card,
body.xv-body .payment-page .price-summary-card {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .payment-page .price-summary-card {
  border-top: 4px solid var(--xv-accent) !important;
}

body.xv-body .payment-page .info-icon,
body.xv-body .payment-page .secure-badge {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent) !important;
}

body.xv-body .payment-page .btn-primary,
body.xv-body .payment-page .btn.btn-primary {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
}

body.xv-body .payment-page .btn-primary:hover,
body.xv-body .payment-page .btn.btn-primary:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
}

body.xv-body .field-row,
body.xv-body .resource-row,
body.xv-body .detail-cell,
body.xv-body .eq-sg-cell,
body.xv-body .gd-price-row,
body.xv-body .ad-price-row,
body.xv-body .product-extra-list-item {
  border-color: var(--xv-border) !important;
}

body.xv-body .field-label,
body.xv-body .meta-item,
body.xv-body .pricing-info,
body.xv-body .resource-section-header,
body.xv-body .warn-text,
body.xv-body .info-item,
body.xv-body .empty-state p,
body.xv-body .step-label {
  color: var(--xv-muted) !important;
}

body.xv-body .field-value,
body.xv-body .stat-num,
body.xv-body .price-total,
body.xv-body .total,
body.xv-body .amt,
body.xv-body .field-value a {
  color: var(--xv-ink) !important;
}

body.xv-body .step-item,
body.xv-body .service-option,
body.xv-body .resource-action-btn,
body.xv-body .pricing-option,
body.xv-body .hero-select-option,
body.xv-body .quick-link,
body.xv-body .calendar-day,
body.xv-body .booking-event {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  color: var(--xv-ink-soft) !important;
}

body.xv-body .step-item.selected,
body.xv-body .service-option.selected,
body.xv-body .resource-action-btn.selected,
body.xv-body .pricing-option.selected,
body.xv-body .hero-select-option.selected,
body.xv-body .calendar-day.selected,
body.xv-body .booking-event.selected,
body.xv-body .quick-link:hover,
body.xv-body .resource-action-btn:hover {
  background: var(--xv-accent-soft) !important;
  border-color: var(--xv-accent) !important;
  color: var(--xv-accent-dark) !important;
}

body.xv-body .hero-control,
body.xv-body .hero-custom-select,
body.xv-body .search-input,
body.xv-body .form-control-lg,
body.xv-body .form-select-lg {
  background: #fff !important;
  border-color: #d7e0ea !important;
  color: var(--xv-ink) !important;
}

body.xv-body .mgmt-bar,
body.xv-body .booking-hero,
body.xv-body .price-summary,
body.xv-body .progress-steps-container,
body.xv-body .delete-header,
body.xv-body .services-banner {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 14px !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .btn-book-now,
body.xv-body .btn-navigation,
body.xv-body .btn-primary-sm,
body.xv-body .btn-view {
  background: var(--xv-accent) !important;
  border: 1px solid var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .btn-book-now:hover,
body.xv-body .btn-navigation:hover,
body.xv-body .btn-primary-sm:hover,
body.xv-body .btn-view:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
}

body.xv-body .btn-cancel,
body.xv-body .btn-outline,
body.xv-body .btn-warning {
  background: #fff !important;
  color: var(--xv-accent) !important;
  border: 1px solid #cfe0d3 !important;
}

body.xv-body .btn-cancel:hover,
body.xv-body .btn-outline:hover,
body.xv-body .btn-warning:hover {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent-dark) !important;
  border-color: #b6d1bc !important;
}

body.xv-body .btn-delete,
body.xv-body .danger {
  background: #fff !important;
  color: var(--xv-danger) !important;
  border: 1px solid #fecaca !important;
}

body.xv-body .btn-delete:hover,
body.xv-body .danger:hover {
  background: #fef2f2 !important;
  border-color: #fca5a5 !important;
}

/* Phase 2: coverage for remaining custom modules */
body.xv-body .is-invalid {
  border-color: #fca5a5 !important;
  box-shadow: 0 0 0 3px rgba(252, 165, 165, 0.2) !important;
}

body.xv-body .is-valid {
  border-color: #86efac !important;
  box-shadow: 0 0 0 3px rgba(134, 239, 172, 0.2) !important;
}

body.xv-body .auth-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  background:
    radial-gradient(circle at 0% 0%, rgba(22, 101, 52, 0.16), transparent 42%),
    radial-gradient(
      circle at 100% 0%,
      rgba(59, 130, 246, 0.11),
      transparent 38%
    ),
    var(--xv-bg) !important;
}

body.xv-body .auth-card {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 20px !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .auth-card-header {
  background: linear-gradient(
    145deg,
    var(--xv-accent),
    var(--xv-accent-dark)
  ) !important;
  color: #fff !important;
}

body.xv-body .auth-card-header h1,
body.xv-body .auth-card-header p {
  color: #fff !important;
}

body.xv-body .auth-logo {
  background: rgba(255, 255, 255, 0.17) !important;
}

body.xv-body .btn-auth {
  background: var(--xv-accent) !important;
  border: 1px solid var(--xv-accent) !important;
  color: #fff !important;
  border-radius: 12px !important;
}

body.xv-body .btn-auth:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
}

body.xv-body .auth-link {
  color: var(--xv-accent) !important;
}

body.xv-body .auth-link:hover {
  color: var(--xv-accent-dark) !important;
}

body.xv-body .alert-error {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
  color: #991b1b !important;
}

body.xv-body .info-box,
body.xv-body .pw-rules {
  background: var(--xv-accent-soft) !important;
  border: 1px solid #cfe7d6 !important;
  color: #14532d !important;
}

body.xv-body .denied-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px 16px;
  background:
    radial-gradient(circle at 0% 0%, rgba(22, 101, 52, 0.18), transparent 42%),
    radial-gradient(
      circle at 100% 0%,
      rgba(59, 130, 246, 0.1),
      transparent 40%
    ),
    var(--xv-bg) !important;
}

body.xv-body .denied-card {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 22px !important;
  box-shadow: var(--xv-shadow) !important;
  width: 100%;
  max-width: 500px;
  padding: 48px 40px;
  text-align: center;
}

body.xv-body .denied-icon {
  width: 80px;
  height: 80px;
  background: #fef2f2 !important;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 24px;
  font-size: 2rem;
  color: #dc2626 !important;
  border: 3px solid #fecaca;
}

body.xv-body .denied-card h1 {
  color: var(--xv-ink) !important;
  margin-bottom: 12px;
}

body.xv-body .denied-card p {
  color: var(--xv-muted) !important;
}

body.xv-body .denied-code {
  font-size: 5rem;
  font-weight: 900;
  color: #dbe3ee;
  letter-spacing: -0.04em;
  line-height: 1;
  margin-bottom: 8px;
}

body.xv-body .btn-home,
body.xv-body .btn-login {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border-radius: 12px;
  text-decoration: none;
}

body.xv-body .btn-home {
  background: var(--xv-accent) !important;
  color: #fff !important;
  border: 1px solid var(--xv-accent) !important;
  padding: 13px 28px;
  font-size: 1rem;
  font-weight: 700;
}

body.xv-body .btn-home:hover {
  background: var(--xv-accent-dark) !important;
  border-color: var(--xv-accent-dark) !important;
  color: #fff !important;
}

body.xv-body .btn-login {
  background: #fff !important;
  color: var(--xv-accent) !important;
  border: 1px solid #cfe0d3 !important;
  padding: 12px 24px;
  font-size: 0.95rem;
  font-weight: 600;
  margin-left: 12px;
}

body.xv-body .btn-login:hover {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent-dark) !important;
  border-color: #b6d1bc !important;
}

body.xv-body .admin-dash,
body.xv-body .emp-page,
body.xv-body .eq-page,
body.xv-body .det-page,
body.xv-body .del-page {
  background: transparent !important;
  color: var(--xv-ink) !important;
}

body.xv-body .admin-dash .dash-inner,
body.xv-body .emp-page .emp-container,
body.xv-body .eq-page .eq-container,
body.xv-body .det-page .det-wrap,
body.xv-body .det-page .det-shell,
body.xv-body .del-page .del-wrap,
body.xv-body .del-page .del-shell {
  max-width: 1280px;
  margin: 0 auto;
}

body.xv-body .warn-banner {
  background: #fffbeb !important;
  border: 1px solid #fde68a !important;
  color: #92400e !important;
  border-radius: 12px !important;
}

body.xv-body .search-wrap input,
body.xv-body .search-wrap .form-control {
  background: #fff !important;
  border-color: #d7e0ea !important;
  color: var(--xv-ink) !important;
}

body.xv-body .search-wrap svg {
  color: #94a3b8 !important;
}

body.xv-body .filter-count {
  color: var(--xv-muted) !important;
  font-weight: 600 !important;
}

body.xv-body .svc-alert {
  border-radius: 12px !important;
  border: 1px solid transparent !important;
  padding: 0.85rem 1rem !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .svc-alert.success {
  background: #ecfdf3 !important;
  border-color: #a7f3d0 !important;
  color: #065f46 !important;
}

body.xv-body .svc-alert.danger {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
  color: #991b1b !important;
}

body.xv-body .svc-alert.warning {
  background: #fffbeb !important;
  border-color: #fde68a !important;
  color: #92400e !important;
}

body.xv-body .svc-alert .close-x {
  border: 0 !important;
  background: transparent !important;
  color: inherit !important;
  border-radius: 8px !important;
}

body.xv-body .svc-alert .close-x:hover {
  background: rgba(15, 23, 42, 0.08) !important;
}

body.xv-body .category-checkbox-item {
  background: #fff !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 10px !important;
}

body.xv-body .category-checkbox-item:hover {
  border-color: #bcd2c3 !important;
  background: #f8fbf8 !important;
}

body.xv-body .category-checkbox-item.selected {
  border-color: var(--xv-accent) !important;
  background: var(--xv-accent-soft) !important;
}

body.xv-body .location-row .form-control {
  background: #fff !important;
  border-color: #d7e0ea !important;
}

body.xv-body .location-row .remove-location-btn {
  border-radius: 8px !important;
}

body.xv-body .admin-dash .btn-ghost {
  border-color: var(--xv-border) !important;
  color: var(--xv-ink-soft) !important;
  background: #fff !important;
}

body.xv-body .admin-dash .btn-ghost:hover {
  border-color: var(--xv-border-strong) !important;
  background: var(--xv-surface-soft) !important;
}

body.xv-body .admin-dash .btn-solid {
  background: var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .admin-dash .btn-solid:hover {
  background: var(--xv-accent-dark) !important;
}

body.xv-body .alert-section {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 14px !important;
  box-shadow: var(--xv-shadow) !important;
  padding: 1rem;
}

body.xv-body .border-left-primary {
  border-left: 4px solid var(--xv-accent) !important;
}

body.xv-body .border-left-success {
  border-left: 4px solid #16a34a !important;
}

body.xv-body .border-left-info {
  border-left: 4px solid #0284c7 !important;
}

body.xv-body .border-left-warning {
  border-left: 4px solid #d97706 !important;
}

body.xv-body .border-left-danger {
  border-left: 4px solid #dc2626 !important;
}

body.xv-body .border-left-secondary {
  border-left: 4px solid #64748b !important;
}

body.xv-body .border-left-dark {
  border-left: 4px solid #334155 !important;
}

body.xv-body .text-gray-800 {
  color: var(--xv-ink) !important;
}

body.xv-body .text-gray-300 {
  color: #94a3b8 !important;
}

body.xv-body .font-weight-bold {
  font-weight: 700 !important;
}

body.xv-body .font-weight-semibold {
  font-weight: 600 !important;
}

body.xv-body .tp-shell {
  background: var(--xv-bg) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .tp-sidebar {
  background: var(--xv-surface) !important;
  border-right: 1px solid var(--xv-border) !important;
}

body.xv-body .tp-sidebar-header,
body.xv-body .tp-tab-nav,
body.xv-body .tp-day-hdr,
body.xv-body .tp-day-cat-hdr,
body.xv-body .tp-day-res-row,
body.xv-body .tp-day-block,
body.xv-body .tp-day-cat {
  border-color: var(--xv-border) !important;
}

body.xv-body .tp-sidebar-header h2,
body.xv-body .tp-sec-title,
body.xv-body .tp-day-hdr h4,
body.xv-body .tp-res-body h6,
body.xv-body .tp-tl-title {
  color: var(--xv-ink) !important;
}

body.xv-body .tp-sidebar-header p,
body.xv-body .tp-day-res-info p,
body.xv-body .tp-tl-time,
body.xv-body .tp-res-body p,
body.xv-body .tp-budget-pill .lbl,
body.xv-body .tp-budget-pill .sub,
body.xv-body .tp-sb-sub {
  color: var(--xv-muted) !important;
}

body.xv-body .tp-tab-nav a.active,
body.xv-body .tp-tab-nav a:hover,
body.xv-body .tp-row-select.selected,
body.xv-body .tp-cat-tab.active,
body.xv-body .tp-cat-tab:hover {
  color: #fff !important;
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
}

body.xv-body .tp-hero {
  background: linear-gradient(
    135deg,
    var(--xv-accent) 0%,
    var(--xv-accent-dark) 100%
  ) !important;
}

body.xv-body .tp-budget-pill {
  background: var(--xv-accent-soft) !important;
  border-color: #cfe7d6 !important;
}

body.xv-body .tp-budget-pill .amt,
body.xv-body .tp-res-price,
body.xv-body .tp-day-price,
body.xv-body .tp-row-select:hover:not(.selected),
body.xv-body .tp-sec-title i,
body.xv-body .tp-sb-link.active .tp-sb-name,
body.xv-body .tp-sb-link.active .tp-sb-dot,
body.xv-body .tp-check-badge {
  color: var(--xv-accent) !important;
}

body.xv-body .tp-sb-link.active,
body.xv-body .tp-res-card.selected {
  border-color: var(--xv-accent) !important;
}

body.xv-body .tp-res-card,
body.xv-body .tp-day-block,
body.xv-body .tp-day-cat {
  background: var(--xv-surface) !important;
}

body.xv-body .tp-res-card,
body.xv-body .tp-day-block {
  border: 1px solid var(--xv-border) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .tp-res-card.selected {
  box-shadow: 0 0 0 2px var(--xv-accent) !important;
}

body.xv-body .tp-check-badge,
body.xv-body .tp-day-num,
body.xv-body .tp-res-card.selected .tp-check-badge {
  background: var(--xv-accent) !important;
  border-color: var(--xv-accent) !important;
  color: #fff !important;
}

body.xv-body .tp-day-cat-hdr.tourism,
body.xv-body .tp-day-cat-hdr.guide,
body.xv-body .tp-day-cat-hdr.transport,
body.xv-body .tp-day-cat-hdr.accommodation {
  background: var(--xv-surface-soft) !important;
  color: var(--xv-ink-soft) !important;
}

/* Phase 4: full-site legacy surface alignment */
body.xv-body .main-content {
  min-width: 0;
}

body.xv-body .main-content .container-fluid > .container-fluid,
body.xv-body .main-content .container > .container-fluid {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

body.xv-body .card {
  overflow: hidden;
}

body.xv-body .card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  padding: 1rem 1.1rem !important;
}

body.xv-body .card-header::before,
body.xv-body .card-header::after {
  display: none !important;
}

body.xv-body .card-title {
  margin: 0 !important;
  font-size: 1rem;
  font-weight: 800;
}

body.xv-body .card-tools,
body.xv-body .box-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

body.xv-body .card-body {
  padding: 1.1rem !important;
}

body.xv-body .table-responsive {
  overflow-x: auto;
}

body.xv-body .table th,
body.xv-body .table td,
body.xv-body .table-green th,
body.xv-body .table-green td,
body.xv-body .emp-table th,
body.xv-body .emp-table td,
body.xv-body .eq-table th,
body.xv-body .eq-table td {
  padding: 0.95rem 0.85rem !important;
}

body.xv-body .btn-sm,
body.xv-body .btn-group .btn-sm {
  min-width: 2.5rem;
  min-height: 2.35rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

body.xv-body .btn-group,
body.xv-body .btn-group-green,
body.xv-body .action-group,
body.xv-body .actions,
body.xv-body .admin-actions,
body.xv-body .emp-actions,
body.xv-body .eq-actions {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
}

body.xv-body .btn-group > .btn,
body.xv-body .btn-group-green > .btn,
body.xv-body .btn-group-green > button {
  border-radius: 12px !important;
}

body.xv-body .card-green,
body.xv-body .section-card,
body.xv-body .table-card,
body.xv-body .calendar-card,
body.xv-body .card-admin,
body.xv-body .panel,
body.xv-body .box,
body.xv-body .well,
body.xv-body .jumbotron {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 18px !important;
  box-shadow: var(--xv-shadow) !important;
  color: var(--xv-ink) !important;
  overflow: hidden;
}

body.xv-body .card-green .card-body,
body.xv-body .section-card .card-body,
body.xv-body .panel-body,
body.xv-body .box-body,
body.xv-body .well {
  padding: 1.05rem !important;
}

body.xv-body .section-card .card-header,
body.xv-body .panel-heading,
body.xv-body .box-header,
body.xv-body .calendar-header,
body.xv-body .day-header {
  background: var(--xv-surface-soft) !important;
  border-color: var(--xv-border) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .page-header,
body.xv-body .emp-header,
body.xv-body .eq-header,
body.xv-body .del-header,
body.xv-body .det-topbar,
body.xv-body .booking-section-title,
body.xv-body .page-title-row {
  background:
    radial-gradient(circle at top right, rgba(22, 101, 52, 0.08), transparent 32%),
    linear-gradient(145deg, #ffffff 0%, #fbfcfd 100%) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 18px !important;
  box-shadow: var(--xv-shadow) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .page-header,
body.xv-body .emp-header,
body.xv-body .eq-header,
body.xv-body .del-header,
body.xv-body .det-topbar,
body.xv-body .page-title-row {
  padding: 1.1rem 1.2rem !important;
  margin-bottom: 1rem !important;
}

body.xv-body .page-header h1,
body.xv-body .page-header h2,
body.xv-body .emp-header h1,
body.xv-body .eq-header h1,
body.xv-body .del-header h1,
body.xv-body .det-topbar h1,
body.xv-body .det-topbar h2 {
  color: var(--xv-ink) !important;
  margin: 0;
}

body.xv-body .page-header small,
body.xv-body .page-header p,
body.xv-body .emp-header p,
body.xv-body .eq-header p,
body.xv-body .del-header p,
body.xv-body .det-topbar p {
  color: var(--xv-muted) !important;
}

body.xv-body .services-hero,
body.xv-body .booking-hero,
body.xv-body .svc-banner,
body.xv-body .services-banner,
body.xv-body .det-hero,
body.xv-body .acc-card-hero,
body.xv-body .emp-card-header,
body.xv-body .eq-hero {
  background:
    radial-gradient(circle at top right, rgba(22, 101, 52, 0.12), transparent 34%),
    linear-gradient(145deg, #ffffff 0%, #f8fbf8 100%) !important;
  border: 1px solid var(--xv-border) !important;
  color: var(--xv-ink) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .services-hero-overlay,
body.xv-body .det-hero-overlay,
body.xv-body .acc-card-hero-overlay,
body.xv-body .tp-hero::before {
  display: none !important;
}

body.xv-body .service-icon-wrap,
body.xv-body .svc-banner-icon,
body.xv-body .stat-icon,
body.xv-body .eq-icon,
body.xv-body .emp-avatar-fallback,
body.xv-body .acc-card-img .placeholder,
body.xv-body .hero-avatar-fallback {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent) !important;
  border: 1px solid #cfe7d6 !important;
}

body.xv-body .service-features,
body.xv-body .acc-list,
body.xv-body .feature-list,
body.xv-body .meta-list {
  color: var(--xv-muted) !important;
}

body.xv-body .calendar-grid,
body.xv-body .calendar-day,
body.xv-body .calendar-cell,
body.xv-body .month-grid,
body.xv-body .day-header {
  border-color: var(--xv-border) !important;
}

body.xv-body .nav-arrow,
body.xv-body .close,
body.xv-body .modal-close,
body.xv-body .eq-modal-close,
body.xv-body .gallery-delete-btn {
  border: 1px solid var(--xv-border) !important;
  background: #fff !important;
  color: var(--xv-ink-soft) !important;
  border-radius: 12px !important;
}

body.xv-body .nav-arrow:hover,
body.xv-body .close:hover,
body.xv-body .modal-close:hover,
body.xv-body .eq-modal-close:hover,
body.xv-body .gallery-delete-btn:hover {
  background: var(--xv-surface-soft) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .modal,
body.xv-body .eq-modal-overlay {
  backdrop-filter: blur(8px);
}

body.xv-body .eq-modal-dialog,
body.xv-body .modal-dialog .modal-content,
body.xv-body .modal-content {
  border-radius: 22px !important;
}

body.xv-body .primary-image-preview,
body.xv-body .gallery-thumb,
body.xv-body .emp-avatar,
body.xv-body .hero-avatar,
body.xv-body .acc-card-img img,
body.xv-body .eq-thumb,
body.xv-body .product-image,
body.xv-body .booking-image {
  border: 1px solid var(--xv-border) !important;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

body.xv-body .badge-secondary,
body.xv-body .badge.bg-secondary,
body.xv-body .badge-neutral {
  background: #e2e8f0 !important;
  color: #334155 !important;
  border: 1px solid #cbd5e1 !important;
}

body.xv-body .tp-shell {
  max-width: 1440px;
  height: calc(100vh - 8.25rem) !important;
  min-height: 660px;
  margin: 0 auto 2rem;
  border: 1px solid var(--xv-border);
  border-radius: 24px;
  box-shadow: var(--xv-shadow);
  overflow: hidden;
}

body.xv-body .tp-hero {
  padding: 1.35rem 1.5rem !important;
  background:
    radial-gradient(circle at top right, rgba(255, 255, 255, 0.16), transparent 34%),
    linear-gradient(135deg, var(--xv-accent) 0%, var(--xv-accent-dark) 100%) !important;
}

body.xv-body .tp-hero h1,
body.xv-body .tp-hero p,
body.xv-body .tp-hero-meta span {
  color: #fff !important;
}

body.xv-body .tp-main {
  background: var(--xv-bg) !important;
}

body.xv-body .tp-section {
  border-color: var(--xv-border) !important;
}

body.xv-body .route-tripplanner-results .main-content > .container-fluid,
body.route-tripplanner-results.xv-body .main-content > .container-fluid {
  max-width: none;
}

body.xv-body .route-booking-index .services-hero,
body.route-booking-index.xv-body .services-hero {
  margin-bottom: 1rem;
}

body.xv-body .route-booking-index .services-hero .container,
body.route-booking-index.xv-body .services-hero .container {
  max-width: 1280px;
}

body.xv-body .route-booking-index .services-cards-row,
body.route-booking-index.xv-body .services-cards-row {
  box-shadow: none !important;
  border: 0 !important;
  background: transparent !important;
}

body.xv-body .booking-section {
  width: min(100% - 2rem, 1280px) !important;
  max-width: 1280px !important;
  margin: 0 auto 2rem;
}

body.xv-body .booking-section > .row:first-child {
  border-radius: 18px !important;
}

body.xv-body .booking-section .calendar-grid {
  width: 100% !important;
  overflow: hidden !important;
}

body.xv-body .booking-section .calendar-week {
  display: grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  width: 100% !important;
}

body.xv-body .booking-section .calendar-day,
body.xv-body .booking-section .day-number,
body.xv-body .booking-section .day-events,
body.xv-body .booking-section .booking-event {
  min-width: 0 !important;
  max-width: 100% !important;
}

body.xv-body .list-view,
body.xv-body #listView,
body.xv-body #calendarView {
  min-width: 0;
}

body.xv-body .empty-state,
body.xv-body .text-center.py-4,
body.xv-body .text-center.py-5,
body.xv-body .alert.alert-info {
  border: 1px solid var(--xv-border) !important;
  border-radius: 18px !important;
  background: var(--xv-surface) !important;
  color: var(--xv-muted) !important;
  box-shadow: var(--xv-shadow) !important;
}

body.xv-body .text-center.py-4,
body.xv-body .text-center.py-5 {
  padding: 2rem 1rem !important;
}

body.xv-body .alert.alert-info h4,
body.xv-body .alert.alert-info h5,
body.xv-body .text-center.py-4 h4,
body.xv-body .text-center.py-5 h4 {
  color: var(--xv-ink) !important;
}

body.xv-body .alert-dismissible .close,
body.xv-body .alert-dismissible .btn-close {
  box-shadow: none !important;
}

body.xv-body .route-booking-history .card,
body.xv-body .route-booking-sellerbookings .card,
body.xv-body .route-booking-sellerbookingdetails .card,
body.xv-body .route-booking-bookinghistorydetails .card,
body.route-booking-history.xv-body .card,
body.route-booking-sellerbookings.xv-body .card,
body.route-booking-sellerbookingdetails.xv-body .card,
body.route-booking-bookinghistorydetails.xv-body .card {
  border-radius: 20px !important;
}

body.xv-body .route-accommodation-edit .page-header,
body.route-accommodation-edit.xv-body .page-header {
  background:
    radial-gradient(circle at top right, rgba(22, 101, 52, 0.08), transparent 32%),
    linear-gradient(145deg, #ffffff 0%, #fbfcfd 100%) !important;
}

body.xv-body .route-accommodation-edit .btn-outline-light,
body.route-accommodation-edit.xv-body .btn-outline-light {
  color: var(--xv-accent) !important;
  border-color: #cfe0d3 !important;
  background: #fff !important;
}

body.xv-body .route-accommodation-edit .btn-outline-light:hover,
body.route-accommodation-edit.xv-body .btn-outline-light:hover {
  color: var(--xv-accent-dark) !important;
  background: var(--xv-accent-soft) !important;
}

body.xv-body .del-wrapper,
body.xv-body .det-wrap,
body.xv-body .det-shell,
body.xv-body .emp-container,
body.xv-body .eq-container,
body.xv-body .acc-container {
  max-width: 1280px;
  margin-inline: auto;
}

body.xv-body .det-card,
body.xv-body .del-card,
body.xv-body .emp-card,
body.xv-body .eq-card,
body.xv-body .acc-card {
  background: var(--xv-surface) !important;
  border: 1px solid var(--xv-border) !important;
  border-radius: 18px !important;
  box-shadow: var(--xv-shadow) !important;
  color: var(--xv-ink) !important;
}

body.xv-body .emp-table,
body.xv-body .eq-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

body.xv-body .emp-table thead th,
body.xv-body .eq-table thead th {
  background: #f8fbf8 !important;
  color: #475569 !important;
  border-bottom: 1px solid var(--xv-border) !important;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.xv-body .emp-row,
body.xv-body .eq-row {
  background: var(--xv-surface) !important;
}

body.xv-body .emp-row:hover,
body.xv-body .eq-row:hover {
  background: #f8fbf8 !important;
}

body.xv-body .text-green-dark,
body.xv-body .text-green-mid,
body.xv-body .month-label,
body.xv-body .booking-section-title,
body.xv-body .acc-name,
body.xv-body .hero-name,
body.xv-body .emp-name,
body.xv-body .eq-name {
  color: var(--xv-ink) !important;
}

body.xv-body .badge-green,
body.xv-body .acc-type-badge,
body.xv-body .tag,
body.xv-body .pill,
body.xv-body .chip {
  background: var(--xv-accent-soft) !important;
  color: var(--xv-accent) !important;
  border: 1px solid #cfe7d6 !important;
  border-radius: 999px !important;
  font-weight: 700 !important;
}

@media (max-width: 991.98px) {
  body.xv-body.has-top-nav .main-content:not(.with-sidebar) {
    padding-top: 5.35rem !important;
  }

  body.xv-body .services-stats-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.xv-body .tp-shell {
    height: auto !important;
    min-height: 0;
    display: block;
  }

  body.xv-body .tp-sidebar {
    width: 100% !important;
    min-width: 0 !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--xv-border) !important;
  }

  body.xv-body .main-content > .container-fluid {
    padding-left: 0.8rem;
    padding-right: 0.8rem;
  }

  body.xv-body .transaction-detail {
    flex-direction: column;
    gap: 0.25rem;
  }

  body.xv-body .btn-login {
    margin-left: 0;
    margin-top: 10px;
  }
}

@media (max-width: 767.98px) {
  body.xv-body .card,
  body.xv-body .table-responsive,
  body.xv-body .list-group,
  body.xv-body .services-hero,
  body.xv-body .booking-hero,
  body.xv-body .acc-header,
  body.xv-body .svc-header,
  body.xv-body .planner-header,
  body.xv-body .table-card,
  body.xv-body .table-toolbar {
    border-radius: 12px !important;
  }

  body.xv-body .display-6 {
    font-size: 1.65rem;
  }

  body.xv-body .services-cards-row,
  body.xv-body .services-stats-bar {
    grid-template-columns: 1fr;
  }

  body.xv-body .card-header {
    align-items: flex-start;
    flex-direction: column;
  }

  body.xv-body .card-tools,
  body.xv-body .box-tools {
    width: 100%;
    justify-content: flex-start;
  }
}
