/**
 * A.S.E (Association Sportive EZAZOU) Public Website Theme & Brand System
 * 
 * Footclub Design System Typography & Colors (Manrope & Bebas Neue)
 * Supports seamless Dark Mode and Light Mode switching with full contrast
 * and single source of truth brand colors from ase-brand-tokens.css.
 */
@import "../ase-brand-tokens.css";

/* ==========================================================================
   1. Typography System (Footclub Design System Standard)
   ========================================================================== */
:root {
  --default-font: "Manrope", sans-serif;
  --accent-font: "Bebas Neue", sans-serif;
}

body {
  font-family: var(--default-font) !important;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7em;
  background-color: var(--ase-bg-main) !important;
  color: var(--ase-text-body) !important;
  transition: background-color 0.25s ease, color 0.25s ease;
}

p {
  font-family: var(--default-font);
  font-size: 16px;
  line-height: 1.7em;
  margin-bottom: 1.25em;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6,
.ase-title,
.brand-text,
.page-header h1,
.counter-item h2,
.btn-default,
.btn-highlighted,
.readmore-btn {
  font-family: var(--accent-font) !important;
  font-weight: 400;
  line-height: 1.1em;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

h1, .h1 {
  font-size: 64px;
  line-height: 1.1em;
}

h2, .h2 {
  font-size: 48px;
  line-height: 1.1em;
}

h3, .h3 {
  font-size: 28px;
  line-height: 1.2em;
}

h4, .h4 {
  font-size: 22px;
  line-height: 1.25em;
}

h5, .h5 {
  font-size: 18px;
  line-height: 1.3em;
}

h6, .h6 {
  font-size: 16px;
  line-height: 1.3em;
}

.hero-title,
.section-title h1 {
  font-size: 68px;
  line-height: 1.05em;
  letter-spacing: 1px;
}

.section-title h2 {
  font-size: 50px;
  line-height: 1.1em;
  letter-spacing: 1px;
}

.section-subtitle,
.sub-title,
.section-title h3 {
  font-family: var(--accent-font) !important;
  font-size: 18px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.main-header .navbar-nav .nav-link {
  font-family: var(--accent-font) !important;
  font-size: 18px !important;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.btn-default,
.ase-btn-gold,
.ase-btn-blue {
  font-family: var(--accent-font) !important;
  font-size: 18px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.counter-item h2 {
  font-size: 56px;
  line-height: 1em;
}

.page-header h1 {
  font-size: 58px;
  line-height: 1.1em;
}

/* Hero & Page Header Spacing (Footclub Standard Accounting for Absolute Header) */
.hero {
  position: relative;
  padding: 195px 0 90px !important;
  overflow: hidden;
}

.page-header {
  position: relative;
  padding: 195px 0 75px !important;
  overflow: hidden;
  border-bottom: 2px solid var(--ase-border-card);
}

@media (max-width: 991px) {
  .hero {
    padding: 150px 0 70px !important;
  }
  .page-header {
    padding: 150px 0 60px !important;
  }
}

@media (max-width: 767px) {
  .hero {
    padding: 130px 0 50px !important;
  }
  .page-header {
    padding: 130px 0 45px !important;
  }
}

/* ==========================================================================
   2. Default Theme Variables (Dark Mode Default)
   ========================================================================== */
:root,
[data-theme="dark"],
[data-coreui-theme="dark"] {
  --ase-gold: var(--ase-color-gold, #FFD35E);
  --ase-gold-rgb: var(--ase-color-gold-rgb, 255, 211, 94);
  --ase-gold-text: #FFD35E;
  --ase-tree-line: rgba(255, 211, 94, 0.8);
  --ase-tree-line-width: 2.5px;
  --ase-blue: var(--ase-color-blue, #278EF5);
  --ase-blue-rgb: var(--ase-color-blue-rgb, 39, 142, 245);
  --ase-dark: var(--ase-color-dark, #0F0B01);
  --ase-dark-rgb: var(--ase-color-dark-rgb, 15, 11, 1);
  --ase-white: var(--ase-color-white, #FFFFFF);
  --ase-white-rgb: var(--ase-color-white-rgb, 255, 255, 255);

  /* Surfaces & Backgrounds */
  --ase-bg-main: var(--ase-dark);
  --ase-bg-section: #141008;
  --ase-bg-card: #18140B;
  --ase-bg-card-alt: #1F190E;
  --ase-header-bg: #0F0B01;
  --ase-footer-bg: #0F0B01;

  /* Typography */
  --ase-text-title: #FFFFFF;
  --ase-text-body: #E5E7EB;
  --ase-text-muted: #9CA3AF;
  --ase-text-muted-alt: rgba(255, 255, 255, 0.55);

  /* Borders & Dividers */
  --ase-border-color: rgba(var(--ase-gold-rgb), 0.18);
  --ase-border-card: rgba(var(--ase-gold-rgb), 0.25);
  --ase-border-subtle: rgba(255, 255, 255, 0.1);

  /* Inputs & Interactive */
  --ase-input-bg: #141008;
  --ase-input-border: rgba(var(--ase-gold-rgb), 0.3);
  --ase-input-text: #FFFFFF;
}

/* ==========================================================================
   3. Light Theme Variables ([data-theme="light"])
   ========================================================================== */
[data-theme="light"],
[data-coreui-theme="light"] {
  --ase-gold: var(--ase-color-gold, #FFD35E);
  --ase-gold-rgb: var(--ase-color-gold-rgb, 255, 211, 94);
  --ase-gold-text: #966B00;
  --ase-tree-line: #278EF5;
  --ase-tree-line-width: 2.5px;
  --ase-blue: var(--ase-color-blue, #278EF5);
  --ase-blue-rgb: var(--ase-color-blue-rgb, 39, 142, 245);
  --ase-dark: var(--ase-color-dark, #0F0B01);
  --ase-dark-rgb: var(--ase-color-dark-rgb, 15, 11, 1);
  --ase-white: var(--ase-color-white, #FFFFFF);
  --ase-white-rgb: var(--ase-color-white-rgb, 255, 255, 255);

  /* Surfaces & Backgrounds */
  --ase-bg-main: #F8F9FA;
  --ase-bg-section: #EDF1F7;
  --ase-bg-card: #FFFFFF;
  --ase-bg-card-alt: #F3F4F6;
  --ase-header-bg: #FFFFFF;
  --ase-footer-bg: #111827;

  /* Typography */
  --ase-text-title: #0F0B01;
  --ase-text-body: #1F2937;
  --ase-text-muted: #4B5563;
  --ase-text-muted-alt: #6B7280;

  /* Borders & Dividers */
  --ase-border-color: #E2E8F0;
  --ase-border-card: #E2E8F0;
  --ase-border-subtle: #E5E7EB;

  /* Inputs & Interactive */
  --ase-input-bg: #FFFFFF;
  --ase-input-border: #D1D5DB;
  --ase-input-text: #111827;
}

/* ==========================================================================
   4. Global Layout & Structural Classes
   ========================================================================== */
.ase-bg-main {
  background-color: var(--ase-bg-main) !important;
}

.ase-bg-section {
  background-color: var(--ase-bg-section) !important;
  border-top: 1px solid var(--ase-border-subtle);
  border-bottom: 1px solid var(--ase-border-subtle);
}

.ase-card {
  background-color: var(--ase-bg-card) !important;
  border: 1px solid var(--ase-border-card) !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.25s ease;
}

.ase-card-gold-border {
  border: 2px solid var(--ase-gold) !important;
}

.ase-card-blue-border {
  border: 2px solid var(--ase-blue) !important;
}

.ase-title {
  color: var(--ase-text-title) !important;
}

.ase-text-muted {
  color: var(--ase-text-muted) !important;
}

.ase-text-gold {
  color: var(--ase-gold-text, var(--ase-gold)) !important;
}

.main-footer .ase-text-gold {
  color: var(--ase-gold) !important;
}

.ase-text-blue {
  color: var(--ase-blue) !important;
}

/* ==========================================================================
   5. Buttons & Badges (Footclub Standard With Anti-Clipping & Text Clearance)
   ========================================================================== */
.btn-default {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 48px !important;
  padding: 12px 58px 12px 28px !important;
  font-family: var(--accent-font) !important;
  font-size: 18px !important;
  line-height: 1.1em !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  border-radius: 100px !important;
  overflow: hidden !important;
  white-space: nowrap !important;
  box-sizing: border-box !important;
  transition: all 0.3s ease-in-out !important;
  z-index: 1 !important;
}

.btn-default::before {
  content: '' !important;
  position: absolute !important;
  top: 50% !important;
  right: 6px !important;
  width: 36px !important;
  height: 36px !important;
  background-color: var(--accent-color, #C42221) !important;
  background-image: url('../images/arrow-white.svg') !important;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: 11px auto !important;
  border-radius: 50% !important;
  transform: translateY(-50%) !important;
  transition: all 0.3s ease-in-out !important;
  pointer-events: none !important;
}

.btn-default:hover::before {
  transform: translateY(-50%) rotate(45deg) !important;
}

/* Full Width Buttons */
.btn-default.w-100 {
  display: flex !important;
  width: 100% !important;
  padding-left: 20px !important;
  padding-right: 56px !important;
  text-align: center !important;
  justify-content: center !important;
}

/* Compact / Small Button Variations (Cards, Sidebar, Action Bars) */
.btn-default.small,
.btn-default.btn-sm,
.btn-default.py-1,
.btn-default.py-2,
.btn-default.px-3,
.btn-default.px-4 {
  min-height: 38px !important;
  padding: 8px 46px 8px 20px !important;
  font-size: 15px !important;
  line-height: 1.1em !important;
}

.btn-default.small::before,
.btn-default.btn-sm::before,
.btn-default.py-1::before,
.btn-default.py-2::before,
.btn-default.px-3::before,
.btn-default.px-4::before {
  width: 28px !important;
  height: 28px !important;
  right: 5px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background-size: 9px auto !important;
}

.btn-default.small:hover::before,
.btn-default.btn-sm:hover::before,
.btn-default.py-1:hover::before,
.btn-default.py-2:hover::before,
.btn-default.px-3:hover::before,
.btn-default.px-4:hover::before {
  transform: translateY(-50%) rotate(45deg) !important;
}

.ase-btn-gold,
.btn-highlighted.ase-btn-gold {
  background-color: var(--ase-gold) !important;
  color: var(--ase-dark) !important;
  border: 1px solid var(--ase-gold) !important;
  font-weight: 700;
  transition: all 0.2s ease;
}

.ase-btn-gold:hover,
.btn-highlighted.ase-btn-gold:hover {
  background-color: #EABF47 !important;
  color: var(--ase-dark) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(var(--ase-gold-rgb), 0.35);
}

.ase-btn-blue {
  background-color: var(--ase-blue) !important;
  color: var(--ase-white) !important;
  border: 1px solid var(--ase-blue) !important;
  font-weight: 600;
  transition: all 0.2s ease;
}

.ase-btn-blue:hover {
  background-color: #1B74D1 !important;
  color: var(--ase-white) !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 15px rgba(var(--ase-blue-rgb), 0.35);
}

.ase-btn-outline-gold {
  background-color: transparent !important;
  color: var(--ase-gold) !important;
  border: 2px solid var(--ase-gold) !important;
  font-weight: 600;
  transition: all 0.2s ease;
}

.ase-btn-outline-gold:hover {
  background-color: var(--ase-gold) !important;
  color: var(--ase-dark) !important;
}

.ase-btn-outline-blue {
  background-color: transparent !important;
  color: var(--ase-blue) !important;
  border: 2px solid var(--ase-blue) !important;
  font-weight: 600;
  transition: all 0.2s ease;
}

.ase-btn-outline-blue:hover {
  background-color: var(--ase-blue) !important;
  color: var(--ase-white) !important;
}

/* Badges */
.ase-badge-gold {
  background-color: var(--ase-gold) !important;
  color: var(--ase-dark) !important;
  font-weight: 700;
  font-family: var(--accent-font);
  font-size: 15px;
  letter-spacing: 0.5px;
  border-radius: 4px;
}

.ase-badge-blue {
  background-color: var(--ase-blue) !important;
  color: var(--ase-white) !important;
  font-weight: 600;
  font-family: var(--accent-font);
  font-size: 15px;
  letter-spacing: 0.5px;
  border-radius: 4px;
}

/* ==========================================================================
   6. Public Header & Navigation
   ========================================================================== */
.main-header {
  background-color: var(--ase-header-bg) !important;
  border-bottom: 1px solid var(--ase-border-subtle);
  transition: background-color 0.25s ease;
}

[data-theme="light"] .main-header .navbar-nav .nav-link {
  color: #1F2937 !important;
}

[data-theme="light"] .main-header .navbar-nav .nav-item.active .nav-link,
[data-theme="light"] .main-header .navbar-nav .nav-link:hover {
  color: #0F4C8A !important;
}

/* Language Dropdown */
.lang-dropdown {
  position: relative;
}

.lang-dropdown button {
  background: transparent;
  border: 1px solid rgba(var(--ase-gold-rgb), 0.4) !important;
  color: #F9FAFB !important;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: var(--default-font) !important;
  font-size: 14px;
}

.lang-dropdown button:hover,
.lang-dropdown button:focus {
  background: rgba(var(--ase-gold-rgb), 0.15) !important;
  color: var(--ase-gold) !important;
}

.lang-dropdown .dropdown-menu {
  background-color: #1A150D !important;
  border: 1px solid rgba(var(--ase-gold-rgb), 0.25) !important;
  border-radius: 8px;
  min-width: 140px;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.5) !important;
  z-index: 1050 !important;
  margin-top: 8px !important;
}

.lang-dropdown .dropdown-item {
  color: #E5E7EB !important;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 500;
  font-family: var(--default-font) !important;
  transition: all 0.15s ease;
}

.lang-dropdown .dropdown-item:hover,
.lang-dropdown .dropdown-item:focus {
  background-color: rgba(var(--ase-gold-rgb), 0.2) !important;
  color: var(--ase-gold) !important;
}

.lang-dropdown .dropdown-item.active {
  background-color: var(--ase-gold) !important;
  color: var(--ase-dark) !important;
  font-weight: 700;
}

[data-theme="light"] .lang-dropdown button {
  border-color: #D1D5DB !important;
  color: #1F2937 !important;
}

[data-theme="light"] .lang-dropdown button:hover,
[data-theme="light"] .lang-dropdown button:focus {
  background-color: #F3F4F6 !important;
  color: #0F0B01 !important;
}

[data-theme="light"] .lang-dropdown .dropdown-menu {
  background-color: #FFFFFF !important;
  border: 1px solid #E5E7EB !important;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1) !important;
}

[data-theme="light"] .lang-dropdown .dropdown-item {
  color: #1F2937 !important;
}

[data-theme="light"] .lang-dropdown .dropdown-item:hover,
[data-theme="light"] .lang-dropdown .dropdown-item:focus {
  background-color: #F3F4F6 !important;
  color: #0F0B01 !important;
}

[data-theme="light"] .lang-dropdown .dropdown-item.active {
  background-color: var(--ase-blue) !important;
  color: #FFFFFF !important;
}

/* Member Space Navigation Link (Header & Footer) */
.ase-header-member-btn {
  font-family: var(--accent-font) !important;
  font-size: 16px !important;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  background: rgba(var(--ase-gold-rgb), 0.12) !important;
  color: var(--ase-gold) !important;
  border: 1px solid rgba(var(--ase-gold-rgb), 0.4) !important;
  border-radius: 8px;
  padding: 6px 12px !important;
  transition: all 0.25s ease-in-out;
}

.ase-header-member-btn:hover,
.ase-header-member-btn:focus {
  background: var(--ase-gold) !important;
  color: var(--ase-dark) !important;
  border-color: var(--ase-gold) !important;
  transform: translateY(-1px);
}

[data-theme="light"] .ase-header-member-btn {
  background: rgba(var(--ase-blue-rgb), 0.1) !important;
  color: var(--ase-blue) !important;
  border: 1px solid rgba(var(--ase-blue-rgb), 0.4) !important;
}

[data-theme="light"] .ase-header-member-btn:hover,
[data-theme="light"] .ase-header-member-btn:focus {
  background: var(--ase-blue) !important;
  color: #FFFFFF !important;
  border-color: var(--ase-blue) !important;
}

.ase-footer-member-link {
  color: #D1D5DB !important;
  font-size: 0.95rem;
  font-weight: 600;
  transition: all 0.2s ease-in-out;
}

.ase-footer-member-link:hover,
.ase-footer-member-link:focus {
  color: var(--ase-gold) !important;
  text-decoration: underline !important;
}

/* Footer Links & Navigation Alignment (Remove template red ball bullet and align flush left) */
.footer-links {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

.footer-links ul {
  padding-left: 0 !important;
  margin-left: 0 !important;
  list-style: none !important;
}

.footer-links ul li {
  background: none !important;
  background-image: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Theme Toggle Button */
.theme-toggle-btn {
  background: transparent;
  border: 1px solid rgba(var(--ase-gold-rgb), 0.4);
  color: var(--ase-gold);
  border-radius: 8px;
  padding: 6px 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

[data-theme="light"] .theme-toggle-btn {
  border-color: #D1D5DB;
  color: #374151;
}

.theme-toggle-btn:hover {
  background: rgba(var(--ase-gold-rgb), 0.15);
}

[data-theme="light"] .theme-toggle-btn:hover {
  background: #F3F4F6;
}

/* ==========================================================================
   7. Form Controls
   ========================================================================== */
.form-control,
textarea.form-control {
  background-color: var(--ase-input-bg) !important;
  border: 1px solid var(--ase-input-border) !important;
  color: var(--ase-input-text) !important;
  font-family: var(--default-font) !important;
  font-size: 15px;
}

.form-control:focus,
textarea.form-control:focus {
  border-color: var(--ase-gold) !important;
  box-shadow: 0 0 0 0.25rem rgba(var(--ase-gold-rgb), 0.25) !important;
}

/* ==========================================================================
   8. Mobile Header Actions & Responsiveness (< 992px)
   ========================================================================== */
@media (max-width: 991px) {
  .header-btn {
    display: flex !important;
    align-items: center;
    gap: 8px !important;
    margin-left: auto;
    margin-right: 12px;
  }

  .navbar {
    padding: 12px 0 !important;
  }

  .navbar-brand img {
    width: 42px !important;
    height: 42px !important;
  }

  .navbar-brand .brand-text {
    font-size: 1.5rem !important;
  }

  .header-btn .theme-toggle-btn {
    padding: 5px 8px !important;
    font-size: 0.85rem !important;
    min-width: 32px;
    height: 32px;
  }

  .header-btn .lang-dropdown button {
    padding: 4px 8px !important;
    font-size: 0.8rem !important;
  }

  .header-btn .ase-header-member-btn {
    padding: 5px 10px !important;
    font-size: 13px !important;
  }

  .navbar-toggle {
    margin-left: 0;
  }
}

@media (max-width: 575px) {
  .header-btn {
    gap: 5px !important;
    margin-right: 6px;
  }

  .navbar-brand .brand-text {
    display: none;
  }

  .header-btn .ase-header-member-btn {
    padding: 4px 8px !important;
    font-size: 12px !important;
  }
}

@media (max-width: 380px) {
  .header-btn .ase-header-member-btn span {
    display: none;
  }
}

/* ==========================================================================
   14. Executive Organigram & Hierarchical Tree System
   ========================================================================== */
.ase-view-switcher {
  display: inline-flex;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(var(--ase-gold-rgb), 0.25);
  border-radius: 50rem;
  padding: 4px;
}

.ase-view-btn {
  border: none;
  background: transparent;
  color: var(--ase-text-muted);
  padding: 8px 20px;
  border-radius: 50rem;
  font-weight: 600;
  font-size: 0.9rem;
  transition: all 0.25s ease;
}

.ase-view-btn.active {
  background: var(--ase-gold);
  color: #0F0B01 !important;
  box-shadow: 0 4px 12px rgba(var(--ase-gold-rgb), 0.35);
}

.ase-org-tree-wrapper {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 30px 15px;
  cursor: grab;
  scrollbar-width: thin;
  scrollbar-color: var(--ase-gold) var(--ase-card-bg);
}

.ase-org-tree-wrapper:active {
  cursor: grabbing;
}

.ase-tree-container {
  display: inline-flex;
  min-width: 100%;
  justify-content: center;
}

.ase-tree-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  padding-top: 20px;
}

.ase-top-leadership-cluster {
  position: relative;
  z-index: 2;
}

.ase-founder-card-slot,
.ase-president-card-slot {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
}

.ase-org-node {
  width: 230px;
  background: var(--ase-bg-card);
  border: 1.5px solid var(--ase-border-card) !important;
  border-radius: 16px !important;
  color: var(--ase-text-body);
  box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
  z-index: 2;
}

[data-theme="light"] .ase-org-node,
[data-coreui-theme="light"] .ase-org-node {
  background: #FFFFFF !important;
  border: 1.5px solid #E2E8F0 !important;
  box-shadow: 0 4px 18px rgba(15, 11, 1, 0.06), 0 1px 3px rgba(15, 11, 1, 0.04) !important;
}

.ase-org-node:hover {
  transform: translateY(-4px);
  border-color: var(--ase-blue) !important;
  box-shadow: 0 12px 28px rgba(39, 142, 245, 0.2) !important;
}

.ase-node-founder {
  border: 2px solid var(--ase-gold) !important;
  box-shadow: 0 0 20px rgba(var(--ase-gold-rgb), 0.35) !important;
}

[data-theme="light"] .ase-node-founder,
[data-coreui-theme="light"] .ase-node-founder {
  border: 2px solid #D4A017 !important;
  box-shadow: 0 6px 22px rgba(212, 160, 23, 0.22) !important;
}

.ase-node-advisor {
  border: 2px solid var(--ase-blue) !important;
  box-shadow: 0 0 16px rgba(39, 142, 245, 0.3) !important;
}

[data-theme="light"] .ase-node-advisor,
[data-coreui-theme="light"] .ase-node-advisor {
  border: 2px solid #278EF5 !important;
  box-shadow: 0 6px 22px rgba(39, 142, 245, 0.22) !important;
}

.ase-badge-founder {
  background: linear-gradient(135deg, #FFD35E, #D4AF37);
  color: #0F0B01 !important;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.5px;
}

.ase-badge-advisor {
  background: linear-gradient(135deg, #278EF5, #195BB8);
  color: #FFFFFF !important;
  font-weight: 700;
  font-size: 0.72rem;
  letter-spacing: 0.5px;
}

.ase-node-avatar-wrapper {
  width: 80px;
  height: 80px;
  border: 2.5px solid var(--ase-gold-text, var(--ase-gold));
}

.ase-btn-circle {
  width: 30px;
  height: 30px;
  padding: 0 !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

/* Light mode action buttons high contrast */
[data-theme="light"] .ase-btn-circle.btn-outline-warning,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-warning {
  color: #966B00 !important;
  border-color: #D4A017 !important;
  background-color: rgba(255, 211, 94, 0.15) !important;
}

[data-theme="light"] .ase-btn-circle.btn-outline-warning:hover,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-warning:hover {
  background-color: #FFD35E !important;
  color: #0F0B01 !important;
}

[data-theme="light"] .ase-btn-circle.btn-outline-info,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-info {
  color: #1976D2 !important;
  border-color: #278EF5 !important;
  background-color: rgba(39, 142, 245, 0.12) !important;
}

[data-theme="light"] .ase-btn-circle.btn-outline-info:hover,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-info:hover {
  background-color: #278EF5 !important;
  color: #FFFFFF !important;
}

[data-theme="light"] .ase-btn-circle.btn-outline-success,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-success {
  color: #15803D !important;
  border-color: #22C55E !important;
  background-color: rgba(34, 197, 94, 0.12) !important;
}

[data-theme="light"] .ase-btn-circle.btn-outline-success:hover,
[data-coreui-theme="light"] .ase-btn-circle.btn-outline-success:hover {
  background-color: #22C55E !important;
  color: #FFFFFF !important;
}

.fs-xs {
  font-size: 0.75rem;
}

/* Connecteurs Hiérarchiques CSS */
.ase-tree-children {
  position: relative;
  padding-top: 28px;
  margin-top: 10px;
}

/* Ligne verticale parente */
.ase-tree-children::before {
  content: '';
  position: absolute;
  top: 0;
  left: 50%;
  border-left: var(--ase-tree-line-width, 2.5px) solid var(--ase-tree-line);
  height: 28px;
  transform: translateX(-50%);
}

.ase-tree-branch {
  position: relative;
  padding: 0 16px;
}

.ase-tree-branch::before,
.ase-tree-branch::after {
  content: '';
  position: absolute;
  top: 0;
  right: 50%;
  border-top: var(--ase-tree-line-width, 2.5px) solid var(--ase-tree-line);
  width: 50%;
  height: 28px;
}

.ase-tree-branch::after {
  right: auto;
  left: 50%;
  border-left: var(--ase-tree-line-width, 2.5px) solid var(--ase-tree-line);
}

/* Nœud enfant unique : liaison directe continue sans bras horizontaux */
.ase-tree-branch:only-child::before {
  display: none;
}

.ase-tree-branch:only-child::after {
  border-top: 0 none;
  border-left: var(--ase-tree-line-width, 2.5px) solid var(--ase-tree-line);
  left: 50%;
  width: 0;
  height: 28px;
  transform: translateX(-50%);
}

.ase-tree-branch:first-child:not(:only-child)::before {
  border: 0 none;
}

.ase-tree-branch:first-child:not(:only-child)::after {
  border-radius: 10px 0 0 0;
}

.ase-tree-branch:last-child:not(:only-child)::after {
  border: 0 none;
}

.ase-tree-branch:last-child:not(:only-child)::before {
  border-right: var(--ase-tree-line-width, 2.5px) solid var(--ase-tree-line);
  border-radius: 0 10px 0 0;
}

/* Popover theming */
.popover {
  background-color: var(--ase-bg-card) !important;
  border: 1px solid var(--ase-border-card) !important;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25) !important;
}

.popover-header {
  background-color: var(--ase-bg-card) !important;
  border-bottom: 1px solid var(--ase-border-card) !important;
  color: var(--ase-gold-text) !important;
  font-family: var(--accent-font) !important;
  letter-spacing: 0.5px;
}

.popover-body {
  color: var(--ase-text-body) !important;
  background-color: var(--ase-bg-card) !important;
}

/* ==========================================================================
   14. Light Mode Contrast & Event/Blog Content Readability
   ========================================================================== */
[data-theme="light"] .page-header p,
[data-theme="light"] .page-header .text-white,
[data-theme="light"] .page-header .text-white-50 {
  color: #4B5563 !important;
}

[data-theme="light"] .page-header h1,
[data-theme="light"] .page-header .ase-title {
  color: #0F0B01 !important;
}

[data-theme="light"] .ase-card .text-white {
  color: #0F0B01 !important;
}

[data-theme="light"] .ase-card .text-white-50 {
  color: #6B7280 !important;
}

[data-theme="light"] .ase-card {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06) !important;
}



