/* Global 80% text scale (academy landing loads this header standalone, with no
   platform-tokens). Font sizes are rem, spacing is px, so only text shrinks. */
html { font-size: 80%; }

/* ════════════════════════════════════════════════════════════════
   WORKSHOPR · GLOBAL HEADER (mockup partial)
   Two-tier nav. Tier 1: platform marketing nav. Tier 2: app context.
   Fed via the .uh-local[data-property="…"] attribute (colors switch).
   Self-contained: only requires the platform tokens already used
   across the mockups (--phase-*, --color-ink*, --bg-*, etc.).
   If those tokens aren't loaded, this file falls back to literal
   values via OKLCH so it still renders.
   ════════════════════════════════════════════════════════════════ */

/* ── Hide each mockup's pre-existing custom header so only the global one shows ── */
header.mast,                /* v1-editorial masthead */
header.notebook-top,        /* v3-notebook header */
header.appbar,              /* v4-dashboard appbar */
header.bar,                 /* v2-studio + v5-marketing bar */
header.h-globe,             /* planner-redesign Tier 1 */
.h-doc,                     /* planner-redesign Tier 2 */
nav.nav,                    /* academy/index.html nav */
.notebook-top {             /* v3-notebook (when nested) */
  display: none !important;
}

:root {
  --uh-page:     var(--bg-page,     oklch(0.974 0.013 70));
  --uh-surface:  var(--bg-surface,  oklch(1 0 0));
  --uh-soft:     var(--bg-page-alt, oklch(0.97 0.012 70));
  --uh-muted:    var(--bg-muted,    oklch(0.965 0.012 70));
  --uh-ink:      var(--color-ink,   oklch(0.205 0.014 65));
  --uh-ink2:     var(--color-ink-secondary, oklch(0.402 0.012 65));
  --uh-quiet:    var(--color-ink-muted,     oklch(0.55 0.010 65));
  --uh-faint:    var(--color-ink-faint,     oklch(0.72 0.008 60));
  --uh-rule:     var(--gray-200,    oklch(0.205 0.014 65 / 0.10));
  --uh-rule-2:   var(--gray-300,    oklch(0.205 0.014 65 / 0.18));
  --uh-display:  var(--font-heading, 'Fraunces', Georgia, serif);
  --uh-text:     var(--font-body,    'Inter', system-ui, sans-serif);
  --uh-mono:     'JetBrains Mono', ui-monospace, monospace;
  --uh-ease:     cubic-bezier(0.20, 0.90, 0.20, 1);
}

/* ── Tier 1: platform marketing nav ───────────────────── */
.uh-global {
  position: relative;
  background: var(--uh-page);
  border-bottom: 1px solid var(--uh-rule);
  font-family: var(--uh-text);
  z-index: 30;
}
.uh-global__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 14px 32px;
}

.uh-global__logo {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--uh-display);
  font-weight: 600;
  font-size: var(--text-h4, 18px);
  letter-spacing: -0.018em;
  color: var(--uh-ink);
  text-decoration: none;
  font-style: italic;
}
.uh-global__logo svg {
  width: 26px; height: 26px;
  color: var(--uh-ink);
}
.uh-global__logo-text { font-style: italic; font-weight: 600; }
.uh-global__logo-dot { color: oklch(0.55 0.180 22); font-style: normal; }

.uh-global__nav {
  display: flex; align-items: center; justify-content: center;
  gap: 4px;
}
.uh-global__nav-link {
  display: inline-flex; align-items: center; gap: 6px;
  background: transparent; border: 0;
  font-family: inherit;
  font-size: var(--text-small, 14px);
  font-weight: 500;
  color: var(--uh-ink2);
  padding: 8px 16px;
  border-radius: 6px;
  cursor: pointer;
  transition: color 160ms var(--uh-ease), background 160ms var(--uh-ease);
}
.uh-global__nav-link:hover { color: var(--uh-ink); background: var(--uh-muted); }
.uh-global__nav-link.is-active {
  color: oklch(0.49 0.165 22);
  background: transparent;
}
.uh-global__nav-link svg {
  width: 14px; height: 14px;
}

.uh-global__right {
  display: inline-flex; align-items: center; gap: 6px;
}
.uh-global__icon-btn {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  border-radius: 8px;
  color: var(--uh-quiet);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: color 160ms var(--uh-ease), background 160ms var(--uh-ease);
}
.uh-global__icon-btn:hover { color: var(--uh-ink); background: var(--uh-muted); }
.uh-global__icon-btn svg { width: 18px; height: 18px; }

.uh-global__avatar {
  width: 32px; height: 32px;
  border-radius: 999px;
  background: linear-gradient(135deg, oklch(0.55 0.180 22), oklch(0.40 0.150 22));
  color: var(--uh-page);
  display: grid; place-items: center;
  font-family: var(--uh-display);
  font-weight: 600;
  font-size: var(--text-caption, 12px);
  border: 1px solid var(--uh-rule-2);
  margin-left: 6px;
  cursor: pointer;
  text-decoration: none;
}

/* ── Tier 2: app-specific local nav ───────────────────── */
.uh-local {
  /* Phase color defaults to Learn (red); per-app overrides below */
  --_accent:    oklch(0.55 0.180 22);
  --_accent-dk: oklch(0.43 0.160 22);
  --_accent-bg: oklch(0.94 0.045 22);
  background: var(--uh-soft, var(--uh-muted));
  border-bottom: 1px solid var(--uh-rule);
  font-family: var(--uh-text);
  position: relative;
  z-index: 25;
}
.uh-local[data-property="planner"]      { --_accent: oklch(0.58 0.165 240); --_accent-dk: oklch(0.42 0.155 240); --_accent-bg: oklch(0.93 0.040 240); }
.uh-local[data-property="library"]      { --_accent: oklch(0.55 0.180 22);  --_accent-dk: oklch(0.43 0.160 22);  --_accent-bg: oklch(0.94 0.045 22); }
.uh-local[data-property="academy"]      { --_accent: oklch(0.55 0.180 22);  --_accent-dk: oklch(0.43 0.160 22);  --_accent-bg: oklch(0.94 0.045 22); }
.uh-local[data-property="podcasts"]     { --_accent: oklch(0.55 0.180 22);  --_accent-dk: oklch(0.43 0.160 22);  --_accent-bg: oklch(0.94 0.045 22); }
.uh-local[data-property="facilitator"]  { --_accent: oklch(0.58 0.230 295); --_accent-dk: oklch(0.42 0.190 295); --_accent-bg: oklch(0.95 0.05 295); }
.uh-local[data-property="intervention"] { --_accent: oklch(0.58 0.230 295); --_accent-dk: oklch(0.42 0.190 295); --_accent-bg: oklch(0.95 0.05 295); }
.uh-local[data-property="tips"]         { --_accent: oklch(0.58 0.230 295); --_accent-dk: oklch(0.42 0.190 295); --_accent-bg: oklch(0.95 0.05 295); }
.uh-local[data-property="dna"]          { --_accent: oklch(0.62 0.150 165); --_accent-dk: oklch(0.45 0.130 165); --_accent-bg: oklch(0.94 0.04 165); }
.uh-local[data-property="post_workshop"]{ --_accent: oklch(0.62 0.150 165); --_accent-dk: oklch(0.45 0.130 165); --_accent-bg: oklch(0.94 0.04 165); }

.uh-local__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 32px;
}

.uh-local__context {
  display: inline-flex; align-items: center; gap: 8px;
  text-decoration: none;
  cursor: pointer;
  padding: 4px 10px 4px 4px;
  border-radius: 8px;
  transition: background 160ms var(--uh-ease);
}
.uh-local__context:hover { background: rgba(0,0,0,0.025); }
.uh-local__context-icon {
  width: 28px; height: 28px;
  display: grid; place-items: center;
  background: var(--_accent-bg);
  color: var(--_accent-dk);
  border-radius: 6px;
}
.uh-local__context-icon svg { width: 16px; height: 16px; }
.uh-local__context-name {
  font-family: var(--uh-display);
  font-style: italic;
  font-weight: 600;
  font-size: var(--text-body, 16px);
  letter-spacing: -0.014em;
  color: var(--uh-ink);
}
.uh-local__context-tag {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: var(--uh-text);
  font-size: var(--text-micro, 11px);
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--_accent-dk);
  margin-left: 4px;
  font-style: normal;
}
.uh-local__context-tag svg { width: 12px; height: 12px; opacity: 0.75; }

.uh-local__sep {
  display: none; /* hidden by default; not needed in mockup since context already separated */
}

.uh-local__links {
  display: flex; align-items: center; gap: 2px;
  margin-left: 18px;
}
.uh-local__link {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 12px;
  border-radius: 6px;
  font-family: var(--uh-text);
  font-size: var(--text-small, 14px);
  font-weight: 500;
  color: var(--uh-ink2);
  text-decoration: none;
  transition: color 160ms var(--uh-ease), background 160ms var(--uh-ease);
  position: relative;
}
.uh-local__link:hover { color: var(--uh-ink); background: var(--uh-page); }
.uh-local__link svg { width: 14px; height: 14px; opacity: 0.75; }
.uh-local__link.is-active {
  color: var(--_accent-dk);
  font-weight: 600;
}
.uh-local__link.is-active::after {
  content: "";
  position: absolute;
  left: 12px; right: 12px; bottom: -11px;
  height: 2px;
  background: var(--_accent);
  border-radius: 2px 2px 0 0;
}

.uh-local__spacer { flex: 1; }

.uh-local__right {
  display: inline-flex; align-items: center; gap: 4px;
}
.uh-local__right .uh-global__icon-btn { width: 32px; height: 32px; }
.uh-local__right .uh-global__icon-btn svg { width: 17px; height: 17px; }
.uh-local__right .uh-global__avatar { width: 28px; height: 28px; font-size: var(--text-micro, 11px); margin-left: 4px; }

/* ── Mockup-friendly responsive collapse ──────────────── */
@media (max-width: 880px) {
  .uh-global__inner, .uh-local__inner { padding-left: 20px; padding-right: 20px; }
  .uh-global__nav, .uh-local__links { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .uh-global *, .uh-local * { transition-duration: 0.01ms !important; }
}


/* ════════════════════════════════════════════════════════════════
   APP SWITCHER · opens on Workshopr.io logo click
   ════════════════════════════════════════════════════════════════ */
.uh-global__brand-wrap,
.uh-local__context-wrap {
  position: relative;
  display: inline-flex;
}

/* Local-bar context: when used as a button trigger */
button.uh-local__context {
  background: transparent;
  border: 0;
  font: inherit;
  cursor: pointer;
}
.uh-local__context[aria-haspopup] {
  /* keep the same look as the anchor variant */
}
.uh-local__context-chev {
  width: 12px; height: 12px;
  transition: transform 160ms var(--uh-ease);
}
.uh-local__context[aria-expanded="true"] .uh-local__context-chev {
  transform: rotate(180deg);
}
.uh-local__context[aria-expanded="true"] {
  background: rgba(0,0,0,0.04);
}

.uh-global__logo[aria-haspopup] {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; border: 0;
  font: inherit; color: inherit;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 8px;
  transition: background 160ms var(--uh-ease);
}
.uh-global__logo[aria-haspopup]:hover { background: var(--uh-muted); }
.uh-global__logo-chev {
  width: 14px; height: 14px;
  color: var(--uh-quiet);
  transition: transform 160ms var(--uh-ease);
}
.uh-global__logo[aria-expanded="true"] .uh-global__logo-chev { transform: rotate(180deg); }
.uh-global__logo[aria-expanded="true"] { background: var(--uh-muted); }

.uh-app-switcher {
  position: absolute;
  top: calc(100% + 10px);
  left: 0;
  width: 720px;
  max-width: calc(100vw - 32px);
  background: var(--uh-surface);
  border: 1px solid var(--uh-rule-2);
  border-radius: 12px;
  box-shadow:
    0 1px 2px oklch(0.205 0.014 65 / 0.05),
    0 24px 60px oklch(0.205 0.014 65 / 0.18);
  padding: 24px 28px 20px;
  z-index: 60;
  font-family: var(--uh-text);
  /* Animation */
  opacity: 0;
  transform: translateY(-8px) scale(0.985);
  pointer-events: none;
  transition: opacity 180ms var(--uh-ease), transform 180ms var(--uh-ease);
}
.uh-app-switcher[data-open="true"] {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.uh-app-switcher__head {
  margin-bottom: 18px;
}
.uh-app-switcher__title {
  font-family: var(--uh-display);
  font-weight: 600;
  font-size: var(--text-body, 1rem);
  letter-spacing: -0.012em;
  color: var(--uh-ink);
  margin-bottom: 2px;
}
.uh-app-switcher__sub {
  font-size: var(--text-meta, 13px);
  color: var(--uh-quiet);
}

.uh-app-switcher__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 32px;
}

.uh-app-switcher__group {
  display: flex; flex-direction: column;
}

.uh-app-switcher__phase {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--uh-text);
  font-size: var(--text-micro, 11px);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--_phase-color, var(--uh-ink));
  padding: 6px 0 10px;
  margin-bottom: 4px;
  border-bottom: 1px solid var(--uh-rule);
}
.uh-app-switcher__phase-icon {
  width: 18px; height: 18px;
  display: grid; place-items: center;
  border-radius: 4px;
  background: var(--_phase-bg, var(--uh-muted));
  color: var(--_phase-color, var(--uh-ink));
}
.uh-app-switcher__phase-icon svg { width: 12px; height: 12px; }

.uh-app-switcher__group--learn      { --_phase-color: oklch(0.49 0.165 22);  --_phase-bg: oklch(0.94 0.045 22); }
.uh-app-switcher__group--plan       { --_phase-color: oklch(0.42 0.155 240); --_phase-bg: oklch(0.93 0.040 240); }
.uh-app-switcher__group--facilitate { --_phase-color: oklch(0.42 0.190 295); --_phase-bg: oklch(0.95 0.05 295); }
.uh-app-switcher__group--reflect    { --_phase-color: oklch(0.45 0.130 165); --_phase-bg: oklch(0.94 0.04 165); }

.uh-app-switcher__items {
  display: flex; flex-direction: column;
  padding: 6px 0;
}

.uh-app-switcher__item {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 12px;
  align-items: flex-start;
  padding: 8px 6px;
  border-radius: 8px;
  text-decoration: none;
  color: var(--uh-ink);
  transition: background 160ms var(--uh-ease);
}
.uh-app-switcher__item:hover { background: var(--uh-muted); }
.uh-app-switcher__item.is-current {
  background: color-mix(in oklch, var(--_phase-color) 8%, transparent);
}
.uh-app-switcher__item-icon {
  width: 32px; height: 32px;
  display: grid; place-items: center;
  border-radius: 8px;
  background: var(--_phase-bg, var(--uh-muted));
  color: var(--_phase-color, var(--uh-ink));
}
.uh-app-switcher__item-icon svg { width: 18px; height: 18px; }
.uh-app-switcher__item-body {
  display: flex; flex-direction: column;
  gap: 1px;
  min-width: 0;
}
.uh-app-switcher__item-name {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: var(--text-meta, 0.8125rem);
  font-weight: 600;
  color: var(--uh-ink);
  letter-spacing: -0.005em;
}
.uh-app-switcher__item-desc {
  font-size: var(--text-caption, 12px);
  color: var(--uh-quiet);
  line-height: 1.4;
}
.uh-app-switcher__lock {
  width: 12px; height: 12px;
  color: var(--uh-faint);
}
.uh-app-switcher__pill {
  font-family: var(--uh-text);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 700;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  padding: 1px 6px;
  border-radius: 999px;
  line-height: 1.5;
}
.uh-app-switcher__pill--free { color: oklch(0.45 0.130 165); background: oklch(0.94 0.04 165); }
.uh-app-switcher__pill--beta { color: oklch(0.42 0.190 295); background: oklch(0.95 0.05 295); }
.uh-app-switcher__pill--soon { color: var(--uh-quiet); background: var(--uh-muted); }

/* Backdrop (catches outside clicks; transparent — JS drives close on click) */
.uh-app-backdrop {
  position: fixed; inset: 0;
  z-index: 55;
  display: none;
  background: transparent;
}
.uh-app-backdrop[data-open="true"] { display: block; }

@media (max-width: 720px) {
  .uh-app-switcher { width: calc(100vw - 32px); left: 0; padding: 18px; }
  .uh-app-switcher__grid { grid-template-columns: 1fr; gap: 16px; }
}


/* ════════════════════════════════════════════════════════════════
   UH-DOC · workshop-document context bar (third tier, optional)
   Sits beneath uh-local. Shows the active document's title + meta.
   ════════════════════════════════════════════════════════════════ */
.uh-doc {
  background: var(--uh-page);
  border-bottom: 1px solid var(--uh-rule);
  font-family: var(--uh-text);
  position: relative;
  z-index: 20;
}
.uh-doc__inner {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 32px;
}
.uh-doc__main {
  display: flex; align-items: center; gap: 12px;
  min-width: 0;
}
.uh-doc__title {
  font-family: var(--uh-display);
  font-weight: 500;
  font-size: var(--text-body, 1rem);
  letter-spacing: -0.014em;
  color: var(--uh-ink);
  padding: 4px 8px;
  border-radius: 6px;
  border: 1px solid transparent;
  cursor: text;
  max-width: 360px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: background 160ms var(--uh-ease), border-color 160ms var(--uh-ease);
}
.uh-doc__title:hover { background: var(--uh-muted); }
.uh-doc__title:focus {
  outline: 0;
  background: var(--uh-surface);
  border-color: var(--uh-rule-2);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--_accent, oklch(0.55 0.180 22)) 22%, transparent);
}
.uh-doc__meta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-left: 10px;
  margin-left: 4px;
  border-left: 1px solid var(--uh-rule);
}
.uh-doc__chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  font-family: var(--uh-mono);
  font-size: var(--text-caption, 12px);
  color: var(--uh-ink2);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: background 160ms var(--uh-ease), border-color 160ms var(--uh-ease), color 160ms var(--uh-ease);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.uh-doc__chip:hover {
  background: var(--uh-muted);
  color: var(--uh-ink);
  border-color: var(--uh-rule);
}
.uh-doc__chip svg {
  width: 14px; height: 14px;
  opacity: 0.65;
  flex-shrink: 0;
}
.uh-doc__chip-divider {
  color: var(--uh-faint);
  font-weight: 400;
  margin: 0 2px;
}
.uh-doc__chip-sub {
  color: var(--uh-quiet);
  font-size: var(--text-micro, 11px);
  margin-left: 2px;
  padding-left: 8px;
  border-left: 1px solid var(--uh-rule);
}

.uh-doc__spacer { flex: 1; }

.uh-doc__actions {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.uh-doc__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  font-family: var(--uh-text);
  font-size: var(--text-meta, 13px);
  font-weight: 500;
  color: var(--uh-ink2);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  cursor: pointer;
  transition: background 160ms var(--uh-ease), border-color 160ms var(--uh-ease), color 160ms var(--uh-ease);
}
.uh-doc__btn:hover {
  background: var(--uh-muted);
  color: var(--uh-ink);
  border-color: var(--uh-rule);
}
.uh-doc__btn svg {
  width: 12px; height: 12px;
  opacity: 0.6;
}
.uh-doc__btn--primary {
  background: var(--uh-ink);
  color: var(--uh-page);
  border-color: var(--uh-ink);
}
.uh-doc__btn--primary:hover {
  background: var(--_accent-dk, oklch(0.43 0.160 22));
  border-color: var(--_accent-dk, oklch(0.43 0.160 22));
  color: var(--uh-page);
}
.uh-doc__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px 3px 8px;
  border-radius: 999px;
  font-family: var(--uh-text);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
}
.uh-doc__status::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
}
.uh-doc__status--draft { background: var(--uh-muted); color: var(--uh-quiet); }
.uh-doc__status--ready { background: color-mix(in oklch, var(--_accent, oklch(0.55 0.180 22)) 18%, white); color: var(--_accent-dk, oklch(0.43 0.160 22)); }

@media (max-width: 880px) {
  .uh-doc__meta .uh-doc__chip:not(:first-child) { display: none; }
  .uh-doc__btn:not(.uh-doc__btn--primary) { display: none; }
}


/* ════════════════════════════════════════════════════════════════
   UH-POPOVER · base + variants for the doc-bar dropdowns
   (schedule, participants, goal, actions menu)
   ════════════════════════════════════════════════════════════════ */
.uh-doc__chip-wrap,
.uh-doc__btn-wrap {
  position: relative;
  display: inline-flex;
}
.uh-doc__chip[aria-expanded="true"],
.uh-doc__btn[aria-expanded="true"]:not(.uh-doc__btn--primary) {
  background: var(--uh-muted);
  border-color: var(--uh-rule-2);
  color: var(--uh-ink);
}

.uh-popover {
  position: absolute;
  top: calc(100% + 8px);
  background: var(--uh-surface);
  border: 1px solid var(--uh-rule-2);
  border-radius: 12px;
  box-shadow:
    0 1px 2px oklch(0.205 0.014 65 / 0.05),
    0 16px 48px oklch(0.205 0.014 65 / 0.16);
  z-index: 60;
  font-family: var(--uh-text);
  opacity: 0;
  transform: translateY(-6px) scale(0.985);
  pointer-events: none;
  transition: opacity 180ms var(--uh-ease), transform 180ms var(--uh-ease);
}
.uh-popover[data-open="true"] {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}
.uh-popover--left  { left: 0; transform-origin: top left; }
.uh-popover--right { right: 0; transform-origin: top right; }

.uh-popover__head {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 14px;
  padding: 12px 16px 10px;
  border-bottom: 1px solid var(--uh-rule);
  background: var(--uh-soft);
}
.uh-popover__title {
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--uh-quiet);
}
.uh-popover__derived {
  font-family: var(--uh-display);
  font-style: italic;
  font-size: var(--text-meta, 13px);
  color: var(--uh-ink);
}
.uh-popover__derived em { color: var(--_accent, oklch(0.55 0.180 22)); }

.uh-popover__body { padding: 14px 16px 14px; }
.uh-popover__group + .uh-popover__group {
  margin-top: 14px; padding-top: 14px;
  border-top: 1px solid var(--uh-rule);
}
.uh-popover__group-label {
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--uh-faint);
  margin-bottom: 8px;
}

.uh-popover__actions {
  display: flex; align-items: center; justify-content: space-between;
  gap: 8px;
  padding: 12px 16px;
  border-top: 1px solid var(--uh-rule);
  background: var(--uh-soft);
}
.uh-popover__link {
  font-family: var(--uh-text);
  font-size: var(--text-caption, 0.75rem);
  color: var(--uh-quiet);
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
  transition: color 160ms var(--uh-ease), border-color 160ms var(--uh-ease);
}
.uh-popover__link:hover { color: var(--_accent, oklch(0.55 0.180 22)); border-bottom-color: var(--_accent, oklch(0.55 0.180 22)); }
.uh-popover__btn {
  display: inline-flex; align-items: center; gap: 6px;
  height: 30px; padding: 0 14px;
  background: var(--uh-ink);
  color: var(--uh-page);
  border: 0;
  border-radius: 6px;
  font: inherit;
  font-size: var(--text-caption, 0.75rem);
  font-weight: 500;
  cursor: pointer;
  transition: background 160ms var(--uh-ease);
}
.uh-popover__btn:hover { background: var(--_accent-dk, oklch(0.43 0.160 22)); }

/* ── Schedule popover ─────────────────────────────────── */
.uh-popover--schedule { width: 480px; }
.uh-popover__schedule-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 18px;
}
.uh-cal { width: 100%; }
.uh-cal__head {
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center;
  margin-bottom: 6px;
}
.uh-cal__month {
  font-family: var(--uh-display);
  font-weight: 500;
  font-size: var(--text-meta, 13px);
  letter-spacing: -0.01em;
  text-align: center;
  color: var(--uh-ink);
}
.uh-cal__nav {
  width: 22px; height: 22px;
  border-radius: 4px;
  border: 0; background: transparent;
  color: var(--uh-quiet);
  display: grid; place-items: center;
  cursor: pointer;
  transition: background 140ms var(--uh-ease), color 140ms var(--uh-ease);
}
.uh-cal__nav:hover { background: var(--uh-muted); color: var(--uh-ink); }
.uh-cal__nav svg { width: 12px; height: 12px; }
.uh-cal__grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 1px; }
.uh-cal__dow {
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--uh-faint);
  text-align: center;
  padding: 4px 0;
  text-transform: uppercase;
}
.uh-cal__cell {
  aspect-ratio: 1;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--uh-mono);
  font-size: var(--text-micro, 11px);
  color: var(--uh-ink2);
  border-radius: 4px;
  border: 0;
  background: transparent;
  cursor: pointer;
  position: relative;
  font-variant-numeric: tabular-nums;
  transition: background 100ms var(--uh-ease), color 100ms var(--uh-ease);
}
.uh-cal__cell:hover { background: var(--uh-muted); color: var(--uh-ink); }
.uh-cal__cell--out { color: var(--uh-faint); }
.uh-cal__cell--today { font-weight: 700; color: var(--uh-ink); }
.uh-cal__cell--today::after {
  content: ""; position: absolute; bottom: 3px; left: 50%; transform: translateX(-50%);
  width: 3px; height: 3px; border-radius: 50%; background: var(--uh-ink);
}
.uh-cal__cell--selected {
  background: var(--_accent, oklch(0.55 0.180 22));
  color: var(--uh-page);
}
.uh-cal__cell--selected:hover { background: var(--_accent-dk, oklch(0.43 0.160 22)); color: var(--uh-page); }
.uh-cal__cell--conflict {
  background: oklch(0.95 0.060 75);
  color: oklch(0.50 0.155 75);
}

.uh-presets { display: flex; flex-wrap: wrap; gap: 5px; }
.uh-preset {
  padding: 6px 10px;
  background: var(--uh-surface);
  border: 1px solid var(--uh-rule);
  border-radius: 4px;
  font-family: var(--uh-mono);
  font-size: var(--text-micro, 11px);
  color: var(--uh-ink2);
  cursor: pointer;
  transition: all 140ms var(--uh-ease);
}
.uh-preset:hover {
  background: color-mix(in oklch, var(--_accent, oklch(0.55 0.180 22)) 8%, var(--uh-surface));
  border-color: var(--_accent, oklch(0.55 0.180 22));
  color: var(--_accent-dk, oklch(0.43 0.160 22));
}
.uh-preset--active {
  background: var(--uh-ink);
  color: var(--uh-page);
  border-color: var(--uh-ink);
}
.uh-preset--active:hover {
  background: var(--_accent-dk, oklch(0.43 0.160 22));
  border-color: var(--_accent-dk, oklch(0.43 0.160 22));
  color: var(--uh-page);
}

/* ── Participants popover ──────────────────────────── */
.uh-popover--ppl { width: 360px; }
.uh-ppl { list-style: none; margin: 0; padding: 0; }
.uh-ppl li {
  display: grid; grid-template-columns: 26px 1fr auto;
  gap: 10px; align-items: center;
  padding: 6px 0;
  font-size: var(--text-meta, 13px);
  border-bottom: 1px dashed var(--uh-rule);
}
.uh-ppl li:last-child { border-bottom: 0; }
.uh-ppl__avatar {
  width: 24px; height: 24px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--uh-display);
  font-weight: 500;
  font-size: var(--text-nano, 10px);
  color: var(--uh-page);
}
.uh-ppl__name { color: var(--uh-ink); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uh-ppl__sub { color: var(--uh-quiet); font-size: var(--text-micro, 11px); margin-left: 4px; }
.uh-ppl__rsvp {
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 999px;
}
.uh-ppl__rsvp--yes   { background: oklch(0.94 0.04 165); color: oklch(0.40 0.140 165); }
.uh-ppl__rsvp--maybe { background: var(--uh-muted); color: var(--uh-quiet); }
.uh-ppl__rsvp--no    { background: oklch(0.95 0.045 22); color: oklch(0.43 0.160 22); }
.uh-ppl__more {
  display: block;
  padding: 8px 0 0;
  text-align: left;
  font-family: var(--uh-display);
  font-style: italic;
  font-size: var(--text-caption, 12px);
  color: var(--uh-quiet);
}
.uh-input {
  width: 100%;
  padding: 8px 10px;
  font: inherit;
  font-size: var(--text-meta, 13px);
  font-family: var(--uh-text);
  background: var(--uh-surface);
  border: 1px solid var(--uh-rule);
  border-radius: 4px;
  color: var(--uh-ink);
  outline: none;
  transition: border-color 140ms var(--uh-ease), box-shadow 140ms var(--uh-ease);
}
.uh-input::placeholder { color: var(--uh-faint); }
.uh-input:focus {
  border-color: var(--_accent, oklch(0.55 0.180 22));
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--_accent, oklch(0.55 0.180 22)) 14%, transparent);
}

/* ── Actions menu ──────────────────────────────────── */
.uh-popover--menu { width: 280px; }
.uh-menu { padding: 6px; }
.uh-menu__group + .uh-menu__group {
  margin-top: 4px; padding-top: 4px;
  border-top: 1px solid var(--uh-rule);
}
.uh-menu__label {
  padding: 8px 10px 4px;
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 0.625rem);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--uh-faint);
}
.uh-menu__item {
  display: grid;
  grid-template-columns: 18px 1fr auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  padding: 8px 10px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  font: inherit;
  font-size: var(--text-meta, 13px);
  color: var(--uh-ink2);
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  transition: background 140ms var(--uh-ease), color 140ms var(--uh-ease);
}
.uh-menu__item:hover { background: var(--uh-muted); color: var(--uh-ink); }
.uh-menu__item svg { width: 14px; height: 14px; opacity: 0.7; justify-self: center; }
.uh-menu__item-name { display: inline-flex; align-items: center; gap: 6px; }
.uh-menu__item-name em { font-family: var(--uh-display); font-style: italic; color: var(--uh-quiet); font-weight: 400; font-size: var(--text-caption, 12px); }
.uh-menu__shortcut {
  font-family: var(--uh-mono);
  font-size: var(--text-nano, 10px);
  color: var(--uh-faint);
  letter-spacing: 0.04em;
}
.uh-menu__item--primary {
  color: var(--uh-ink);
  font-weight: 500;
  background: color-mix(in oklch, var(--_accent, oklch(0.55 0.180 22)) 12%, var(--uh-surface));
}
.uh-menu__item--primary:hover {
  background: var(--_accent, oklch(0.55 0.180 22));
  color: var(--uh-page);
}
.uh-menu__item--primary:hover svg { opacity: 1; color: var(--uh-page); }
.uh-menu__item--danger { color: oklch(0.50 0.18 25); }
.uh-menu__item--danger:hover { background: oklch(0.96 0.04 25); }
.uh-menu__item--danger em { color: oklch(0.50 0.18 25 / 0.7); }
