/*
  GO India RIDE professional purple theme
  Additive override layer: keeps existing page CSS intact and applies one consistent palette site-wide.
*/

:root {
  --gir-purple-blue: #667eea;
  --gir-purple-deep: #764ba2;
  --gir-purple-ink: #241a47;
  --gir-purple-text: #24213d;
  --gir-purple-muted: #6b6685;
  --gir-purple-surface: #ffffff;
  --gir-purple-page: #f7f5ff;
  --gir-purple-page-soft: #fbfaff;
  --gir-purple-border: rgba(102, 126, 234, 0.18);
  --gir-purple-shadow: 0 18px 44px rgba(72, 56, 140, 0.16);
  --gir-purple-shadow-soft: 0 10px 26px rgba(72, 56, 140, 0.1);
  --gir-purple-gradient: linear-gradient(135deg, var(--gir-purple-blue) 0%, var(--gir-purple-deep) 100%);
  --gir-purple-gradient-soft: linear-gradient(135deg, rgba(102, 126, 234, 0.13) 0%, rgba(118, 75, 162, 0.14) 100%);

  --primary-color: var(--gir-purple-blue) !important;
  --primary-dark: var(--gir-purple-deep) !important;
  --secondary-color: var(--gir-purple-deep) !important;
  --secondary-dark: #5f3f91 !important;
  --info-color: var(--gir-purple-blue) !important;
  --bg-color: var(--gir-purple-page) !important;
  --bg-secondary: var(--gir-purple-page) !important;
  --bg-card: var(--gir-purple-surface) !important;
  --brand-bg-deep: var(--gir-purple-blue) !important;
  --brand-bg-mid: var(--gir-purple-deep) !important;
  --brand-ocean: var(--gir-purple-blue) !important;
  --brand-text: var(--gir-purple-text) !important;
  --brand-subtext: var(--gir-purple-muted) !important;
  --brand-border: var(--gir-purple-border) !important;
}

html {
  accent-color: var(--gir-purple-blue);
}

body {
  background:
    radial-gradient(900px 360px at -8% -12%, rgba(102, 126, 234, 0.13), transparent 62%),
    radial-gradient(780px 320px at 108% 0%, rgba(118, 75, 162, 0.12), transparent 62%),
    linear-gradient(180deg, var(--gir-purple-page-soft) 0%, var(--gir-purple-page) 100%) !important;
  color: var(--gir-purple-text);
}

body.dark-mode,
body.night-mode,
[data-theme="dark"] body {
  --gir-purple-page: #17132a;
  --gir-purple-page-soft: #201a39;
  --gir-purple-surface: #251f3f;
  --gir-purple-text: #f6f3ff;
  --gir-purple-muted: #cbc4e8;
  --gir-purple-border: rgba(184, 169, 255, 0.22);
}

.navbar,
.top-nav,
.topbar,
.app-header,
.dashboard-header,
.admin-header,
.site-header,
.main-header,
.mobile-header,
.hero,
.footer,
footer {
  background: var(--gir-purple-gradient) !important;
  color: #ffffff !important;
  box-shadow: 0 14px 34px rgba(72, 56, 140, 0.22) !important;
}

.navbar *,
.top-nav *,
.topbar *,
.app-header *,
.dashboard-header *,
.admin-header *,
.site-header *,
.main-header *,
.mobile-header *,
.hero *,
.footer *,
footer * {
  color: inherit;
}

.sidebar,
.side-nav,
.admin-sidebar,
.dashboard-sidebar,
.bottom-nav,
.mobile-nav {
  border-color: var(--gir-purple-border) !important;
  box-shadow: var(--gir-purple-shadow-soft) !important;
}

.sidebar,
.side-nav,
.admin-sidebar,
.dashboard-sidebar {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 245, 255, 0.98) 100%) !important;
}

a,
.nav-link,
.menu-item,
.sidebar-item,
.tab,
.tab-btn,
.bottom-nav .nav-btn {
  color: var(--gir-purple-deep);
}

.nav-link:hover,
.menu-item:hover,
.sidebar-item:hover,
.tab:hover,
.tab-btn:hover,
.bottom-nav .nav-btn:hover,
.nav-link.active,
.menu-item.active,
.sidebar-item.active,
.tab.active,
.tab-btn.active,
.bottom-nav .nav-btn.active {
  background: var(--gir-purple-gradient-soft) !important;
  color: var(--gir-purple-ink) !important;
}

button,
.btn,
.btn-primary,
.btn-signup,
.primary-btn,
.cta-btn,
.submit-btn,
.book-btn,
.booking-btn,
.action-btn,
.driver-action-btn,
.donation-action-btn.donate,
input[type="submit"] {
  background: var(--gir-purple-gradient) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
  box-shadow: 0 12px 28px rgba(102, 126, 234, 0.26) !important;
}

button:hover,
.btn:hover,
.btn-primary:hover,
.primary-btn:hover,
.cta-btn:hover,
.submit-btn:hover,
.book-btn:hover,
.booking-btn:hover,
.action-btn:hover,
.driver-action-btn:hover,
.donation-action-btn.donate:hover {
  filter: saturate(1.04) brightness(1.03);
  box-shadow: 0 16px 34px rgba(102, 126, 234, 0.34) !important;
}

.btn-secondary,
.btn-login,
.donation-action-btn.skip,
button.secondary,
button.cancel,
button.close,
.close-btn {
  background: rgba(255, 255, 255, 0.92) !important;
  border: 1px solid var(--gir-purple-border) !important;
  color: var(--gir-purple-deep) !important;
  box-shadow: var(--gir-purple-shadow-soft) !important;
}

.card,
.feature-card,
.pricing-card,
.service-card,
.contact-card,
.dashboard-card,
.stat-card,
.widget,
.panel,
.quick-booking-card,
.wallet-card,
.wallet-panel-card,
.wallet-form-card,
.wallet-ledger-card,
.profile-card,
.tourism-card,
.travel-card,
.offer-card,
.proof-card,
.support-option,
.action-card,
.booking-card,
.ride-card,
.transaction-history,
.modal-content,
.table-container {
  border-color: var(--gir-purple-border) !important;
  box-shadow: var(--gir-purple-shadow-soft) !important;
}

.feature-card:hover,
.pricing-card:hover,
.service-card:hover,
.contact-card:hover,
.dashboard-card:hover,
.stat-card:hover,
.quick-booking-card:hover,
.wallet-card:hover,
.tourism-card:hover,
.support-option:hover,
.action-card:hover,
.booking-card:hover,
.ride-card:hover {
  border-color: rgba(102, 126, 234, 0.34) !important;
  box-shadow: var(--gir-purple-shadow) !important;
}

.quick-action-btn,
.booking-type-btn,
.action-card,
.support-option,
.feature-card i,
.stat-card i,
.wallet-icon,
.service-icon,
.icon-card,
.dashboard-icon,
.profile-icon,
.user-avatar,
.driver-avatar {
  background: var(--gir-purple-gradient) !important;
  color: #ffffff !important;
}

.quick-action-btn,
.booking-type-btn {
  border: 0 !important;
  border-radius: 18px !important;
  min-height: 132px;
}

.quick-action-btn *,
.booking-type-btn *,
.action-card *,
.wallet-icon *,
.service-icon *,
.icon-card *,
.dashboard-icon * {
  color: inherit !important;
}

.booking-type-btn:hover,
.booking-type-btn.active,
.quick-action-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 38px rgba(102, 126, 234, 0.34) !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  color: var(--gir-purple-ink);
}

.section-title,
.page-title,
.dashboard-title,
.card-title,
.stat-value,
.wallet-panel-value,
.price {
  color: var(--gir-purple-ink) !important;
}

.badge,
.chip,
.tag,
.status,
.pill {
  background: var(--gir-purple-gradient-soft) !important;
  border-color: var(--gir-purple-border) !important;
  color: var(--gir-purple-deep) !important;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--gir-purple-blue) !important;
  box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.16) !important;
  outline: none !important;
}

table th,
.table-header,
.card-header,
.modal-header {
  background: var(--gir-purple-gradient) !important;
  color: #ffffff !important;
}

::-webkit-scrollbar-thumb {
  background: linear-gradient(180deg, var(--gir-purple-blue), var(--gir-purple-deep));
}

::selection {
  background: rgba(102, 126, 234, 0.28);
}

@media (max-width: 640px) {
  .quick-action-btn,
  .booking-type-btn {
    min-height: 112px;
  }
}

/* Final site-wide brand completion: overrides older tricolor/inline accents without deleting them. */
body .navbar,
body nav.navbar,
body header,
body .top-nav,
body .topbar,
body .site-header,
body .main-header,
body .dashboard-header,
body .admin-header,
body .app-header {
  background: var(--gir-purple-gradient) !important;
  border-color: rgba(255, 255, 255, 0.18) !important;
  color: #ffffff !important;
}

body .navbar .container,
body .navbar .logo,
body .navbar .logo i,
body .navbar-links,
body .navbar-links a,
body .top-nav .logo,
body .top-nav a,
body header a,
body header span,
body nav.navbar a,
body nav.navbar span,
body nav.navbar i {
  color: #ffffff !important;
}

body .navbar-links a:not(.btn-login):not(.btn-signup):not(.btn-admin),
body .nav-links a:not(.btn-login):not(.btn-signup):not(.btn-admin) {
  background: transparent !important;
  border-radius: 10px;
  text-shadow: 0 1px 1px rgba(26, 18, 67, 0.2);
}

body .navbar-links a:not(.btn-login):not(.btn-signup):not(.btn-admin):hover,
body .nav-links a:not(.btn-login):not(.btn-signup):not(.btn-admin):hover {
  background: rgba(255, 255, 255, 0.16) !important;
  color: #ffffff !important;
}

body .navbar-switchers select,
body .navbar select,
body .language-selector,
body .currency-selector {
  background: rgba(255, 255, 255, 0.94) !important;
  color: var(--gir-purple-ink) !important;
  border: 1px solid rgba(255, 255, 255, 0.38) !important;
  box-shadow: 0 10px 24px rgba(36, 26, 71, 0.18) !important;
}

body .btn-login,
body .btn-signup,
body .btn-admin,
body .navbar .btn-login,
body .navbar .btn-signup,
body .navbar .btn-admin {
  border: 1px solid rgba(255, 255, 255, 0.28) !important;
  color: #ffffff !important;
  background: rgba(36, 26, 71, 0.72) !important;
}

body .btn-login:hover,
body .btn-signup:hover,
body .btn-admin:hover,
body .navbar .btn-login:hover,
body .navbar .btn-signup:hover,
body .navbar .btn-admin:hover {
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--gir-purple-deep) !important;
}

body .hero,
body section.hero,
body .hero-section,
body .page-hero,
body .dashboard-hero {
  background:
    radial-gradient(520px 240px at 8% 18%, rgba(255, 255, 255, 0.08), transparent 60%),
    radial-gradient(460px 260px at 92% 18%, rgba(255, 255, 255, 0.1), transparent 62%),
    var(--gir-purple-gradient) !important;
  color: #ffffff !important;
}

body .hero h1,
body .hero h1 *,
body .hero h2,
body .hero h2 *,
body .hero h3,
body .hero h3 *,
body .hero p,
body .hero p *,
body .hero span,
body .hero i,
body .hero-content,
body .hero-content * {
  color: #ffffff !important;
}

body .hero p,
body .hero .subtitle,
body .hero .tagline {
  color: rgba(255, 255, 255, 0.9) !important;
  opacity: 1 !important;
}

body .hero .btn-secondary,
body .hero button.btn-secondary,
body .hero a.btn-secondary {
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--gir-purple-ink) !important;
  border-color: rgba(255, 255, 255, 0.7) !important;
}

body .hero .btn-secondary *,
body .hero button.btn-secondary *,
body .hero a.btn-secondary * {
  color: inherit !important;
}

body .hero .btn-primary,
body .hero a.btn-primary,
body .hero button.btn-primary {
  background: rgba(36, 26, 71, 0.88) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.22) !important;
}

body .hero .btn-primary *,
body .hero a.btn-primary *,
body .hero button.btn-primary * {
  color: inherit !important;
}

body .quick-action-btn,
body .quick-action-btn *,
body .booking-type-btn,
body .booking-type-btn *,
body .dashboard-action,
body .dashboard-action *,
body .action-card,
body .action-card * {
  color: #ffffff !important;
}

body .quick-action-btn,
body .booking-type-btn,
body .dashboard-action,
body .action-card {
  background: var(--gir-purple-gradient) !important;
}

body [style*="#ff9933"],
body [style*="#138808"],
body [style*="#0B1F3A"],
body [style*="#0b1f3a"],
body [style*="#2e7d32"],
body [style*="#1565c0"],
body [style*="#e65100"] {
  border-color: var(--gir-purple-border) !important;
  color: var(--gir-purple-deep) !important;
}

body i[style*="#0B1F3A"],
body i[style*="#0b1f3a"],
body i[style*="#138808"],
body i[style*="#ff9933"] {
  color: var(--gir-purple-blue) !important;
}

body [style*="background: #e8f5e9"],
body [style*="background:#e8f5e9"],
body [style*="background: #e3f2fd"],
body [style*="background:#e3f2fd"],
body [style*="background: #fff3e0"],
body [style*="background:#fff3e0"],
body [style*="background: #fff7ed"],
body [style*="background:#fff7ed"] {
  background: var(--gir-purple-gradient-soft) !important;
  color: var(--gir-purple-deep) !important;
}

body [style*="border-bottom: 4px solid #0B1F3A"],
body [style*="border-bottom:4px solid #0B1F3A"],
body [style*="border: 2px solid #0B1F3A"],
body [style*="border:2px solid #0B1F3A"] {
  border-color: var(--gir-purple-border) !important;
}

body [style*="color: #333"],
body [style*="color:#333"],
body [style*="color: #0B1F3A"],
body [style*="color:#0B1F3A"],
body [style*="color: #0b1f3a"],
body [style*="color:#0b1f3a"] {
  color: var(--gir-purple-ink) !important;
}

body [style*="color: #666"],
body [style*="color:#666"],
body [style*="color: #999"],
body [style*="color:#999"] {
  color: var(--gir-purple-muted) !important;
}

body .card,
body .feature-card,
body .pricing-card,
body .service-card,
body .contact-card,
body .stat-card,
body .quick-booking-card,
body .wallet-card,
body .profile-card,
body .tourism-card,
body .travel-card,
body .support-option,
body .booking-card,
body .ride-card,
body .modal-content,
body [style*="background: white"],
body [style*="background:white"] {
  border-color: var(--gir-purple-border) !important;
}

/* Runtime global-ui fallback: wins over dynamically injected old tricolor styles. */
html body.goi-global-theme nav.navbar.navbar,
html body.goi-global-theme .navbar.navbar,
html body.goi-global-theme .top-nav.top-nav,
html body.goi-global-theme .portal-header,
html body.goi-global-theme .header,
html body.goi-global-theme .app-header,
html body.goi-global-theme .main-header,
html body.goi-global-theme .sidebar-header,
html body.goi-global-theme .dashboard-header,
html body.goi-global-theme .topbar {
  background: var(--gir-purple-gradient) !important;
  color: #ffffff !important;
  border-bottom-color: rgba(255, 255, 255, 0.18) !important;
  box-shadow: 0 12px 28px rgba(72, 56, 140, 0.22) !important;
}

html body.goi-global-theme nav.navbar.navbar .logo,
html body.goi-global-theme nav.navbar.navbar .logo span,
html body.goi-global-theme nav.navbar.navbar .logo i,
html body.goi-global-theme nav.navbar.navbar .navbar-links a,
html body.goi-global-theme .top-nav.top-nav a,
html body.goi-global-theme .top-nav.top-nav .logo,
html body.goi-global-theme .top-nav.top-nav .logo span,
html body.goi-global-theme .top-nav.top-nav .logo i {
  color: #ffffff !important;
}

html body.goi-global-theme nav.navbar.navbar .btn-login,
html body.goi-global-theme nav.navbar.navbar .btn-signup,
html body.goi-global-theme nav.navbar.navbar .btn-admin {
  background: rgba(36, 26, 71, 0.76) !important;
  color: #ffffff !important;
  border-color: rgba(255, 255, 255, 0.26) !important;
}

html body.goi-global-theme nav.navbar.navbar .btn-login:hover,
html body.goi-global-theme nav.navbar.navbar .btn-signup:hover,
html body.goi-global-theme nav.navbar.navbar .btn-admin:hover {
  background: rgba(255, 255, 255, 0.96) !important;
  color: var(--gir-purple-deep) !important;
}

/* Portal page-name readability: keeps every app surface clearly named. */
body .portal-name {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin-left: 0.4rem;
  padding: 0.22rem 0.65rem;
  border-left: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
  color: #ffffff !important;
  font-size: clamp(0.78rem, 1.6vw, 0.9rem);
  font-weight: 700;
  letter-spacing: 0;
  white-space: nowrap;
}

body .portal-page-header,
body .app-loading-shell {
  margin: 0 0 1rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--gir-purple-border);
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(102, 126, 234, 0.14), rgba(118, 75, 162, 0.12));
  color: var(--gir-purple-ink) !important;
  box-shadow: 0 10px 24px rgba(36, 26, 71, 0.08);
}

body .portal-page-header h1,
body .app-loading-shell h1 {
  margin: 0;
  color: var(--gir-purple-ink) !important;
  font-size: clamp(1.45rem, 4.2vw, 2rem);
  line-height: 1.15;
  letter-spacing: 0;
}

body .portal-page-header p,
body .app-loading-shell p {
  margin: 0.35rem 0 0;
  color: var(--gir-purple-muted) !important;
  font-size: clamp(0.94rem, 2.2vw, 1.05rem);
}

body .app-loading-shell {
  max-width: 720px;
  margin: 2rem auto;
}

@media (max-width: 560px) {
  body .portal-name {
    margin-left: 0;
    padding: 0.18rem 0.5rem;
  }

  body .top-nav .logo,
  body .navbar .logo {
    flex-wrap: wrap;
  }
}

/* Customer dashboard mobile fit overrides loaded after the global button theme. */
@media (max-width: 768px) {
  body.customer-dashboard-page .tab-buttons .tab-button {
    border-radius: 8px !important;
    color: #ffffff !important;
  }

  body.customer-dashboard-page .tab-buttons .tab-button.active {
    background: #ffffff !important;
    color: #11194a !important;
    border-color: rgba(102, 126, 234, 0.45) !important;
    box-shadow: inset 0 0 0 1px rgba(102, 126, 234, 0.18), 0 8px 18px rgba(17, 25, 74, 0.08) !important;
  }

  body.customer-dashboard-page .tab-buttons .tab-button.active i,
  body.customer-dashboard-page .tab-buttons .tab-button.active span {
    color: inherit !important;
  }
}
