/*
 * E-Go.City White-Label Theme
 * Brand palette derived from the supplied Brand Identity:
 * Deep Blue #0B1D2D | Teal #00A7B5 | Green #7CCB48
 * Light Blue #E6F4FA | Light Gray #F2F4F7 | Slate #64748B
 * Typography: DM Sans (headings), Inter (body)
 */
:root {
  --ego-deep-blue: #0B1D2D;
  --ego-deep-blue-2: #091E31;
  --ego-teal: #00A7B5;
  --ego-teal-dark: #008D99;
  --ego-green: #7CCB48;
  --ego-green-dark: #64AE35;
  --ego-light-blue: #E6F4FA;
  --ego-light-gray: #F2F4F7;
  --ego-slate: #64748B;
  --ego-white: #FFFFFF;
  --ego-border: #DCE6EC;
  --ego-text: #183044;
  --ego-muted: #64748B;
  --ego-danger: #E64C4C;
  --ego-warning: #F59E0B;
  --ego-shadow: 0 14px 38px rgba(11, 29, 45, .08);
  --ego-shadow-soft: 0 8px 24px rgba(11, 29, 45, .06);
  --ego-radius: 18px;
  --ego-radius-sm: 12px;
  --bs-primary: #00A7B5;
  --bs-success: #7CCB48;
}

html, body {
  font-family: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  color: var(--ego-text);
  background: var(--ego-light-gray) !important;
}

body.ego-city-dashboard-body { background: var(--ego-light-gray) !important; }

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.navbar-brand, .section-title, .card-title {
  font-family: 'DM Sans', 'Inter', sans-serif !important;
  color: var(--ego-deep-blue);
  letter-spacing: -.015em;
}

a { color: var(--ego-teal); }
a:hover { color: var(--ego-teal-dark); }

.text-primary { color: var(--ego-teal) !important; }
.text-success { color: var(--ego-green-dark) !important; }
.text-secondary, .text-muted { color: var(--ego-slate) !important; }
.text-dark, .text-body { color: var(--ego-deep-blue) !important; }

/* Shell */
.main-content {
  background:
    radial-gradient(circle at 82% -10%, rgba(230,244,250,.95), transparent 28rem),
    var(--ego-light-gray) !important;
}

.container-fluid.py-4 { padding-top: 1.35rem !important; }

/* Sidebar */
.sidenav,
.ego-city-sidenav {
  background: linear-gradient(180deg, var(--ego-deep-blue-2) 0%, var(--ego-deep-blue) 100%) !important;
  border: 1px solid rgba(255,255,255,.06) !important;
  border-radius: 22px !important;
  box-shadow: 0 24px 54px rgba(11,29,45,.22) !important;
  overflow: hidden;
}

.sidenav .sidenav-header {
  height: 94px !important;
  min-height: 94px;
  display: flex;
  align-items: center;
}

.sidenav .navbar-brand {
  width: 100%;
  padding: .85rem .9rem !important;
}

.sidenav .navbar-brand-img {
  width: auto !important;
  max-width: 190px !important;
  max-height: 62px !important;
  object-fit: contain;
}

.sidenav hr.horizontal {
  border-color: rgba(255,255,255,.12) !important;
  background: rgba(255,255,255,.12) !important;
}

.sidenav .navbar-nav { padding: .25rem .55rem 1rem; }
.sidenav .nav-item { margin: .12rem 0; }
.sidenav .nav-link {
  color: rgba(255,255,255,.76) !important;
  border-radius: 12px !important;
  padding: .7rem .8rem !important;
  min-height: 44px;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.sidenav .nav-link:hover {
  color: #fff !important;
  background: rgba(0,167,181,.12) !important;
  transform: translateX(2px);
}
.sidenav .nav-link.active {
  color: #fff !important;
  background: linear-gradient(135deg, rgba(0,167,181,.96), rgba(0,141,153,.92)) !important;
  box-shadow: 0 10px 22px rgba(0,167,181,.22) !important;
}
.sidenav .nav-link .nav-link-text { font-weight: 600; }
.sidenav .nav-link i,
.sidenav .nav-link .text-dark,
.sidenav .nav-link .text-white,
.sidenav .nav-link svg .color-background,
.sidenav .nav-link svg .color-foreground {
  color: currentColor !important;
  fill: currentColor !important;
}
.sidenav .nav-link .icon,
.sidenav .nav-link .icon.icon-shape {
  background: rgba(255,255,255,.09) !important;
  border: 1px solid rgba(255,255,255,.08);
  box-shadow: none !important;
}
.sidenav .nav-link.active .icon,
.sidenav .nav-link.active .icon.icon-shape {
  background: rgba(255,255,255,.16) !important;
}
.sidenav h6.text-uppercase {
  color: rgba(255,255,255,.42) !important;
  letter-spacing: .1em;
}
.sidenav #iconSidenav { color: rgba(255,255,255,.7) !important; }

.ego-city-help-card {
  border-radius: 14px;
  padding: 1rem;
  color: rgba(255,255,255,.82);
  background: linear-gradient(145deg, rgba(0,167,181,.16), rgba(124,203,72,.08));
  border: 1px solid rgba(230,244,250,.12);
}
.ego-city-help-card h6 { color: #fff !important; }
.ego-city-help-card p { color: rgba(255,255,255,.68) !important; }

/* Top navbar */
.navbar-main {
  background: rgba(255,255,255,.82) !important;
  border: 1px solid rgba(220,230,236,.9) !important;
  box-shadow: var(--ego-shadow-soft) !important;
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  margin-top: .9rem !important;
}
.navbar-main .breadcrumb-item,
.navbar-main .breadcrumb-item a { color: var(--ego-slate) !important; }
.navbar-main .breadcrumb-item.active { color: var(--ego-deep-blue) !important; }

/* Cards */
.card {
  background: #fff !important;
  border: 1px solid var(--ego-border) !important;
  border-radius: var(--ego-radius) !important;
  box-shadow: var(--ego-shadow-soft) !important;
}
.card-header, .card-footer { background: transparent !important; border-color: var(--ego-border) !important; }
.card .numbers p { color: var(--ego-slate) !important; }
.card .numbers h5 { color: var(--ego-deep-blue) !important; }

/* KPI icon treatment */
.icon.icon-shape,
.bg-gradient-primary,
.bg-gradient-info {
  background: linear-gradient(135deg, var(--ego-teal), #27BDC7) !important;
  color: #fff !important;
}
.bg-gradient-success { background: linear-gradient(135deg, var(--ego-green), #9AD866) !important; }
.bg-gradient-warning { background: linear-gradient(135deg, #F4B740, #F59E0B) !important; }
.bg-gradient-danger { background: linear-gradient(135deg, #F06A6A, var(--ego-danger)) !important; }

/* Buttons */
.btn-primary,
.btn.bg-gradient-primary {
  background: linear-gradient(135deg, var(--ego-teal), var(--ego-teal-dark)) !important;
  border-color: var(--ego-teal) !important;
  color: #fff !important;
  box-shadow: 0 8px 20px rgba(0,167,181,.18) !important;
}
.btn-primary:hover,
.btn.bg-gradient-primary:hover {
  background: linear-gradient(135deg, var(--ego-teal-dark), #007A85) !important;
  transform: translateY(-1px);
}
.btn-outline-primary,
.btn-outline-info {
  border-color: var(--ego-teal) !important;
  color: var(--ego-teal-dark) !important;
}
.btn-outline-primary:hover,
.btn-outline-info:hover {
  background: var(--ego-teal) !important;
  color: #fff !important;
}
.btn-outline-dark,
.btn-outline-secondary {
  border-color: #C7D5DE !important;
  color: var(--ego-deep-blue) !important;
  background: #fff !important;
}
.btn-outline-dark:hover,
.btn-outline-secondary:hover {
  border-color: var(--ego-teal) !important;
  color: var(--ego-teal-dark) !important;
  background: var(--ego-light-blue) !important;
}

/* Forms */
.form-control, .form-select,
input[type='text'], input[type='email'], input[type='password'], input[type='number'],
textarea, select {
  border-color: #CAD8E1 !important;
  border-radius: 11px !important;
}
.form-control:focus, .form-select:focus,
input:focus, textarea:focus, select:focus {
  border-color: var(--ego-teal) !important;
  box-shadow: 0 0 0 .18rem rgba(0,167,181,.12) !important;
  outline: none;
}
.form-check-input:checked { background-color: var(--ego-teal) !important; border-color: var(--ego-teal) !important; }

/* Tables */
.table { color: var(--ego-text); }
.table thead th {
  color: var(--ego-deep-blue) !important;
  background: #F7FAFC !important;
  border-bottom-color: var(--ego-border) !important;
  font-family: 'DM Sans', 'Inter', sans-serif;
}
.table tbody tr:hover { background: rgba(230,244,250,.46); }
.table td, .table th { border-color: #E7EEF2 !important; }

/* Badges */
.badge { border-radius: 999px !important; font-weight: 700; letter-spacing: .01em; }
.badge.bg-gradient-light { background: var(--ego-light-blue) !important; color: var(--ego-deep-blue) !important; }

/* Dropdowns / modals */
.dropdown-menu, .modal-content {
  border: 1px solid var(--ego-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--ego-shadow) !important;
}
.dropdown-item:hover, .dropdown-item:focus { background: var(--ego-light-blue) !important; color: var(--ego-deep-blue) !important; }
.modal-header, .modal-footer { border-color: var(--ego-border) !important; }

/* Alerts */
.alert-success { background: #EFF9E9 !important; color: #315D1E !important; border: 1px solid #CFE9BE !important; }
.alert-info { background: var(--ego-light-blue) !important; color: #075D66 !important; border: 1px solid #BDE5EB !important; }

/* E-Go.City page wrappers */
.ego-city-dashboard,
.ego-city-device-page {
  background: transparent !important;
  border-radius: 0 !important;
  padding: 0 !important;
}
.ego-city-dashboard .card,
.ego-city-device-page .card { box-shadow: var(--ego-shadow-soft) !important; }
.ego-city-dashboard #allDevicesMap,
.ego-city-device-page #map,
.ego-city-device-page #telemetryChart {
  background: #EAF4F8 !important;
}

/* Leaflet */
.leaflet-control-zoom a { color: var(--ego-deep-blue) !important; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { background: #fff; color: var(--ego-text); }

/* Auth / guest pages */
.navbar.navbar-expand-lg .navbar-brand-img { object-fit: contain; }
.footer { color: var(--ego-slate) !important; }
.footer a { color: var(--ego-teal-dark) !important; }
.ego-powered-by { font-weight: 600; color: var(--ego-slate); }
.ego-powered-by strong { color: var(--ego-deep-blue); }

/* Public landing overrides */
.page-wrapper, .boxed_wrapper.ego-city-landing {
  background: #fff !important;
  color: var(--ego-text) !important;
  font-family: 'Inter', sans-serif !important;
}
.main-header {
  background: rgba(255,255,255,.94) !important;
  border-bottom: 1px solid rgba(220,230,236,.9) !important;
  box-shadow: 0 8px 28px rgba(11,29,45,.06) !important;
}
.main-header .logo img, .footer-logo img, .nav-logo img {
  max-height: 56px !important;
  width: auto !important;
}
.main-header .nav-link { color: var(--ego-deep-blue) !important; }
.main-header .nav-link:hover, .main-header .nav-link.is-active { color: var(--ego-teal) !important; }
.main-header .nav-link.btn-primary { color: #fff !important; }
.page-wrapper .section-kicker, .ego-city-landing .section-kicker { color: var(--ego-teal) !important; }
.page-wrapper .section-title, .ego-city-landing .section-title { color: var(--ego-deep-blue) !important; }
.page-wrapper .footer, .ego-city-landing .footer {
  background: var(--ego-deep-blue) !important;
  color: rgba(255,255,255,.72) !important;
}
.page-wrapper .footer .footer-title, .ego-city-landing .footer .footer-title { color: #fff !important; }
.page-wrapper .footer a, .ego-city-landing .footer a { color: rgba(255,255,255,.82) !important; }
.page-wrapper .footer a:hover, .ego-city-landing .footer a:hover { color: var(--ego-green) !important; }

/* Charts / misc Bootstrap Soft UI */
.border-radius-lg, .border-radius-xl { border-radius: var(--ego-radius-sm) !important; }
.shadow, .shadow-sm, .shadow-lg { box-shadow: var(--ego-shadow-soft) !important; }
.bg-gray-100 { background: var(--ego-light-gray) !important; }

@media (max-width: 1199.98px) {
  .sidenav { border-radius: 0 22px 22px 0 !important; }
}

@media (max-width: 575.98px) {
  .navbar-main { margin-left: .75rem !important; margin-right: .75rem !important; }
  .container-fluid.py-4 { padding-left: 1rem !important; padding-right: 1rem !important; }
  .card { border-radius: 15px !important; }
}


/* Public E-Go.City landing / contact */
.page-wrapper .hero,
.page-wrapper .contact-hero,
.ego-city-landing .banner-section {
  background:
    radial-gradient(circle at 78% 20%, rgba(230,244,250,.96), transparent 25rem),
    linear-gradient(180deg, #FFFFFF 0%, #F7FBFD 100%) !important;
  color: var(--ego-text) !important;
}
.page-wrapper .hero-bg-grid,
.page-wrapper .contact-hero .hero-bg-grid {
  opacity: .18 !important;
  filter: saturate(.35) hue-rotate(125deg) !important;
}
.page-wrapper .hero-glow,
.page-wrapper .contact-hero .hero-glow {
  background: radial-gradient(circle, rgba(0,167,181,.16), rgba(124,203,72,.05) 48%, transparent 72%) !important;
  opacity: 1 !important;
}
.page-wrapper .hero-kicker,
.page-wrapper .hero-title,
.page-wrapper .hero-subtitle,
.page-wrapper .hero-meta,
.page-wrapper .section-subtitle,
.page-wrapper .contact-breadcrumb,
.page-wrapper .contact-breadcrumb a {
  color: var(--ego-deep-blue) !important;
}
.page-wrapper .hero-title {
  font-family: 'DM Sans', 'Inter', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -.035em !important;
}
.page-wrapper .hero-title-accent { color: var(--ego-teal) !important; }
.page-wrapper .hero-subtitle,
.page-wrapper .hero-meta,
.page-wrapper .section-subtitle { color: var(--ego-slate) !important; }
.page-wrapper .hero-media,
.page-wrapper .glance-media,
.page-wrapper .gallery-item,
.page-wrapper .neon-border {
  border: 1px solid var(--ego-border) !important;
  box-shadow: var(--ego-shadow) !important;
  background: #fff !important;
  border-radius: 22px !important;
  overflow: hidden;
}
.page-wrapper .hero-media img,
.page-wrapper .glance-media img { width: 100%; height: auto; display: block; }
.page-wrapper .card-step,
.page-wrapper .glance-item,
.page-wrapper .faq-item,
.page-wrapper .contact-card,
.page-wrapper .contact-form-col {
  background: #fff !important;
  color: var(--ego-text) !important;
  border: 1px solid var(--ego-border) !important;
  box-shadow: var(--ego-shadow-soft) !important;
  border-radius: 18px !important;
}
.page-wrapper .card-step h3,
.page-wrapper .glance-item h3,
.page-wrapper .faq-question,
.page-wrapper .contact-card h3 { color: var(--ego-deep-blue) !important; }
.page-wrapper .card-step p,
.page-wrapper .glance-item p,
.page-wrapper .faq-answer,
.page-wrapper .contact-card p { color: var(--ego-slate) !important; }
.page-wrapper .card-step-badge {
  background: var(--ego-light-blue) !important;
  color: var(--ego-teal-dark) !important;
  border: 1px solid #BDE5EB !important;
}
.page-wrapper .section-faq { background: #F7FBFD !important; }
.page-wrapper .faq-toggle { color: var(--ego-teal) !important; }
.page-wrapper .scroll-top {
  background: var(--ego-deep-blue) !important;
  color: #fff !important;
  border-color: var(--ego-deep-blue) !important;
}
.page-wrapper .newsletter-form input {
  background: rgba(255,255,255,.96) !important;
  color: var(--ego-deep-blue) !important;
}
.page-wrapper .mobile-menu,
.page-wrapper .nav-dropdown-menu {
  background: #fff !important;
  border: 1px solid var(--ego-border) !important;
  box-shadow: var(--ego-shadow) !important;
}
.page-wrapper .mobile-menu .nav-link,
.page-wrapper .nav-dropdown-menu a { color: var(--ego-deep-blue) !important; }
.page-wrapper .mobile-menu .nav-link:hover,
.page-wrapper .nav-dropdown-menu a:hover { color: var(--ego-teal) !important; }
.page-wrapper .nav-lang { background: var(--ego-light-blue) !important; color: var(--ego-deep-blue) !important; }

/* Legacy landing white-label overrides */
.ego-city-landing,
.ego-city-landing section,
.ego-city-landing .main-header,
.ego-city-landing .sticky-header {
  background-color: #fff !important;
  color: var(--ego-text) !important;
}
.ego-city-landing .main-header,
.ego-city-landing .sticky-header { box-shadow: 0 8px 28px rgba(11,29,45,.06) !important; }
.ego-city-landing .main-menu a,
.ego-city-landing .mobile-menu a { color: var(--ego-deep-blue) !important; }
.ego-city-landing .main-menu a:hover { color: var(--ego-teal) !important; }
.ego-city-landing h1,
.ego-city-landing h2,
.ego-city-landing h3,
.ego-city-landing h4 { color: var(--ego-deep-blue) !important; }

/* ==========================================================
   E-Go.City typography hardening
   Soft UI assigns font-family on several text elements; a
   declaration only on html/body is therefore not sufficient.
   Keep icon-font classes excluded/restored below.
   ========================================================== */
:root {
  --ego-font-body: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ego-font-heading: 'DM Sans', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

html,
body,
button,
input,
textarea,
select,
option,
p,
span,
a,
li,
label,
small,
strong,
b,
td,
th,
caption,
.btn,
.nav-link,
.dropdown-item,
.breadcrumb,
.form-control,
.form-select,
.alert,
.modal,
.card,
.numbers {
  font-family: var(--ego-font-body) !important;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.navbar-brand,
.section-title,
.card-title,
.card-header .font-weight-bold,
.card-header .font-weight-bolder {
  font-family: var(--ego-font-heading) !important;
}

/* KPI labels/numbers: explicit because the legacy Soft UI theme
   can assign typography directly inside .numbers. */
.card .numbers,
.card .numbers p,
.card .numbers span,
.card .numbers h1,
.card .numbers h2,
.card .numbers h3,
.card .numbers h4,
.card .numbers h5,
.card .numbers h6 {
  font-family: var(--ego-font-body) !important;
}

.card .numbers h1,
.card .numbers h2,
.card .numbers h3,
.card .numbers h4,
.card .numbers h5,
.card .numbers h6 {
  font-family: var(--ego-font-heading) !important;
}

/* Restore icon-font families in case an icon is rendered with a
   span instead of an i element. */
.fa,
.fas,
.fa-solid {
  font-family: 'Font Awesome 6 Free' !important;
  font-weight: 900;
}
.far,
.fa-regular {
  font-family: 'Font Awesome 6 Free' !important;
  font-weight: 400;
}
.fab,
.fa-brands {
  font-family: 'Font Awesome 6 Brands' !important;
}
.ni {
  font-family: 'NucleoIcons' !important;
}

/* ==========================================================
   E-Go.City authentication experience v3
   Scoped to .ego-auth-page so dashboard/landing styles remain isolated.
   ========================================================== */
.ego-auth-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background:
    radial-gradient(circle at 12% 8%, rgba(0,167,181,.10), transparent 28rem),
    radial-gradient(circle at 92% 22%, rgba(124,203,72,.09), transparent 26rem),
    linear-gradient(180deg, #f8fbfd 0%, #f2f4f7 100%);
  color: var(--ego-text);
}

.ego-auth-page .ego-auth-content {
  flex: 1 0 auto;
}

.ego-auth-navbar {
  position: relative !important;
  inset: auto !important;
  z-index: 20;
  padding: 20px 16px 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.ego-auth-navbar .ego-auth-navbar-inner {
  max-width: 1180px;
  min-height: 78px;
  padding: 12px 18px !important;
  border: 1px solid rgba(208, 221, 230, .95);
  border-radius: 22px;
  background: rgba(255,255,255,.94);
  box-shadow: 0 14px 40px rgba(11,29,45,.08);
  backdrop-filter: blur(14px);
}

.ego-auth-brand {
  display: inline-flex !important;
  align-items: center;
  padding: 0 !important;
  margin: 0 !important;
}

.ego-auth-brand-logo {
  display: block;
  width: 196px;
  max-width: 52vw;
  height: auto;
  object-fit: contain;
}

.ego-auth-nav-links {
  gap: 2px;
}

.ego-auth-navbar .nav-link {
  color: var(--ego-deep-blue) !important;
  font-size: .91rem;
  font-weight: 600 !important;
  padding: .72rem .9rem !important;
  border-radius: 11px;
}

.ego-auth-navbar .nav-link:hover,
.ego-auth-navbar .nav-link.active {
  color: var(--ego-teal-dark) !important;
  background: var(--ego-light-blue);
}

.ego-auth-nav-cta {
  min-width: 96px;
  padding: .68rem 1rem !important;
  border: 1px solid rgba(0,167,181,.24) !important;
  border-radius: 11px !important;
  background: rgba(0,167,181,.09) !important;
  color: var(--ego-teal-dark) !important;
  font-size: .9rem !important;
  font-weight: 700 !important;
  box-shadow: none !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

.ego-auth-nav-cta:hover,
.ego-auth-nav-cta.active {
  background: var(--ego-teal) !important;
  color: #fff !important;
  border-color: var(--ego-teal) !important;
  transform: none !important;
}

.ego-auth-toggler {
  width: 44px;
  height: 44px;
  padding: 0 !important;
  border: 1px solid var(--ego-border) !important;
  border-radius: 12px !important;
  background: var(--ego-light-gray) !important;
}

.ego-auth-toggler-lines {
  width: 18px;
  height: 14px;
  display: inline-flex;
  flex-direction: column;
  justify-content: space-between;
}

.ego-auth-toggler-lines span {
  display: block;
  width: 100%;
  height: 1.5px;
  border-radius: 999px;
  background: var(--ego-deep-blue);
}

.ego-auth-main {
  display: flex;
  align-items: center;
  padding: 34px 16px 40px;
}

.ego-auth-main > .container {
  max-width: 1180px;
}

.ego-auth-shell {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 42%) minmax(0, 58%);
  min-height: 610px;
  border: 1px solid rgba(208,221,230,.95);
  border-radius: 28px;
  background: #fff;
  box-shadow: 0 28px 70px rgba(11,29,45,.10);
}

.ego-auth-shell-compact {
  min-height: 560px;
}

.ego-auth-visual {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  padding: 54px 48px;
  background:
    linear-gradient(145deg, rgba(0,167,181,.96) 0%, rgba(9,119,137,.98) 45%, rgba(11,29,45,1) 100%);
}

.ego-auth-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 42px 42px;
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.75), transparent 82%);
  pointer-events: none;
}

.ego-auth-visual-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(1px);
  pointer-events: none;
}

.ego-auth-visual-orb-one {
  width: 300px;
  height: 300px;
  top: -85px;
  right: -95px;
  background: radial-gradient(circle, rgba(124,203,72,.72), rgba(124,203,72,0) 68%);
}

.ego-auth-visual-orb-two {
  width: 240px;
  height: 240px;
  left: -105px;
  bottom: 30px;
  background: radial-gradient(circle, rgba(230,244,250,.20), rgba(230,244,250,0) 70%);
}

.ego-auth-visual-content {
  position: relative;
  z-index: 2;
  max-width: 390px;
  color: #fff;
}

.ego-auth-kicker {
  display: inline-flex;
  align-items: center;
  margin-bottom: 22px;
  padding: 8px 12px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 999px;
  background: rgba(255,255,255,.09);
  color: rgba(255,255,255,.92) !important;
  font-size: .74rem;
  font-weight: 700 !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.ego-auth-visual h1 {
  margin: 0 0 18px;
  color: #fff !important;
  font-size: clamp(2.15rem, 3vw, 3.25rem);
  line-height: 1.04;
  letter-spacing: -.045em;
}

.ego-auth-visual p {
  margin: 0;
  color: rgba(255,255,255,.77) !important;
  font-size: .98rem;
  line-height: 1.7;
}

.ego-auth-feature-list {
  display: grid;
  gap: 12px;
  margin-top: 30px;
}

.ego-auth-feature-list > div,
.ego-auth-security-note {
  display: flex;
  align-items: center;
  gap: 11px;
  color: rgba(255,255,255,.90) !important;
  font-size: .88rem;
  font-weight: 600;
}

.ego-auth-feature-list i,
.ego-auth-security-note i {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(255,255,255,.11);
  color: #fff;
  font-size: .85rem;
}

.ego-auth-security-note {
  margin-top: 30px;
  padding: 14px 16px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 14px;
  background: rgba(255,255,255,.07);
}

.ego-auth-form-pane {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 54px 56px;
  background: #fff;
}

.ego-auth-form-wrap {
  width: 100%;
  max-width: 470px;
}

.ego-auth-form-heading {
  margin-bottom: 30px;
}

.ego-auth-eyebrow {
  display: block;
  margin-bottom: 8px;
  color: var(--ego-teal-dark) !important;
  font-size: .78rem;
  font-weight: 800 !important;
  letter-spacing: .075em;
  text-transform: uppercase;
}

.ego-auth-form-heading h2 {
  margin: 0 0 10px;
  color: var(--ego-deep-blue) !important;
  font-size: clamp(1.8rem, 2.4vw, 2.35rem);
  line-height: 1.12;
  letter-spacing: -.035em;
}

.ego-auth-form-heading p {
  margin: 0;
  color: var(--ego-slate) !important;
  font-size: .94rem;
  line-height: 1.65;
}

.ego-auth-form {
  display: grid;
  gap: 20px;
}

.ego-auth-field {
  display: grid;
  gap: 8px;
}

.ego-auth-field label,
.ego-auth-label-row label {
  margin: 0;
  color: var(--ego-deep-blue) !important;
  font-size: .82rem;
  font-weight: 700 !important;
}

.ego-auth-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.ego-auth-inline-link,
.ego-auth-back-link,
.ego-auth-bottom-copy a,
.ego-auth-agreement a {
  color: var(--ego-teal-dark) !important;
  font-weight: 700 !important;
  text-decoration: none;
}

.ego-auth-inline-link {
  font-size: .79rem;
}

.ego-auth-inline-link:hover,
.ego-auth-back-link:hover,
.ego-auth-bottom-copy a:hover,
.ego-auth-agreement a:hover {
  color: var(--ego-deep-blue) !important;
}

.ego-auth-input-wrap {
  position: relative;
}

.ego-auth-input-wrap > i {
  position: absolute;
  top: 50%;
  left: 16px;
  z-index: 2;
  transform: translateY(-50%);
  color: #8293a3;
  font-size: .88rem;
  pointer-events: none;
}

.ego-auth-input-wrap .form-control {
  min-height: 50px;
  padding: 12px 16px 12px 44px !important;
  border: 1px solid #cfdce5 !important;
  border-radius: 12px !important;
  background: #fbfdfe !important;
  color: var(--ego-deep-blue) !important;
  font-size: .91rem !important;
  box-shadow: none !important;
}

.ego-auth-input-wrap .form-control::placeholder {
  color: #9aa8b5 !important;
  opacity: 1;
}

.ego-auth-input-wrap .form-control:focus {
  border-color: var(--ego-teal) !important;
  background: #fff !important;
  box-shadow: 0 0 0 4px rgba(0,167,181,.10) !important;
}

.ego-auth-error {
  margin: 0 !important;
  color: #c43d4b !important;
  font-size: .78rem !important;
  font-weight: 600 !important;
}

.ego-auth-remember,
.ego-auth-agreement {
  min-height: 26px;
  margin: -2px 0 0 !important;
  padding-left: 2.8rem !important;
}

.ego-auth-remember .form-check-input,
.ego-auth-agreement .form-check-input {
  border-color: #b9cad4 !important;
  box-shadow: none !important;
}

.ego-auth-remember .form-check-input:checked,
.ego-auth-agreement .form-check-input:checked {
  background-color: var(--ego-teal) !important;
  border-color: var(--ego-teal) !important;
}

.ego-auth-remember .form-check-label,
.ego-auth-agreement .form-check-label {
  color: var(--ego-slate) !important;
  font-size: .84rem !important;
  font-weight: 500 !important;
}

.ego-auth-submit {
  min-height: 50px;
  margin: 2px 0 0 !important;
  border: 0 !important;
  border-radius: 12px !important;
  background: linear-gradient(135deg, var(--ego-teal-dark), var(--ego-teal)) !important;
  color: #fff !important;
  font-size: .84rem !important;
  font-weight: 800 !important;
  letter-spacing: .015em !important;
  text-transform: none !important;
  box-shadow: 0 12px 24px rgba(0,167,181,.20) !important;
  transition: transform .18s ease, box-shadow .18s ease !important;
}

.ego-auth-submit:hover,
.ego-auth-submit:focus {
  transform: translateY(-1px) !important;
  box-shadow: 0 16px 30px rgba(0,167,181,.27) !important;
}

.ego-auth-bottom-copy {
  margin: 24px 0 0 !important;
  color: var(--ego-slate) !important;
  text-align: center;
  font-size: .86rem !important;
}

.ego-auth-back-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 30px;
  font-size: .82rem;
}

.ego-auth-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: -10px 0 22px !important;
  padding: 12px 14px !important;
  border: 1px solid !important;
  border-radius: 12px !important;
  font-size: .82rem !important;
  line-height: 1.5;
  box-shadow: none !important;
}

.ego-auth-alert-error {
  border-color: #f1c6cb !important;
  background: #fff5f6 !important;
  color: #a92f3c !important;
}

.ego-auth-alert-success {
  border-color: #bfe3c9 !important;
  background: #f1fbf4 !important;
  color: #2f7a45 !important;
}

.ego-auth-footer {
  flex: 0 0 auto;
  padding: 0 16px 24px;
  color: var(--ego-slate) !important;
}

.ego-auth-footer .container {
  max-width: 1180px;
}

.ego-auth-footer-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  color: var(--ego-slate) !important;
  font-size: .77rem;
  font-weight: 600;
}

.ego-auth-footer .ego-powered-by strong {
  color: var(--ego-deep-blue) !important;
  font-weight: 800 !important;
}

.ego-auth-footer-dot {
  color: #b3c0ca !important;
}

@media (max-width: 991.98px) {
  .ego-auth-main {
    padding-top: 26px;
  }

  .ego-auth-main > .container {
    max-width: 680px;
  }

  .ego-auth-shell {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .ego-auth-visual {
    display: none;
  }

  .ego-auth-form-pane {
    padding: 48px 44px;
  }
}

@media (max-width: 767.98px) {
  .ego-auth-navbar {
    padding: 14px 12px 0 !important;
  }

  .ego-auth-navbar .ego-auth-navbar-inner {
    min-height: 70px;
    padding: 10px 12px !important;
    border-radius: 18px;
  }

  .ego-auth-brand-logo {
    width: 168px;
  }

  .ego-auth-navbar .navbar-collapse {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--ego-border);
  }

  .ego-auth-nav-links {
    align-items: stretch !important;
    gap: 5px;
  }

  .ego-auth-nav-cta {
    width: 100%;
  }

  .ego-auth-main {
    padding: 22px 12px 28px;
  }

  .ego-auth-form-pane {
    padding: 38px 30px;
  }

  .ego-auth-shell {
    border-radius: 22px;
  }

  .ego-auth-footer {
    padding-bottom: 18px;
  }

  .ego-auth-footer-inner {
    font-size: .72rem;
  }
}

@media (max-width: 479.98px) {
  .ego-auth-form-pane {
    padding: 32px 22px;
  }

  .ego-auth-form-heading {
    margin-bottom: 26px;
  }

  .ego-auth-label-row {
    align-items: flex-start;
  }

  .ego-auth-footer-dot {
    display: none;
  }

  .ego-auth-footer-inner {
    flex-direction: column;
    gap: 3px;
  }
}

/* Language dropdown must stay above dashboard content */
.navbar-main {
    position: relative;
    z-index: 1100;
    overflow: visible;
}

.navbar-main .navbar-collapse,
.navbar-main .navbar-nav,
.navbar-main .nav-item.dropdown {
    overflow: visible;
}

.navbar-main .dropdown-menu {
    z-index: 1200 !important;
}
