/* =====================================================================
   an_themes.css — система брендовых тем (порт движка theme-engine.jsx).
   СГЕНЕРИРОВАНО mock/gen_themes.php — не редактировать вручную.
   Грузится ПОСЛЕ an_main_smooth.css (см. <link> после importmap() в шаблоне).
   ===================================================================== */

/* Layer B: existing component tokens -> brand tokens (на body, бьёт :root an_tma) */
body.participant-page{
  --color-primary: var(--brand-primary);
  --color-primary-hover: var(--brand-primary-hover);
  --color-primary-light: var(--brand-primary-soft);
  --color-primary-bg: var(--brand-primary-soft);
  --color-indigo: var(--brand-primary);
  --color-bg: var(--surface-page);
  --color-card: var(--surface-card);
  --color-border: var(--surface-border);
  --color-border-light: var(--surface-border);
  --color-text: var(--text-strong);
  --color-text-dark: var(--text-strong);
  --color-text-body: var(--text-body);
  --color-text-secondary: var(--text-body);
  --color-text-muted: var(--text-muted);
  --color-warning-bg: var(--notice-bg);
  --color-warning-border: var(--notice-border);
  --color-warning-text: var(--notice-text);
  --color-warning: var(--notice-icon);
  --color-success: var(--ok-accent);
  --color-success-dark: var(--ok-text);
  --color-success-light: var(--ok-border);
  --color-success-bg: var(--ok-bg);
  --color-error: var(--er-accent);
  --shadow-card: 0 12px 30px -14px var(--brand-shadow);
  --card-shadow-sm: 0 6px 18px -12px var(--brand-shadow);
  --hero-wash: linear-gradient(180deg, var(--hero-wash-top) 0%, var(--surface-card) 62%);
  background: var(--surface-page);
}

/* Убираем ОБЩУЮ подложку — контейнер-панель вокруг всего экрана (app_smooth .container:
   фон + radius:20px + box-shadow). Контент идёт full-bleed на фоне страницы. */
body.participant-page .container{
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  /* overflow НЕ трогаем — у .container остаётся клиппинг (иначе вылезает
     горизонтальный скролл: белая полоса снизу + обрезанная карточка). */
}

/* hero (#success) — остаётся КАРТОЧКОЙ: бренд-wash + тонированный бордер + бренд-тень */
body.participant-page #success > .card{
  background: var(--hero-wash);
  border: 1px solid var(--notice-border);
  box-shadow: var(--shadow-card);
}
/* остальные карточки — мягкая бренд-тень */
body.participant-page .grouped-card,
body.participant-page #special_offers_card,
body.participant-page .gift-block,
body.participant-page .emerge-block{ box-shadow: var(--card-shadow-sm); }

/* заголовки секций — бренд + ведущий бренд-бар + ФРОСТЕД-ЧИП (читаемость над фоном-шарами) */
body.participant-page .section-header-title{
  color: var(--brand-primary);
  font-weight: 600;
  display: inline-flex; align-items: center; gap: 7px;
  padding: 4px 12px 4px 9px;
  border-radius: 999px;
  background: color-mix(in srgb, var(--surface-page) 72%, transparent);
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
}
body.participant-page .section-header-title::before{
  content: ''; width: 4px; height: 13px; border-radius: 3px;
  background: var(--brand-primary); flex-shrink: 0;
}

/* фичная градиент-карта «Особые предложения» -> токены градиента */
body.participant-page .card.gradient{
  background: linear-gradient(100deg, var(--feature-gradient-from), var(--feature-gradient-to));
  box-shadow: var(--shadow-card);
}
body.participant-page .card.gradient .card-icon{ background: rgba(255,255,255,.18); }
body.participant-page .card.gradient .card-title,
body.participant-page .card.gradient .card-description{ color: var(--on-gradient); }

/* иконо-кружок (вне градиента) -> бренд */
body.participant-page .card-icon{ background-color: var(--brand-primary); }
/* круг «Пригласить» -> мягкая бренд-подложка */
body.participant-page .share-invite-icon{ background: var(--icon-bg, var(--brand-primary-soft)); }
/* бейдж-счётчик подарка */
body.participant-page .count-badge{ background: var(--badge-new-bg); color: var(--badge-new-text); }
/* EMERGE промокод-чип */
body.participant-page .emerge-code{ background: var(--brand-primary-soft); color: var(--text-strong); }
/* бейдж NEW (класс вместо inline) */
body.participant-page .badge-new{
  background: var(--badge-new-bg); color: var(--badge-new-text);
}

/* плавная смена темы */
body.participant-page,
body.participant-page .card,
body.participant-page .grouped-card,
body.participant-page #success > .card{
  transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease;
}

/* ---- indigo ---- */
body.participant-page.theme-indigo{
  --brand-primary: #4A5FFF;
  --brand-primary-hover: #4052DB;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #E5E7FF;
  --feature-gradient-from: #5A5DF0;
  --feature-gradient-to: #8452F5;
  --icon-gradient-from: #5A5DF0;
  --icon-gradient-to: #8452F5;
  --on-gradient: #FFFFFF;
  --surface-page: #E6E8F6;
  --surface-card: #FAFAFF;
  --surface-border: #DFDEE4;
  --hero-wash-top: #E5E7FF;
  --text-strong: #15131F;
  --text-body: #4E4D57;
  --text-muted: #6F6E76;
  --brand-shadow: rgba(74, 95, 255, 0.3);
  --focus-ring: rgba(74, 95, 255, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #EAECFF;
  --notice-border: #D3D8FF;
  --notice-text: #4E4D57;
  --notice-icon: #4A5FFF;
  --ok-accent: #16A34A;
  --ok-bg: #DFF0E9;
  --ok-border: #ACDCC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(74, 95, 255, 0.16);
}
body.participant-page.theme-indigo.theme-dark{
  --brand-primary: #6F7FF9;
  --brand-primary-hover: #8391FA;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #303660;
  --feature-gradient-from: #5A5DF0;
  --feature-gradient-to: #8452F5;
  --icon-gradient-from: #5A5DF0;
  --icon-gradient-to: #8452F5;
  --on-gradient: #FFFFFF;
  --surface-page: #13172E;
  --surface-card: #1C1F30;
  --surface-border: #3C3E4D;
  --hero-wash-top: #2B3054;
  --text-strong: #F4F4F6;
  --text-body: #D2D2D6;
  --text-muted: #999AA2;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(111, 127, 249, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #282C4C;
  --notice-border: #353C6C;
  --notice-text: #D2D2D6;
  --notice-icon: #6F7FF9;
  --ok-accent: #22C55E;
  --ok-bg: #1D4039;
  --ok-border: #1E5740;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(111, 127, 249, 0.26);
}

/* ---- sapphire ---- */
body.participant-page.theme-sapphire{
  --brand-primary: #2563EB;
  --brand-primary-hover: #2055CA;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DFE8FC;
  --feature-gradient-from: #1D4ED8;
  --feature-gradient-to: #0B7CAF;
  --icon-gradient-from: #1D4ED8;
  --icon-gradient-to: #0B7CAF;
  --on-gradient: #FFFFFF;
  --surface-page: #E3E8F4;
  --surface-card: #F8FAFE;
  --surface-border: #DCDFE5;
  --hero-wash-top: #DFE8FC;
  --text-strong: #0F172A;
  --text-body: #49505F;
  --text-muted: #6B707B;
  --brand-shadow: rgba(37, 99, 235, 0.3);
  --focus-ring: rgba(37, 99, 235, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E5ECFC;
  --notice-border: #CAD9FA;
  --notice-text: #49505F;
  --notice-icon: #2563EB;
  --ok-accent: #16A34A;
  --ok-bg: #DDF0E8;
  --ok-border: #ABDCC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(37, 99, 235, 0.16);
}
body.participant-page.theme-sapphire.theme-dark{
  --brand-primary: #5484EF;
  --brand-primary-hover: #6C95F1;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #28375C;
  --feature-gradient-from: #1D4ED8;
  --feature-gradient-to: #0B7CAF;
  --icon-gradient-from: #1D4ED8;
  --icon-gradient-to: #0B7CAF;
  --on-gradient: #FFFFFF;
  --surface-page: #0F172B;
  --surface-card: #1A1F2E;
  --surface-border: #3A3E4B;
  --hero-wash-top: #243151;
  --text-strong: #F4F4F6;
  --text-body: #D1D2D5;
  --text-muted: #989AA1;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(84, 132, 239, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #222D49;
  --notice-border: #2B3D68;
  --notice-text: #D1D2D5;
  --notice-icon: #5484EF;
  --ok-accent: #22C55E;
  --ok-bg: #1C4038;
  --ok-border: #1D573E;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(84, 132, 239, 0.26);
}

/* ---- emerald ---- */
body.participant-page.theme-emerald{
  --brand-primary: #047857;
  --brand-primary-hover: #03674B;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DAEBE6;
  --feature-gradient-from: #047857;
  --feature-gradient-to: #0B815A;
  --icon-gradient-from: #047857;
  --icon-gradient-to: #0B815A;
  --on-gradient: #FFFFFF;
  --surface-page: #E1EAE8;
  --surface-card: #F7FBFA;
  --surface-border: #DBE1DF;
  --hero-wash-top: #DAEBE6;
  --text-strong: #0C2019;
  --text-body: #475751;
  --text-muted: #697470;
  --brand-shadow: rgba(4, 120, 87, 0.3);
  --focus-ring: rgba(4, 120, 87, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E1EFEB;
  --notice-border: #C2DED6;
  --notice-text: #475751;
  --notice-icon: #047857;
  --ok-accent: #16A34A;
  --ok-bg: #DCF0E5;
  --ok-border: #ABDDBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(4, 120, 87, 0.16);
}
body.participant-page.theme-emerald.theme-dark{
  --brand-primary: #079E73;
  --brand-primary-hover: #2AAC87;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #143F37;
  --feature-gradient-from: #047857;
  --feature-gradient-to: #0B815A;
  --icon-gradient-from: #047857;
  --icon-gradient-to: #0B815A;
  --on-gradient: #FFFFFF;
  --surface-page: #0B1A19;
  --surface-card: #182124;
  --surface-border: #384043;
  --hero-wash-top: #153832;
  --text-strong: #F4F4F6;
  --text-body: #D1D3D3;
  --text-muted: #979B9C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(7, 158, 115, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #16332F;
  --notice-border: #13473C;
  --notice-text: #D1D3D3;
  --notice-icon: #079E73;
  --ok-accent: #22C55E;
  --ok-bg: #1A4230;
  --ok-border: #1B5938;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(7, 158, 115, 0.26);
}

/* ---- amethyst ---- */
body.participant-page.theme-amethyst{
  --brand-primary: #7C3AED;
  --brand-primary-hover: #6B32CC;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #ECE2FC;
  --feature-gradient-from: #7C3AED;
  --feature-gradient-to: #C026D3;
  --icon-gradient-from: #7C3AED;
  --icon-gradient-to: #C026D3;
  --on-gradient: #FFFFFF;
  --surface-page: #EAE5F4;
  --surface-card: #FBF9FE;
  --surface-border: #E0DEE5;
  --hero-wash-top: #ECE2FC;
  --text-strong: #1E1530;
  --text-body: #554E64;
  --text-muted: #746D7F;
  --brand-shadow: rgba(124, 58, 237, 0.3);
  --focus-ring: rgba(124, 58, 237, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F0E8FC;
  --notice-border: #DFCFFA;
  --notice-text: #554E64;
  --notice-icon: #7C3AED;
  --ok-accent: #16A34A;
  --ok-bg: #E0EFE8;
  --ok-border: #ADDCC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(124, 58, 237, 0.16);
}
body.participant-page.theme-amethyst.theme-dark{
  --brand-primary: #A172F2;
  --brand-primary-hover: #AE86F4;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #3F315D;
  --feature-gradient-from: #7C3AED;
  --feature-gradient-to: #C026D3;
  --icon-gradient-from: #7C3AED;
  --icon-gradient-to: #C026D3;
  --on-gradient: #FFFFFF;
  --surface-page: #19122B;
  --surface-card: #201C2E;
  --surface-border: #3F3C4B;
  --hero-wash-top: #372B51;
  --text-strong: #F4F4F6;
  --text-body: #D2D2D5;
  --text-muted: #9B99A1;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(161, 114, 242, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #322849;
  --notice-border: #473669;
  --notice-text: #D2D2D5;
  --notice-icon: #A172F2;
  --ok-accent: #22C55E;
  --ok-bg: #203E38;
  --ok-border: #21553E;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(161, 114, 242, 0.26);
}

/* ---- ruby ---- */
body.participant-page.theme-ruby{
  --brand-primary: #D81C45;
  --brand-primary-hover: #BA183B;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F9DEE4;
  --feature-gradient-from: #BE123C;
  --feature-gradient-to: #E80D33;
  --icon-gradient-from: #BE123C;
  --icon-gradient-to: #E80D33;
  --on-gradient: #FFFFFF;
  --surface-page: #F2E3E7;
  --surface-card: #FEF8FA;
  --surface-border: #E5DCDE;
  --hero-wash-top: #F9DEE4;
  --text-strong: #2A0E14;
  --text-body: #5F494E;
  --text-muted: #7B6A6E;
  --brand-shadow: rgba(216, 28, 69, 0.3);
  --focus-ring: rgba(216, 28, 69, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #FBE4EA;
  --notice-border: #F6C8D2;
  --notice-text: #5F494E;
  --notice-icon: #D81C45;
  --ok-accent: #16A34A;
  --ok-bg: #E2EEE5;
  --ok-border: #AFDBBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(216, 28, 69, 0.16);
}
body.participant-page.theme-ruby.theme-dark{
  --brand-primary: #E95273;
  --brand-primary-hover: #EC6A87;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #562736;
  --feature-gradient-from: #BE123C;
  --feature-gradient-to: #E80D33;
  --icon-gradient-from: #BE123C;
  --icon-gradient-to: #E80D33;
  --on-gradient: #FFFFFF;
  --surface-page: #260F18;
  --surface-card: #271A23;
  --surface-border: #453A42;
  --hero-wash-top: #4A2431;
  --text-strong: #F4F4F6;
  --text-body: #D4D1D3;
  --text-muted: #9E989C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(233, 82, 115, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #42222E;
  --notice-border: #612B3B;
  --notice-text: #D4D1D3;
  --notice-icon: #E95273;
  --ok-accent: #22C55E;
  --ok-bg: #263C2F;
  --ok-border: #255437;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(233, 82, 115, 0.26);
}

/* ---- amber ---- */
body.participant-page.theme-amber{
  --brand-primary: #C2410C;
  --brand-primary-hover: #A7380A;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F6E3DC;
  --feature-gradient-from: #C35305;
  --feature-gradient-to: #B95504;
  --icon-gradient-from: #C35305;
  --icon-gradient-to: #B95504;
  --on-gradient: #FFFFFF;
  --surface-page: #F0E6E2;
  --surface-card: #FDF9F8;
  --surface-border: #E3DDDB;
  --hero-wash-top: #F6E3DC;
  --text-strong: #271203;
  --text-body: #5D4C40;
  --text-muted: #796D66;
  --brand-shadow: rgba(194, 65, 12, 0.3);
  --focus-ring: rgba(194, 65, 12, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F8E8E3;
  --notice-border: #F0D1C4;
  --notice-text: #5D4C40;
  --notice-icon: #C2410C;
  --ok-accent: #16A34A;
  --ok-bg: #E1EFE3;
  --ok-border: #AEDCBD;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(194, 65, 12, 0.16);
}
body.participant-page.theme-amber.theme-dark{
  --brand-primary: #F05211;
  --brand-primary-hover: #F26A32;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #562A1C;
  --feature-gradient-from: #C35305;
  --feature-gradient-to: #B95504;
  --icon-gradient-from: #C35305;
  --icon-gradient-to: #B95504;
  --on-gradient: #FFFFFF;
  --surface-page: #221310;
  --surface-card: #251D1F;
  --surface-border: #443D3E;
  --hero-wash-top: #4A271C;
  --text-strong: #F4F4F6;
  --text-body: #D3D2D2;
  --text-muted: #9D999A;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(240, 82, 17, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #41241D;
  --notice-border: #622D1B;
  --notice-text: #D3D2D2;
  --notice-icon: #F05211;
  --ok-accent: #22C55E;
  --ok-bg: #243F2C;
  --ok-border: #245634;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(240, 82, 17, 0.26);
}

/* ---- teal ---- */
body.participant-page.theme-teal{
  --brand-primary: #0F766E;
  --brand-primary-hover: #0D655F;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DCEBEA;
  --feature-gradient-from: #0B8177;
  --feature-gradient-to: #047A8F;
  --icon-gradient-from: #0B8177;
  --icon-gradient-to: #047A8F;
  --on-gradient: #FFFFFF;
  --surface-page: #E2EAEA;
  --surface-card: #F8FBFB;
  --surface-border: #DBE1E1;
  --hero-wash-top: #DCEBEA;
  --text-strong: #0A2421;
  --text-body: #465A58;
  --text-muted: #687675;
  --brand-shadow: rgba(15, 118, 110, 0.3);
  --focus-ring: rgba(15, 118, 110, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E3EFEE;
  --notice-border: #C5DEDC;
  --notice-text: #465A58;
  --notice-icon: #0F766E;
  --ok-accent: #16A34A;
  --ok-bg: #DDF0E6;
  --ok-border: #ABDDBF;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(15, 118, 110, 0.16);
}
body.participant-page.theme-teal.theme-dark{
  --brand-primary: #149A90;
  --brand-primary-hover: #35A8A0;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #173D3F;
  --feature-gradient-from: #0B8177;
  --feature-gradient-to: #047A8F;
  --icon-gradient-from: #0B8177;
  --icon-gradient-to: #047A8F;
  --on-gradient: #FFFFFF;
  --surface-page: #0C1A1C;
  --surface-card: #182025;
  --surface-border: #383F44;
  --hero-wash-top: #173638;
  --text-strong: #F4F4F6;
  --text-body: #D1D2D3;
  --text-muted: #979B9D;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(20, 154, 144, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #173134;
  --notice-border: #174545;
  --notice-text: #D1D2D3;
  --notice-icon: #149A90;
  --ok-accent: #22C55E;
  --ok-bg: #1A4130;
  --ok-border: #1B5838;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(20, 154, 144, 0.26);
}

/* ---- rose ---- */
body.participant-page.theme-rose{
  --brand-primary: #D42372;
  --brand-primary-hover: #B61E62;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F9DFEB;
  --feature-gradient-from: #DB2777;
  --feature-gradient-to: #DB117A;
  --icon-gradient-from: #DB2777;
  --icon-gradient-to: #DB117A;
  --on-gradient: #FFFFFF;
  --surface-page: #F2E4EB;
  --surface-card: #FEF9FB;
  --surface-border: #E5DDE0;
  --hero-wash-top: #F9DFEB;
  --text-strong: #2A0F1D;
  --text-body: #5F4A55;
  --text-muted: #7B6B74;
  --brand-shadow: rgba(212, 35, 114, 0.3);
  --focus-ring: rgba(212, 35, 114, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #FAE6EF;
  --notice-border: #F5CADD;
  --notice-text: #5F4A55;
  --notice-icon: #D42372;
  --ok-accent: #16A34A;
  --ok-bg: #E2EFE6;
  --ok-border: #AFDCBF;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(212, 35, 114, 0.16);
}
body.participant-page.theme-rose.theme-dark{
  --brand-primary: #E25393;
  --brand-primary-hover: #E66BA2;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #542840;
  --feature-gradient-from: #DB2777;
  --feature-gradient-to: #DB117A;
  --icon-gradient-from: #DB2777;
  --icon-gradient-to: #DB117A;
  --on-gradient: #FFFFFF;
  --surface-page: #25101D;
  --surface-card: #271B26;
  --surface-border: #453B44;
  --hero-wash-top: #49253A;
  --text-strong: #F4F4F6;
  --text-body: #D4D1D4;
  --text-muted: #9E989D;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(226, 83, 147, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #412335;
  --notice-border: #5F2C47;
  --notice-text: #D4D1D4;
  --notice-icon: #E25393;
  --ok-accent: #22C55E;
  --ok-bg: #263D31;
  --ok-border: #255539;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(226, 83, 147, 0.26);
}

/* ---- graphite ---- */
body.participant-page.theme-graphite{
  --brand-primary: #1F2937;
  --brand-primary-hover: #1B232F;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DEE0E2;
  --feature-gradient-from: #374151;
  --feature-gradient-to: #6B7280;
  --icon-gradient-from: #374151;
  --icon-gradient-to: #6B7280;
  --on-gradient: #FFFFFF;
  --surface-page: #E3E4E6;
  --surface-card: #F8F9F9;
  --surface-border: #DCDEE0;
  --hero-wash-top: #DEE0E2;
  --text-strong: #111827;
  --text-body: #4B505C;
  --text-muted: #6C7077;
  --brand-shadow: rgba(31, 41, 55, 0.3);
  --focus-ring: rgba(31, 41, 55, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E4E6E8;
  --notice-border: #C8CBCE;
  --notice-text: #4B505C;
  --notice-icon: #1F2937;
  --ok-accent: #16A34A;
  --ok-bg: #DDEFE4;
  --ok-border: #ABDCBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(31, 41, 55, 0.16);
}
body.participant-page.theme-graphite.theme-dark{
  --brand-primary: #6C87AC;
  --brand-primary-hover: #8198B8;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #2D3543;
  --feature-gradient-from: #374151;
  --feature-gradient-to: #6B7280;
  --icon-gradient-from: #374151;
  --icon-gradient-to: #6B7280;
  --on-gradient: #FFFFFF;
  --surface-page: #0E1016;
  --surface-card: #191B22;
  --surface-border: #393B41;
  --hero-wash-top: #282E3B;
  --text-strong: #F4F4F6;
  --text-body: #D1D1D3;
  --text-muted: #98989C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(108, 135, 172, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #252A35;
  --notice-border: #323B4B;
  --notice-text: #D1D1D3;
  --notice-icon: #6C87AC;
  --ok-accent: #22C55E;
  --ok-bg: #1B3D2E;
  --ok-border: #1C5536;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(108, 135, 172, 0.26);
}

/* ---- cobalt ---- */
body.participant-page.theme-cobalt{
  --brand-primary: #4338CA;
  --brand-primary-hover: #3A30AE;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #E3E2F7;
  --feature-gradient-from: #4338CA;
  --feature-gradient-to: #5A5DF0;
  --icon-gradient-from: #4338CA;
  --icon-gradient-to: #5A5DF0;
  --on-gradient: #FFFFFF;
  --surface-page: #E6E5F2;
  --surface-card: #F9F9FD;
  --surface-border: #DDDDE4;
  --hero-wash-top: #E3E2F7;
  --text-strong: #0F1030;
  --text-body: #4A4A63;
  --text-muted: #6F7183;
  --brand-shadow: rgba(67, 56, 202, 0.3);
  --focus-ring: rgba(67, 56, 202, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E9E8F8;
  --notice-border: #D1CFF2;
  --notice-text: #4A4A63;
  --notice-icon: #4338CA;
  --ok-accent: #16A34A;
  --ok-bg: #DEEFE8;
  --ok-border: #ACDCC0;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(67, 56, 202, 0.16);
}
body.participant-page.theme-cobalt.theme-dark{
  --brand-primary: #8780DD;
  --brand-primary-hover: #9892E2;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #363456;
  --feature-gradient-from: #4338CA;
  --feature-gradient-to: #5A5DF0;
  --icon-gradient-from: #4338CA;
  --icon-gradient-to: #5A5DF0;
  --on-gradient: #FFFFFF;
  --surface-page: #131227;
  --surface-card: #1C1C2C;
  --surface-border: #3C3C4A;
  --hero-wash-top: #2F2E4C;
  --text-strong: #F4F4F6;
  --text-body: #D2D2D5;
  --text-muted: #9999A0;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(135, 128, 221, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #2B2A45;
  --notice-border: #3C3A61;
  --notice-text: #D2D2D5;
  --notice-icon: #8780DD;
  --ok-accent: #22C55E;
  --ok-bg: #1D3E36;
  --ok-border: #1E553D;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(135, 128, 221, 0.26);
}

/* ---- onyx-gold ---- */
body.participant-page.theme-onyx-gold{
  --brand-primary: #886F1D;
  --brand-primary-hover: #755F19;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F0ECDF;
  --feature-gradient-from: #926A09;
  --feature-gradient-to: #896C17;
  --icon-gradient-from: #926A09;
  --icon-gradient-to: #896C17;
  --on-gradient: #FFFFFF;
  --surface-page: #F1EEE6;
  --surface-card: #FEFDF9;
  --surface-border: #E3E2DD;
  --hero-wash-top: #F0ECDF;
  --text-strong: #1C1812;
  --text-body: #55514C;
  --text-muted: #73716D;
  --brand-shadow: rgba(136, 111, 29, 0.3);
  --focus-ring: rgba(136, 111, 29, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F3F0E5;
  --notice-border: #E4DEC9;
  --notice-text: #55514C;
  --notice-icon: #886F1D;
  --ok-accent: #16A34A;
  --ok-bg: #E2F2E4;
  --ok-border: #AFDEBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(136, 111, 29, 0.16);
}
body.participant-page.theme-onyx-gold.theme-dark{
  --brand-primary: #D4AF37;
  --brand-primary-hover: #DABA53;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #504527;
  --feature-gradient-from: #926A09;
  --feature-gradient-to: #896C17;
  --icon-gradient-from: #926A09;
  --icon-gradient-to: #896C17;
  --on-gradient: #FFFFFF;
  --surface-page: #242016;
  --surface-card: #262422;
  --surface-border: #444341;
  --hero-wash-top: #453D26;
  --text-strong: #F4F4F6;
  --text-body: #D4D3D3;
  --text-muted: #9D9C9C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(212, 175, 55, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #3E3725;
  --notice-border: #5A4E28;
  --notice-text: #D4D3D3;
  --notice-icon: #D4AF37;
  --ok-accent: #22C55E;
  --ok-bg: #25442E;
  --ok-border: #255B36;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(212, 175, 55, 0.26);
}

/* ---- midnight ---- */
body.participant-page.theme-midnight{
  --brand-primary: #067BAF;
  --brand-primary-hover: #056A97;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DCEDF5;
  --feature-gradient-from: #0B7CAF;
  --feature-gradient-to: #5A5DF0;
  --icon-gradient-from: #0B7CAF;
  --icon-gradient-to: #5A5DF0;
  --on-gradient: #FFFFFF;
  --surface-page: #E5F0F5;
  --surface-card: #F9FDFF;
  --surface-border: #DCE1E4;
  --hero-wash-top: #DCEDF5;
  --text-strong: #0B1220;
  --text-body: #474D58;
  --text-muted: #6E747B;
  --brand-shadow: rgba(6, 123, 175, 0.3);
  --focus-ring: rgba(6, 123, 175, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E3F1F8;
  --notice-border: #C4E0ED;
  --notice-text: #474D58;
  --notice-icon: #067BAF;
  --ok-accent: #16A34A;
  --ok-bg: #DEF2E9;
  --ok-border: #ACDEC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(6, 123, 175, 0.16);
}
body.participant-page.theme-midnight.theme-dark{
  --brand-primary: #38BDF8;
  --brand-primary-hover: #54C6F9;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #22495F;
  --feature-gradient-from: #0B7CAF;
  --feature-gradient-to: #5A5DF0;
  --icon-gradient-from: #0B7CAF;
  --icon-gradient-to: #5A5DF0;
  --on-gradient: #FFFFFF;
  --surface-page: #11222D;
  --surface-card: #1B252F;
  --surface-border: #3B444C;
  --hero-wash-top: #204053;
  --text-strong: #F4F4F6;
  --text-body: #D1D3D5;
  --text-muted: #989DA1;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(56, 189, 248, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #1F3A4B;
  --notice-border: #24536B;
  --notice-text: #D1D3D5;
  --notice-icon: #38BDF8;
  --ok-accent: #22C55E;
  --ok-bg: #1C4538;
  --ok-border: #1D5B3F;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(56, 189, 248, 0.26);
}

/* ---- marigold ---- */
body.participant-page.theme-marigold{
  --brand-primary: #986803;
  --brand-primary-hover: #835903;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F1E9DA;
  --feature-gradient-from: #886D03;
  --feature-gradient-to: #9E6506;
  --icon-gradient-from: #886D03;
  --icon-gradient-to: #9E6506;
  --on-gradient: #FFFFFF;
  --surface-page: #F1ECE2;
  --surface-card: #FDFBF7;
  --surface-border: #E4E1DA;
  --hero-wash-top: #F1E9DA;
  --text-strong: #292206;
  --text-body: #5E5842;
  --text-muted: #747062;
  --brand-shadow: rgba(152, 104, 3, 0.3);
  --focus-ring: rgba(152, 104, 3, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F4EEE1;
  --notice-border: #E7DBC1;
  --notice-text: #5E5842;
  --notice-icon: #986803;
  --ok-accent: #16A34A;
  --ok-bg: #E1F0E2;
  --ok-border: #AEDDBC;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(152, 104, 3, 0.16);
}
body.participant-page.theme-marigold.theme-dark{
  --brand-primary: #CA8A04;
  --brand-primary-hover: #D19A27;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #4D3B18;
  --feature-gradient-from: #886D03;
  --feature-gradient-to: #9E6506;
  --icon-gradient-from: #886D03;
  --icon-gradient-to: #9E6506;
  --on-gradient: #FFFFFF;
  --surface-page: #231C0F;
  --surface-card: #25221E;
  --surface-border: #44413E;
  --hero-wash-top: #433519;
  --text-strong: #F4F4F6;
  --text-body: #D3D3D2;
  --text-muted: #9D9C9A;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(202, 138, 4, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #3C311A;
  --notice-border: #574116;
  --notice-text: #D3D3D2;
  --notice-icon: #CA8A04;
  --ok-accent: #22C55E;
  --ok-bg: #24432B;
  --ok-border: #245934;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(202, 138, 4, 0.26);
}

/* ---- scarlet ---- */
body.participant-page.theme-scarlet{
  --brand-primary: #DC2626;
  --brand-primary-hover: #BD2121;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #FADFDF;
  --feature-gradient-from: #ED0C0C;
  --feature-gradient-to: #DC2626;
  --icon-gradient-from: #ED0C0C;
  --icon-gradient-to: #DC2626;
  --on-gradient: #FFFFFF;
  --surface-page: #F2E4E4;
  --surface-card: #FEF8F8;
  --surface-border: #E5DBDB;
  --hero-wash-top: #FADFDF;
  --text-strong: #2A0A0A;
  --text-body: #5F4646;
  --text-muted: #816D6D;
  --brand-shadow: rgba(220, 38, 38, 0.3);
  --focus-ring: rgba(220, 38, 38, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #FBE5E5;
  --notice-border: #F7CACA;
  --notice-text: #5F4646;
  --notice-icon: #DC2626;
  --ok-accent: #16A34A;
  --ok-bg: #E2EEE3;
  --ok-border: #AFDBBD;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(220, 38, 38, 0.16);
}
body.participant-page.theme-scarlet.theme-dark{
  --brand-primary: #E55B5B;
  --brand-primary-hover: #E97272;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #552A2E;
  --feature-gradient-from: #ED0C0C;
  --feature-gradient-to: #DC2626;
  --icon-gradient-from: #ED0C0C;
  --icon-gradient-to: #DC2626;
  --on-gradient: #FFFFFF;
  --surface-page: #251014;
  --surface-card: #271B20;
  --surface-border: #453B3F;
  --hero-wash-top: #49272B;
  --text-strong: #F4F4F6;
  --text-body: #D4D1D2;
  --text-muted: #9E989B;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(229, 91, 91, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #422428;
  --notice-border: #602E32;
  --notice-text: #D4D1D2;
  --notice-icon: #E55B5B;
  --ok-accent: #22C55E;
  --ok-bg: #263D2C;
  --ok-border: #255535;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(229, 91, 91, 0.26);
}

/* ---- lime ---- */
body.participant-page.theme-lime{
  --brand-primary: #4D7C0F;
  --brand-primary-hover: #426B0D;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #E5ECDC;
  --feature-gradient-from: #537D0F;
  --feature-gradient-to: #4E7D0A;
  --icon-gradient-from: #537D0F;
  --icon-gradient-to: #4E7D0A;
  --on-gradient: #FFFFFF;
  --surface-page: #E7EAE3;
  --surface-card: #FAFBF8;
  --surface-border: #DFE1DB;
  --hero-wash-top: #E5ECDC;
  --text-strong: #16210A;
  --text-body: #4F5846;
  --text-muted: #6F7568;
  --brand-shadow: rgba(77, 124, 15, 0.3);
  --focus-ring: rgba(77, 124, 15, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #EAF0E3;
  --notice-border: #D4DFC5;
  --notice-text: #4F5846;
  --notice-icon: #4D7C0F;
  --ok-accent: #16A34A;
  --ok-bg: #DFF0E3;
  --ok-border: #ACDDBD;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(77, 124, 15, 0.16);
}
body.participant-page.theme-lime.theme-dark{
  --brand-primary: #5E9712;
  --brand-primary-hover: #75A633;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #2D3D1C;
  --feature-gradient-from: #537D0F;
  --feature-gradient-to: #4E7D0A;
  --icon-gradient-from: #537D0F;
  --icon-gradient-to: #4E7D0A;
  --on-gradient: #FFFFFF;
  --surface-page: #141A11;
  --surface-card: #1D211F;
  --surface-border: #3D403E;
  --hero-wash-top: #29361D;
  --text-strong: #F4F4F6;
  --text-body: #D2D3D2;
  --text-muted: #999B9A;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(94, 151, 18, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #26321D;
  --notice-border: #31441B;
  --notice-text: #D2D3D2;
  --notice-icon: #5E9712;
  --ok-accent: #22C55E;
  --ok-bg: #1E422C;
  --ok-border: #1F5934;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(94, 151, 18, 0.26);
}

/* ---- cyan ---- */
body.participant-page.theme-cyan{
  --brand-primary: #077995;
  --brand-primary-hover: #066880;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DBECF1;
  --feature-gradient-from: #0B8294;
  --feature-gradient-to: #07819E;
  --icon-gradient-from: #0B8294;
  --icon-gradient-to: #07819E;
  --on-gradient: #FFFFFF;
  --surface-page: #E1ECF0;
  --surface-card: #F8FCFD;
  --surface-border: #DBE2E4;
  --hero-wash-top: #DBECF1;
  --text-strong: #08272E;
  --text-body: #445C62;
  --text-muted: #637376;
  --brand-shadow: rgba(7, 121, 149, 0.3);
  --focus-ring: rgba(7, 121, 149, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E2F0F4;
  --notice-border: #C3DFE6;
  --notice-text: #445C62;
  --notice-icon: #077995;
  --ok-accent: #16A34A;
  --ok-bg: #DDF1E8;
  --ok-border: #ABDEC0;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(7, 121, 149, 0.16);
}
body.participant-page.theme-cyan.theme-dark{
  --brand-primary: #0899BC;
  --brand-primary-hover: #2BA7C5;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #143F4D;
  --feature-gradient-from: #0B8294;
  --feature-gradient-to: #07819E;
  --icon-gradient-from: #0B8294;
  --icon-gradient-to: #07819E;
  --on-gradient: #FFFFFF;
  --surface-page: #0C1D24;
  --surface-card: #18222A;
  --surface-border: #384148;
  --hero-wash-top: #153744;
  --text-strong: #F4F4F6;
  --text-body: #D1D3D4;
  --text-muted: #979C9F;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(8, 153, 188, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #16333E;
  --notice-border: #134656;
  --notice-text: #D1D3D4;
  --notice-icon: #0899BC;
  --ok-accent: #22C55E;
  --ok-bg: #1A4334;
  --ok-border: #1B593C;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(8, 153, 188, 0.26);
}

/* ---- fuchsia ---- */
body.participant-page.theme-fuchsia{
  --brand-primary: #B824CA;
  --brand-primary-hover: #9E1FAE;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F5DFF8;
  --feature-gradient-from: #C60AE3;
  --feature-gradient-to: #C026D3;
  --icon-gradient-from: #C60AE3;
  --icon-gradient-to: #C026D3;
  --on-gradient: #FFFFFF;
  --surface-page: #F0E4F2;
  --surface-card: #FDF8FE;
  --surface-border: #E4DBE5;
  --hero-wash-top: #F5DFF8;
  --text-strong: #2A0A2E;
  --text-body: #5F4662;
  --text-muted: #806D83;
  --brand-shadow: rgba(184, 36, 202, 0.3);
  --focus-ring: rgba(184, 36, 202, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F7E5F9;
  --notice-border: #EEC9F3;
  --notice-text: #5F4662;
  --notice-icon: #B824CA;
  --ok-accent: #16A34A;
  --ok-bg: #E1EEE8;
  --ok-border: #AEDBC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(184, 36, 202, 0.16);
}
body.participant-page.theme-fuchsia.theme-dark{
  --brand-primary: #CF4DDF;
  --brand-primary-hover: #D666E3;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #4E2758;
  --feature-gradient-from: #C60AE3;
  --feature-gradient-to: #C026D3;
  --icon-gradient-from: #C60AE3;
  --icon-gradient-to: #C026D3;
  --on-gradient: #FFFFFF;
  --surface-page: #221028;
  --surface-card: #251B2D;
  --surface-border: #443B4A;
  --hero-wash-top: #44244D;
  --text-strong: #F4F4F6;
  --text-body: #D3D1D5;
  --text-muted: #9D98A1;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(207, 77, 223, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #3D2246;
  --notice-border: #582A62;
  --notice-text: #D3D1D5;
  --notice-icon: #CF4DDF;
  --ok-accent: #22C55E;
  --ok-bg: #243D37;
  --ok-border: #24553E;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(207, 77, 223, 0.26);
}

/* ---- mocha ---- */
body.participant-page.theme-mocha{
  --brand-primary: #57534E;
  --brand-primary-hover: #4B4743;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #E6E6E5;
  --feature-gradient-from: #7B746F;
  --feature-gradient-to: #78716C;
  --icon-gradient-from: #7B746F;
  --icon-gradient-to: #78716C;
  --on-gradient: #FFFFFF;
  --surface-page: #E7E7E8;
  --surface-card: #FAFAFA;
  --surface-border: #DFDFDF;
  --hero-wash-top: #E6E6E5;
  --text-strong: #1C1917;
  --text-body: #545150;
  --text-muted: #727170;
  --brand-shadow: rgba(87, 83, 78, 0.3);
  --focus-ring: rgba(87, 83, 78, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #EBEBEB;
  --notice-border: #D6D5D4;
  --notice-text: #545150;
  --notice-icon: #57534E;
  --ok-accent: #16A34A;
  --ok-bg: #DFF0E5;
  --ok-border: #ACDCBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(87, 83, 78, 0.16);
}
body.participant-page.theme-mocha.theme-dark{
  --brand-primary: #8C867F;
  --brand-primary-hover: #9C9791;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #383739;
  --feature-gradient-from: #7B746F;
  --feature-gradient-to: #78716C;
  --icon-gradient-from: #7B746F;
  --icon-gradient-to: #78716C;
  --on-gradient: #FFFFFF;
  --surface-page: #151518;
  --surface-card: #1D1E23;
  --surface-border: #3D3E42;
  --hero-wash-top: #313134;
  --text-strong: #F4F4F6;
  --text-body: #D2D2D3;
  --text-muted: #999A9C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(140, 134, 127, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #2D2D30;
  --notice-border: #3E3D3F;
  --notice-text: #D2D2D3;
  --notice-icon: #8C867F;
  --ok-accent: #22C55E;
  --ok-bg: #1E3F2F;
  --ok-border: #1F5737;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(140, 134, 127, 0.26);
}

/* ---- sky ---- */
body.participant-page.theme-sky{
  --brand-primary: #0277B3;
  --brand-primary-hover: #02669A;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DAEBF4;
  --feature-gradient-from: #067BAF;
  --feature-gradient-to: #0277B3;
  --icon-gradient-from: #067BAF;
  --icon-gradient-to: #0277B3;
  --on-gradient: #FFFFFF;
  --surface-page: #E1EBF1;
  --surface-card: #F7FBFD;
  --surface-border: #DAE1E6;
  --hero-wash-top: #DAEBF4;
  --text-strong: #07243A;
  --text-body: #435A6B;
  --text-muted: #61717E;
  --brand-shadow: rgba(2, 119, 179, 0.3);
  --focus-ring: rgba(2, 119, 179, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E1EFF6;
  --notice-border: #C1DEED;
  --notice-text: #435A6B;
  --notice-icon: #0277B3;
  --ok-accent: #16A34A;
  --ok-bg: #DCF0E8;
  --ok-border: #ABDDC0;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(2, 119, 179, 0.16);
}
body.participant-page.theme-sky.theme-dark{
  --brand-primary: #098FD5;
  --brand-primary-hover: #2B9FDB;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #143B55;
  --feature-gradient-from: #067BAF;
  --feature-gradient-to: #0277B3;
  --icon-gradient-from: #067BAF;
  --icon-gradient-to: #0277B3;
  --on-gradient: #FFFFFF;
  --surface-page: #0B1B27;
  --surface-card: #17212C;
  --surface-border: #37404A;
  --hero-wash-top: #14354A;
  --text-strong: #F4F4F6;
  --text-body: #D1D3D5;
  --text-muted: #979BA0;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(9, 143, 213, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #153044;
  --notice-border: #13425F;
  --notice-text: #D1D3D5;
  --notice-icon: #098FD5;
  --ok-accent: #22C55E;
  --ok-bg: #194236;
  --ok-border: #1B593D;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(9, 143, 213, 0.26);
}

/* ---- crimson-noir ---- */
body.participant-page.theme-crimson-noir{
  --brand-primary: #E10626;
  --brand-primary-hover: #C20521;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #FBDEE1;
  --feature-gradient-from: #EB0728;
  --feature-gradient-to: #E11D48;
  --icon-gradient-from: #EB0728;
  --icon-gradient-to: #E11D48;
  --on-gradient: #FFFFFF;
  --surface-page: #F5EAEC;
  --surface-card: #FFFBFB;
  --surface-border: #E5DEDF;
  --hero-wash-top: #FBDEE1;
  --text-strong: #2A0A0F;
  --text-body: #5F464A;
  --text-muted: #816F71;
  --brand-shadow: rgba(225, 6, 38, 0.3);
  --focus-ring: rgba(225, 6, 38, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #FCE5E8;
  --notice-border: #F8C5CC;
  --notice-text: #5F464A;
  --notice-icon: #E10626;
  --ok-accent: #16A34A;
  --ok-bg: #E3F0E6;
  --ok-border: #B0DDBF;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(225, 6, 38, 0.16);
}
body.participant-page.theme-crimson-noir.theme-dark{
  --brand-primary: #FB7185;
  --brand-primary-hover: #FC8596;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #5B333E;
  --feature-gradient-from: #EB0728;
  --feature-gradient-to: #E11D48;
  --icon-gradient-from: #EB0728;
  --icon-gradient-to: #E11D48;
  --on-gradient: #FFFFFF;
  --surface-page: #29191F;
  --surface-card: #292027;
  --surface-border: #473F45;
  --hero-wash-top: #4F2F38;
  --text-strong: #F4F4F6;
  --text-body: #D4D2D4;
  --text-muted: #9F9B9E;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(251, 113, 133, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #462B34;
  --notice-border: #683843;
  --notice-text: #D4D2D4;
  --notice-icon: #FB7185;
  --ok-accent: #22C55E;
  --ok-bg: #284132;
  --ok-border: #27583A;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(251, 113, 133, 0.26);
}

/* ---- emerald-noir ---- */
body.participant-page.theme-emerald-noir{
  --brand-primary: #1D845F;
  --brand-primary-hover: #197252;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #DFEFE9;
  --feature-gradient-from: #1D845F;
  --feature-gradient-to: #0B815A;
  --icon-gradient-from: #1D845F;
  --icon-gradient-to: #0B815A;
  --on-gradient: #FFFFFF;
  --surface-page: #E5F1EE;
  --surface-card: #F9FEFC;
  --surface-border: #DCE4E1;
  --hero-wash-top: #DFEFE9;
  --text-strong: #07241B;
  --text-body: #445B53;
  --text-muted: #677872;
  --brand-shadow: rgba(29, 132, 95, 0.3);
  --focus-ring: rgba(29, 132, 95, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #E5F3EE;
  --notice-border: #C9E3D9;
  --notice-text: #445B53;
  --notice-icon: #1D845F;
  --ok-accent: #16A34A;
  --ok-bg: #DEF3E7;
  --ok-border: #ACDFBF;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(29, 132, 95, 0.16);
}
body.participant-page.theme-emerald-noir.theme-dark{
  --brand-primary: #34D399;
  --brand-primary-hover: #50D9A7;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #215043;
  --feature-gradient-from: #1D845F;
  --feature-gradient-to: #0B815A;
  --icon-gradient-from: #1D845F;
  --icon-gradient-to: #0B815A;
  --on-gradient: #FFFFFF;
  --surface-page: #112521;
  --surface-card: #1B2728;
  --surface-border: #3B4546;
  --hero-wash-top: #20463C;
  --text-strong: #F4F4F6;
  --text-body: #D1D4D4;
  --text-muted: #989E9E;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(52, 211, 153, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #1F3F38;
  --notice-border: #235B4A;
  --notice-text: #D1D4D4;
  --notice-icon: #34D399;
  --ok-accent: #22C55E;
  --ok-bg: #1C4733;
  --ok-border: #1D5D3A;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(52, 211, 153, 0.26);
}

/* ---- amethyst-noir ---- */
body.participant-page.theme-amethyst-noir{
  --brand-primary: #7A50F7;
  --brand-primary-hover: #6945D4;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #ECE7FE;
  --feature-gradient-from: #7A50F7;
  --feature-gradient-to: #8452F5;
  --icon-gradient-from: #7A50F7;
  --icon-gradient-to: #8452F5;
  --on-gradient: #FFFFFF;
  --surface-page: #EEECF5;
  --surface-card: #FCFCFF;
  --surface-border: #E1E0E6;
  --hero-wash-top: #ECE7FE;
  --text-strong: #1A1530;
  --text-body: #534F64;
  --text-muted: #716F7F;
  --brand-shadow: rgba(122, 80, 247, 0.3);
  --focus-ring: rgba(122, 80, 247, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F0EDFE;
  --notice-border: #DFD6FD;
  --notice-text: #534F64;
  --notice-icon: #7A50F7;
  --ok-accent: #16A34A;
  --ok-bg: #E0F1E9;
  --ok-border: #AEDEC1;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(122, 80, 247, 0.16);
}
body.participant-page.theme-amethyst-noir.theme-dark{
  --brand-primary: #A78BFA;
  --brand-primary-hover: #B39BFB;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #433B60;
  --feature-gradient-from: #7A50F7;
  --feature-gradient-to: #8452F5;
  --icon-gradient-from: #7A50F7;
  --icon-gradient-to: #8452F5;
  --on-gradient: #FFFFFF;
  --surface-page: #1F1C2D;
  --surface-card: #23222F;
  --surface-border: #42414C;
  --hero-wash-top: #3B3554;
  --text-strong: #F4F4F6;
  --text-body: #D3D3D5;
  --text-muted: #9C9CA1;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(167, 139, 250, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #35314B;
  --notice-border: #4B426C;
  --notice-text: #D3D3D5;
  --notice-icon: #A78BFA;
  --ok-accent: #22C55E;
  --ok-bg: #234338;
  --ok-border: #23593F;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(167, 139, 250, 0.26);
}

/* ---- cyber-lime ---- */
body.participant-page.theme-cyber-lime{
  --brand-primary: #537D0F;
  --brand-primary-hover: #476C0D;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #E8EFDD;
  --feature-gradient-from: #537D0F;
  --feature-gradient-to: #54820E;
  --icon-gradient-from: #537D0F;
  --icon-gradient-to: #54820E;
  --on-gradient: #FFFFFF;
  --surface-page: #EEF3E6;
  --surface-card: #FCFEF9;
  --surface-border: #E0E3DC;
  --hero-wash-top: #E8EFDD;
  --text-strong: #16210A;
  --text-body: #505846;
  --text-muted: #707669;
  --brand-shadow: rgba(83, 125, 15, 0.3);
  --focus-ring: rgba(83, 125, 15, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #EDF2E4;
  --notice-border: #D7E2C6;
  --notice-text: #505846;
  --notice-icon: #537D0F;
  --ok-accent: #16A34A;
  --ok-bg: #E0F3E4;
  --ok-border: #AEDFBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(83, 125, 15, 0.16);
}
body.participant-page.theme-cyber-lime.theme-dark{
  --brand-primary: #A3E635;
  --brand-primary-hover: #B0EA51;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #425626;
  --feature-gradient-from: #537D0F;
  --feature-gradient-to: #54820E;
  --icon-gradient-from: #537D0F;
  --icon-gradient-to: #54820E;
  --on-gradient: #FFFFFF;
  --surface-page: #1E2715;
  --surface-card: #232821;
  --surface-border: #424640;
  --hero-wash-top: #3A4A25;
  --text-strong: #F4F4F6;
  --text-body: #D3D4D3;
  --text-muted: #9C9E9B;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(163, 230, 53, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #354324;
  --notice-border: #496127;
  --notice-text: #D3D4D3;
  --notice-icon: #A3E635;
  --ok-accent: #22C55E;
  --ok-bg: #23472D;
  --ok-border: #235D36;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(163, 230, 53, 0.26);
}

/* ---- bronze-noir ---- */
body.participant-page.theme-bronze-noir{
  --brand-primary: #A0661E;
  --brand-primary-hover: #8A581A;
  --brand-primary-contrast: #FFFFFF;
  --brand-primary-soft: #F3EAE0;
  --feature-gradient-from: #A0661E;
  --feature-gradient-to: #B45309;
  --icon-gradient-from: #A0661E;
  --icon-gradient-to: #B45309;
  --on-gradient: #FFFFFF;
  --surface-page: #F2EEE8;
  --surface-card: #FEFCFA;
  --surface-border: #E4E1DC;
  --hero-wash-top: #F3EAE0;
  --text-strong: #241804;
  --text-body: #5B5142;
  --text-muted: #787067;
  --brand-shadow: rgba(160, 102, 30, 0.3);
  --focus-ring: rgba(160, 102, 30, 0.55);
  --badge-new-bg: #DC2626;
  --badge-new-text: #FFFFFF;
  --notice-bg: #F6EFE6;
  --notice-border: #E9DBCA;
  --notice-text: #5B5142;
  --notice-icon: #A0661E;
  --ok-accent: #16A34A;
  --ok-bg: #E2F1E5;
  --ok-border: #AFDEBE;
  --ok-text: #15803D;
  --er-accent: #DC2626;
  --check-ring: rgba(160, 102, 30, 0.16);
}
body.participant-page.theme-bronze-noir.theme-dark{
  --brand-primary: #E0A458;
  --brand-primary-hover: #E4B16F;
  --brand-primary-contrast: #0B0B0E;
  --brand-primary-soft: #534330;
  --feature-gradient-from: #A0661E;
  --feature-gradient-to: #B45309;
  --icon-gradient-from: #A0661E;
  --icon-gradient-to: #B45309;
  --on-gradient: #FFFFFF;
  --surface-page: #251F1A;
  --surface-card: #272424;
  --surface-border: #454343;
  --hero-wash-top: #483B2D;
  --text-strong: #F4F4F6;
  --text-body: #D4D3D3;
  --text-muted: #9E9C9C;
  --brand-shadow: rgba(0,0,0,0.60);
  --focus-ring: rgba(224, 164, 88, 0.55);
  --badge-new-bg: #F87171;
  --badge-new-text: #2A0606;
  --notice-bg: #41362B;
  --notice-border: #5F4A34;
  --notice-text: #D4D3D3;
  --notice-icon: #E0A458;
  --ok-accent: #22C55E;
  --ok-bg: #264430;
  --ok-border: #255B38;
  --ok-text: #86EFAC;
  --er-accent: #F87171;
  --check-ring: rgba(224, 164, 88, 0.26);
}

