/* Haresh Tours & Travels — light purple theme (global tokens + Bootstrap polish) */
:root {
  --ht-purple-950: #1e1033;
  --ht-purple-900: #2e1065;
  --ht-purple-800: #4c1d95;
  --ht-purple-700: #5b21b6;
  --ht-purple-600: #6d28d9;
  --ht-purple-500: #7c3aed;
  --ht-purple-400: #8b5cf6;
  --ht-purple-300: #a78bfa;
  --ht-purple-200: #c4b5fd;
  --ht-purple-100: #ede9fe;
  --ht-purple-50: #f5f3ff;
  --ht-surface: #ffffff;
  --ht-bg: #faf8ff;
  --ht-bg-2: #f3e8ff;
  --ht-text: #0f0f1a;
  --ht-text-muted: #3d4556;
  --ht-success-bg: #ecfdf5;
  --ht-success-border: #6ee7b7;
  --ht-danger-bg: #fef2f2;
  --ht-danger-border: #fca5a5;
  --ht-border: rgba(91, 33, 182, 0.14);
  --ht-border-strong: rgba(91, 33, 182, 0.22);
  --ht-shadow-sm: 0 1px 2px rgba(46, 16, 101, 0.05);
  --ht-shadow: 0 4px 20px rgba(46, 16, 101, 0.07);
  --ht-shadow-lg: 0 16px 48px rgba(46, 16, 101, 0.1);
  --ht-radius: 12px;
  --ht-radius-sm: 10px;
  --ht-font: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: var(--ht-font);
  color: var(--ht-text);
  font-weight: 500;
  background-color: var(--ht-bg);
  background-image: radial-gradient(
      ellipse 120% 80% at 50% -20%,
      rgba(167, 139, 250, 0.22),
      transparent 55%
    ),
    radial-gradient(
      ellipse 80% 50% at 100% 50%,
      rgba(196, 181, 253, 0.12),
      transparent 45%
    ),
    linear-gradient(180deg, var(--ht-bg) 0%, var(--ht-bg-2) 100%);
  background-attachment: fixed;
  min-height: 100vh;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  text-rendering: optimizeLegibility;
}

/* Bootstrap alignment: primary actions in purple */
.btn-primary {
  background: linear-gradient(
    135deg,
    var(--ht-purple-600) 0%,
    var(--ht-purple-700) 100%
  ) !important;
  border-color: var(--ht-purple-600) !important;
  font-weight: 700;
  letter-spacing: 0.01em;
  border-radius: 10px;
  box-shadow: var(--ht-shadow-sm);
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.btn-primary:hover,
.btn-primary:focus {
  background: linear-gradient(
    135deg,
    var(--ht-purple-500) 0%,
    var(--ht-purple-600) 100%
  ) !important;
  border-color: var(--ht-purple-500) !important;
  box-shadow: var(--ht-shadow);
  transform: translateY(-1px);
}

.btn-primary:active {
  transform: translateY(0);
}

.btn-lg {
  border-radius: 12px;
}

.form-control {
  border-radius: 10px;
  border: 1px solid var(--ht-border-strong);
  color: var(--ht-text);
  font-weight: 500;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.form-control:focus {
  border-color: var(--ht-purple-400);
  box-shadow: 0 0 0 3px rgba(139, 92, 246, 0.2);
}

/* Tables */
.table {
  border-radius: var(--ht-radius);
  overflow: hidden;
  box-shadow: var(--ht-shadow-sm);
}

.table thead th {
  background: linear-gradient(
    180deg,
    var(--ht-purple-100) 0%,
    rgba(237, 233, 254, 0.85) 100%
  );
  color: var(--ht-purple-950);
  font-weight: 700;
  border-bottom: 2px solid var(--ht-border);
}

.table tbody td {
  color: var(--ht-text);
  font-weight: 500;
}

.table-striped tbody tr:nth-of-type(odd) {
  background-color: rgba(245, 243, 255, 0.65);
}

hr {
  border: 0;
  border-top: 1px solid var(--ht-border);
  opacity: 1;
  margin: 1.25rem 0;
}

/* Alerts */
.alert {
  border-radius: var(--ht-radius-sm);
  border: 1px solid transparent;
}

.alert-primary {
  background: linear-gradient(
    135deg,
    rgba(245, 243, 255, 0.95) 0%,
    rgba(237, 233, 254, 0.9) 100%
  );
  border-color: var(--ht-purple-200);
  color: var(--ht-purple-950);
  font-weight: 600;
}

.alert-success {
  background: var(--ht-success-bg);
  border-color: var(--ht-success-border);
  color: #064e3b;
  font-weight: 600;
}

.alert-danger {
  background: var(--ht-danger-bg);
  border-color: var(--ht-danger-border);
  color: #7f1d1d;
  font-weight: 600;
}

/* Home / index — solid type reads sharper than gradient clip on many displays */
.ht-hero-title {
  font-size: min(10vw, 3.25rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: var(--ht-purple-950);
  margin-bottom: 0.5rem;
  -webkit-font-smoothing: subpixel-antialiased;
}

.ht-welcome-badge {
  display: inline-block;
  font-size: min(5vw, 1.15rem);
  font-weight: 700;
  color: var(--ht-purple-950);
  background: var(--ht-surface);
  border: 1px solid var(--ht-border);
  border-radius: 999px;
  padding: 0.5rem 1.25rem;
  box-shadow: var(--ht-shadow);
}

/* Login page shell (defaults; login.css overrides spacing) */
.ht-login-wrap {
  color: var(--ht-purple-900);
}

.ht-login-brand {
  font-size: min(12vw, 3.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--ht-purple-950);
  -webkit-font-smoothing: subpixel-antialiased;
}

/* Login card padding is defined in login.css (.ht-login-inner) to avoid double padding with theme */
.ht-login-card {
  background: var(--ht-surface);
  border-radius: 24px;
  box-shadow: var(--ht-shadow-lg);
  border: 1px solid var(--ht-border);
  max-width: 440px;
  margin-left: auto;
  margin-right: auto;
}

/* Display / minimal pages */
.ht-page-title {
  font-weight: 800;
  color: var(--ht-purple-950);
  margin-top: 2rem;
}
