
/* v21: hard contrast and layout stabilization. Loaded last on purpose. */
:root{
  --v21-light-bg:#eef7ff;
  --v21-light-panel:#ffffff;
  --v21-light-panel-soft:#f8fcff;
  --v21-light-text:#071326;
  --v21-light-muted:#24364f;
  --v21-light-muted2:#334155;
  --v21-light-line:rgba(15,23,42,.14);
  --v21-dark-bg:#020817;
  --v21-dark-panel:#071225;
  --v21-dark-panel-soft:#09182c;
  --v21-dark-text:#f7fbff;
  --v21-dark-muted:#b8c7dc;
  --v21-dark-line:rgba(180,210,255,.20);
  --v21-blue:#075db4;
  --v21-cyan:#4bdcff;
}

/* LIGHT THEME: all public text must be dark unless explicitly inside a primary button. */
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page){
  background:
    radial-gradient(circle at 0% 0%, rgba(201,232,255,.85) 0, rgba(201,232,255,0) 30rem),
    radial-gradient(circle at 100% 0%, rgba(229,246,255,.95) 0, rgba(229,246,255,0) 28rem),
    linear-gradient(180deg,#fbfdff 0%, var(--v21-light-bg) 100%) !important;
  color:var(--v21-light-text) !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) .hero,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) .hero-premium,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) .section,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) .page-hero{
  background:transparent !important;
  color:var(--v21-light-text) !important;
  text-shadow:none !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main :is(h1,h2,h3,h4,h5,h6,strong,label,legend,.logo-wordmark,.brand-copy strong){
  color:var(--v21-light-text) !important;
  text-shadow:none !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main :is(p,li,small,em,.hero-lead,.page-hero p,.section p,.team-card-copy p,.story-long-copy p,.vision-copy-v20 p,.vision-copy-v19 p){
  color:var(--v21-light-muted) !important;
  text-shadow:none !important;
}
/* This is the exact bug reported: old v15 forced .hero .hero-lead to white. */
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main section.hero.hero-premium div.hero-content p.hero-lead,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main .hero.hero-premium .hero-content .hero-lead,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main .hero .hero-lead{
  color:var(--v21-light-muted) !important;
  opacity:1 !important;
  text-shadow:none !important;
  background:transparent !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main .hero .eyebrow,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main .section .eyebrow,
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) main .product-label{
  color:var(--v21-blue) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) :is(.hero-logo-lockup,.hero-glass-card,.card,.product-card,.mission-card,.timeline-card,.team-card-v18,.team-card-v20,.contact-card-main-v20,.contact-context-v20,.vision-focus-v20,.vision-focus-v19,.story-flow-item-v14,.split-highlight-v14){
  background:var(--v21-light-panel) !important;
  color:var(--v21-light-text) !important;
  border:1px solid var(--v21-light-line) !important;
  box-shadow:0 18px 55px rgba(15,23,42,.07) !important;
  backdrop-filter:none !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) :is(.hero-logo-lockup,.hero-glass-card,.card,.product-card,.mission-card,.timeline-card,.team-card-v18,.team-card-v20,.contact-card-main-v20,.contact-context-v20,.vision-focus-v20,.vision-focus-v19,.story-flow-item-v14,.split-highlight-v14) :is(h1,h2,h3,h4,strong,span,label){
  color:var(--v21-light-text) !important;
  text-shadow:none !important;
}
html[data-theme="light"] body:not(.dashboard-page):not(.auth-page) :is(.hero-logo-lockup,.hero-glass-card,.card,.product-card,.mission-card,.timeline-card,.team-card-v18,.team-card-v20,.contact-card-main-v20,.contact-context-v20,.vision-focus-v20,.vision-focus-v19,.story-flow-item-v14,.split-highlight-v14) :is(p,li,small,em){
  color:var(--v21-light-muted) !important;
  text-shadow:none !important;
}
html[data-theme="light"] .button-primary,
html[data-theme="light"] .nav-cta{
  color:#ffffff !important;
  text-shadow:none !important;
}
html[data-theme="light"] .button-primary *,
html[data-theme="light"] .nav-cta *{ color:#ffffff !important; }
html[data-theme="light"] .button-secondary{
  color:var(--v21-light-text) !important;
  background:#ffffff !important;
  border-color:var(--v21-light-line) !important;
}

/* Header controls: one target-language switch + readable theme/user. */
.site-header-v20{ width:min(1500px, calc(100% - 48px)) !important; }
.language-switcher-v20,
.theme-switch-v20,
.account-button-v20,
.menu-button-v20{
  width:44px !important; min-width:44px !important; height:44px !important;
  border-radius:999px !important;
  border:1px solid rgba(148,163,184,.30) !important;
  background:rgba(255,255,255,.10) !important;
  display:inline-grid !important;
  place-items:center !important;
  text-decoration:none !important;
  color:var(--v21-dark-text) !important;
}
html[data-theme="light"] :is(.language-switcher-v20,.theme-switch-v20,.account-button-v20,.menu-button-v20){
  background:#ffffff !important;
  color:var(--v21-light-text) !important;
  border-color:var(--v21-light-line) !important;
}
.language-switcher-v20{ grid-template-rows:22px 12px !important; gap:0 !important; padding:4px 0 !important; }
.language-switcher-v20 img{ width:24px !important; height:16px !important; object-fit:cover !important; border-radius:3px !important; box-shadow:0 0 0 1px rgba(0,0,0,.16) !important; }
.language-switcher-v20 span{ font-size:9px !important; line-height:1 !important; font-weight:950 !important; letter-spacing:.06em !important; color:inherit !important; text-transform:uppercase !important; }
.theme-switch-v20 .theme-toggle-icon{ font-size:24px !important; line-height:1 !important; color:inherit !important; }
.account-button-v20{ background:linear-gradient(135deg,#2a7dff,#7f4cff) !important; color:#fff !important; border-color:transparent !important; }
.account-button-v20 b{ color:#fff !important; font-size:.82rem !important; font-weight:950 !important; }

/* Dashboard/Admin: no unreadable dark-on-dark/white-on-white. */
.dashboard-page{ background:var(--v21-dark-bg) !important; color:var(--v21-dark-text) !important; }
.dashboard-page :is(h1,h2,h3,h4,strong,label,legend,th,td,a,button){ color:var(--v21-dark-text) !important; text-shadow:none !important; }
.dashboard-page :is(p,small,em,span,li){ color:var(--v21-dark-muted) !important; text-shadow:none !important; }
.dashboard-page .eyebrow{ color:var(--v21-cyan) !important; }
.dashboard-page :is(.dashboard-card,.dashboard-topbar,.admin-hero-v20,.admin-list-card-v20,.admin-form-card-v20){
  background:rgba(7,18,37,.96) !important;
  border:1px solid var(--v21-dark-line) !important;
  box-shadow:0 22px 70px rgba(0,0,0,.30) !important;
}
.dashboard-page .sidebar{ background:#050c19 !important; color:var(--v21-dark-text) !important; border-color:var(--v21-dark-line) !important; }
.dashboard-page .sidebar :is(strong,a,button,span){ color:var(--v21-dark-text) !important; }
.dashboard-page .sidebar :is(small,p){ color:var(--v21-dark-muted) !important; }
.dashboard-page .brand-dashboard .brand-copy small{ color:var(--v21-dark-muted) !important; background:transparent !important; }
.dashboard-page .user-pill,
.dashboard-page .user-pill-v20{ background:rgba(255,255,255,.08) !important; border:1px solid var(--v21-dark-line) !important; color:var(--v21-dark-text) !important; }
.dashboard-page .user-pill :is(b,strong,span),
.dashboard-page .user-pill-v20 :is(b,strong,span){ color:var(--v21-dark-text) !important; }
.dashboard-page .user-pill-v20 b{ color:#fff !important; }
html[data-theme="light"] .dashboard-page{ background:#eef7ff !important; color:var(--v21-light-text) !important; }
html[data-theme="light"] .dashboard-page :is(h1,h2,h3,h4,strong,label,legend,th,td,a,button){ color:var(--v21-light-text) !important; text-shadow:none !important; }
html[data-theme="light"] .dashboard-page :is(p,small,em,span,li){ color:var(--v21-light-muted) !important; text-shadow:none !important; }
html[data-theme="light"] .dashboard-page .eyebrow{ color:var(--v21-blue) !important; }
html[data-theme="light"] .dashboard-page :is(.dashboard-card,.dashboard-topbar,.admin-hero-v20,.admin-list-card-v20,.admin-form-card-v20){
  background:#ffffff !important;
  border:1px solid var(--v21-light-line) !important;
  box-shadow:0 18px 50px rgba(15,23,42,.07) !important;
}
html[data-theme="light"] .dashboard-page .sidebar{ background:#ffffff !important; color:var(--v21-light-text) !important; border-color:var(--v21-light-line) !important; box-shadow:10px 0 38px rgba(15,23,42,.07) !important; }
html[data-theme="light"] .dashboard-page .sidebar :is(strong,a,button,span){ color:var(--v21-light-text) !important; }
html[data-theme="light"] .dashboard-page .sidebar :is(small,p){ color:var(--v21-light-muted) !important; }
html[data-theme="light"] .dashboard-page .brand-dashboard .brand-copy small{ color:var(--v21-light-muted) !important; background:transparent !important; }
html[data-theme="light"] .dashboard-page .user-pill,
html[data-theme="light"] .dashboard-page .user-pill-v20{ background:#ffffff !important; border:1px solid var(--v21-light-line) !important; color:var(--v21-light-text) !important; }
html[data-theme="light"] .dashboard-page .user-pill :is(b,strong,span),
html[data-theme="light"] .dashboard-page .user-pill-v20 :is(b,strong,span){ color:var(--v21-light-text) !important; }
html[data-theme="light"] .dashboard-page .user-pill-v20 b{ color:#fff !important; }

/* Admin table/form: keep layout stable at common desktop widths. */
.admin-list-card-v20{ margin-top:22px !important; }
.users-table-wrap-v20{ width:100% !important; overflow-x:auto !important; }
.users-table-v20{ width:100% !important; min-width:760px !important; border-collapse:collapse !important; table-layout:auto !important; }
.users-table-v20 th,
.users-table-v20 td{ white-space:normal !important; overflow:visible !important; }
.users-table-v20 th{ padding:0 10px 10px !important; font-size:.72rem !important; letter-spacing:.10em !important; text-transform:uppercase !important; color:#7a8aa2 !important; }
.users-table-v20 td{ padding:14px 10px !important; border-top:1px solid rgba(148,163,184,.16) !important; }
.users-table-v20 th:nth-child(1), .users-table-v20 td:nth-child(1){ width:28% !important; }
.users-table-v20 th:nth-child(2), .users-table-v20 td:nth-child(2){ width:28% !important; }
.users-table-v20 th:nth-child(3), .users-table-v20 td:nth-child(3){ width:24% !important; }
.users-table-v20 th:nth-child(4), .users-table-v20 td:nth-child(4){ width:12% !important; }
.users-table-v20 th:nth-child(5), .users-table-v20 td:nth-child(5){ width:8% !important; }
.user-cell-v20{ display:flex !important; align-items:center !important; gap:12px !important; min-width:0 !important; }
.user-cell-v20 strong{ display:block !important; line-height:1.25 !important; }
.user-cell-v20 small{ display:block !important; }
.user-avatar-v20{ color:#fff !important; }
.permission-pills-v20{ display:flex !important; flex-wrap:wrap !important; gap:6px !important; }
.permission-pills-v20 span{ color:#67ddff !important; background:rgba(73,216,255,.10) !important; border:1px solid rgba(73,216,255,.22) !important; border-radius:999px !important; padding:5px 8px !important; font-weight:850 !important; font-size:.74rem !important; }
html[data-theme="light"] .permission-pills-v20 span{ color:var(--v21-blue) !important; background:#eef8ff !important; border-color:rgba(7,93,180,.16) !important; }
.row-actions-v20{ display:flex !important; flex-wrap:wrap !important; gap:8px !important; }
.admin-user-form-v20{ display:grid !important; grid-template-columns:repeat(2,minmax(260px,1fr)) !important; gap:16px !important; }
.admin-user-form-v20 label{ display:grid !important; gap:6px !important; }
.admin-user-form-v20 input,
.admin-user-form-v20 select{ width:100% !important; min-height:44px !important; border-radius:14px !important; padding:0 13px !important; background:#091525 !important; color:var(--v21-dark-text) !important; border:1px solid var(--v21-dark-line) !important; }
html[data-theme="light"] .admin-user-form-v20 input,
html[data-theme="light"] .admin-user-form-v20 select{ background:#ffffff !important; color:var(--v21-light-text) !important; border-color:var(--v21-light-line) !important; }
.permission-fieldset-v20{ grid-column:1/-1 !important; display:flex !important; flex-wrap:wrap !important; gap:12px 18px !important; border:1px solid rgba(148,163,184,.25) !important; border-radius:18px !important; padding:14px !important; }
.permission-fieldset-v20 label{ display:flex !important; align-items:center !important; gap:8px !important; }
@media(max-width:900px){ .admin-user-form-v20{ grid-template-columns:1fr !important; } }

/* Team images use the validated compressed files, with stable cards. */
.team-card-v18 img,
.team-card-v20 img,
.team-card img{ width:132px !important; height:132px !important; object-fit:cover !important; background:#fff !important; }
.team-modal-card-v18{ opacity:1 !important; }
.partner-logo-card-v18 img{ max-width:100% !important; height:104px !important; object-fit:contain !important; }
