/* Rumi Medical frontend menu system v3.
   Explicit contrast tokens, unique theme treatments, keyboard focus,
   icon rail tooltips, mobile navigation, and readable light/dark states. */

body[class*="frontend-theme-"] {
  --public-menu-bg: color-mix(in srgb, var(--surface) 94%, transparent);
  --public-menu-text: var(--text);
  --public-menu-muted: var(--muted);
  --public-menu-border: color-mix(in srgb, var(--border) 84%, transparent);
  --public-menu-hover-bg: var(--surface-2);
  --public-menu-hover-text: var(--primary-strong);
  --public-menu-active-bg: var(--primary-soft);
  --public-menu-active-text: var(--primary-strong);
  --public-menu-focus: var(--primary);
  --portal-menu-bg: linear-gradient(180deg, var(--theme-sidebar), var(--theme-sidebar-2));
  --portal-menu-text: #dbeafe;
  --portal-menu-muted: #91abc4;
  --portal-menu-border: rgba(255,255,255,.12);
  --portal-menu-hover-bg: rgba(255,255,255,.09);
  --portal-menu-hover-text: #ffffff;
  --portal-menu-active-bg: rgba(94,234,212,.15);
  --portal-menu-active-text: #ffffff;
  --portal-menu-accent: #5eead4;
  --portal-menu-danger: #fecaca;
  --portal-menu-focus: #ffffff;
}

body[class*="frontend-theme-"] .public-header {
  background: var(--public-menu-bg);
  border-color: var(--public-menu-border);
  color: var(--public-menu-text);
}
body[class*="frontend-theme-"] .public-header .brand,
body[class*="frontend-theme-"] .public-header .brand-copy,
body[class*="frontend-theme-"] .public-header .brand-copy small {
  color: var(--public-menu-text);
}
body[class*="frontend-theme-"] .public-header .brand-copy small { opacity: .68; }
body[class*="frontend-theme-"] .public-links { isolation: isolate; }
body[class*="frontend-theme-"] .public-links a {
  position: relative;
  color: var(--public-menu-text);
  font-weight: 760;
  line-height: 1.2;
  text-decoration: none;
  outline: none;
}
body[class*="frontend-theme-"] .public-links a:hover,
body[class*="frontend-theme-"] .public-links a:focus-visible {
  background: var(--public-menu-hover-bg);
  color: var(--public-menu-hover-text);
}
body[class*="frontend-theme-"] .public-links a.active,
body[class*="frontend-theme-"] .public-links a[aria-current="page"],
body[class*="frontend-theme-"] .public-links a[aria-current="location"] {
  background: var(--public-menu-active-bg);
  color: var(--public-menu-active-text);
}
body[class*="frontend-theme-"] .public-links a:focus-visible,
body[class*="frontend-theme-"] .public-menu-toggle:focus-visible,
body[class*="frontend-theme-"] .public-actions a:focus-visible,
body[class*="frontend-theme-"] .public-actions button:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--public-menu-focus) 34%, transparent);
}
body[class*="frontend-theme-"] .public-menu-toggle,
body[class*="frontend-theme-"] .public-actions .icon-button,
body[class*="frontend-theme-"] .public-actions .btn-outline,
body[class*="frontend-theme-"] .public-actions .public-signin {
  border-color: var(--public-menu-border);
  background: color-mix(in srgb, var(--public-menu-bg) 88%, var(--surface-2));
  color: var(--public-menu-text);
}
body[class*="frontend-theme-"] .public-menu-toggle:hover,
body[class*="frontend-theme-"] .public-actions .icon-button:hover,
body[class*="frontend-theme-"] .public-actions .btn-outline:hover,
body[class*="frontend-theme-"] .public-actions .public-signin:hover {
  background: var(--public-menu-hover-bg);
  color: var(--public-menu-hover-text);
}

body[class*="frontend-theme-"] .sidebar {
  background: var(--portal-menu-bg);
  color: var(--portal-menu-text);
  border-color: var(--portal-menu-border);
}
body[class*="frontend-theme-"] .sidebar .brand,
body[class*="frontend-theme-"] .sidebar .brand-copy { color: var(--portal-menu-active-text); }
body[class*="frontend-theme-"] .sidebar .brand-copy small,
body[class*="frontend-theme-"] .nav-section-title { color: var(--portal-menu-muted); }
body[class*="frontend-theme-"] .workspace-chip,
body[class*="frontend-theme-"] .sidebar-user-card {
  color: var(--portal-menu-text);
  background: color-mix(in srgb, var(--portal-menu-hover-bg) 76%, transparent);
  border-color: var(--portal-menu-border);
}
body[class*="frontend-theme-"] .workspace-chip small,
body[class*="frontend-theme-"] .sidebar-user-copy small { color: var(--portal-menu-muted); }
body[class*="frontend-theme-"] .workspace-chip strong,
body[class*="frontend-theme-"] .sidebar-user-copy strong { color: var(--portal-menu-active-text); }
body[class*="frontend-theme-"] .workspace-chip-dot {
  background: var(--portal-menu-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--portal-menu-accent) 16%, transparent);
}
body[class*="frontend-theme-"] .side-nav a {
  position: relative;
  color: var(--portal-menu-text);
  border-color: transparent;
  outline: none;
  overflow: visible;
}
body[class*="frontend-theme-"] .side-nav a .nav-icon { color: currentColor; opacity: .88; }
body[class*="frontend-theme-"] .side-nav a:hover,
body[class*="frontend-theme-"] .side-nav a:focus-visible {
  color: var(--portal-menu-hover-text);
  background: var(--portal-menu-hover-bg);
  border-color: var(--portal-menu-border);
}
body[class*="frontend-theme-"] .side-nav a.active,
body[class*="frontend-theme-"] .side-nav a[aria-current="page"] {
  color: var(--portal-menu-active-text);
  background: var(--portal-menu-active-bg);
  border-color: color-mix(in srgb, var(--portal-menu-accent) 38%, var(--portal-menu-border));
  box-shadow: inset 3px 0 0 var(--portal-menu-accent);
}
body[class*="frontend-theme-"] .side-nav a:focus-visible,
body[class*="frontend-theme-"] .sidebar-close:focus-visible,
body[class*="frontend-theme-"] .sidebar-user-action:focus-visible,
body[class*="frontend-theme-"] .sidebar-signout:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--portal-menu-focus) 30%, transparent);
}
body[class*="frontend-theme-"] .nav-count {
  background: var(--portal-menu-accent);
  color: #07111f;
  border: 1px solid color-mix(in srgb, var(--portal-menu-accent) 70%, #ffffff);
}
body[class*="frontend-theme-"] .sidebar-user-action {
  color: var(--portal-menu-text);
  background: var(--portal-menu-hover-bg);
}
body[class*="frontend-theme-"] .sidebar-signout { color: var(--portal-menu-muted); }
body[class*="frontend-theme-"] .sidebar-signout:hover {
  color: var(--portal-menu-danger);
  background: rgba(248,113,113,.12);
}
body[class*="frontend-theme-"] .sidebar-close { color: var(--portal-menu-text); }
body[class*="frontend-theme-"] .side-nav a > span { min-width: 0; }

/* 01 Rumi Clinical: clear clinical pills with a measured teal indicator. */
body.frontend-theme-rumi_clinical {
  --public-menu-hover-bg: #e9f8f5;
  --public-menu-hover-text: #05665e;
  --public-menu-active-bg: #d7f4ef;
  --public-menu-active-text: #064e49;
  --portal-menu-text: #d7e7f7;
  --portal-menu-muted: #8ea9c2;
  --portal-menu-hover-bg: rgba(94,234,212,.10);
  --portal-menu-active-bg: rgba(45,212,191,.18);
  --portal-menu-accent: #5eead4;
}
body.frontend-theme-rumi_clinical .public-links a::after {
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transform: scaleX(0);
  transition: transform .18s ease;
}
body.frontend-theme-rumi_clinical .public-links a:hover::after,
body.frontend-theme-rumi_clinical .public-links a.active::after { transform: scaleX(1); }
body.frontend-theme-rumi_clinical .side-nav a.active { border-radius: 14px; }

/* 02 Oceanic Pulse: translucent wave tabs and luminous active state. */
body.frontend-theme-oceanic_pulse {
  --public-menu-bg: rgba(247,253,255,.90);
  --public-menu-text: #0c3549;
  --public-menu-border: rgba(2,132,199,.20);
  --public-menu-hover-bg: rgba(14,165,233,.12);
  --public-menu-hover-text: #075985;
  --public-menu-active-bg: #d9f5ff;
  --public-menu-active-text: #075985;
  --portal-menu-bg: linear-gradient(90deg,#062d46,#075985);
  --portal-menu-text: #e6f9ff;
  --portal-menu-muted: #9fd7e8;
  --portal-menu-hover-bg: rgba(103,232,249,.13);
  --portal-menu-active-bg: rgba(103,232,249,.22);
  --portal-menu-accent: #67e8f9;
}
body.frontend-theme-oceanic_pulse .public-links a { border-radius: 999px; }
body.frontend-theme-oceanic_pulse .public-links a.active { box-shadow: 0 8px 22px rgba(2,132,199,.16); }
body.frontend-theme-oceanic_pulse .side-nav a.active { box-shadow: inset 0 -3px 0 #67e8f9, 0 8px 24px rgba(0,0,0,.13); }

/* 03 Alpine Frost: crisp segmented navigation. */
body.frontend-theme-alpine_frost {
  --public-menu-bg: rgba(255,255,255,.96);
  --public-menu-text: #1e3a5f;
  --public-menu-border: #cbdff5;
  --public-menu-hover-bg: #edf6ff;
  --public-menu-hover-text: #1d4ed8;
  --public-menu-active-bg: #1e3a5f;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: #1e3a5f;
  --portal-menu-text: #eaf3ff;
  --portal-menu-muted: #b9d0e7;
  --portal-menu-hover-bg: rgba(255,255,255,.12);
  --portal-menu-active-bg: #ffffff;
  --portal-menu-active-text: #1e3a5f;
  --portal-menu-accent: #93c5fd;
}
body.frontend-theme-alpine_frost .public-links { gap: 0; border: 1px solid var(--public-menu-border); }
body.frontend-theme-alpine_frost .public-links a { border-radius: 0; border-right: 1px solid var(--public-menu-border); }
body.frontend-theme-alpine_frost .public-links a:last-child { border-right: 0; }
body.frontend-theme-alpine_frost .side-nav a.active { box-shadow: inset 0 -4px 0 #60a5fa; }

/* 04 Midnight Neon: HUD menu with readable cyan on near-black. */
body.frontend-theme-midnight_neon {
  --public-menu-bg: rgba(5,8,22,.94);
  --public-menu-text: #e7fbff;
  --public-menu-muted: #9cc9d4;
  --public-menu-border: rgba(34,211,238,.32);
  --public-menu-hover-bg: rgba(34,211,238,.10);
  --public-menu-hover-text: #67e8f9;
  --public-menu-active-bg: rgba(139,92,246,.20);
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: #050816;
  --portal-menu-text: #dffaff;
  --portal-menu-muted: #7fb4c1;
  --portal-menu-border: rgba(34,211,238,.28);
  --portal-menu-hover-bg: rgba(34,211,238,.10);
  --portal-menu-active-bg: rgba(34,211,238,.16);
  --portal-menu-accent: #22d3ee;
}
body.frontend-theme-midnight_neon .public-links a {
  border: 1px solid transparent;
  border-radius: 2px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}
body.frontend-theme-midnight_neon .public-links a:hover,
body.frontend-theme-midnight_neon .public-links a.active { border-color: #22d3ee; box-shadow: 0 0 18px rgba(34,211,238,.14); }
body.frontend-theme-midnight_neon .side-nav a.active { box-shadow: inset 0 0 0 1px #22d3ee, 0 0 20px rgba(34,211,238,.12); }

/* 05 Desert Luxe: numbered editorial index. */
body.frontend-theme-desert_luxe {
  --public-menu-bg: #fffaf4;
  --public-menu-text: #5b3827;
  --public-menu-border: #dbc1ad;
  --public-menu-hover-bg: #f4e2d3;
  --public-menu-hover-text: #3f271d;
  --public-menu-active-bg: #5b3827;
  --public-menu-active-text: #fffaf4;
  --portal-menu-bg: linear-gradient(180deg,#5b3827,#392319);
  --portal-menu-text: #fff4e9;
  --portal-menu-muted: #d9bda7;
  --portal-menu-hover-bg: rgba(255,244,233,.10);
  --portal-menu-active-bg: #fff4e9;
  --portal-menu-active-text: #4b2d20;
  --portal-menu-accent: #e8b58d;
}
body.frontend-theme-desert_luxe .public-links { counter-reset: desert-nav; }
body.frontend-theme-desert_luxe .public-links a { counter-increment: desert-nav; padding-left: 38px; }
body.frontend-theme-desert_luxe .public-links a::before {
  content: counter(desert-nav, decimal-leading-zero);
  position: absolute;
  left: 0;
  color: #a87558;
  font: 700 .64rem/1 ui-monospace, monospace;
}
body.frontend-theme-desert_luxe .side-nav a { border-bottom: 1px solid rgba(255,255,255,.13); }
body.frontend-theme-desert_luxe .side-nav a.active { box-shadow: inset 5px 0 0 #e8b58d; }

/* 06 Sakura Health: soft petal pills with dark text. */
body.frontend-theme-sakura_health {
  --public-menu-bg: rgba(255,250,251,.94);
  --public-menu-text: #5f274f;
  --public-menu-border: #efc6d8;
  --public-menu-hover-bg: #fde7ef;
  --public-menu-hover-text: #7d285b;
  --public-menu-active-bg: #5f274f;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(90deg,#5f274f,#9b3f70);
  --portal-menu-text: #fff2f7;
  --portal-menu-muted: #f2bfd2;
  --portal-menu-hover-bg: rgba(255,255,255,.12);
  --portal-menu-active-bg: #fff2f7;
  --portal-menu-active-text: #6e2954;
  --portal-menu-accent: #f9a8c4;
}
body.frontend-theme-sakura_health .public-links a { border-radius: 999px; padding-inline: 16px; }
body.frontend-theme-sakura_health .public-links a::before {
  content: "";
  width: 6px;
  height: 6px;
  display: inline-block;
  margin-right: 7px;
  border-radius: 60% 40% 60% 40%;
  background: #e879a5;
  transform: rotate(45deg);
}
body.frontend-theme-sakura_health .side-nav a.active { box-shadow: 0 8px 22px rgba(62,17,48,.18); }

/* 07 Nordic Calm: minimal high-contrast line navigation. */
body.frontend-theme-nordic_calm {
  --public-menu-bg: color-mix(in srgb,var(--surface) 96%,transparent);
  --public-menu-text: var(--text);
  --public-menu-border: var(--border);
  --public-menu-hover-bg: transparent;
  --public-menu-hover-text: var(--text);
  --public-menu-active-bg: transparent;
  --public-menu-active-text: var(--text);
  --portal-menu-bg: var(--surface);
  --portal-menu-text: var(--text);
  --portal-menu-muted: var(--muted);
  --portal-menu-border: var(--border);
  --portal-menu-hover-bg: var(--surface-2);
  --portal-menu-hover-text: var(--text);
  --portal-menu-active-bg: transparent;
  --portal-menu-active-text: var(--text);
  --portal-menu-accent: var(--primary);
  --portal-menu-focus: var(--primary);
}
body.frontend-theme-nordic_calm .public-links a,
body.frontend-theme-nordic_calm .side-nav a { border-radius: 0; }
body.frontend-theme-nordic_calm .public-links a::after,
body.frontend-theme-nordic_calm .side-nav a::after {
  content: "";
  position: absolute;
  left: 10px;
  right: 10px;
  bottom: 2px;
  height: 2px;
  background: var(--primary);
  transform: scaleX(0);
  transition: transform .18s ease;
}
body.frontend-theme-nordic_calm .public-links a:hover::after,
body.frontend-theme-nordic_calm .public-links a.active::after,
body.frontend-theme-nordic_calm .side-nav a:hover::after,
body.frontend-theme-nordic_calm .side-nav a.active::after { transform: scaleX(1); }
body.frontend-theme-nordic_calm .side-nav a.active { box-shadow: none; }

/* 08 Royal Indigo: framed tabs with gold-white contrast. */
body.frontend-theme-royal_indigo {
  --public-menu-text: #312e81;
  --public-menu-border: #d8d4ff;
  --public-menu-hover-bg: #eeecff;
  --public-menu-hover-text: #4338ca;
  --public-menu-active-bg: #312e81;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(160deg,#312e81,#5b21b6);
  --portal-menu-text: #f1efff;
  --portal-menu-muted: #c6c1f2;
  --portal-menu-hover-bg: rgba(255,255,255,.11);
  --portal-menu-active-bg: rgba(255,255,255,.18);
  --portal-menu-accent: #f6d98d;
}
body.frontend-theme-royal_indigo .public-links { padding: 4px; border: 1px solid #c7c2f4; border-radius: 14px; }
body.frontend-theme-royal_indigo .public-links a { border-radius: 10px; }
body.frontend-theme-royal_indigo .side-nav a.active { box-shadow: inset 4px 0 0 #f6d98d, 0 10px 26px rgba(17,13,83,.22); }

/* 09 Citrus Vital: bento navigation blocks. */
body.frontend-theme-citrus_vital {
  --public-menu-text: #15432a;
  --public-menu-border: #b7d88b;
  --public-menu-hover-bg: #e9ffc5;
  --public-menu-hover-text: #14532d;
  --public-menu-active-bg: #14532d;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(180deg,#14532d,#27663d);
  --portal-menu-text: #f2ffe0;
  --portal-menu-muted: #c9e7a2;
  --portal-menu-hover-bg: rgba(190,242,100,.14);
  --portal-menu-active-bg: #bef264;
  --portal-menu-active-text: #173d22;
  --portal-menu-accent: #bef264;
}
body.frontend-theme-citrus_vital .public-links a { border: 1px solid transparent; border-radius: 8px 18px 8px 18px; }
body.frontend-theme-citrus_vital .public-links a.active { box-shadow: 4px 4px 0 #bef264; }
body.frontend-theme-citrus_vital .side-nav a:nth-of-type(odd) { border-radius: 18px 7px 18px 7px; }
body.frontend-theme-citrus_vital .side-nav a:nth-of-type(even) { border-radius: 7px 18px 7px 18px; }
body.frontend-theme-citrus_vital .side-nav a.active { box-shadow: 4px 4px 0 rgba(190,242,100,.28); }

/* 10 Copper Clinic: boutique dark menu with copper rules. */
body.frontend-theme-copper_clinic {
  --public-menu-bg: #292524;
  --public-menu-text: #fffaf5;
  --public-menu-border: #6f5b50;
  --public-menu-hover-bg: #423936;
  --public-menu-hover-text: #ffd7b0;
  --public-menu-active-bg: #b45309;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: #292524;
  --portal-menu-text: #f7eee8;
  --portal-menu-muted: #cbb7aa;
  --portal-menu-hover-bg: #403633;
  --portal-menu-active-bg: #fff7ed;
  --portal-menu-active-text: #7c2d12;
  --portal-menu-accent: #f59e0b;
}
body.frontend-theme-copper_clinic .public-links a { border-radius: 2px; border-bottom: 1px solid transparent; }
body.frontend-theme-copper_clinic .public-links a:hover,
body.frontend-theme-copper_clinic .public-links a.active { border-bottom-color: #f59e0b; }
body.frontend-theme-copper_clinic .side-nav a.active { box-shadow: inset -5px 0 0 #f59e0b; }

/* 11 Graphite Pro: dense console tabs with unmistakable selection. */
body.frontend-theme-graphite_pro {
  --public-menu-bg: #f3f4f6;
  --public-menu-text: #111827;
  --public-menu-border: #9ca3af;
  --public-menu-hover-bg: #d1d5db;
  --public-menu-hover-text: #111827;
  --public-menu-active-bg: #111827;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: #111827;
  --portal-menu-text: #e5e7eb;
  --portal-menu-muted: #9ca3af;
  --portal-menu-hover-bg: #273244;
  --portal-menu-active-bg: #f3f4f6;
  --portal-menu-active-text: #111827;
  --portal-menu-accent: #60a5fa;
}
body.frontend-theme-graphite_pro .public-links { gap: 2px; }
body.frontend-theme-graphite_pro .public-links a,
body.frontend-theme-graphite_pro .side-nav a { border-radius: 2px; text-transform: uppercase; letter-spacing: .045em; font-size: .72rem; }
body.frontend-theme-graphite_pro .side-nav a.active { box-shadow: inset 0 -3px 0 #60a5fa; }

/* 12 Botanical Serenity: organic leaf menu shapes. */
body.frontend-theme-botanical_serenity {
  --public-menu-text: #294638;
  --public-menu-border: #c8ddcd;
  --public-menu-hover-bg: #e6f3e8;
  --public-menu-hover-text: #294638;
  --public-menu-active-bg: #294638;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(160deg,#294638,#55735e);
  --portal-menu-text: #ffffff;
  --portal-menu-muted: #c2ddc8;
  --portal-menu-hover-bg: rgba(230,243,232,.12);
  --portal-menu-active-bg: #e6f3e8;
  --portal-menu-active-text: #294638;
  --portal-menu-accent: #a7d6ae;
}
body.frontend-theme-botanical_serenity .public-links a,
body.frontend-theme-botanical_serenity .side-nav a { border-radius: 24px 8px 24px 8px; }
body.frontend-theme-botanical_serenity .side-nav a.active { box-shadow: inset 4px 0 0 #a7d6ae; }

/* 13 Meridian Split: permanent information rail with clear dividers. */
body.frontend-theme-meridian_split {
  --public-menu-bg: #102a43;
  --public-menu-text: #f0f8ff;
  --public-menu-border: #355979;
  --public-menu-hover-bg: #183c5c;
  --public-menu-hover-text: #ffffff;
  --public-menu-active-bg: #d8f3f5;
  --public-menu-active-text: #0b4050;
  --portal-menu-bg: linear-gradient(180deg,#102a43,#164e63);
  --portal-menu-text: #e8f6fb;
  --portal-menu-muted: #a8cbd8;
  --portal-menu-hover-bg: rgba(216,243,245,.10);
  --portal-menu-active-bg: #d8f3f5;
  --portal-menu-active-text: #0b4050;
  --portal-menu-accent: #67e8f9;
}
body.frontend-theme-meridian_split .public-links a { border-bottom: 1px solid #355979; border-radius: 0; padding-block: 15px; }
body.frontend-theme-meridian_split .side-nav a { border-left: 1px solid rgba(255,255,255,.14); border-radius: 0 14px 14px 0; }
body.frontend-theme-meridian_split .side-nav a.active { box-shadow: inset 5px 0 0 #67e8f9; }

/* 14 Neo Care Brutalist: oversized boxed labels with black/yellow contrast. */
body.frontend-theme-neo_care_brutalist {
  --public-menu-bg: #fffdf4;
  --public-menu-text: #111111;
  --public-menu-border: #111111;
  --public-menu-hover-bg: #ffe85c;
  --public-menu-hover-text: #111111;
  --public-menu-active-bg: #ff7151;
  --public-menu-active-text: #111111;
  --portal-menu-bg: #111111;
  --portal-menu-text: #fffdf4;
  --portal-menu-muted: #d9d9d9;
  --portal-menu-border: #fffdf4;
  --portal-menu-hover-bg: #ff7151;
  --portal-menu-hover-text: #111111;
  --portal-menu-active-bg: #ffe85c;
  --portal-menu-active-text: #111111;
  --portal-menu-accent: #ff7151;
}
body.frontend-theme-neo_care_brutalist .public-links a,
body.frontend-theme-neo_care_brutalist .side-nav a { border: 2px solid currentColor; border-radius: 0; font-weight: 900; text-transform: uppercase; }
body.frontend-theme-neo_care_brutalist .public-links a:hover,
body.frontend-theme-neo_care_brutalist .public-links a.active { box-shadow: 4px 4px 0 #111111; transform: translate(-2px,-2px); }
body.frontend-theme-neo_care_brutalist .side-nav a.active { box-shadow: 4px 4px 0 #ff7151; }

/* 15 Aether Glass: floating glass chips with solid readable text. */
body.frontend-theme-aether_glass {
  --public-menu-bg: rgba(255,255,255,.72);
  --public-menu-text: #33256a;
  --public-menu-border: rgba(109,83,180,.24);
  --public-menu-hover-bg: rgba(124,58,237,.12);
  --public-menu-hover-text: #5b21b6;
  --public-menu-active-bg: rgba(91,33,182,.90);
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: rgba(23,37,84,.84);
  --portal-menu-text: #f4f1ff;
  --portal-menu-muted: #c8c0ea;
  --portal-menu-border: rgba(196,181,253,.28);
  --portal-menu-hover-bg: rgba(196,181,253,.14);
  --portal-menu-active-bg: rgba(196,181,253,.25);
  --portal-menu-accent: #c4b5fd;
}
html[data-theme="dark"] body.frontend-theme-aether_glass {
  --public-menu-bg: rgba(17,20,45,.82);
  --public-menu-text: #f4f2ff;
  --public-menu-hover-text: #ffffff;
  --public-menu-active-bg: rgba(167,139,250,.30);
}
body.frontend-theme-aether_glass .public-links a,
body.frontend-theme-aether_glass .side-nav a { border: 1px solid transparent; border-radius: 999px; backdrop-filter: blur(14px); }
body.frontend-theme-aether_glass .public-links a.active,
body.frontend-theme-aether_glass .side-nav a.active { box-shadow: 0 12px 28px rgba(76,29,149,.22); }

/* 16 Editorial Remedy: numbered magazine menu. */
body.frontend-theme-editorial_remedy {
  --public-menu-bg: var(--surface);
  --public-menu-text: var(--text);
  --public-menu-border: var(--text);
  --public-menu-hover-bg: var(--text);
  --public-menu-hover-text: var(--surface);
  --public-menu-active-bg: var(--primary);
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: var(--surface);
  --portal-menu-text: var(--text);
  --portal-menu-muted: var(--muted);
  --portal-menu-border: var(--border);
  --portal-menu-hover-bg: var(--surface-2);
  --portal-menu-hover-text: var(--text);
  --portal-menu-active-bg: var(--text);
  --portal-menu-active-text: var(--surface);
  --portal-menu-accent: var(--primary);
  --portal-menu-focus: var(--primary);
}
body.frontend-theme-editorial_remedy .public-links { counter-reset: editorial-nav; }
body.frontend-theme-editorial_remedy .public-links a { counter-increment: editorial-nav; border-radius: 0; border-right: 1px solid var(--public-menu-border); }
body.frontend-theme-editorial_remedy .public-links a::before { content: "0" counter(editorial-nav); margin-right: 7px; font: 700 .58rem/1 ui-monospace,monospace; opacity: .65; }
body.frontend-theme-editorial_remedy .side-nav a { border-radius: 0; border-bottom: 1px solid var(--portal-menu-border); }
body.frontend-theme-editorial_remedy .side-nav a.active { box-shadow: inset 5px 0 0 var(--primary); }

/* 17 Zen White Space: quiet text navigation with visible focus and active dot. */
body.frontend-theme-zen_whitespace {
  --public-menu-bg: var(--surface);
  --public-menu-text: var(--text);
  --public-menu-border: var(--border);
  --public-menu-hover-bg: transparent;
  --public-menu-hover-text: var(--text);
  --public-menu-active-bg: transparent;
  --public-menu-active-text: var(--text);
  --portal-menu-bg: var(--surface);
  --portal-menu-text: var(--text);
  --portal-menu-muted: var(--muted);
  --portal-menu-border: var(--border);
  --portal-menu-hover-bg: transparent;
  --portal-menu-hover-text: var(--text);
  --portal-menu-active-bg: transparent;
  --portal-menu-active-text: var(--text);
  --portal-menu-accent: var(--primary);
  --portal-menu-focus: var(--primary);
}
body.frontend-theme-zen_whitespace .public-links a,
body.frontend-theme-zen_whitespace .side-nav a { border-radius: 0; padding-inline: 14px; }
body.frontend-theme-zen_whitespace .public-links a.active::before,
body.frontend-theme-zen_whitespace .side-nav a.active::before {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--primary);
  box-shadow: 0 0 0 4px var(--primary-soft);
  margin-right: 8px;
}
body.frontend-theme-zen_whitespace .side-nav a.active { box-shadow: none; }

/* 18 Metro Clinical: square operating-system tiles. */
body.frontend-theme-metro_clinical {
  --public-menu-bg: #132238;
  --public-menu-text: #eef7ff;
  --public-menu-border: #31506d;
  --public-menu-hover-bg: #214364;
  --public-menu-hover-text: #ffffff;
  --public-menu-active-bg: #54a9ff;
  --public-menu-active-text: #07182a;
  --portal-menu-bg: #132238;
  --portal-menu-text: #dcecff;
  --portal-menu-muted: #94afca;
  --portal-menu-hover-bg: #203c59;
  --portal-menu-active-bg: #54a9ff;
  --portal-menu-active-text: #07182a;
  --portal-menu-accent: #8bc7ff;
}
body.frontend-theme-metro_clinical .public-links { gap: 3px; }
body.frontend-theme-metro_clinical .public-links a,
body.frontend-theme-metro_clinical .side-nav a { border-radius: 0; border: 1px solid var(--portal-menu-border); }
body.frontend-theme-metro_clinical .side-nav a.active { box-shadow: inset 5px 0 0 #ffffff; }

/* 19 Capsule OS: bottom floating device dock. */
body.frontend-theme-capsule_os {
  --public-menu-text: #174641;
  --public-menu-border: #b9ddd8;
  --public-menu-hover-bg: #dcf5f1;
  --public-menu-hover-text: #0f766e;
  --public-menu-active-bg: #174641;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(90deg,#103c39,#1b5b55);
  --portal-menu-text: #e9fffb;
  --portal-menu-muted: #afe1da;
  --portal-menu-hover-bg: rgba(129,230,217,.13);
  --portal-menu-active-bg: #e9fffb;
  --portal-menu-active-text: #174641;
  --portal-menu-accent: #81e6d9;
}
body.frontend-theme-capsule_os .public-links a,
body.frontend-theme-capsule_os .side-nav a { border-radius: 999px; }
body.frontend-theme-capsule_os .side-nav a.active { box-shadow: 0 8px 22px rgba(3,41,37,.24); }

/* 20 Heritage Medical: formal institutional tabs and double rules. */
body.frontend-theme-heritage_medical {
  --public-menu-bg: #fffaf0;
  --public-menu-text: #17213a;
  --public-menu-border: #b9aa8d;
  --public-menu-hover-bg: #f1e8d7;
  --public-menu-hover-text: #8f263d;
  --public-menu-active-bg: #17213a;
  --public-menu-active-text: #fffaf0;
  --portal-menu-bg: #17213a;
  --portal-menu-text: #f8f3e9;
  --portal-menu-muted: #c5bba8;
  --portal-menu-hover-bg: rgba(248,243,233,.10);
  --portal-menu-active-bg: #f8f3e9;
  --portal-menu-active-text: #17213a;
  --portal-menu-accent: #d58391;
}
body.frontend-theme-heritage_medical .public-links { border-top: 3px double var(--public-menu-border); border-bottom: 3px double var(--public-menu-border); gap: 0; }
body.frontend-theme-heritage_medical .public-links a { border-radius: 0; font-family: Georgia,"Times New Roman",serif; }
body.frontend-theme-heritage_medical .side-nav a { border-radius: 3px; font-family: Georgia,"Times New Roman",serif; }
body.frontend-theme-heritage_medical .side-nav a.active { box-shadow: inset 4px 0 0 #d58391; }

/* 21 Kinetic Spectrum: angled motion tabs with readable white labels. */
body.frontend-theme-kinetic_spectrum {
  --public-menu-bg: #291d4d;
  --public-menu-text: #fff7ff;
  --public-menu-border: #624d87;
  --public-menu-hover-bg: #52347d;
  --public-menu-hover-text: #ffffff;
  --public-menu-active-bg: #fb6a9a;
  --public-menu-active-text: #261331;
  --portal-menu-bg: linear-gradient(160deg,#291d4d,#512a78);
  --portal-menu-text: #fff2fb;
  --portal-menu-muted: #d1b9dd;
  --portal-menu-hover-bg: rgba(251,106,154,.14);
  --portal-menu-active-bg: #fb6a9a;
  --portal-menu-active-text: #261331;
  --portal-menu-accent: #fbbf24;
}
body.frontend-theme-kinetic_spectrum .public-links a,
body.frontend-theme-kinetic_spectrum .side-nav a { border-radius: 3px; clip-path: polygon(7px 0,100% 0,calc(100% - 7px) 100%,0 100%); }
body.frontend-theme-kinetic_spectrum .side-nav a.active { box-shadow: 5px 5px 0 rgba(251,191,36,.28); }

/* 22 Monolith Black: icon rail with high contrast tooltips. */
body.frontend-theme-monolith_black {
  --public-menu-bg: #070707;
  --public-menu-text: #f5f5f5;
  --public-menu-border: #444444;
  --public-menu-hover-bg: #1a1a1a;
  --public-menu-hover-text: #ffffff;
  --public-menu-active-bg: #f5f5f5;
  --public-menu-active-text: #070707;
  --portal-menu-bg: #050505;
  --portal-menu-text: #e8e8e8;
  --portal-menu-muted: #a5a5a5;
  --portal-menu-border: #3b3b3b;
  --portal-menu-hover-bg: #1b1b1b;
  --portal-menu-active-bg: #f5f5f5;
  --portal-menu-active-text: #070707;
  --portal-menu-accent: #ffffff;
}
body.frontend-theme-monolith_black .public-links a,
body.frontend-theme-monolith_black .side-nav a { border-radius: 0; border: 1px solid transparent; text-transform: uppercase; letter-spacing: .08em; }
body.frontend-theme-monolith_black .public-links a:hover { border-color: #f5f5f5; }
body.frontend-theme-monolith_black .side-nav a.active { box-shadow: inset 4px 0 0 #ffffff; }

/* 23 Mosaic Health: varied tile navigation with one consistent contrast system. */
body.frontend-theme-mosaic_health {
  --public-menu-text: #282a49;
  --public-menu-border: #d6d2e8;
  --public-menu-hover-bg: #f2eefe;
  --public-menu-hover-text: #5b3f91;
  --public-menu-active-bg: #282a49;
  --public-menu-active-text: #ffffff;
  --portal-menu-bg: linear-gradient(160deg,#282a49,#4d3f72);
  --portal-menu-text: #f8f6ff;
  --portal-menu-muted: #cbc5e3;
  --portal-menu-hover-bg: rgba(255,255,255,.11);
  --portal-menu-active-bg: #ffb3aa;
  --portal-menu-active-text: #40201f;
  --portal-menu-accent: #ffd166;
}
body.frontend-theme-mosaic_health .public-links a:nth-child(3n+1),
body.frontend-theme-mosaic_health .side-nav a:nth-of-type(3n+1) { border-radius: 18px 6px; }
body.frontend-theme-mosaic_health .public-links a:nth-child(3n+2),
body.frontend-theme-mosaic_health .side-nav a:nth-of-type(3n+2) { border-radius: 6px 18px; }
body.frontend-theme-mosaic_health .public-links a:nth-child(3n),
body.frontend-theme-mosaic_health .side-nav a:nth-of-type(3n) { border-radius: 14px; }
body.frontend-theme-mosaic_health .side-nav a.active { box-shadow: 4px 4px 0 rgba(255,209,102,.30); }

/* Dark appearance keeps public navigation tied to the active theme surface and text. */
html[data-theme="dark"] body[class*="frontend-theme-"] {
  --public-menu-bg: color-mix(in srgb, var(--surface) 94%, transparent);
  --public-menu-text: var(--text);
  --public-menu-muted: var(--muted);
  --public-menu-border: var(--border);
  --public-menu-hover-bg: var(--surface-2);
  --public-menu-hover-text: var(--text);
  --public-menu-active-bg: var(--primary-soft);
  --public-menu-active-text: var(--text);
  --public-menu-focus: var(--primary);
}

/* Horizontal portal navigation: stable labels, spacing, and scroll affordance. */
@media (min-width: 1100px) {
  body.frontend-theme-oceanic_pulse .side-nav,
  body.frontend-theme-alpine_frost .side-nav,
  body.frontend-theme-sakura_health .side-nav,
  body.frontend-theme-nordic_calm .side-nav,
  body.frontend-theme-graphite_pro .side-nav,
  body.frontend-theme-zen_whitespace .side-nav,
  body.frontend-theme-capsule_os .side-nav {
    gap: 6px;
    scrollbar-width: none;
    overscroll-behavior-inline: contain;
  }
  body.frontend-theme-oceanic_pulse .side-nav::-webkit-scrollbar,
  body.frontend-theme-alpine_frost .side-nav::-webkit-scrollbar,
  body.frontend-theme-sakura_health .side-nav::-webkit-scrollbar,
  body.frontend-theme-nordic_calm .side-nav::-webkit-scrollbar,
  body.frontend-theme-graphite_pro .side-nav::-webkit-scrollbar,
  body.frontend-theme-zen_whitespace .side-nav::-webkit-scrollbar,
  body.frontend-theme-capsule_os .side-nav::-webkit-scrollbar { display: none; }
  body.frontend-theme-oceanic_pulse .side-nav a,
  body.frontend-theme-alpine_frost .side-nav a,
  body.frontend-theme-sakura_health .side-nav a,
  body.frontend-theme-nordic_calm .side-nav a,
  body.frontend-theme-graphite_pro .side-nav a,
  body.frontend-theme-zen_whitespace .side-nav a,
  body.frontend-theme-capsule_os .side-nav a { flex: 0 0 auto; }
  body.frontend-theme-oceanic_pulse .side-nav a.active,
  body.frontend-theme-alpine_frost .side-nav a.active,
  body.frontend-theme-sakura_health .side-nav a.active,
  body.frontend-theme-nordic_calm .side-nav a.active,
  body.frontend-theme-graphite_pro .side-nav a.active,
  body.frontend-theme-zen_whitespace .side-nav a.active,
  body.frontend-theme-capsule_os .side-nav a.active { border-left-color: transparent; }

  /* Tooltips restore labels for compact icon-only rails. */
  body.frontend-theme-midnight_neon .side-nav a > span,
  body.frontend-theme-monolith_black .side-nav a > span {
    display: block;
    position: absolute;
    z-index: 90;
    left: calc(100% + 13px);
    top: 50%;
    min-width: max-content;
    max-width: 240px;
    padding: 8px 10px;
    border: 1px solid var(--portal-menu-border);
    border-radius: 8px;
    background: #0a1020;
    color: #ffffff;
    font-size: .72rem;
    font-weight: 760;
    line-height: 1.2;
    box-shadow: 0 14px 34px rgba(0,0,0,.34);
    opacity: 0;
    pointer-events: none;
    transform: translate(7px,-50%);
    transition: opacity .16s ease, transform .16s ease;
  }
  body.frontend-theme-monolith_black .side-nav a > span { background: #f5f5f5; color: #070707; border-radius: 0; }
  body.frontend-theme-midnight_neon .side-nav a:hover > span,
  body.frontend-theme-midnight_neon .side-nav a:focus-visible > span,
  body.frontend-theme-monolith_black .side-nav a:hover > span,
  body.frontend-theme-monolith_black .side-nav a:focus-visible > span { opacity: 1; transform: translate(0,-50%); }
  [dir="rtl"] body.frontend-theme-midnight_neon .side-nav a > span,
  [dir="rtl"] body.frontend-theme-monolith_black .side-nav a > span { left: auto; right: calc(100% + 13px); }
}

/* Mobile public menu: all themes use a readable elevated sheet. */
@media (max-width: 900px) {
  body[class*="frontend-theme-"] .public-nav { position: relative; }
  body[class*="frontend-theme-"] .public-links {
    top: calc(100% + 8px);
    max-height: min(68vh, 520px);
    overflow-y: auto;
    padding: 10px;
    border: 1px solid var(--public-menu-border);
    border-radius: 18px;
    background: color-mix(in srgb, var(--public-menu-bg) 96%, var(--surface));
    box-shadow: 0 26px 70px rgba(7,20,36,.24);
    backdrop-filter: blur(22px);
  }
  body[class*="frontend-theme-"] .public-links a {
    min-height: 46px;
    display: flex;
    align-items: center;
    padding: 12px 14px;
    border: 0;
    border-radius: 12px;
    transform: none;
  }
  body[class*="frontend-theme-"] .public-links a + a { margin-top: 4px; }
  body[class*="frontend-theme-"] .public-menu-toggle { display: grid; place-items: center; }
  body.public-menu-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 69;
    background: rgba(4,13,24,.36);
    backdrop-filter: blur(2px);
  }
  body.public-menu-open .public-header { z-index: 80; }

  body[class*="frontend-theme-"] .sidebar {
    width: min(324px, 89vw);
    background: var(--portal-menu-bg);
  }
  body[class*="frontend-theme-"] .side-nav a {
    min-height: 48px;
    color: var(--portal-menu-text);
  }
  body[class*="frontend-theme-"] .side-nav a > span {
    display: inline;
    position: static;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    opacity: 1;
    transform: none;
    box-shadow: none;
  }
  body.frontend-theme-copper_clinic .sidebar { left: 0; right: auto; }
  [dir="rtl"] body.frontend-theme-copper_clinic .sidebar { left: auto; right: 0; }
}

@media (max-width: 520px) {
  body[class*="frontend-theme-"] .public-header .brand-copy { font-size: .86rem; }
  body[class*="frontend-theme-"] .public-actions { gap: 6px; }
  body[class*="frontend-theme-"] .public-menu-toggle,
  body[class*="frontend-theme-"] .public-actions .icon-button { width: 40px; height: 40px; }
}

/* Respect reduced motion while retaining clear state changes. */
@media (prefers-reduced-motion: reduce) {
  body[class*="frontend-theme-"] .public-links a,
  body[class*="frontend-theme-"] .side-nav a,
  body[class*="frontend-theme-"] .public-links a::after,
  body[class*="frontend-theme-"] .side-nav a::after,
  body[class*="frontend-theme-"] .side-nav a > span { transition: none !important; }
}
