:root {
  --sidebar-width: var(--size-392);
  --sidebar-height: var(--size-760);
  --sidebar-rail-width: var(--size-64);
  --sidebar-border: var(--control-border-width) solid var(--color-border);
  --sidebar-radius: var(--radius-16);
  --sidebar-rail-background: var(--color-muted);
  --sidebar-rail-padding: var(--space-2-5);
  --sidebar-rail-gap: var(--space-3);
  --sidebar-brand-gap: var(--space-6);
  --sidebar-panel-padding: var(--space-5);
  --sidebar-gap: var(--space-2);
  --sidebar-group-gap: var(--space-5);
  --sidebar-indent: var(--space-5);
  --sidebar-thread-gap: var(--space-0-5);
  --sidebar-compact-gap: var(--space-3);
  --sidebar-title-font: var(--font-type-heading-small);
  /* Identity mark: preserve the rail's line-box geometry. */
  --sidebar-brand-font: var(--font-sans-24-36-semibold);
  --sidebar-caption-font: var(--font-type-caption);
  --sidebar-heading-font: var(--font-type-label-compact-strong);
  --sidebar-eyebrow-font: var(--font-type-eyebrow);
  --sidebar-metadata-font: var(--font-type-caption-small);
  --sidebar-row-default-font: var(--font-type-label);
  --sidebar-row-current-font: var(--font-type-label-strong);
  --sidebar-row-default-background: var(--color-clear);
  --sidebar-row-inline-padding: var(--space-2-5);
  --sidebar-row-default-padding: var(--space-1) var(--sidebar-row-inline-padding);
  --sidebar-row-default-height: var(--size-40);
  --sidebar-row-radius: var(--radius-8);
  --sidebar-row-icon-size: var(--space-4);
  --sidebar-row-hover-background: var(--color-neutral-hover);
  --sidebar-row-current-background: var(--color-selected);
  --sidebar-row-current-foreground: var(--color-selected-foreground);
  --sidebar-rail-radius: var(--radius-12);
  --sidebar-rail-icon-size: var(--size-18);
  --sidebar-header-icon-size: var(--space-5);
  --sidebar-avatar-size: var(--size-36);
  --sidebar-avatar-radius: var(--radius-full);
  --sidebar-avatar-background: var(--color-identity-surface);
  /* Initials are identity geometry, not an eyebrow/category label. */
  --sidebar-avatar-font: var(--font-sans-11-17-medium);
  --sidebar-focus-outline: var(--focus-width) solid var(--color-focus-ring);
  --sidebar-focus-inset: calc(-1 * var(--focus-width));
  --sidebar-settings-padding: var(--space-4);
  --sidebar-settings-gap: var(--space-1);
  --sidebar-settings-radius: var(--radius-12);
  --sidebar-settings-shadow-color: var(--color-shadow);
  --sidebar-settings-shadow: 0 var(--space-2) var(--space-6) var(--sidebar-settings-shadow-color);
  --sidebar-shortcut-font: var(--font-type-label-small);
  --sidebar-shortcut-padding: var(--space-2) 0;
  --sidebar-shortcut-height: var(--size-36);
  --sidebar-shortcut-gap: var(--space-2-5);
  /* Prominent entry point above ordinary links; retain this local hierarchy. */
  --sidebar-overview-font: var(--font-sans-16-24-semibold);
}

/* Every row selects its own contract: rail, links and summaries share properties. */
.sidebar__row {
  --sidebar-row-background: var(--sidebar-row-default-background);
  --sidebar-row-foreground: var(--color-foreground);
  --sidebar-row-font: var(--sidebar-row-default-font);
  --sidebar-row-padding: var(--sidebar-row-default-padding);
  --sidebar-row-height: var(--sidebar-row-default-height);
  --sidebar-row-corner: var(--sidebar-row-radius);
  --sidebar-row-gap: var(--sidebar-gap);
  --sidebar-icon-size: var(--sidebar-row-icon-size);
}

.sidebar__content { --sidebar-content-gap: var(--sidebar-group-gap); }
.sidebar__content--compact { --sidebar-content-gap: var(--sidebar-compact-gap); }

.sidebar__row--more { --sidebar-row-foreground: var(--color-link); }
.sidebar__row--rail {
  --sidebar-row-foreground: var(--color-muted-foreground);
  --sidebar-row-height: var(--control-target-size);
  --sidebar-row-corner: var(--sidebar-rail-radius);
  --sidebar-icon-size: var(--sidebar-rail-icon-size);
}
.sidebar__row--shortcut {
  --sidebar-row-font: var(--sidebar-shortcut-font);
  --sidebar-row-padding: var(--sidebar-shortcut-padding);
  --sidebar-row-height: var(--sidebar-shortcut-height);
  --sidebar-row-gap: var(--sidebar-shortcut-gap);
  --sidebar-icon-size: var(--sidebar-rail-icon-size);
}
.sidebar__row--overview {
  --sidebar-row-font: var(--sidebar-overview-font);
  --sidebar-row-foreground: var(--color-link);
  --sidebar-row-padding: 0;
  --sidebar-row-height: 0;
}
.sidebar__row:is([aria-current="page"], [aria-current="location"]) {
  --sidebar-row-background: var(--sidebar-row-current-background);
  --sidebar-row-foreground: var(--sidebar-row-current-foreground);
  --sidebar-row-font: var(--sidebar-row-current-font);
}

.sidebar {
  box-sizing: border-box;
  display: flex;
  inline-size: var(--sidebar-width);
  max-inline-size: 100%;
  block-size: var(--sidebar-height);
  min-inline-size: 0;
  overflow: hidden;
  border: var(--sidebar-border);
  border-radius: var(--sidebar-radius);
  background: var(--color-surface);
  color: var(--color-surface-foreground);
  font: var(--sidebar-row-default-font);
}
.sidebar--rail-only { inline-size: fit-content; }
.sidebar__rail {
  box-sizing: border-box;
  display: flex;
  flex: none;
  flex-direction: column;
  align-items: center;
  gap: var(--sidebar-rail-gap);
  inline-size: var(--sidebar-rail-width);
  padding: var(--sidebar-rail-padding);
  background: var(--sidebar-rail-background);
}
.sidebar__brand {
  margin-block-end: var(--sidebar-brand-gap);
  color: var(--color-primary);
  font: var(--sidebar-brand-font);
  text-decoration: none;
}
.sidebar__rail-footer {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--sidebar-rail-gap);
  margin-block-start: auto;
}
.sidebar__avatar {
  display: grid;
  place-items: center;
  inline-size: var(--sidebar-avatar-size);
  block-size: var(--sidebar-avatar-size);
  border-radius: var(--sidebar-avatar-radius);
  background: var(--sidebar-avatar-background);
  color: var(--color-identity-foreground);
  font: var(--sidebar-avatar-font);
  text-decoration: none;
}
.sidebar__panel {
  box-sizing: border-box;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: var(--sidebar-group-gap);
  min-inline-size: 0;
  overflow: auto;
  padding: var(--sidebar-panel-padding);
}
.sidebar__header, .sidebar__content, .sidebar__group, .sidebar__list {
  display: flex;
  flex-direction: column;
  gap: var(--sidebar-gap);
  min-inline-size: 0;
}
.sidebar__heading { display: flex; align-items: center; gap: var(--sidebar-rail-gap); }
.sidebar__title { margin: 0; font: var(--sidebar-title-font); letter-spacing: normal; overflow-wrap: anywhere; }
.sidebar__header-icon { flex: none; inline-size: var(--sidebar-header-icon-size); block-size: var(--sidebar-header-icon-size); color: var(--color-muted-foreground); }
.sidebar__caption { margin: 0; color: var(--color-muted-foreground); font: var(--sidebar-caption-font); overflow-wrap: anywhere; }
.sidebar__content { flex: none; gap: var(--sidebar-content-gap); }
.sidebar__group { margin: 0; }
.sidebar__group-title { margin: 0; font: var(--sidebar-heading-font); letter-spacing: normal; }
.sidebar__group-title--accent { color: var(--color-accent-foreground); }
.sidebar__eyebrow { margin: 0; color: var(--color-muted-foreground); font: var(--sidebar-eyebrow-font); }
.sidebar__list { margin: 0; padding: 0; list-style: none; }
.sidebar__channel { margin: 0; padding: 0; border: 0; border-radius: 0; }
.sidebar__threads { padding-inline-start: var(--sidebar-indent); }
.sidebar__threads > .sidebar__list { gap: var(--sidebar-thread-gap); }
.sidebar__row {
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: var(--sidebar-row-gap);
  min-inline-size: 0;
  min-block-size: var(--sidebar-row-height);
  padding: var(--sidebar-row-padding);
  border: 0;
  border-radius: var(--sidebar-row-corner);
  background: var(--sidebar-row-background);
  color: var(--sidebar-row-foreground);
  font: var(--sidebar-row-font);
  text-align: start;
  text-decoration: none;
  cursor: pointer;
  list-style: none;
}
.sidebar__row--rail { inline-size: var(--control-target-size); justify-content: center; }
.sidebar__row::-webkit-details-marker { display: none; }
.sidebar__label { flex: 1; min-inline-size: 0; overflow-wrap: anywhere; }
.sidebar__row--more .sidebar__label, .sidebar__row--overview .sidebar__label { flex: 0 1 auto; }
.sidebar__metadata { flex: none; color: var(--color-muted-foreground); font: var(--sidebar-metadata-font); }
.sidebar__icon { flex: none; inline-size: var(--sidebar-icon-size); block-size: var(--sidebar-icon-size); }
.sidebar__chevron-open { display: none; }
.sidebar__channel[open] > summary .sidebar__chevron-open { display: block; }
.sidebar__channel[open] > summary .sidebar__chevron-closed { display: none; }
.sidebar__row:hover:not(:disabled):not([aria-current="page"], [aria-current="location"]) { background: var(--sidebar-row-hover-background); }
.sidebar__row:disabled {
  background: var(--color-disabled);
  color: var(--color-disabled-foreground);
  cursor: not-allowed;
}
.sidebar__row:focus-visible, .sidebar__brand:focus-visible, .sidebar__avatar:focus-visible, .sidebar__panel:focus-visible {
  outline: var(--sidebar-focus-outline);
  outline-offset: var(--sidebar-focus-inset);
}
.sidebar__settings {
  flex: none;
  display: flex;
  flex-direction: column;
  gap: var(--sidebar-settings-gap);
  margin-block-start: auto;
  padding: var(--sidebar-settings-padding);
  border: var(--sidebar-border);
  border-radius: var(--sidebar-settings-radius);
  background: var(--color-popover);
  color: var(--color-popover-foreground);
  box-shadow: var(--sidebar-settings-shadow);
}
.sidebar__settings .sidebar__list { gap: var(--sidebar-settings-gap); margin-block-start: var(--sidebar-gap); }
.sidebar__settings-footer { display: flex; gap: var(--sidebar-gap); }
