/* ================================================================
   VENET PORTAL — Light Theme
   All colours are driven by CSS custom properties.
   Nothing is hardcoded — override :root to retheme.
   ================================================================ */

:root {
  /* ── Surfaces ── */
  --v-bg:               #f5f6f8;
  --v-bg-card:          #ffffff;
  --v-bg-hover:         #eef0f3;
  --v-bg-active:        #e8eaed;
  --v-bg-soft:          #fafbfc;
  --v-bg-panel:         #f9faf8;
  --v-bg-pop:           #fffefb;
  --v-bg-pop-alt:       #f4f7f5;

  /* Dark ink used by featured heroes / marketing surfaces (was shared with
     the old dark sidebar — kept separate so the nav can go whitish). */
  --v-ink:              #0f0f0f;

  /* ── Sidebar (whitish, token-driven) ── */
  --v-sidebar-bg:       #f4f6f5;
  --v-sidebar-surface:  #fbfcfb;
  --v-sidebar-width:    260px;
  --v-sidebar-collapsed-width: 68px;
  --v-sidebar-text:     #5f6965;
  --v-sidebar-text-act: #0f1614;
  --v-sidebar-hover:    rgba(17, 24, 21, 0.055);
  --v-sidebar-active:   rgba(17, 24, 21, 0.075);
  --v-sidebar-divider:  #e2e8e4;
  --v-sidebar-label:    #8d9892;
  --v-sidebar-icon:     0.62;     /* opacity value used on svg */
  --v-sidebar-icon-act: 1;
  --v-sidebar-ring:     rgba(15, 22, 20, 0.16);
  --v-sidebar-rail:     #111817;
  --v-sidebar-shadow:   1px 0 0 var(--v-sidebar-divider), 12px 0 28px rgba(17, 28, 24, 0.04);

  /* ── Topbar (mobile) ── */
  --v-topbar-h:         56px;
  --v-topbar-bg:        var(--v-sidebar-bg);

  /* ── Typography ── */
  --v-text:             #0f0f0f;
  --v-text-secondary:   #6b7280;
  --v-text-muted:       #9ca3af;

  /* ── Borders ── */
  --v-border:           #e5e7eb;
  --v-border-subtle:    #f3f4f6;

  /* ── Inputs ──
     Several components reference var(--v-input-bg) with a dark-theme
     fallback (rgba(255,255,255,.06)) that is invisible on white cards;
     defining the token here is what makes those fields visible. */
  --v-input-bg:         #ffffff;

  /* ── Accent ── */
  --v-accent:           #0f0f0f;
  --v-accent-hover:     #262626;
  --v-accent-text:      #ffffff;

  /* ── Status ── */
  --v-success:          #10b981;
  --v-warning:          #f59e0b;
  --v-danger:           #ef4444;
  --v-info:             #3b82f6;

  --v-success-bg:       #ecfdf5;
  --v-warning-bg:       #fffbeb;
  --v-danger-bg:        #fef2f2;
  --v-info-bg:          #eff6ff;

  /* ── Shadows ── */
  --v-shadow-xs:   0 1px 2px rgba(0,0,0,0.06);
  --v-shadow-sm:   0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.05);
  --v-shadow-md:   0 4px 6px rgba(0,0,0,0.06), 0 2px 4px rgba(0,0,0,0.04);
  --v-shadow-card: 0 1px 3px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.04);

  /* ── Radii ── */
  --v-radius-sm:   6px;
  --v-radius-md:   10px;
  --v-radius-lg:   14px;
  --v-radius-xl:   18px;
}

/* ── Body overrides when portal is active ── */
body.venet-mode {
  background: var(--v-bg);
  overflow-x: hidden;
  overflow-x: clip;
  /* long unbroken strings (emails, URLs) wrap instead of widening the page */
  overflow-wrap: break-word;
}
/* Media and code never exceed their container */
.venet-main img, .venet-main svg, .venet-main video,
.venet-main canvas, .venet-main iframe { max-width: 100%; }
.venet-main pre { max-width: 100%; overflow-x: auto; }
/* Hide the global landing nav in the portal — scoped to #mainNav so the
   public /s/ and /u/ views can carry their own small in-view nav. */
body.venet-mode #mainNav,
body.venet-mode .nav__drawer {
  display: none !important;
}
/* /u/ pages keep the landing theme but carry their own in-view nav */
body.venet-public-page #mainNav,
body.venet-public-page .nav__drawer {
  display: none !important;
}

/* ════════════════════════════════════════
   APP SHELL
   ════════════════════════════════════════ */
.venet-app {
  display: flex;
  min-height: 100vh;
  background: var(--v-bg);
  color: var(--v-text);
  font-family: var(--font-body);
  font-size: 0.9375rem;
  line-height: 1.6;
}

/* ════════════════════════════════════════
   SIDEBAR — app shell navigation
   Quiet, token-driven rail: clear active state, scannable groups,
   keyboard-friendly focus, restrained motion.
   ════════════════════════════════════════ */
.venet-sidebar {
  position: fixed;
  inset-block: 0;
  left: 0;
  width: var(--v-sidebar-width);
  background:
    linear-gradient(180deg, var(--v-sidebar-surface) 0%, var(--v-sidebar-bg) 120px);
  border-right: 1px solid var(--v-sidebar-divider);
  display: flex;
  flex-direction: column;
  z-index: 200;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: none;
  box-shadow: var(--v-sidebar-shadow);
  transition: transform 0.36s cubic-bezier(0.22, 1, 0.36, 1), width 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
}
.venet-sidebar::-webkit-scrollbar { display: none; }

/* Head */
.venet-sidebar__head {
  position: relative;
  padding: 18px 16px 14px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 64px;
  background: transparent;
  border-bottom: 1px solid transparent;
}
.venet-sidebar__handle {
  position: fixed;
  top: 78px;
  left: calc(var(--v-sidebar-width) - 1px);
  width: 18px;
  height: 40px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--v-sidebar-text);
  background: var(--v-sidebar-surface);
  border: 1px solid var(--v-sidebar-divider);
  border-left: none;
  border-radius: 0 10px 10px 0;
  box-shadow: 4px 2px 10px rgba(17, 28, 24, 0.06);
  cursor: pointer;
  z-index: 220;
  transition: left 0.28s cubic-bezier(0.22, 1, 0.36, 1), color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.venet-sidebar__handle:hover {
  color: var(--v-sidebar-text-act);
  background: #fff;
  box-shadow: 5px 3px 12px rgba(17, 28, 24, 0.1);
}
.venet-sidebar__handle:focus-visible {
  color: var(--v-sidebar-text-act);
  background: #fff;
  outline: 2px solid var(--v-sidebar-ring);
  outline-offset: 2px;
}
.venet-sidebar__handle svg { transition: transform 0.22s ease; }
.venet-sidebar.is-collapsed ~ .venet-sidebar__handle {
  left: calc(var(--v-sidebar-collapsed-width) - 1px);
}
.venet-sidebar.is-collapsed ~ .venet-sidebar__handle svg { transform: rotate(180deg); }
.venet-sidebar__logo {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-decoration: none;
  border-radius: 8px;
  transition: opacity 0.18s ease;
}
.venet-sidebar__logo:hover { opacity: 0.78; }
.venet-sidebar__logo:focus-visible {
  outline: 2px solid var(--v-sidebar-ring);
  outline-offset: 3px;
}
.venet-sidebar__wordmark {
  font-family: var(--font-heading);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  color: var(--v-sidebar-text-act);
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.venet-sidebar__badge {
  font-family: var(--font-heading);
  font-size: 0.55rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v-sidebar-label);
  opacity: 0.95;
}

/* Nav body */
.venet-sidebar__nav {
  position: relative;
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
  padding: 10px 10px 16px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.venet-sidebar__nav:hover { scrollbar-color: var(--v-sidebar-divider) transparent; }
.venet-sidebar__nav::-webkit-scrollbar { width: 4px; }
.venet-sidebar__nav::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 999px;
}
.venet-sidebar__nav:hover::-webkit-scrollbar-thumb { background: var(--v-sidebar-divider); }

.venet-sidebar__label {
  font-family: var(--font-heading);
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v-sidebar-label);
  padding: 14px 12px 6px;
  transition: opacity 0.2s ease;
  user-select: none;
}
.venet-sidebar__label--group {
  margin-top: 8px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, var(--v-sidebar-divider) 70%, transparent);
}

.venet-sidebar__link {
  display: flex;
  align-items: center;
  gap: 11px;
  min-height: 40px;
  padding: 8px 11px 8px 12px;
  border-radius: 10px;
  font-size: 0.86rem;
  font-weight: 500;
  font-family: var(--font-body);
  color: var(--v-sidebar-text);
  text-decoration: none;
  position: relative;
  overflow: visible;
  transition: background 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
  cursor: pointer;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  line-height: 1.35;
}
/* Active rail — left accent instead of a trailing dot */
.venet-sidebar__link::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: 0 3px 3px 0;
  background: var(--v-sidebar-rail);
  transform: translateY(-50%);
  opacity: 0;
  transition: height 0.18s ease, opacity 0.18s ease;
  pointer-events: none;
}
.venet-sidebar__link > * { position: relative; z-index: 1; }
.venet-sidebar__link:hover {
  background: var(--v-sidebar-hover);
  color: var(--v-sidebar-text-act);
}
.venet-sidebar__link:focus-visible {
  outline: 2px solid var(--v-sidebar-ring);
  outline-offset: 1px;
  background: var(--v-sidebar-hover);
  color: var(--v-sidebar-text-act);
}
.venet-sidebar__link[aria-current="page"] {
  background: #fff;
  color: var(--v-sidebar-text-act);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--v-sidebar-divider) 85%, transparent),
              0 1px 2px rgba(17, 28, 24, 0.04);
}
.venet-sidebar__link[aria-current="page"]::before {
  height: 18px;
  opacity: 1;
}
.venet-sidebar__link svg {
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  box-sizing: content-box;
  padding: 5px;
  margin: -5px;
  border-radius: 8px;
  opacity: var(--v-sidebar-icon);
  background: transparent;
  transition: opacity 0.16s ease, background 0.16s ease, color 0.16s ease;
}
.venet-sidebar__link:hover svg,
.venet-sidebar__link:focus-visible svg,
.venet-sidebar__link[aria-current="page"] svg {
  opacity: var(--v-sidebar-icon-act);
  background: color-mix(in srgb, var(--v-sidebar-hover) 80%, transparent);
}

@media (prefers-reduced-motion: reduce) {
  .venet-sidebar,
  .venet-sidebar *,
  .venet-backdrop,
  .venet-subnav,
  .venet-subnav * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

/* Explicit collapse state. Keeping the state on the sidebar means the main
   content moves with it, without relying on pointer hover. */
@media (min-width: 640px) {
  .venet-sidebar.is-collapsed {
    width: var(--v-sidebar-collapsed-width);
    overflow: hidden;
  }
  .venet-sidebar.is-collapsed ~ .venet-main {
    margin-left: var(--v-sidebar-collapsed-width);
  }
  .venet-sidebar.is-collapsed .venet-sidebar__head {
    min-height: 56px;
    padding: 12px 8px;
    justify-content: center;
    gap: 4px;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__wordmark {
    font-size: 0;
    letter-spacing: 0;
    gap: 0;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__badge,
  .venet-sidebar.is-collapsed .venet-sidebar__label,
  .venet-sidebar.is-collapsed .venet-sidebar__user-info,
  .venet-sidebar.is-collapsed .venet-sidebar__install,
  .venet-sidebar.is-collapsed .vn-bell--desktop,
  .venet-sidebar.is-collapsed .venet-subnav,
  .venet-sidebar.is-collapsed .venet-subnav__chev {
    display: none;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__nav { padding: 10px 8px 14px; gap: 4px; }
  .venet-sidebar.is-collapsed .venet-sidebar__link {
    min-height: 42px;
    padding: 9px 0;
    justify-content: center;
    gap: 0;
    font-size: 0;
    border-radius: 11px;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__link::before { display: none; }
  .venet-sidebar.is-collapsed .venet-sidebar__link[aria-current="page"] {
    background: #fff;
    box-shadow: inset 0 0 0 1px var(--v-sidebar-divider);
  }
  .venet-sidebar.is-collapsed .venet-sidebar__link svg {
    margin: 0;
    padding: 7px;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__link .vc-unread-badge {
    position: absolute;
    top: 3px;
    left: 50%;
    margin: 0 0 0 6px;
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    font-size: 0.58rem;
    box-shadow: 0 0 0 2px var(--v-sidebar-bg);
  }
  .venet-sidebar.is-collapsed .venet-sidebar__foot { padding: 8px; }
  .venet-sidebar.is-collapsed .venet-sidebar__user {
    min-height: 44px;
    padding: 8px;
    justify-content: center;
    border-radius: 12px;
  }
  .venet-sidebar.is-collapsed .venet-sidebar__divider { margin: 4px 6px; }
}

/* The section picker floats over the nav instead of pushing the other links
   down when Discover or Business is opened. */
@media (min-width: 640px) {
  .venet-sidebar__nav > .venet-subnav {
    position: absolute;
    left: 38px;
    right: 12px;
    z-index: 4;
  }
}

/* ── Sidebar sub-navigation (in-page tabs surfaced under their link) ── */
.venet-subnav__chev {
  margin-left: auto;
  flex-shrink: 0;
  background: none;
  border: none;
  color: inherit;
  cursor: pointer;
  padding: 5px;
  margin-right: -4px;
  border-radius: 7px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, color 0.15s ease;
}
.venet-subnav__chev:hover,
.venet-subnav__chev:focus-visible {
  background: var(--v-sidebar-hover);
  outline: none;
}
.venet-subnav__chev:focus-visible {
  box-shadow: 0 0 0 2px var(--v-sidebar-ring);
}
.venet-subnav__chev svg { transition: transform 0.18s ease; opacity: 0.65; margin: 0; padding: 0; background: none !important; }
.venet-subnav__chev:hover svg { opacity: 1; }
.venet-subnav__chev.is-open svg { transform: rotate(180deg); opacity: 1; }
.venet-subnav__chev[data-subnav-current="1"] {
  color: var(--v-sidebar-text-act);
  background: color-mix(in srgb, var(--v-sidebar-hover) 70%, transparent);
}
.venet-subnav__chev[data-subnav-current="1"] svg { opacity: 0.9; }
.venet-subnav {
  display: none;
  padding: 6px;
  margin: 0 6px 4px 36px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--v-sidebar-divider) 45%, transparent);
  border: 1px solid color-mix(in srgb, var(--v-sidebar-divider) 70%, transparent);
}
.venet-subnav.is-open {
  display: flex;
  flex-direction: column;
  gap: 1px;
  animation: venetSubnavIn 0.18s ease both;
}
.venet-subnav--portal.is-open { animation: venetSubnavIn 0.16s ease both; }
.venet-sidebar__nav > .venet-subnav {
  position: absolute;
  left: 38px;
  right: 12px;
  z-index: 4;
  margin: 0 8px 0 0;
}
.venet-subnav--portal {
  position: fixed !important;
  width: 216px;
  max-width: calc(100vw - 24px);
  margin: 0 !important;
  padding: 6px;
  background: color-mix(in srgb, #fff 92%, var(--v-sidebar-bg));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  border: 1px solid var(--v-sidebar-divider);
  border-radius: 12px;
  z-index: 600;
  box-shadow: 0 14px 36px rgba(17, 28, 24, 0.14), 0 0 0 1px rgba(255,255,255,0.6) inset;
}
@keyframes venetSubnavIn {
  from { opacity: 0; transform: translateY(-3px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.venet-subnav__item {
  display: block;
  width: 100%;
  text-align: left;
  background: none;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--font-body);
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--v-sidebar-text);
  padding: 8px 11px;
  min-height: 34px;
  position: relative;
  transition: color 0.15s ease, background 0.15s ease;
}
.venet-subnav__item:hover,
.venet-subnav__item:focus-visible {
  color: var(--v-sidebar-text-act);
  background: var(--v-sidebar-hover);
  outline: none;
}
.venet-subnav__item:focus-visible {
  box-shadow: inset 0 0 0 2px var(--v-sidebar-ring);
}
.venet-subnav__item.is-active {
  color: var(--v-sidebar-text-act);
  background: #fff;
  font-weight: 600;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--v-sidebar-divider) 80%, transparent);
}
.venet-subnav__item.is-active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 14px;
  border-radius: 0 2px 2px 0;
  background: var(--v-sidebar-rail);
}

.venet-sidebar__divider {
  height: 1px;
  margin: 10px 12px;
  position: relative;
  background: var(--v-sidebar-divider);
  opacity: 0.85;
}
.venet-sidebar__divider::after { display: none; }

/* Footer — user pill */
.venet-sidebar__foot {
  padding: 10px 10px 14px;
  flex-shrink: 0;
  background: color-mix(in srgb, var(--v-sidebar-bg) 55%, #e9eeeb);
  border-top: 1px solid var(--v-sidebar-divider);
}
/* PWA install button — pwa.js injects it, hidden until installable */
.venet-sidebar__install {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 38px;
  padding: 8px 11px;
  margin-bottom: 8px;
  background: #fff;
  border: 1px solid var(--v-sidebar-divider);
  border-radius: 10px;
  color: var(--v-sidebar-text);
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.16s ease, color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease;
}
.venet-sidebar__install:hover {
  color: var(--v-sidebar-text-act);
  border-color: color-mix(in srgb, var(--v-sidebar-text-act) 18%, var(--v-sidebar-divider));
  box-shadow: 0 2px 8px rgba(17, 28, 24, 0.06);
}
.venet-sidebar__install:focus-visible {
  outline: 2px solid var(--v-sidebar-ring);
  outline-offset: 1px;
}
.venet-sidebar__user {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 8px 10px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--v-sidebar-divider) 90%, transparent);
  box-shadow: 0 1px 2px rgba(17, 28, 24, 0.03);
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}
.venet-sidebar__user:hover {
  border-color: color-mix(in srgb, var(--v-sidebar-text-act) 14%, var(--v-sidebar-divider));
  box-shadow: 0 4px 14px rgba(17, 28, 24, 0.06);
}
.venet-sidebar__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: linear-gradient(145deg, #e8efe9, #dbe4df);
  border: 1px solid rgba(255,255,255,0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--v-sidebar-text-act);
  flex-shrink: 0;
  text-transform: uppercase;
  box-shadow: 0 1px 3px rgba(17, 28, 24, 0.08);
}
.venet-sidebar__user-info {
  flex: 1;
  min-width: 0;
}
.venet-sidebar__username {
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--v-sidebar-text-act);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 1px;
  line-height: 1.3;
}
.venet-sidebar__signout {
  font-size: 0.72rem;
  color: var(--v-sidebar-label);
  background: none;
  border: none;
  padding: 2px 0;
  cursor: pointer;
  font-family: var(--font-body);
  border-radius: 4px;
  transition: color 0.15s ease;
}
.venet-sidebar__signout:hover { color: var(--v-sidebar-text-act); }
.venet-sidebar__signout:focus-visible {
  outline: 2px solid var(--v-sidebar-ring);
  outline-offset: 2px;
  color: var(--v-sidebar-text-act);
}

/* A collapsed rail previews its labels while the pointer is over it. The
   content area stays at the collapsed offset, so the page never jumps. */
@media (min-width: 640px) {
  .venet-sidebar.is-collapsed:hover {
    width: var(--v-sidebar-width);
    overflow-y: auto;
    box-shadow: 14px 0 36px rgba(17, 28, 24, 0.12);
    z-index: 210;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__head {
    min-height: 64px;
    padding: 18px 16px 14px;
    justify-content: space-between;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__wordmark {
    font-size: 0.92rem;
    letter-spacing: 0.14em;
    gap: 8px;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__badge,
  .venet-sidebar.is-collapsed:hover .venet-sidebar__label,
  .venet-sidebar.is-collapsed:hover .venet-sidebar__user-info,
  .venet-sidebar.is-collapsed:hover .venet-sidebar__install,
  .venet-sidebar.is-collapsed:hover .venet-subnav__chev {
    display: block;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__install { display: flex !important; }
  .venet-sidebar.is-collapsed:hover .vn-bell--desktop { display: flex; }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__nav { padding: 10px 10px 16px; gap: 2px; }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__link {
    min-height: 40px;
    padding: 8px 11px 8px 12px;
    justify-content: flex-start;
    gap: 11px;
    font-size: 0.86rem;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__link::before { display: block; }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__link svg {
    margin: -5px;
    padding: 5px;
  }
  .venet-sidebar.is-collapsed:hover .venet-subnav.is-open { display: flex; }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__foot { padding: 10px 10px 14px; }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__user {
    min-height: 52px;
    padding: 8px 10px;
    justify-content: flex-start;
  }
  .venet-sidebar.is-collapsed:hover .venet-sidebar__username,
  .venet-sidebar.is-collapsed:hover .venet-sidebar__signout { display: block; }
  .venet-sidebar.is-collapsed:hover ~ .venet-sidebar__handle {
    left: calc(var(--v-sidebar-width) - 1px);
  }
}

@media (max-width: 639px) {
  body.venet-nav-open { overflow: hidden; }
}

/* ════════════════════════════════════════
   MOBILE TOPBAR
   ════════════════════════════════════════ */
.venet-topbar {
  display: none;
  position: fixed;
  top: 0;
  inset-inline: 0;
  height: var(--v-topbar-h);
  background: var(--v-topbar-bg);
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  z-index: 201;
  border-bottom: 1px solid var(--v-sidebar-divider);
}
.venet-topbar__logo {
  font-family: var(--font-heading);
  font-size: 0.92rem;
  letter-spacing: 0.16em;
  color: var(--v-sidebar-text-act);
  pointer-events: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.venet-topbar__spacer {
  width: 32px;
  flex-shrink: 0;
}

/* Burger */
.venet-burger {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 32px;
  height: 32px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px;
  flex-shrink: 0;
}
.venet-burger span {
  display: block;
  width: 18px;
  height: 1.5px;
  background: var(--v-sidebar-text-act);
  border-radius: 2px;
  transform-origin: center;
  transition: transform 0.24s cubic-bezier(0.4,0,0.2,1), opacity 0.18s;
}
.venet-burger.is-open span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.venet-burger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.venet-burger.is-open span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* ════════════════════════════════════════
   BACKDROP (mobile overlay)
   ════════════════════════════════════════ */
.venet-backdrop {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(20, 29, 25, 0.24);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
  z-index: 199;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.36s ease;
}
.venet-backdrop.is-open {
  opacity: 1;
  pointer-events: auto;
}

/* ════════════════════════════════════════
   MAIN CONTENT AREA
   ════════════════════════════════════════ */
.venet-main {
  flex: 1;
  margin-left: var(--v-sidebar-width);
  min-height: 100vh;
  padding: 36px 40px 64px;
  background: var(--v-bg);
  /* max-width so content doesn't stretch on ultra-wide */
  max-width: 1240px;
  box-sizing: border-box;
}
/* ── Page header ── */
.venet-page-header {
  margin-bottom: 28px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--v-border);
}
.venet-page-title {
  font-family: var(--font-heading);
  font-size: clamp(1.25rem, 2.5vw, 1.6rem);
  font-weight: 700;
  color: var(--v-text);
  letter-spacing: 0.03em;
}
.venet-page-sub {
  font-size: 0.875rem;
  color: var(--v-text-secondary);
  margin-top: 4px;
}

/* ════════════════════════════════════════
   CARDS
   ════════════════════════════════════════ */
.v-card {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-card);
  padding: 24px;
  margin: 20px;
}
.v-card--sm { padding: 18px; }

/* Grid helpers */
.v-grid {
  display: grid;
  gap: 16px;
}
.v-grid--2 { grid-template-columns: repeat(2, 1fr); }
.v-grid--3 { grid-template-columns: repeat(3, 1fr); }
.v-grid--4 { grid-template-columns: repeat(4, 1fr); }
.v-grid--auto { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

/* Stat card */
.v-stat {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-card);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.v-stat__label {
  font-family: var(--font-heading);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v-text-muted);
}
.v-stat__value {
  font-family: var(--font-heading);
  font-size: 1.85rem;
  color: var(--v-text);
  letter-spacing: 0.02em;
  line-height: 1;
}
.v-stat__sub {
  font-size: 0.78rem;
  color: var(--v-text-muted);
}
.v-stat__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--v-radius-sm);
  background: var(--v-bg-hover);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v-text-secondary);
  margin-bottom: 8px;
}

/* Card title / body */
.v-card__label {
  font-family: var(--font-heading);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v-text-muted);
  margin-bottom: 6px;
}
.v-card__title {
  font-family: var(--font-heading);
  font-size: 0.88rem;
  letter-spacing: 0.05em;
  color: var(--v-text);
  margin-bottom: 4px;
}
.v-card__body {
  font-size: 0.875rem;
  color: var(--v-text-secondary);
  line-height: 1.6;
}

/* ── Section label ── */
.v-section-label {
  font-family: var(--font-heading);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v-text-muted);
  margin-bottom: 14px;
}

/* ── Action row ── */
.v-action-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 20px;
}

/* ── Buttons ── */
.v-btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 9px 18px;
  border-radius: var(--v-radius-sm);
  font-family: var(--font-heading);
  font-size: 0.76rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s, transform 0.1s;
  text-decoration: none;
  border: 1px solid transparent;
}
.v-btn:active { transform: scale(0.98); }

.v-btn--primary {
  background: var(--v-accent);
  color: var(--v-accent-text);
  border-color: var(--v-accent);
}
.v-btn--primary:hover { background: var(--v-accent-hover); border-color: var(--v-accent-hover); }

.v-btn--ghost {
  background: transparent;
  color: var(--v-text-secondary);
  border-color: var(--v-border);
}
.v-btn--ghost:hover { background: var(--v-bg-hover); color: var(--v-text); border-color: var(--v-border); }

/* ── Badge / tag ── */
.v-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 9999px;
  font-family: var(--font-heading);
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  background: var(--v-bg-hover);
  color: var(--v-text-secondary);
  border: 1px solid var(--v-border);
}
.v-badge--success { background: var(--v-success-bg); color: var(--v-success); border-color: rgba(16,185,129,0.2); }
.v-badge--warning { background: var(--v-warning-bg); color: #b45309; border-color: rgba(245,158,11,0.2); }
.v-badge--info    { background: var(--v-info-bg);    color: var(--v-info);    border-color: rgba(59,130,246,0.2); }

/* ── Coming soon block ── */
.v-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 72px 24px;
  background: var(--v-bg-card);
  border: 1px dashed var(--v-border);
  border-radius: var(--v-radius-xl);
}
.v-placeholder__icon {
  width: 52px;
  height: 52px;
  border-radius: var(--v-radius-md);
  background: var(--v-bg-hover);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v-text-muted);
  margin-bottom: 16px;
}
.v-placeholder__title {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--v-text-muted);
  margin-bottom: 6px;
}
.v-placeholder__text {
  font-size: 0.875rem;
  color: var(--v-text-muted);
  max-width: 320px;
  line-height: 1.6;
}

/* ── List ── */
.v-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.v-list-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 0;
  border-bottom: 1px solid var(--v-border-subtle);
}
.v-list-item:last-child { border-bottom: none; }
.v-list-item__icon {
  width: 36px;
  height: 36px;
  border-radius: var(--v-radius-sm);
  background: var(--v-bg-hover);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v-text-secondary);
  flex-shrink: 0;
}
.v-list-item__body { flex: 1; min-width: 0; }
.v-list-item__title { font-size: 0.875rem; color: var(--v-text); font-weight: 500; }
.v-list-item__sub { font-size: 0.78rem; color: var(--v-text-muted); margin-top: 1px; }

/* ── Step / checklist ── */
.v-steps {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.v-step {
  display: flex;
  gap: 16px;
  padding: 18px 0;
  border-bottom: 1px solid var(--v-border-subtle);
  align-items: flex-start;
}
.v-step:last-child { border-bottom: none; }
.v-step__num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: 1.5px solid var(--v-border);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 0.65rem;
  color: var(--v-text-muted);
  flex-shrink: 0;
  margin-top: 1px;
}
.v-step--done .v-step__num {
  background: var(--v-success);
  border-color: var(--v-success);
  color: #fff;
}
.v-step__body { flex: 1; }
.v-step__title { font-size: 0.9rem; color: var(--v-text); font-weight: 500; margin-bottom: 3px; }
.v-step__desc  { font-size: 0.82rem; color: var(--v-text-secondary); }

/* ── Quick action card ── */
.v-action-card {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-card);
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  color: inherit;
  transition: background 0.14s, border-color 0.14s, transform 0.14s;
  cursor: pointer;
}
.v-action-card:hover {
  background: var(--v-bg-hover);
  border-color: var(--v-border);
  transform: translateY(-1px);
}
.v-action-card__icon {
  width: 38px;
  height: 38px;
  border-radius: var(--v-radius-sm);
  background: var(--v-bg);
  border: 1px solid var(--v-border);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--v-text-secondary);
  flex-shrink: 0;
}
.v-action-card__title { font-size: 0.875rem; color: var(--v-text); font-weight: 500; }
.v-action-card__sub   { font-size: 0.78rem; color: var(--v-text-muted); margin-top: 2px; }
.v-action-card__arrow {
  margin-left: auto;
  color: var(--v-text-muted);
  flex-shrink: 0;
}

/* ════════════════════════════════════════
   RESPONSIVE — Tablet (640–1023px): icon-only sidebar
   ════════════════════════════════════════ */
@media (min-width: 640px) and (max-width: 1023px) {
  .venet-topbar { display: flex; }
  .venet-burger { display: none; }

  .venet-sidebar {
    width: var(--v-sidebar-width);
    top: var(--v-topbar-h);
    height: calc(100vh - var(--v-topbar-h));
    overflow-y: auto;
    box-shadow: var(--v-sidebar-shadow);
    transition: width 0.28s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.28s ease;
  }
  .venet-sidebar:not(.is-collapsed) {
    box-shadow: 14px 0 32px rgba(17, 28, 24, 0.1);
    z-index: 210;
  }
  /* Default tablet: icon rail (collapsed-like), expand via handle or hover */
  .venet-sidebar__head { min-height: 56px; padding: 12px 8px; justify-content: center; }
  .venet-sidebar__wordmark { font-size: 0; letter-spacing: 0; justify-content: center; }
  .venet-sidebar__badge,
  .venet-sidebar__label { display: none; }
  .venet-sidebar__nav  { padding: 10px 8px 14px; gap: 4px; }
  .venet-sidebar__link { min-height: 42px; padding: 9px 0; justify-content: center; gap: 0; font-size: 0; }
  .venet-sidebar__link::before { display: none; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__head { min-height: 64px; padding: 18px 16px 14px; justify-content: space-between; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__wordmark { font-size: 0.92rem; letter-spacing: 0.14em; justify-content: flex-start; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__badge,
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__label { display: block; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__nav { padding: 10px 10px 16px; gap: 2px; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__link {
    min-height: 40px;
    padding: 8px 11px 8px 12px;
    justify-content: flex-start;
    gap: 11px;
    font-size: 0.86rem;
  }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__link::before { display: block; }
  /* Collapsed rail: no room for the chevron or sub-items */
  .venet-sidebar.is-collapsed .venet-subnav__chev { display: none; }
  .venet-sidebar.is-collapsed .venet-subnav { display: none; }
  /* Collapsed rail clips the row text — dock the unread badge on the icon */
  .venet-sidebar.is-collapsed .venet-sidebar__link .vc-unread-badge {
    position: absolute;
    top: 3px;
    left: 50%;
    margin: 0 0 0 6px;
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    font-size: 0.58rem;
    box-shadow: 0 0 0 2px var(--v-sidebar-bg);
  }
  .venet-sidebar__foot { padding: 8px; }
  .venet-sidebar__user { min-height: 44px; padding: 8px; justify-content: center; }
  .venet-sidebar__username,
  .venet-sidebar__signout { display: none; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__foot { padding: 10px 10px 14px; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__user { min-height: 52px; padding: 8px 10px; justify-content: flex-start; }
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__username,
  .venet-sidebar:not(.is-collapsed) .venet-sidebar__signout { display: block; }

  .venet-backdrop { display: block; }
  .venet-backdrop.is-open { display: none; }

  .venet-main {
    margin-left: var(--v-sidebar-width);
    padding: calc(var(--v-topbar-h) + 24px) 28px 56px;
  }

  .v-grid--2 { grid-template-columns: repeat(2, 1fr); }
  .v-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .v-grid--4 { grid-template-columns: repeat(2, 1fr); }
}

/* ════════════════════════════════════════
   RESPONSIVE — Mobile (<640px): bottom nav
   ════════════════════════════════════════ */
@media (max-width: 639px) {
  .venet-topbar { display: flex; }
  .venet-burger { display: flex; }
  .venet-sidebar__handle { display: none; }

  /* Off-canvas drawer: burger slides in the full sidebar */
  .venet-sidebar {
    top: var(--v-topbar-h);
    height: calc(100vh - var(--v-topbar-h));
    height: calc(100dvh - var(--v-topbar-h));
    width: min(var(--v-sidebar-width), 88vw);
    transform: translateX(-105%);
    box-shadow: none;
    border-right: 1px solid var(--v-sidebar-divider);
    z-index: 400; /* above bottom nav (300), below topbar (401) */
  }
  .venet-sidebar.is-open {
    transform: translateX(0);
    box-shadow: 16px 0 48px rgba(17, 28, 24, 0.18);
  }
  .venet-sidebar__nav { padding: 12px 12px 18px; }
  .venet-sidebar__link { min-height: 44px; padding: 10px 12px; }
  .venet-sidebar__foot { padding: 12px 12px calc(12px + env(safe-area-inset-bottom, 0px)); }

  .venet-topbar { z-index: 401; }
  .venet-backdrop { display: block; top: var(--v-topbar-h); z-index: 399; }

  .venet-main {
    margin-left: 0;
    padding: calc(var(--v-topbar-h) + 16px) 16px calc(56px + 24px);
  }

  .venet-bottom-nav { display: flex; }

  .v-grid--2,
  .v-grid--3,
  .v-grid--4 { grid-template-columns: 1fr; }

  .v-card { padding: 16px; margin: 8px; }
  .venet-page-header { margin-bottom: 16px; padding-bottom: 12px; }

  /* Comfortable touch targets for sidebar sub-items in the drawer */
  .venet-subnav__item { min-height: 40px; padding-top: 10px; padding-bottom: 10px; }

  /* Tab rows: one swipeable row instead of a tall wrapped block */
  .vc-tabs {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 8px;
    padding: 8px;
    border-radius: 14px;
  }
  .vc-tabs::-webkit-scrollbar { display: none; }
  .vc-tab { white-space: nowrap; flex-shrink: 0; padding: 10px 16px; }
}

/* ── Notification Bell ── */
.vn-bell {
  position: relative;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: var(--v-sidebar-text);
  border-radius: var(--v-radius-sm);
  display: flex;
  align-items: center;
  transition: color 0.22s ease, background 0.22s ease, transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
.vn-bell:hover { color: var(--v-sidebar-text-act); background: var(--v-sidebar-hover); transform: translateY(-1px); }
/* Desktop bell — lives in the sidebar head; topbar bell covers <1024px */
.vn-bell--desktop { display: none; }
@media (min-width: 1024px) {
  .vn-bell--desktop { display: flex; }
  body.venet-sidebar-collapsed .vn-panel {
    left: calc(var(--v-sidebar-collapsed-width) + 12px);
  }
}
.vn-bell__badge {
  position: absolute;
  top: 4px; right: 4px;
  min-width: 16px; height: 16px;
  background: #ef4444;
  color: #fff;
  font-size: 0.6rem;
  font-weight: 700;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 3px;
  pointer-events: none;
}

/* ── Notification Panel ── */
.vn-panel {
  position: fixed;
  top: 56px; right: 12px;
  width: 340px;
  background: #fff;
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-md);
  z-index: 500;
  overflow: hidden;
  animation: venetPanelIn 0.24s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes venetPanelIn {
  from { opacity: 0; transform: translateY(-8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
.vn-panel__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--v-border-subtle);
}
.vn-panel__title {
  font-family: var(--font-heading);
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--v-text);
}
.vn-panel__mark-read {
  background: none;
  border: none;
  cursor: pointer;
  font-size: 0.78rem;
  color: var(--v-text-secondary);
  padding: 0;
}
.vn-panel__mark-read:hover { color: var(--v-text); }
.vn-panel__list { max-height: 360px; overflow-y: auto; }
.vn-panel__empty { padding: 24px 16px; text-align: center; font-size: 0.875rem; color: var(--v-text-muted); }
.vn-item {
  display: flex;
  gap: 10px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--v-border-subtle);
  cursor: pointer;
  transition: background 0.12s;
}
.vn-item:hover { background: var(--v-bg); }
.vn-item--unread { background: #eff6ff; }
.vn-item--unread:hover { background: #dbeafe; }
.vn-item__dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--v-info);
  flex-shrink: 0;
  margin-top: 5px;
}
.vn-item__body { flex: 1; min-width: 0; }
.vn-item__title { font-size: 0.85rem; font-weight: 500; color: var(--v-text); margin-bottom: 2px; }
.vn-item__body-text { font-size: 0.8rem; color: var(--v-text-secondary); }
.vn-item__time { font-size: 0.73rem; color: var(--v-text-muted); margin-top: 3px; }
.vn-panel-overlay {
  position: fixed; inset: 0;
  z-index: 499;
}
/* Desktop: the bell sits in the sidebar head, so anchor the panel beside it */
@media (min-width: 1024px) {
  .vn-panel { left: calc(var(--v-sidebar-width) + 12px); right: auto; top: 12px; }
}

/* ── Push permission prompt (push.js) ── */
.vn-push-prompt {
  position: fixed;
  bottom: 16px; right: 16px;
  width: 320px;
  max-width: calc(100vw - 32px);
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-md);
  padding: 16px;
  z-index: 480;
}
.vn-push-prompt__title { font-size: 0.9rem; font-weight: 600; color: var(--v-text); margin-bottom: 4px; }
.vn-push-prompt__body { font-size: 0.82rem; color: var(--v-text-secondary); margin-bottom: 12px; }
.vn-push-prompt__actions { display: flex; gap: 8px; }
@media (max-width: 639px) {
  .vn-push-prompt {
    left: 12px; right: 12px;
    width: auto;
    bottom: calc(56px + 12px + env(safe-area-inset-bottom, 0px));
  }
}

/* ── Dashboard Activity Feed ── */
.vn-activity-feed { display: flex; flex-direction: column; gap: 0; }
.vn-act-item {
  display: flex; gap: 10px; padding: 10px 0;
  border-bottom: 1px solid var(--v-border-subtle);
  align-items: flex-start;
}
.vn-act-item:last-child { border-bottom: none; }
.vn-act-icon {
  width: 28px; height: 28px; border-radius: 50%;
  background: var(--v-info-bg); color: var(--v-info);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.vn-act-body { flex: 1; min-width: 0; }
.vn-act-title { font-size: 0.83rem; font-weight: 500; color: var(--v-text); }
.vn-act-time { font-size: 0.75rem; color: var(--v-text-muted); margin-top: 1px; }

/* ── Connections Member Directory ── */
.v-members-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  margin-bottom: 32px;
}
.v-member-card {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  box-shadow: var(--v-shadow-xs);
  transition: box-shadow 0.15s;
}
.v-member-card:hover { box-shadow: var(--v-shadow-sm); }
.v-member-card__top { display: flex; gap: 12px; align-items: center; }
.v-member-card__id { flex: 1; min-width: 0; }
.v-member-avatar {
  width: 42px; height: 42px; border-radius: 50%;
  background: var(--v-accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-size: 0.85rem; font-weight: 700;
  flex-shrink: 0;
}
.v-member-name { font-weight: 600; font-size: 0.9rem; color: var(--v-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-member-role { font-size: 0.8rem; color: var(--v-text-secondary); margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-member-company { font-size: 0.82rem; font-weight: 500; color: var(--v-text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-member-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.v-member-tag {
  font-size: 0.7rem; padding: 2px 8px;
  background: var(--v-bg); border: 1px solid var(--v-border);
  border-radius: 999px; color: var(--v-text-secondary);
}
.v-connect-btn {
  width: 100%; padding: 8px;
  border-radius: var(--v-radius-sm);
  font-size: 0.8rem; font-weight: 500;
  border: 1px solid var(--v-border);
  background: var(--v-accent); color: #fff;
  cursor: pointer; transition: background 0.15s;
}
.v-connect-btn:hover { background: var(--v-accent-hover); }
.v-connect-btn--pending { background: var(--v-bg); color: var(--v-text-muted); cursor: default; }
.v-connect-btn--connected { background: var(--v-success-bg); color: var(--v-success); border-color: var(--v-success); cursor: default; }

/* ── Chat Layout ── */
.venet-main--chats { display: flex; flex-direction: column; padding: 0; overflow: hidden; height: 100vh; }
.venet-main--chats .venet-page-header { padding: 24px 28px 0; flex-shrink: 0; }
/* Below 1024px the topbar is fixed — keep the chat viewport clear of it.
   (This must live after the base rule above: same specificity, later wins.) */
@media (max-width: 1023px) {
  .venet-main--chats {
    padding-top: var(--v-topbar-h);
    height: 100vh;
    height: 100dvh;
  }
  .venet-main--chats .venet-page-header { padding: 16px 20px 0; }
}

input[type="checkbox"]{
    appearance:none;
    -webkit-appearance:none;

    width:22px;
    height:22px;

    border-radius:8px;

    border:1.5px solid var(--v-border);
    background:var(--v-bg-card);

    display:grid;
    place-items:center;

    cursor:pointer;

    transition:.25s;
}

input[type="checkbox"]::before{

    content:"";

    width:13px;
    height:13px;

    background:white;

    transform:scale(0);

    transition:transform .2s cubic-bezier(.22,1,.36,1);

    mask:url("icons/check.svg") center/contain no-repeat;
    -webkit-mask:url("icons/check.svg") center/contain no-repeat;
}

input[type="checkbox"]:checked{
    background:var(--v-accent);
    border-color:var(--v-accent);
}

input[type="checkbox"]:checked::before{
    transform:scale(1);
}

.vc-tabs{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    padding:10px;
    background:#f5f7fa;
    border:1px solid #e5e7eb;
    border-radius:18px;
}

.vc-tab{
    padding:12px 22px;

    border:1px solid #e5e7eb;
    border-radius:14px;

    background:#fff;

    color:#6b7280;
    font-size:.9rem;
    font-weight:500;

    cursor:pointer;

    transition:all .25s ease;

    box-shadow:
        0 1px 2px rgba(0,0,0,.04);
}

.vc-tab:hover{
    transform:translateY(-2px);

    border-color:#d1d5db;

    box-shadow:
        0 8px 20px rgba(0,0,0,.08);
}

.vc-tab--active{

    background:var(--v-accent);

    color:var(--v-accent-text, #fff);

    border-color:var(--v-accent);

    font-weight:600;

    box-shadow:
        0 12px 30px color-mix(in srgb, var(--v-accent) 28%, transparent);

    transform:translateY(-2px);
}

.vc-tab:active{
    transform:scale(.96);
}
.vc-layout { display: flex; flex: 1; overflow: hidden; }
/* ===========================
   CHATS SIDEBAR (conversation list)
=========================== */

.vc-sidebar {
  width: 320px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, color-mix(in srgb, var(--v-bg-card) 96%, var(--v-bg)) 0%, color-mix(in srgb, var(--v-bg-card) 78%, var(--v-bg)) 100%);
  border-right: 1px solid var(--v-border);
  overflow: hidden;
}

.vc-sidebar__top {
  padding: 18px 16px 14px;
  border-bottom: 1px solid var(--v-border);
  background: color-mix(in srgb, var(--v-bg-card) 94%, transparent);
  flex-shrink: 0;
}
.vc-sidebar__title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.vc-sidebar__eyebrow { margin: 0 0 3px; color: var(--v-text-muted); font-size: .62rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.vc-sidebar__title { margin: 0; color: var(--v-text); font-size: 1rem; letter-spacing: -.02em; font-weight: 700; }
.vc-sidebar__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  margin-left: 6px;
  padding: 0 6px;
  border-radius: 999px;
  background: var(--v-bg-hover);
  color: var(--v-text-secondary);
  font-size: .66rem;
  font-weight: 700;
  vertical-align: 2px;
  border: 1px solid color-mix(in srgb, var(--v-border) 80%, transparent);
}
.vc-sidebar__hint { margin: 5px 0 14px; color: var(--v-text-muted); font-size: .73rem; line-height: 1.45; }
.vc-newmsg-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: 1px solid var(--v-border);
  border-radius: 10px;
  background: var(--v-bg-card);
  color: var(--v-text-secondary);
  cursor: pointer;
  flex-shrink: 0;
  transition: background .14s ease, color .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.vc-newmsg-icon:hover {
  background: var(--v-accent);
  border-color: var(--v-accent);
  color: var(--v-accent-text, #fff);
  box-shadow: 0 2px 8px color-mix(in srgb, var(--v-accent) 22%, transparent);
}
.vc-newmsg-icon:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--v-accent) 40%, transparent);
  outline-offset: 2px;
}
.vc-search {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 40px;
  padding: 0 12px;
  border: 1px solid var(--v-border);
  border-radius: 11px;
  background: var(--v-bg-card);
  color: var(--v-text-muted);
  transition: border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.vc-search:hover { border-color: color-mix(in srgb, var(--v-text-muted) 35%, var(--v-border)); }
.vc-search:focus-within {
  border-color: var(--v-accent);
  background: #fff;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--v-accent) 10%, transparent);
}
.vc-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--v-text); font: inherit; font-size: .8rem; }
.vc-search input::placeholder { color: var(--v-text-muted); }

.vc-sidebar__list {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}
.vc-sidebar__list:hover { scrollbar-color: var(--v-border) transparent; }
.vc-sidebar__list::-webkit-scrollbar { width: 5px; }
.vc-sidebar__list::-webkit-scrollbar-thumb { background: transparent; border-radius: 999px; }
.vc-sidebar__list:hover::-webkit-scrollbar-thumb { background: var(--v-border); }
.vc-sidebar__list::-webkit-scrollbar-thumb:hover { background: var(--v-text-muted); }

/* Conversation rows — quiet by default, left-rail when active */
.vc-channel-item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 62px;
  padding: 10px 12px 10px 14px;
  border-radius: 11px;
  border: none;
  background: transparent;
  color: var(--v-text-secondary);
  font-size: .875rem;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  user-select: none;
  transition: background .14s ease, color .14s ease, box-shadow .14s ease;
}
.vc-channel-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 3px;
  height: 0;
  border-radius: 0 3px 3px 0;
  background: var(--v-accent);
  transform: translateY(-50%);
  opacity: 0;
  transition: height .14s ease, opacity .14s ease;
}
.vc-channel-item:hover { background: var(--v-bg-hover); color: var(--v-text); }
.vc-channel-item:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--v-accent) 35%, transparent);
  outline-offset: 0;
  background: var(--v-bg-hover);
  color: var(--v-text);
}
.vc-channel-item:active { background: var(--v-bg-hover); }
.vc-channel-item--active {
  background: color-mix(in srgb, var(--v-accent) 7%, #fff);
  color: var(--v-text);
  font-weight: 600;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--v-accent) 8%, var(--v-border));
}
.vc-channel-item--active::before {
  height: 22px;
  opacity: 1;
}
.vc-channel-item--unread .vc-channel-item__name { font-weight: 700; color: var(--v-text); }
.vc-channel-item--unread .vc-channel-item__sub { color: var(--v-text-secondary); font-weight: 500; }

.vc-channel-item__prefix {
  flex-shrink: 0;
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--v-bg-hover);
  border: 1px solid var(--v-border);
  color: var(--v-text-muted);
  font-size: .72rem;
  font-weight: 700;
  transition: background .14s ease, border-color .14s ease, color .14s ease;
}
.vc-channel-item--active .vc-channel-item__prefix {
  background: var(--v-accent);
  border-color: var(--v-accent);
  color: var(--v-accent-text, #fff);
}

.vc-channel-item__content { display: flex; flex: 1; min-width: 0; flex-direction: column; justify-content: center; gap: 3px; }
.vc-channel-item__name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: inherit; font-size: .84rem; font-weight: 650; }
.vc-channel-item__sub { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--v-text-muted); font-size: .7rem; font-weight: 400; }
.vc-channel-item__side { display: flex; align-self: stretch; min-width: 32px; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 5px; }
.vc-channel-item__time { color: var(--v-text-muted); font-size: .64rem; white-space: nowrap; }
.vc-channel-item--unread .vc-channel-item__time { color: var(--v-accent); font-weight: 600; }
.vc-channel-item span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.vc-channel-item__content span, .vc-channel-item__side span { width: auto; }
.vc-channel-item__side .vc-unread-dot { width: 8px; height: 8px; min-width: 8px; margin: 0; }
.vc-list-empty { display: flex; align-items: center; flex-direction: column; gap: 8px; padding: 48px 20px; text-align: center; color: var(--v-text-muted); }
.vc-list-empty__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 4px;
  border: 1px solid var(--v-border);
  border-radius: 14px;
  background: var(--v-bg-card);
  color: var(--v-accent);
  font-size: 1.3rem;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.vc-list-empty strong { color: var(--v-text); font-size: .84rem; }
.vc-list-empty span { font-size: .74rem; line-height: 1.5; max-width: 220px; }
.vc-main { flex: 1; display: flex; flex-direction: column; overflow: hidden; }
.vc-header { min-height: 72px; padding: 13px 24px; border-bottom: 1px solid var(--v-border); flex-shrink: 0; display: flex; align-items: center; gap: 12px; background: color-mix(in srgb, var(--v-bg-card) 92%, transparent); }
.vc-header__name { font-weight: 600; font-size: 0.9rem; color: var(--v-text); }
.vc-header__desc { font-size: 0.78rem; color: var(--v-text-muted); margin-top: 2px; }
.vc-header__status { display: flex; align-items: center; gap: 5px; margin-top: 4px; color: var(--v-text-muted); font-size: .65rem; }
.vc-header__status span { width: 6px; height: 6px; border-radius: 50%; background: var(--v-success); box-shadow: 0 0 0 3px color-mix(in srgb, var(--v-success) 14%, transparent); }

/* Typing indicator above the chat composer */
.vc-typing {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 24px 0;
  color: var(--v-text-muted);
  font-size: .72rem;
  line-height: 1.2;
  flex-shrink: 0;
  min-height: 22px;
}
.vc-typing__text { font-weight: 500; color: var(--v-text-secondary); }
.vc-typing__dots {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  height: 12px;
}
.vc-typing__dots i {
  display: block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--v-accent);
  opacity: .45;
  animation: vcTypingDot 1.2s ease-in-out infinite;
}
.vc-typing__dots i:nth-child(2) { animation-delay: .15s; }
.vc-typing__dots i:nth-child(3) { animation-delay: .3s; }
@keyframes vcTypingDot {
  0%, 60%, 100% { transform: translateY(0); opacity: .35; }
  30% { transform: translateY(-3px); opacity: 1; }
}
.vc-messages { flex: 1; overflow-y: auto; padding: 26px clamp(18px, 4vw, 56px); display: flex; flex-direction: column; gap: 2px; background: radial-gradient(circle at 50% -20%, color-mix(in srgb, var(--v-accent) 6%, transparent), transparent 48%), var(--v-bg); }
.vc-thread-empty { display: flex; align-items: center; justify-content: center; align-self: center; flex-direction: column; max-width: 320px; margin: auto; padding: 34px 24px; border: 1px solid var(--v-border); border-radius: 18px; background: color-mix(in srgb, var(--v-bg-card) 78%, transparent); text-align: center; }
.vc-thread-empty__icon { display: grid; place-items: center; width: 52px; height: 52px; margin-bottom: 14px; border: 1px solid color-mix(in srgb, var(--v-accent) 28%, var(--v-border)); border-radius: 16px; background: color-mix(in srgb, var(--v-accent) 10%, transparent); color: var(--v-accent); }
.vc-thread-empty strong { color: var(--v-text); font-size: .9rem; }
.vc-thread-empty span { margin-top: 7px; color: var(--v-text-muted); font-size: .76rem; line-height: 1.55; }
/* Day separators — a hairline each side of a quiet uppercase label */
#vcMessages .vc-day { display: flex; align-items: center; gap: 12px; margin: 16px 0 8px; }
#vcMessages .vc-day::before,
#vcMessages .vc-day::after { content: ""; flex: 1; height: 1px; background: var(--v-border); }
#vcMessages .vc-day span {
  flex-shrink: 0;
  font-size: .68rem; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase;
  color: var(--v-text-muted);
}
.vc-msg { display: flex; gap: 10px; padding: 4px 0; }
.vc-msg__avatar {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--v-accent); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.65rem; font-weight: 700; flex-shrink: 0; margin-top: 2px;
}
.vc-msg__body { flex: 1; min-width: 0; }
.vc-msg__meta { display: flex; align-items: baseline; gap: 8px; margin-bottom: 2px; }
.vc-msg__author { font-size: 0.82rem; font-weight: 600; color: var(--v-text); }
.vc-msg__time { font-size: 0.7rem; color: var(--v-text-muted); }
.vc-msg__text { font-size: 0.875rem; color: var(--v-text); word-break: break-word; line-height: 1.5; }

/* ── Message bubbles, grouping & edit affordances (chat pane only, so the
   Support thread that reuses .vc-msg keeps its flat style) ── */
#vcMessages .vc-msg__text {
  display: inline-block;
  background: var(--v-bg-elev, rgba(255,255,255,0.045));
  border: 1px solid var(--v-border);
  border-radius: 4px 14px 14px 14px;
  padding: 8px 12px; margin-top: 2px;
  /* messaging apps cap bubble width — full-width lines read like a log */
  max-width: min(560px, 85%);
}
#vcMessages .vc-msg--mine { flex-direction: row-reverse; }
#vcMessages .vc-msg--mine .vc-msg__avatar { display: none; }
#vcMessages .vc-msg--mine .vc-msg__body { display: flex; flex-direction: column; align-items: flex-end; }
#vcMessages .vc-msg--mine .vc-msg__meta { flex-direction: row-reverse; }
#vcMessages .vc-msg--mine .vc-msg__text {
  background: var(--v-accent); border-color: var(--v-accent);
  color: #fff; border-radius: 14px 4px 14px 14px;
}
/* Grouped: avatar + meta omitted in markup; indent theirs to line up */
#vcMessages .vc-msg--grouped { padding-top: 0; }
#vcMessages .vc-msg--grouped:not(.vc-msg--mine) .vc-msg__body { margin-left: 40px; }
#vcMessages .vc-msg__text--deleted {
  font-style: italic; color: var(--v-text-muted);
  background: transparent; border: none; padding: 6px 0;
}
/* Own-message actions — always present (mobile), emphasised on hover */
#vcMessages .vc-msg__actions { display: flex; gap: 10px; margin-top: 4px; opacity: 0.5; }
#vcMessages .vc-msg--mine .vc-msg__actions { justify-content: flex-end; }
#vcMessages .vc-msg:hover .vc-msg__actions { opacity: 1; }
#vcMessages .vc-msg__action {
  background: none; border: none; cursor: pointer; padding: 0;
  font-size: 0.7rem; color: var(--v-text-muted); font-family: inherit;
}
#vcMessages .vc-msg__action:hover { color: var(--v-accent); text-decoration: underline; }
/* Inline editor */
#vcMessages .vc-msg__editor { margin-top: 4px; width: 100%; max-width: 440px; }
#vcMessages .vc-msg__edit-input { width: 100%; resize: vertical; font-size: 0.875rem; min-height: 48px; }
#vcMessages .vc-msg__edit-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 6px; }

.vc-composer {
  position: relative; padding: 12px 24px 18px; border-top: 1px solid var(--v-border);
  display: flex; gap: 10px; align-items: center; flex-shrink: 0;
  background: color-mix(in srgb, var(--v-bg-card) 96%, transparent);
}
.vc-composer__field { flex: 1; min-width: 0; }
.vc-composer__input {
  width: 100%; box-sizing: border-box; padding: 12px 16px; font-size: 0.875rem;
  border: 1px solid var(--v-border); border-radius: 999px;
  background: var(--v-bg); color: var(--v-text); outline: none;
}
.vc-composer__input:focus { border-color: var(--v-accent); }
.vc-composer__hint { position: absolute; left: 40px; bottom: 4px; color: var(--v-text-muted); font-size: .62rem; pointer-events: none; }
.vc-composer__send {
  width: 38px; height: 38px; border-radius: 50%; flex-shrink: 0;
  background: var(--v-accent); color: #fff; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.15s;
}
.vc-composer__send:hover { background: var(--v-accent-hover); }
/* Back-to-conversations button — mobile only */
.vc-back {
  display: none;
  align-items: center; justify-content: center;
  width: 36px; height: 36px; flex-shrink: 0;
  background: none; border: 1px solid var(--v-border);
  border-radius: var(--v-radius-sm); color: var(--v-text);
  cursor: pointer;
}
@media (max-width: 767px) {
  /* One pane at a time: full-width list ↔ full-width thread with a back button */
  .vc-sidebar { width: 100%; border-right: none; }
  .vc-sidebar__top { padding: 16px 14px 12px; }
  .vc-sidebar__hint { margin-bottom: 12px; }
  .vc-main { display: none; }
  .vc-layout--chat .vc-sidebar { display: none; }
  .vc-layout--chat .vc-main { display: flex; }
  .vc-layout--chat .vc-back { display: inline-flex; }
  .vc-composer__input { font-size: 16px; } /* stop iOS auto-zoom */
  .vc-header { min-height: 64px; padding: 10px 14px; }
  .vc-messages { padding: 12px 14px; }
  .vc-composer { padding: 10px 12px 18px; }
  .vc-typing { padding: 4px 14px 0; }
  .vc-composer__hint { left: 28px; display: none; }
  .vc-thread-empty { padding: 28px 20px; }
  /* More room for the thread — hide inbox title when chatting */
  .venet-main--chats.venet-main--thread .venet-page-header { display: none; }
  .venet-main--chats.venet-main--thread .vc-layout { min-height: 0; }
  #vcMessages .vc-msg__text { max-width: min(420px, 92%); }
  #vcMessages .vc-msg--grouped:not(.vc-msg--mine) .vc-msg__body { margin-left: 0; }
  #vcMessages .vc-react-chip { padding: 4px 10px; min-height: 30px; }
  #vcMessages .vc-react-chip svg { width: 15px; height: 15px; }
  .vc-reply-bar { padding: 8px 12px; }
  #vcMeetBtn { padding: 8px 10px; font-size: 0.72rem !important; }
}
/* Long names/descriptions must not push the meet button off-screen */
.vc-header__name, .vc-header__desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v-connect-btn--self { display: none; }

/* ================================================================
   CHAT MESSAGE INTERACTIONS — reactions, replies, ticks, long-press
   ================================================================ */

/* Delivered (✓) / read (✓✓) ticks on my own messages */
#vcMessages .vc-msg__foot { display: inline-flex; align-items: center; margin-top: 3px; }
#vcMessages .vc-msg__foot:empty { display: none; }
#vcMessages .vc-msg__ticks { display: inline-flex; align-items: center; color: var(--v-text-muted); }
#vcMessages .vc-msg__ticks svg { width: 14px; height: 14px; display: block; }
#vcMessages .vc-msg__ticks--read { color: var(--v-info); }

/* Quoted reply shown above a bubble */
#vcMessages .vc-msg__reply-quote {
  display: block; text-align: left; max-width: min(560px, 85%);
  background: var(--v-bg-hover); border: none; border-left: 3px solid var(--v-accent);
  border-radius: 8px; padding: 5px 10px; margin: 0 0 4px; cursor: pointer; font: inherit;
}
#vcMessages .vc-msg__reply-text { max-width: 260px; }
#vcMessages .vc-msg--mine .vc-msg__reply-quote { border-left-color: rgba(255,255,255,0.65); }
#vcMessages .vc-msg__reply-author { display: block; font-size: 0.72rem; font-weight: 700; color: var(--v-accent); }
#vcMessages .vc-msg--mine .vc-msg__reply-author { color: var(--v-text); }
#vcMessages .vc-msg__reply-text {
  display: block; font-size: 0.78rem; color: var(--v-text-secondary, var(--v-text-muted));
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* Reaction chips — tinted per emoji kind */
#vcMessages .vc-msg__reactions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
#vcMessages .vc-react-chip {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px;
  border-radius: 999px; cursor: pointer; font-size: 0.78rem; line-height: 1.5;
  background: var(--v-bg-card); border: 1px solid var(--v-border); color: var(--v-text);
  transition: transform 0.12s ease, background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}
#vcMessages .vc-react-chip__icon { display: inline-flex; align-items: center; line-height: 1; }
#vcMessages .vc-react-chip svg { width: 14px; height: 14px; display: block; flex-shrink: 0; }
#vcMessages .vc-react-chip:active { transform: scale(0.94); }
#vcMessages .vc-react-chip--pop .vc-react-chip__icon { animation: vcReactPop 0.34s ease; }
#vcMessages .vc-react-chip__count { font-size: 0.72rem; font-weight: 600; color: var(--v-text-secondary, var(--v-text-muted)); }

#vcMessages .vc-react-chip--like { --vc-react: #3b82f6; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--like svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--like.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

#vcMessages .vc-react-chip--heart { --vc-react: #ef4444; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--heart svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--heart.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

#vcMessages .vc-react-chip--laugh { --vc-react: #f59e0b; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--laugh svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--laugh.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

#vcMessages .vc-react-chip--party { --vc-react: #a855f7; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--party svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--party.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

#vcMessages .vc-react-chip--eye { --vc-react: #14b8a6; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--eye svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--eye.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

#vcMessages .vc-react-chip--pray { --vc-react: #22c55e; border-color: color-mix(in srgb, var(--vc-react) 35%, var(--v-border)); }
#vcMessages .vc-react-chip--pray svg { color: var(--vc-react); }
#vcMessages .vc-react-chip--pray.vc-react-chip--mine { background: color-mix(in srgb, var(--vc-react) 16%, transparent); border-color: var(--vc-react); }

/* Double-click / double-tap like burst */
#vcMessages .vc-msg__text { position: relative; }
#vcMessages .vc-msg__link {
  color: var(--v-info, #38bdf8);
  text-decoration: underline;
  text-underline-offset: 2px;
  word-break: break-all;
}
#vcMessages .vc-msg__link:hover { opacity: 0.88; }
#vcMessages .vc-msg--mine .vc-msg__link { color: #fff; }
#vcMessages .vc-msg__reply-text .vc-msg__link { font-size: inherit; }
.vc-like-burst {
  position: absolute; left: 50%; top: 50%; z-index: 2; pointer-events: none;
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; margin: -18px 0 0 -18px;
  animation: vcLikeBurst 0.68s ease forwards;
}
.vc-like-burst svg { width: 28px; height: 28px; display: block; }
.vc-like-burst--like svg { color: #3b82f6; filter: drop-shadow(0 2px 8px color-mix(in srgb, #3b82f6 45%, transparent)); }
.vc-like-burst--heart svg { color: #ef4444; filter: drop-shadow(0 2px 8px color-mix(in srgb, #ef4444 45%, transparent)); }

@keyframes vcReactPop {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.35) rotate(-6deg); }
  100% { transform: scale(1); }
}
@keyframes vcLikeBurst {
  0%   { opacity: 0; transform: scale(0.4); }
  18%  { opacity: 1; transform: scale(1.15); }
  100% { opacity: 0; transform: scale(1.45) translateY(-18px); }
}

/* Swipe-to-reply: flash the original when its quote is tapped */
#vcMessages .vc-msg--flash .vc-msg__text { animation: vcFlash 1.2s ease; }
#vcMessages .vc-msg--swipe-armed .vc-msg__body::after {
  content: '↩';
  position: absolute; left: -28px; top: 50%; transform: translateY(-50%);
  font-size: 1rem; color: var(--v-accent); opacity: 0.85;
}
#vcMessages .vc-msg__body { position: relative; }
@keyframes vcFlash {
  0%, 100% { box-shadow: 0 0 0 0 transparent; }
  30% { box-shadow: 0 0 0 3px color-mix(in srgb, var(--v-accent) 40%, transparent); }
}

/* Hover action row: pointer devices only — touch uses long-press */
#vcMessages .vc-msg__actions { display: none; }
@media (hover: hover) and (pointer: fine) {
  #vcMessages .vc-msg__actions { display: flex; }
}

/* Long-press / right-click context menu */
.vc-ctx-backdrop { position: fixed; inset: 0; z-index: 1200; }
.vc-ctx {
  position: fixed; z-index: 1201; min-width: 172px; padding: 6px;
  background: var(--v-bg-card); border: 1px solid var(--v-border);
  border-radius: 14px; box-shadow: 0 10px 34px rgba(15, 15, 15, 0.20);
  animation: vcCtxIn 0.12s ease;
}
@keyframes vcCtxIn { from { opacity: 0; transform: scale(0.96); } to { opacity: 1; transform: scale(1); } }
.vc-ctx__emojis { display: flex; gap: 4px; padding: 4px 4px 8px; margin-bottom: 4px; border-bottom: 1px solid var(--v-border); }
.vc-ctx__emoji {
  flex: 1; border: none; background: none; cursor: pointer;
  line-height: 1; padding: 10px 4px; border-radius: 10px;
  color: var(--v-text); display: inline-flex; align-items: center; justify-content: center;
  transition: background 0.12s, transform 0.12s, color 0.12s;
}
.vc-ctx__emoji svg { width: 20px; height: 20px; display: block; transition: transform 0.12s ease; }
.vc-ctx__emoji--like svg { color: #3b82f6; }
.vc-ctx__emoji--heart svg { color: #ef4444; }
.vc-ctx__emoji--laugh svg { color: #f59e0b; }
.vc-ctx__emoji--party svg { color: #a855f7; }
.vc-ctx__emoji--eye svg { color: #14b8a6; }
.vc-ctx__emoji--pray svg { color: #22c55e; }
.vc-ctx__emoji:hover { background: var(--v-bg-hover); transform: scale(1.08); }
.vc-ctx__emoji:active svg { transform: scale(1.2); }
.vc-ctx__emoji--pop svg { animation: vcReactPop 0.34s ease; }

/* Mobile bottom sheet for reactions + actions */
.vc-ctx--sheet {
  left: 8px !important; right: 8px !important; top: auto !important;
  min-width: 0; width: auto; padding: 10px 8px 8px;
  border-radius: 18px 18px 14px 14px;
  animation: vcCtxSlideUp 0.22s ease;
}
.vc-ctx--sheet .vc-ctx__emojis { gap: 6px; padding: 4px 2px 10px; }
.vc-ctx--sheet .vc-ctx__emoji { padding: 12px 6px; min-height: 44px; }
.vc-ctx--sheet .vc-ctx__emoji svg { width: 22px; height: 22px; }
.vc-ctx--sheet .vc-ctx__item { min-height: 44px; padding: 11px 12px; }
@keyframes vcCtxSlideUp {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: none; }
}
.vc-ctx__items { display: flex; flex-direction: column; }
.vc-ctx__item {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px;
  border: none; background: none; cursor: pointer; font: inherit; font-size: 0.85rem;
  color: var(--v-text); text-align: left; border-radius: 8px;
}
.vc-ctx__item:hover { background: var(--v-bg-hover); }
.vc-ctx__item svg { color: var(--v-text-muted); flex-shrink: 0; }
.vc-ctx__item--danger { color: var(--v-danger, #ef4444); }
.vc-ctx__item--danger svg { color: currentColor; }

/* Reply draft bar above the composer */
.vc-reply-bar { display: flex; align-items: center; gap: 10px; padding: 8px 16px; border-top: 1px solid var(--v-border); background: var(--v-bg-card); }
.vc-reply-bar__mark { width: 3px; align-self: stretch; border-radius: 2px; background: var(--v-accent); flex-shrink: 0; }
.vc-reply-bar__body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.vc-reply-bar__author { font-size: 0.74rem; font-weight: 700; color: var(--v-accent); }
.vc-reply-bar__text { font-size: 0.8rem; color: var(--v-text-secondary, var(--v-text-muted)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vc-reply-bar__cancel {
  flex-shrink: 0; width: 30px; height: 30px; border-radius: 50%; display: flex;
  align-items: center; justify-content: center; background: none; border: none;
  cursor: pointer; color: var(--v-text-muted);
}
.vc-reply-bar__cancel:hover { background: var(--v-bg-hover); color: var(--v-text); }

@media (prefers-reduced-motion: reduce) {
  .vc-ctx, .vc-ctx--sheet { animation: none; }
  #vcMessages .vc-msg--flash .vc-msg__text { animation: none; }
  .vc-ctx__emoji:hover { transform: none; }
  #vcMessages .vc-react-chip--pop .vc-react-chip__icon,
  .vc-ctx__emoji--pop svg,
  .vc-like-burst { animation: none; opacity: 0; }
}

/* ================================================================
   BUSINESS — Tabs, Tracker, Funding, Playbooks, Go Public
   ================================================================ */

.biz-tab-panel { padding: 0 0 40px; }
.trk-entry {
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  padding: 14px 16px;
  background: var(--v-bg-card);
}
.trk-entry__date { font-size: 0.72rem; font-family: var(--font-heading); letter-spacing: 0.08em; color: var(--v-text-muted); margin-bottom: 6px; }
.trk-entry__metrics { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 6px; }
.trk-entry__metric { font-size: 0.82rem; color: var(--v-text-secondary); }
.trk-entry__metric strong { color: var(--v-text); }
.trk-entry__notes { font-size: 0.82rem; color: var(--v-text-secondary); line-height: 1.5; }
.trk-entry__badge { display:inline-block; margin-top:6px; font-size:0.68rem; padding:2px 7px; background:var(--v-success-bg); color:var(--v-success); border-radius:999px; }
.fnd-card {
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  padding: 16px;
  background: var(--v-bg-card);
  display: flex; flex-direction: column; gap: 8px;
}
.fnd-card__company { font-weight: 600; font-size: 0.9rem; }
.fnd-card__ask { font-size: 0.82rem; color: var(--v-text-secondary); }
.fnd-card__pitch { font-size: 0.82rem; color: var(--v-text); line-height: 1.5; }

/* Funding tab — interest lists */
.v-funding-section { margin-bottom: 24px; }
.v-funding-item {
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  padding: 14px 16px;
  background: var(--v-bg-card);
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 10px;
}
.v-funding-item__meta { font-size: 0.75rem; color: var(--v-text-muted); }
.v-funding-status {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 2px 9px;
  border-radius: 999px;
  text-transform: capitalize;
  letter-spacing: 0.02em;
}
.v-funding-status--interested   { background: rgba(52,211,153,0.15); color: #34d399; }
.v-funding-status--in_deal_room { background: rgba(96,165,250,0.15); color: #60a5fa; }
.v-funding-status--closed       { background: rgba(107,114,128,0.15); color: var(--v-text-muted); }

.pb-card {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  padding: 20px;
  display: flex; flex-direction: column; gap: 8px;
  box-shadow: var(--v-shadow-xs);
  cursor: pointer;
  transition: box-shadow 0.15s;
}
.pb-card:hover { box-shadow: var(--v-shadow-sm); }
.pb-card__cat { font-size: 0.68rem; font-family: var(--font-heading); letter-spacing: 0.1em; text-transform: uppercase; color: var(--v-text-muted); }
.pb-card__title { font-weight: 600; font-size: 0.9rem; color: var(--v-text); }
.pb-card__desc { font-size: 0.82rem; color: var(--v-text-secondary); }
.pb-card__author { font-size: 0.75rem; color: var(--v-text-muted); }

/* Public profile page */
.pub-profile { padding: 40px 0; }
.pub-profile__hero { margin-bottom: 32px; }
.pub-profile__company { font-family: var(--font-heading); font-size: 2rem; font-weight: 700; letter-spacing: 0.04em; color: var(--text-primary); }
.pub-profile__desc { font-size: 1rem; color: var(--text-secondary); margin-top: 8px; max-width: 560px; }
.pub-profile__badge { display:inline-block; margin-top:12px; padding:4px 12px; background:rgba(255,255,255,0.08); border:1px solid var(--border-subtle); border-radius:999px; font-size:0.75rem; color:var(--text-muted); }
.pub-section { margin-bottom: 32px; }
.pub-section__title { font-family: var(--font-heading); font-size: 0.65rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-bottom: 12px; }
.pub-metric-row { display:flex; gap:24px; flex-wrap:wrap; }
.pub-metric { background: var(--glass-bg); border: 1px solid var(--border-subtle); border-radius: 10px; padding: 16px 20px; }
.pub-metric__val { font-size: 1.5rem; font-weight: 700; color: var(--text-primary); }
.pub-metric__label { font-size: 0.78rem; color: var(--text-secondary); margin-top: 2px; }

/* ════════════════════════════════════════
   MOBILE BOTTOM NAV — pairs with drawer sidebar
   ════════════════════════════════════════ */
.venet-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  height: 58px;
  background: color-mix(in srgb, var(--v-sidebar-surface) 88%, #fff);
  border-top: 1px solid var(--v-sidebar-divider);
  box-shadow: 0 -6px 20px rgba(17, 28, 24, 0.04);
  z-index: 300;
  align-items: stretch;
  padding: 0 2px;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.venet-bottom-nav__item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  color: var(--v-sidebar-text);
  text-decoration: none;
  font-size: 0.58rem;
  font-weight: 600;
  font-family: var(--font-heading);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding: 6px 0 4px;
  border: none;
  background: none;
  cursor: pointer;
  position: relative;
  transition: color 0.16s ease;
}
/* Soft pill behind the icon */
.venet-bottom-nav__item::before {
  content: "";
  position: absolute;
  top: 5px;
  width: 48px;
  height: 28px;
  border-radius: 12px;
  background: var(--v-sidebar-hover);
  opacity: 0;
  transform: scale(0.86);
  transition: opacity 0.16s ease, transform 0.16s ease;
  pointer-events: none;
}
/* Thin top rail for the active destination */
.venet-bottom-nav__item::after {
  content: "";
  position: absolute;
  top: 0;
  left: 28%;
  right: 28%;
  height: 2px;
  border-radius: 0 0 2px 2px;
  background: var(--v-sidebar-rail);
  opacity: 0;
  transform: scaleX(0.6);
  transition: opacity 0.16s ease, transform 0.16s ease;
  pointer-events: none;
}
.venet-bottom-nav__item svg {
  flex-shrink: 0;
  opacity: var(--v-sidebar-icon);
  position: relative;
  z-index: 1;
  transition: opacity 0.16s ease;
}
.venet-bottom-nav__item[aria-current="page"] { color: var(--v-sidebar-text-act); }
.venet-bottom-nav__item[aria-current="page"]::before { opacity: 1; transform: scale(1); }
.venet-bottom-nav__item[aria-current="page"]::after { opacity: 1; transform: scaleX(1); }
.venet-bottom-nav__item[aria-current="page"] svg { opacity: var(--v-sidebar-icon-act); }
.venet-bottom-nav__item:hover { color: var(--v-sidebar-text-act); }
.venet-bottom-nav__item:focus-visible {
  color: var(--v-sidebar-text-act);
  outline: none;
}
.venet-bottom-nav__item:focus-visible::before {
  opacity: 1;
  transform: scale(1);
  box-shadow: 0 0 0 2px var(--v-sidebar-ring);
}

/* ── Chat unread indicators (injected by chats.js) ── */
.vc-unread-badge {
  min-width: 17px;
  height: 17px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--v-danger);
  color: #fff;
  font-size: 0.62rem;
  font-weight: 700;
  font-family: var(--font-heading);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  pointer-events: none;
}
.venet-sidebar__link { position: relative; }
.venet-sidebar__link .vc-unread-badge { margin-left: auto; }
/* Bottom nav: pill hugs the icon's top-right corner, ringed with the nav
   background so it reads as a badge instead of floating over the label */
.venet-bottom-nav__item .vc-unread-badge {
  position: absolute;
  top: 2px;
  left: 50%;
  margin-left: 3px;
  min-width: 15px;
  height: 15px;
  padding: 0 4px;
  font-size: 0.58rem;
  box-shadow: 0 0 0 2px var(--v-sidebar-bg);
}
.vc-unread-dot {
  margin-left: auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--v-accent, #6c5ce7);
  flex-shrink: 0;
}

/* ════════════════════════════════════════
   CARD HOVER LIFT (interactive cards)
   ════════════════════════════════════════ */
.v-member-card,
.disc-startup-card,
.v-action-card {
  transition: box-shadow 0.15s ease, transform 0.15s ease, border-color 0.15s ease;
}
.v-member-card:hover   { box-shadow: var(--v-shadow-md); transform: translateY(-2px); }
.disc-startup-card:hover { box-shadow: var(--v-shadow-md); transform: translateY(-2px); }

.form-input-lan{
  outline-offset: 2px;
  border-color: transparent;
  box-shadow: none;
  color: var(--v-accent-text);
  background-color: transparent;
  border-radius: 4px;
}

/* ── Form focus ring ── */
.form-input:focus {
  outline: 2px solid var(--v-success);
  outline-offset: 2px;
  border-color: transparent;
  box-shadow: none;
  transition: outline-color 0.3s ease-in-out;
}
.form-input{
    outline: 2px solid var(--v-border);
  outline-offset: 2px;
  border-color: transparent;
  box-shadow: none;
  color: var(--v-text);
}

/* ── Secondary button tier ── */
.v-btn--secondary {
  background: transparent;
  color: var(--v-text-muted);
  border-color: var(--v-border);
}
.v-btn--secondary:hover { background: var(--v-bg-hover); border-color: var(--v-text-muted); color: var(--v-text);}

/* ════════════════════════════════════════
   DISCOVER — FILTERS
   ════════════════════════════════════════ */
.disc-tab-panel {}
.disc-filters {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 0 12px;
  border-bottom: 1px solid var(--v-border);
}
.disc-filters__row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.disc-search { max-width: 320px; }
.disc-chip{
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;

    padding: 8px 16px;

    border: 1px solid var(--v-border);
    border-radius: 14px;

    background: var(--v-bg-card);

    color: var(--v-text-secondary);

    font-family: var(--font-body);
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: .2px;

    cursor: pointer;
    white-space: nowrap;
    user-select: none;

    transition:
        transform .25s cubic-bezier(.22,1,.36,1),
        background .25s,
        color .25s,
        border-color .25s,
        box-shadow .25s;
}

.disc-chip:hover{
    color: var(--v-text);
    border-color: rgba(255,255,255,.18);

    transform: translateY(-2px);

    box-shadow:
        0 10px 24px rgba(0,0,0,.12);
}

.disc-chip:active{
    transform: scale(.97);
}

.disc-chip--active{

    background: var(--v-accent);

    color: var(--v-accent-text);

    border-color: var(--v-accent);

    box-shadow:
        0 10px 28px color-mix(in srgb, var(--v-accent) 35%, transparent),
        inset 0 1px 0 rgba(255,255,255,.18);

    transform: translateY(-2px);
}

.disc-chip--active:hover{
    transform: translateY(-3px);
    color: var(--v-success);
}
.disc-raising-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: var(--v-text-secondary);
  cursor: pointer;
  white-space: nowrap;
}

/* ════════════════════════════════════════
   DISCOVER — STARTUP CARD
   ════════════════════════════════════════ */
.disc-startup-card {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-card);
  padding: 20px;
  cursor: pointer;
}
.disc-startup-card__header {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 10px;
}
.disc-startup-card__avatar {
  position: relative;
  width: 46px; height: 46px;
  border-radius: var(--v-radius-md);
  background: var(--v-accent);
  color: var(--v-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 1rem;
  font-weight: 700;
  flex-shrink: 0;
  letter-spacing: 0.04em;
  overflow: hidden;
}
/* Uploaded logo sits on top of the initials fallback */
.disc-startup-card__logo {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: inherit;
  background: var(--v-bg-card);
}
.disc-startup-card__meta { flex: 1; min-width: 0; }
.disc-startup-card__name {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--v-text);
  margin-bottom: 4px;
}
.disc-startup-card__tags {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.disc-startup-card__tag {
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 4px;
  background: var(--v-bg-hover);
  color: var(--v-text-secondary);
  border: 1px solid var(--v-border-subtle);
  font-family: var(--font-heading);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.disc-startup-card__raising {
  background: var(--v-success-bg);
  color: var(--v-success);
  border-color: rgba(16,185,129,0.2);
}
.disc-startup-card__desc {
  font-size: 0.85rem;
  color: var(--v-text-secondary);
  line-height: 1.5;
  margin-bottom: 8px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.disc-startup-card__founder {
  font-size: 0.78rem;
  color: var(--v-text-muted);
}

/* ════════════════════════════════════════
   BUSINESS PROFILE SLIDE PANEL
   ════════════════════════════════════════ */
.biz-panel-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.42);
  z-index: 600;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s;
}
.biz-panel-overlay.is-open { opacity: 1; pointer-events: auto; }

.biz-panel {
  position: fixed;
  top: 0; right: 0;
  width: 520px;
  max-width: 100vw;
  height: 100vh;
  background: var(--v-bg-card);
  border-left: 1px solid var(--v-border);
  box-shadow: -4px 0 32px rgba(0,0,0,0.12);
  z-index: 601;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.3s cubic-bezier(0.4,0,0.2,1);
  display: flex;
  flex-direction: column;
}
.biz-panel.is-open { transform: translateX(0); }

.biz-panel__topbar {
  position: sticky;
  top: 0;
  background: var(--v-bg-card);
  border-bottom: 1px solid var(--v-border-subtle);
  z-index: 10;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.biz-panel__close {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--v-text-muted);
  padding: 6px;
  border-radius: var(--v-radius-sm);
  display: flex;
  align-items: center;
  transition: color 0.15s, background 0.15s;
  flex-shrink: 0;
}
.biz-panel__close:hover { color: var(--v-text); background: var(--v-bg-hover); }
.biz-panel__panel-actions { display: flex; gap: 8px; }
.biz-panel__body { padding: 24px; flex: 1; }
.biz-panel__company {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--v-text);
  margin-bottom: 6px;
  letter-spacing: 0.02em;
}
.biz-panel__tags { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.biz-panel__tag {
  font-size: 0.7rem;
  padding: 3px 10px;
  border-radius: 4px;
  background: var(--v-bg-hover);
  color: var(--v-text-secondary);
  border: 1px solid var(--v-border-subtle);
  font-family: var(--font-heading);
  letter-spacing: 0.07em;
  text-transform: uppercase;
}
.biz-panel__section {
  margin-bottom: 22px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--v-border-subtle);
}
.biz-panel__section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.biz-panel__section-title {
  font-family: var(--font-heading);
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--v-text-muted);
  margin-bottom: 10px;
}
.biz-panel__text { font-size: 0.9rem; color: var(--v-text-secondary); line-height: 1.65; }
.biz-panel__custom-row { margin-bottom: 10px; }
.biz-panel__custom-row:last-child { margin-bottom: 0; }
.biz-panel__custom-label {
  font-size: 0.78rem; font-weight: 600; color: var(--v-text); margin: 0 0 2px;
}
.biz-panel__founder-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.biz-panel__founder-avatar {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--v-accent);
  color: var(--v-accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-size: 0.85rem;
  font-weight: 700;
  flex-shrink: 0;
}
.biz-panel__founder-avatar--lg {
  width: 56px;
  height: 56px;
  font-size: 1.05rem;
}
.v-member-card[data-member-email] { cursor: pointer; }
.biz-panel__team-chips{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-top:12px;
}

.biz-panel__team-chip{
    display:inline-flex;
    align-items:center;
    gap:8px;

    padding:8px 14px;

    border-radius:14px;

    background:var(--v-bg-soft);

    border:1px solid rgba(255,255,255,.08);

    color:var(--v-text-secondary);

    font-size:.82rem;
    font-weight:500;
    line-height:1;

    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);

    transition:
        transform .25s cubic-bezier(.22,1,.36,1),
        border-color .25s,
        background .25s,
        box-shadow .25s,
        color .25s;

    cursor:default;
}

.biz-panel__team-chip:hover{

    color:var(--v-text);

    transform:translateY(-2px);

    border-color:rgba(255,255,255,.18);

    box-shadow:
        0 10px 24px rgba(0,0,0,.12);
}
.biz-panel__video-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 8px 16px;
  border-radius: var(--v-radius-sm);
  background: var(--v-bg-hover);
  border: 1px solid var(--v-border);
  color: var(--v-text);
  text-decoration: none;
  font-size: 0.85rem;
  transition: background 0.15s;
}
.biz-panel__video-link:hover { background: var(--v-bg-active); }
.biz-panel__contact-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.biz-panel__contact-email {
  font-size: 0.85rem;
  color: var(--v-text-secondary);
  margin-top: 8px;
  padding: 8px 12px;
  background: var(--v-bg-hover);
  border-radius: var(--v-radius-sm);
  border: 1px solid var(--v-border);
  word-break: break-all;
}
.biz-panel__traction-item {
  font-size: 0.82rem;
  color: var(--v-text-secondary);
  padding: 8px 0;
  border-bottom: 1px solid var(--v-border-subtle);
  line-height: 1.5;
}
.biz-panel__traction-item:last-child { border-bottom: none; }
.biz-panel__traction-date { font-size: 0.72rem; color: var(--v-text-muted); margin-bottom: 2px; }
.biz-panel__funding-card {
  background: var(--v-info-bg);
  border: 1px solid rgba(59,130,246,0.2);
  border-radius: var(--v-radius-md);
  padding: 14px 16px;
}
.biz-panel__mobile-notice {
  display: none;
  padding: 16px;
  font-size: 0.85rem;
  color: var(--v-text-secondary);
  text-align: center;
  background: var(--v-bg-hover);
  border-radius: var(--v-radius-md);
  margin: 12px;
}
@media (max-width: 639px) {
  .biz-panel { width: 100vw; }
  .biz-panel__mobile-notice { display: block; }
}

/* ════════════════════════════════════════
   PUBLIC PROFILE PAGE (/s/:slug)
   ════════════════════════════════════════ */
/* Headerless by design — navigation is a button at the end of the page.
   Side padding comes from .container alone to avoid the
   apply-wrap + container + pub-profile triple-stack on phones. */
#view-public-profile .apply-wrap,
#view-public-member .apply-wrap { padding: 36px 0 var(--space-xl); }
.pub-profile { max-width: 760px; margin: 0 auto; padding: 4px 0 48px; overflow-wrap: break-word; }
.pub-profile__hero {
  background: var(--v-ink); border-radius: var(--v-radius-lg);
  padding: 36px 32px 28px; margin-bottom: 16px;
}
.pub-profile__company {
  font-family: var(--font-heading); font-size: 2rem; font-weight: 700;
  color: #fff; letter-spacing: -0.01em; margin: 0 0 8px;
}
.pub-profile__desc { font-size: 1rem; color: rgba(255,255,255,0.62); margin: 0 0 16px; line-height: 1.6; }
.pub-profile__chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.pub-profile__chip {
  padding: 4px 12px; border-radius: 100px; font-size: 0.78rem;
  background: rgba(255,255,255,0.10); color: rgba(255,255,255,0.75);
  border: 1px solid rgba(255,255,255,0.14); text-decoration: none;
}
.pub-profile__chip--link { color: #93c5fd; border-color: rgba(147,197,253,0.25); }
.pub-profile__chip--link:hover { background: rgba(147,197,253,0.12); }
.pub-profile__badge {
  display: inline-block; padding: 4px 12px; border-radius: 100px;
  font-size: 0.72rem; background: rgba(255,255,255,0.08);
  color: rgba(255,255,255,0.45); border: 1px solid rgba(255,255,255,0.10);
  letter-spacing: 0.04em;
}
.pub-section {
  background: var(--v-bg-card); border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md); padding: 24px; margin-bottom: 12px;
  box-shadow: var(--v-shadow-card);
}
.pub-section__title {
  font-family: var(--font-heading); font-size: 0.68rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--v-text-muted); margin: 0 0 14px;
}
.pub-section__text { font-size: 0.9rem; color: var(--v-text-secondary); line-height: 1.7; margin: 0; }
.pub-profile__founder-row { display: flex; align-items: center; gap: 12px; }
.pub-profile__avatar {
  width: 40px; height: 40px; border-radius: 50%;
  background: var(--v-ink); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-size: 0.75rem; font-weight: 700;
  flex-shrink: 0;
}
.pub-profile__team-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.pub-profile__team-chip {
  padding: 6px 14px; border-radius: var(--v-radius-sm);
  background: var(--v-bg-hover); border: 1px solid var(--v-border);
  font-size: 0.82rem; color: var(--v-text);
}
.pub-traction-item { padding: 12px 0; border-bottom: 1px solid var(--v-border-subtle); }
.pub-traction-item:last-child { border-bottom: none; }
.pub-traction-date { font-size: 0.72rem; color: var(--v-text-muted); margin-bottom: 4px; }
.pub-traction-metrics { font-size: 0.85rem; color: var(--v-text-secondary); }
.pub-traction-notes { font-size: 0.82rem; color: var(--v-text-secondary); margin-top: 3px; }
.pub-funding-card {
  background: var(--v-bg-hover); border: 1px solid var(--v-border);
  border-radius: var(--v-radius-sm); padding: 16px;
}
.pub-back-link { font-size: 0.85rem; color: var(--v-text-muted); text-decoration: none; }
.pub-back-link:hover { color: var(--v-text); }
/* Go Public: custom block editor rows */
.gp-block { border: 1px solid var(--v-border); border-radius: 8px; padding: 10px; margin-bottom: 8px; background: var(--v-bg); }
.gp-block .gp-block__text { margin: 0; }
.pub-social-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.pub-social-link {
  font-size: 0.82rem; color: var(--v-info); text-decoration: none;
  display: flex; align-items: center; gap: 5px;
}
.pub-social-link:hover { text-decoration: underline; }
/* Hero badges render as adjacent inline elements — keep them from touching
   and align them on one baseline when they share a row. */
.pub-profile__hero .pub-profile__badge,
.pub-profile__hero .v-pub-raising-badge,
.pub-profile__hero .v-plan-badge { margin-right: 6px; vertical-align: middle; }

@media (max-width: 639px) {
  .pub-profile__hero { padding: 22px 18px 20px; }
  .pub-profile__hero-top { gap: 12px; }
  .pub-profile__logo { width: 48px; height: 48px; }
  .pub-profile__company { font-size: 1.45rem; }
  .pub-profile__desc { font-size: 0.92rem; }
  .pub-section { padding: 18px 16px; }
}

/* ════════════════════════════════════════
   DASHBOARD SETUP PROGRESS
   ════════════════════════════════════════ */
.v-setup-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.v-setup-pct { font-size: 0.8rem; color: var(--v-text-muted); font-variant-numeric: tabular-nums; }
.v-progress-bar {
  width: 100%; height: 6px; background: var(--v-border);
  border-radius: 100px; overflow: hidden; margin-bottom: 16px;
}
.v-progress-bar__fill {
  height: 100%; background: var(--v-accent); border-radius: 100px;
  transition: width 0.4s ease;
}
.v-step--done .v-step__num {
  background: var(--v-success); border-color: var(--v-success); color: #fff;
}
.v-step--done .v-step__title { color: var(--v-text-muted); }
.v-setup-complete {
  display: flex; align-items: center; gap: 12px; padding: 16px 0;
  font-size: 0.875rem; color: var(--v-success);
}
.v-setup-complete__icon {
  width: 32px; height: 32px; border-radius: 50%;
  background: var(--v-success-bg); display: flex; align-items: center;
  justify-content: center; flex-shrink: 0;
}
.v-step__cta { font-size: 0.75rem; color: var(--v-info); text-decoration: none; margin-left: 4px; }
.v-step__cta:hover { text-decoration: underline; }

/* ════════════════════════════════════════
   SETTINGS PAGE — TABS & FIELDS
   ════════════════════════════════════════ */
.v-settings-tabs {
  display: flex; gap: 4px; flex-wrap: wrap;
  border-bottom: 1px solid var(--v-border); margin-bottom: 24px;
}
.v-settings-tab {
  padding: 9px 16px; font-size: 0.85rem; color: var(--v-text-muted);
  background: none; border: none; cursor: pointer; border-bottom: 2px solid transparent;
  margin-bottom: -1px; transition: color 0.14s, border-color 0.14s;
  font-family: var(--font-body);
}
.v-settings-tab:hover { color: var(--v-text); }
.v-settings-tab--active { color: var(--v-text); border-bottom-color: var(--v-accent); font-weight: 500; }
.v-settings-pane { display: none; }
.v-settings-pane--active { display: block; }
.v-field-row { display: flex; flex-direction: column; gap: 4px; margin-bottom: 16px; }
.v-field-label { font-size: 0.8rem; color: var(--v-text-secondary); font-weight: 500; }
.v-field-hint { font-size: 0.75rem; color: var(--v-text-muted); margin-top: 2px; }
.v-toggle-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 14px 0; border-bottom: 1px solid var(--v-border-subtle);
}
.v-toggle-row:last-child { border-bottom: none; }
.v-toggle-label { font-size: 0.875rem; color: var(--v-text); font-weight: 500; }
.v-toggle-desc { font-size: 0.78rem; color: var(--v-text-muted); margin-top: 2px; }
.v-toggle { position: relative; width: 40px; height: 22px; flex-shrink: 0; }
.v-toggle input { opacity: 0; width: 0; height: 0; position: absolute; }
.v-toggle__track {
  position: absolute; inset: 0; background: var(--v-border);
  border-radius: 100px; transition: background 0.2s; cursor: pointer;
}
.v-toggle__track::after {
  content: ''; position: absolute; left: 3px; top: 3px;
  width: 16px; height: 16px; border-radius: 50%;
  background: #fff; transition: transform 0.2s;
}
.v-toggle input:checked + .v-toggle__track { background: var(--v-accent); }
.v-toggle input:checked + .v-toggle__track::after { transform: translateX(18px); }
.v-save-row { display: flex; align-items: center; gap: 12px; margin-top: 20px; }
.v-toast {
  position: fixed; bottom: 24px; left: 50%; transform: translate(-50%, 10px);
  background: var(--v-ink); color: #fff; padding: 11px 18px;
  border: 1px solid rgba(255,255,255,0.10);
  border-radius: var(--v-radius-md); font-size: 0.875rem;
  box-shadow: 0 16px 42px rgba(15,15,15,0.24); z-index: 9999;
  pointer-events: none; opacity: 0; transition: opacity 0.2s, transform 0.2s;
}
.v-toast--show { opacity: 1; transform: translate(-50%, 0); }
.v-toast--error { background: var(--v-danger); }
.v-privacy-link {
  font-size: 0.82rem; color: var(--v-info); text-decoration: none;
  display: inline-flex; align-items: center; gap: 4px; margin-top: 10px;
}
.v-privacy-link:hover { text-decoration: underline; }
.v-avatar-preview {
  width: 52px; height: 52px; border-radius: 50%;
  background: var(--v-ink); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-size: 1rem; font-weight: 700;
  flex-shrink: 0; margin-bottom: 16px;
}

@keyframes vOverlayFade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes vDialogLift {
  from { opacity: 0; transform: translateY(12px) scale(0.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes vCenteredDialogLift {
  from { opacity: 0; transform: translate(-50%, calc(-50% + 12px)) scale(0.985); }
  to { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes vSheetLift {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}
@media (prefers-reduced-motion: reduce) {
  .v-toast,
  .v-role-modal-overlay,
  .v-role-modal-box,
  .vc-connect-modal__backdrop,
  .vc-connect-modal__card,
  .vn-nudge,
  .vn-modal-backdrop,
  .vn-modal-box,
  .vm-overlay,
  .vm-modal,
  .evt-overlay,
  .evt-modal {
    animation: none !important;
    transition: none !important;
  }
}

/* ════════════════════════════════════════
   ROLE MODAL
   ════════════════════════════════════════ */
.v-role-modal-overlay {
  position: fixed; inset: 0; background: rgba(15,15,15,0.34);
  z-index: 5000; display: flex; align-items: center; justify-content: center;
  backdrop-filter: blur(10px);
  animation: vOverlayFade 0.18s ease-out;
}
.v-role-modal-box {
  background: var(--v-bg-pop);
  border: 1px solid rgba(15,15,15,0.08);
  border-radius: var(--v-radius-lg);
  padding: 28px; width: 100%; max-width: 420px;
  box-shadow: 0 24px 70px rgba(15,15,15,0.18), 0 0 0 1px rgba(255,255,255,0.65) inset;
  margin: 16px;
  animation: vDialogLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
}
.v-role-modal-title { font-size: 1rem; font-weight: 600; color: var(--v-text); margin: 0 0 4px; }
.v-role-modal-sub { font-size: 0.82rem; color: var(--v-text-muted); margin: 0 0 18px; }
.v-role-options { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.v-role-option {
  padding: 7px 14px; border-radius: 100px; border: 1.5px solid var(--v-border);
  font-size: 0.82rem; cursor: pointer; background: var(--v-bg-soft);
  color: var(--v-text-secondary); transition: border-color 0.14s, color 0.14s, background 0.14s, transform 0.14s;
}
.v-role-option:hover { border-color: var(--v-accent); color: var(--v-text); transform: translateY(-1px); }
.v-role-option--active { border-color: var(--v-accent); background: var(--v-bg-hover); color: var(--v-text); font-weight: 500; }
.v-role-modal-custom { margin-bottom: 20px; }
.v-role-modal-actions { display: flex; gap: 10px; justify-content: flex-end; }

/* ════════════════════════════════════════
   DISCOVER — MEMBER CARD ACTIONS
   ════════════════════════════════════════ */
.v-member-card { position: relative; }
.v-member-card__note {
  font-size: 0.8rem; color: var(--v-text-secondary); font-style: italic;
  line-height: 1.45; margin: 10px 0 0; padding: 8px 10px;
  background: var(--v-bg-elev, rgba(255,255,255,0.04));
  border-left: 2px solid var(--v-accent); border-radius: 4px; word-break: break-word;
}
.v-member-card__note-label { font-style: normal; font-size: .66rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--v-text-muted); }
.v-connect-actions .v-member-card__note { flex-basis: 100%; margin-top: 0; }
.v-member-card__actions { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }

/* ── Connection-request composer modal ── */
.vc-connect-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 20px; }
.vc-connect-modal__backdrop { position: absolute; inset: 0; background: rgba(15,15,15,0.36); backdrop-filter: blur(10px); animation: vOverlayFade 0.18s ease-out; }
.vc-connect-modal__card {
  position: relative; z-index: 1; width: 100%; max-width: 440px;
  background: var(--v-bg-pop-alt);
  border: 1px solid rgba(15,15,15,0.08);
  border-radius: var(--v-radius, 12px); padding: 20px;
  box-shadow: 0 24px 70px rgba(15,15,15,0.18), 0 0 0 1px rgba(255,255,255,0.68) inset;
  animation: vDialogLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
}
.vc-connect-modal__title { font-size: 1rem; font-weight: 700; color: var(--v-text); margin: 0 0 4px; }
.vc-connect-modal__sub { font-size: 0.82rem; color: var(--v-text-muted); margin: 0 0 12px; }
.vc-connect-modal__card textarea { width: 100%; resize: vertical; }
.vc-connect-modal__actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 14px; }

/* ── Nudge / announcement corner pop-up ── */
.vn-nudge {
  position: fixed; z-index: 1150; right: 20px; bottom: 20px;
  width: 300px; max-width: calc(100vw - 32px);
  background: var(--v-bg-pop);
  border: 1px solid rgba(15,15,15,0.08);
  border-radius: 12px; padding: 16px;
  box-shadow: 0 18px 46px rgba(15,15,15,0.16), 0 0 0 1px rgba(255,255,255,0.62) inset;
  transform: translateY(16px); opacity: 0;
  transition: transform .25s cubic-bezier(0.2,0.8,0.2,1), opacity .25s ease;
}
.vn-nudge--in { transform: translateY(0); opacity: 1; }
.vn-nudge__close {
  position: absolute; top: 8px; right: 10px; background: none; border: none;
  color: var(--v-text-muted); font-size: 1.15rem; line-height: 1; cursor: pointer;
}
.vn-nudge__title {
  font-size: 0.92rem; font-weight: 700; color: var(--v-text);
  margin: 0 0 6px; padding-right: 16px;
}
.vn-nudge__spark { margin-right: 4px; display: inline-flex; vertical-align: -2px; color: var(--v-warning); }
.vn-nudge__spark svg { width: 14px; height: 14px; display: block; }
.vn-nudge__body { font-size: 0.82rem; color: var(--v-text-secondary); line-height: 1.5; margin: 0 0 12px; }
.vn-nudge__actions { display: flex; }
.vn-nudge__cta { font-size: 0.78rem; text-decoration: none; }
@media (max-width: 640px) {
  /* Sit above the bottom nav on mobile */
  .vn-nudge { right: 12px; left: 12px; width: auto; bottom: 76px; }
}
.v-member-card__btn {
  font-size: 0.72rem; padding: 5px 10px; border-radius: var(--v-radius-sm);
  border: 1px solid var(--v-border); background: var(--v-bg);
  color: var(--v-text-secondary); cursor: pointer;
  transition: background 0.14s, color 0.14s, border-color 0.14s;
}
.v-member-card__btn:hover { background: var(--v-bg-hover); color: var(--v-text); border-color: var(--v-accent); }
.v-member-card__btn--primary { background: var(--v-accent); color: var(--v-accent-text); border-color: var(--v-accent); }
.v-member-card__btn--primary:hover { background: var(--v-accent-hover); border-color: var(--v-accent-hover); }
.disc-startup-card__action-row { margin-top: 10px; }

/* ════════════════════════════════════════
   BUSINESS TEAM TAB
   ════════════════════════════════════════ */
.v-team-search-row { display: flex; gap: 8px; margin-bottom: 16px; }
.v-team-search-row .form-input { flex: 1; }
.v-team-results { display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px; min-height: 40px; }
.v-team-member-row {
  display: flex; align-items: center; gap: 12px; padding: 12px;
  background: var(--v-bg-hover); border: 1px solid var(--v-border);
  border-radius: var(--v-radius-sm);
}
.v-team-member-row__info { flex: 1; min-width: 0; }
.v-team-member-row__name { font-size: 0.875rem; color: var(--v-text); font-weight: 500; }
.v-team-member-row__sub { font-size: 0.78rem; color: var(--v-text-muted); }
.v-team-role-chip {
  padding: 3px 10px; border-radius: 100px; font-size: 0.72rem;
  background: var(--v-info-bg); color: var(--v-info);
  border: 1px solid rgba(59,130,246,0.2); flex-shrink: 0;
}
.v-team-pending-chip {
  padding: 3px 10px; border-radius: 100px; font-size: 0.72rem;
  background: var(--v-warning-bg); color: #b45309;
  border: 1px solid rgba(245,158,11,0.2); flex-shrink: 0;
}
.v-team-section-title {
  font-size: 0.75rem; font-family: var(--font-heading); text-transform: uppercase;
  letter-spacing: 0.12em; color: var(--v-text-muted); margin: 20px 0 10px;
}
.v-team-empty { font-size: 0.875rem; color: var(--v-text-muted); padding: 16px 0; }

/* ── Dynamic link / contact chips ── */
.v-chips-list { display: flex; flex-direction: column; gap: 6px; }
.v-chip {
  display: flex; align-items: center; gap: 8px;
  padding: 6px 10px; background: var(--v-bg-secondary);
  border: 1px solid var(--v-border); border-radius: 6px;
  font-size: 0.8rem; color: var(--v-text);
}
.v-chip__label { font-weight: 600; flex-shrink: 0; color: var(--v-text-secondary); min-width: 80px; }
.v-chip__value { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--v-text-muted); }
.v-chip__remove {
  background: none; border: none; cursor: pointer; color: var(--v-text-muted);
  font-size: 1rem; line-height: 1; padding: 0 2px; flex-shrink: 0;
}
.v-chip__remove:hover { color: var(--v-danger); }
.v-inline-form {
  display: flex; gap: 8px; align-items: center; flex-wrap: wrap;
  padding: 10px; background: var(--v-bg-secondary);
  border: 1px solid var(--v-border); border-radius: 8px; margin-top: 6px;
}
.v-inline-form .form-input { margin: 0; }
/* ── Public profile link chips ── */
.pub-links-row { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.pub-link-chip {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 5px 12px; border-radius: 999px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  font-size: 0.8rem; color: rgba(255,255,255,0.85);
  text-decoration: none;
}
.pub-link-chip:hover { background: rgba(255,255,255,0.18); }
/* ── Public profile contact section ── */
.pub-contact-row { display: flex; flex-direction: column; gap: 6px; margin-top: 10px; }
.pub-contact-item {
  display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap;
  font-size: 0.875rem; color: var(--v-text-secondary);
  min-width: 0; overflow-wrap: anywhere;
}
.pub-contact-item__label { font-weight: 600; color: var(--v-text-muted); min-width: 80px; font-size: 0.78rem; flex-shrink: 0; }

/* ── Avatar upload trigger ── */
.v-upload-trigger {
  position: relative; display: inline-block; cursor: pointer;
  border-radius: 50%; margin-bottom: 16px;
}
.v-upload-trigger__overlay {
  position: absolute; inset: 0; border-radius: 50%;
  background: rgba(0,0,0,0.5); color: #fff;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 3px; font-size: 0.6rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  opacity: 0; transition: opacity 0.15s;
}
.v-upload-trigger:hover .v-upload-trigger__overlay { opacity: 1; border-radius: 50%; }
.v-upload-trigger--loading .v-upload-trigger__overlay { opacity: 1; }
.v-avatar-preview--has-img {
  background-size: cover; background-position: center; color: transparent; font-size: 0;
}

/* ── Business logo upload ── */
.v-logo-upload {
  display: flex; align-items: center; gap: 16px; cursor: pointer;
  padding: 14px 16px; border: 1.5px dashed var(--v-border); border-radius: 8px;
  transition: border-color 0.15s, background 0.15s; margin-bottom: 0;
}
.v-logo-upload:hover { border-color: var(--v-accent); background: rgba(99,102,241,0.04); }
.v-logo-upload--loading { opacity: 0.6; pointer-events: none; }
.v-logo-preview {
  width: 56px; height: 56px; border-radius: 8px; flex-shrink: 0;
  background: var(--v-bg-secondary); border: 1px solid var(--v-border);
  display: flex; align-items: center; justify-content: center; color: var(--v-text-muted);
  background-size: cover; background-position: center;
}
.v-logo-preview--has-img { font-size: 0; }
.v-logo-upload__info { flex: 1; }
.v-logo-upload__info p { margin: 0; }
/* Drag-and-drop states */
.v-upload-trigger.is-drag-over { outline: 2px dashed var(--v-accent); outline-offset: 3px; }
.v-upload-trigger.is-drag-over .v-upload-trigger__overlay { opacity: 1; }
.v-logo-upload.is-drag-over { border-color: var(--v-accent); background: rgba(99,102,241,0.08); border-style: solid; }
/* Upload progress bar */
.v-upload-progress { height: 3px; border-radius: 2px; background: var(--v-border); margin-top: 10px; overflow: hidden; display: none; }
.v-upload-progress.is-active { display: block; }
.v-upload-progress__bar { height: 100%; background: var(--v-accent); border-radius: 2px; width: 0%; transition: width 0.15s linear; }
/* Logo on public profile hero */
.pub-profile__logo {
  width: 56px; height: 56px; border-radius: 10px;
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.2);
  background-size: cover; background-position: center;
  flex-shrink: 0;
}
.pub-profile__hero-top { display: flex; align-items: flex-start; gap: 16px; margin-bottom: 12px; }
.pub-profile__hero-text { flex: 1; min-width: 0; }

/* ── Dashboard Networking Hub ── */
.dash-page-header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
}
.dash-eyebrow {
  margin: 0 0 6px;
  color: var(--v-text-muted);
  font-family: var(--font-heading);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.dash-header-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.dash-header-actions .v-btn { font-size: 0.76rem; white-space: nowrap; }
.dash-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.dash-stat {
  min-width: 0;
  background: var(--v-bg-card); border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg); padding: 18px 16px; text-align: left;
  box-shadow: var(--v-shadow-xs);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.dash-stat:hover { transform: translateY(-2px); box-shadow: var(--v-shadow-sm); border-color: var(--v-border-strong, var(--v-border)); }
.dash-stat__num { font-size: 1.6rem; font-weight: 700; color: var(--v-text); margin: 0 0 4px; line-height: 1.1; }
.dash-stat__label { font-size: 0.68rem; color: var(--v-text-muted); text-transform: uppercase; letter-spacing: 0.08em; margin: 0; }
.dash-today-band {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 13px 16px;
  border: 1px solid rgba(15, 15, 15, 0.12);
  border-radius: var(--v-radius-lg);
  background: linear-gradient(110deg, #171717 0%, #2b322e 100%);
  color: #fff;
  box-shadow: 0 12px 26px rgba(15, 15, 15, 0.10);
}
.dash-today-band__icon {
  width: 28px; height: 28px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: rgba(255,255,255,0.12); color: #c7f9d9; font-size: 0.9rem;
}
.dash-today-band__copy { flex: 1; min-width: 0; }
.dash-today-band__label { margin: 0 0 1px; font-size: 0.82rem; font-weight: 700; }
.dash-today-band__copy p:last-child { margin: 0; color: rgba(255,255,255,0.66); font-size: 0.78rem; line-height: 1.4; }
.dash-today-band__link { flex-shrink: 0; color: #fff; font-size: 0.76rem; font-weight: 700; text-decoration: none; }
.dash-today-band__link:hover { color: #c7f9d9; }
.dash-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, 320px); gap: 20px; align-items: start; }
.dash-col-main { display: flex; flex-direction: column; gap: 20px; }
.dash-col-side  { display: flex; flex-direction: column; gap: 20px; }
.dash-grid .v-card { margin: 0; }
/* One wide child must never stretch the page sideways: let layout children
   shrink below their intrinsic width (grid/flex default is min-width:auto). */
.dash-grid > *, .dash-col-main > *, .dash-col-side > *,
.v-grid--2 > *, .v-grid--3 > *, .v-grid--4 > *, .v-grid--auto > *,
.v-members-grid > *, .evt-grid > * { min-width: 0; }
.dash-feed { display: flex; flex-direction: column; }
.dash-activity-item {
  display: flex; align-items: flex-start; gap: 12px;
  padding: 11px 0; border-bottom: 1px solid var(--v-border);
}
.dash-activity-item:last-child { border-bottom: none; }
.dash-activity-item[data-href] { cursor: pointer; }
.dash-activity-item[data-href]:hover .dash-activity-item__text { color: var(--v-accent); }
.dash-activity-item__icon {
  width: 32px; height: 32px; border-radius: 50%; background: var(--v-bg-secondary);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0; font-size: 1rem;
}
.dash-activity-item__text { font-size: 0.875rem; color: var(--v-text); margin: 0 0 2px; line-height: 1.4; }
.dash-activity-item__time { font-size: 0.72rem; color: var(--v-text-muted); margin: 0; }
.dash-more-btn {
  background: none; border: none; color: var(--v-accent); font-size: 0.8rem;
  cursor: pointer; padding: 10px 0 0; display: block; text-align: left;
}
.dash-more-btn:hover { text-decoration: underline; }
.dash-funding-item { padding: 10px 0; border-bottom: 1px solid var(--v-border); }
.dash-funding-item:last-child { border-bottom: none; }
.dash-funding-item__company { font-weight: 600; font-size: 0.875rem; color: var(--v-text); margin: 0 0 2px; }
.dash-funding-item__meta { font-size: 0.78rem; color: var(--v-text-secondary); margin: 0 0 4px; }
.dash-funding-item__pitch { font-size: 0.78rem; color: var(--v-text-muted); margin: 0 0 5px; line-height: 1.4; }
.dash-member-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--v-border); }
.dash-member-item:last-child { border-bottom: none; }
.dash-member-item__avatar {
  width: 32px; height: 32px; border-radius: 50%; flex-shrink: 0;
  background: var(--v-ink); color: #fff;
  display: flex; align-items: center; justify-content: center;
  font-size: 0.7rem; font-weight: 700; background-size: cover; background-position: center;
}
.dash-member-item__name  { font-size: 0.875rem; color: var(--v-text); font-weight: 500; margin: 0; }
.dash-member-item__company { font-size: 0.72rem; color: var(--v-text-muted); margin: 0; }

.dash-checkin__input { width: 100%; box-sizing: border-box; resize: vertical; margin-bottom: 10px; }
.dash-checkin__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.dash-checkin__share { font-size: 0.8rem; color: var(--v-text-secondary); display: flex; align-items: center; gap: 6px; cursor: pointer; }
.dash-checkin__done { display: flex; align-items: center; gap: 8px; font-size: 0.9rem; font-weight: 600; color: #34d399; margin: 0; }

.dash-pulse { display: flex; flex-direction: column; }
.dash-pulse-item { display: flex; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--v-border); cursor: pointer; }
.dash-pulse-item:last-child { border-bottom: none; }
.dash-pulse-item__icon { flex-shrink: 0; color: var(--v-text-muted); margin-top: 1px; }
.dash-pulse-item__text { font-size: 0.82rem; color: var(--v-text); margin: 0 0 2px; line-height: 1.4; }
.dash-pulse-item__time { font-size: 0.72rem; color: var(--v-text-muted); margin: 0; }

@media (max-width: 860px) {
  .dash-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .dash-page-header { align-items: flex-start; flex-direction: column; gap: 14px; }
  .dash-header-actions { width: 100%; }
  .dash-header-actions .v-btn { flex: 1; text-align: center; }
  .dash-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 480px) {
  .dash-today-band { align-items: flex-start; flex-wrap: wrap; }
  .dash-today-band__link { width: 100%; padding-left: 40px; }
  .dash-stat { padding: 14px 12px; }
  .dash-stat__num { font-size: 1.35rem; }
}

/* ── Skeletons ── */
.v-skeleton-card{background:var(--v-bg-card);border:1px solid var(--v-border);border-radius:var(--v-radius-md);padding:16px}
.v-skeleton-line{background:#e5e7eb;border-radius:3px;height:11px;margin-bottom:8px}
.v-skeleton-line--s{width:35%}.v-skeleton-line--m{width:60%}.v-skeleton-line--f{width:100%}
.v-sk-avatar{width:36px;height:36px;border-radius:50%;background:#e5e7eb;flex-shrink:0}
.v-sk-avatar--lg{width:44px;height:44px}
.v-sk-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--v-border-subtle)}
.v-sk-row:last-child{border-bottom:none}
.v-sk-btn{height:30px;width:70px;border-radius:var(--v-radius-sm);background:#e5e7eb}
.v-sk-icon{width:32px;height:32px;border-radius:var(--v-radius-sm);background:#e5e7eb;flex-shrink:0}
.v-skeleton-card,.v-skeleton-line,.v-sk-avatar,.v-sk-btn,.v-sk-icon{animation:vSkelPulse 1.4s ease-in-out infinite}
@keyframes vSkelPulse{0%,100%{opacity:1}50%{opacity:.45}}
.v-load-error{grid-column:1/-1;padding:16px;font-size:.875rem;color:var(--v-text-muted);text-align:center}
.v-load-error button{margin-left:8px;text-decoration:underline;cursor:pointer;background:none;border:none;color:var(--v-info);font-size:.875rem}

/* ── Confirm modal ── */
.vn-modal-backdrop{position:fixed;inset:0;background:rgba(15,15,15,.38);backdrop-filter:blur(10px);z-index:900;animation:vOverlayFade .18s ease-out}
.vn-modal-box{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--v-bg-pop);border:1px solid rgba(15,15,15,.08);border-radius:8px;padding:24px;width:min(360px,90vw);z-index:901;box-shadow:0 24px 70px rgba(15,15,15,.18),0 0 0 1px rgba(255,255,255,.65) inset;animation:vCenteredDialogLift .22s cubic-bezier(.2,.8,.2,1)}
.vn-modal-box__msg{font-size:.9rem;color:var(--v-text);margin:0 0 20px}
.vn-modal-box__actions{display:flex;gap:10px;justify-content:flex-end}
.v-btn--danger{background:transparent;border:1px solid var(--v-danger,#e54d4d);color:var(--v-danger,#e54d4d);border-radius:4px;padding:7px 16px;cursor:pointer;font-size:.85rem}
.v-btn--danger:hover{background:var(--v-danger,#e54d4d);color:#fff}
.v-connect-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}

/* ── Public profile enhancements (Task 6) ── */
.v-pub-raising-badge{display:inline-flex;align-items:center;background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.35);color:#34d399;border-radius:4px;padding:3px 10px;font-size:.75rem;font-weight:600;letter-spacing:.04em;margin-top:8px}
.v-pub-interest-section{margin-top:16px}
.v-btn--interest{background:var(--v-accent,rgba(255,255,255,.9));color:#0d0d0d;border:none;border-radius:4px;padding:8px 20px;font-size:.85rem;font-weight:600;cursor:pointer;letter-spacing:.01em}
.v-btn--interest:hover{opacity:.88}
.v-btn--interest-sent{background:transparent;border:1px solid rgba(52,211,153,.35);color:#34d399;border-radius:4px;padding:8px 20px;font-size:.85rem;font-weight:600;cursor:default}
.v-pub-interest-date{font-size:.78rem;color:var(--color-text-muted,#888);margin-top:4px}
.v-interest-amount-form{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.v-interest-amount-form input{flex:1;min-width:160px;background:var(--v-input-bg,rgba(255,255,255,.06));border:1px solid var(--v-border);border-radius:4px;padding:7px 10px;color:var(--v-text);font-size:.85rem}
.v-pub-activity-feed{margin-top:24px;padding-top:20px;border-top:1px solid var(--v-border)}
.v-pub-activity-feed__title{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--v-text-muted);margin:0 0 10px}
.v-pub-activity-item{display:flex;gap:10px;padding:8px 0;border-bottom:1px solid var(--v-border);font-size:.82rem;color:var(--v-text)}
.v-pub-activity-item:last-child{border-bottom:none}
.v-pub-activity-item__who{color:var(--v-text-muted);min-width:80px;flex-shrink:0}
.v-pub-activity-item__note{flex:1}
.v-pub-activity-item__time{color:var(--v-text-muted);white-space:nowrap;font-size:.75rem}

/* ── Deal Room ── */
.vdr-section{margin-bottom:20px}
.vdr-section__title{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--v-text-muted);margin-bottom:8px}
.vdr-template-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.vdr-template-card{border:1px solid var(--v-border);border-radius:10px;padding:14px;cursor:pointer;background:var(--v-bg-card);transition:border-color .15s,background .15s}
.vdr-template-card:hover{border-color:var(--v-accent)}
.vdr-template-card--active{border-color:var(--v-accent);background:color-mix(in srgb,var(--v-accent) 7%, transparent)}
.vdr-template-card__name{font-size:.85rem;font-weight:600;color:var(--v-text);margin:0 0 3px}
.vdr-template-card__desc{font-size:.75rem;color:var(--v-text-muted);margin:0}
.vdr-field-row{margin-bottom:14px}
.vdr-field-row label{display:block;font-size:.78rem;font-weight:500;color:var(--v-text-secondary,var(--v-text-muted));margin-bottom:4px}
.vdr-field-row input,.vdr-field-row textarea,.vdr-field-row select{width:100%;background:var(--v-bg);border:1px solid var(--v-border);border-radius:8px;padding:9px 12px;color:var(--v-text);font-size:.875rem;box-sizing:border-box}
.vdr-field-row input:focus,.vdr-field-row textarea:focus,.vdr-field-row select:focus{border-color:var(--v-accent);outline:none}
.vdr-field-row input[type="checkbox"]{width:15px;height:15px;flex:0 0 auto;padding:0;margin:0;accent-color:var(--v-accent);cursor:pointer}
.vdr-field-tooltip{font-size:.72rem;color:var(--v-text-muted);margin-top:3px}
.vdr-preview{background:var(--v-bg);border:1px solid var(--v-border);border-radius:10px;padding:16px;font-size:.82rem;line-height:1.7;white-space:pre-wrap;color:var(--v-text)}
.vdr-sign-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.vdr-sign-row input{flex:1;min-width:140px;background:var(--v-bg);border:1px solid var(--v-border);border-radius:8px;padding:9px 12px;color:var(--v-text);font-size:.875rem}
.vdr-signed-badge{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;color:var(--v-success,#16a34a);margin-top:4px}
.vdr-payment-card{border:1px solid var(--v-border);border-radius:10px;padding:14px;margin-top:8px;background:var(--v-bg-card)}
.vdr-payment-card p{font-size:.85rem;margin:0 0 8px}

/* ── Deal pipeline strip ── */
.vdr-progress{display:flex;align-items:center;gap:10px;margin:0 0 18px;flex-wrap:wrap}
.vdr-progress__step{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:500;color:var(--v-text-muted);white-space:nowrap}
.vdr-progress__step i{font-style:normal;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:700;border:1px solid var(--v-border);background:var(--v-bg-card);color:var(--v-text-muted)}
.vdr-progress__step--now{color:var(--v-text);font-weight:600}
.vdr-progress__step--now i{background:var(--v-accent);border-color:var(--v-accent);color:#fff}
.vdr-progress__step--done{color:var(--v-text-secondary,var(--v-text-muted))}
.vdr-progress__step--done i{background:var(--v-success-bg,#dcfce7);border-color:var(--v-success,#16a34a);color:var(--v-success,#16a34a)}
.vdr-progress__bar{flex:1 1 24px;min-width:16px;height:1px;background:var(--v-border)}

/* ── Deal Room Overlay Panel (Task 4) ── */
/* ── Deal room: full page inside the portal shell (dashboard theme) ── */
.vdr-page-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}
.vdr-page-title{margin:0}
.vdr-back{display:inline-flex;align-items:center;gap:6px;background:var(--v-bg-card);border:1px solid var(--v-border);border-radius:8px;color:var(--v-text-muted);padding:7px 12px;font-size:.8rem;cursor:pointer;transition:color .15s,border-color .15s}
.vdr-back:hover{color:var(--v-text);border-color:var(--v-text-muted)}
#vdrRoom .vdr-section{background:var(--v-bg-card);border:1px solid var(--v-border);border-radius:10px;padding:18px;margin-bottom:14px}
#vdrRoom .vdr-executed-banner{margin:0 0 14px}
#vdrRoom .vdr-join-banner{margin:0 0 14px}
#vdrRoom .vdr-doc{max-width:860px}
.vdr-executed-banner{background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3);border-radius:6px;padding:10px 14px;font-size:.8rem;color:#34d399;display:flex;align-items:center;gap:6px;margin:0 16px 0;flex-shrink:0}
.vdr-participant-row{display:flex;align-items:center;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--v-border-subtle,rgba(255,255,255,.06))}
.vdr-participant-row:last-child{border-bottom:none}
.vdr-participant-name{font-size:.85rem;color:var(--v-text);font-weight:500}
.vdr-badge--creator{background:rgba(139,92,246,.15);color:#a78bfa;border-color:rgba(139,92,246,.3)}

/* ── Join banner (Task 5) ── */
.vdr-join-banner{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:6px;padding:14px 16px;margin:0 16px 12px;flex-shrink:0}

/* ── Invite section (Task 5) ── */
.vdr-invite-section{padding-top:4px}
.vdr-conn-row:last-child{border-bottom:none !important}

/* ── Deal document: legal paper theme ── */
.vdr-doc{background:#fdfdfb;color:#1a1a1a;border:1px solid var(--v-border);border-radius:8px;padding:36px 40px;font-family:Georgia,'Times New Roman',serif;font-size:.84rem;line-height:1.65;box-shadow:0 1px 3px rgba(15,15,15,.08),0 8px 24px rgba(15,15,15,.06);margin:0 auto}
.vdr-doc h2{text-align:center;font-size:.95rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin:0 0 20px;color:#1a1a1a;font-family:inherit}
.vdr-doc h3{font-size:.82rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:18px 0 6px;color:#1a1a1a;font-family:inherit}
.vdr-doc p{margin:0 0 8px;text-align:justify;color:#1a1a1a;font-size:inherit}
.vdr-doc ol,.vdr-doc ul{margin:0 0 8px;padding-left:20px;color:#1a1a1a}
.vdr-doc__legacy{white-space:pre-wrap;font-family:inherit}
.vdr-doc-sigs{margin-top:30px;border-top:1px dashed #bbb;padding-top:14px}
.vdr-doc-sigs__title{font-size:.78rem;margin:0 0 6px;color:#1a1a1a}
.vdr-doc-sig{margin-top:20px}
.vdr-doc-sig__name{font-family:'Segoe Script','Brush Script MT',cursive;font-size:1rem;margin:0;min-height:20px;color:#1a1a1a}
.vdr-doc-sig__line{border-top:1px solid #1a1a1a;padding-top:3px;margin:2px 0 0;font-size:.72rem;color:#1a1a1a}
.vdr-doc-sig__meta{font-size:.68rem;color:#555;margin:2px 0 0}
.vdr-doc .vdr-doc-sig--venet .vdr-doc-sig__name{font-family:Georgia,'Times New Roman',serif;font-variant:small-caps;letter-spacing:.14em;font-size:1rem}
.vdr-doc .vdr-doc-notexec{margin-top:20px;font-size:.72rem;font-style:italic;color:#777;text-align:center}
.vdr-doc--edit{outline:none;min-height:280px;max-height:55vh;overflow-y:auto;cursor:text}
.vdr-doc--edit:focus{box-shadow:0 0 0 2px rgba(139,92,246,.55)}
.vdr-doc-toolbar{display:flex;gap:4px;margin-bottom:8px;flex-wrap:wrap}
.vdr-doc-toolbar button{background:var(--v-bg-card);border:1px solid var(--v-border);border-radius:6px;color:var(--v-text);min-width:32px;min-height:32px;padding:5px 9px;font-size:.8rem;cursor:pointer}
.vdr-doc-toolbar button:hover{background:var(--v-bg-hover)}

/* ── Deal room: mobile ── */
@media (max-width: 639px) {
  .vdr-template-grid{grid-template-columns:1fr}
  .vdr-doc{padding:22px 18px}
  .vdr-sign-row{flex-direction:column;align-items:stretch}
  .vdr-sign-row input{min-width:0}
  .vdr-sign-row .v-btn,.vdr-payment-card .v-btn,.vdr-join-banner .v-btn{width:100%}
  .vdr-page-head{gap:10px}
  .vdr-page-head .vdr-page-title{font-size:1.15rem}
  #vdrRoom .vdr-section{padding:14px}
}

/* ── Deals list view (Task 5) ── */
.vdl-row{display:flex;align-items:center;gap:10px;padding:14px 0;border-bottom:1px solid var(--v-border-subtle,rgba(255,255,255,.06));cursor:pointer;transition:background .15s}
.vdl-row:last-child{border-bottom:none}
.vdl-row:hover{background:var(--v-bg-hover,rgba(255,255,255,.04));border-radius:6px;padding-left:8px;padding-right:8px}
.vdl-row__main{flex:1;min-width:0}
.vdl-row__title{font-size:.9rem;color:var(--v-text);font-weight:500;margin:0 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vdl-row__meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.vdl-row__type{font-size:.75rem;color:var(--v-text-muted)}
.vdl-row__pcount{font-size:.75rem;color:var(--v-text-muted)}
.vdl-row__time{font-size:.73rem;color:var(--v-text-muted);margin-left:auto}
.vdl-row__arrow{color:var(--v-text-muted);flex-shrink:0}
.vdl-invited-badge{animation:vdlPulse 2s ease-in-out infinite}
@keyframes vdlPulse{0%,100%{opacity:1}50%{opacity:.6}}

/* ── Recommendation match reason tag (Task 9) ── */
.v-match-reason {
  display: inline-block;
  font-size: 0.68rem;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(99,102,241,0.12);
  color: var(--v-accent, #818cf8);
  border: 1px solid rgba(99,102,241,0.25);
  font-family: var(--font-heading);
  letter-spacing: 0.04em;
  margin-top: 6px;
}

/* ── Member card additions (location + looking-for tags) ── */
.v-member-loc {
  font-size: 0.72rem;
  color: var(--v-text-muted);
  margin: 2px 0 0;
}
.v-member-tag--accent {
  color: var(--v-accent, #818cf8);
  border-color: rgba(99,102,241,0.35);
  background: rgba(99,102,241,0.08);
}

/* ── Chip toggles (settings + onboarding wizard) ── */
.v-chip-group {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.v-chip-toggle {
  font-family: inherit;
  font-size: 0.78rem;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--v-border);
  background: transparent;
  color: var(--v-text-secondary);
  cursor: pointer;
  transition: all 0.15s ease;
}
.v-chip-toggle:hover { border-color: var(--v-accent, #818cf8); color: var(--v-success); }
.v-chip-toggle--on {
  background: var(--v-accent, #6366f1);
  border-color: var(--v-accent, #6366f1);
  color: #fff;
}

/* ── Onboarding wizard ── */
.v-wiz {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.v-wiz__card {
  width: 100%;
  max-width: 560px;
  background: var(--v-surface, rgba(255,255,255,0.03));
  border: 1px solid var(--v-border);
  border-radius: 14px;
  padding: 32px 28px;
}
.v-wiz__progress {
  height: 4px;
  border-radius: 2px;
  background: var(--v-border);
  overflow: hidden;
  margin-bottom: 8px;
}
.v-wiz__bar {
  height: 100%;
  background: var(--v-accent, #6366f1);
  transition: width 0.25s ease;
}
.v-wiz__step-label {
  font-size: 0.72rem;
  color: var(--v-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin: 0 0 18px;
}
.v-wiz__title {
  font-size: 1.15rem;
  font-weight: 600;
  color: var(--v-text);
  margin: 0 0 6px;
}
.v-wiz__sub {
  font-size: 0.85rem;
  color: var(--v-text-muted);
  margin: 0 0 18px;
}
.v-wiz__nav {
  display: flex;
  justify-content: space-between;
  margin-top: 22px;
}
.v-wiz-roles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
.v-wiz-role {
  font-family: inherit;
  border: 1px solid var(--v-border);
  background: transparent;
  border-radius: 10px;
  padding: 16px 10px;
  cursor: pointer;
  text-align: center;
  color: var(--v-text-secondary);
  transition: all 0.15s ease;
}
.v-wiz-role:hover { border-color: var(--v-accent, #818cf8); }
.v-wiz-role--on {
  border-color: var(--v-accent, #6366f1);
  color: var(--v-text);
  background: rgba(99, 102, 241, 0.08);
}
.v-wiz-role__emoji { display: flex; align-items: center; justify-content: center; margin-bottom: 6px; color: var(--v-text); }
.v-wiz-role__emoji svg { width: 22px; height: 22px; display: block; }
.v-wiz-role__name  { font-size: 0.85rem; font-weight: 600; display: block; }
.v-wiz-role__desc  { font-size: 0.7rem; color: var(--v-text-muted); display: block; margin-top: 3px; }
@media (max-width: 520px) {
  .v-wiz-roles { grid-template-columns: 1fr; }
}

/* ─── Calendar ─── */
.cal-filter-pill {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid var(--v-border);
  background: transparent;
  color: var(--v-text-secondary);
  font-size: 0.8rem;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.cal-filter-pill:hover { background: var(--v-bg-hover); color: var(--v-text); }
.cal-filter-pill--active {
  background: var(--v-accent);
  color: var(--v-accent-text);
  border-color: var(--v-accent);
  font-weight: 500;
}

.cal-month-nav {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.cal-month-nav__label {
  font-weight: 600;
  color: var(--v-text);
  min-width: 150px;
  text-align: center;
  font-size: 0.95rem;
}

.cal-grid { border: 1px solid var(--v-border); border-radius: 10px; overflow: hidden; }
.cal-grid__header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  background: var(--v-bg-hover, #f9fafb);
  border-bottom: 1px solid var(--v-border);
}
.cal-grid__day-name {
  padding: 8px 4px;
  text-align: center;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--v-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cal-grid__body {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.cal-cell {
  min-height: 72px;
  padding: 6px 6px 4px;
  border-right: 1px solid var(--v-border);
  border-bottom: 1px solid var(--v-border);
  cursor: pointer;
  transition: background 0.12s;
}
.cal-cell:nth-child(7n) { border-right: none; }
.cal-cell:hover { background: var(--v-bg-hover, #f9fafb); }
.cal-cell--empty { cursor: default; background: transparent; }
.cal-cell--empty:hover { background: transparent; }
.cal-cell--today .cal-cell__num {
  background: var(--v-accent);
  color: var(--v-accent-text);
  border-radius: 50%;
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 600;
}
.cal-cell__num {
  font-size: 0.78rem;
  color: var(--v-text-secondary);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  margin-bottom: 4px;
}
.cal-cell__dots {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  margin-top: 2px;
}
.cal-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}
.cal-dot--blue   { background: var(--v-info); }
.cal-dot--green  { background: var(--v-success); }
.cal-dot--purple { background: #8b5cf6; }
.cal-dot--more {
  width: auto;
  height: auto;
  border-radius: 0;
  font-size: 0.6rem;
  color: var(--v-text-muted);
  background: none;
  line-height: 7px;
}

.cal-event-row {
  padding: 10px 0;
  border-bottom: 1px solid var(--v-border);
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.cal-event-row:last-child { border-bottom: none; }
.cal-event-row__body { flex: 1; }
.cal-event-row__title {
  font-weight: 500;
  color: var(--v-text);
  font-size: 0.875rem;
  margin: 0 0 2px;
}
.cal-event-row__time {
  font-size: 0.78rem;
  color: var(--v-text-muted);
  margin: 0 0 4px;
}
.cal-event-type-badge {
  display: inline-block;
  font-size: 0.65rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: 10px;
  background: var(--v-info-bg);
  color: var(--v-info);
  border: 1px solid rgba(59,130,246,0.2);
  margin-right: 4px;
}
.cal-beta-chip {
  display: inline-block;
  font-size: 0.6rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 8px;
  background: #fef3c7;
  color: #b45309;
  border: 1px solid rgba(245,158,11,0.25);
  vertical-align: middle;
}

.cal-pub-card {
  padding: 14px 16px;
}
.cal-pub-card + .cal-pub-card { margin-top: 0; }

/* ─── Meeting modal (desktop: centered card / mobile: bottom sheet) ─── */
.vm-overlay {
  position: fixed; inset: 0;
  background: rgba(15, 15, 15, 0.34);
  backdrop-filter: blur(10px);
  z-index: 900;
  animation: vOverlayFade 0.18s ease-out;
}
.vm-modal {
  position: fixed;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 92%; max-width: 440px;
  max-height: 88vh; overflow-y: auto;
  background: var(--v-bg-pop);
  border: 1px solid rgba(15,15,15,0.08);
  border-radius: var(--v-radius-lg);
  box-shadow: 0 24px 70px rgba(15,15,15,0.18), 0 0 0 1px rgba(255,255,255,0.65) inset;
  padding: 20px;
  z-index: 901;
  box-sizing: border-box;
  animation: vCenteredDialogLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
}
.vm-modal__handle { display: none; }
.vm-modal__title {
  font-weight: 600; font-size: 1rem;
  color: var(--v-text); margin: 0 0 14px;
}
.vm-slot-row { display: flex; gap: 8px; margin-bottom: 8px; align-items: center; }
.vm-slot-row .form-input { flex: 1; min-width: 0; }
.vm-slot-row__x {
  flex: none;
  width: 28px; height: 28px;
  border: 1px solid var(--v-border);
  border-radius: 50%;
  background: transparent;
  color: var(--v-text-muted);
  font-size: 0.95rem; line-height: 1;
  cursor: pointer;
}
.vm-slot-row__x:hover { color: var(--v-danger); border-color: var(--v-danger); }

/* Suggestion chips grid */
.vm-chiprow { display: flex; align-items: center; gap: 6px; margin-bottom: 8px; flex-wrap: wrap; }
.vm-chiprow__day {
  font-size: 0.78rem; font-weight: 600;
  color: var(--v-text-secondary);
  min-width: 76px;
}
.vm-chip {
  border: 1px solid var(--v-border);
  border-radius: 999px;
  background: transparent;
  color: var(--v-text);
  font-size: 0.8rem; font-weight: 500;
  padding: 6px 12px;
  cursor: pointer;
  transition: border-color 0.12s, background 0.12s, color 0.12s;
}
.vm-chip:hover { border-color: var(--v-accent); }
.vm-chip--on {
  background: var(--v-accent);
  border-color: var(--v-accent);
  color: #fff;
}
.vm-add-custom {
  border: none; background: none;
  color: var(--v-accent);
  font-size: 0.8rem; font-weight: 600;
  padding: 4px 0; margin: 2px 0 6px;
  cursor: pointer;
}
.vm-opt-toggle {
  display: flex; align-items: center; gap: 6px;
  width: 100%;
  border: none; background: none;
  color: var(--v-text-secondary);
  font-size: 0.8rem; font-weight: 600;
  padding: 8px 0; margin-top: 2px;
  border-top: 1px solid var(--v-border);
  cursor: pointer;
  text-align: left;
}
.vm-opt-toggle__chev { transition: transform 0.15s; }
.vm-opt-toggle--open .vm-opt-toggle__chev { transform: rotate(90deg); }
.vm-opt-toggle__hint { font-weight: 400; color: var(--v-text-muted); }
.vm-link-hint { font-size: 0.72rem; color: var(--v-text-muted); margin: 4px 0 0; }

@media (max-width: 639px) {
  .vm-modal {
    top: auto; left: 0; right: 0; bottom: 0;
    transform: none;
    width: 100%; max-width: none;
    max-height: 92vh;
    border-radius: 16px 16px 0 0;
    border-left: none; border-right: none; border-bottom: none;
    padding: 12px 16px calc(16px + env(safe-area-inset-bottom));
    animation: vSheetLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
  }
  .vm-modal__handle {
    display: block;
    width: 36px; height: 4px;
    border-radius: 999px;
    background: var(--v-border);
    margin: 0 auto 12px;
  }
  .vm-modal .v-btn { width: 100%; }
}

/* ─── Meeting card inside chat thread (date-chip ticket) ─── */
.vc-meet {
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  background: var(--v-bg-card);
  padding: 12px 14px;
  margin-top: 6px;
  max-width: 380px;
}
.vc-meet--live {
  border-color: var(--v-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--v-accent) 18%, transparent);
}
.vc-meet__head { display: flex; gap: 12px; align-items: flex-start; }
.vc-meet__headtext { flex: 1; min-width: 0; }
.v-datechip {
  flex: none;
  width: 44px;
  border: 1px solid var(--v-accent);
  border-radius: 10px;
  overflow: hidden;
  text-align: center;
}
.v-datechip__mon {
  display: block;
  font-size: 0.6rem; font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 2px 0 1px;
  background: var(--v-accent);
  color: #fff;
}
.v-datechip__day {
  display: block;
  font-size: 1.05rem; font-weight: 700;
  color: var(--v-text);
  padding: 2px 0 3px;
}
.v-datechip--ok { border-color: var(--v-success); }
.v-datechip--ok .v-datechip__mon { background: var(--v-success); }
.v-datechip--muted { border-color: var(--v-border); }
.v-datechip--muted .v-datechip__mon { background: var(--v-border); color: var(--v-text-secondary); }
.v-datechip--muted .v-datechip__day { color: var(--v-text-muted); }
.vc-meet__title { font-weight: 600; font-size: 0.875rem; color: var(--v-text); margin: 0 0 2px; overflow-wrap: anywhere; }
.vc-meet__note  { font-size: 0.8rem; color: var(--v-text-secondary); margin: 0; overflow-wrap: anywhere; }
.vc-meet__hint  { font-size: 0.75rem; color: var(--v-text-muted); margin: 10px 0 6px; }
.vc-meet__pills { display: flex; flex-wrap: wrap; gap: 6px; }
.vc-meet__slot {
  border: 1px solid var(--v-border);
  border-radius: 999px;
  padding: 7px 12px;
  background: transparent;
  color: var(--v-text);
  font-size: 0.78rem; font-weight: 500;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.vc-meet__slot:hover { border-color: var(--v-accent); color: var(--v-accent); }
.vc-meet__slot--static { cursor: default; color: var(--v-text-secondary); }
.vc-meet__slot--static:hover { border-color: var(--v-border); color: var(--v-text-secondary); }
.vc-meet__row {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  margin-top: 10px; padding-top: 10px;
  border-top: 1px solid var(--v-border);
}
.vc-meet__action { font-size: 0.75rem !important; padding: 6px 12px !important; }
.vc-meet__status { font-size: 0.82rem; font-weight: 500; margin: 10px 0 0; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.vc-meet__status--ok  { color: var(--v-success); }
.vc-meet__status--off { color: var(--v-text-muted); }
.vc-meet__ico { flex-shrink: 0; display: inline-block; vertical-align: -1px; }
.vc-meet__live {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 0.78rem; font-weight: 700;
  color: var(--v-accent);
  margin: 10px 0 0;
}
.vc-meet__live::before {
  content: '';
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--v-accent);
  animation: vcMeetPulse 1.4s ease-in-out infinite;
}
@keyframes vcMeetPulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
.vc-meet__strip {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.8rem; color: var(--v-text-muted);
  margin: 0;
}

/* ─── Upcoming meetings strip (calendar) + next-meeting card (dashboard) ─── */
.cal-meet-strip { margin-bottom: 16px; }
.cal-meet-strip__row {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--v-border);
}
.cal-meet-strip__row:last-child { border-bottom: none; }
.cal-meet-strip__body { flex: 1; min-width: 0; }
.cal-meet-strip__title {
  font-size: 0.85rem; font-weight: 600;
  color: var(--v-text); margin: 0 0 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.cal-meet-strip__time { font-size: 0.75rem; color: var(--v-text-muted); margin: 0; }
.cal-meet-strip__join { font-size: 0.75rem !important; padding: 6px 14px !important; }

.dash-meet__row { display: flex; align-items: center; gap: 12px; }
.dash-meet__body { flex: 1; min-width: 0; }
.dash-meet__title {
  font-size: 0.875rem; font-weight: 600;
  color: var(--v-text); margin: 0 0 2px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.dash-meet__time { font-size: 0.78rem; color: var(--v-text-secondary); margin: 0; }
.dash-meet__live {
  display: inline-flex; align-items: center; gap: 6px;
  font-weight: 700; color: var(--v-accent);
}
.dash-meet__live::before {
  content: '';
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--v-accent);
  animation: vcMeetPulse 1.4s ease-in-out infinite;
}

/* ─── Calendar mobile agenda ─── */
.cal-agenda__group {
  font-size: 0.72rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--v-text-muted);
  margin: 18px 0 6px;
}
.cal-agenda__row {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 12px 4px;
  border-bottom: 1px solid var(--v-border);
  cursor: pointer;
}
.cal-agenda__time { font-size: 0.78rem; color: var(--v-text-secondary); min-width: 84px; flex-shrink: 0; }
.cal-agenda__title { font-size: 0.875rem; font-weight: 500; color: var(--v-text); margin: 0; }
.cal-agenda__empty { font-size: 0.85rem; color: var(--v-text-muted); padding: 20px 4px; }

/* ─── Dashboard next-up ─── */
.pb-card__foot { margin-top: 8px; }
.pb-helpful {
  display: inline-flex; align-items: center; gap: 6px;
  background: none; border: 1px solid var(--v-border); border-radius: 999px;
  color: var(--v-text-muted); font-size: 0.72rem; padding: 3px 10px; cursor: pointer;
  transition: color 0.15s, border-color 0.15s;
}
.pb-helpful svg { width: 14px; height: 14px; flex-shrink: 0; }
.pb-helpful:hover { color: var(--v-text); border-color: var(--v-text-muted); }
.pb-helpful--on { color: var(--v-accent); border-color: var(--v-accent); }

.dash-next-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--v-border-subtle, var(--v-border));
}
.dash-next-item:last-child { border-bottom: none; }
.dash-next-item__label { font-size: 0.875rem; font-weight: 500; color: var(--v-text); margin: 0 0 2px; }
.dash-next-item__hint  { font-size: 0.75rem; color: var(--v-text-muted); margin: 0; }
.dash-next-item .dash-next-cta { flex-shrink: 0; font-size: 0.75rem; padding: 5px 12px; }

.dash-nextup-item {
  padding: 9px 0;
  border-bottom: 1px solid var(--v-border-subtle, var(--v-border));
  cursor: pointer;
}
.dash-nextup-item:last-child { border-bottom: none; }
.dash-nextup-item__title { font-size: 0.85rem; font-weight: 500; color: var(--v-text); margin: 0 0 2px; }
.dash-nextup-item__time  { font-size: 0.75rem; color: var(--v-text-muted); margin: 0; }

/* ─── Mobile polish ─── */
.venet-bottom-nav__item { position: relative; }

@media (max-width: 639px) {
  /* Bottom nav: safe area (active state lives in the main bottom-nav rules) */
  .venet-bottom-nav { padding-bottom: env(safe-area-inset-bottom, 0px); }

  /* Touch targets >=44px; 16px inputs stop iOS auto-zoom */
  .form-input,
  select.form-input,
  textarea.form-input { font-size: 16px; }
  .v-btn:not(.v-btn--sm) { min-height: 44px; }
  .vc-composer__send { min-width: 44px; min-height: 44px; }
  .vc-channel-item { min-height: 60px; }
  .cal-agenda__row { min-height: 44px; }

  /* Chat: full-height layout, composer clear of bottom nav */
  .venet-main--chats {
    padding: var(--v-topbar-h) 0 calc(56px + env(safe-area-inset-bottom));
    height: 100vh;
    height: 100dvh;
  }
  .venet-main--chats .venet-page-header { padding: 14px 16px 0; }
  .venet-main--chats.venet-main--thread {
    padding-top: var(--v-topbar-h);
    padding-bottom: env(safe-area-inset-bottom);
  }
  .venet-main--chats.venet-main--thread .vc-layout { flex: 1; min-height: 0; }
  .vc-composer { padding-bottom: max(8px, env(safe-area-inset-bottom)); }
}

/* ─── Empty states ─── */
.v-empty { text-align: center; padding: 28px 16px; }
.v-empty__icon { font-size: 1.6rem; margin-bottom: 8px; line-height: 1; display: flex; justify-content: center; color: var(--v-text-muted); }
.v-empty__icon svg { display: block; width: 28px; height: 28px; }
.v-empty__text { font-size: 0.85rem; color: var(--v-text-muted); margin: 0 0 12px; }

/* ── Events page ─────────────────────────────────────────────── */
.evt-tabs { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.evt-tab {
  background: none; border: 1px solid var(--v-border); color: var(--v-text-muted);
  padding: 7px 16px; border-radius: 999px; font-size: 0.82rem; cursor: pointer;
  font-family: inherit; transition: all 0.15s ease;
}
.evt-tab:hover { border-color: var(--v-accent-text); color: var(--v-accent); border: solid 1px var(--v-accent); }
.evt-tab--active { border-color: var(--v-accent-text); color: var(--v-accent); border: solid 1px var(--v-accent); font-weight: 600; }
.evt-filters { display: flex; align-items: center; gap: 8px; margin-bottom: 18px; flex-wrap: wrap; }

.evt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.evt-card {
  background: var(--v-bg-card); border: 1px solid var(--v-border); border-radius: 12px;
  overflow: hidden; cursor: pointer; transition: border-color 0.15s ease, transform 0.15s ease;
}
.evt-card:hover { border-color: var(--v-accent); transform: translateY(-2px); }
.evt-card__cover { height: 110px; background-size: cover; background-position: center; }
.evt-card__cover--ph { background: var(--v-bg-hover); }
.evt-ph--workshop    { background: #1e3a5f; }
.evt-ph--ama         { background: #3b2f63; }
.evt-ph--demo-day    { background: #5f3a1e; }
.evt-ph--meetup      { background: #1e5f46; }
.evt-ph--pitch-night { background: #5f1e3a; }
.evt-ph--social      { background: #4a5f1e; }
.evt-ph--other       { background: #2f2f2f; }
.evt-card__body { padding: 14px 16px 16px; }
.evt-card__meta { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
.evt-card__date { font-size: 0.78rem; color: var(--v-accent); margin: 0 0 4px; font-weight: 600; }
.evt-card__title { font-size: 1rem; color: var(--v-text); margin: 0 0 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.evt-card__host { font-size: 0.8rem; color: var(--v-text-muted); margin: 0 0 6px; }
.evt-card__loc { font-size: 0.78rem; color: var(--v-text-secondary); margin: 0; display: flex; align-items: center; gap: 5px; }
.evt-card__spots { font-size: 0.75rem; color: var(--v-text-muted); margin: 6px 0 0; }

.v-badge--danger { background: rgba(239, 68, 68, 0.12); color: var(--v-danger); border-color: rgba(239, 68, 68, 0.25); }

/* Detail */
.evt-detail { max-width: 720px; }
.evt-detail__cover { height: 200px; border-radius: 12px; background-size: cover; background-position: center; margin-bottom: 18px; }
.evt-detail__actions { display: flex; gap: 10px; flex-wrap: wrap; margin: 16px 0; }
.evt-attendee {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px;
  border: 1px solid var(--v-border); border-radius: 999px; font-size: 0.78rem;
  color: var(--v-text-secondary); margin: 0 6px 6px 0;
}

/* Modal */
.evt-overlay {
  position: fixed; inset: 0; background: rgba(15, 15, 15, 0.36); z-index: 240;
  backdrop-filter: blur(10px);
  animation: vOverlayFade 0.18s ease-out;
}
.evt-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: min(560px, calc(100vw - 32px)); max-height: min(86vh, 720px); overflow-y: auto;
  background: var(--v-bg-pop);
  border: 1px solid rgba(15,15,15,0.08); border-radius: 14px;
  box-shadow: 0 24px 70px rgba(15,15,15,0.18), 0 0 0 1px rgba(255,255,255,0.65) inset;
  padding: 22px; z-index: 250;
  animation: vCenteredDialogLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
}
.evt-modal__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.evt-modal__head h2 { font-size: 1.05rem; margin: 0; color: var(--v-text); }
.evt-modal__close {
  background: none; border: none; color: var(--v-text-muted); font-size: 1.4rem;
  cursor: pointer; line-height: 1; padding: 2px 6px;
}
.evt-modal__close:hover { color: var(--v-text); }

/* Online / in-person segment */
.evt-seg { display: inline-flex; border: 1px solid var(--v-border); border-radius: 8px; overflow: hidden; }
.evt-seg__btn {
  background: none; border: none; color: var(--v-text-muted); padding: 8px 18px;
  font-size: 0.82rem; cursor: pointer; font-family: inherit;
}
.evt-seg__btn--active { background: var(--v-accent); color: var(--v-accent-text); font-weight: 600; }

/* Visibility radios */
.evt-vis { display: flex; flex-direction: column; gap: 8px; }
.evt-vis__opt {
  display: flex; align-items: flex-start; gap: 10px; padding: 10px 12px;
  border: 1px solid var(--v-border); border-radius: 8px; cursor: pointer;
  font-size: 0.82rem; color: var(--v-text-secondary);
}
.evt-vis__opt:hover { border-color: var(--v-accent); }
.evt-vis__opt input { margin-top: 2px; }
.evt-vis__opt strong { color: var(--v-text); }

/* Invite list */
.evt-inv-list { max-height: 280px; overflow-y: auto; border: 1px solid var(--v-border); border-radius: 8px; padding: 6px; }
.evt-inv-row {
  display: flex; align-items: center; gap: 10px; padding: 8px 10px;
  border-radius: 6px; cursor: pointer; font-size: 0.85rem; color: var(--v-text-secondary);
}
.evt-inv-row:hover { background: var(--v-bg-hover); }
.evt-inv-row input { flex-shrink: 0; }

/* ════════════════════════════════════════
   WALLET (/wallet)
   ════════════════════════════════════════ */
/* Portal-native input — light surface, quiet focus ring. */
.v-input {
  width: 100%;
  background: var(--v-input-bg);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-sm);
  padding: 10px 12px;
  color: var(--v-text);
  font-size: 0.9rem;
  font-family: inherit;
  box-sizing: border-box;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.v-input:focus {
  outline: none;
  border-color: var(--v-text-secondary);
  box-shadow: 0 0 0 3px rgba(15,15,15,0.07);
}
.v-input::placeholder { color: var(--v-text-muted); }

.vw-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; align-items: start; }

/* Balance hero — the one dark surface on the page, same black as the
   sidebar: the card you hold, everything else is the desk it sits on. */
.vw-hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 55%),
    var(--v-ink);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--v-radius-lg);
  padding: 26px 26px 24px;
  color: #fff;
}
.vw-hero__wordmark {
  position: absolute; top: 22px; right: 24px;
  font-family: var(--font-heading); font-size: 0.66rem;
  letter-spacing: 0.22em; color: rgba(255,255,255,0.30);
}
.vw-hero__label {
  font-family: var(--font-heading); font-size: 0.62rem;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(255,255,255,0.45); margin: 0 0 10px;
}
.vw-hero__balance {
  font-family: var(--font-heading); font-size: 2.5rem; line-height: 1;
  font-variant-numeric: tabular-nums; letter-spacing: 0.01em;
  margin: 0 0 22px; color: #fff;
}
.vw-hero__topup { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.vw-hero__topup .v-input {
  width: 130px; flex: none;
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.16);
  color: #fff;
}
.vw-hero__topup .v-input::placeholder { color: rgba(255,255,255,0.35); }
.vw-hero__topup .v-input:focus { border-color: rgba(255,255,255,0.45); box-shadow: 0 0 0 3px rgba(255,255,255,0.10); }
.vw-hero .v-btn--primary { background: #fff; border-color: #fff; color: var(--v-ink); }
.vw-hero .v-btn--primary:hover { background: rgba(255,255,255,0.86); border-color: rgba(255,255,255,0.86); }
.vw-hero__note { font-size: 0.72rem; color: rgba(255,255,255,0.40); margin: 14px 0 0; }

/* Withdraw + transactions live on standard light cards */
.vw-panel {
  background: var(--v-bg-card);
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-lg);
  box-shadow: var(--v-shadow-card);
  padding: 24px;
}
.vw-field { margin-bottom: 12px; }
.vw-field__label {
  display: block; font-size: 0.75rem; font-weight: 600;
  color: var(--v-text-secondary); margin: 0 0 5px;
}
.vw-amount-row { display: flex; gap: 10px; align-items: center; }
.vw-amount-row .v-input { width: 140px; flex: none; }
.vw-all-link { font-size: 0.75rem; color: var(--v-text-secondary); text-decoration: underline; text-underline-offset: 2px; }
.vw-all-link:hover { color: var(--v-text); }
.vw-method-fields { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }
.vw-save-row {
  display: flex; align-items: center; gap: 8px;
  font-size: 0.78rem; color: var(--v-text-secondary);
  margin: 12px 0 0; cursor: pointer;
}
.vw-save-row input { width: 14px; height: 14px; accent-color: var(--v-accent); }
.vw-fineprint { font-size: 0.72rem; color: var(--v-text-muted); margin: 12px 0 0; line-height: 1.6; }
.vw-msg { font-size: 0.78rem; margin: 10px 0 0; min-height: 1em; }

/* Transaction ledger */
.vw-txn {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--v-border-subtle);
}
.vw-txn:last-child { border-bottom: none; }
.vw-txn__icon {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}
.vw-txn__icon--in  { background: var(--v-success-bg); color: var(--v-success); }
.vw-txn__icon--out { background: var(--v-bg-hover); color: var(--v-text-secondary); }
.vw-txn__main { flex: 1; min-width: 0; }
.vw-txn__kind { font-size: 0.85rem; font-weight: 600; color: var(--v-text); margin: 0; }
.vw-txn__detail {
  font-size: 0.75rem; color: var(--v-text-muted); margin: 1px 0 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.vw-txn__side { text-align: right; flex-shrink: 0; }
.vw-txn__amount {
  font-size: 0.9rem; font-weight: 700; color: var(--v-text);
  font-variant-numeric: tabular-nums; margin: 0;
}
.vw-txn__amount--in { color: var(--v-success); }
.vw-txn__date { font-size: 0.7rem; color: var(--v-text-muted); margin: 1px 0 0; }
.vw-empty { font-size: 0.82rem; color: var(--v-text-secondary); margin: 0; }

@media (max-width: 860px) {
  .vw-grid { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  .vw-hero { padding: 22px 18px 20px; }
  .vw-hero__balance { font-size: 2.1rem; }
  .vw-panel { padding: 18px 16px; }
  .vw-hero__topup .v-input, .vw-amount-row .v-input { width: 120px; }
}

/* ── Plan badges ── */
.v-plan-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:0.66rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;vertical-align:middle;margin-left:6px}
.v-plan-badge--pro{background:rgba(99,102,241,0.16);color:#8b8ef7;border:1px solid rgba(99,102,241,0.4)}
.v-plan-badge--founding{background:rgba(234,179,8,0.14);color:#eab308;border:1px solid rgba(234,179,8,0.4)}

/* ── Upgrade page ──
   The markup keeps the .glass class from the landing system, but glass is
   transparent-on-dark and vanishes on the light portal background — the
   rules below give each plan a real surface. Pro is the one dark card on
   the page (money lives on dark, same as the wallet balance card). */
.v-upgrade{max-width:960px;margin:0 auto;padding:48px 20px 80px}
.v-upgrade__head{text-align:center;margin-bottom:32px}
.v-upgrade__title{font-family:var(--font-heading);font-size:1.7rem;letter-spacing:0.01em;color:var(--v-text);margin:0 0 8px}
.v-upgrade__sub{color:var(--v-text-secondary);margin:0 0 10px}
.v-upgrade__founding-count{color:#b45309;font-size:0.85rem;font-weight:600;margin:0}
.v-upgrade__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:18px;align-items:stretch}
.v-price-card{
  padding:24px 22px;display:flex;flex-direction:column;gap:12px;
  background:var(--v-bg-card);border:1px solid var(--v-border);
  border-radius:var(--v-radius-lg);box-shadow:var(--v-shadow-card);
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.v-price-card::before{display:none}
.v-price-card--founding{border-color:rgba(180,83,9,0.35);background:#fffbeb}
.v-price-card__name{font-family:var(--font-heading);font-size:0.72rem;letter-spacing:0.14em;text-transform:uppercase;font-weight:700;color:var(--v-text-secondary);margin:0}
.v-price-card__price{font-size:2rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--v-text);margin:0}
.v-price-card__price span{font-size:0.85rem;font-weight:500;color:var(--v-text-muted)}
.v-price-card__toggle{display:flex;gap:6px}
.v-price-card__list{list-style:none;padding:0;margin:0;font-size:0.84rem;color:var(--v-text-secondary);display:flex;flex-direction:column;gap:7px;flex:1}
.v-price-card__list li{padding-left:20px;position:relative}
.v-price-card__list li::before{content:"";position:absolute;left:2px;top:0.52em;width:9px;height:5px;border-left:2px solid var(--v-success);border-bottom:2px solid var(--v-success);transform:rotate(-45deg)}
/* Featured (Pro) — dark card, inverted controls */
.v-price-card--featured{
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 55%),
    var(--v-ink);
  border-color:rgba(255,255,255,0.10);
  box-shadow:0 12px 32px -16px rgba(0,0,0,0.45);
}
.v-price-card--featured .v-price-card__name{color:rgba(255,255,255,0.55)}
.v-price-card--featured .v-price-card__price{color:#fff}
.v-price-card--featured .v-price-card__price span{color:rgba(255,255,255,0.45)}
.v-price-card--featured .v-price-card__list{color:rgba(255,255,255,0.72)}
.v-price-card--featured .v-price-card__list li::before{border-color:rgba(255,255,255,0.85)}
.v-price-card--featured .v-btn--primary{background:#fff;border-color:#fff;color:var(--v-ink)}
.v-price-card--featured .v-btn--primary:hover{background:rgba(255,255,255,0.86);border-color:rgba(255,255,255,0.86)}
.v-price-card--featured .v-pill{background:transparent;border-color:rgba(255,255,255,0.22);color:rgba(255,255,255,0.60)}
.v-price-card--featured .v-pill:hover{border-color:rgba(255,255,255,0.45);color:#fff}
.v-price-card--featured .v-pill.is-active{background:#fff;border-color:#fff;color:var(--v-ink)}
.v-upgrade .form-msg{color:var(--v-text-secondary);text-align:center}
.v-upgrade__promo{max-width:280px;margin:0 auto 18px}
.v-upgrade__promo .v-input{text-align:center}
.v-upgrade__manage{text-align:center;color:var(--v-text-secondary)}
.v-upgrade__manage strong{color:var(--v-text)}
.v-upgrade__back{text-align:center;margin-top:22px}
.v-upgrade__back a{color:var(--v-text-muted)}

/* ── Settings billing panel ── */
.v-bill__line{font-size:0.85rem;color:var(--v-text-secondary);margin:2px 0}
.v-bill__pay{display:flex;justify-content:space-between;gap:10px;font-size:0.8rem;padding:6px 0;border-top:1px solid var(--v-border)}
.v-bill__paystatus{color:var(--v-text-muted);text-transform:capitalize}

/* ── Plan toggle pills (upgrade page: weekly / monthly / annual) ── */
.v-pill {
  padding: 6px 14px;
  border-radius: 999px;
  border: 1px solid var(--v-border);
  background: #fff;
  color: var(--v-text-secondary);
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.v-pill:hover { border-color: var(--v-text-muted); color: var(--v-text); }
.v-pill.is-active {
  background: var(--v-accent);
  color: var(--v-accent-text);
  border-color: var(--v-accent);
}

/* ─── Deal card inside chat thread ─── */
.vc-deal-card {
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  background: var(--v-bg-card);
  padding: 12px 14px;
  margin: 4px 0;
  max-width: 320px;
}
.vc-deal-card__header {
  display: flex;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}
.vc-deal-card__title { font-weight: 600; font-size: 0.875rem; color: var(--v-text); }
.vc-deal-card__time  { font-size: 0.7rem; color: var(--v-text-muted); }
.vc-deal-card__sub   { font-size: 0.8rem; color: var(--v-text-secondary); margin: 0 0 10px; }
.vc-deal-card__open  { font-size: 0.8rem !important; padding: 6px 14px !important; }

/* ─── Help & Support tickets ─── */
.vh-ticket {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  border: 1px solid var(--v-border); border-radius: var(--v-radius-md);
  background: var(--v-bg-card); padding: 12px 14px; margin-bottom: 10px;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.vh-ticket:hover { border-color: var(--v-text-muted); box-shadow: var(--v-shadow-sm); }
.vh-ticket__main { min-width: 0; flex: 1; }
.vh-ticket__subject { font-size: 0.875rem; font-weight: 600; color: var(--v-text); margin: 0 0 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vh-ticket__sub { font-size: 0.75rem; color: var(--v-text-muted); margin: 0; }
.vh-ticket__side { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.vh-ticket__new {
  font-size: 0.66rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase;
  color: var(--v-success); background: var(--v-success-bg);
  border-radius: 999px; padding: 3px 9px; white-space: nowrap;
}
.vh-ticket__chevron { color: var(--v-text-muted); flex-shrink: 0; display: flex; }
.vh-status { font-size: 0.68rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.vh-status--open { color: var(--v-warning); }
.vh-status--answered { color: var(--v-success); }
.vh-status--closed { color: var(--v-text-muted); }
.vh-thread-msgs { display: flex; flex-direction: column; gap: 4px; max-height: 420px; overflow-y: auto; margin-bottom: 14px; padding: 4px 0; }

/* ── Help: FAQ accordion ── */
.vh-faq details { border-bottom: 1px solid var(--v-border-subtle); }
.vh-faq details:last-child { border-bottom: none; }
.vh-faq summary {
  cursor: pointer; font-size: 0.86rem; font-weight: 600; color: var(--v-text);
  padding: 12px 28px 12px 0; position: relative; list-style: none;
  transition: color 0.15s;
}
.vh-faq summary:hover { color: var(--v-text-secondary); }
.vh-faq summary::-webkit-details-marker { display: none; }
.vh-faq summary::after {
  content: ""; position: absolute; right: 8px; top: 50%;
  width: 7px; height: 7px;
  border-right: 1.5px solid var(--v-text-muted); border-bottom: 1.5px solid var(--v-text-muted);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.15s;
}
.vh-faq details[open] summary::after { transform: translateY(-30%) rotate(225deg); }
.vh-faq details > p { font-size: 0.82rem; color: var(--v-text-secondary); margin: 0 0 12px; line-height: 1.65; }
.vh-faq details > p a { color: var(--v-text); text-decoration: underline; text-underline-offset: 2px; }

/* ── Help: Jace promo banner (dark, matches the wallet hero) ── */
.vh-promo {
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(255,255,255,0.10) 0%, rgba(255,255,255,0) 55%),
    var(--v-ink);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: var(--v-radius-lg);
  padding: 24px 26px;
  margin: 20px;
  color: #fff;
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
}
.vh-promo__eyebrow {
  font-family: var(--font-heading); font-size: 0.62rem; letter-spacing: 0.16em;
  text-transform: uppercase; color: rgba(255,255,255,0.40); margin: 0 0 6px;
}
.vh-promo__title { font-family: var(--font-heading); font-size: 1rem; letter-spacing: 0.04em; color: #fff; margin: 0 0 4px; }
.vh-promo__sub { font-size: 0.875rem; color: rgba(255,255,255,0.65); max-width: 440px; margin: 0; }
.vh-promo__btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 20px; border-radius: var(--v-radius-sm);
  background: #fff; color: var(--v-ink);
  font-family: var(--font-heading); font-size: 0.75rem;
  letter-spacing: 0.08em; text-transform: uppercase;
  text-decoration: none; white-space: nowrap;
  transition: background 0.15s;
}
.vh-promo__btn:hover { background: rgba(255,255,255,0.86); }
@media (max-width: 639px) {
  .vh-promo { padding: 20px 18px; margin: 8px; }
}

/* ── VN_UI busy states (400ms-delayed loaders) ── */
.v-busy {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}
.v-busy::after {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  width: 14px; height: 14px;
  margin: -8px 0 0 -8px;
  border: 2px solid var(--v-border);
  border-top-color: var(--v-text);
  border-radius: 50%;
  animation: v-spin 0.7s linear infinite;
}
.v-section-spinner {
  display: flex;
  justify-content: center;
  padding: 28px 0;
}
.v-section-spinner::after {
  content: '';
  width: 22px; height: 22px;
  border: 2.5px solid var(--v-border);
  border-top-color: var(--v-text);
  border-radius: 50%;
  animation: v-spin 0.7s linear infinite;
}
@keyframes v-spin { to { transform: rotate(360deg); } }

/* ── Card system: aligned action rows + icon actions ── */
.disc-startup-card { display: flex; flex-direction: column; }
.v-card-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;      /* bottom-anchor so rows align across the grid */
  padding-top: 10px;
}
.v-card-actions .v-connect-actions { flex: 1; min-width: 0; margin-top: 0; }
.v-card-actions .v-connect-actions .v-connect-btn { flex: 1; width: auto; }
.v-card-actions > .v-connect-btn { flex: 1; width: auto; min-width: 0; }
.v-card-actions > .v-btn { flex: 1; min-width: 0; }
.v-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px; height: 32px;
  flex-shrink: 0;
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-sm);
  background: transparent;
  color: var(--v-text-muted);
  cursor: pointer;
  padding: 0;
  transition: color 0.15s, background 0.15s, border-color 0.15s;
}
.v-icon-btn:hover { color: var(--v-text); background: var(--v-bg-hover); }
.v-clamp-2, .v-clamp-3 {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.v-clamp-2 { -webkit-line-clamp: 2; }
.v-clamp-3 { -webkit-line-clamp: 3; }
.v-member-bio {
  font-size: 0.8rem;
  color: var(--v-text-secondary);
  line-height: 1.45;
  margin: 0;
}
.v-card-joined {
  font-size: 0.72rem;
  color: var(--v-text-muted);
  margin: 0;
}

/* Grid floors: single column on narrow phones, without overstretching */
@media (max-width: 479px) {
  .v-members-grid, .evt-grid { grid-template-columns: 1fr; }
  .v-members-grid > *, .evt-grid > * { max-width: 480px; width: 100%; margin: 0 auto; box-sizing: border-box; }
}
@media (max-width: 639px) {
  .v-icon-btn { width: 40px; height: 40px; }   /* touch targets */
  .v-connect-btn { min-height: 40px; }
  .v-member-card__btn { min-height: 40px; }
}

/* ── Phone bottom sheets: overlays become sheets under 640px ── */
@media (max-width: 639px) {
  /* Centered dialogs → bottom sheets */
  .vn-modal-box,
  .evt-modal {
    top: auto; left: 0; right: 0; bottom: 0;
    transform: none;
    width: 100%; max-width: none;
    max-height: 92dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px 16px 0 0;
    border-left: none; border-right: none; border-bottom: none;
    padding-bottom: calc(20px + env(safe-area-inset-bottom));
    box-sizing: border-box;
    animation: vSheetLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
  }
  /* Role modal centers via its flex overlay — pin to the bottom instead */
  .v-role-modal-overlay { align-items: flex-end; }
  .v-role-modal-box {
    max-width: none; margin: 0;
    max-height: 92dvh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px 16px 0 0;
    padding-bottom: calc(24px + env(safe-area-inset-bottom));
    animation: vSheetLift 0.22s cubic-bezier(0.2,0.8,0.2,1);
  }
  /* Notifications panel → bottom sheet */
  .vn-panel {
    top: auto; left: 0; right: 0; bottom: 0;
    width: 100%;
    max-height: 80dvh;
    display: flex; flex-direction: column;
    border-radius: 16px 16px 0 0;
    border-left: none; border-right: none; border-bottom: none;
  }
  .vn-panel__list {
    max-height: none; flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: env(safe-area-inset-bottom);
  }
  .vn-panel-overlay { background: rgba(0,0,0,0.42); }
  /* Meeting modal (already a sheet) — dvh so browser chrome can't clip it */
  .vm-modal { max-height: 92dvh; }
  /* Profile / business slide panel: sheet ergonomics */
  .biz-panel { width: 100%; }
  .biz-panel__topbar { padding: 10px 12px; }
  .biz-panel__close { min-width: 44px; min-height: 44px; justify-content: center; }
  .biz-panel__panel-actions { flex-wrap: wrap; justify-content: flex-end; row-gap: 6px; }
  .biz-panel__body { padding: 18px 16px calc(18px + env(safe-area-inset-bottom)); }
  .biz-panel__panel-actions .v-icon-btn { width: 40px; height: 40px; }
}

/* ── Card consistency sweep: remaining grids, rows, clamps ── */
.dash-funding-item__pitch,
.evt-card__host,
.disc-startup-card__founder {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}
@media (max-width: 479px) {
  .vdr-template-grid { grid-template-columns: 1fr; }
  .v-grid--auto { grid-template-columns: 1fr; }
}
@media (max-width: 639px) {
  /* Row lists (deals, dashboard items): keep tap targets comfortable and
     let long titles wrap instead of pushing buttons out */
  .vdl-row { flex-wrap: wrap; row-gap: 6px; }
  .vdl-row .v-btn { min-height: 40px; }
  .evt-detail__actions .v-btn { min-height: 40px; }
}

/* ── Community feed ──
   The composer card uses its own vcf- prefix: .vc-composer belongs to the
   chat thread (flex row, border-top) and inheriting it squashed the whole
   card into one line. */
.vcf-composer { margin-bottom: 16px; }
.vcf-composer__types { display: flex; gap: 8px; margin-bottom: 12px; }
/* Ask / Share a win — segmented control; the active state borrows the same
   amber/green coding the feed's ASK and WIN tags use, so the choice you make
   here looks like the post it becomes. */
.vc-type {
  flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  background: none; border: 1px solid var(--v-border-subtle); color: var(--v-text-muted);
  border-radius: 10px; padding: 10px 12px; min-height: 42px;
  font-size: 0.8rem; font-weight: 600; cursor: pointer; font-family: inherit;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
.vc-type svg { flex-shrink: 0; }
.vc-type:hover { color: var(--v-text); border-color: var(--v-text-muted); }
.vc-type--on[data-vc-type="ask"] { color: #b45309; border-color: #f3ddc0; background: #fdf7ee; }
.vc-type--on[data-vc-type="win"] { color: #15803d; border-color: #c3e6cf; background: #f1faf4; }
.vc-filter {
  background: none; border: 1px solid var(--v-border-subtle); color: var(--v-text-muted);
  border-radius: 999px; padding: 5px 14px; font-size: 0.75rem; font-weight: 600;
  cursor: pointer; font-family: inherit;
}
.vc-filter--on { background: var(--v-text); color: var(--v-bg); border-color: var(--v-text); }
.vcf-composer__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 10px; }
.vcf-composer__media { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 10px; }
.vcf-composer__media input[type="file"] { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.vcf-composer__upload { display: inline-flex; align-items: center; gap: 5px; min-height: 34px; padding: 6px 11px; border: 1px solid var(--v-border-subtle); border-radius: 8px; color: var(--v-text-secondary); font-size: 0.75rem; font-weight: 650; cursor: pointer; transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease; }
.vcf-composer__upload:hover { color: var(--v-text); border-color: var(--v-text-muted); background: var(--v-bg-hover); }
.vcf-composer__upload span { font-size: 1rem; line-height: 1; }
.vcf-composer__hint { color: var(--v-text-muted); font-size: 0.7rem; }
.vcf-composer__remove { border: 0; background: none; color: var(--v-text-muted); font: inherit; font-size: 0.7rem; cursor: pointer; padding: 5px; }
.vcf-composer__remove:hover { color: var(--v-text); text-decoration: underline; }
.vcf-composer__preview { display: none; width: 72px; height: 52px; border: 1px solid var(--v-border-subtle); border-radius: 8px; object-fit: cover; }
.vcf-composer__preview.is-visible { display: block; }
.vc-filters { display: flex; gap: 8px; margin-bottom: 14px; flex-wrap: wrap; }
.vc-post { margin-bottom: 12px; }
.vc-post__head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.vc-post__avatar {
  width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0;
  background: var(--v-border-subtle); color: var(--v-text);
  display: flex; align-items: center; justify-content: center;
  font-size: 0.75rem; font-weight: 700;
}
.vc-post__meta { flex: 1; min-width: 0; }
.vc-post__author { margin: 0; font-size: 0.83rem; font-weight: 600; }
.vc-post__company { color: var(--v-text-muted); font-weight: 400; }
.vc-post__time { margin: 0; font-size: 0.7rem; color: var(--v-text-muted); }
.vc-tag {
  font-size: 0.65rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  border: 1px solid var(--v-border-subtle); border-radius: 4px; padding: 2px 7px;
  color: var(--v-text-muted); flex-shrink: 0;
}
.vc-tag--ask { color: #b45309; border-color: #f3ddc0; background: #fdf7ee; }
.vc-tag--win { color: #15803d; border-color: #c3e6cf; background: #f1faf4; }
.vc-post__text { margin: 0 0 10px; font-size: 0.87rem; line-height: 1.55; white-space: pre-wrap; word-break: break-word; }
.vc-post__media { display: block; max-width: 100%; max-height: 360px; margin: 10px 0 14px; border-radius: 10px; object-fit: cover; border: 1px solid var(--v-border); }
.vc-post__actions { display: flex; gap: 14px; align-items: center; }
.vc-act {
  background: none; border: none; color: var(--v-text-muted); font-size: 0.75rem;
  cursor: pointer; padding: 2px 0; font-family: inherit;
  display: inline-flex; align-items: center; gap: 5px;
}
.vc-act svg { width: 14px; height: 14px; flex-shrink: 0; }
.vc-act--on { color: var(--v-text); font-weight: 600; }
.vc-act--del { margin-left: auto; }
.vc-act:hover { color: var(--v-text); }

/* Daily post nudge banner */
.vc-prompt {
  display: flex; align-items: center; gap: 10px;
  width: 100%;
  border: 1px solid var(--v-accent);
  border-radius: var(--v-radius-md);
  background: color-mix(in srgb, var(--v-accent) 8%, transparent);
  color: var(--v-text);
  font-size: 0.82rem; font-weight: 500;
  padding: 10px 14px;
  margin-bottom: 12px;
  cursor: pointer;
  text-align: left;
}
.vc-prompt__flame { display: inline-flex; color: var(--v-warning); flex-shrink: 0; }
.vc-prompt__flame svg { width: 16px; height: 16px; }

/* Share fallback row (X / LinkedIn / copy) */
.vc-share-menu { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.vc-share-menu__item {
  border: 1px solid var(--v-border);
  border-radius: 999px;
  background: transparent;
  color: var(--v-text-secondary);
  font-size: 0.75rem; font-weight: 600;
  padding: 5px 12px;
  cursor: pointer;
  text-decoration: none;
}
.vc-share-menu__item:hover { border-color: var(--v-accent); color: var(--v-accent); }

/* ─── Venet stats (Settings card + public /u/ page strip) ─── */
.stg-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.stg-stat {
  flex: 1 1 90px;
  min-width: 90px;
  border: 1px solid var(--v-border);
  border-radius: var(--v-radius-md);
  padding: 10px 12px;
  text-align: center;
}
.stg-stat__num { font-size: 1.15rem; font-weight: 700; color: var(--v-text); margin: 0 0 2px; display: flex; align-items: center; min-height: 1.4em; }
.stg-stat__num svg { display: block; color: var(--v-text); }
.stg-stat__label { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--v-text-muted); margin: 0; }
.stg-stat--raise .stg-stat__label { text-transform: none; letter-spacing: 0; font-size: 0.75rem; }

.pub-stats {
  display: flex; gap: 10px; flex-wrap: wrap; justify-content: center;
  max-width: 480px; margin: 18px auto 0;
}
.pub-stat {
  border: 1px solid var(--border, var(--v-border));
  border-radius: 12px;
  padding: 10px 16px;
  min-width: 88px;
}
.pub-stat__num { font-size: 1.2rem; font-weight: 700; margin: 0 0 2px; display: flex; align-items: center; justify-content: center; min-height: 1.4em; }
.pub-stat__num svg { display: block; color: var(--v-text); }
.pub-stat__label { font-size: 0.68rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-secondary, var(--v-text-muted)); margin: 0; }
.vc-replies { margin-top: 10px; border-top: 1px solid var(--v-border-subtle); padding-top: 10px; }
.vc-reply { padding: 7px 0; }
.vc-reply__head { display: flex; align-items: baseline; gap: 8px; }
.vc-reply__author { margin: 0; font-size: 0.76rem; font-weight: 600; }
.vc-reply__time { font-size: 0.66rem; color: var(--v-text-muted); }
.vc-reply__del { margin-left: auto; background: none; border: none; color: var(--v-text-muted); font-size: 0.66rem; cursor: pointer; font-family: inherit; }
.vc-reply__text { margin: 2px 0 0; font-size: 0.8rem; line-height: 1.5; white-space: pre-wrap; word-break: break-word; }
.vc-reply-box { display: flex; gap: 8px; margin-top: 8px; }
.vc-reply-box .form-input { flex: 1; }
.vc-post__author-link { color: inherit; text-decoration: none; }
.vc-post__author-link:hover { text-decoration: underline; }
.vc-more { text-align: center; padding: 6px 0 24px; }

/* Reading column — the feed reads best as a centered column, like any feed. */
#view-community .venet-page-header,
#view-community .vcf-composer,
#view-community .vc-filters,
#view-community #vcFeed,
#view-community .vc-more {
  max-width: 660px;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}

/* Reaction chips */
.vc-react {
  display: inline-flex; align-items: center; gap: 5px;
  background: none; border: 1px solid var(--v-border-subtle);
  border-radius: 999px; padding: 3px 10px;
  color: var(--v-text-muted); font-size: 0.72rem; font-family: inherit;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease, transform 0.1s ease;
}
.vc-react:hover { color: var(--v-text); border-color: var(--v-text-muted); }
.vc-react:active { transform: scale(0.94); }
.vc-react--on {
  color: var(--v-text);
  border-color: var(--v-text);
  background: rgba(15, 15, 15, 0.05);
}
.vc-react__emoji { display: inline-flex; line-height: 1; align-items: center; }
.vc-react__emoji svg { width: 14px; height: 14px; display: block; }
.vc-post__actions { flex-wrap: wrap; row-gap: 8px; }

/* Motion — one entrance, one pop; everything else stays quiet. */
@keyframes vcFadeUp {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
@keyframes vcPop {
  0%   { transform: scale(1); }
  45%  { transform: scale(1.3) rotate(-4deg); }
  100% { transform: scale(1); }
}
.vc-post--in { animation: vcFadeUp 0.35s ease both; }
.vc-react--pop .vc-react__emoji { animation: vcPop 0.32s ease; }
.vc-replies { animation: vcFadeUp 0.22s ease; }
#vcFeed .v-empty { animation: vcFadeUp 0.4s ease both; }

.vc-post { transition: border-color 0.18s ease, box-shadow 0.18s ease; }
.vc-post:hover { box-shadow: 0 4px 14px rgba(15, 23, 42, 0.08); }
.vc-post--sk { pointer-events: none; }

.vcf-composer { transition: border-color 0.18s ease; }
.vcf-composer:focus-within { border-color: var(--v-text-muted); }
.vcf-composer textarea.form-input { resize: vertical; }

/* Community on phones: comfortable taps, no iOS zoom, Post easy to reach */
@media (max-width: 639px) {
  #vcText { font-size: 16px; }
  .vc-type { min-height: 44px; }
  .vc-filter { min-height: 36px; }
  .vcf-composer__row { flex-wrap: wrap; }
  #vcPost { flex: 1 0 100%; min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  .vc-post--in, .vc-replies, #vcFeed .v-empty { animation: none; }
  .vc-react--pop .vc-react__emoji { animation: none; }
  .vc-post, .vc-react, .vcf-composer, .vc-type { transition: none; }
}

/* ── Chat read indicator ── */
.vc-seen {
  font-size: 0.66rem;
  color: var(--v-text-muted);
  text-align: right;
  padding: 2px 6px 6px;
  letter-spacing: 0.04em;
}
.vc-seen--seen { color: var(--v-success); }

/* ── Dashboard pro-tip card ── */
.dash-tip__head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.dash-tip__label { font-size: 0.62rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--v-text-muted); }
.dash-tip__actions { display: flex; gap: 6px; }
.dash-tip__btn { background: none; border: 1px solid var(--v-border); border-radius: 6px; color: var(--v-text-secondary); font-size: 0.68rem; padding: 2px 8px; cursor: pointer; }
.dash-tip__btn:hover { color: var(--v-text); }
.dash-tip__text { font-size: 0.85rem; line-height: 1.55; color: var(--v-text-secondary); margin: 0; }
.dash-tip__text code { font-size: 0.78rem; background: var(--v-border-subtle); border: 1px solid var(--v-border); border-radius: 4px; padding: 1px 5px; }

/* ── "New on Venet" card ── */
.dash-new { border-color: var(--v-text-muted); }
.dash-new__title { font-size: 1rem; color: var(--v-text); margin: 2px 0 6px; }
.dash-new__excerpt { font-size: 0.83rem; color: var(--v-text-secondary); margin: 0 0 12px; line-height: 1.5; }

/* ── Motion layer — subtle, fast, reduced-motion-safe ── */
@media (prefers-reduced-motion: no-preference) {
  @keyframes vPop {
    0%   { transform: scale(0.4); }
    70%  { transform: scale(1.18); }
    100% { transform: scale(1); }
  }

  /* Entrance animations (view fade, staggered lists) were removed — they
     replayed on every navigation and every live-data re-render, which read
     as flicker. Only non-replaying micro-feedback below. */

  /* Micro-feedback on interactive elements */
  .v-btn { transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease; }
  .v-btn:active { transform: scale(0.97); }
  .vc-channel-item { transition: background-color 0.15s ease, transform 0.15s ease; }
  .vc-channel-item:hover { transform: translateX(2px); }

  /* Unread indicators pop in */
  .vc-unread-dot, .vc-unread-badge { animation: vPop 0.25s ease; }
}

/* ================================================================
   PUBLIC MEMBER PROFILE (/u/:slug)
   A focused, dark reading surface for shareable founder profiles.
   ================================================================ */
body.venet-public-page {
  background: #0a0a0a;
  color: #f7f7f5;
}

#view-public-member .apply-wrap { padding: 24px 0 64px; }
#view-public-member .container { padding: 0 24px; }

.pub-member {
  --pm-surface: rgba(255,255,255,0.045);
  --pm-surface-strong: rgba(255,255,255,0.075);
  --pm-border: rgba(255,255,255,0.12);
  --pm-border-soft: rgba(255,255,255,0.075);
  --pm-muted: rgba(255,255,255,0.54);
  --pm-dim: rgba(255,255,255,0.36);
  max-width: 1080px;
  margin: 0 auto;
  overflow-wrap: anywhere;
}
.pub-member__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 44px;
  margin-bottom: 36px;
}
.pub-member__brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: rgba(255,255,255,0.88);
  font: 700 0.78rem/1 var(--font-heading);
  letter-spacing: 0.18em;
}
.pub-member__brand:hover { color: #fff; }
.pub-member__brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 7px;
  color: #fff;
  font-size: 0.72rem;
  letter-spacing: 0;
}
.pub-member__topbar-label {
  color: var(--pm-dim);
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.pub-member__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: start;
  gap: 22px;
}
.pub-member__main { min-width: 0; }
.pub-member__hero,
.pub-member__section,
.pub-member__stats {
  border: 1px solid var(--pm-border-soft);
  border-radius: 18px;
  background: var(--pm-surface);
  box-shadow: 0 18px 50px rgba(0,0,0,0.16);
}
.pub-member__hero {
  position: relative;
  padding: 34px;
  background:
    radial-gradient(circle at 88% 0%, rgba(255,255,255,0.11), transparent 36%),
    linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.025) 62%);
  border-color: var(--pm-border);
}
.pub-member__hero-row { display: flex; align-items: center; gap: 22px; }
.pub-member__avatar {
  position: relative;
  overflow: hidden;
  width: 104px;
  height: 104px;
  flex: 0 0 104px;
  border-radius: 50%;
  background-color: #252525;
  background-position: center;
  background-size: cover;
  border: 1px solid rgba(255,255,255,0.24);
  box-shadow: 0 0 0 7px rgba(255,255,255,0.035), 0 14px 30px rgba(0,0,0,0.22);
}
.pub-member__avatar img { width: 100%; height: 100%; display: block; object-fit: cover; opacity: 0; transition: opacity 0.35s ease; }
.pub-member__avatar--loaded img { opacity: 1; }
.pub-member__photo-loader {
  position: absolute;
  inset: 18%;
  z-index: 1;
  border: 2px solid rgba(255,255,255,0.12);
  border-top-color: #9af3c4;
  border-radius: 50%;
  animation: pubMemberPhotoSpin 0.85s linear infinite;
}
.pub-member__avatar--loaded .pub-member__photo-loader { opacity: 0; transition: opacity 0.2s ease; }
.pub-member__avatar--error { display: flex; align-items: center; justify-content: center; background: #202020; }
.pub-member__avatar-fallback { color: rgba(255,255,255,0.82); font: 700 2.2rem/1 var(--font-heading); }
@keyframes pubMemberPhotoSpin { to { transform: rotate(360deg); } }
.pub-member__avatar--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #202020;
  color: rgba(255,255,255,0.82);
  font: 700 2.2rem/1 var(--font-heading);
}
.pub-member__identity { min-width: 0; }
.pub-member__kicker {
  margin: 0 0 10px;
  color: var(--pm-muted);
  font: 0.68rem/1.4 var(--font-heading);
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.pub-member__identity h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(1.7rem, 4vw, 2.5rem);
  letter-spacing: -0.04em;
  line-height: 1.1;
}
.pub-member__meta {
  margin: 11px 0 0;
  color: rgba(255,255,255,0.65);
  font-size: 0.96rem;
  line-height: 1.5;
}
.pub-member__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 27px; }
.pub-member__badge {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 5px 11px;
  border: 1px solid rgba(107,255,184,0.28);
  border-radius: 999px;
  background: rgba(107,255,184,0.08);
  color: #9af3c4;
  font: 0.68rem/1 var(--font-heading);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.pub-member__badge--muted {
  border-color: var(--pm-border-soft);
  background: rgba(255,255,255,0.045);
  color: var(--pm-muted);
  text-transform: none;
  letter-spacing: 0.01em;
  font-family: var(--font-body);
  font-size: 0.75rem;
}
.pub-member__section,
.pub-member__stats { margin-top: 14px; padding: 25px 27px; }
.pub-member__eyebrow {
  margin: 0 0 11px;
  color: var(--pm-dim);
  font: 700 0.65rem/1.3 var(--font-heading);
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.pub-member__bio,
.pub-member__field-value {
  margin: 0;
  color: rgba(255,255,255,0.74);
  font-size: 0.96rem;
  line-height: 1.75;
}
.pub-member__stats {
  display: grid;
  grid-template-columns: 145px minmax(0, 1fr);
  gap: 20px;
  align-items: center;
  background: rgba(255,255,255,0.03);
}
.pub-member__stats-note { margin: -3px 0 0; color: var(--pm-dim); font-size: 0.75rem; line-height: 1.45; }
.pub-member__stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(92px, 1fr)); gap: 8px; }
.pub-stat {
  min-height: 78px;
  padding: 13px 12px;
  border: 1px solid var(--pm-border-soft);
  border-radius: 11px;
  background: rgba(0,0,0,0.16);
}
.pub-stat__num {
  min-height: 26px;
  margin: 0;
  color: #fff;
  font: 700 1.12rem/1.2 var(--font-heading);
}
.pub-stat__num svg { display: block; color: #9af3c4; }
.pub-stat__label { margin: 7px 0 0; color: var(--pm-dim); font-size: 0.67rem; line-height: 1.3; }
.pub-member__company { display: flex; align-items: center; gap: 15px; }
.pub-member__company-icon,
.pub-member__section-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border: 1px solid var(--pm-border);
  border-radius: 10px;
  background: rgba(255,255,255,0.06);
  color: #fff;
  font: 1.15rem/1 var(--font-body);
}
.pub-member__company .pub-member__eyebrow { margin-bottom: 5px; }
.pub-member__company-name { margin: 0 0 4px; color: #fff; font-size: 1.04rem; font-weight: 600; }
.pub-member__inline-link { color: #a9c8ff; font-size: 0.78rem; }
.pub-member__inline-link:hover { color: #fff; }
.pub-member__tags { display: flex; flex-wrap: wrap; gap: 8px; }
.pub-member__tag {
  padding: 7px 11px;
  border: 1px solid var(--pm-border-soft);
  border-radius: 999px;
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.7);
  font-size: 0.75rem;
}
.pub-member__section--connect { background: rgba(107,255,184,0.045); border-color: rgba(107,255,184,0.18); }
.pub-member__section-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.pub-member__section-heading .pub-member__eyebrow { margin: 3px 0 5px; color: rgba(154,243,196,0.84); }
.pub-member__section-heading .pub-member__section-icon { flex-basis: 32px; width: 32px; height: 32px; border-color: rgba(107,255,184,0.25); color: #9af3c4; font-size: 1rem; }
.pub-member__section-intro { margin: 0; color: var(--pm-dim); font-size: 0.78rem; }
.pub-member__connect-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.pub-member__field-label { margin: 0 0 6px; color: var(--pm-dim); font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; }
.pub-member__connect-grid .pub-member__field-value { color: rgba(255,255,255,0.82); font-size: 0.9rem; line-height: 1.6; }
.pub-member__custom-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 26px; }
.pub-member__custom-item .pub-member__field-value { font-size: 0.88rem; }
.pub-member__aside { position: sticky; top: 24px; }
.pub-member__cta {
  padding: 27px 25px;
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 18px;
  background: #f5f6f3;
  color: #111;
  box-shadow: 0 22px 55px rgba(0,0,0,0.28);
}
.pub-member__cta .pub-member__eyebrow { color: #777d79; }
.pub-member__cta h2 { margin: 0 0 10px; color: #111; font-size: 1.23rem; line-height: 1.25; letter-spacing: -0.03em; }
.pub-member__cta > p:not(.pub-member__eyebrow):not(.pub-member__cta-footnote) { margin: 0 0 21px; color: #626a65; font-size: 0.83rem; line-height: 1.6; }
.pub-member__cta-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #111;
  border-radius: 8px;
  background: #111;
  color: #fff;
  font: 700 0.72rem/1 var(--font-heading);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: background 0.18s, transform 0.18s;
}
.pub-member__cta-button:hover { background: #303331; transform: translateY(-1px); }
.pub-member__cta-footnote { margin: 13px 0 0; color: #8a928c; font-size: 0.68rem; line-height: 1.45; }
.pub-member__aside-note { display: flex; align-items: flex-start; gap: 9px; margin: 17px 3px 0; color: var(--pm-dim); }
.pub-member__aside-note p { margin: 0; font-size: 0.73rem; line-height: 1.55; }
.pub-member__aside-note-dot { width: 6px; height: 6px; flex: 0 0 6px; margin-top: 6px; border-radius: 50%; background: #9af3c4; box-shadow: 0 0 12px rgba(154,243,196,0.7); }
.pub-member__footer { display: flex; align-items: center; gap: 10px; margin-top: 38px; color: var(--pm-dim); font-size: 0.72rem; }
.pub-member__footer a { color: rgba(255,255,255,0.72); font-family: var(--font-heading); letter-spacing: 0.09em; }

@media (max-width: 820px) {
  #view-public-member .apply-wrap { padding-top: 16px; }
  .pub-member__layout { grid-template-columns: 1fr; }
  .pub-member__aside { position: static; }
  .pub-member__cta { max-width: none; }
}
@media (max-width: 560px) {
  #view-public-member .container { padding: 0 15px; }
  .pub-member__topbar { margin-bottom: 25px; }
  .pub-member__topbar-label { font-size: 0.62rem; }
  .pub-member__hero { padding: 24px 20px 21px; border-radius: 15px; }
  .pub-member__hero-row { align-items: flex-start; gap: 15px; }
  .pub-member__avatar { width: 70px; height: 70px; flex-basis: 70px; box-shadow: 0 0 0 5px rgba(255,255,255,0.035); }
  .pub-member__avatar--initials { font-size: 1.55rem; }
  .pub-member__identity h1 { font-size: 1.55rem; }
  .pub-member__kicker { margin-bottom: 7px; font-size: 0.6rem; }
  .pub-member__meta { margin-top: 8px; font-size: 0.82rem; }
  .pub-member__badges { margin-top: 20px; }
  .pub-member__section, .pub-member__stats { padding: 21px 18px; border-radius: 15px; }
  .pub-member__stats { display: block; }
  .pub-member__stats-grid { margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pub-member__connect-grid, .pub-member__custom-grid { grid-template-columns: 1fr; gap: 16px; }
  .pub-member__footer { align-items: flex-start; flex-direction: column; gap: 4px; margin: 28px 3px 0; }
}

/* ── Settings workspace refresh ── */
#view-settings .venet-main {
  display: grid;
  grid-template-columns: 214px minmax(0, 1fr);
  column-gap: 28px;
  align-content: start;
  max-width: 1380px;
  padding: 42px 48px 80px;
}
#view-settings .venet-page-header,
#view-settings .settings-intro { grid-column: 1 / -1; }
#view-settings .venet-page-header { margin-bottom: 18px; padding-bottom: 0; border: 0; }
#view-settings .venet-page-title { font-size: clamp(1.5rem, 2vw, 2rem); letter-spacing: -.04em; }
#view-settings .venet-page-sub { max-width: 620px; margin-top: 8px; color: var(--v-text-secondary); font-size: .92rem; }
.settings-intro {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 16px 18px;
  margin-bottom: 22px;
  border: 1px solid rgba(125, 165, 143, .28);
  border-radius: 15px;
  background: linear-gradient(110deg, rgba(231, 244, 233, .92), rgba(248, 250, 247, .98));
}
.settings-intro__mark { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: #183028; color: #b9f36e; font-size: 16px; box-shadow: 0 5px 14px rgba(24,48,40,.12); }
.settings-intro__eyebrow { margin: 0; color: #416957; font: 700 .64rem/1.2 var(--font-heading); letter-spacing: .13em; text-transform: uppercase; }
.settings-intro__copy { margin: 4px 0 0; color: #65776d; font-size: .8rem; line-height: 1.45; }
.settings-intro__note { margin-left: auto; color: #779083; font-size: .72rem; white-space: nowrap; }
#view-settings .vc-tabs {
  position: sticky;
  top: 24px;
  display: flex;
  flex-direction: column;
  align-self: start;
  gap: 5px;
  padding: 7px;
  border: 1px solid #dfe7e1;
  border-radius: 16px;
  background: rgba(245, 248, 246, .86);
  box-shadow: 0 10px 24px rgba(29, 45, 38, .045);
}
#view-settings .vc-tab {
  display: flex;
  align-items: center;
  gap: 11px;
  width: 100%;
  min-height: 57px;
  padding: 9px 10px;
  border: 1px solid transparent;
  border-radius: 11px;
  background: transparent;
  color: #77847d;
  text-align: left;
  box-shadow: none;
  transform: none;
}
#view-settings .vc-tab:hover { background: rgba(255,255,255,.78); border-color: #e0e8e2; transform: none; box-shadow: none; }
#view-settings .vc-tab--active { background: #183028; border-color: #183028; color: #fff; box-shadow: 0 8px 18px rgba(24,48,40,.16); transform: none; }
#view-settings .vc-tab__index { display: grid; place-items: center; width: 27px; height: 27px; flex: 0 0 27px; border: 1px solid #d5e0d8; border-radius: 8px; color: #72847a; font: 700 .62rem/1 var(--font-heading); }
#view-settings .vc-tab--active .vc-tab__index { border-color: rgba(185,243,110,.34); color: #b9f36e; background: rgba(185,243,110,.08); }
#view-settings .vc-tab span:last-child { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
#view-settings .vc-tab strong { color: inherit; font-size: .8rem; font-weight: 650; }
#view-settings .vc-tab small { color: #87938c; font-size: .66rem; line-height: 1.2; }
#view-settings .vc-tab--active small { color: rgba(255,255,255,.60); }
#view-settings .v-settings-pane--active { grid-column: 2; min-width: 0; }
#view-settings .v-card { margin: 0; border-color: #e0e8e2; border-radius: 17px; box-shadow: 0 10px 28px rgba(29,45,38,.045); }
#view-settings .v-card + .v-card { margin-top: 16px; }
#view-settings .v-section-label { color: #486756; font-size: .68rem; letter-spacing: .14em; }
#view-settings .v-card__body { color: #76847c; line-height: 1.6; }
#view-settings .v-field-row { margin-bottom: 20px; }
#view-settings .v-field-label { color: #53685d; font-size: .76rem; }
#view-settings .form-input { background: #fbfcfb; border-color: #dfe7e1; color: #25362d; border-radius: 9px; box-shadow: none; }
#view-settings .form-input:focus { border-color: #6c9c7a; box-shadow: 0 0 0 3px rgba(108,156,122,.14); background: #fff; }
#view-settings .v-grid--2 > .v-card:first-child { grid-column: 1 / -1; }
#view-settings .v-save-row { padding-top: 17px; border-top: 1px solid #e8eee9; }
#view-settings .v-btn--primary { background: #183028; border-color: #183028; box-shadow: 0 7px 15px rgba(24,48,40,.12); }
#view-settings .v-btn--primary:hover { background: #2a4a3c; border-color: #2a4a3c; }
#view-settings .v-toggle-row { padding: 18px 0; border-bottom-color: #e8eee9; }
#view-settings .v-toggle-label { color: #26382e; font-size: .86rem; }
#view-settings .v-toggle-desc { max-width: 560px; color: #7c8982; line-height: 1.45; }
#view-settings .v-privacy-link { color: #4c8060; }
#view-settings .v-chip { border-color: #dce6df; background: #f5f9f5; }
#view-settings .v-chip-toggle { border-color: #dce6df; background: #fbfcfb; color: #6c7d72; }
#view-settings .v-chip-toggle--on { border-color: #7aa783; background: #eaf5e7; color: #315b3e; }
#view-settings #settingsPrivacy .v-card,
#view-settings #settingsNotifications .v-card { max-width: 780px; }
#view-settings #settingsAccount > div { gap: 16px !important; }
#view-settings #settingsAccount .v-card { max-width: 780px; }
@media (max-width: 900px) {
  #view-settings .venet-main { display: block; padding: 78px 24px 64px; }
  #view-settings .settings-intro { margin-bottom: 16px; }
  #view-settings .vc-tabs { position: sticky; top: 64px; z-index: 10; flex-direction: row; overflow-x: auto; margin-bottom: 20px; padding: 5px; scrollbar-width: none; }
  #view-settings .vc-tabs::-webkit-scrollbar { display: none; }
  #view-settings .vc-tab { width: auto; min-width: 142px; min-height: 48px; padding: 7px 9px; }
  #view-settings .vc-tab small { display: none; }
  #view-settings .v-settings-pane--active { min-width: 0; }
}
@media (max-width: 640px) {
  #view-settings .venet-main { padding: 70px 15px 50px; }
  #view-settings .venet-page-title { font-size: 1.45rem; }
  .settings-intro { align-items: flex-start; padding: 14px; }
  .settings-intro__note { display: none; }
  .settings-intro__copy { font-size: .76rem; }
  #view-settings .vc-tab { min-width: 125px; }
  #view-settings .vc-tab__index { width: 23px; height: 23px; flex-basis: 23px; font-size: .56rem; }
  #view-settings .v-card { padding: 19px 16px; border-radius: 14px; }
  #view-settings .v-grid--2 { grid-template-columns: 1fr; }
  #view-settings .v-grid--2 > .v-card:first-child { grid-column: auto; }
  #view-settings .v-save-row { flex-wrap: wrap; }
  #view-settings .v-save-row .v-btn { width: 100%; justify-content: center; }
}

/* ================================================================
   PUBLIC STARTUP / FOUNDER PROFILE (/s/:slug)
   The public link shown in Settings. Uses the same rhythm as /u/.
   ================================================================ */
#view-public-profile .apply-wrap { padding: 24px 0 64px; }
#view-public-profile .container { padding: 0 24px; }
.pub-startup {
  max-width: 1080px;
  padding: 0 0 10px;
  color: var(--v-text);
}
.pub-startup__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 44px;
  margin-bottom: 36px;
}
.pub-startup__brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: var(--v-text);
  font: 700 0.78rem/1 var(--font-heading);
  letter-spacing: 0.18em;
}
.pub-startup__brand:hover { color: var(--v-accent); }
.pub-startup__brand-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 25px;
  height: 25px;
  border: 1px solid var(--v-border);
  border-radius: 7px;
  color: var(--v-text);
  font-size: 0.72rem;
  letter-spacing: 0;
}
.pub-startup__topbar-label {
  color: var(--v-text-muted);
  font-size: 0.72rem;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}
.pub-startup__layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  align-items: start;
  gap: 22px;
}
.pub-startup__main { min-width: 0; }
.pub-startup .pub-profile__hero {
  margin: 0;
  padding: 34px;
  border-radius: 18px;
  background: linear-gradient(135deg, #121313, #252a27);
  border: 1px solid rgba(15,15,15,0.7);
  box-shadow: 0 18px 50px rgba(0,0,0,0.12);
}
.pub-startup .pub-profile__company { color: #fff; font-size: clamp(1.75rem, 4vw, 2.55rem); letter-spacing: -0.04em; }
.pub-startup .pub-profile__desc { color: rgba(255,255,255,0.68); max-width: 600px; line-height: 1.65; }
.pub-startup .pub-profile__chips { margin-top: 20px; margin-bottom: 16px; }
.pub-startup .pub-profile__chip { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.15); color: rgba(255,255,255,0.78); }
.pub-startup .pub-profile__chip--link { color: #b7d0ff; border-color: rgba(183,208,255,0.28); }
.pub-startup .pub-profile__badge { color: #a8f2c8; background: rgba(107,255,184,0.1); border-color: rgba(107,255,184,0.24); }
.pub-startup > .pub-startup__layout .pub-section { margin: 14px 0 0; padding: 25px 27px; border-radius: 15px; }
.pub-startup .pub-section__title { margin-bottom: 14px; color: var(--v-text-muted); }
.pub-startup .pub-section__text { color: var(--v-text-secondary); line-height: 1.75; }
.pub-startup .pub-profile__founder-row { gap: 15px; }

/* Photo editor: local crop + public profile preview before Firebase upload */
.v-photo-editor { position: fixed; inset: 0; z-index: 10050; display: none; align-items: center; justify-content: center; padding: 22px; }
.v-photo-editor.is-open { display: flex; }
.v-photo-editor__backdrop { position: absolute; inset: 0; background: rgba(9,11,10,0.78); backdrop-filter: blur(10px); }
.v-photo-editor__dialog { position: relative; width: min(980px, 100%); max-height: min(760px, calc(100vh - 44px)); overflow: auto; border: 1px solid rgba(255,255,255,0.13); border-radius: 22px; background: #f7f8f5; color: #171918; box-shadow: 0 28px 90px rgba(0,0,0,0.34); }
.v-photo-editor__header { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 25px 28px 21px; border-bottom: 1px solid #e2e5df; }
.v-photo-editor__header h2 { margin: 5px 0 7px; font: 700 clamp(1.25rem, 2.5vw, 1.75rem)/1.1 var(--font-heading); letter-spacing: -0.04em; }
.v-photo-editor__header p:last-child { max-width: 520px; margin: 0; color: #68716a; font-size: 0.86rem; line-height: 1.5; }
.v-photo-editor__close { width: 34px; height: 34px; border: 1px solid #d8ddd6; border-radius: 50%; background: transparent; color: #4e5750; font-size: 1.35rem; line-height: 1; cursor: pointer; }
.v-photo-editor__body { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(290px, 0.82fr); gap: 28px; padding: 28px; }
.v-photo-editor__workbench { min-width: 0; }
.v-photo-editor__canvas-wrap { position: relative; width: min(100%, 500px); aspect-ratio: 1; margin: 0 auto; overflow: hidden; border-radius: 18px; background: #171918; box-shadow: inset 0 0 0 1px rgba(255,255,255,0.12), 0 14px 32px rgba(30,36,31,0.12); }
.v-photo-editor__canvas-wrap canvas { display: block; width: 100%; height: 100%; }
.v-photo-editor__guide { position: absolute; inset: 9%; border: 1px solid rgba(255,255,255,0.7); border-radius: 50%; box-shadow: 0 0 0 999px rgba(0,0,0,0.12); pointer-events: none; }
.v-photo-editor.is-logo .v-photo-editor__guide { border-radius: 14px; }
.v-photo-editor.is-logo .v-photo-editor__public-photo { border-radius: 13px; }
.v-photo-editor__hint { margin: 13px auto 0; max-width: 500px; color: #7a837c; font-size: 0.73rem; line-height: 1.5; text-align: center; }
.v-photo-editor__side { min-width: 0; }
.v-photo-editor__preview-label { display: flex; justify-content: space-between; gap: 10px; margin: 0 0 9px; color: #778077; font: 700 0.62rem/1.3 var(--font-heading); letter-spacing: 0.12em; text-transform: uppercase; }
.v-photo-editor__preview-label span:last-child { color: #13885e; }
.v-photo-editor__public-card { padding: 18px; border: 1px solid #dfe4dc; border-radius: 16px; background: #fff; box-shadow: 0 12px 26px rgba(30,36,31,0.07); }
.v-photo-editor__public-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 22px; color: #8a938c; font: 700 0.62rem/1 var(--font-heading); letter-spacing: 0.12em; }
.v-photo-editor__public-dot { width: 7px; height: 7px; border-radius: 50%; background: #19a66f; box-shadow: 0 0 0 4px rgba(25,166,111,0.12); }
.v-photo-editor__public-person { display: flex; align-items: center; gap: 13px; }
.v-photo-editor__public-photo { width: 58px; height: 58px; flex: 0 0 58px; overflow: hidden; border-radius: 50%; background: #1b1f1b; }
.v-photo-editor__public-photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.v-photo-editor__public-person strong, .v-photo-editor__public-person span { display: block; }
.v-photo-editor__public-person strong { color: #171918; font-size: 0.95rem; }
.v-photo-editor__public-person span { margin-top: 4px; color: #788078; font-size: 0.73rem; }
.v-photo-editor__public-card > p { min-height: 42px; margin: 18px 0 13px; color: #5f685f; font-size: 0.78rem; line-height: 1.55; }
.v-photo-editor__public-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.v-photo-editor__public-tags span { padding: 6px 8px; border: 1px solid #dce5db; border-radius: 999px; color: #4f6c59; background: #f2f8f1; font-size: 0.65rem; }
.v-photo-editor__public-cta { display: flex; justify-content: space-between; margin-top: 17px; padding-top: 13px; border-top: 1px solid #edf0eb; color: #148a5d; font: 700 0.7rem/1 var(--font-heading); letter-spacing: 0.08em; text-transform: uppercase; }
.v-photo-editor__controls { display: grid; gap: 13px; margin-top: 22px; }
.v-photo-editor__controls label { display: grid; gap: 7px; color: #58625a; font: 700 0.68rem/1.2 var(--font-heading); letter-spacing: 0.05em; }
.v-photo-editor__controls input { width: 100%; accent-color: #159568; cursor: pointer; }
.v-photo-editor__actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 22px; }
.v-photo-editor__actions .v-btn { min-width: 124px; }
@media (max-width: 760px) {
  .v-photo-editor { padding: 10px; }
  .v-photo-editor__dialog { max-height: calc(100vh - 20px); border-radius: 17px; }
  .v-photo-editor__header { padding: 20px 18px 17px; }
  .v-photo-editor__body { grid-template-columns: 1fr; gap: 22px; padding: 18px; }
  .v-photo-editor__canvas-wrap { width: min(100%, 390px); }
  .v-photo-editor__side { display: grid; }
  .v-photo-editor__public-card { order: 0; }
  .v-photo-editor__controls { order: 1; }
  .v-photo-editor__actions { order: 2; }
}
.pub-startup .pub-profile__avatar {\n+  position: relative;\n+  overflow: hidden;\n+  width: 60px;\n+  height: 60px;\n+  flex: 0 0 60px;\n+  border-radius: 50%;\n+  background: #151616;\n+  color: #fff;\n+  border: 1px solid var(--v-border);\n+  font-size: 0.9rem;\n+}\n+.pub-startup .pub-profile__avatar img { width: 100%; height: 100%; display: block; object-fit: cover; opacity: 0; transition: opacity 0.35s ease; }\n+.pub-startup .pub-profile__avatar--loaded img { opacity: 1; }\n+.pub-profile__photo-loader {\n+  position: absolute;\n+  inset: 22%;\n+  z-index: 1;\n+  border: 2px solid rgba(255,255,255,0.2);\n+  border-top-color: #9af3c4;\n+  border-radius: 50%;\n+  animation: pubStartupPhotoSpin 0.85s linear infinite;\n+}\n+.pub-profile__avatar--loaded .pub-profile__photo-loader { opacity: 0; transition: opacity 0.2s ease; }\n+.pub-profile__avatar--error { display: flex; align-items: center; justify-content: center; }\n+@keyframes pubStartupPhotoSpin { to { transform: rotate(360deg); } }\n+.pub-startup__aside { position: sticky; top: 24px; }\n+.pub-startup__cta {\n+  padding: 27px 25px;\n+  border: 1px solid var(--v-border);\n+  border-radius: 18px;\n+  background: var(--v-bg-card);\n+  box-shadow: var(--v-shadow-md);\n+}\n+.pub-startup__eyebrow { margin: 0 0 11px; color: var(--v-text-muted); font: 700 0.65rem/1.3 var(--font-heading); letter-spacing: 0.16em; text-transform: uppercase; }\n+.pub-startup__cta h2 { margin: 0 0 10px; color: var(--v-text); font-size: 1.23rem; line-height: 1.25; letter-spacing: -0.03em; }\n+.pub-startup__cta > p:not(.pub-startup__eyebrow):not(.pub-startup__cta-footnote) { margin: 0 0 21px; color: var(--v-text-secondary); font-size: 0.83rem; line-height: 1.6; }\n+.pub-startup__cta-button {\n+  display: flex;\n+  align-items: center;\n+  justify-content: space-between;\n+  gap: 12px;\n+  padding: 12px 14px;\n+  border: 1px solid var(--v-accent);\n+  border-radius: 8px;\n+  background: var(--v-accent);\n+  color: var(--v-accent-text);\n+  font: 700 0.72rem/1 var(--font-heading);\n+  letter-spacing: 0.08em;\n+  text-transform: uppercase;\n+  transition: background 0.18s, transform 0.18s;\n+}\n+.pub-startup__cta-button:hover { background: var(--v-accent-hover); transform: translateY(-1px); }\n+.pub-startup__cta-footnote { margin: 13px 0 0; color: var(--v-text-muted); font-size: 0.68rem; line-height: 1.45; }\n+.pub-startup__cta .v-pub-interest-section { margin-top: 2px; }\n+.pub-startup__cta .v-btn { width: 100%; justify-content: center; }\n+.pub-startup__aside-note { display: flex; align-items: flex-start; gap: 9px; margin: 17px 3px 0; color: var(--v-text-muted); }\n+.pub-startup__aside-note span { width: 6px; height: 6px; flex: 0 0 6px; margin-top: 6px; border-radius: 50%; background: #10b981; }\n+.pub-startup__aside-note p { margin: 0; font-size: 0.73rem; line-height: 1.55; }\n+.pub-startup__footer { display: flex; align-items: center; gap: 10px; margin-top: 38px; color: var(--v-text-muted); font-size: 0.72rem; }\n+.pub-startup__footer a { color: var(--v-text); font-family: var(--font-heading); letter-spacing: 0.09em; }\n+@media (max-width: 820px) {\n+  #view-public-profile .apply-wrap { padding-top: 16px; }\n+  .pub-startup__layout { grid-template-columns: 1fr; }\n+  .pub-startup__aside { position: static; }\n+}\n+@media (max-width: 560px) {\n+  #view-public-profile .container { padding: 0 15px; }\n+  .pub-startup__topbar { margin-bottom: 25px; }\n+  .pub-startup__topbar-label { font-size: 0.62rem; }\n+  .pub-startup .pub-profile__hero { padding: 24px 20px 21px; border-radius: 15px; }\n+  .pub-startup .pub-profile__company { font-size: 1.55rem; }\n+  .pub-startup .pub-profile__desc { font-size: 0.92rem; }\n+  .pub-startup > .pub-startup__layout .pub-section { padding: 21px 18px; }\n+  .pub-startup__footer { align-items: flex-start; flex-direction: column; gap: 4px; margin: 28px 3px 0; }\n+}
