:root {
  --racco-canvas: #141319;
  --racco-surface: #1b1a22;
  --racco-raised: #22212a;
  --racco-hover: #292731;
  --racco-selected: #302b40;
  --racco-border: #302e38;
  --racco-border-soft: #282630;
  --racco-text: #f4f1f7;
  --racco-dim: #b0acb6;
  --racco-faint: #817d88;
  --racco-accent: #9167f3;
  --racco-accent-hi: #b79cff;
  --racco-success: #63c99d;
  --racco-danger: #ef7180;
  --racco-info: #75a7e8;
  --racco-focus: #b79cff;
  --md-primary-fg-color: #7550da;
  --md-accent-fg-color: #b79cff;
  --md-default-bg-color: var(--racco-canvas);
  --md-default-fg-color: var(--racco-text);
  --md-code-bg-color: var(--racco-raised);
  --md-typeset-a-color: var(--racco-accent-hi);
}

[data-md-color-scheme="default"] {
  --racco-canvas: #f4f3f6;
  --racco-surface: #fff;
  --racco-raised: #f7f6f8;
  --racco-hover: #efedf2;
  --racco-selected: #ebe6f5;
  --racco-border: #dedbe2;
  --racco-border-soft: #e9e7eb;
  --racco-text: #1c1a21;
  --racco-dim: #625f68;
  --racco-faint: #85818a;
  --racco-accent: #7550da;
  --racco-accent-hi: #6743ca;
  --racco-focus: #6743ca;
  --md-default-bg-color: var(--racco-canvas);
  --md-default-fg-color: var(--racco-text);
  --md-code-bg-color: var(--racco-raised);
  --md-typeset-a-color: var(--racco-accent-hi);
}

[data-md-color-scheme="slate"] {
  --md-primary-fg-color: #b79cff;
  --md-accent-fg-color: #b79cff;
  --md-typeset-a-color: #b79cff;
}

html { scroll-padding-top: 80px; }
body { font-family: "Segoe UI Variable Text", "Segoe UI", system-ui, sans-serif; background: var(--racco-canvas); }
.md-header { min-height: 64px; background: color-mix(in srgb, var(--racco-surface) 94%, transparent); color: var(--racco-text); border-bottom: 1px solid var(--racco-border-soft); box-shadow: none; backdrop-filter: blur(14px); }
.md-header__inner { min-height: 64px; gap: 4px; }
.md-header__button.md-logo { display: grid; place-items: center; width: 48px; height: 48px; margin: 8px 4px 8px 0; padding: 4px; border-radius: 12px; }
.md-header__button.md-logo:hover { background: var(--racco-hover); }
.md-header__button.md-logo img, .md-header__button.md-logo svg { width: 38px; height: 38px; }
.md-header__title { font-weight: 680; letter-spacing: -.015em; }
.md-tabs { background: var(--racco-surface); border-bottom: 1px solid var(--racco-border-soft); }
.md-tabs__link { min-height: 44px; display: flex; align-items: center; margin-top: 0; color: var(--racco-dim); opacity: 1; }
.md-tabs__link--active { color: var(--racco-accent-hi); font-weight: 650; }
.md-sidebar { padding-top: 20px; }
.md-sidebar__scrollwrap { scrollbar-color: var(--racco-border) transparent; }
.md-nav__link { min-height: 40px; align-items: center; border-radius: 9px; padding-inline: 11px; transition: background-color 150ms ease, color 150ms ease; }
.md-nav__link:hover { background: var(--racco-hover); color: var(--racco-text); }
.md-nav__link--active { background: var(--racco-selected); color: var(--racco-accent-hi); font-weight: 650; }
.md-nav__link--active .md-ellipsis { color: var(--racco-accent-hi); }
.md-nav__title { color: var(--racco-dim) !important; }
.md-main__inner { max-width: 1480px; margin-top: 0; }
.md-content { min-width: 0; }
.md-content__inner { max-width: 76ch; margin-inline: auto; padding: 42px 8px 88px; }
.md-content__inner::before { display: none; }
.md-typeset { color: var(--racco-text); font-size: .88rem; line-height: 1.72; }
.md-typeset h1 { margin-bottom: .55em; color: var(--racco-text); font-size: clamp(2rem, 4vw, 3rem); font-weight: 720; letter-spacing: -.04em; line-height: 1.08; }
.md-typeset h1 + p { max-width: 68ch; color: var(--racco-dim); font-size: 1.03rem; }
.md-typeset h2 { margin-top: 2.4em; padding-bottom: .3em; border-bottom: 1px solid var(--racco-border-soft); color: var(--racco-text); font-weight: 680; letter-spacing: -.02em; }
.md-typeset h3 { font-weight: 670; letter-spacing: -.01em; }
.md-typeset table:not([class]) { border-radius: 12px; overflow: hidden; border: 1px solid var(--racco-border); box-shadow: none; }
.md-typeset table:not([class]) th { background: var(--racco-raised); }
.md-typeset code { border-radius: 7px; }
.md-typeset a:not(.racco-role-card) { color: var(--racco-accent-hi); }
.md-typeset :where(p, li) > a:not(.racco-role-card) { text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .17em; }
.md-typeset .admonition, .md-typeset details { border-radius: 12px; background: var(--racco-surface); box-shadow: none; }
.md-search { padding-block: 10px; }
.md-search__form { min-height: 44px; border: 1px solid var(--racco-border-soft); border-radius: 11px; background: var(--racco-raised); }
.md-search__input { min-height: 44px; color: var(--racco-text); }
.md-search__input::placeholder { color: var(--racco-dim); opacity: 1; }
.md-search__icon { color: var(--racco-dim); }
.md-search-result__meta { background: var(--racco-raised); }
.md-footer, .md-footer-meta { background: var(--racco-surface); border-top: 1px solid var(--racco-border-soft); color: var(--racco-dim); }
.md-footer-meta a { color: var(--racco-text); }
.md-copyright { color: var(--racco-text) !important; opacity: 1; }
:where(a, button, input, select, summary, [tabindex]):focus-visible { outline: 3px solid var(--racco-focus) !important; outline-offset: 3px; }

.racco-hero-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin: 28px 0 42px; }
.racco-role-card { position: relative; display: flex; flex-direction: column; min-height: 124px; justify-content: center; gap: 7px; padding: 20px 48px 20px 20px; color: var(--racco-text) !important; background: var(--racco-surface); border: 1px solid var(--racco-border); border-radius: 12px; transition: background-color 160ms ease, border-color 160ms ease, transform 160ms ease; }
.racco-role-card::after { content: "→"; position: absolute; right: 20px; color: var(--racco-accent-hi); font-size: 1.35rem; }
.racco-role-card:hover { background: var(--racco-hover); border-color: var(--racco-accent); transform: translateY(-2px); }
.racco-role-card strong { font-size: 1.08rem; letter-spacing: -.01em; }
.racco-role-card span { color: var(--racco-dim); }
racco-command-explorer, racco-permission-matrix, racco-flow, racco-interface-map, racco-setup-checklist { display: block; margin: 18px 0; min-height: 44px; }
racco-version-switcher { display: block; margin: 18px 0 8px; }

@media (min-width: 1220px) {
  .md-grid { max-width: 1480px; }
  .md-search { margin-left: 1rem; }
}

@media (max-width: 767px) {
  html { scroll-padding-top: 64px; }
  .md-header, .md-header__inner { min-height: 56px; }
  .md-header__button.md-logo { width: 44px; height: 44px; margin-block: 6px; }
  .md-header__button.md-logo img, .md-header__button.md-logo svg { width: 34px; height: 34px; }
  .md-content__inner { padding: 28px 16px 72px; }
  .md-typeset { font-size: 1rem; line-height: 1.65; }
  .md-typeset h1 { font-size: 2rem; }
  .racco-hero-grid { grid-template-columns: 1fr; margin-block: 22px 34px; }
  .racco-role-card { min-height: 108px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
