/* The platform shell: the dashboard's left menu on every signed-in page.
   Values are taken from the dashboard's computed sidebar so the two read as one
   product. Every rule is scoped to .vcs-* so a page's own element styles
   (participant.css styles every nav, button and p) cannot reach the menu. */
/* The accent is the platform's red until a conference's own host sets it from
   that conference's brand profile (public/shared/platform-shell.js). */
:root{--vcs-accent:#fc0311;--vcs-brand-font:inherit}
body.vcs-page{margin:0;min-height:100vh;padding-left:236px;box-sizing:border-box;background:var(--brand-bg,#eceff2)}
#vc-shell{display:contents}
.vcs-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.vcs-sidebar{position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;width:236px;height:100vh;height:100dvh;padding:14px 11px 11px;box-sizing:border-box;background:#020202;color:#b7bbc3;font:400 14px/1.45 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}
.vcs-sidebar *,.vcs-sidebar *::before{box-sizing:border-box}
.vcs-sidebar a{color:inherit;text-decoration:none}
.vcs-sidebar p{margin:0}
.vcs-sidebar svg{display:block;flex:none;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7}
.vcs-sidebar :focus-visible{outline:2px solid #fff;outline-offset:2px}

/* The brand row never shrinks. The sidebar is a flex column, and an explicit
   min-height turns off a flex item's content-based minimum, so when the menu was
   taller than the screen the row was squeezed toward 42px while a conference's
   logo and its two-line host line (about 74px) spilled out of it: the logo lost
   its top to the sidebar's edge and the host line sat on the menu's first label
   (2026-09-26, access.therapistgrowthsummit.com Promote and My link). flex:none
   makes the row take its real height and the menu below takes what is left. */
.vcs-brand-row{display:flex;flex:none;align-items:center;min-height:42px}
.vcs-sidebar .vcs-brand{display:flex;align-items:center;gap:8px;min-height:42px;padding:0 2px;min-width:0}
.vcs-brand-mark{display:grid;place-items:center;width:29px;height:29px;flex:0 0 29px;border-radius:8px;background:#fff;color:#020202;font-size:13px;font-weight:850;letter-spacing:-.05em}
.vcs-brand-copy{display:grid;grid-template-columns:minmax(0,max-content) auto;justify-content:start;align-items:baseline;min-width:0;font-size:12px;line-height:1.45;letter-spacing:-.015em}
.vcs-brand-copy strong{color:#fff;font-weight:760}
.vcs-brand-copy>span{color:var(--vcs-accent);font-weight:720}
.vcs-brand-copy strong{font-family:var(--vcs-brand-font)}
/* A conference's own logo, sized to the brand row rather than to itself. The
   logo carries the name, so the copy under it is only the people behind it. */
.vcs-brand-logo{width:auto;height:30px;max-width:190px;flex:0 0 auto;object-fit:contain;object-position:left}
.vcs-sidebar .vcs-brand.has-logo{flex-direction:column;align-items:flex-start;gap:5px;padding-top:4px}
.vcs-brand.has-logo .vcs-brand-copy{display:block}
.vcs-brand-copy small{grid-column:1/-1;margin-top:1px;color:#858a93;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}
/* The conference name and the host line under it hold at two lines each, with
   an ellipsis after that, and a long unbroken host address wraps rather than
   running under the sidebar's edge. The row above is sized from this. */
.vcs-brand-copy strong,.vcs-brand-copy small{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;overflow-wrap:anywhere}

/* The menu scrolls under a 12px fade at each end rather than a hard edge, so
   an entry scrolled partly out fades away instead of reading as a line cut in
   half under the brand. Each fade sits over the menu's own 12px padding, so an
   unscrolled menu starts exactly where it did with the old 20px margin, and
   nothing is dimmed at either end of the scroll. */
.vcs-sidebar nav.vcs-nav{position:relative;display:grid;flex:1 1 auto;align-content:start;gap:2px;min-height:0;margin:8px 0 0;padding:12px 0 12px;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 12px,#000 calc(100% - 12px),transparent);mask-image:linear-gradient(to bottom,transparent,#000 12px,#000 calc(100% - 12px),transparent);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#2b2d31 transparent}
body[data-shell-scope=conference] .vcs-sidebar nav.vcs-nav{gap:10px}
body[data-shell-scope=participant] .vcs-nav>.vcs-back{margin-bottom:8px}
body[data-shell-scope=participant] .vcs-nav>.vcs-switcher,body[data-shell-scope=participant] .vcs-nav>.vcs-context-card{margin-bottom:14px}
.vcs-loading{padding:0 9px;color:#747982;font-size:12px}
.vcs-group{display:grid;gap:2px}
.vcs-group+.vcs-group:not(.vcs-tree-group){margin-top:10px;padding-top:10px;border-top:1px solid #202125}
.vcs-sidebar .vcs-label{margin:0 8px 4px;color:#747982;font-size:10px;font-weight:750;line-height:1.45;letter-spacing:.13em;text-transform:uppercase}

.vcs-sidebar .vcs-item{position:relative;display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;min-height:48px;padding:0 9px;border:1px solid transparent;border-radius:8px;color:#d9dce2;font-size:16px;font-weight:620;line-height:1.4;transition:color .15s,background-color .15s}
.vcs-item svg{width:15px;height:15px}
.vcs-item span,.vcs-subitem span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* The unread count on a menu entry (data-menu-badge). The entry grows a third
   column for it, so the label keeps its ellipsis and the count keeps its shape. */
.vcs-sidebar .vcs-item:has(.vcs-badge){grid-template-columns:16px minmax(0,1fr) auto}
.vcs-sidebar .vcs-subitem:has(.vcs-badge){justify-content:space-between;gap:8px}
.vcs-sidebar .vcs-badge{display:grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--vcs-accent);color:#fff;font-size:10px;font-weight:800;line-height:1;letter-spacing:0;overflow:visible;white-space:nowrap}
.vcs-sidebar .vcs-badge[hidden]{display:none}
.vcs-sidebar .vcs-item:hover,.vcs-sidebar .vcs-subitem:hover,.vcs-sidebar .vcs-tree-toggle:hover,.vcs-sidebar .vcs-back:hover{background:#1b1c1f;color:#fff}
.vcs-sidebar .vcs-item[aria-current=page],.vcs-sidebar .vcs-item.is-within{background:#202125;border-color:#2b2d31;color:#d9dce2}
.vcs-sidebar .vcs-item[aria-current=page]::before{content:"";position:absolute;left:-1px;top:7px;width:2px;height:32px;border-radius:2px;background:var(--vcs-accent)}

.vcs-submenu{display:grid;gap:2px;margin:0 0 3px 25px;padding:0 0 0 9px;border-left:1px solid #303237}
.vcs-sidebar .vcs-subitem{position:relative;display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:7px;color:#d9dce2;font-size:14px;font-weight:650;line-height:1.4;transition:color .15s,background-color .15s}
.vcs-sidebar .vcs-subitem[aria-current=page]{background:#24262b;color:#fff}
.vcs-sidebar .vcs-subitem[aria-current=page]::before{content:"";position:absolute;left:-1px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--vcs-accent)}

.vcs-sidebar .vcs-back{display:grid;grid-template-columns:16px minmax(0,1fr);align-items:center;gap:8px;min-height:44px;padding:0 9px;border:1px solid transparent;border-radius:8px;color:#aeb2ba;font-size:10px;font-weight:680}
.vcs-back svg{width:15px;height:15px;stroke-width:1.8}
.vcs-sidebar .vcs-context-card{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:56px;padding:10px 9px;border:1px solid #2b2d31;border-radius:10px;background:#151619;color:#b7bbc3;font:inherit;text-align:left}
.vcs-context-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid color-mix(in srgb,var(--vcs-context,#6758d8) 45%,#303238);border-radius:9px;background:color-mix(in srgb,var(--vcs-context,#6758d8) 16%,#17181b);color:#fff;font-size:9px;font-weight:800;letter-spacing:.04em}
.vcs-context-copy{display:grid;min-width:0}
.vcs-context-copy strong{overflow:hidden;color:#fff;font-size:10px;font-weight:720;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
.vcs-context-copy small{overflow:hidden;color:#858a93;font-size:7px;line-height:1.45;text-overflow:ellipsis;white-space:nowrap}
a.vcs-context-card:hover{border-color:#3a3d43}

.vcs-switcher{position:relative}
.vcs-sidebar button.vcs-context-card{grid-template-columns:34px minmax(0,1fr) 12px;cursor:pointer;min-height:56px}
.vcs-sidebar button.vcs-context-card:hover{border-color:#3a3d43}
.vcs-sidebar button.vcs-context-card .vcs-chevron{width:12px;height:12px;color:#aeb2ba;transform:rotate(90deg)}
.vcs-sidebar button.vcs-context-card[aria-expanded=true] .vcs-chevron{transform:rotate(-90deg)}
.vcs-switcher-list{display:grid;gap:2px;margin-top:6px;padding:8px;border:1px solid #2b2d31;border-radius:10px;background:#151619}
.vcs-switcher-list[hidden]{display:none}
.vcs-sidebar .vcs-switcher-list a{display:grid;min-height:44px;align-content:center;padding:6px 10px;border-radius:7px;color:#d9dce2;font-size:13px;font-weight:600;line-height:1.35}
.vcs-switcher-list a small{color:#858a93;font-size:11px;font-weight:500}
.vcs-sidebar .vcs-switcher-list a:hover{background:#1b1c1f;color:#fff}
.vcs-sidebar .vcs-switcher-list .vcs-switcher-all{margin-top:4px;border-top:1px solid #202125;border-radius:0 0 7px 7px;color:#aeb2ba;font-size:12px}

.vcs-menu-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:2px 0 5px;padding:0 10px;color:#777d87;font-size:8px;font-weight:800;line-height:1.45;letter-spacing:.09em;text-transform:uppercase}
.vcs-sidebar .vcs-menu-controls button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;margin-right:-10px;padding:0;border:0;border-radius:8px;background:transparent;color:#68707a;cursor:pointer}
.vcs-sidebar .vcs-menu-controls button:hover{background:#1b1c1f;color:#fff}
.vcs-menu-controls svg{width:16px;height:16px;stroke-width:1.8;transition:transform .16s}
.vcs-menu-controls button.is-expanded svg{transform:rotate(180deg)}
.vcs-tree-group{display:grid}
.vcs-sidebar .vcs-tree-toggle{display:grid;grid-template-columns:18px minmax(0,1fr) 13px;align-items:center;gap:9px;width:100%;min-height:48px;margin:0;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#fff;font:inherit;font-size:16px;font-weight:600;line-height:1.4;text-align:left;cursor:pointer;transition:color .15s,background-color .15s}
.vcs-tree-toggle svg{width:16px;height:16px}
.vcs-tree-toggle .vcs-chevron{width:12px;height:12px;transform:rotate(90deg);transition:transform .16s}
.vcs-tree-group.is-collapsed .vcs-chevron{transform:none}
.vcs-tree-group>.vcs-submenu{margin:0 0 5px 25px;padding:1px 0 2px 10px}
.vcs-tree-group.is-collapsed>.vcs-submenu{display:none}
.vcs-tree-group .vcs-subitem{font-weight:600}

.vcs-user{position:relative;flex:0 0 auto;padding-top:4px}
.vcs-sidebar .vcs-user-card{display:grid;grid-template-columns:30px minmax(0,1fr);align-items:center;gap:9px;width:100%;min-height:46px;margin:0;padding:8px;border:0;border-radius:10px;background:#020202;color:#fff;font:inherit;text-align:left;cursor:pointer}
.vcs-sidebar .vcs-user-card:hover,.vcs-sidebar .vcs-user-card[aria-expanded=true]{background:#1b1c1f}
.vcs-avatar{display:grid;place-items:center;width:30px;height:30px;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:var(--vcs-avatar,linear-gradient(145deg,#f05760,#e4020f));box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);color:#fff;font-size:8px;font-weight:800}
.vcs-avatar img{width:100%;height:100%;object-fit:cover}
.vcs-user-card strong{overflow:hidden;font-size:10px;font-weight:720;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}
.vcs-user-menu{position:absolute;left:0;right:0;bottom:calc(100% + 4px);display:grid;gap:6px;padding:10px;border:1px solid #2b2d31;border-radius:10px;background:#151619;box-shadow:0 12px 32px rgba(0,0,0,.45)}
.vcs-user-menu[hidden]{display:none}
.vcs-user-menu p{display:grid;padding:2px 4px 6px;border-bottom:1px solid #202125}
.vcs-user-menu p strong{color:#fff;font-size:12px;font-weight:700}
.vcs-user-menu p small{overflow:hidden;color:#858a93;font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.vcs-sidebar .vcs-user-menu button{display:flex;align-items:center;width:100%;min-height:44px;margin:0;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#d9dce2;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.vcs-sidebar .vcs-user-menu button:hover{background:#1b1c1f;color:#fff}
.vcs-sidebar .vcs-user-menu a{display:flex;align-items:center;min-height:44px;padding:0 10px;border-radius:7px;color:#d9dce2;font-size:13px;font-weight:600}
.vcs-sidebar .vcs-user-menu a:hover{background:#1b1c1f;color:#fff}
.vcs-sidebar .vcs-user-menu .vcs-status{border:0;padding:0 4px;color:#f5a3aa;font-size:11px}
.vcs-sidebar .vcs-user-menu .vcs-status:empty{display:none}

.vcs-topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:12px;height:56px;padding:0 20px;border-bottom:1px solid rgba(225,228,232,.65);background:color-mix(in srgb,var(--brand-bg,#eceff2) 82%,transparent);-webkit-backdrop-filter:blur(18px) saturate(140%);backdrop-filter:blur(18px) saturate(140%);color:#181a1d;font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}
.vcs-location{display:grid;gap:1px;min-width:0;line-height:1.15}
.vcs-location span{overflow:hidden;color:#68707a;font-size:11px;font-weight:760;letter-spacing:.11em;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}
.vcs-location strong{overflow:hidden;color:#181a1d;font-size:13px;font-weight:720;letter-spacing:-.012em;text-overflow:ellipsis;white-space:nowrap}
.vcs-topbar .vcs-menu-button{display:none}
.vcs-topbar.topbar{justify-content:flex-start}
.vcs-topbar .vcs-status-pill{margin-left:auto;white-space:nowrap}
/* The two controls at the right edge: Send feedback, then the bell. Both are
   40px, the same border and surface, so they read as one family; the bell's
   own rules live in notifications.css and the two share these tokens. */
.vcs-topbar .vcs-topbar-tools{display:flex;align-items:center;gap:8px;margin-left:auto}
.vcs-topbar .vcs-feedback{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:40px;min-height:40px;margin:0;padding:0 13px;border:1px solid var(--brand-line,#e1e4e8);border-radius:10px;background:var(--brand-surface,#fff);color:var(--brand-text,#4b525c);font:600 13px/1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:-.005em;white-space:nowrap;cursor:pointer;transition:color .15s,border-color .15s,background-color .15s}
.vcs-topbar .vcs-feedback:hover{border-color:var(--brand-ink,#202225);color:var(--brand-ink,#202225)}
.vcs-topbar .vcs-feedback:focus-visible{outline:2px solid var(--brand-ink,#202225);outline-offset:2px}
.vcs-topbar .vcs-feedback svg{width:17px;height:17px;flex:0 0 17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.vcs-topbar .vcs-feedback[hidden]{display:none}

.vcs-scrim{position:fixed;inset:0;z-index:35;background:rgba(20,16,18,.36)}
.vcs-scrim[hidden]{display:none}

@media (max-width:980px){
  /* Closed, the drawer is also out of the tab order, not just off screen. */
  .vcs-sidebar{visibility:hidden;transform:translateX(-100%);transition:transform .22s cubic-bezier(.23,1,.32,1),box-shadow .22s,visibility 0s linear .22s;box-shadow:none}
  .vcs-sidebar.is-open{visibility:visible;transform:none;box-shadow:0 0 48px rgba(0,0,0,.35);transition:transform .22s cubic-bezier(.23,1,.32,1),box-shadow .22s}
  body.vcs-page{padding-left:0}
  .vcs-topbar{height:60px;padding:0 10px;gap:10px}
  .vcs-topbar .vcs-menu-button{display:grid;place-items:center;width:40px;height:44px;min-height:44px;flex:0 0 40px;margin:0;padding:0;border:1px solid #e1e4e8;border-radius:8px;background:rgba(255,255,255,.88);color:#626870;cursor:pointer}
  .vcs-menu-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
  body.vcs-menu-open{overflow:hidden}
}
/* Narrow: the icon alone, the label kept for screen readers. */
@media (max-width:720px){
  .vcs-topbar .vcs-feedback{width:40px;flex:0 0 40px;padding:0}
  .vcs-topbar .vcs-feedback span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
}
@media (prefers-reduced-motion:reduce){.vcs-sidebar,.vcs-sidebar *,.vcs-topbar .vcs-feedback{transition:none!important}}
@media print{.vcs-sidebar,.vcs-topbar,.vcs-scrim{display:none!important}body.vcs-page{padding-left:0}}
