.sparc-document {
  color: var(--ink-muted);
  font: 300 17px/1.7 var(--ff-body);
  min-width: 0;
}

.sparc-document > p,
.sparc-document > ul,
.sparc-document > ol,
.sparc-document > blockquote,
.sparc-document > h1,
.sparc-document > h2,
.sparc-document > h3,
.sparc-document > h4,
.sparc-document > h5,
.sparc-document > h6 {
  max-width: var(--sparc-prose-width, 790px);
}

.sparc-document p { margin: 0 0 22px; }
.sparc-document strong { color: var(--ink); font-weight: 500; }
.sparc-document a { color: var(--amber-deep); }
.sparc-document h1,
.sparc-document h2,
.sparc-document h3,
.sparc-document h4,
.sparc-document h5,
.sparc-document h6 {
  color: var(--ink);
  font-family: var(--ff-display);
  font-weight: 500;
  position: relative;
  scroll-margin-top: var(--sparc-scroll-offset, 76px);
}
.sparc-document h1 { font-size: 40px; line-height: 1.05; margin: 64px 0 20px; }
.sparc-document h2 { font-size: 34px; line-height: 1.08; margin: 58px 0 18px; }
.sparc-document h3 { font-size: 23px; line-height: 1.2; margin: 32px 0 12px; }
.sparc-document h4 { font-size: 19px; line-height: 1.25; margin: 26px 0 10px; }
.sparc-document h5,
.sparc-document h6 { font-size: 16px; line-height: 1.3; margin: 22px 0 8px; }
.sparc-document > :is(h1,h2,h3,h4,h5,h6):first-child { margin-top: 0; }
.sparc-heading-number { color: inherit; }
.sparc-heading-anchor { align-items: center; color: var(--ink-ghost) !important; display: inline-flex; height: 1em; justify-content: center; left: -24px; opacity: 0; position: absolute; text-decoration: none; top: .12em; width: 18px; }
.sparc-heading-anchor svg { display: block; height: 16px; width: 16px; }
.sparc-document h1:hover .sparc-heading-anchor,
.sparc-document h2:hover .sparc-heading-anchor,
.sparc-document h3:hover .sparc-heading-anchor,
.sparc-document h4:hover .sparc-heading-anchor,
.sparc-document h5:hover .sparc-heading-anchor,
.sparc-document h6:hover .sparc-heading-anchor,
.sparc-heading-anchor:focus-visible { opacity: 1; }
.sparc-document ul,
.sparc-document ol { margin: 0 0 24px; max-width: var(--sparc-prose-width, 790px); padding-left: 22px; }
.sparc-document li { margin: 6px 0; }
.sparc-document ul { list-style: none; padding-left: 20px; }
.sparc-document ul > li { padding-left: 18px; position: relative; }
.sparc-document ul > li::before { color: var(--amber); content: '\2013'; font-weight: 400; left: 0; line-height: inherit; position: absolute; top: 0; }
.sparc-document ol > li::marker { color: var(--amber); font-weight: 400; }
.sparc-document blockquote {
  border-left: 2px solid var(--border-strong, var(--border));
  color: var(--ink-muted);
  font-style: italic;
  margin: 24px 0;
  padding: 4px 0 4px 20px;
}
.sparc-document .sparc-formula-quote {
  background: rgba(250,248,244,.78);
  border: 1px solid var(--border);
  border-left: 3px solid var(--ink);
  color: var(--ink);
  font-style: normal;
  margin: 0 0 16px;
  max-width: 100%;
  overflow-x: hidden;
  padding: 10px 16px 9px;
  width: fit-content;
}
.sparc-document .sparc-formula-quote p { font: italic 400 18px/1.34 var(--ff-display); margin: 0; }
.sparc-document hr { border: 0; border-top: 1px solid var(--border); margin: 42px 0; }
.sparc-document code { background: var(--paper-warm); border-radius: 3px; font: 400 .88em ui-monospace,SFMono-Regular,Consolas,monospace; padding: 2px 5px; }
.sparc-document pre { background: var(--night-mid, #1C1A14); border-radius: 7px; color: rgba(255,255,255,.83); margin: 24px 0; overflow-x: auto; padding: 18px 20px; }
.sparc-document pre code { background: transparent; color: inherit; padding: 0; }
.sparc-code-block--text pre { background: var(--paper-warm); border: 1px solid var(--border); color: var(--ink-muted); white-space: pre-wrap; }

.sparc-block { position: relative; }
.sparc-table-block,
.sparc-figure,
.sparc-component,
.sparc-code-block { margin: 26px 0 36px; }
.sparc-table-block { max-width: 100%; width: fit-content; }
.sparc-table-scroll,
.sparc-figure__viewport {
  border: 1px solid var(--border);
  border-radius: 7px;
  max-height: none;
  overflow-x: auto;
  overflow-y: visible;
}
.sparc-table-scroll { max-width: 100%; width: fit-content; }
.sparc-table { border-collapse: collapse; font-size: 12.5px; line-height: 1.45; table-layout: auto; width: auto; }
.sparc-table th,
.sparc-table td { border-bottom: 1px solid var(--border-light); min-width: 9ch; overflow-wrap: break-word; padding: 10px 11px; text-align: left; vertical-align: top; white-space: normal; }
.sparc-table th { background: var(--paper); color: var(--ink); font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; }
.sparc-table th > .formula-var { display: block; font-size: 18px; font-weight: 500; letter-spacing: 0; line-height: 1.05; margin-top: 3px; text-transform: none; white-space: nowrap; }
.sparc-table th > .formula-var sub { font-size: .78em; vertical-align: -.2em; }
.sparc-table td { color: var(--ink-muted); }
.sparc-table td:first-child { color: var(--ink); font-weight: 400; }
.sparc-table tr:last-child td { border-bottom: 0; }

.sparc-figure { margin-inline: 0; }
.sparc-figure__viewport { background: var(--paper); padding: 24px 18px; }
.sparc-figure__viewport > img,
.sparc-figure__viewport svg { display: block; height: auto; margin-inline: auto; max-width: 100%; }
.sparc-figure--swimlane { max-width: 100%; }
.sparc-figure--swimlane .sparc-figure__viewport { padding: 10px; }
.sparc-swimlane { font-family: var(--ff-body); width: min(100%, 1160px); }
.sparc-swimlane__header-rule { stroke: var(--border-strong); stroke-width: 1.25; }
.sparc-swimlane__lane-divider { stroke: var(--border-light); stroke-width: 1; }
.sparc-swimlane__lane-label { fill: var(--ink-muted); font-size: 10.5px; font-weight: 500; letter-spacing: .11em; text-transform: uppercase; }
.sparc-swimlane__edge { fill: none; stroke: var(--ink-ghost); stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.35; }
.sparc-swimlane marker path { fill: var(--ink-ghost); }
.sparc-swimlane__edge-label-bg { fill: var(--paper); stroke: var(--border-light); }
.sparc-swimlane__edge-label { fill: var(--ink-muted); font-size: 10px; font-weight: 500; }
.sparc-swimlane__node { fill: var(--white); stroke: var(--border-strong); stroke-width: 1.15; }
.sparc-swimlane__node--decision { fill: var(--paper-warm); stroke: var(--amber); }
.sparc-swimlane__node--terminal { fill: var(--amber-pale); stroke: var(--amber); }
.sparc-swimlane__node-label { fill: var(--ink); font-size: 11.5px; font-weight: 400; }
.sparc-figure .mermaid { display: flex; justify-content: center; margin-inline: auto; max-width: 100%; }
.sparc-figure .mermaid:not([data-processed="true"]) { display: block; font: 400 12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; }
.sparc-figure__viewport[data-sparc-figure-trigger] { cursor: zoom-in; }
.sparc-figure__viewport[data-sparc-figure-trigger]:focus-visible { outline: 2px solid var(--amber); outline-offset: 3px; }

.sparc-expand-button { background: var(--white); border: 1px solid var(--border-strong, var(--border)); border-radius: 999px; color: var(--amber-deep); cursor: pointer; font: 500 11.5px var(--ff-body); margin-top: 10px; padding: 7px 12px; }
.sparc-expand-button:hover,
.sparc-expand-button:focus-visible { border-color: var(--amber); outline: none; }
.sparc-figure-fullscreen { background: var(--paper); color: var(--ink); height: 1px; left: -10000px; opacity: 0; pointer-events: none; position: fixed; top: 0; width: 1px; }
.sparc-figure-fullscreen:fullscreen { display: flex; flex-direction: column; height: 100dvh; inset: 0; left: 0; opacity: 1; overflow: auto; pointer-events: auto; width: 100vw; }
.sparc-figure-fullscreen__head { align-items: center; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--border-light); display: flex; flex: 0 0 auto; font: 500 19px var(--ff-display); justify-content: space-between; padding: 10px 16px; }
.sparc-figure-fullscreen__head .sparc-expand-button { margin-top: 0; }
.sparc-figure-fullscreen__tools { align-items: center; display: flex; gap: 8px; }
.sparc-figure-fullscreen__canvas { cursor: grab; flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 18px; touch-action: none; }
.sparc-figure-fullscreen__canvas[data-dragging] { cursor: grabbing; }
.sparc-figure-fullscreen__stage { align-items: flex-start; display: flex; justify-content: flex-start; min-height: 100%; min-width: 100%; transform-origin: top left; }
.sparc-figure-fullscreen__stage :is(svg,img) { flex: 0 0 auto; height: auto; margin-block: 0; margin-inline: auto; max-height: none; max-width: none; }
.sparc-table-fullscreen { background: var(--paper); color: var(--ink); height: 1px; left: -10000px; opacity: 0; overflow: hidden; pointer-events: none; position: fixed; top: 0; width: 1px; }
.sparc-table-fullscreen:fullscreen { display: flex; flex-direction: column; height: 100dvh; inset: 0; left: 0; opacity: 1; overflow: hidden; pointer-events: auto; width: 100vw; }
.sparc-table-fullscreen__head { align-items: center; background: var(--white); border-bottom: 1px solid var(--border-light); display: flex; flex: 0 0 auto; font: 500 19px var(--ff-display); justify-content: space-between; padding: 10px 16px; }
.sparc-table-fullscreen__head .sparc-expand-button { margin-top: 0; }
.sparc-table-fullscreen__canvas { flex: 1 1 auto; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 14px; }
.sparc-table-fullscreen__canvas .sparc-table { margin-inline: auto; max-width: none; width: max-content; }

.sparc-toc-rail {
  display: flex;
  flex-direction: column;
  max-height: calc(100dvh - var(--sparc-toc-offset, 82px) - 20px);
  min-height: 0;
  width: var(--sparc-toc-width, 248px);
}
.sparc-toc-rail > .sidebar-section { display: flex; flex-direction: column; max-height: inherit; min-height: 0; }
.sparc-toc { display: flex; flex: 1 1 auto; flex-direction: column; min-height: 0; width: 100%; }
.sparc-toc__label { color: var(--ink-ghost); font: 500 10px/1.2 var(--ff-body); letter-spacing: .15em; margin-bottom: 12px; text-transform: uppercase; }
.sparc-toc__list { display: flex; flex-direction: column; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding-right: 6px; scrollbar-gutter: stable; }
.sparc-toc__link { border-left: 2px solid var(--border); color: var(--ink-muted); display: block; font: 400 12px/1.35 var(--ff-body); padding: 7px 0 7px 13px; text-decoration: none; }
.sparc-toc__link[hidden] { display: none; }
.sparc-toc__link--level-2 { padding-left: 23px; }
.sparc-toc__link--level-3,
.sparc-toc__link--level-4,
.sparc-toc__link--level-5,
.sparc-toc__link--level-6 { color: var(--ink-ghost); padding-left: 33px; }
.sparc-toc__link:hover,
.sparc-toc__link:focus-visible,
.sparc-toc__link[aria-current="location"] { border-left-color: var(--amber); color: var(--amber-deep); }
.sparc-toc__link[aria-current="location"] { font-weight: 500; }

.sparc-callout { background: var(--paper-warm); border-left: 4px solid var(--amber); margin: 28px 0; padding: 20px 24px; }
.sparc-callout__label { color: var(--amber-deep); font-size: 10px; font-weight: 500; letter-spacing: .12em; margin-bottom: 8px; text-transform: uppercase; }
.formula-var { color: var(--ink); font-family: var(--ff-display); font-size: 1.05em; font-style: italic; font-weight: 400; }
.formula-var sub { font-size: .68em; letter-spacing: .01em; vertical-align: -.28em; }
.sparc-callout--insight { background: var(--blue-pale); border-left-color: var(--blue); }
.sparc-callout--note { border-left-color: var(--ink-muted); }
.sparc-callout > :last-child { margin-bottom: 0; }

@media (max-width: 900px) {
  .sparc-document h1 { font-size: 34px; }
  .sparc-document h2 { font-size: 29px; }
}

@media (max-width: 700px) {
  .sparc-table-block,
  .sparc-table-scroll { max-width: 100%; width: 100%; }
  .sparc-figure__viewport { border-left: 0; border-radius: 0; border-right: 0; margin-left: -12px; margin-right: -12px; padding-left: 12px; padding-right: 12px; }
  .sparc-figure--swimlane .sparc-figure__viewport { overflow-x: auto; }
  .sparc-figure--swimlane .sparc-swimlane { margin-inline: 0; max-width: none; width: 900px; }
}

@media print {
  .sparc-expand-button,
  .sparc-figure-fullscreen,
  .sparc-table-fullscreen,
  .para-note-btn,
  .feedback-marker { display: none !important; }
  .sparc-table-scroll,
  .sparc-figure__viewport { overflow: visible; }
  .sparc-figure--swimlane .sparc-swimlane { max-width: 100%; width: auto; }
  .sparc-table-block,
  .sparc-figure,
  .sparc-code-block,
  .sparc-callout { break-inside: avoid; }
}
