chiltepin-render 0.33.2 → 0.33.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -26,7 +26,7 @@ declare const LIGHT_SET = " /* The skin's role tokens (packages/render/DESIGN.m
|
|
|
26
26
|
declare const DARK_SET = " --paper:#15171d; --paper-2:#1d2028; --ink:#eceae4; --muted:#b4bac6; --soft:#9da5b3;\n --rule:rgba(236,234,228,.13); --rule-solid:#7d8499; --rule-table:rgba(236,234,228,.28);\n --accent:#e4744c; --accent-tint:rgba(228,116,76,.14); --link:#93b7e8;\n --negative:#f5a39b; --negative-tint:rgba(245,163,155,.14);\n --ink-2:#adadab; --ink-3:#62646a;\n --series-1:#9db08f; --series-2:#8aa6c6; --series-3:#d1ac72; --series-4:#c48c72; --series-5:#a094ab;\n --code-bg:#0e1015; --code-fg:#eceae4;\n /* The drawing well: a step below the panel, with a faint lift at the centre. */\n --stage:#121419; --stage-glow:rgba(236,234,228,.05);\n";
|
|
27
27
|
/** The reader's OS picks the set — used only for `colorScheme: system`. */
|
|
28
28
|
declare const systemSchemeCss = "@media (prefers-color-scheme: light){:root:not([data-theme=\"dark\"]){ /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n color-scheme:light;}}";
|
|
29
|
-
declare const houseCss = "*{box-sizing:border-box;margin:0;padding:0;}\nhtml{scroll-behavior:smooth;}\n/* Design tokens live on :root so an override (applied on :root) reaches\n the whole page \u2014 body chrome included, not just .docskin content. */\n:root{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n --paper:#15171d; --paper-2:#1d2028; --ink:#eceae4; --muted:#b4bac6; --soft:#9da5b3;\n --rule:rgba(236,234,228,.13); --rule-solid:#7d8499; --rule-table:rgba(236,234,228,.28);\n --accent:#e4744c; --accent-tint:rgba(228,116,76,.14); --link:#93b7e8;\n --negative:#f5a39b; --negative-tint:rgba(245,163,155,.14);\n --ink-2:#adadab; --ink-3:#62646a;\n --series-1:#9db08f; --series-2:#8aa6c6; --series-3:#d1ac72; --series-4:#c48c72; --series-5:#a094ab;\n --code-bg:#0e1015; --code-fg:#eceae4;\n /* The drawing well: a step below the panel, with a faint lift at the centre. */\n --stage:#121419; --stage-glow:rgba(236,234,228,.05);\n color-scheme:dark;\n /* Figure scale: decks set it on the slide root to enlarge small diagrams. */\n --scale:1;\n /* Legacy token names \u2014 aliases of the roles above so the renderers that\n have not migrated keep working. New code never uses these. */\n --navy:var(--ink); --navy-tint:var(--paper-2); --blue:var(--link); --light-blue:var(--paper-2);\n --charcoal:var(--ink); --slate:var(--muted); --gray:var(--muted); --light-gray:var(--paper-2);\n --highlight:var(--accent); --highlight-soft:var(--accent-tint);\n --positive:var(--muted); --positive-soft:var(--paper-2); --negative-soft:var(--negative-tint);\n --purple:var(--muted); --purple-soft:var(--paper-2); --teal:var(--muted); --teal-soft:var(--paper-2); --white:var(--paper);\n --radius:6px;\n --font-display:\"Inter\",\"SF Pro Display\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;\n --font-body:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;\n --font-mono:\"SF Mono\",ui-monospace,Menlo,Consolas,\"Courier New\",monospace;}\n/* Light: the explicit choice (a root or docskin stamp) and the print look. */\n:root[data-theme=\"light\"],[data-theme=\"light\"] .docskin,.docskin[data-theme=\"light\"]{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n color-scheme:light;\n}\n:root[data-theme=\"dark\"],[data-theme=\"dark\"] .docskin,.docskin[data-theme=\"dark\"]{\n --paper:#15171d; --paper-2:#1d2028; --ink:#eceae4; --muted:#b4bac6; --soft:#9da5b3;\n --rule:rgba(236,234,228,.13); --rule-solid:#7d8499; --rule-table:rgba(236,234,228,.28);\n --accent:#e4744c; --accent-tint:rgba(228,116,76,.14); --link:#93b7e8;\n --negative:#f5a39b; --negative-tint:rgba(245,163,155,.14);\n --ink-2:#adadab; --ink-3:#62646a;\n --series-1:#9db08f; --series-2:#8aa6c6; --series-3:#d1ac72; --series-4:#c48c72; --series-5:#a094ab;\n --code-bg:#0e1015; --code-fg:#eceae4;\n /* The drawing well: a step below the panel, with a faint lift at the centre. */\n --stage:#121419; --stage-glow:rgba(236,234,228,.05);\n color-scheme:dark;\n}\n@media print{\n :root{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n color-scheme:light;\n }\n}\nbody{background:var(--white);color:var(--charcoal);font-family:var(--font-body);font-size:15px;line-height:1.6;}\n.docskin{\n background:var(--white); color:var(--charcoal); font-family:var(--font-body); font-size:15px; line-height:1.6;\n max-width:var(--page-max,1180px); margin:0 auto; padding:0 56px 128px;\n}\n.docskin .cover-pad{padding:0 0 40px;margin-bottom:56px;border-bottom:1px solid var(--rule);}\n.docskin .cover-logo{display:block;height:52px;width:auto;max-width:260px;margin:0 0 28px;}\n.docskin .cover-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gray);font-weight:600;margin-bottom:32px;}\n.docskin .cover-meta .accent{color:var(--highlight);}\n.docskin .cover-title{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,5.2vw,62px);line-height:1.08;letter-spacing:-.015em;color:var(--navy);margin:0 0 22px;}\n.docskin .cover-sub{font-size:19px;line-height:1.55;color:var(--slate);max-width:860px;margin:0 0 36px;}\n.docskin .section{padding:0;margin-bottom:64px;}\n.docskin .section > *:last-child{margin-bottom:0;}\n.docskin .section-num{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--soft);font-weight:700;margin-bottom:8px;}\n.docskin .section-head{margin-bottom:28px;padding-bottom:16px;border-bottom:2px solid var(--navy);}\n.docskin .section-head.bare{border-bottom:0;padding-bottom:0;margin-bottom:14px;}\n.docskin .section-head.bare .section-num{margin-bottom:0;font-size:10px;opacity:.8;}\n.docskin .section-head .section-title{border-bottom:0;padding-bottom:0;margin-bottom:14px;}\n.docskin .section-title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3.6vw,40px);line-height:1.15;letter-spacing:-.01em;color:var(--navy);margin:0 0 14px;padding-bottom:12px;border-bottom:2px solid var(--navy);}\n.docskin .section-lede{font-size:16px;color:var(--slate);line-height:1.6;max-width:860px;margin:0;}\n.docskin .section-block{margin-bottom:64px;scroll-margin-top:16px;}\n.docskin .section-block:last-child{margin-bottom:0;}\n.docskin .block-anchor{position:relative;display:block;height:0;scroll-margin-top:16px;}\n.docskin .diagram{margin:28px 0 36px;border:1px solid var(--rule-solid);background:var(--paper-2);padding:20px 24px 18px;border-radius:6px;box-shadow:none;}\n/* The dot grid sits only behind the drawing, never under the text around it. */\n.docskin .diagram-stage{background-color:var(--stage);background-image:radial-gradient(var(--rule) 1px,transparent 1px),radial-gradient(ellipse 65% 55% at 50% 42%,var(--stage-glow),transparent 100%);background-size:24px 24px,100% 100%;background-repeat:repeat,no-repeat;background-position:center,center;padding:12px 0;border-radius:4px;box-shadow:inset 0 0 0 1px var(--rule);}\n.docskin .diagram-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--rule);}\n.docskin .diagram-eyebrow{display:inline-flex;align-items:baseline;gap:6px;color:var(--soft);}\n.docskin .diagram-tag{color:var(--soft);}\n.docskin .diagram-tag-sep{color:var(--soft);}\n.docskin .diagram-tag-method{color:var(--accent);font-weight:600;}\n.docskin .diagram-tag-path{color:var(--muted);text-transform:none;letter-spacing:.02em;font-size:10px;}\n.docskin .diagram-title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink);flex:1;}\n.docskin .diagram-fignum{font-size:10px;color:var(--soft);text-transform:uppercase;letter-spacing:.1em;font-weight:700;}\n.docskin .diagram-desc{font-size:14px;color:var(--muted);margin:0 0 12px;}\n.docskin .diagram svg{display:block;margin:0 auto;max-width:100%;height:auto;}\n.docskin .diagram-stage--wide{overflow-x:auto;overscroll-behavior-x:contain;}\n.docskin .diagram-stage--wide svg{margin:0;}\n@media print{.docskin .diagram-stage--wide{overflow:visible;}.docskin .diagram-stage--wide svg{width:auto!important;max-width:100%!important;}}\n.docskin.slide .diagram-stage--wide{overflow:visible;}.docskin.slide .diagram-stage--wide svg{width:auto!important;max-width:100%!important;}\n/* Type roles (DESIGN.md \u203A Type roles). Fixed figure sizes; usable on SVG\n <text> (fill) and HTML (color). Every SVG text gets the paper halo so it\n survives crossing a line. */\n.docskin .t-name{font-family:var(--font-body);font-size:13px;font-weight:600;fill:var(--ink);color:var(--ink);}\n.docskin .t-sub{font-family:var(--font-mono);font-size:10px;font-weight:400;fill:var(--muted);color:var(--muted);}\n.docskin .t-eyebrow{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;fill:var(--soft);color:var(--soft);}\n.docskin .t-arrow{font-family:var(--font-mono);font-size:9.5px;font-weight:400;letter-spacing:.04em;fill:var(--muted);color:var(--muted);}\n.docskin .t-badge{font-family:var(--font-mono);font-size:9px;font-weight:600;fill:var(--muted);color:var(--muted);}\n.docskin svg .t-name,.docskin svg .t-sub,.docskin svg .t-eyebrow,.docskin svg .t-arrow,.docskin svg .t-badge{paint-order:stroke;stroke:var(--paper);stroke-width:2.5px;stroke-linejoin:round;}\n.docskin svg .t-name{stroke-width:3px;}\n/* Colour modifiers for the type roles \u2014 the only colours a figure spends. */\n.docskin .c-ink{fill:var(--ink);color:var(--ink);} .docskin .c-muted{fill:var(--muted);color:var(--muted);} .docskin .c-soft{fill:var(--soft);color:var(--soft);}\n.docskin .c-accent{fill:var(--accent);color:var(--accent);} .docskin .c-negative{fill:var(--negative);color:var(--negative);} .docskin .c-link{fill:var(--link);color:var(--link);}\n/* Legend strip: a hairline row under the drawing, one item per encoding used. */\n.docskin .diagram-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .lg-title{margin-right:2px;}\n.docskin .lg-item{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;color:var(--muted);}\n.docskin .lg-sw{flex:none;display:block;}\n.docskin .lg-chip{display:inline-block;padding:1px 5px;border:1px solid var(--rule-solid);border-radius:2px;background:var(--paper);color:var(--muted);line-height:1.3;}\n/* sequence \u2014 paper actor heads, hairline lifelines, arrows per kind, hollow badges */\n.docskin .lane-head{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;} .docskin .lane-head.ext{stroke-dasharray:4 3;}\n.docskin .lane-head-text{text-anchor:middle;}\n.docskin .lane-head-sub{text-anchor:middle;}\n.docskin .lifeline{stroke:var(--rule-solid);stroke-width:1;stroke-dasharray:4 3;}\n.docskin .activation{fill:var(--paper-2);stroke:var(--ink);stroke-width:1;}\n.docskin .msg-line{stroke:var(--muted);stroke-width:1.5;fill:none;}\n.docskin .msg-line.dashed{stroke-dasharray:5 4;} .docskin .msg-line.async{stroke-width:1.25;stroke-dasharray:2 3;}\n.docskin .msg-line.err{stroke:var(--negative);} .docskin .msg-line.accent{stroke:var(--accent);stroke-width:1.75;}\n.docskin .msg-text.em{fill:var(--ink);} .docskin .msg-text.err{fill:var(--negative);} .docskin .msg-text.note{fill:var(--soft);font-style:italic;} .docskin .msg-text.accent{fill:var(--accent);font-weight:600;}\n.docskin .msg-line.self{fill:none;}\n/* combined fragments (alt/opt/loop/par/break/critical): a paper-2 panel, a paper tab chip, the guard in brackets */\n.docskin .seq-frame{fill:var(--paper-2);fill-opacity:.6;stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-frame-tab{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-frame-else{stroke:var(--rule-solid);stroke-width:1;stroke-dasharray:4 3;}\n/* note boxes: paper fill, hairline stroke, folded corner */\n.docskin .seq-note{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-note-fold{fill:none;stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-note-text{font-style:italic;}\n.docskin .step-badge{fill:var(--paper);stroke:var(--muted);stroke-width:1;} .docskin .step-badge.err{stroke:var(--negative);}\n.docskin .step-badge-text{text-anchor:middle;fill:var(--ink);}\n.docskin .seq-steps{margin-top:16px;padding:14px 18px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:4px;}\n.docskin .seq-steps-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--soft);font-weight:600;margin-bottom:8px;font-family:var(--font-mono);}\n.docskin .seq-steps ol{list-style:none;padding:0;margin:0;}\n.docskin .seq-steps li{padding:7px 0 8px 40px;position:relative;border-bottom:1px solid var(--rule);}\n.docskin .seq-steps li:last-child{border-bottom:none;}\n/* The number is emitted by the renderer (the message's DIAGRAM number, so an\n annotation on step 4 reads \u2463 here even when steps 1-3 have no note). */\n.docskin .seq-steps .step-n{position:absolute;left:2px;top:7px;width:20px;height:20px;border:1px solid var(--muted);border-radius:50%;color:var(--muted);font-family:var(--font-mono);font-size:9px;font-weight:600;text-align:center;line-height:18px;background:var(--paper);}\n/* frame dividers mirror the diagram's frames: \"ALT \u00B7 token valid\", \"else \u00B7 expired\" */\n.docskin .seq-steps li.step-frame{padding:8px 0 4px;font-family:var(--font-mono);font-size:10px;color:var(--muted);border-bottom:1px dashed var(--rule);}\n.docskin .seq-steps li.step-frame .step-frame-tag{display:inline-block;padding:1px 6px;margin-right:8px;border:1px solid var(--rule-solid);border-radius:2px;background:var(--paper);color:var(--soft);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;}\n.docskin .seq-steps li.step-frame.else{padding-left:12px;}\n.docskin .seq-steps li.err .step-n{border-color:var(--negative);color:var(--negative);}\n.docskin .seq-steps li.err{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;border-bottom:1px solid var(--rule);padding:7px 0 8px 40px;margin:0;white-space:normal;}\n.docskin .seq-steps li.err:last-child{border-bottom:none;}\n.docskin .diagram-foot{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:14px;font-size:12.5px;color:var(--ink);}\n.docskin .diagram-foot strong{color:var(--muted);font-weight:600;}\n.docskin .step-actor{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);margin-right:8px;text-transform:uppercase;letter-spacing:.06em;}\n.docskin .step-actor.err{color:var(--negative);background:none;border:none;padding:0;margin:0 8px 0 0;font-size:10px;white-space:normal;}\n.docskin .step-summary{font-size:13px;color:var(--ink);}\n/* c4 */\n.docskin .c4-name{font-family:var(--font-display);font-size:14px;font-weight:700;}\n.docskin .c4-tech{font-family:var(--font-mono);font-size:9.5px;}\n.docskin .c4-desc{font-family:var(--font-body);font-size:10px;}\n.docskin .c4-chip{font-family:var(--font-body);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}\n.docskin .edge-label{font-family:var(--font-body);font-size:9.5px;fill:var(--slate);text-anchor:middle;}\n.docskin .edge-label.err{fill:var(--negative);font-weight:700;}\n/* numbered edge steps (dense diagrams): circled numerals on arrows + legend below */\n.docskin .edge-steps{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .edge-step{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--slate);}\n.docskin .edge-step b{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--charcoal);color:var(--charcoal);font-family:var(--font-mono);font-size:10px;font-weight:700;background:var(--white);}\n.docskin .edge-step.err{color:var(--negative);}\n.docskin .edge-step.err b{border-color:var(--negative);color:var(--negative);}\n.docskin .c4-boundary{fill:none;stroke:var(--navy);stroke-width:1.4;stroke-dasharray:8 5;}\n.docskin .c4-boundary-label{font-family:var(--font-body);font-size:10px;font-weight:700;fill:var(--navy);letter-spacing:.08em;text-transform:uppercase;}\n/* code block */\n/* Code surfaces are a dark editor theme everywhere (code block, gallery, sequence). */\n.docskin pre{background:var(--code-bg);color:var(--code-fg);padding:18px 20px;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;overflow-x:auto;white-space:pre;margin:0;-moz-tab-size:2;tab-size:2;}\n.docskin pre .kw{color:var(--code-kw);font-weight:600;} .docskin pre .com{color:var(--code-com);font-style:italic;}\n.docskin pre .str{color:var(--code-str);} .docskin pre .num{color:var(--code-num);} .docskin pre .fn{color:var(--code-fn);} .docskin pre .ty{color:var(--code-ty);}\n.docskin .code-block{margin:14px 0 18px;border-radius:6px;overflow:hidden;border:1px solid var(--rule-solid);box-shadow:none;}\n.docskin .code-header{display:flex;justify-content:space-between;align-items:center;padding:9px 16px;background:var(--code-bg);color:var(--code-muted);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid var(--code-rule);}\n/* Three quiet dots stand in for the traffic lights on full code blocks (not the tighter gallery cards). */\n.docskin .code-block>.code-header::before{content:\"\";flex:none;width:9px;height:9px;border-radius:50%;background:var(--code-muted);box-shadow:15px 0 0 var(--code-muted),30px 0 0 var(--code-muted);opacity:.4;margin-right:38px;}\n.docskin .code-block>pre{border-radius:0;}\n/* er \u2014 paper cards, an eyebrow + name header, mono rows with # (pk) and \u2192 (fk) */\n.docskin .er-head-text{text-anchor:start;}\n.docskin .er-col{font-family:var(--font-mono);font-size:10px;fill:var(--ink);} .docskin .er-col.dim{fill:var(--soft);}\n.docskin .er-key{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:var(--muted);}\n.docskin .er-rowline{stroke:var(--rule);stroke-width:1;}\n.docskin .er-headline{stroke:var(--rule-solid);stroke-width:1;}\n.docskin .er-panel{fill:var(--paper-2);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .er-panel-tab{fill:var(--soft);}\n.docskin .er-card{fill:var(--muted);}\n.docskin .er-rel{fill:var(--muted);}\n/* block / state / flow shared text */\n.docskin .blk-name{font-family:var(--font-display);font-size:13px;font-weight:700;}\n.docskin .blk-tech{font-family:var(--font-mono);font-size:9.5px;}\n.docskin .blk-chip{font-family:var(--font-body);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}\n.docskin .grp-label{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}\n.docskin .fc-label{text-anchor:middle;}\n.docskin .endpoint-card{border:1px solid var(--rule);margin:16px 0;padding:18px 22px;background:var(--white);}\n.docskin .endpoint-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--rule);}\n/* The method chip is the card's one accent (DESIGN.md: the endpoint method may take it); DELETE reads as negative. */\n.docskin .endpoint-method{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 9px;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--accent);border-radius:3px;background:var(--paper);}\n.docskin .endpoint-method.delete{color:var(--negative);border-color:var(--negative);}\n.docskin .endpoint-path{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--ink);flex:1;}\n.docskin .endpoint-status{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);font-weight:700;}\n.docskin .endpoint-desc{font-size:13px;color:var(--muted);margin:0 0 8px;}\n.docskin .endpoint-card h4{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin:14px 0 6px;}\n.docskin .endpoint-card ul{margin:0 0 0 20px;} .docskin .endpoint-card li{font-size:13px;margin-bottom:3px;}\n.docskin code{font-family:var(--font-mono);font-size:.86em;background:var(--light-gray);padding:2px 6px;border-radius:2px;border:1px solid var(--rule);}\n.docskin .transition-table{width:100%;border-collapse:collapse;margin:16px 0 8px;font-size:12px;}\n/* Table headers everywhere: a paper-2 band with eyebrow text in muted (4.5:1 floor) \u2014 never a dark fill. */\n.docskin .transition-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .transition-table th{text-align:left;padding:8px 10px;font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--rule-solid);}\n.docskin .transition-table td{padding:8px 10px;border-bottom:1px solid var(--rule-table);vertical-align:top;}\n.docskin .transition-table td.t-num{width:30px;padding-right:2px;}\n/* Status chips (the one encoding for every status / priority / tone pill in the skin):\n a WORD plus one of \u2014 ink outline (default) \u00B7 paper-2 fill (done / settled) \u00B7\n accent outline (current / recommended) \u00B7 negative outline (blocked / error) \u00B7\n dashed outline (todo / future / not started). Never a hue per status. */\n.docskin .pill{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .pill-init{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .pill-active{border-color:var(--ink);}\n.docskin .pill-wait{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .pill-end{border-color:var(--accent);color:var(--accent);}\n/* presentation: comparison table */\n.docskin .pres-table{width:100%;border-collapse:separate;border-spacing:0;margin:14px 0;font-size:13px;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;}\n.docskin .pres-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .pres-table th{padding:9px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .pres-table th.r,.docskin .pres-table td.r{text-align:right;} .docskin .pres-table th.c,.docskin .pres-table td.c{text-align:center;}\n.docskin .pres-table th.hi{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .pres-table td{padding:9px 12px;border-bottom:1px solid var(--rule-table);} .docskin .pres-table tbody tr:last-child td{border-bottom:none;}\n.docskin .pres-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent);}\n.docskin .pres-table td.lead{font-weight:600;color:var(--ink);}\n.docskin .pres-table td.hi{background:var(--accent-tint);}\n.docskin .cell-pos{color:var(--ink);font-weight:700;} .docskin .cell-neg{color:var(--negative);font-weight:700;} .docskin .cell-warn{color:var(--accent);font-weight:700;} .docskin .cell-muted{color:var(--muted);}\n.docskin .badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:700;border:1px solid currentColor;background:var(--paper);}\n.docskin .badge.yes{color:var(--ink);} .docskin .badge.no{color:var(--negative);}\n.docskin .tbl-note{font-size:11px;color:var(--muted);font-style:italic;margin-top:6px;}\n/* presentation: stat cards */\n.docskin .stat-row{display:flex;flex-wrap:wrap;gap:14px;margin:16px 0;}\n.docskin .stat-card{flex:1 1 150px;border:1px solid var(--rule-solid);border-top:2px solid var(--ink);padding:16px 18px;background:var(--paper);border-radius:0 0 6px 6px;}\n.docskin .stat-value{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--ink);line-height:1;}\n.docskin .stat-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin-top:8px;}\n.docskin .stat-delta{font-family:var(--font-mono);font-size:12px;font-weight:700;margin-top:6px;}\n.docskin .stat-delta.up{color:var(--ink);} .docskin .stat-delta.down{color:var(--negative);} .docskin .stat-delta.flat{color:var(--muted);}\n/* presentation: timeline \u2014 hollow dots; done = paper-2 fill, current = the accent, next/future = dashed */\n.docskin .tl{position:relative;margin:18px 0;padding-left:8px;}\n.docskin .tl::before{content:\"\";position:absolute;left:9px;top:6px;bottom:6px;width:1px;background:var(--rule-solid);}\n.docskin .tl-item{position:relative;padding:0 0 18px 30px;}\n.docskin .tl-item:last-child{padding-bottom:0;}\n.docskin .tl-dot{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1.5px solid var(--muted);box-sizing:border-box;}\n.docskin .tl-dot.done,.docskin .tl-dot.past{background:var(--paper-2);border-color:var(--ink);} .docskin .tl-dot.current{background:var(--accent);border-color:var(--accent);} .docskin .tl-dot.next,.docskin .tl-dot.future{border-style:dashed;border-color:var(--ink);}\n.docskin .tl-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}\n.docskin .tl-date{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;}\n/* The status word beside the dot, in the chip encoding. */\n.docskin .tl-status{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;border-radius:2px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .tl-status.tl-s-done{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .tl-status.tl-s-current{color:var(--accent);border-color:var(--accent);}\n.docskin .tl-status.tl-s-next,.docskin .tl-status.tl-s-future{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .tl-label{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink);margin:1px 0 2px;}\n.docskin .tl-desc{font-size:12.5px;color:var(--muted);}\n.docskin .toc{margin:18px 0 6px;padding:14px 20px;background:var(--light-gray);border:1px solid var(--rule);border-left:4px solid var(--highlight);border-radius:0 var(--radius) var(--radius) 0;}\n.docskin .toc-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--navy);font-weight:700;margin-bottom:8px;}\n.docskin .toc ol{margin:0;padding-left:20px;} .docskin .toc li{font-size:13px;margin-bottom:4px;color:var(--slate);}\n.docskin .toc li span{color:var(--gray);font-family:var(--font-mono);font-size:11px;}\n/* callouts */\n/* Tones by left rule only: note = hairline \u00B7 tip = accent \u00B7 warn / danger = negative \u00B7 info = link \u00B7 success = ink on paper-2. Text is always ink. */\n.docskin .callout{border:1px solid var(--rule-solid);padding:14px 18px;margin:14px 0;border-radius:6px;background:var(--paper);}\n.docskin .callout.tip{border-left:3px solid var(--accent);border-radius:0 6px 6px 0;} .docskin .callout.warn,.docskin .callout.danger{border-left:3px solid var(--negative);border-radius:0 6px 6px 0;} .docskin .callout.info{border-left:3px solid var(--link);border-radius:0 6px 6px 0;} .docskin .callout.success{border-left:3px solid var(--ink);border-radius:0 6px 6px 0;background:var(--paper-2);}\n.docskin .callout-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:5px;color:var(--muted);}\n.docskin .callout.tip .callout-title{color:var(--accent);} .docskin .callout.warn .callout-title,.docskin .callout.danger .callout-title{color:var(--negative);} .docskin .callout.info .callout-title{color:var(--link);}\n.docskin .callout-body{font-size:14.5px;color:var(--ink);line-height:1.6;}\n.docskin .callout-body p{margin:0 0 8px;}\n.docskin .callout-body p:last-child{margin-bottom:0;}\n/* prose */\n.docskin .prose h2{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,3vw,32px);line-height:1.15;letter-spacing:-.015em;color:var(--navy);margin:40px 0 14px;padding-bottom:12px;border-bottom:2px solid var(--navy);}\n.docskin .prose h2:first-child{margin-top:0;}\n.docskin .prose h3{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.005em;color:var(--navy);margin:36px 0 12px;}\n.docskin .prose h4{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin:22px 0 8px;}\n.docskin .prose p{font-size:15.5px;color:var(--charcoal);margin:0 0 14px;line-height:1.65;max-width:820px;}\n.docskin .prose ul,.docskin .prose ol{margin:0 0 14px 22px;}\n.docskin .prose li{font-size:15px;color:var(--charcoal);margin-bottom:5px;max-width:820px;line-height:1.6;}\n.docskin .prose blockquote{border-left:2px solid var(--ink);padding:4px 14px;margin:14px 0;color:var(--muted);font-style:italic;font-family:var(--font-display);}\n.docskin .prose code{font-family:var(--font-mono);font-size:.86em;background:var(--light-gray);padding:2px 6px;border-radius:2px;color:var(--charcoal);border:1px solid var(--rule);}\n.docskin .prose strong{font-weight:700;color:var(--charcoal);}\n.docskin .prose em{font-style:italic;}\n/* glossary */\n.docskin .jr-emotion{margin-top:10px;}\n.docskin .jr-emotion-label{font-size:10px;color:var(--gray);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;}\n.docskin .glossary{margin:10px 0;}\n.docskin .glossary .row{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--rule);}\n.docskin .glossary dt{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--navy);}\n.docskin .glossary dd{margin:0;font-size:14px;color:var(--slate);}\n.docskin .glossary .avoid{font-size:12px;color:var(--gray);}\n/* pros / cons */\n.docskin .pc{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0;}\n.docskin .pc-col{border:1px solid var(--rule-solid);padding:14px 16px;background:var(--paper);border-radius:6px;}\n.docskin .pc-col.pro{border-top:2px solid var(--ink);} .docskin .pc-col.con{border-top:2px solid var(--negative);}\n.docskin .pc-head{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:8px;}\n.docskin .pc-col.pro .pc-head{color:var(--muted);} .docskin .pc-col.con .pc-head{color:var(--negative);}\n.docskin .pc-item{font-size:13px;color:var(--ink);padding:4px 0 4px 22px;position:relative;}\n.docskin .pc-item::before{position:absolute;left:0;top:4px;font-weight:700;}\n.docskin .pc-col.pro .pc-item::before{content:\"\\2713\";color:var(--ink);} .docskin .pc-col.con .pc-item::before{content:\"\\2717\";color:var(--negative);}\n/* current / target */\n.docskin .ct{display:flex;align-items:stretch;margin:12px 0;}\n.docskin .ct-panel{flex:1;border:1px solid var(--rule);padding:14px 18px;}\n.docskin .ct-panel.cur{background:var(--light-gray);} .docskin .ct-panel.tgt{border-top:3px solid var(--navy);}\n.docskin .ct-arrow{display:flex;align-items:center;padding:0 14px;color:var(--highlight);font-size:22px;font-weight:700;}\n.docskin .ct-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--gray);margin-bottom:8px;}\n.docskin .ct-panel.tgt .ct-label{color:var(--navy);}\n.docskin .ct-item{font-size:13px;color:var(--slate);padding:3px 0;}\n/* kanban */\n.docskin .kanban{display:flex;gap:14px;margin:12px 0;overflow-x:auto;}\n.docskin .kan-col{flex:1 1 0;min-width:150px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;}\n.docskin .kan-head{font-family:var(--font-mono);font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:500;padding:9px 12px 7px;border-bottom:1px solid var(--rule);}\n.docskin .kan-card{background:var(--paper);border:1px solid var(--rule-solid);margin:8px;padding:9px 11px;border-radius:4px;}\n.docskin .kan-card-title{font-size:13px;font-weight:600;color:var(--ink);}\n.docskin .kan-card-tag{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:5px;border:1px solid var(--rule-solid);border-radius:2px;padding:1px 5px;background:var(--paper);}\n/* pass 2 chart labels */\n.docskin .cycle-center text{font-family:var(--font-mono);font-size:12px;font-weight:600;text-anchor:middle;fill:var(--gray);}\n.docskin .pyr-label{font-family:var(--font-display);font-size:12.5px;font-weight:700;fill:var(--white);text-anchor:middle;}\n.docskin .pyr-desc{font-family:var(--font-body);font-size:10px;fill:var(--white);text-anchor:middle;opacity:.85;}\n/* indented tree */\n.docskin .tree-list{margin:10px 0;font-size:13px;}\n.docskin .tree-row{display:flex;align-items:baseline;padding:3px 0;}\n.docskin .tree-row .tw{color:var(--gray);margin-right:8px;font-family:var(--font-mono);font-size:11px;}\n.docskin .tree-row.branch .tw{color:var(--navy);}\n.docskin .tree-row .tlabel{color:var(--charcoal);font-family:var(--font-mono);}\n.docskin .tree-row.branch .tlabel{font-weight:700;color:var(--navy);}\n.docskin .tree-row .tnote{color:var(--gray);font-size:11px;margin-left:10px;font-family:var(--font-body);font-style:italic;}\n/* agenda */\n.docskin .agenda{margin:10px 0;}\n.docskin .agenda-row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--rule);}\n.docskin .agenda-time{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);}\n.docskin .agenda-dur{font-family:var(--font-mono);font-size:10px;color:var(--gray);margin-top:2px;}\n.docskin .agenda-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--charcoal);}\n.docskin .agenda-owner{font-size:10.5px;color:var(--highlight);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-left:8px;}\n.docskin .agenda-desc{font-size:12.5px;color:var(--slate);margin-top:2px;}\n/* tracker */\n.docskin .trk{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px;}\n.docskin .trk thead{background:var(--paper-2);color:var(--muted);} .docskin .trk th{padding:8px 10px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .trk td{padding:8px 10px;border-bottom:1px solid var(--rule-table);vertical-align:middle;}\n.docskin .trk tr.done .trk-task{text-decoration:line-through;color:var(--muted);}\n.docskin .st{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .st.todo{border-style:dashed;border-color:var(--muted);color:var(--muted);} .docskin .st.doing{border-color:var(--accent);color:var(--accent);} .docskin .st.done{background:var(--paper-2);border-color:var(--paper-2);} .docskin .st.blocked{border-color:var(--negative);color:var(--negative);}\n.docskin .pri{font-family:var(--font-mono);font-size:10px;font-weight:700;} .docskin .pri.high{color:var(--negative);} .docskin .pri.med{color:var(--ink);} .docskin .pri.low{color:var(--muted);}\n/* cluster */\n.docskin .cl-head{font-family:var(--font-display);font-size:13px;font-weight:700;fill:var(--ink);}\n/* user story */\n.docskin .story{border:1px solid var(--rule);border-left:4px solid var(--navy);padding:18px 22px;margin:12px 0;background:var(--white);border-radius:0 var(--radius) var(--radius) 0;}\n.docskin .story-stmt{font-family:var(--font-display);font-size:18px;line-height:1.55;color:var(--charcoal);}\n.docskin .story-stmt b{color:var(--navy);}\n.docskin .story-meta{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}\n.docskin .story-chip{font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:3px;background:var(--light-gray);color:var(--slate);border:1px solid var(--rule);}\n.docskin .story-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}\n.docskin .story-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-right:auto;}\n.docskin .story-chip.pts{background:var(--paper);color:var(--ink);border-color:var(--ink);}\n.docskin .ac-title{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin:16px 0 8px;}\n.docskin .ac-item{border:1px solid var(--rule-solid);padding:10px 14px;margin-bottom:8px;background:var(--paper);border-radius:4px;}\n.docskin .gwt{display:grid;grid-template-columns:60px 1fr;gap:4px 12px;font-size:13px;}\n.docskin .gwt .k{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding-top:1px;color:var(--muted);}\n.docskin .gwt .k.t{color:var(--ink);}\n.docskin .gwt .v{color:var(--charcoal);}\n.docskin .links-row{display:flex;gap:8px;flex-wrap:wrap;}\n.docskin .link-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--navy);border:1px solid var(--navy);background:var(--white);padding:5px 11px;border-radius:20px;cursor:pointer;}\n.docskin .link-chip .lt{color:var(--gray);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;}\na.link-chip,a.st-link{text-decoration:none;color:inherit;}\na.link-chip:hover,a.st-link:hover{text-decoration:underline;}\n.docskin .footer{margin-top:8px;padding:18px 32px 28px;border-top:2px solid var(--navy);font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.1em;font-weight:700;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}\n.docskin .footer .accent{color:var(--highlight);}\n.docskin .layer-label{font-family:var(--font-body);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}\n.docskin .uml-sep{stroke:var(--rule);stroke-width:1;}\n/* wireframe / UI mockups */\n.docskin .wf-h{font-family:var(--font-display);font-size:18px;font-weight:700;}\n.docskin .wf-sub{font-family:var(--font-body);font-size:12px;font-weight:600;}\n.docskin .wf-btn{font-family:var(--font-body);font-size:11px;font-weight:700;fill:var(--paper);}\n.docskin .wf-btn.on-light{fill:var(--ink);}\n.docskin .wf-ph-text{font-family:var(--font-body);font-size:10px;fill:var(--muted);}\n.docskin .wf-status{font-family:var(--font-mono);font-size:9px;fill:var(--charcoal);font-weight:700;}\n.docskin .wf-url{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);}\n.docskin .wf-tab{font-family:var(--font-body);font-size:8px;}\n.docskin .wf-caption{font-family:var(--font-mono);font-size:10px;fill:var(--gray);letter-spacing:.04em;}\n/* parse error (the block-level div only; .err modifiers on labels and rows have their own rules) */\n.docskin div.err{font-family:var(--font-mono);font-size:12px;color:var(--negative);background:var(--negative-tint);border:1px solid var(--negative);border-radius:4px;padding:8px 12px;margin:12px 0;white-space:pre-wrap;}\n/* endpoint (API reference card) */\n.docskin .endpoint{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .ep-head{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-solid);flex-wrap:wrap;}\n/* The method chip is the card's one accent; DELETE reads as negative. */\n.docskin .ep-method{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--accent);padding:3px 9px;border-radius:3px;letter-spacing:.08em;border:1px solid var(--accent);background:var(--paper);}\n.docskin .ep-method.delete{color:var(--negative);border-color:var(--negative);}\n.docskin .ep-path{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);}\n.docskin .ep-auth{margin-left:auto;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .ep-body{padding:6px 16px 14px;}\n.docskin .ep-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin:10px 0 2px;}\n.docskin .ep-desc{font-size:13.5px;color:var(--slate);margin:4px 0 0;line-height:1.55;}\n.docskin .ep-section{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--gray);font-weight:700;margin:16px 0 6px;}\n.docskin .ep-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .ep-table th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);font-weight:700;padding:4px 8px;border-bottom:1px solid var(--rule);}\n.docskin .ep-table td{padding:6px 8px;border-bottom:1px solid var(--rule-table);vertical-align:top;color:var(--charcoal);}\n.docskin .ep-name{font-family:var(--font-mono);font-weight:600;color:var(--navy);white-space:nowrap;}\n.docskin .ep-type{font-family:var(--font-mono);color:var(--slate);font-size:12px;}\n.docskin .ep-req{font-family:var(--font-body);font-size:9px;font-weight:700;text-transform:uppercase;color:var(--negative);letter-spacing:.04em;}\n.docskin .ep-status{font-family:var(--font-mono);font-weight:600;font-size:12px;padding:1px 8px;border-radius:3px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .ep-status.ep-2xx{background:var(--paper-2);border-color:var(--paper-2);} .docskin .ep-status.ep-3xx{border-style:dashed;border-color:var(--muted);color:var(--muted);} .docskin .ep-status.ep-5xx{border-color:var(--negative);color:var(--negative);}\n.docskin .ep-ex{font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;padding:10px 12px;margin:4px 0 0;overflow-x:auto;white-space:pre;}\n.docskin .j-key{color:var(--ink);font-weight:600;} .docskin .j-str{color:var(--muted);} .docskin .j-num{color:var(--ink);} .docskin .j-kw{color:var(--accent);font-weight:600;}\n/* pullquote */\n.docskin .pull{margin:28px 0;padding:18px 24px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .pull-text{font-family:var(--font-display);font-size:18px;line-height:1.45;color:var(--ink);max-width:840px;}\n.docskin .pull-attr{margin-top:10px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;}\n/* layers (numbered layer stack) */\n.docskin .layer-stack{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);}\n.docskin .layer{display:grid;grid-template-columns:48px 168px 1fr;border-bottom:1px solid var(--rule);}\n.docskin .layer:last-child{border-bottom:none;}\n.docskin .layer-num{background:var(--paper-2);color:var(--ink);border-right:1px solid var(--rule);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:16px;font-weight:600;}\n.docskin .layer-meta{background:var(--paper);padding:13px 15px;border-right:1px solid var(--rule);}\n.docskin .layer-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:500;margin-bottom:4px;}\n.docskin .layer-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);}\n.docskin .layer-src{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-top:4px;}\n.docskin .layer-q{font-family:var(--font-display);font-size:12px;font-style:italic;color:var(--muted);margin-top:8px;line-height:1.35;}\n.docskin .layer-body{padding:13px 18px;font-size:13px;line-height:1.55;color:var(--ink);}\n/* matrix (role \u00D7 resource capability grid) \u2014 full = solid ink outline, some = dashed outline, none = muted */\n.docskin .matrix{margin:22px 0;}\n.docskin .mx-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .mx-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .mx-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);}\n.docskin .mx-grid{border-collapse:collapse;width:100%;font-size:13px;}\n.docskin .mx-grid th,.docskin .mx-grid td{padding:9px 13px;text-align:center;border-bottom:1px solid var(--rule-table);border-right:1px solid var(--rule-table);}\n.docskin .mx-grid tr:last-child th,.docskin .mx-grid tr:last-child td{border-bottom:none;}\n.docskin .mx-grid th:last-child,.docskin .mx-grid td:last-child{border-right:none;}\n.docskin .mx-grid thead th{background:var(--paper-2);color:var(--muted);font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;}\n.docskin .mx-corner{background:var(--paper-2)!important;color:var(--muted)!important;text-align:left;}\n.docskin .mx-row{text-align:left;background:var(--paper-2);color:var(--ink);font-weight:600;white-space:nowrap;}\n.docskin .mx-cell{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);}\n.docskin .mx-cell.m-full{outline:1.5px solid var(--ink);outline-offset:-5px;}\n.docskin .mx-cell.m-some{outline:1px dashed var(--muted);outline-offset:-5px;}\n.docskin .mx-cell.m-none{color:var(--muted);font-weight:400;}\n/* anatomy (anatomy of a structured string) */\n.docskin .anatomy{margin:24px 0;}\n.docskin .a-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .a-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .a-string{font-family:var(--font-mono);font-size:22px;font-weight:700;text-align:center;padding:14px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;overflow-x:auto;white-space:nowrap;color:var(--ink);}\n.docskin .a-sep{color:var(--muted);margin:0 2px;font-weight:400;}\n.docskin .a-cards{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;margin-top:14px;justify-content:center;}\n.docskin .a-card{flex:1 1 140px;min-width:120px;max-width:240px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:6px;padding:10px 13px;}\n.docskin .a-card-sep{align-self:center;font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--muted);padding:0 8px;}\n.docskin .a-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;margin-bottom:5px;color:var(--muted);}\n.docskin .a-value{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);word-break:break-word;}\n.docskin .a-note{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.45;}\n/* Segments are told apart by their label, not a hue. */\n.docskin .a-seg-1,.docskin .a-seg-2,.docskin .a-seg-3,.docskin .a-seg-4{color:var(--ink);}\n.docskin .a-label.a-seg-1,.docskin .a-label.a-seg-2,.docskin .a-label.a-seg-3,.docskin .a-label.a-seg-4{color:var(--muted);}\n/* composition (layered gates intersected into a result) \u2014 the result is the one accent */\n.docskin .composition{margin:24px 0;}\n.docskin .cp-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .cp-desc-top{font-size:13px;color:var(--muted);margin:2px 0 14px;line-height:1.5;}\n.docskin .cp-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;}\n.docskin .cp-gate{flex:1 1 150px;min-width:140px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:6px;padding:0 0 12px;overflow:hidden;box-shadow:none;display:flex;flex-direction:column;}\n.docskin .cp-gate-head{padding:10px 14px 8px;border-bottom:1px solid var(--rule);background:var(--paper-2);}\n.docskin .cp-gate-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:3px;}\n.docskin .cp-gate-label{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);line-height:1.2;}\n.docskin .cp-desc{font-size:12px;color:var(--muted);margin:8px 14px 0;line-height:1.45;flex:1;}\n.docskin .cp-gate-src{font-family:var(--font-mono);font-size:9.5px;color:var(--muted);margin:8px 14px 0;}\n.docskin .cp-op,.docskin .cp-eq{align-self:center;font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--muted);padding:0 12px;}\n.docskin .cp-result{flex:1 1 150px;min-width:140px;align-self:stretch;background:var(--paper);border:1.5px solid var(--accent);border-radius:6px;padding:14px;display:flex;flex-direction:column;justify-content:center;}\n.docskin .cp-result-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--accent);margin-bottom:4px;}\n.docskin .cp-result-label{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.2;}\n/* drivers (factor card grid) */\n.docskin .drivers{margin:24px 0;}\n.docskin .dv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .dv-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .dv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;}\n.docskin .dv-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:18px 16px;text-align:center;box-shadow:none;}\n.docskin .dv-icon{width:38px;height:38px;margin:0 auto 10px;display:block;color:var(--muted);}\n.docskin .dv-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);line-height:1.25;margin-bottom:6px;}\n.docskin .dv-sub{font-size:11.5px;line-height:1.45;color:var(--muted);}\n.docskin .dv-tag{margin-top:8px;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}\n/* Card accents are ignored by the skin: drivers differ by title and tag, not hue. */\n/* options (approaches explored) \u2014 the chosen card takes the accent; verdicts are status chips */\n.docskin .options{margin:24px 0;}\n.docskin .op-headline{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .op-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .op-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:stretch;}\n.docskin .op-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;display:flex;flex-direction:column;}\n.docskin .op-card.is-chosen{border:1.5px solid var(--accent);box-shadow:none;}\n.docskin .op-head{padding:12px 14px 10px;color:var(--ink);background:var(--paper-2);border-bottom:1px solid var(--rule);}\n.docskin .op-kicker{display:block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}\n.docskin .op-card.is-chosen .op-kicker{color:var(--accent);}\n.docskin .op-title{font-family:var(--font-display);font-size:14px;font-weight:700;line-height:1.25;color:var(--ink);}\n.docskin .op-how{padding:9px 14px;font-size:11.5px;color:var(--ink);background:var(--paper);border-bottom:1px solid var(--rule);line-height:1.45;}\n.docskin .op-body{padding:10px 14px 12px;flex:1;}\n.docskin .op-list{list-style:none;margin:0 0 8px;padding:0;}\n.docskin .op-list li{position:relative;padding-left:18px;font-size:12px;line-height:1.5;color:var(--ink);margin-bottom:5px;}\n.docskin .op-list li::before{position:absolute;left:0;top:0;font-weight:700;}\n.docskin .op-pros li::before{content:\"\\2713\";color:var(--ink);}\n.docskin .op-cons li::before{content:\"\\2717\";color:var(--negative);}\n.docskin .op-verdict{margin:0 14px 14px;padding:6px 8px;border-radius:3px;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-align:center;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);background:var(--paper);}\n.docskin .op-v-rejected,.docskin .op-v-neutral{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .op-v-warn{border-color:var(--negative);color:var(--negative);}\n.docskin .op-v-chosen{border-color:var(--accent);color:var(--accent);}\n/* spec (labelled spec sheet) */\n.docskin .spec{margin:22px 0;}\n.docskin .sp-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sp-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .sp-grid{display:grid;grid-template-columns:140px 1fr;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);}\n.docskin .sp-label{background:var(--paper-2);font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--rule);display:flex;align-items:center;}\n.docskin .sp-val{padding:12px 16px;font-size:13px;line-height:1.5;color:var(--ink);border-bottom:1px solid var(--rule);}\n.docskin .sp-grid > .sp-label:nth-last-child(2),.docskin .sp-grid > .sp-val:last-child{border-bottom:none;}\n.docskin .sp-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}\n.docskin .sp-step{background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:4px 9px;font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;}\n.docskin .sp-arrow{color:var(--muted);font-weight:700;}\n/* Sheet accents are ignored by the skin. */\n/* list (fancy bullet list \u2014 accent / check / icon / number styles) */\n.docskin .list-block{--ls-accent:var(--ink);--ls-soft:var(--paper-2);margin:22px 0;}\n.docskin .ls-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .ls-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .ls-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}\n.docskin .ls-item{display:flex;align-items:flex-start;gap:12px;}\n.docskin .ls-body{display:flex;flex-direction:column;gap:2px;min-width:0;}\n.docskin .ls-lead{font-weight:700;color:var(--charcoal);line-height:1.35;}\n.docskin .ls-text{font-size:13px;color:var(--slate);line-height:1.5;}\n.docskin .ls-mark{flex:none;display:flex;align-items:center;justify-content:center;}\n.docskin .ls-style-accent .ls-item{border-left:3px solid var(--ls-accent);padding:1px 0 1px 14px;}\n.docskin .ls-style-accent .ls-bar{display:none;}\n.docskin .ls-check{width:22px;height:22px;border-radius:50%;font-size:13px;font-weight:700;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);}\n.docskin .ls-check.ls-off{background:var(--paper);color:var(--muted);border-style:dashed;}\n.docskin .ls-num{width:24px;height:24px;border-radius:50%;font-family:var(--font-mono);font-size:11px;font-weight:600;background:var(--paper);color:var(--ink);border:1px solid var(--ink);}\n.docskin .ls-icon{width:26px;height:26px;border-radius:6px;background:var(--ls-soft);color:var(--ls-accent);}\n.docskin .ls-icon svg{width:16px;height:16px;}\n/* List accents are ignored by the skin: every list marks in ink on paper-2. */\n/* stories (collapsible user-story backlog) */\n.docskin .stories{margin:22px 0;}\n.docskin .st-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .st-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .st-list{display:flex;flex-direction:column;gap:8px;}\n.docskin .st-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;}\n.docskin .st-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 14px;}\n.docskin .st-summary::-webkit-details-marker{display:none;}\n.docskin .st-caret{flex:none;width:0;height:0;border-left:5px solid var(--gray);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;}\n.docskin details[open]>.st-summary .st-caret{transform:rotate(90deg);}\n.docskin .st-sum-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}\n.docskin .st-id{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);background:var(--paper-2);padding:1px 6px;border-radius:3px;}\n.docskin .st-sum-title{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n.docskin .st-chips{display:flex;gap:6px;flex:none;}\n.docskin .st-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;letter-spacing:.04em;white-space:nowrap;border:1px solid var(--rule-solid);background:var(--paper);color:var(--muted);}\n.docskin .st-points{background:var(--paper-2);border-color:var(--paper-2);color:var(--ink);}\n.docskin .st-prio{border-color:var(--ink);color:var(--ink);}\n.docskin .st-body{padding:2px 14px 14px 30px;border-top:1px solid var(--rule);}\n.docskin .st-narr{margin:12px 0 8px;color:var(--slate);line-height:1.55;font-size:14px;}\n.docskin .st-ac-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin:10px 0 4px;}\n.docskin .st-ac{margin:0;padding-left:18px;color:var(--slate);font-size:13px;line-height:1.5;}\n.docskin .st-ac li{margin:3px 0;}\n.docskin .st-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}\n.docskin .st-link{font-family:var(--font-mono);font-size:11px;color:var(--link);background:var(--paper);border:1px solid var(--rule-solid);padding:2px 8px;border-radius:3px;}\n/* pattern (design-pattern reference card) */\n.docskin .pattern{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pt-header{display:flex;align-items:center;gap:10px;padding:13px 18px;background:var(--paper-2);color:var(--ink);border-bottom:1px solid var(--rule-solid);}\n.docskin .pt-kicker{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;color:var(--muted);}\n.docskin .pt-name{font-family:var(--font-display);font-weight:700;font-size:17px;}\n.docskin .pt-cat{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);padding:2px 8px;border-radius:3px;}\n.docskin .pt-rows{display:flex;flex-direction:column;}\n.docskin .pt-row{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:12px 18px;border-top:1px solid var(--rule);}\n.docskin .pt-row:first-child{border-top:none;}\n.docskin .pt-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);padding-top:2px;}\n.docskin .pt-value{color:var(--charcoal);line-height:1.55;font-size:14px;}\n.docskin .pt-chips{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .pt-chip{font-size:12px;background:var(--light-gray);color:var(--slate);padding:2px 9px;border-radius:10px;}\n.docskin .pt-parts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;}\n.docskin .pt-parts li{display:flex;gap:8px;align-items:baseline;}\n.docskin .pt-pname{font-weight:700;color:var(--ink);font-size:13px;}\n.docskin .pt-prole{color:var(--muted);font-size:13px;}\n.docskin .pt-cons{display:grid;grid-template-columns:1fr 1fr;gap:16px;}\n.docskin .pt-cons-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.45;}\n.docskin .pt-cons-list li{display:flex;gap:6px;}\n.docskin .pt-sign{font-weight:700;flex:none;}\n.docskin .pt-pro .pt-sign{color:var(--ink);}\n.docskin .pt-con .pt-sign{color:var(--negative);}\n/* gallery (responsive grid of code / note cards) */\n.docskin .gallery{margin:22px 0;}\n.docskin .gl-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .gl-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .gl-grid{display:grid;grid-template-columns:repeat(var(--gl-cols,2),minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .gl-grid{grid-template-columns:1fr;}}\n.docskin .gl-cell{min-width:0;}\n.docskin .gl-cell .diagram{margin:0;}\n.docskin .gl-cell .gl-card-title{padding:0 0 6px;}\n.docskin .gl-cell .gl-cap{padding:8px 2px 0;}\n.docskin .gl-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;display:flex;flex-direction:column;min-width:0;}\n.docskin .gl-card>.code-header{border-radius:0;}\n.docskin .gl-card>pre{margin:0;border:none;border-radius:0;font-size:11.5px;line-height:1.55;padding:13px 15px;flex:1;}\n.docskin .gl-card-title{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);padding:11px 13px 0;}\n.docskin .gl-cap{font-size:12px;color:var(--muted);padding:9px 13px 11px;line-height:1.45;}\n/* Card accents are ignored by the skin. */\n/* chart (bar / line / area / donut) \u2014 the donut's centre figure; every other chart label is a type role */\n.docskin .chart-total{font-family:var(--font-display);font-size:22px;font-weight:700;fill:var(--ink);text-anchor:middle;}\n/* figure (an image with a caption) */\n.docskin .fig{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px;box-shadow:none;}\n.docskin .fig-img{display:block;max-width:100%;height:auto;border-radius:4px;margin:0 auto;}\n.docskin .fig-cap{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.5;}\n/* diff (unified diff on the dark editor surface) */\n.docskin .diff-pre{padding:14px 0;}\n.docskin .df-line{display:block;padding:0 20px;color:var(--code-fg);}\n.docskin .df-add{background:var(--code-add-bg);color:var(--code-add);}\n.docskin .df-del{background:var(--code-del-bg);color:var(--code-del);}\n.docskin .df-hunk{color:var(--code-muted);font-style:italic;}\n/* steps (numbered how-to / runbook stepper) */\n.docskin .steps{margin:22px 0;}\n.docskin .stp-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .stp-desc{font-size:13px;color:var(--slate);margin:2px 0 14px;line-height:1.5;}\n.docskin .stp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}\n.docskin .stp-item{position:relative;display:flex;align-items:flex-start;gap:14px;padding:0 0 22px;}\n.docskin .stp-item:last-child{padding-bottom:0;}\n.docskin .stp-item::before{content:\"\";position:absolute;left:12px;top:28px;bottom:2px;width:2px;background:var(--rule);}\n.docskin .stp-item:last-child::before{display:none;}\n.docskin .stp-num{flex:none;position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:var(--paper);color:var(--ink);border:1px solid var(--ink);font-family:var(--font-mono);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .stp-body{flex:1;min-width:0;padding-top:3px;}\n.docskin .stp-title{font-weight:700;font-size:14px;color:var(--ink);line-height:1.35;}\n.docskin .stp-text{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.55;max-width:760px;}\n.docskin .stp-code{margin:10px 0 0;border-radius:6px;overflow:hidden;border:1px solid var(--rule-solid);box-shadow:none;}\n.docskin .stp-code-head{padding:6px 14px;background:var(--code-bg);color:var(--code-muted);font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid var(--code-rule);}\n.docskin .stp-code pre{font-size:12px;line-height:1.6;padding:12px 16px;}\n.docskin .stp-code pre code{background:transparent;border:none;padding:0;border-radius:0;font-size:inherit;color:inherit;}\n.docskin .stp-note{font-size:12px;color:var(--gray);font-style:italic;margin:8px 0 0;line-height:1.5;}\n/* faq (Q&A accordions, native details) */\n.docskin .faq{margin:22px 0;}\n.docskin .fq-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .fq-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .fq-list{display:flex;flex-direction:column;gap:8px;}\n.docskin .fq-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;}\n.docskin .fq-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 16px;}\n.docskin .fq-summary::-webkit-details-marker{display:none;}\n.docskin .fq-caret{flex:none;width:0;height:0;border-left:5px solid var(--gray);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;}\n.docskin details[open]>.fq-summary .fq-caret{transform:rotate(90deg);}\n.docskin .fq-q{font-weight:700;color:var(--charcoal);line-height:1.4;}\n.docskin .fq-a{padding:2px 16px 14px 31px;border-top:1px solid var(--rule);font-size:14px;color:var(--slate);line-height:1.6;}\n.docskin .fq-a p{margin:10px 0 0;max-width:780px;}\n/* envelope (back-of-envelope capacity math) */\n.docskin .envelope{margin:22px 0;}\n.docskin .env-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .env-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .env-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:18px 22px;box-shadow:none;}\n.docskin .env-givens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;padding-bottom:16px;margin-bottom:14px;border-bottom:1px solid var(--rule);}\n.docskin .env-g-label{font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-bottom:2px;}\n.docskin .env-g-value{font-size:15px;font-weight:700;color:var(--charcoal);}\n.docskin .env-steps{display:flex;flex-direction:column;gap:9px;}\n.docskin .env-step{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}\n.docskin .env-s-label{flex:0 0 150px;font-size:13px;color:var(--slate);}\n.docskin .env-s-calc{font-family:var(--font-mono);font-size:12.5px;color:var(--charcoal);background:var(--light-gray);border:1px solid var(--rule);border-radius:5px;padding:2px 8px;}\n.docskin .env-s-arrow{color:var(--gray);font-weight:700;}\n.docskin .env-s-result{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--ink);}\n/* The final figure is the one accent. */\n.docskin .env-result{margin-top:16px;padding:12px 16px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .env-r-label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:2px;}\n.docskin .env-r-value{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);line-height:1.25;}\n/* slo (service-level objectives with error budgets) */\n.docskin .slo{margin:22px 0;}\n.docskin .slo-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .slo-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .slo-list{display:flex;flex-direction:column;gap:12px;}\n.docskin .slo-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 18px;box-shadow:none;}\n.docskin .slo-top{display:flex;align-items:center;gap:10px;}\n.docskin .slo-name{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--charcoal);flex:1;min-width:0;}\n.docskin .slo-window{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:10px;padding:2px 8px;white-space:nowrap;}\n.docskin .slo-sli{font-size:12.5px;color:var(--slate);margin:3px 0 0;line-height:1.5;}\n.docskin .slo-vals{display:flex;gap:26px;margin-top:9px;}\n.docskin .slo-val{display:flex;flex-direction:column;gap:1px;}\n.docskin .slo-v-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);}\n.docskin .slo-v-num{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--charcoal);}\n.docskin .slo-v-num.slo-ok{color:var(--ink);}\n.docskin .slo-v-num.slo-bad{color:var(--negative);}\n.docskin .slo-budget{margin-top:10px;}\n.docskin .slo-track{height:8px;border-radius:4px;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;}\n.docskin .slo-fill{height:100%;border-radius:4px;}\n/* Budget burn: muted while healthy, ink when the caption says it is close, negative only when it is spent. */\n.docskin .slo-fill.slo-b-ok{background:var(--muted);}\n.docskin .slo-fill.slo-b-warn{background:var(--ink);}\n.docskin .slo-fill.slo-b-hot{background:var(--negative);}\n.docskin .slo-caption{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:5px;}\n/* terminal (a shell session on the dark surface) */\n.docskin .terminal-block{border-radius:6px;}\n.docskin .tm-pre{line-height:1.7;}\n.docskin .tm-line{display:block;}\n.docskin .tm-prompt{color:var(--code-str);font-weight:700;}\n.docskin .tm-cmd-text{color:var(--code-fg);font-weight:700;}\n.docskin .tm-comment{color:var(--code-com);font-style:italic;}\n.docskin .tm-out{color:var(--code-muted);}\n/* swot (strengths / weaknesses / opportunities / threats 2x2) */\n.docskin .swot{margin:22px 0;}\n.docskin .swot-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .swot-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .swot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}\n@media(max-width:680px){.docskin .swot-grid{grid-template-columns:1fr;}}\n/* Quadrants are told apart by their label: paper for the internal pair (S, W), paper-2 for the external pair (O, T). */\n.docskin .swot-quad{border:1px solid var(--rule-solid);border-radius:6px;padding:13px 16px 14px;box-shadow:none;background:var(--paper);}\n.docskin .swot-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:7px;color:var(--muted);}\n.docskin .swot-list{list-style:none;margin:0;padding:0;}\n.docskin .swot-item{position:relative;font-size:13px;color:var(--ink);line-height:1.5;padding:2px 0 2px 14px;}\n.docskin .swot-item::before{content:\"\";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--muted);}\n.docskin .swot-o,.docskin .swot-t{background:var(--paper-2);}\n.docskin .swot-w .swot-label,.docskin .swot-t .swot-label{color:var(--negative);}\n/* okr (objectives + key results) */\n.docskin .okr{margin:22px 0;}\n.docskin .okr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .okr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .okr-list{display:flex;flex-direction:column;gap:12px;}\n.docskin .okr-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 18px;box-shadow:none;}\n.docskin .okr-top{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;}\n.docskin .okr-objective{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--charcoal);flex:1;min-width:0;}\n.docskin .okr-owner{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:10px;padding:2px 8px;white-space:nowrap;}\n.docskin .okr-krs{display:flex;flex-direction:column;gap:8px;}\n.docskin .okr-kr-text{font-size:13px;color:var(--charcoal);line-height:1.45;}\n.docskin .okr-kr-bar{display:flex;align-items:center;gap:10px;margin-top:3px;}\n.docskin .okr-track{flex:1;height:7px;border-radius:4px;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;}\n.docskin .okr-fill{height:100%;border-radius:4px;background:var(--ink);}\n.docskin .okr-fill.okr-b-ok,.docskin .okr-fill.okr-b-plain{background:var(--ink);}\n.docskin .okr-fill.okr-b-warn{background:var(--muted);}\n.docskin .okr-fill.okr-b-bad{background:var(--negative);}\n.docskin .okr-pct{flex:none;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--muted);min-width:34px;text-align:right;}\n/* The KR's status as a word chip (the bar tone alone never carries it). */\n.docskin .okr-status{flex:none;font-family:var(--font-mono);font-size:9px;font-weight:600;padding:1px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .okr-status.okr-s-done,.docskin .okr-status.okr-s-on-track{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .okr-status.okr-s-at-risk{border-color:var(--accent);color:var(--accent);}\n.docskin .okr-status.okr-s-off-track{border-color:var(--negative);color:var(--negative);}\n/* persona (user persona cards) */\n.docskin .persona{margin:22px 0;}\n.docskin .pa-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pa-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .pa-grid{grid-template-columns:1fr;}}\n.docskin .pa-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:16px 18px;box-shadow:none;}\n.docskin .pa-id{display:flex;align-items:center;gap:12px;}\n.docskin .pa-avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);font-family:var(--font-display);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;}\n.docskin .pa-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.25;}\n.docskin .pa-role{font-size:12px;color:var(--muted);margin-top:1px;}\n.docskin .pa-quote{font-family:var(--font-display);font-style:italic;font-size:13px;color:var(--muted);line-height:1.5;margin:12px 0 0;padding:2px 0 2px 12px;border-left:2px solid var(--rule-solid);}\n.docskin .pa-section{margin-top:12px;}\n.docskin .pa-sec-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:4px;}\n.docskin .pa-list{list-style:none;margin:0;padding:0;}\n.docskin .pa-li{position:relative;font-size:12.5px;color:var(--ink);line-height:1.5;padding:1px 0 1px 14px;}\n.docskin .pa-li::before{content:\"\";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--muted);}\n.docskin .pa-frustrations .pa-li::before{background:var(--negative);}\n.docskin .pa-tools{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .pa-tool{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;}\n/* Card accents are ignored by the skin. */\n/* changelog (release history on a vertical rail) */\n.docskin .changelog{margin:22px 0;}\n.docskin .cg-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .cg-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .cg-rail{position:relative;padding-left:26px;}\n.docskin .cg-rail::before{content:\"\";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--rule);}\n.docskin .cg-release{position:relative;padding-bottom:20px;}\n.docskin .cg-release:last-child{padding-bottom:0;}\n.docskin .cg-dot{position:absolute;left:-25px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);box-shadow:none;}\n.docskin .cg-dot-breaking{border-color:var(--negative);background:var(--negative-tint);}\n.docskin .cg-rel-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px;}\n.docskin .cg-version{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--ink);background:var(--paper-2);border-radius:3px;padding:2px 9px;}\n.docskin .cg-version.cg-v-breaking{background:var(--paper);color:var(--negative);border:1px solid var(--negative);}\n.docskin .cg-date{font-size:12px;color:var(--muted);}\n.docskin .cg-tag{font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;}\n.docskin .cg-tag-breaking{color:var(--negative);border-color:var(--negative);}\n.docskin .cg-items{display:flex;flex-direction:column;gap:5px;}\n.docskin .cg-item{display:flex;align-items:baseline;gap:9px;}\n/* Change kinds as status chips: added / fixed = paper-2 fill \u00B7 changed = ink outline \u00B7 removed / deprecated = dashed \u00B7 security = negative outline. */\n.docskin .cg-type{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:1px 7px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .cg-t-added,.docskin .cg-t-fixed{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .cg-t-removed,.docskin .cg-t-deprecated{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .cg-t-security{border-color:var(--negative);color:var(--negative);}\n.docskin .cg-text{font-size:13px;color:var(--ink);line-height:1.5;}\n/* team (compact people cards) */\n.docskin .team{margin:22px 0;}\n.docskin .tem-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .tem-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .tem-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;}\n@media(max-width:900px){.docskin .tem-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .tem-grid{grid-template-columns:1fr;}}\n.docskin .tem-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:16px 16px 14px;text-align:center;box-shadow:none;}\n.docskin .tem-avatar{width:40px;height:40px;border-radius:50%;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);font-family:var(--font-display);font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em;margin-bottom:9px;}\n.docskin .tem-name{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);line-height:1.3;}\n.docskin .tem-role{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin-top:2px;}\n.docskin .tem-focus{font-size:12.5px;color:var(--muted);line-height:1.45;margin-top:6px;}\n/* Card accents are ignored by the skin. */\n/* heatmap (numeric grid with an intensity ramp) */\n.docskin .heatmap{margin:22px 0;}\n.docskin .hm-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .hm-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .hm-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 16px;box-shadow:none;}\n.docskin .hm-grid{display:grid;gap:4px;min-width:0;}\n.docskin .hm-corner{min-width:0;}\n.docskin .hm-col{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--gray);text-align:center;align-self:end;padding-bottom:2px;white-space:nowrap;}\n.docskin .hm-rowlabel{font-size:12px;font-weight:600;color:var(--charcoal);text-align:right;align-self:center;padding-right:8px;white-space:nowrap;}\n.docskin .hm-cell{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--charcoal);border-radius:6px;min-height:32px;display:flex;align-items:center;justify-content:center;}\n.docskin .hm-cell.hm-blank{background:var(--paper-2);}\n/* scorecard (weighted decision matrix) \u2014 the winner takes the accent */\n.docskin .scorecard{margin:22px 0;}\n.docskin .sc-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sc-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .sc-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;box-shadow:none;}\n.docskin .sc-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--paper);}\n.docskin .sc-table thead th{background:var(--paper-2);color:var(--muted);padding:10px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .sc-table th.c,.docskin .sc-table td.c{text-align:center;}\n.docskin .sc-table thead th.sc-win{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .sc-table td{padding:9px 12px;border-bottom:1px solid var(--rule-table);color:var(--ink);}\n.docskin .sc-crit{font-weight:600;color:var(--ink);}\n.docskin .sc-weight{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:1px 6px;margin-left:8px;}\n.docskin .sc-score{font-family:var(--font-mono);font-weight:600;}\n.docskin .sc-note{display:block;font-family:var(--font-body);font-size:11px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:3px;}\n.docskin .sc-winner{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-left:8px;vertical-align:middle;}\n.docskin .sc-foot td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}\n.docskin .sc-foot td.sc-total{font-size:14px;color:var(--ink);letter-spacing:0;}\n.docskin .sc-foot td.sc-total.sc-win{background:var(--accent-tint);color:var(--ink);font-weight:700;}\n/* risk (risk register row-cards) \u2014 severity and status as chips */\n.docskin .risk{margin:22px 0;}\n.docskin .rk-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .rk-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .rk-list{display:flex;flex-direction:column;gap:10px;}\n.docskin .rk-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:12px 16px;box-shadow:none;}\n.docskin .rk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}\n.docskin .rk-sev{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .rk-sev-critical{background:var(--negative-tint);color:var(--negative);border-color:var(--negative);}\n.docskin .rk-sev-high{color:var(--negative);border-color:var(--negative);}\n.docskin .rk-sev-low{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n.docskin .rk-risk{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--ink);flex:1;min-width:0;}\n.docskin .rk-chips{display:flex;align-items:center;gap:6px;flex:none;margin-left:auto;}\n.docskin .rk-owner{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;white-space:nowrap;}\n.docskin .rk-status{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;white-space:nowrap;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .rk-st-mitigating{border-color:var(--accent);color:var(--accent);}\n.docskin .rk-st-accepted,.docskin .rk-st-closed{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .rk-meta{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--gray);margin-top:4px;}\n.docskin .rk-mitigation{font-size:12.5px;color:var(--slate);margin:5px 0 0;line-height:1.5;}\n.docskin .rk-mit-label{font-weight:700;color:var(--charcoal);}\n/* palette (colour-token swatches) */\n.docskin .palette{margin:22px 0;}\n.docskin .pl-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pl-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pl-grid{display:grid;grid-template-columns:repeat(var(--pl-cols,4),minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:900px){.docskin .pl-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .pl-grid{grid-template-columns:1fr;}}\n.docskin .pl-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pl-swatch{height:64px;border-radius:5px 5px 0 0;display:flex;align-items:flex-end;padding:6px 9px;}\n.docskin .pl-hex{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:3px;}\n.docskin .pl-meta{padding:9px 11px 11px;border-top:1px solid var(--rule);}\n.docskin .pl-name{font-weight:700;font-size:13px;color:var(--charcoal);line-height:1.3;}\n.docskin .pl-usage{font-size:11.5px;color:var(--slate);margin-top:2px;line-height:1.45;}\n/* eventcontract (async event contract card \u2014 the twin of endpoint). Chips carry words; the partition-key row is the one accent. */\n.docskin .eventcontract{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .evc-head{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-solid);flex-wrap:wrap;}\n.docskin .evc-eyebrow{color:var(--muted);} .docskin .evc-sep{margin:0 5px;}\n.docskin .evc-name{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);}\n.docskin .evc-channel{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .evc-channel .t-eyebrow{color:var(--muted);}\n.docskin .evc-body{padding:6px 16px 14px;}\n.docskin .evc-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin:10px 0 2px;}\n.docskin .evc-summary,.docskin .evc-desc-p{font-size:13.5px;color:var(--muted);margin:10px 0 0;line-height:1.55;}\n/* Producers \u2192 consumers: two columns of mono chips on the paper-2 ground, the arrow between them. */\n.docskin .evc-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start;margin:14px 0 0;padding:10px 12px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;}\n.docskin .evc-party-label{display:block;margin-bottom:7px;color:var(--muted);}\n.docskin .evc-chips{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .evc-chip{display:inline-block;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 7px;line-height:1.5;}\n.docskin .evc-none{color:var(--muted);}\n.docskin .evc-arrow{align-self:center;font-size:15px;color:var(--muted);padding:14px 2px 0;}\n/* Delivery facts: outlined word chips \u2014 the label word in the eyebrow role, then the value. */\n.docskin .evc-facts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;}\n.docskin .evc-fact{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:3px;padding:2px 8px;line-height:1.5;}\n.docskin .evc-fact-k{color:var(--muted);}\n.docskin .evc-section{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin:16px 0 6px;}\n.docskin .evc-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .evc-table th{text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500;padding:4px 8px;border-bottom:1px solid var(--rule);}\n.docskin .evc-table td{padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink);}\n.docskin .evc-mark{width:14px;padding-left:6px;padding-right:2px;font-family:var(--font-mono);font-weight:600;color:var(--muted);text-align:center;}\n.docskin .evc-fname{font-family:var(--font-mono);font-weight:600;color:var(--ink);white-space:nowrap;}\n.docskin .evc-type{font-family:var(--font-mono);color:var(--muted);font-size:12px;}\n.docskin .evc-eg{font-family:var(--font-mono);font-size:11px;color:var(--muted);}\n/* The partition key is the one accent: its marker and name in accent (on paper \u2014 the tint would drop it under 4.5:1), a rule down the row's left edge. */\n.docskin .evc-key td:first-child{border-left:2px solid var(--accent);padding-left:4px;}\n.docskin .evc-key .evc-mark,.docskin .evc-key .evc-fname{color:var(--accent);}\n.docskin .evc-keyline{margin:6px 0 0;color:var(--muted);} .docskin .evc-mark-k{font-weight:600;color:var(--ink);}\n.docskin .evc-note{font-size:12.5px;color:var(--muted);margin:14px 0 0;padding-top:10px;border-top:1px solid var(--rule);line-height:1.5;}\n/* typescale (live type specimen) */\n.docskin .typescale{margin:22px 0;}\n.docskin .ts-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .ts-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .ts-row{display:flex;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid var(--rule);}\n.docskin .ts-row:last-child{border-bottom:none;}\n.docskin .ts-meta{flex:0 0 160px;min-width:0;}\n.docskin .ts-name{font-weight:700;font-size:12.5px;color:var(--charcoal);line-height:1.3;}\n.docskin .ts-spec{font-family:var(--font-mono);font-size:10.5px;color:var(--gray);margin-top:2px;}\n.docskin .ts-note{font-size:11px;color:var(--slate);margin-top:2px;line-height:1.4;}\n.docskin .ts-sample{flex:1;min-width:0;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n.docskin .ts-f-display{font-family:var(--font-display);}\n.docskin .ts-f-body{font-family:var(--font-body);}\n.docskin .ts-f-mono{font-family:var(--font-mono);}\n/* dodont (do / don't guideline cards) */\n.docskin .dodont{margin:22px 0;}\n.docskin .dd-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .dd-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .dd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .dd-grid{grid-template-columns:1fr;}}\n.docskin .dd-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .dd-band{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--paper-2);border-bottom:1px solid var(--rule);}\n.docskin .dd-sign{flex:none;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid currentColor;background:var(--paper);}\n.docskin .dd-do .dd-sign{color:var(--ink);}\n.docskin .dd-dont .dd-sign{color:var(--negative);}\n.docskin .dd-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;}\n.docskin .dd-do .dd-label{color:var(--ink);}\n.docskin .dd-dont .dd-label{color:var(--negative);}\n.docskin .dd-list{padding:11px 14px 14px;display:flex;flex-direction:column;gap:9px;}\n.docskin .dd-item{position:relative;padding-left:14px;}\n.docskin .dd-item::before{content:\"\";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;}\n.docskin .dd-do .dd-item::before{background:var(--muted);}\n.docskin .dd-dont .dd-item::before{background:var(--negative);}\n.docskin .dd-text{font-size:13px;color:var(--ink);line-height:1.5;}\n.docskin .dd-ex{display:inline-block;font-family:var(--font-mono);font-size:11.5px;color:var(--muted);background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;padding:3px 8px;margin-top:4px;}\n/* inventory (component / feature status board) */\n.docskin .inventory{margin:22px 0;}\n.docskin .inv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .inv-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .inv-row{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);}\n.docskin .inv-row:last-child{border-bottom:none;}\n.docskin .inv-main{flex:1;min-width:0;}\n.docskin .inv-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}\n.docskin .inv-name{font-weight:700;font-size:13.5px;color:var(--charcoal);line-height:1.35;}\n.docskin .inv-tag{font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:4px;padding:1px 6px;}\n.docskin .inv-note{font-size:12px;color:var(--slate);margin-top:1px;line-height:1.45;}\n.docskin .inv-status{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;margin-top:1px;white-space:nowrap;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .inv-st-stable{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .inv-st-experimental,.docskin .inv-st-planned{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .inv-st-deprecated{border-color:var(--negative);color:var(--negative);}\n/* algorithms & data structures (array / bintree / hashmap) \u2014 cell values only; everything else is a type role */\n.docskin .ds-val{font-family:var(--font-mono);font-size:13px;font-weight:600;text-anchor:middle;}\n.docskin .bt-val{font-family:var(--font-mono);font-size:12.5px;font-weight:600;text-anchor:middle;}\n.docskin .hsh-key{font-family:var(--font-mono);font-size:11px;font-weight:600;text-anchor:middle;}\n/* agentloop (agent-loop diagram, SVG) */\n.docskin .al-edge{stroke:var(--muted);stroke-width:1.5;fill:none;}\n.docskin .al-edge.dashed{stroke:var(--muted);stroke-dasharray:5 4;}\n.docskin .al-lbl{font-family:var(--font-mono);font-size:9.5px;font-weight:400;fill:var(--muted);letter-spacing:.04em;paint-order:stroke;stroke:var(--paper);stroke-width:2.5px;stroke-linejoin:round;}\n.docskin .al-name{font-family:var(--font-body);font-size:13px;font-weight:600;fill:var(--ink);}\n.docskin .al-chip{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.04em;fill:var(--muted);}\n.docskin .al-note{font-family:var(--font-body);font-size:10.5px;fill:var(--muted);}\n.docskin .al-env{font-family:var(--font-body);font-size:12px;font-weight:600;fill:var(--ink);}\n.docskin .al-tool-name{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n.docskin .al-tool-desc{font-family:var(--font-body);font-size:10px;fill:var(--muted);}\n.docskin .al-more{font-family:var(--font-mono);font-size:10px;fill:var(--muted);font-style:italic;}\n.docskin .al-mem{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted);}\n.docskin .al-mem-item{font-family:var(--font-body);font-size:10px;fill:var(--ink);}\n.docskin .al-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--ink);}\n.docskin .al-foot-label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-right:6px;}\n/* trace (agent / session execution transcript) */\n.docskin .trace{margin:22px 0;}\n.docskin .tr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .tr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .tr-list{display:flex;flex-direction:column;}\n.docskin .tr-turn{position:relative;padding:0 0 16px 0;}\n.docskin .tr-turn::before{content:\"\";position:absolute;left:14px;top:24px;bottom:-2px;width:1px;background:var(--rule);}\n.docskin .tr-turn:last-child{padding-bottom:0;}\n.docskin .tr-turn:last-child::before{display:none;}\n/* Roles as chips: the assistant is the one accent; user = paper-2 fill; tool = ink outline; system = dashed. */\n.docskin .tr-chip{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;padding:2px 8px;border-radius:3px;margin-bottom:6px;position:relative;z-index:1;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .tr-user>.tr-chip{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .tr-assistant>.tr-chip{color:var(--accent);border-color:var(--accent);}\n.docskin .tr-system>.tr-chip{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .tr-card{margin-left:28px;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:12px 16px;box-shadow:none;}\n.docskin .tr-think{font-size:12px;font-style:italic;color:var(--muted);border-left:2px dotted var(--muted);padding-left:10px;margin-bottom:8px;white-space:pre-wrap;line-height:1.55;}\n.docskin .tr-text{font-size:13.5px;color:var(--ink);line-height:1.6;white-space:pre-wrap;}\n.docskin .tr-think+.tr-text{margin-top:2px;}\n.docskin .tr-tool-name{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;}\n.docskin .tr-io{display:flex;align-items:baseline;gap:8px;margin:4px 0;}\n.docskin .tr-io-label{flex:none;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--gray);}\n.docskin .tr-mono{font-family:var(--font-mono);font-size:11.5px;color:var(--charcoal);background:var(--light-gray);border:1px solid var(--rule);border-radius:5px;padding:2px 8px;white-space:pre-wrap;min-width:0;}\n.docskin .tr-io+.tr-text{margin-top:8px;}\n/* prompt (prompt anatomy with variable highlighting) */\n.docskin .prompt{margin:22px 0;}\n.docskin .pr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pr-list{display:flex;flex-direction:column;gap:10px;}\n.docskin .pr-seg{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pr-kicker{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px 0;color:var(--muted);}\n.docskin .pr-assistant>.pr-kicker{color:var(--accent);}\n.docskin .pr-label{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px;}\n.docskin .pr-text{font-family:var(--font-mono);font-size:12.5px;line-height:1.65;color:var(--ink);background:var(--paper-2);border-top:1px solid var(--rule);padding:12px 16px;margin-top:8px;white-space:pre-wrap;}\n/* Variables: accent text on paper (never on the tint \u2014 4.46:1), boxed by a hairline. */\n.docskin .pr-var{font-family:var(--font-mono);background:var(--paper);color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 4px;font-weight:600;}\n.docskin .pr-vars{display:flex;flex-direction:column;gap:5px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--rule);}\n.docskin .pr-var-row{display:flex;align-items:baseline;gap:10px;}\n.docskin .pr-var-row .pr-var{font-size:11.5px;}\n.docskin .pr-var-desc{font-size:12px;color:var(--slate);line-height:1.45;}\n/* context (context-window token budget, SVG) */\n.docskin .ctx-window-label{font-family:var(--font-mono);font-size:10px;font-weight:500;fill:var(--muted);letter-spacing:.06em;}\n/* Segment labels sit on a paper mask (series fills are mid-tone; no text reads on them directly). */\n.docskin .ctx-seg-mask{fill:var(--paper);stroke:none;}\n.docskin .ctx-seg-label{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:var(--ink);}\n.docskin .ctx-free-label{font-family:var(--font-mono);font-size:10.5px;font-weight:500;fill:var(--muted);}\n.docskin .ctx-boundary{stroke:var(--negative);stroke-width:1.4;stroke-dasharray:5 4;}\n.docskin rect.ctx-chip-bg{fill:var(--paper);stroke:var(--negative);stroke-width:1;}\n.docskin text.ctx-chip{font-family:var(--font-mono);font-size:9.5px;font-weight:600;fill:var(--negative);}\n.docskin .ctx-legend{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .ctx-legend .lg-title{margin-bottom:2px;}\n.docskin .ctx-row{display:flex;align-items:baseline;gap:9px;font-size:12.5px;color:var(--ink);}\n.docskin .ctx-dot{flex:none;width:11px;height:11px;border-radius:2px;align-self:center;}\n.docskin .ctx-idx{flex:none;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);}\n.docskin .ctx-label{font-weight:600;}\n.docskin .ctx-num{font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap;}\n.docskin .ctx-note{font-size:12px;color:var(--muted);}\n/* archmap (target-architecture capability map) */\n.docskin .archmap{margin:22px 0;}\n.docskin .am-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .am-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .am-grid{display:grid;grid-template-columns:repeat(var(--am-cols,3),minmax(0,1fr));gap:10px;align-items:stretch;}\n@media(max-width:900px){.docskin .am-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .am-grid{grid-template-columns:1fr;}}\n/* Areas are paper-2 frames with an eyebrow; tile status by stroke: current = hairline \u00B7 new = ink 1.5px \u00B7 target = dashed ink \u00B7 gap = dashed negative \u00B7 deprecated = paper-2, muted. Area accents are ignored. */\n.docskin .am-area{background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;padding:12px;box-shadow:none;}\n.docskin .am-area-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:2px;}\n.docskin .am-area-desc{font-size:11.5px;color:var(--muted);line-height:1.45;}\n.docskin .am-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin-top:8px;}\n.docskin .am-tile{background:var(--paper);border:1px solid var(--rule-solid);border-radius:4px;padding:6px 8px;font-size:11.5px;line-height:1.35;color:var(--ink);text-align:center;}\n.docskin .am-t-target{border:1px dashed var(--ink);}\n.docskin .am-t-new{border:1.5px solid var(--ink);}\n.docskin .am-t-gap{background:var(--paper);border:1px dashed var(--ink);}\n.docskin .am-chip{display:block;margin-top:3px;color:var(--muted);}\n.docskin .am-t-deprecated{background:var(--paper-2);color:var(--muted);border:1px dashed var(--muted);}\n/* Legend swatches mirror the tile strokes (the gap entry is its word chip). */\n.docskin .am-sw{display:inline-block;width:30px;height:14px;border-radius:2px;box-sizing:border-box;}\n.docskin .am-sw-current{background:var(--paper);border:1px solid var(--rule-solid);}\n.docskin .am-sw-target{background:var(--paper);border:1px dashed var(--ink);}\n.docskin .am-sw-new{background:var(--paper);border:1.5px solid var(--ink);}\n.docskin .am-sw-deprecated{background:var(--paper-2);border:1px dashed var(--muted);}\n/* divider (full-width section-break band) */\n.docskin .dvd{--dvd-accent:var(--navy);--dvd-soft:var(--light-blue);margin:22px 0;width:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:36px 28px;text-align:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--dvd-soft) 45%,transparent);}\n.docskin .dvd-kicker{display:flex;align-items:center;gap:12px;}\n.docskin .dvd-kicker-text{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dvd-accent);}\n.docskin .dvd-rule{width:36px;height:1px;background:var(--dvd-accent);opacity:.55;}\n.docskin .dvd-title{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1.15;letter-spacing:-.01em;color:var(--charcoal);max-width:820px;}\n.docskin .dvd-subtitle{font-size:15px;color:var(--slate);line-height:1.55;max-width:680px;margin:0;}\n/* Band accents are ignored by the skin. */\n/* spans (distributed-trace waterfall) \u2014 lanes per service; bars lighten by depth (ink \u2192 muted \u2192 paper-2);\n the critical path is the one accent; errors are a negative outline + ERR chip. */\n.docskin .sp-axis{stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-grid{stroke:var(--rule);stroke-width:1;}\n.docskin .sp-lane-rule{stroke:var(--rule);stroke-width:1;}\n.docskin .sp-bar.d0{fill:var(--ink);stroke:none;}\n.docskin .sp-bar.d1{fill:var(--muted);stroke:none;}\n.docskin .sp-bar.d2{fill:var(--paper-2);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-bar.crit{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.5;}\n.docskin .sp-bar.err{fill:var(--negative-tint);stroke:var(--negative);stroke-width:1.5;}\n/* Paper text on a dark bar drops the paper halo (it would blot the glyphs). */\n.docskin svg text.sp-on-dark{fill:var(--paper);stroke:none;}\n.docskin .sp-link{stroke:var(--rule-solid);stroke-width:1;fill:none;}\n.docskin .sp-chip{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-chip.err{stroke:var(--negative);}\n.docskin svg text.sp-chip-text.err{fill:var(--negative);}\n.docskin .sp-details{margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink);}\n.docskin .sp-details-title{display:block;margin-bottom:6px;}\n.docskin .sp-details ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}\n.docskin .sp-details li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;}\n.docskin .sp-d-span{font-weight:600;color:var(--ink);}\n.docskin .sp-d-service{font-family:var(--font-mono);font-weight:400;font-size:10px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-right:4px;}\n.docskin .sp-d-attrs{display:inline-flex;flex-wrap:wrap;gap:4px 8px;}\n.docskin .sp-d-attr{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}\n.docskin .sp-d-note{color:var(--muted);font-style:italic;}\n/* rollout (progressive-delivery stage strip) \u2014 paper cards on the frame ground, an ink traffic bar,\n the gate as a chip on the connector; status by the shared chip encoding, current = the one accent. */\n.docskin .ro-strip{display:flex;align-items:stretch;overflow-x:auto;padding:4px 0 6px;}\n.docskin .ro-stage{flex:1 1 160px;min-width:150px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;border-radius:4px;background:var(--paper);border:1px solid var(--ink);}\n.docskin .ro-stage.ro-s-done{background:var(--paper-2);border-color:var(--rule-solid);}\n.docskin .ro-stage.ro-s-current{border:1.5px solid var(--accent);}\n.docskin .ro-stage.ro-s-next{border-style:dashed;border-color:var(--muted);}\n.docskin .ro-stage.ro-s-blocked{border-color:var(--negative);background:var(--negative-tint);}\n.docskin .ro-n{display:block;}\n.docskin .ro-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}\n.docskin .ro-status{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;border-radius:2px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .ro-status.ro-st-done{background:var(--paper);border-color:var(--rule-solid);color:var(--muted);}\n.docskin .ro-status.ro-st-current{color:var(--accent);border-color:var(--accent);}\n.docskin .ro-status.ro-st-next{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .ro-status.ro-st-blocked{color:var(--negative);border-color:var(--negative);}\n.docskin .ro-traffic{display:flex;align-items:center;gap:8px;}\n.docskin .ro-track{flex:1;height:6px;border-radius:3px;background:var(--paper-2);border:1px solid var(--rule-solid);overflow:hidden;}\n.docskin .ro-s-done .ro-track{background:var(--paper);}\n.docskin .ro-fill{height:100%;background:var(--ink);}\n.docskin .ro-pct{flex:none;color:var(--ink);}\n.docskin .ro-note{font-size:12px;color:var(--muted);line-height:1.45;}\n.docskin .ro-link{flex:0 0 auto;position:relative;display:flex;align-items:center;justify-content:center;min-width:34px;max-width:150px;padding:0 8px;}\n.docskin .ro-link::before{content:\"\";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--muted);}\n.docskin .ro-link::after{content:\"\";position:absolute;right:0;top:50%;margin-top:-4px;border:4px solid transparent;border-left:6px solid var(--muted);border-right:0;}\n.docskin .ro-link-end::after{display:none;}\n.docskin .ro-gate{position:relative;max-width:134px;padding:2px 7px;border-radius:2px;background:var(--paper);border:1px solid var(--rule-solid);color:var(--ink);text-align:center;line-height:1.35;}\n.docskin .ro-rollback{display:flex;align-items:baseline;gap:10px;margin-top:12px;font-size:12.5px;color:var(--ink);}\n/* bignumber (one hero metric at presentation scale) \u2014 ink, never a coloured fill */\n.docskin .bn{margin:22px 0;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 24px;text-align:center;}\n.docskin .bn-value-row{display:flex;align-items:baseline;justify-content:center;gap:14px;flex-wrap:wrap;}\n.docskin .bn-value{font-family:var(--font-display);font-weight:700;font-size:clamp(56px,10vw,84px);line-height:1;letter-spacing:-.02em;color:var(--ink);}\n.docskin .bn-delta{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--muted);}\n.docskin .bn-arrow{color:var(--muted);font-size:12px;}\n.docskin .bn-label{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);line-height:1.35;max-width:720px;}\n.docskin .bn-context{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:640px;margin:0;}\n/* takeaways (numbered closing-slide rows) */\n.docskin .tk{margin:22px 0;width:100%;}\n.docskin .tk-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:14px;}\n.docskin .tk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px;}\n.docskin .tk-item{display:flex;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--rule);}\n.docskin .tk-item:last-child{padding-bottom:0;border-bottom:none;}\n.docskin .tk-num{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .tk-body{flex:1;min-width:0;padding-top:3px;}\n.docskin .tk-text{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--ink);line-height:1.35;}\n.docskin .tk-detail{font-size:13.5px;color:var(--muted);margin:5px 0 0;line-height:1.55;max-width:760px;}\n/* statustable (task table + status chips) */\n.docskin .stt{margin:14px 0;}\n.docskin .stt-desc{font-size:13px;color:var(--muted);margin:0 0 10px;max-width:760px;}\n.docskin .stt-wrap{border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);box-shadow:none;}\n.docskin .stt-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .stt-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .stt-table th{padding:9px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .stt-table th.stt-status-h{width:1%;white-space:nowrap;}\n.docskin .stt-table td{padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:middle;color:var(--ink);}\n.docskin .stt-table tbody.stt-group:nth-of-type(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent);}\n.docskin .stt-table tbody.stt-group:last-of-type tr:last-child td{border-bottom:none;}\n.docskin .stt-table td.stt-lead{font-weight:600;color:var(--ink);}\n.docskin .stt-table tr.stt-haskids td{border-bottom-style:dashed;}\n.docskin .stt-table tr.stt-sub td{color:var(--muted);font-size:12.5px;padding-top:6px;padding-bottom:6px;border-bottom-style:dashed;}\n.docskin .stt-table tr.stt-sub td:first-child{padding-left:24px;}\n.docskin .stt-table tr.stt-sub:last-child td{border-bottom-style:solid;}\n.docskin .stt-tree{font-family:var(--font-mono);color:var(--muted);margin-right:8px;}\n.docskin .stt-table td.stt-status{white-space:nowrap;}\n/* The status vocabulary's colour names map onto the chip encoding: green = paper-2 fill (done) \u00B7\n amber = accent outline (in progress) \u00B7 red = negative outline (blocked) \u00B7 gray = dashed (todo) \u00B7 the rest = ink outline. */\n.docskin .stt-pill{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;background:var(--paper);color:var(--ink);border:1px solid var(--ink);}\n.docskin .stt-pill.stt-green{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .stt-pill.stt-amber{border-color:var(--accent);color:var(--accent);}\n.docskin .stt-pill.stt-red{border-color:var(--negative);color:var(--negative);}\n.docskin .stt-pill.stt-gray{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n/* The legend is the shared strip, inside the frame. */\n.docskin .stt-wrap .diagram-legend{margin:0;padding:10px 12px;}\n.docskin .stt-dot{flex:none;width:10px;height:10px;border-radius:2px;background:var(--paper);border:1px solid var(--ink);box-sizing:border-box;}\n.docskin .stt-dot.stt-green{background:var(--paper-2);border-color:var(--rule-solid);}\n.docskin .stt-dot.stt-amber{border-color:var(--accent);}\n.docskin .stt-dot.stt-red{border-color:var(--negative);}\n.docskin .stt-dot.stt-gray{border-style:dashed;border-color:var(--muted);}\n/* benchmark (measured results: subject columns \u00D7 metric rows) \u2014 an airy\n scoreboard: no fills in the header, hairline row rules drawn as inset\n shadows so the featured column's real borders can close into a rounded\n outline, and the winning value in each row tinted with its subject's tone. */\n.docskin .benchmark{margin:26px 0 34px;}\n.docskin .bm-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .bm-desc{font-size:13px;color:var(--slate);margin:2px 0 14px;line-height:1.5;}\n.docskin .bm-scroll{overflow-x:auto;padding:3px 3px 4px;}\n.docskin .bm-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;}\n.docskin .bm-table th,.docskin .bm-table td{box-shadow:inset 0 -1px 0 var(--rule);vertical-align:middle;}\n.docskin .bm-table tbody tr:last-child th,.docskin .bm-table tbody tr:last-child td{box-shadow:none;}\n.docskin .bm-table th.bm-subj{padding:10px 14px 12px;text-align:center;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--charcoal);}\n.docskin .bm-subj-sub{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-top:3px;}\n.docskin .bm-table th.bm-metric{padding:10px 14px 12px;text-align:left;font-family:var(--font-body);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);}\n.docskin .bm-table td.bm-metric{padding:12px 18px 12px 2px;width:30%;min-width:170px;}\n.docskin .bm-row-label{display:block;font-size:14px;font-weight:600;color:var(--charcoal);line-height:1.35;}\n.docskin .bm-row-sub{display:block;font-size:12px;color:var(--gray);line-height:1.4;margin-top:1px;}\n.docskin .bm-table td.bm-cell{padding:0;text-align:center;}\n.docskin .bm-slot{padding:11px 10px;border-radius:4px;}\n.docskin .bm-slot + .bm-slot{position:relative;}\n.docskin .bm-slot + .bm-slot::before{content:\"\";position:absolute;top:0;left:22%;right:22%;height:1px;background:var(--rule);}\n.docskin .bm-val{display:block;font-size:15px;color:var(--charcoal);line-height:1.25;}\n.docskin .bm-slot.bm-best .bm-val{font-weight:700;}\n.docskin .bm-cap{display:block;font-size:11px;color:var(--gray);margin-top:2px;}\n.docskin .bm-note{display:block;font-size:11px;color:var(--gray);margin-bottom:2px;}\n.docskin .bm-slot.bm-best.bm-accent{background:var(--accent-tint);}\n.docskin .bm-slot.bm-best.bm-muted{background:var(--paper-2);}\n/* The featured column is the one accent: side borders on every cell, closed top and bottom. */\n.docskin .bm-table th.bm-feat,.docskin .bm-table td.bm-feat{border-left:1.5px solid var(--accent);border-right:1.5px solid var(--accent);}\n.docskin .bm-table thead th.bm-feat{border-top:1.5px solid var(--accent);border-radius:6px 6px 0 0;}\n.docskin .bm-table tbody tr:last-child td.bm-feat{border-bottom:1.5px solid var(--accent);border-radius:0 0 6px 6px;}\n.docskin .src-note{font-family:var(--font-mono);font-size:11px;color:var(--gray);margin:-6px 0 18px;letter-spacing:.02em;}\n/* tree values \u2014 the driver-tree treatment: the number, then its share of the parent */\n.docskin .tvalue{margin-left:10px;font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);}\n.docskin .tshare{margin-left:6px;font-family:var(--font-mono);font-size:10.5px;color:var(--gray);}\n/* storymap \u2014 backbone step cards across the top, release slices as bands; the first slice is the one accent */\n.docskin .sm-scroll{overflow-x:auto;}\n.docskin .sm-row{display:flex;align-items:stretch;}\n.docskin .sm-head{background:var(--paper-2);}\n.docskin .sm-gutter{flex:0 0 128px;padding:8px 10px 8px 12px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);position:sticky;left:0;z-index:2;background:var(--paper-2);}\n/* The nearest release is the one accent: its label, and a single rule down the row's left edge. */\n.docskin .sm-band-first .sm-gutter{color:var(--accent);border-left:3px solid var(--accent);padding-left:9px;}\n.docskin .sm-colcell{flex:0 0 170px;padding:4px 5px;min-width:0;}\n.docskin .sm-step{background:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:7px 11px 8px;height:100%;box-sizing:border-box;}\n.docskin .sm-step-eyebrow{display:block;margin-bottom:2px;color:var(--muted);}\n.docskin .sm-step-label{font-size:13px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-step-note{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-band{border-top:1px solid var(--rule);}\n.docskin .sm-band .sm-gutter{padding-top:12px;}\n.docskin .sm-cell{padding:8px 5px;}\n.docskin .sm-card{background:var(--paper);border:1px solid var(--rule-solid);padding:7px 10px;border-radius:4px;}\n.docskin .sm-card + .sm-card{margin-top:6px;}\n.docskin .sm-card-title{font-size:12.5px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-card-tag{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:2px;padding:1px 5px;margin-top:5px;}\n/* scenarios \u2014 assumptions in columns, the outcome on its own row */\n.docskin .scenarios{margin:26px 0 34px;}\n.docskin .sn-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .sn-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .sn-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);box-shadow:none;}\n.docskin .sn-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .sn-table thead th{background:var(--paper-2);color:var(--ink);padding:10px 12px;text-align:center;font-family:var(--font-display);font-size:13px;font-weight:700;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .sn-table th.sn-driver,.docskin .sn-table td.sn-driver{text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);}\n.docskin .sn-table td{padding:9px 12px;border-bottom:1px solid var(--rule);text-align:center;font-family:var(--font-mono);color:var(--ink);}\n.docskin .sn-table td.sn-driver{font-family:var(--font-body);color:var(--muted);}\n/* The base case is the one accent: a chip in its header and a tint down its column. */\n.docskin .sn-badge{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-top:5px;}\n.docskin .sn-note{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:3px;}\n.docskin .sn-blank{color:var(--rule-solid);}\n.docskin .sn-table .sc-base{background:var(--accent-tint);}\n.docskin .sn-table thead th.sc-base{background:var(--paper-2);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .sn-outcome td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ink);padding:11px 12px;}\n.docskin .sn-outcome td:first-child{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);text-align:left;}\n/* harvey \u2014 the rated comparison grid: options across, criteria down; the recommendation is the one accent */\n.docskin .harvey{margin:26px 0 34px;}\n.docskin .hv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .hv-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .hv-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);box-shadow:none;}\n.docskin .hv-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .hv-table thead th{background:var(--paper-2);color:var(--muted);padding:10px 12px;text-align:center;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .hv-table th.hv-crit{text-align:left;}\n.docskin .hv-table td{padding:9px 12px;border-bottom:1px solid var(--rule);text-align:center;vertical-align:middle;color:var(--ink);}\n.docskin .hv-table td.hv-crit{text-align:left;}\n.docskin .hv-label{font-weight:600;color:var(--ink);}\n.docskin .hv-note{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}\n.docskin .hv-weight{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:1px 6px;margin-left:8px;}\n.docskin .hv-rec{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-top:5px;}\n.docskin .hv-table td.hv-is-rec{background:var(--accent-tint);}\n.docskin .hv-table thead th.hv-is-rec{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .hv-na{color:var(--muted);font-family:var(--font-mono);}\n.docskin .hv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}\n.docskin .hv-foot td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;}\n.docskin .hv-foot td:first-child{text-align:left;}\n.docskin .hv-foot td.hv-lead{color:var(--ink);font-weight:700;}\n.docskin .hv-scroll .diagram-legend{margin:0;padding:10px 12px;}\n/* scqa \u2014 the executive summary ladder; the answer carries the weight and the one accent */\n.docskin .scqa{margin:26px 0 34px;}\n.docskin .sq-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sq-desc{font-size:13px;color:var(--muted);margin:2px 0 14px;line-height:1.5;}\n.docskin .sq-row{display:flex;gap:14px;padding:11px 0;border-bottom:1px dashed var(--rule);}\n.docskin .sq-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--paper);color:var(--ink);border:1px solid var(--ink);font-family:var(--font-mono);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .sq-body{min-width:0;}\n.docskin .sq-label{display:block;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}\n.docskin .sq-text{font-size:15px;line-height:1.55;color:var(--ink);margin:0;}\n.docskin .sq-answer{margin-top:16px;padding:16px 20px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .sq-label-answer{color:var(--accent);}\n.docskin .sq-text-answer{font-family:var(--font-display);font-size:19px;font-weight:700;line-height:1.4;color:var(--ink);}\n.docskin .sq-because{margin:10px 0 0;padding-left:18px;}\n.docskin .sq-because li{font-size:13.5px;line-height:1.55;color:var(--muted);margin-bottom:3px;}\n/* packet \u2014 the bit ruler, field cells, and each cell's bit count */\n.docskin .pk-tick{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);}\n.docskin .pk-off{font-family:var(--font-mono);font-size:9px;fill:var(--gray);text-anchor:end;dominant-baseline:middle;}\n.docskin .pk-name{font-family:var(--font-body);font-size:11.5px;font-weight:700;fill:var(--charcoal);text-anchor:middle;}\n.docskin .pk-value{font-family:var(--font-mono);font-size:10px;fill:var(--slate);text-anchor:middle;}\n.docskin .pk-bits{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);text-anchor:middle;}\n.docskin .pk-total{font-family:var(--font-mono);font-size:11px;color:var(--gray);margin:10px 0 0;letter-spacing:.03em;}\n/* gitgraph \u2014 lane names, commit messages, release tags */\n.docskin .gg-branch{font-family:var(--font-mono);font-size:11px;font-weight:700;text-anchor:end;}\n.docskin .gg-msg{font-family:var(--font-body);font-size:11px;fill:var(--slate);text-anchor:middle;}\n.docskin .gg-tag{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--highlight);text-anchor:middle;}\n.docskin .bm-foot{font-size:12px;color:var(--gray);margin:12px 0 0;line-height:1.5;}\n/* \u2500\u2500 audit (findings register) \u2014 the risk chip encoding for severity; open = negative, fixing = the accent \u2500\u2500 */\n.docskin .audit{margin:22px 0;}\n.docskin .au-head{display:flex;align-items:baseline;gap:8px 18px;flex-wrap:wrap;margin-bottom:2px;}\n.docskin .au-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);}\n.docskin .au-meta{display:inline-flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}\n.docskin .au-k{font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-right:6px;}\n.docskin .au-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .au-counts{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 10px;}\n.docskin .au-total{margin-right:6px;}\n.docskin .au-sev{display:inline-block;line-height:1.5;}\n.docskin .au-count .au-n{font-weight:700;}\n.docskin .au-sev.rk-sev-info{background:var(--paper);border-color:var(--rule-solid);color:var(--soft);}\n.docskin .au-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);}\n.docskin .au-table{width:100%;border-collapse:collapse;font-size:12.5px;}\n.docskin .au-table thead th{background:var(--paper-2);color:var(--muted);padding:8px 10px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);white-space:nowrap;}\n.docskin .au-table td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink);line-height:1.45;}\n.docskin .au-table tbody tr:last-child td{border-bottom:none;}\n.docskin .au-id{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;}\n.docskin .au-c-sev,.docskin .au-c-status{white-space:nowrap;}\n.docskin .au-ftitle{display:block;font-weight:600;color:var(--ink);}\n.docskin .au-area{display:inline-block;margin-top:3px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule-solid);border-radius:2px;padding:0 5px;line-height:1.5;}\n.docskin .au-ref{display:inline-block;margin:3px 0 0 6px;font-family:var(--font-mono);font-size:10px;color:var(--link);}\n.docskin .au-evidence{font-family:var(--font-mono);font-size:11px;color:var(--muted);min-width:140px;}\n.docskin .au-fix{min-width:150px;}\n.docskin .au-owner{font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap;}\n.docskin .au-st-open{border-color:var(--negative);color:var(--negative);}\n.docskin .au-st-fixing{border-color:var(--accent);color:var(--accent);}\n.docskin .au-st-fixed{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n.docskin .au-st-accepted,.docskin .au-st-wontfix{border-color:var(--rule-solid);color:var(--soft);}\n/* \u2500\u2500 checklist (pass / fail with evidence) \u2014 verdict chips, mono evidence, the derived pass rate \u2500\u2500 */\n.docskin .checklist{margin:22px 0;}\n.docskin .cl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px;}\n.docskin .cl-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);}\n.docskin .cl-standard{font-family:var(--font-mono);font-size:10px;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 7px;line-height:1.5;}\n.docskin .cl-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .cl-groups{display:flex;flex-direction:column;gap:14px;margin-top:8px;}\n.docskin .cl-group-label{display:block;margin-bottom:4px;}\n.docskin .cl-items{display:flex;flex-direction:column;border-top:1px solid var(--rule);}\n.docskin .cl-item{display:flex;align-items:flex-start;gap:12px;padding:8px 2px;border-bottom:1px solid var(--rule);}\n.docskin .cl-verdict{flex:none;display:inline-flex;align-items:center;gap:5px;min-width:64px;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 7px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);margin-top:1px;}\n.docskin .cl-glyph{font-size:11px;line-height:1;}\n.docskin .cl-v-pass{background:var(--paper-2);border-color:var(--paper-2);color:var(--ink);}\n.docskin .cl-v-fail{color:var(--negative);border-color:var(--negative);background:var(--negative-tint);}\n.docskin .cl-v-partial{color:var(--accent);border-color:var(--accent);}\n.docskin .cl-v-na,.docskin .cl-v-pending{color:var(--soft);border-color:var(--rule-solid);}\n.docskin .cl-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-width:0;font-size:13px;line-height:1.5;}\n.docskin .cl-text{color:var(--ink);font-weight:500;}\n.docskin .cl-s-na .cl-text{color:var(--muted);font-weight:400;}\n.docskin .cl-evidence{font-family:var(--font-mono);font-size:11px;color:var(--muted);}\n.docskin .cl-note{font-size:12px;color:var(--muted);font-style:italic;}\n.docskin .cl-ref{font-family:var(--font-mono);font-size:10px;color:var(--link);}\n.docskin .cl-foot{display:flex;justify-content:space-between;align-items:baseline;gap:10px 18px;flex-wrap:wrap;margin-top:10px;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);letter-spacing:.03em;}\n.docskin .cl-rate b{color:var(--ink);font-weight:700;font-size:12px;}\n/* \u2500\u2500 modelcard (ML model card) \u2014 the eventcontract card chrome plus a spec strip and a metrics table \u2500\u2500 */\n.docskin .modelcard{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .mc-task{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:12px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .mc-task .t-eyebrow{color:var(--muted);}\n.docskin .mc-spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:14px 0 0;background:var(--rule-solid);border:1px solid var(--rule-solid);border-radius:4px;overflow:hidden;}\n.docskin .mc-cell{display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:var(--paper-2);}\n.docskin .mc-k{color:var(--muted);}\n.docskin .mc-v{font-family:var(--font-mono);font-size:11.5px;color:var(--ink);line-height:1.4;}\n.docskin .mc-list{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--ink);}\n.docskin .mc-list li{margin:2px 0;}\n.docskin .mc-metrics th.mc-value,.docskin .mc-metrics td.mc-value{text-align:right;}\n.docskin .mc-metrics td.mc-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap;}\n/* \u2500\u2500 chevrons (process chevron strip) \u2014 paper text on the one accent-filled step \u2500\u2500 */\n.docskin svg .t-name.ch-on-accent{fill:var(--paper);stroke:none;}\n/* \u2500\u2500 roadmap (themes \u00D7 periods) \u2014 the current chip's label is bold \u2500\u2500 */\n.docskin svg .rm-label{font-size:10.5px;}\n.docskin svg .rm-current{font-weight:600;}\n/* perfbudget \u2014 metric names in the label column and the measured value at the bar end */\n.docskin .pb-label{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n.docskin .pb-val{font-weight:600;}\n/* percentiles \u2014 the row label */\n.docskin .pc-label{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n/* threatmodel \u2014 trust boundaries restyle the shared group panel; the STRIDE table under the drawing */\n.docskin .tm-bounds rect{fill:var(--negative-tint);fill-opacity:1;stroke:var(--negative);stroke-dasharray:4 3;}\n.docskin .tm-bounds text{fill:var(--negative);}\n.docskin .tm-scroll{overflow-x:auto;margin-top:14px;}\n.docskin .tm-table{margin:0;font-size:12.5px;}\n.docskin .tm-table td{vertical-align:top;color:var(--ink);}\n.docskin .tm-id,.docskin .tm-target{font-family:var(--font-mono);font-size:11px;white-space:nowrap;}\n.docskin .tm-id{color:var(--muted);font-weight:600;}\n.docskin .tm-threat{font-weight:600;}\n.docskin .tm-mit{color:var(--muted);}\n.docskin .tm-none{color:var(--soft);}\n.docskin .tm-cat{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;border:1px solid var(--ink);color:var(--ink);background:var(--paper);font-family:var(--font-mono);font-size:10.5px;font-weight:700;text-decoration:none;cursor:help;}\n.docskin .tm-st-open{color:var(--negative);border-color:var(--negative);}\n.docskin .tm-st-accepted{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n/* \u2500\u2500 code (refined) \u2014 accent bands for highlight, a counter gutter for lines, the cols / compare grid, wrap, captions \u2500\u2500 */\n.docskin .cb>pre{padding:14px 0;}\n.docskin .cb .cl{display:block;padding:0 20px;}\n.docskin .cb .cl-hl{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 2px 0 0 var(--accent);}\n.docskin .cb-lines>pre{counter-reset:line var(--code-start,0);}\n.docskin .cb-lines .cl{padding-left:calc(20px + var(--code-gutter,2ch) + 14px);text-indent:calc(-1 * (var(--code-gutter,2ch) + 14px));}\n.docskin .cb-lines .cl::before{counter-increment:line;content:counter(line);display:inline-block;width:var(--code-gutter,2ch);margin-right:14px;text-align:right;text-indent:0;color:var(--code-muted);opacity:.7;user-select:none;-webkit-user-select:none;}\n.docskin .cb-wrap>pre{white-space:pre-wrap;overflow-wrap:anywhere;}\n.docskin .code-grid{display:grid;grid-template-columns:repeat(var(--code-cols,1),minmax(0,1fr));gap:14px;margin:14px 0 18px;}\n.docskin .code-grid>.code-block{margin:0;display:flex;flex-direction:column;background:var(--code-bg);}\n.docskin .code-grid>.code-block>pre{flex:1 1 auto;}\n@media(max-width:720px){.docskin .code-grid{grid-template-columns:1fr;}}\n.docskin .code-eyebrow{font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--code-muted);}\n.docskin .code-cap{font-size:12px;color:var(--muted);line-height:1.45;padding:8px 16px 9px;background:var(--paper);border-top:1px solid var(--rule-solid);}\n.docskin .code-cap-group{border:0;background:none;padding:0 2px;margin:-10px 0 18px;}";
|
|
29
|
+
declare const houseCss = "*{box-sizing:border-box;margin:0;padding:0;}\nhtml{scroll-behavior:smooth;}\n/* Design tokens live on :root so an override (applied on :root) reaches\n the whole page \u2014 body chrome included, not just .docskin content. */\n:root{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n --paper:#15171d; --paper-2:#1d2028; --ink:#eceae4; --muted:#b4bac6; --soft:#9da5b3;\n --rule:rgba(236,234,228,.13); --rule-solid:#7d8499; --rule-table:rgba(236,234,228,.28);\n --accent:#e4744c; --accent-tint:rgba(228,116,76,.14); --link:#93b7e8;\n --negative:#f5a39b; --negative-tint:rgba(245,163,155,.14);\n --ink-2:#adadab; --ink-3:#62646a;\n --series-1:#9db08f; --series-2:#8aa6c6; --series-3:#d1ac72; --series-4:#c48c72; --series-5:#a094ab;\n --code-bg:#0e1015; --code-fg:#eceae4;\n /* The drawing well: a step below the panel, with a faint lift at the centre. */\n --stage:#121419; --stage-glow:rgba(236,234,228,.05);\n color-scheme:dark;\n /* Figure scale: decks set it on the slide root to enlarge small diagrams. */\n --scale:1;\n /* Legacy token names \u2014 aliases of the roles above so the renderers that\n have not migrated keep working. New code never uses these. */\n --navy:var(--ink); --navy-tint:var(--paper-2); --blue:var(--link); --light-blue:var(--paper-2);\n --charcoal:var(--ink); --slate:var(--muted); --gray:var(--muted); --light-gray:var(--paper-2);\n --highlight:var(--accent); --highlight-soft:var(--accent-tint);\n --positive:var(--muted); --positive-soft:var(--paper-2); --negative-soft:var(--negative-tint);\n --purple:var(--muted); --purple-soft:var(--paper-2); --teal:var(--muted); --teal-soft:var(--paper-2); --white:var(--paper);\n --radius:6px;\n --font-display:\"Inter\",\"SF Pro Display\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;\n --font-body:\"Inter\",-apple-system,BlinkMacSystemFont,\"Segoe UI\",Helvetica,Arial,sans-serif;\n --font-mono:\"SF Mono\",ui-monospace,Menlo,Consolas,\"Courier New\",monospace;}\n/* Light: the explicit choice (a root or docskin stamp) and the print look. */\n:root[data-theme=\"light\"],[data-theme=\"light\"] .docskin,.docskin[data-theme=\"light\"]{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n color-scheme:light;\n}\n:root[data-theme=\"dark\"],[data-theme=\"dark\"] .docskin,.docskin[data-theme=\"dark\"]{\n --paper:#15171d; --paper-2:#1d2028; --ink:#eceae4; --muted:#b4bac6; --soft:#9da5b3;\n --rule:rgba(236,234,228,.13); --rule-solid:#7d8499; --rule-table:rgba(236,234,228,.28);\n --accent:#e4744c; --accent-tint:rgba(228,116,76,.14); --link:#93b7e8;\n --negative:#f5a39b; --negative-tint:rgba(245,163,155,.14);\n --ink-2:#adadab; --ink-3:#62646a;\n --series-1:#9db08f; --series-2:#8aa6c6; --series-3:#d1ac72; --series-4:#c48c72; --series-5:#a094ab;\n --code-bg:#0e1015; --code-fg:#eceae4;\n /* The drawing well: a step below the panel, with a faint lift at the centre. */\n --stage:#121419; --stage-glow:rgba(236,234,228,.05);\n color-scheme:dark;\n}\n@media print{\n :root{\n /* The skin's role tokens (packages/render/DESIGN.md). Renderers name the\n role, never the value; the dark set overrides these on :root. */\n --paper:#f7f6f2; --paper-2:#efede8; --ink:#1f2430; --muted:#4f5868; --soft:#5f6876;\n --rule:rgba(31,36,48,.14); --rule-solid:#807b70; --rule-table:rgba(31,36,48,.32);\n --accent:#b04a25; --accent-tint:rgba(176,74,37,.09); --link:#2f5c8f;\n --negative:#9a3f34; --negative-tint:rgba(154,63,52,.08);\n /* Tone steps between paper-2 and ink (heatmap ramp: paper \u2192 paper-2 \u2192 ink-3 \u2192 ink-2 \u2192 ink). Fills only, never text. */\n --ink-2:#5d6067; --ink-3:#9c9d9e;\n /* Chart series ramp: five desaturated hues for categorical series. Text never sits on them directly \u2014 use a paper mask. */\n --series-1:#788a6a; --series-2:#5e7a9b; --series-3:#a37c45; --series-4:#9c6b50; --series-5:#6e6479;\n /* The code surface is the one deliberate dark panel in both themes; every token colour clears 4.5:1 on it. */\n --code-bg:#1f2430; --code-fg:#f7f6f2; --code-muted:#9aa3b5; --code-rule:rgba(247,246,242,.12);\n --code-kw:#d7a8e8; --code-str:#b5cfa6; --code-num:#e8c58f; --code-fn:#8fbde6; --code-ty:#e6cf8f; --code-com:#9aa3b5;\n --code-add:#b5cfa6; --code-add-bg:rgba(181,207,166,.14); --code-del:#e6b3ab; --code-del-bg:rgba(230,179,171,.14);\n --stage:#f3f1ec; --stage-glow:rgba(255,255,255,.6);\n color-scheme:light;\n }\n}\nbody{background:var(--white);color:var(--charcoal);font-family:var(--font-body);font-size:15px;line-height:1.6;}\n.docskin{\n background:var(--white); color:var(--charcoal); font-family:var(--font-body); font-size:15px; line-height:1.6;\n max-width:var(--page-max,1180px); margin:0 auto; padding:0 56px 128px;\n}\n.docskin .cover-pad{padding:0 0 40px;margin-bottom:56px;border-bottom:1px solid var(--rule);}\n.docskin .cover-logo{display:block;height:52px;width:auto;max-width:260px;margin:0 0 28px;}\n.docskin .cover-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--gray);font-weight:600;margin-bottom:32px;}\n.docskin .cover-meta .accent{color:var(--highlight);}\n.docskin .cover-title{font-family:var(--font-display);font-weight:700;font-size:clamp(40px,5.2vw,62px);line-height:1.08;letter-spacing:-.015em;color:var(--navy);margin:0 0 22px;}\n.docskin .cover-sub{font-size:19px;line-height:1.55;color:var(--slate);max-width:860px;margin:0 0 36px;}\n.docskin .section{padding:0;margin-bottom:64px;}\n.docskin .section > *:last-child{margin-bottom:0;}\n.docskin .section-num{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--soft);font-weight:700;margin-bottom:8px;}\n.docskin .section-head{margin-bottom:28px;padding-bottom:16px;border-bottom:1px solid var(--rule-solid);}\n.docskin .section-head.bare{border-bottom:0;padding-bottom:0;margin-bottom:14px;}\n.docskin .section-head.bare .section-num{margin-bottom:0;font-size:10px;opacity:.8;}\n.docskin .section-head .section-title{border-bottom:0;padding-bottom:0;margin-bottom:14px;}\n.docskin .section-title{font-family:var(--font-display);font-weight:700;font-size:clamp(28px,3.6vw,40px);line-height:1.15;letter-spacing:-.01em;color:var(--navy);margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--rule-solid);}\n.docskin .section-lede{font-size:16px;color:var(--slate);line-height:1.6;max-width:860px;margin:0;}\n.docskin .section-block{margin-bottom:64px;scroll-margin-top:16px;}\n.docskin .section-block:last-child{margin-bottom:0;}\n.docskin .block-anchor{position:relative;display:block;height:0;scroll-margin-top:16px;}\n.docskin .diagram{margin:28px 0 36px;border:1px solid var(--rule-solid);background:var(--paper-2);padding:20px 24px 18px;border-radius:6px;box-shadow:none;}\n/* The dot grid sits only behind the drawing, never under the text around it. */\n.docskin .diagram-stage{background-color:var(--stage);background-image:radial-gradient(var(--rule) 1px,transparent 1px),radial-gradient(ellipse 65% 55% at 50% 42%,var(--stage-glow),transparent 100%);background-size:24px 24px,100% 100%;background-repeat:repeat,no-repeat;background-position:center,center;padding:12px 0;border-radius:4px;box-shadow:inset 0 0 0 1px var(--rule);}\n.docskin .diagram-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;padding-bottom:10px;margin-bottom:14px;border-bottom:1px solid var(--rule);}\n.docskin .diagram-eyebrow{display:inline-flex;align-items:baseline;gap:6px;color:var(--soft);}\n.docskin .diagram-tag{color:var(--soft);}\n.docskin .diagram-tag-sep{color:var(--soft);}\n.docskin .diagram-tag-method{color:var(--accent);font-weight:600;}\n.docskin .diagram-tag-path{color:var(--muted);text-transform:none;letter-spacing:.02em;font-size:10px;}\n.docskin .diagram-title{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink);flex:1;}\n.docskin .diagram-fignum{font-size:10px;color:var(--soft);text-transform:uppercase;letter-spacing:.1em;font-weight:700;}\n.docskin .diagram-desc{font-size:14px;color:var(--muted);margin:0 0 12px;}\n.docskin .diagram svg{display:block;margin:0 auto;max-width:100%;height:auto;}\n.docskin .diagram-stage--wide{overflow-x:auto;overscroll-behavior-x:contain;}\n.docskin .diagram-stage--wide svg{margin:0;}\n@media print{.docskin .diagram-stage--wide{overflow:visible;}.docskin .diagram-stage--wide svg{width:auto!important;max-width:100%!important;}}\n.docskin.slide .diagram-stage--wide{overflow:visible;}.docskin.slide .diagram-stage--wide svg{width:auto!important;max-width:100%!important;}\n/* Type roles (DESIGN.md \u203A Type roles). Fixed figure sizes; usable on SVG\n <text> (fill) and HTML (color). Every SVG text gets the paper halo so it\n survives crossing a line. */\n.docskin .t-name{font-family:var(--font-body);font-size:13px;font-weight:600;fill:var(--ink);color:var(--ink);}\n.docskin .t-sub{font-family:var(--font-mono);font-size:10px;font-weight:400;fill:var(--muted);color:var(--muted);}\n.docskin .t-eyebrow{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;fill:var(--soft);color:var(--soft);}\n.docskin .t-arrow{font-family:var(--font-mono);font-size:9.5px;font-weight:400;letter-spacing:.04em;fill:var(--muted);color:var(--muted);}\n.docskin .t-badge{font-family:var(--font-mono);font-size:9px;font-weight:600;fill:var(--muted);color:var(--muted);}\n.docskin svg .t-name,.docskin svg .t-sub,.docskin svg .t-eyebrow,.docskin svg .t-arrow,.docskin svg .t-badge{paint-order:stroke;stroke:var(--paper);stroke-width:2.5px;stroke-linejoin:round;}\n.docskin svg .t-name{stroke-width:3px;}\n/* Colour modifiers for the type roles \u2014 the only colours a figure spends. */\n.docskin .c-ink{fill:var(--ink);color:var(--ink);} .docskin .c-muted{fill:var(--muted);color:var(--muted);} .docskin .c-soft{fill:var(--soft);color:var(--soft);}\n.docskin .c-accent{fill:var(--accent);color:var(--accent);} .docskin .c-negative{fill:var(--negative);color:var(--negative);} .docskin .c-link{fill:var(--link);color:var(--link);}\n/* Legend strip: a hairline row under the drawing, one item per encoding used. */\n.docskin .diagram-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .lg-title{margin-right:2px;}\n.docskin .lg-item{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10px;letter-spacing:.03em;color:var(--muted);}\n.docskin .lg-sw{flex:none;display:block;}\n.docskin .lg-chip{display:inline-block;padding:1px 5px;border:1px solid var(--rule-solid);border-radius:2px;background:var(--paper);color:var(--muted);line-height:1.3;}\n/* sequence \u2014 paper actor heads, hairline lifelines, arrows per kind, hollow badges */\n.docskin .lane-head{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;} .docskin .lane-head.ext{stroke-dasharray:4 3;}\n.docskin .lane-head-text{text-anchor:middle;}\n.docskin .lane-head-sub{text-anchor:middle;}\n.docskin .lifeline{stroke:var(--rule-solid);stroke-width:1;stroke-dasharray:4 3;}\n.docskin .activation{fill:var(--paper-2);stroke:var(--ink);stroke-width:1;}\n.docskin .msg-line{stroke:var(--muted);stroke-width:1.5;fill:none;}\n.docskin .msg-line.dashed{stroke-dasharray:5 4;} .docskin .msg-line.async{stroke-width:1.25;stroke-dasharray:2 3;}\n.docskin .msg-line.err{stroke:var(--negative);} .docskin .msg-line.accent{stroke:var(--accent);stroke-width:1.75;}\n.docskin .msg-text.em{fill:var(--ink);} .docskin .msg-text.err{fill:var(--negative);} .docskin .msg-text.note{fill:var(--soft);font-style:italic;} .docskin .msg-text.accent{fill:var(--accent);font-weight:600;}\n.docskin .msg-line.self{fill:none;}\n/* combined fragments (alt/opt/loop/par/break/critical): a paper-2 panel, a paper tab chip, the guard in brackets */\n.docskin .seq-frame{fill:var(--paper-2);fill-opacity:.6;stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-frame-tab{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-frame-else{stroke:var(--rule-solid);stroke-width:1;stroke-dasharray:4 3;}\n/* note boxes: paper fill, hairline stroke, folded corner */\n.docskin .seq-note{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-note-fold{fill:none;stroke:var(--rule-solid);stroke-width:1;}\n.docskin .seq-note-text{font-style:italic;}\n.docskin .step-badge{fill:var(--paper);stroke:var(--muted);stroke-width:1;} .docskin .step-badge.err{stroke:var(--negative);}\n.docskin .step-badge-text{text-anchor:middle;fill:var(--ink);}\n.docskin .seq-steps{margin-top:16px;padding:14px 18px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:4px;}\n.docskin .seq-steps-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--soft);font-weight:600;margin-bottom:8px;font-family:var(--font-mono);}\n.docskin .seq-steps ol{list-style:none;padding:0;margin:0;}\n.docskin .seq-steps li{padding:7px 0 8px 40px;position:relative;border-bottom:1px solid var(--rule);}\n.docskin .seq-steps li:last-child{border-bottom:none;}\n/* The number is emitted by the renderer (the message's DIAGRAM number, so an\n annotation on step 4 reads \u2463 here even when steps 1-3 have no note). */\n.docskin .seq-steps .step-n{position:absolute;left:2px;top:7px;width:20px;height:20px;border:1px solid var(--muted);border-radius:50%;color:var(--muted);font-family:var(--font-mono);font-size:9px;font-weight:600;text-align:center;line-height:18px;background:var(--paper);}\n/* frame dividers mirror the diagram's frames: \"ALT \u00B7 token valid\", \"else \u00B7 expired\" */\n.docskin .seq-steps li.step-frame{padding:8px 0 4px;font-family:var(--font-mono);font-size:10px;color:var(--muted);border-bottom:1px dashed var(--rule);}\n.docskin .seq-steps li.step-frame .step-frame-tag{display:inline-block;padding:1px 6px;margin-right:8px;border:1px solid var(--rule-solid);border-radius:2px;background:var(--paper);color:var(--soft);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;}\n.docskin .seq-steps li.step-frame.else{padding-left:12px;}\n.docskin .seq-steps li.err .step-n{border-color:var(--negative);color:var(--negative);}\n.docskin .seq-steps li.err{font-family:inherit;font-size:inherit;color:inherit;background:none;border:none;border-bottom:1px solid var(--rule);padding:7px 0 8px 40px;margin:0;white-space:normal;}\n.docskin .seq-steps li.err:last-child{border-bottom:none;}\n.docskin .diagram-foot{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:14px;font-size:12.5px;color:var(--ink);}\n.docskin .diagram-foot strong{color:var(--muted);font-weight:600;}\n.docskin .step-actor{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);margin-right:8px;text-transform:uppercase;letter-spacing:.06em;}\n.docskin .step-actor.err{color:var(--negative);background:none;border:none;padding:0;margin:0 8px 0 0;font-size:10px;white-space:normal;}\n.docskin .step-summary{font-size:13px;color:var(--ink);}\n/* c4 */\n.docskin .c4-name{font-family:var(--font-display);font-size:14px;font-weight:700;}\n.docskin .c4-tech{font-family:var(--font-mono);font-size:9.5px;}\n.docskin .c4-desc{font-family:var(--font-body);font-size:10px;}\n.docskin .c4-chip{font-family:var(--font-body);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}\n.docskin .edge-label{font-family:var(--font-body);font-size:9.5px;fill:var(--slate);text-anchor:middle;}\n.docskin .edge-label.err{fill:var(--negative);font-weight:700;}\n/* numbered edge steps (dense diagrams): circled numerals on arrows + legend below */\n.docskin .edge-steps{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .edge-step{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--slate);}\n.docskin .edge-step b{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1px solid var(--charcoal);color:var(--charcoal);font-family:var(--font-mono);font-size:10px;font-weight:700;background:var(--white);}\n.docskin .edge-step.err{color:var(--negative);}\n.docskin .edge-step.err b{border-color:var(--negative);color:var(--negative);}\n.docskin .c4-boundary{fill:none;stroke:var(--navy);stroke-width:1.4;stroke-dasharray:8 5;}\n.docskin .c4-boundary-label{font-family:var(--font-body);font-size:10px;font-weight:700;fill:var(--navy);letter-spacing:.08em;text-transform:uppercase;}\n/* code block */\n/* Code surfaces are a dark editor theme everywhere (code block, gallery, sequence). */\n.docskin pre{background:var(--code-bg);color:var(--code-fg);padding:18px 20px;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;overflow-x:auto;white-space:pre;margin:0;-moz-tab-size:2;tab-size:2;}\n.docskin pre .kw{color:var(--code-kw);font-weight:600;} .docskin pre .com{color:var(--code-com);font-style:italic;}\n.docskin pre .str{color:var(--code-str);} .docskin pre .num{color:var(--code-num);} .docskin pre .fn{color:var(--code-fn);} .docskin pre .ty{color:var(--code-ty);}\n.docskin .code-block{margin:14px 0 18px;border-radius:6px;overflow:hidden;border:1px solid var(--rule-solid);box-shadow:none;}\n.docskin .code-header{display:flex;justify-content:space-between;align-items:center;padding:9px 16px;background:var(--code-bg);color:var(--code-muted);font-family:var(--font-mono);font-size:11px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid var(--code-rule);}\n/* Three quiet dots stand in for the traffic lights on full code blocks (not the tighter gallery cards). */\n.docskin .code-block>.code-header::before{content:\"\";flex:none;width:9px;height:9px;border-radius:50%;background:var(--code-muted);box-shadow:15px 0 0 var(--code-muted),30px 0 0 var(--code-muted);opacity:.4;margin-right:38px;}\n.docskin .code-block>pre{border-radius:0;}\n/* er \u2014 paper cards, an eyebrow + name header, mono rows with # (pk) and \u2192 (fk) */\n.docskin .er-head-text{text-anchor:start;}\n.docskin .er-col{font-family:var(--font-mono);font-size:10px;fill:var(--ink);} .docskin .er-col.dim{fill:var(--soft);}\n.docskin .er-key{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:var(--muted);}\n.docskin .er-rowline{stroke:var(--rule);stroke-width:1;}\n.docskin .er-headline{stroke:var(--rule-solid);stroke-width:1;}\n.docskin .er-panel{fill:var(--paper-2);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .er-panel-tab{fill:var(--soft);}\n.docskin .er-card{fill:var(--muted);}\n.docskin .er-rel{fill:var(--muted);}\n/* block / state / flow shared text */\n.docskin .blk-name{font-family:var(--font-display);font-size:13px;font-weight:700;}\n.docskin .blk-tech{font-family:var(--font-mono);font-size:9.5px;}\n.docskin .blk-chip{font-family:var(--font-body);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;}\n.docskin .grp-label{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;}\n.docskin .fc-label{text-anchor:middle;}\n.docskin .endpoint-card{border:1px solid var(--rule);margin:16px 0;padding:18px 22px;background:var(--white);}\n.docskin .endpoint-header{display:flex;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed var(--rule);}\n/* The method chip is the card's one accent (DESIGN.md: the endpoint method may take it); DELETE reads as negative. */\n.docskin .endpoint-method{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:3px 9px;color:var(--accent);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--accent);border-radius:3px;background:var(--paper);}\n.docskin .endpoint-method.delete{color:var(--negative);border-color:var(--negative);}\n.docskin .endpoint-path{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--ink);flex:1;}\n.docskin .endpoint-status{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);font-weight:700;}\n.docskin .endpoint-desc{font-size:13px;color:var(--muted);margin:0 0 8px;}\n.docskin .endpoint-card h4{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin:14px 0 6px;}\n.docskin .endpoint-card ul{margin:0 0 0 20px;} .docskin .endpoint-card li{font-size:13px;margin-bottom:3px;}\n.docskin code{font-family:var(--font-mono);font-size:.86em;background:var(--light-gray);padding:2px 6px;border-radius:2px;border:1px solid var(--rule);}\n.docskin .transition-table{width:100%;border-collapse:collapse;margin:16px 0 8px;font-size:12px;}\n/* Table headers everywhere: a paper-2 band with eyebrow text in muted (4.5:1 floor) \u2014 never a dark fill. */\n.docskin .transition-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .transition-table th{text-align:left;padding:8px 10px;font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;border-bottom:1px solid var(--rule-solid);}\n.docskin .transition-table td{padding:8px 10px;border-bottom:1px solid var(--rule-table);vertical-align:top;}\n.docskin .transition-table td.t-num{width:30px;padding-right:2px;}\n/* Status chips (the one encoding for every status / priority / tone pill in the skin):\n a WORD plus one of \u2014 ink outline (default) \u00B7 paper-2 fill (done / settled) \u00B7\n accent outline (current / recommended) \u00B7 negative outline (blocked / error) \u00B7\n dashed outline (todo / future / not started). Never a hue per status. */\n.docskin .pill{display:inline-block;font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .pill-init{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .pill-active{border-color:var(--ink);}\n.docskin .pill-wait{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .pill-end{border-color:var(--accent);color:var(--accent);}\n/* presentation: comparison table */\n.docskin .pres-table{width:100%;border-collapse:separate;border-spacing:0;margin:14px 0;font-size:13px;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;}\n.docskin .pres-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .pres-table th{padding:9px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .pres-table th.r,.docskin .pres-table td.r{text-align:right;} .docskin .pres-table th.c,.docskin .pres-table td.c{text-align:center;}\n.docskin .pres-table th.hi{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .pres-table td{padding:9px 12px;border-bottom:1px solid var(--rule-table);} .docskin .pres-table tbody tr:last-child td{border-bottom:none;}\n.docskin .pres-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent);}\n.docskin .pres-table td.lead{font-weight:600;color:var(--ink);}\n.docskin .pres-table td.hi{background:var(--accent-tint);}\n.docskin .cell-pos{color:var(--ink);font-weight:700;} .docskin .cell-neg{color:var(--negative);font-weight:700;} .docskin .cell-warn{color:var(--accent);font-weight:700;} .docskin .cell-muted{color:var(--muted);}\n.docskin .badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:700;border:1px solid currentColor;background:var(--paper);}\n.docskin .badge.yes{color:var(--ink);} .docskin .badge.no{color:var(--negative);}\n.docskin .tbl-note{font-size:11px;color:var(--muted);font-style:italic;margin-top:6px;}\n/* presentation: stat cards */\n.docskin .stat-row{display:flex;flex-wrap:wrap;gap:14px;margin:16px 0;}\n.docskin .stat-card{flex:1 1 150px;border:1px solid var(--rule-solid);border-top:2px solid var(--ink);padding:16px 18px;background:var(--paper);border-radius:0 0 6px 6px;}\n.docskin .stat-value{font-family:var(--font-display);font-size:30px;font-weight:700;color:var(--ink);line-height:1;}\n.docskin .stat-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin-top:8px;}\n.docskin .stat-delta{font-family:var(--font-mono);font-size:12px;font-weight:700;margin-top:6px;}\n.docskin .stat-delta.up{color:var(--ink);} .docskin .stat-delta.down{color:var(--negative);} .docskin .stat-delta.flat{color:var(--muted);}\n/* presentation: timeline \u2014 hollow dots; done = paper-2 fill, current = the accent, next/future = dashed */\n.docskin .tl{position:relative;margin:18px 0;padding-left:8px;}\n.docskin .tl::before{content:\"\";position:absolute;left:9px;top:6px;bottom:6px;width:1px;background:var(--rule-solid);}\n.docskin .tl-item{position:relative;padding:0 0 18px 30px;}\n.docskin .tl-item:last-child{padding-bottom:0;}\n.docskin .tl-dot{position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:50%;background:var(--paper);border:1.5px solid var(--muted);box-sizing:border-box;}\n.docskin .tl-dot.done,.docskin .tl-dot.past{background:var(--paper-2);border-color:var(--ink);} .docskin .tl-dot.current{background:var(--accent);border-color:var(--accent);} .docskin .tl-dot.next,.docskin .tl-dot.future{border-style:dashed;border-color:var(--ink);}\n.docskin .tl-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}\n.docskin .tl-date{font-family:var(--font-mono);font-size:10px;font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;}\n/* The status word beside the dot, in the chip encoding. */\n.docskin .tl-status{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;border-radius:2px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .tl-status.tl-s-done{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .tl-status.tl-s-current{color:var(--accent);border-color:var(--accent);}\n.docskin .tl-status.tl-s-next,.docskin .tl-status.tl-s-future{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .tl-label{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink);margin:1px 0 2px;}\n.docskin .tl-desc{font-size:12.5px;color:var(--muted);}\n.docskin .toc{margin:18px 0 6px;padding:14px 20px;background:var(--light-gray);border:1px solid var(--rule);border-left:4px solid var(--highlight);border-radius:0 var(--radius) var(--radius) 0;}\n.docskin .toc-title{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--navy);font-weight:700;margin-bottom:8px;}\n.docskin .toc ol{margin:0;padding-left:20px;} .docskin .toc li{font-size:13px;margin-bottom:4px;color:var(--slate);}\n.docskin .toc li span{color:var(--gray);font-family:var(--font-mono);font-size:11px;}\n/* callouts */\n/* Tones by left rule only: note = hairline \u00B7 tip = accent \u00B7 warn / danger = negative \u00B7 info = link \u00B7 success = ink on paper-2. Text is always ink. */\n.docskin .callout{border:1px solid var(--rule-solid);padding:14px 18px;margin:14px 0;border-radius:6px;background:var(--paper);}\n.docskin .callout.tip{border-left:3px solid var(--accent);border-radius:0 6px 6px 0;} .docskin .callout.warn,.docskin .callout.danger{border-left:3px solid var(--negative);border-radius:0 6px 6px 0;} .docskin .callout.info{border-left:3px solid var(--link);border-radius:0 6px 6px 0;} .docskin .callout.success{border-left:3px solid var(--ink);border-radius:0 6px 6px 0;background:var(--paper-2);}\n.docskin .callout-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:5px;color:var(--muted);}\n.docskin .callout.tip .callout-title{color:var(--accent);} .docskin .callout.warn .callout-title,.docskin .callout.danger .callout-title{color:var(--negative);} .docskin .callout.info .callout-title{color:var(--link);}\n.docskin .callout-body{font-size:14.5px;color:var(--ink);line-height:1.6;}\n.docskin .callout-body p{margin:0 0 8px;}\n.docskin .callout-body p:last-child{margin-bottom:0;}\n/* prose */\n/* Markdown pipe tables and links inside prose: the same frame, header, and\n row rules as the table block, so a GFM table never renders bare. */\n.docskin .prose table{width:100%;border-collapse:separate;border-spacing:0;margin:18px 0;font-size:13px;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;}\n.docskin .prose thead th{background:var(--paper-2);color:var(--muted);text-align:left;padding:9px 12px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .prose td{padding:9px 12px;border-bottom:1px solid var(--rule-table);vertical-align:top;}\n.docskin .prose tbody tr:last-child td{border-bottom:none;}\n.docskin .prose tbody tr:nth-child(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent);}\n.docskin .prose a{color:var(--link);text-decoration:underline;text-underline-offset:2px;text-decoration-color:color-mix(in srgb,var(--link) 50%,transparent);}\n.docskin .prose h2{font-family:var(--font-display);font-weight:700;font-size:clamp(24px,3vw,32px);line-height:1.15;letter-spacing:-.015em;color:var(--navy);margin:40px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--rule-solid);}\n.docskin .prose h2:first-child{margin-top:0;}\n.docskin .prose h3{font-family:var(--font-display);font-weight:700;font-size:19px;letter-spacing:-.005em;color:var(--navy);margin:36px 0 12px;}\n.docskin .prose h4{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin:22px 0 8px;}\n.docskin .prose p{font-size:15.5px;color:var(--charcoal);margin:0 0 14px;line-height:1.65;max-width:820px;}\n.docskin .prose ul,.docskin .prose ol{margin:0 0 14px 22px;}\n.docskin .prose li{font-size:15px;color:var(--charcoal);margin-bottom:5px;max-width:820px;line-height:1.6;}\n.docskin .prose blockquote{border-left:2px solid var(--ink);padding:4px 14px;margin:14px 0;color:var(--muted);font-style:italic;font-family:var(--font-display);}\n.docskin .prose code{font-family:var(--font-mono);font-size:.86em;background:var(--light-gray);padding:2px 6px;border-radius:2px;color:var(--charcoal);border:1px solid var(--rule);}\n.docskin .prose strong{font-weight:700;color:var(--charcoal);}\n.docskin .prose em{font-style:italic;}\n/* glossary */\n.docskin .jr-emotion{margin-top:10px;}\n.docskin .jr-emotion-label{font-size:10px;color:var(--gray);font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;}\n.docskin .glossary{margin:10px 0;}\n.docskin .glossary .row{display:grid;grid-template-columns:170px 1fr;gap:14px;padding:9px 0;border-bottom:1px solid var(--rule);}\n.docskin .glossary dt{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--navy);}\n.docskin .glossary dd{margin:0;font-size:14px;color:var(--slate);}\n.docskin .glossary .avoid{font-size:12px;color:var(--gray);}\n/* pros / cons */\n.docskin .pc{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0;}\n.docskin .pc-col{border:1px solid var(--rule-solid);padding:14px 16px;background:var(--paper);border-radius:6px;}\n.docskin .pc-col.pro{border-top:2px solid var(--ink);} .docskin .pc-col.con{border-top:2px solid var(--negative);}\n.docskin .pc-head{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:8px;}\n.docskin .pc-col.pro .pc-head{color:var(--muted);} .docskin .pc-col.con .pc-head{color:var(--negative);}\n.docskin .pc-item{font-size:13px;color:var(--ink);padding:4px 0 4px 22px;position:relative;}\n.docskin .pc-item::before{position:absolute;left:0;top:4px;font-weight:700;}\n.docskin .pc-col.pro .pc-item::before{content:\"\\2713\";color:var(--ink);} .docskin .pc-col.con .pc-item::before{content:\"\\2717\";color:var(--negative);}\n/* current / target */\n.docskin .ct{display:flex;align-items:stretch;margin:12px 0;}\n.docskin .ct-panel{flex:1;border:1px solid var(--rule);padding:14px 18px;}\n.docskin .ct-panel.cur{background:var(--light-gray);} .docskin .ct-panel.tgt{border-top:3px solid var(--navy);}\n.docskin .ct-arrow{display:flex;align-items:center;padding:0 14px;color:var(--highlight);font-size:22px;font-weight:700;}\n.docskin .ct-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--gray);margin-bottom:8px;}\n.docskin .ct-panel.tgt .ct-label{color:var(--navy);}\n.docskin .ct-item{font-size:13px;color:var(--slate);padding:3px 0;}\n/* kanban */\n.docskin .kanban{display:flex;gap:14px;margin:12px 0;overflow-x:auto;}\n.docskin .kan-col{flex:1 1 0;min-width:150px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;}\n.docskin .kan-head{font-family:var(--font-mono);font-size:9.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-weight:500;padding:9px 12px 7px;border-bottom:1px solid var(--rule);}\n.docskin .kan-card{background:var(--paper);border:1px solid var(--rule-solid);margin:8px;padding:9px 11px;border-radius:4px;}\n.docskin .kan-card-title{font-size:13px;font-weight:600;color:var(--ink);}\n.docskin .kan-card-tag{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-top:5px;border:1px solid var(--rule-solid);border-radius:2px;padding:1px 5px;background:var(--paper);}\n/* pass 2 chart labels */\n.docskin .cycle-center text{font-family:var(--font-mono);font-size:12px;font-weight:600;text-anchor:middle;fill:var(--gray);}\n.docskin .pyr-label{font-family:var(--font-display);font-size:12.5px;font-weight:700;fill:var(--white);text-anchor:middle;}\n.docskin .pyr-desc{font-family:var(--font-body);font-size:10px;fill:var(--white);text-anchor:middle;opacity:.85;}\n/* indented tree */\n.docskin .tree-list{margin:10px 0;font-size:13px;}\n.docskin .tree-row{display:flex;align-items:baseline;padding:3px 0;}\n.docskin .tree-row .tw{color:var(--gray);margin-right:8px;font-family:var(--font-mono);font-size:11px;}\n.docskin .tree-row.branch .tw{color:var(--navy);}\n.docskin .tree-row .tlabel{color:var(--charcoal);font-family:var(--font-mono);}\n.docskin .tree-row.branch .tlabel{font-weight:700;color:var(--navy);}\n.docskin .tree-row .tnote{color:var(--gray);font-size:11px;margin-left:10px;font-family:var(--font-body);font-style:italic;}\n/* agenda */\n.docskin .agenda{margin:10px 0;}\n.docskin .agenda-row{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:10px 0;border-bottom:1px solid var(--rule);}\n.docskin .agenda-time{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);}\n.docskin .agenda-dur{font-family:var(--font-mono);font-size:10px;color:var(--gray);margin-top:2px;}\n.docskin .agenda-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--charcoal);}\n.docskin .agenda-owner{font-size:10.5px;color:var(--highlight);font-weight:700;text-transform:uppercase;letter-spacing:.05em;margin-left:8px;}\n.docskin .agenda-desc{font-size:12.5px;color:var(--slate);margin-top:2px;}\n/* tracker */\n.docskin .trk{width:100%;border-collapse:collapse;margin:12px 0;font-size:13px;}\n.docskin .trk thead{background:var(--paper-2);color:var(--muted);} .docskin .trk th{padding:8px 10px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .trk td{padding:8px 10px;border-bottom:1px solid var(--rule-table);vertical-align:middle;}\n.docskin .trk tr.done .trk-task{text-decoration:line-through;color:var(--muted);}\n.docskin .st{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .st.todo{border-style:dashed;border-color:var(--muted);color:var(--muted);} .docskin .st.doing{border-color:var(--accent);color:var(--accent);} .docskin .st.done{background:var(--paper-2);border-color:var(--paper-2);} .docskin .st.blocked{border-color:var(--negative);color:var(--negative);}\n.docskin .pri{font-family:var(--font-mono);font-size:10px;font-weight:700;} .docskin .pri.high{color:var(--negative);} .docskin .pri.med{color:var(--ink);} .docskin .pri.low{color:var(--muted);}\n/* cluster */\n.docskin .cl-head{font-family:var(--font-display);font-size:13px;font-weight:700;fill:var(--ink);}\n/* user story */\n.docskin .story{border:1px solid var(--rule);border-left:4px solid var(--navy);padding:18px 22px;margin:12px 0;background:var(--white);border-radius:0 var(--radius) var(--radius) 0;}\n.docskin .story-stmt{font-family:var(--font-display);font-size:18px;line-height:1.55;color:var(--charcoal);}\n.docskin .story-stmt b{color:var(--navy);}\n.docskin .story-meta{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap;}\n.docskin .story-chip{font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:3px;background:var(--light-gray);color:var(--slate);border:1px solid var(--rule);}\n.docskin .story-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:12px;}\n.docskin .story-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-right:auto;}\n.docskin .story-chip.pts{background:var(--paper);color:var(--ink);border-color:var(--ink);}\n.docskin .ac-title{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin:16px 0 8px;}\n.docskin .ac-item{border:1px solid var(--rule-solid);padding:10px 14px;margin-bottom:8px;background:var(--paper);border-radius:4px;}\n.docskin .gwt{display:grid;grid-template-columns:60px 1fr;gap:4px 12px;font-size:13px;}\n.docskin .gwt .k{font-family:var(--font-mono);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding-top:1px;color:var(--muted);}\n.docskin .gwt .k.t{color:var(--ink);}\n.docskin .gwt .v{color:var(--charcoal);}\n.docskin .links-row{display:flex;gap:8px;flex-wrap:wrap;}\n.docskin .link-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--navy);border:1px solid var(--navy);background:var(--white);padding:5px 11px;border-radius:20px;cursor:pointer;}\n.docskin .link-chip .lt{color:var(--gray);font-family:var(--font-mono);font-size:9px;text-transform:uppercase;letter-spacing:.06em;}\na.link-chip,a.st-link{text-decoration:none;color:inherit;}\na.link-chip:hover,a.st-link:hover{text-decoration:underline;}\n.docskin .footer{margin-top:8px;padding:18px 32px 28px;border-top:1px solid var(--rule-solid);font-size:11px;color:var(--gray);text-transform:uppercase;letter-spacing:.1em;font-weight:700;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}\n.docskin .footer .accent{color:var(--highlight);}\n.docskin .layer-label{font-family:var(--font-body);font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;}\n.docskin .uml-sep{stroke:var(--rule);stroke-width:1;}\n/* wireframe / UI mockups */\n.docskin .wf-h{font-family:var(--font-display);font-size:18px;font-weight:700;}\n.docskin .wf-sub{font-family:var(--font-body);font-size:12px;font-weight:600;}\n.docskin .wf-btn{font-family:var(--font-body);font-size:11px;font-weight:700;fill:var(--paper);}\n.docskin .wf-btn.on-light{fill:var(--ink);}\n.docskin .wf-ph-text{font-family:var(--font-body);font-size:10px;fill:var(--muted);}\n.docskin .wf-status{font-family:var(--font-mono);font-size:9px;fill:var(--charcoal);font-weight:700;}\n.docskin .wf-url{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);}\n.docskin .wf-tab{font-family:var(--font-body);font-size:8px;}\n.docskin .wf-caption{font-family:var(--font-mono);font-size:10px;fill:var(--gray);letter-spacing:.04em;}\n/* parse error (the block-level div only; .err modifiers on labels and rows have their own rules) */\n.docskin div.err{font-family:var(--font-mono);font-size:12px;color:var(--negative);background:var(--negative-tint);border:1px solid var(--negative);border-radius:4px;padding:8px 12px;margin:12px 0;white-space:pre-wrap;}\n/* endpoint (API reference card) */\n.docskin .endpoint{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .ep-head{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-solid);flex-wrap:wrap;}\n/* The method chip is the card's one accent; DELETE reads as negative. */\n.docskin .ep-method{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--accent);padding:3px 9px;border-radius:3px;letter-spacing:.08em;border:1px solid var(--accent);background:var(--paper);}\n.docskin .ep-method.delete{color:var(--negative);border-color:var(--negative);}\n.docskin .ep-path{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);}\n.docskin .ep-auth{margin-left:auto;font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .ep-body{padding:6px 16px 14px;}\n.docskin .ep-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin:10px 0 2px;}\n.docskin .ep-desc{font-size:13.5px;color:var(--slate);margin:4px 0 0;line-height:1.55;}\n.docskin .ep-section{font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:var(--gray);font-weight:700;margin:16px 0 6px;}\n.docskin .ep-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .ep-table th{text-align:left;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--gray);font-weight:700;padding:4px 8px;border-bottom:1px solid var(--rule);}\n.docskin .ep-table td{padding:6px 8px;border-bottom:1px solid var(--rule-table);vertical-align:top;color:var(--charcoal);}\n.docskin .ep-name{font-family:var(--font-mono);font-weight:600;color:var(--navy);white-space:nowrap;}\n.docskin .ep-type{font-family:var(--font-mono);color:var(--slate);font-size:12px;}\n.docskin .ep-req{font-family:var(--font-body);font-size:9px;font-weight:700;text-transform:uppercase;color:var(--negative);letter-spacing:.04em;}\n.docskin .ep-status{font-family:var(--font-mono);font-weight:600;font-size:12px;padding:1px 8px;border-radius:3px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .ep-status.ep-2xx{background:var(--paper-2);border-color:var(--paper-2);} .docskin .ep-status.ep-3xx{border-style:dashed;border-color:var(--muted);color:var(--muted);} .docskin .ep-status.ep-5xx{border-color:var(--negative);color:var(--negative);}\n.docskin .ep-ex{font-family:var(--font-mono);font-size:12px;line-height:1.5;color:var(--ink);background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;padding:10px 12px;margin:4px 0 0;overflow-x:auto;white-space:pre;}\n.docskin .j-key{color:var(--ink);font-weight:600;} .docskin .j-str{color:var(--muted);} .docskin .j-num{color:var(--ink);} .docskin .j-kw{color:var(--accent);font-weight:600;}\n/* pullquote */\n.docskin .pull{margin:28px 0;padding:18px 24px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .pull-text{font-family:var(--font-display);font-size:18px;line-height:1.45;color:var(--ink);max-width:840px;}\n.docskin .pull-attr{margin-top:10px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;}\n/* layers (numbered layer stack) */\n.docskin .layer-stack{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);}\n.docskin .layer{display:grid;grid-template-columns:48px 168px 1fr;border-bottom:1px solid var(--rule);}\n.docskin .layer:last-child{border-bottom:none;}\n.docskin .layer-num{background:var(--paper-2);color:var(--ink);border-right:1px solid var(--rule);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:16px;font-weight:600;}\n.docskin .layer-meta{background:var(--paper);padding:13px 15px;border-right:1px solid var(--rule);}\n.docskin .layer-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:500;margin-bottom:4px;}\n.docskin .layer-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);}\n.docskin .layer-src{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-top:4px;}\n.docskin .layer-q{font-family:var(--font-display);font-size:12px;font-style:italic;color:var(--muted);margin-top:8px;line-height:1.35;}\n.docskin .layer-body{padding:13px 18px;font-size:13px;line-height:1.55;color:var(--ink);}\n/* matrix (role \u00D7 resource capability grid) \u2014 full = solid ink outline, some = dashed outline, none = muted */\n.docskin .matrix{margin:22px 0;}\n.docskin .mx-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .mx-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .mx-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);}\n.docskin .mx-grid{border-collapse:collapse;width:100%;font-size:13px;}\n.docskin .mx-grid th,.docskin .mx-grid td{padding:9px 13px;text-align:center;border-bottom:1px solid var(--rule-table);border-right:1px solid var(--rule-table);}\n.docskin .mx-grid tr:last-child th,.docskin .mx-grid tr:last-child td{border-bottom:none;}\n.docskin .mx-grid th:last-child,.docskin .mx-grid td:last-child{border-right:none;}\n.docskin .mx-grid thead th{background:var(--paper-2);color:var(--muted);font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;}\n.docskin .mx-corner{background:var(--paper-2)!important;color:var(--muted)!important;text-align:left;}\n.docskin .mx-row{text-align:left;background:var(--paper-2);color:var(--ink);font-weight:600;white-space:nowrap;}\n.docskin .mx-cell{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ink);}\n.docskin .mx-cell.m-full{outline:1.5px solid var(--ink);outline-offset:-5px;}\n.docskin .mx-cell.m-some{outline:1px dashed var(--muted);outline-offset:-5px;}\n.docskin .mx-cell.m-none{color:var(--muted);font-weight:400;}\n/* anatomy (anatomy of a structured string) */\n.docskin .anatomy{margin:24px 0;}\n.docskin .a-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .a-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .a-string{font-family:var(--font-mono);font-size:22px;font-weight:700;text-align:center;padding:14px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;overflow-x:auto;white-space:nowrap;color:var(--ink);}\n.docskin .a-sep{color:var(--muted);margin:0 2px;font-weight:400;}\n.docskin .a-cards{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;margin-top:14px;justify-content:center;}\n.docskin .a-card{flex:1 1 140px;min-width:120px;max-width:240px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:6px;padding:10px 13px;}\n.docskin .a-card-sep{align-self:center;font-family:var(--font-mono);font-size:18px;font-weight:700;color:var(--muted);padding:0 8px;}\n.docskin .a-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;margin-bottom:5px;color:var(--muted);}\n.docskin .a-value{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);word-break:break-word;}\n.docskin .a-note{font-size:12px;color:var(--muted);margin-top:5px;line-height:1.45;}\n/* Segments are told apart by their label, not a hue. */\n.docskin .a-seg-1,.docskin .a-seg-2,.docskin .a-seg-3,.docskin .a-seg-4{color:var(--ink);}\n.docskin .a-label.a-seg-1,.docskin .a-label.a-seg-2,.docskin .a-label.a-seg-3,.docskin .a-label.a-seg-4{color:var(--muted);}\n/* composition (layered gates intersected into a result) \u2014 the result is the one accent */\n.docskin .composition{margin:24px 0;}\n.docskin .cp-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .cp-desc-top{font-size:13px;color:var(--muted);margin:2px 0 14px;line-height:1.5;}\n.docskin .cp-row{display:flex;flex-wrap:wrap;align-items:stretch;gap:0;}\n.docskin .cp-gate{flex:1 1 150px;min-width:140px;background:var(--paper);border:1px solid var(--rule-solid);border-radius:6px;padding:0 0 12px;overflow:hidden;box-shadow:none;display:flex;flex-direction:column;}\n.docskin .cp-gate-head{padding:10px 14px 8px;border-bottom:1px solid var(--rule);background:var(--paper-2);}\n.docskin .cp-gate-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:3px;}\n.docskin .cp-gate-label{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);line-height:1.2;}\n.docskin .cp-desc{font-size:12px;color:var(--muted);margin:8px 14px 0;line-height:1.45;flex:1;}\n.docskin .cp-gate-src{font-family:var(--font-mono);font-size:9.5px;color:var(--muted);margin:8px 14px 0;}\n.docskin .cp-op,.docskin .cp-eq{align-self:center;font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--muted);padding:0 12px;}\n.docskin .cp-result{flex:1 1 150px;min-width:140px;align-self:stretch;background:var(--paper);border:1.5px solid var(--accent);border-radius:6px;padding:14px;display:flex;flex-direction:column;justify-content:center;}\n.docskin .cp-result-kicker{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--accent);margin-bottom:4px;}\n.docskin .cp-result-label{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.2;}\n/* drivers (factor card grid) */\n.docskin .drivers{margin:24px 0;}\n.docskin .dv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .dv-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .dv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;}\n.docskin .dv-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:18px 16px;text-align:center;box-shadow:none;}\n.docskin .dv-icon{width:38px;height:38px;margin:0 auto 10px;display:block;color:var(--muted);}\n.docskin .dv-title{font-family:var(--font-display);font-size:14px;font-weight:700;color:var(--ink);line-height:1.25;margin-bottom:6px;}\n.docskin .dv-sub{font-size:11.5px;line-height:1.45;color:var(--muted);}\n.docskin .dv-tag{margin-top:8px;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;}\n/* Card accents are ignored by the skin: drivers differ by title and tag, not hue. */\n/* options (approaches explored) \u2014 the chosen card takes the accent; verdicts are status chips */\n.docskin .options{margin:24px 0;}\n.docskin .op-headline{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .op-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .op-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:stretch;}\n.docskin .op-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;display:flex;flex-direction:column;}\n.docskin .op-card.is-chosen{border:1.5px solid var(--accent);box-shadow:none;}\n.docskin .op-head{padding:12px 14px 10px;color:var(--ink);background:var(--paper-2);border-bottom:1px solid var(--rule);}\n.docskin .op-kicker{display:block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:4px;}\n.docskin .op-card.is-chosen .op-kicker{color:var(--accent);}\n.docskin .op-title{font-family:var(--font-display);font-size:14px;font-weight:700;line-height:1.25;color:var(--ink);}\n.docskin .op-how{padding:9px 14px;font-size:11.5px;color:var(--ink);background:var(--paper);border-bottom:1px solid var(--rule);line-height:1.45;}\n.docskin .op-body{padding:10px 14px 12px;flex:1;}\n.docskin .op-list{list-style:none;margin:0 0 8px;padding:0;}\n.docskin .op-list li{position:relative;padding-left:18px;font-size:12px;line-height:1.5;color:var(--ink);margin-bottom:5px;}\n.docskin .op-list li::before{position:absolute;left:0;top:0;font-weight:700;}\n.docskin .op-pros li::before{content:\"\\2713\";color:var(--ink);}\n.docskin .op-cons li::before{content:\"\\2717\";color:var(--negative);}\n.docskin .op-verdict{margin:0 14px 14px;padding:6px 8px;border-radius:3px;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-align:center;letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--ink);color:var(--ink);background:var(--paper);}\n.docskin .op-v-rejected,.docskin .op-v-neutral{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .op-v-warn{border-color:var(--negative);color:var(--negative);}\n.docskin .op-v-chosen{border-color:var(--accent);color:var(--accent);}\n/* spec (labelled spec sheet) */\n.docskin .spec{margin:22px 0;}\n.docskin .sp-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sp-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .sp-grid{display:grid;grid-template-columns:140px 1fr;border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);}\n.docskin .sp-label{background:var(--paper-2);font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:12px 16px;border-bottom:1px solid var(--rule);display:flex;align-items:center;}\n.docskin .sp-val{padding:12px 16px;font-size:13px;line-height:1.5;color:var(--ink);border-bottom:1px solid var(--rule);}\n.docskin .sp-grid > .sp-label:nth-last-child(2),.docskin .sp-grid > .sp-val:last-child{border-bottom:none;}\n.docskin .sp-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;}\n.docskin .sp-step{background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:4px 9px;font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;}\n.docskin .sp-arrow{color:var(--muted);font-weight:700;}\n/* Sheet accents are ignored by the skin. */\n/* list (fancy bullet list \u2014 accent / check / icon / number styles) */\n.docskin .list-block{--ls-accent:var(--ink);--ls-soft:var(--paper-2);margin:22px 0;}\n.docskin .ls-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .ls-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .ls-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;}\n.docskin .ls-item{display:flex;align-items:flex-start;gap:12px;}\n.docskin .ls-body{display:flex;flex-direction:column;gap:2px;min-width:0;}\n.docskin .ls-lead{font-weight:700;color:var(--charcoal);line-height:1.35;}\n.docskin .ls-text{font-size:13px;color:var(--slate);line-height:1.5;}\n.docskin .ls-mark{flex:none;display:flex;align-items:center;justify-content:center;}\n.docskin .ls-style-accent .ls-item{border-left:3px solid var(--ls-accent);padding:1px 0 1px 14px;}\n.docskin .ls-style-accent .ls-bar{display:none;}\n.docskin .ls-check{width:22px;height:22px;border-radius:50%;font-size:13px;font-weight:700;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);}\n.docskin .ls-check.ls-off{background:var(--paper);color:var(--muted);border-style:dashed;}\n.docskin .ls-num{width:24px;height:24px;border-radius:50%;font-family:var(--font-mono);font-size:11px;font-weight:600;background:var(--paper);color:var(--ink);border:1px solid var(--ink);}\n.docskin .ls-icon{width:26px;height:26px;border-radius:6px;background:var(--ls-soft);color:var(--ls-accent);}\n.docskin .ls-icon svg{width:16px;height:16px;}\n/* List accents are ignored by the skin: every list marks in ink on paper-2. */\n/* stories (collapsible user-story backlog) */\n.docskin .stories{margin:22px 0;}\n.docskin .st-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .st-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .st-list{display:flex;flex-direction:column;gap:8px;}\n.docskin .st-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;}\n.docskin .st-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:12px 14px;}\n.docskin .st-summary::-webkit-details-marker{display:none;}\n.docskin .st-caret{flex:none;width:0;height:0;border-left:5px solid var(--gray);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;}\n.docskin details[open]>.st-summary .st-caret{transform:rotate(90deg);}\n.docskin .st-sum-main{display:flex;align-items:center;gap:8px;flex:1;min-width:0;}\n.docskin .st-id{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--ink);background:var(--paper-2);padding:1px 6px;border-radius:3px;}\n.docskin .st-sum-title{font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n.docskin .st-chips{display:flex;gap:6px;flex:none;}\n.docskin .st-chip{font-family:var(--font-mono);font-size:10px;font-weight:600;padding:2px 7px;border-radius:3px;letter-spacing:.04em;white-space:nowrap;border:1px solid var(--rule-solid);background:var(--paper);color:var(--muted);}\n.docskin .st-points{background:var(--paper-2);border-color:var(--paper-2);color:var(--ink);}\n.docskin .st-prio{border-color:var(--ink);color:var(--ink);}\n.docskin .st-body{padding:2px 14px 14px 30px;border-top:1px solid var(--rule);}\n.docskin .st-narr{margin:12px 0 8px;color:var(--slate);line-height:1.55;font-size:14px;}\n.docskin .st-ac-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);margin:10px 0 4px;}\n.docskin .st-ac{margin:0;padding-left:18px;color:var(--slate);font-size:13px;line-height:1.5;}\n.docskin .st-ac li{margin:3px 0;}\n.docskin .st-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;}\n.docskin .st-link{font-family:var(--font-mono);font-size:11px;color:var(--link);background:var(--paper);border:1px solid var(--rule-solid);padding:2px 8px;border-radius:3px;}\n/* pattern (design-pattern reference card) */\n.docskin .pattern{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pt-header{display:flex;align-items:center;gap:10px;padding:13px 18px;background:var(--paper-2);color:var(--ink);border-bottom:1px solid var(--rule-solid);}\n.docskin .pt-kicker{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;color:var(--muted);}\n.docskin .pt-name{font-family:var(--font-display);font-weight:700;font-size:17px;}\n.docskin .pt-cat{margin-left:auto;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);padding:2px 8px;border-radius:3px;}\n.docskin .pt-rows{display:flex;flex-direction:column;}\n.docskin .pt-row{display:grid;grid-template-columns:130px 1fr;gap:14px;padding:12px 18px;border-top:1px solid var(--rule);}\n.docskin .pt-row:first-child{border-top:none;}\n.docskin .pt-label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gray);padding-top:2px;}\n.docskin .pt-value{color:var(--charcoal);line-height:1.55;font-size:14px;}\n.docskin .pt-chips{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .pt-chip{font-size:12px;background:var(--light-gray);color:var(--slate);padding:2px 9px;border-radius:10px;}\n.docskin .pt-parts{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;}\n.docskin .pt-parts li{display:flex;gap:8px;align-items:baseline;}\n.docskin .pt-pname{font-weight:700;color:var(--ink);font-size:13px;}\n.docskin .pt-prole{color:var(--muted);font-size:13px;}\n.docskin .pt-cons{display:grid;grid-template-columns:1fr 1fr;gap:16px;}\n.docskin .pt-cons-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px;font-size:13px;line-height:1.45;}\n.docskin .pt-cons-list li{display:flex;gap:6px;}\n.docskin .pt-sign{font-weight:700;flex:none;}\n.docskin .pt-pro .pt-sign{color:var(--ink);}\n.docskin .pt-con .pt-sign{color:var(--negative);}\n/* gallery (responsive grid of code / note cards) */\n.docskin .gallery{margin:22px 0;}\n.docskin .gl-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .gl-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .gl-grid{display:grid;grid-template-columns:repeat(var(--gl-cols,2),minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .gl-grid{grid-template-columns:1fr;}}\n.docskin .gl-cell{min-width:0;}\n.docskin .gl-cell .diagram{margin:0;}\n.docskin .gl-cell .gl-card-title{padding:0 0 6px;}\n.docskin .gl-cell .gl-cap{padding:8px 2px 0;}\n.docskin .gl-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;display:flex;flex-direction:column;min-width:0;}\n.docskin .gl-card>.code-header{border-radius:0;}\n.docskin .gl-card>pre{margin:0;border:none;border-radius:0;font-size:11.5px;line-height:1.55;padding:13px 15px;flex:1;}\n.docskin .gl-card-title{font-family:var(--font-display);font-weight:700;font-size:13px;color:var(--ink);padding:11px 13px 0;}\n.docskin .gl-cap{font-size:12px;color:var(--muted);padding:9px 13px 11px;line-height:1.45;}\n/* Card accents are ignored by the skin. */\n/* chart (bar / line / area / donut) \u2014 the donut's centre figure; every other chart label is a type role */\n.docskin .chart-total{font-family:var(--font-display);font-size:22px;font-weight:700;fill:var(--ink);text-anchor:middle;}\n/* figure (an image with a caption) */\n.docskin .fig{margin:22px 0;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px;box-shadow:none;}\n.docskin .fig-img{display:block;max-width:100%;height:auto;border-radius:4px;margin:0 auto;}\n.docskin .fig-cap{font-size:13px;color:var(--muted);margin-top:10px;line-height:1.5;}\n/* diff (unified diff on the dark editor surface) */\n.docskin .diff-pre{padding:14px 0;}\n.docskin .df-line{display:block;padding:0 20px;color:var(--code-fg);}\n.docskin .df-add{background:var(--code-add-bg);color:var(--code-add);}\n.docskin .df-del{background:var(--code-del-bg);color:var(--code-del);}\n.docskin .df-hunk{color:var(--code-muted);font-style:italic;}\n/* steps (numbered how-to / runbook stepper) */\n.docskin .steps{margin:22px 0;}\n.docskin .stp-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .stp-desc{font-size:13px;color:var(--slate);margin:2px 0 14px;line-height:1.5;}\n.docskin .stp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}\n.docskin .stp-item{position:relative;display:flex;align-items:flex-start;gap:14px;padding:0 0 22px;}\n.docskin .stp-item:last-child{padding-bottom:0;}\n.docskin .stp-item::before{content:\"\";position:absolute;left:12px;top:28px;bottom:2px;width:2px;background:var(--rule);}\n.docskin .stp-item:last-child::before{display:none;}\n.docskin .stp-num{flex:none;position:relative;z-index:1;width:26px;height:26px;border-radius:50%;background:var(--paper);color:var(--ink);border:1px solid var(--ink);font-family:var(--font-mono);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .stp-body{flex:1;min-width:0;padding-top:3px;}\n.docskin .stp-title{font-weight:700;font-size:14px;color:var(--ink);line-height:1.35;}\n.docskin .stp-text{font-size:13px;color:var(--muted);margin:4px 0 0;line-height:1.55;max-width:760px;}\n.docskin .stp-code{margin:10px 0 0;border-radius:6px;overflow:hidden;border:1px solid var(--rule-solid);box-shadow:none;}\n.docskin .stp-code-head{padding:6px 14px;background:var(--code-bg);color:var(--code-muted);font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.04em;border-bottom:1px solid var(--code-rule);}\n.docskin .stp-code pre{font-size:12px;line-height:1.6;padding:12px 16px;}\n.docskin .stp-code pre code{background:transparent;border:none;padding:0;border-radius:0;font-size:inherit;color:inherit;}\n.docskin .stp-note{font-size:12px;color:var(--gray);font-style:italic;margin:8px 0 0;line-height:1.5;}\n/* faq (Q&A accordions, native details) */\n.docskin .faq{margin:22px 0;}\n.docskin .fq-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .fq-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .fq-list{display:flex;flex-direction:column;gap:8px;}\n.docskin .fq-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;}\n.docskin .fq-summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 16px;}\n.docskin .fq-summary::-webkit-details-marker{display:none;}\n.docskin .fq-caret{flex:none;width:0;height:0;border-left:5px solid var(--gray);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;}\n.docskin details[open]>.fq-summary .fq-caret{transform:rotate(90deg);}\n.docskin .fq-q{font-weight:700;color:var(--charcoal);line-height:1.4;}\n.docskin .fq-a{padding:2px 16px 14px 31px;border-top:1px solid var(--rule);font-size:14px;color:var(--slate);line-height:1.6;}\n.docskin .fq-a p{margin:10px 0 0;max-width:780px;}\n/* envelope (back-of-envelope capacity math) */\n.docskin .envelope{margin:22px 0;}\n.docskin .env-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .env-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .env-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:18px 22px;box-shadow:none;}\n.docskin .env-givens{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px;padding-bottom:16px;margin-bottom:14px;border-bottom:1px solid var(--rule);}\n.docskin .env-g-label{font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-bottom:2px;}\n.docskin .env-g-value{font-size:15px;font-weight:700;color:var(--charcoal);}\n.docskin .env-steps{display:flex;flex-direction:column;gap:9px;}\n.docskin .env-step{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;}\n.docskin .env-s-label{flex:0 0 150px;font-size:13px;color:var(--slate);}\n.docskin .env-s-calc{font-family:var(--font-mono);font-size:12.5px;color:var(--charcoal);background:var(--light-gray);border:1px solid var(--rule);border-radius:5px;padding:2px 8px;}\n.docskin .env-s-arrow{color:var(--gray);font-weight:700;}\n.docskin .env-s-result{font-family:var(--font-mono);font-size:13px;font-weight:700;color:var(--ink);}\n/* The final figure is the one accent. */\n.docskin .env-result{margin-top:16px;padding:12px 16px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .env-r-label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:2px;}\n.docskin .env-r-value{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);line-height:1.25;}\n/* slo (service-level objectives with error budgets) */\n.docskin .slo{margin:22px 0;}\n.docskin .slo-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .slo-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .slo-list{display:flex;flex-direction:column;gap:12px;}\n.docskin .slo-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 18px;box-shadow:none;}\n.docskin .slo-top{display:flex;align-items:center;gap:10px;}\n.docskin .slo-name{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--charcoal);flex:1;min-width:0;}\n.docskin .slo-window{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:10px;padding:2px 8px;white-space:nowrap;}\n.docskin .slo-sli{font-size:12.5px;color:var(--slate);margin:3px 0 0;line-height:1.5;}\n.docskin .slo-vals{display:flex;gap:26px;margin-top:9px;}\n.docskin .slo-val{display:flex;flex-direction:column;gap:1px;}\n.docskin .slo-v-label{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--gray);}\n.docskin .slo-v-num{font-family:var(--font-mono);font-size:14px;font-weight:700;color:var(--charcoal);}\n.docskin .slo-v-num.slo-ok{color:var(--ink);}\n.docskin .slo-v-num.slo-bad{color:var(--negative);}\n.docskin .slo-budget{margin-top:10px;}\n.docskin .slo-track{height:8px;border-radius:4px;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;}\n.docskin .slo-fill{height:100%;border-radius:4px;}\n/* Budget burn: muted while healthy, ink when the caption says it is close, negative only when it is spent. */\n.docskin .slo-fill.slo-b-ok{background:var(--muted);}\n.docskin .slo-fill.slo-b-warn{background:var(--ink);}\n.docskin .slo-fill.slo-b-hot{background:var(--negative);}\n.docskin .slo-caption{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:5px;}\n/* terminal (a shell session on the dark surface) */\n.docskin .terminal-block{border-radius:6px;}\n.docskin .tm-pre{line-height:1.7;}\n.docskin .tm-line{display:block;}\n.docskin .tm-prompt{color:var(--code-str);font-weight:700;}\n.docskin .tm-cmd-text{color:var(--code-fg);font-weight:700;}\n.docskin .tm-comment{color:var(--code-com);font-style:italic;}\n.docskin .tm-out{color:var(--code-muted);}\n/* swot (strengths / weaknesses / opportunities / threats 2x2) */\n.docskin .swot{margin:22px 0;}\n.docskin .swot-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .swot-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .swot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}\n@media(max-width:680px){.docskin .swot-grid{grid-template-columns:1fr;}}\n/* Quadrants are told apart by their label: paper for the internal pair (S, W), paper-2 for the external pair (O, T). */\n.docskin .swot-quad{border:1px solid var(--rule-solid);border-radius:6px;padding:13px 16px 14px;box-shadow:none;background:var(--paper);}\n.docskin .swot-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;margin-bottom:7px;color:var(--muted);}\n.docskin .swot-list{list-style:none;margin:0;padding:0;}\n.docskin .swot-item{position:relative;font-size:13px;color:var(--ink);line-height:1.5;padding:2px 0 2px 14px;}\n.docskin .swot-item::before{content:\"\";position:absolute;left:0;top:11px;width:5px;height:5px;border-radius:50%;background:var(--muted);}\n.docskin .swot-o,.docskin .swot-t{background:var(--paper-2);}\n.docskin .swot-w .swot-label,.docskin .swot-t .swot-label{color:var(--negative);}\n/* okr (objectives + key results) */\n.docskin .okr{margin:22px 0;}\n.docskin .okr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .okr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .okr-list{display:flex;flex-direction:column;gap:12px;}\n.docskin .okr-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 18px;box-shadow:none;}\n.docskin .okr-top{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;}\n.docskin .okr-objective{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--charcoal);flex:1;min-width:0;}\n.docskin .okr-owner{font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:10px;padding:2px 8px;white-space:nowrap;}\n.docskin .okr-krs{display:flex;flex-direction:column;gap:8px;}\n.docskin .okr-kr-text{font-size:13px;color:var(--charcoal);line-height:1.45;}\n.docskin .okr-kr-bar{display:flex;align-items:center;gap:10px;margin-top:3px;}\n.docskin .okr-track{flex:1;height:7px;border-radius:4px;background:var(--paper-2);border:1px solid var(--rule);overflow:hidden;}\n.docskin .okr-fill{height:100%;border-radius:4px;background:var(--ink);}\n.docskin .okr-fill.okr-b-ok,.docskin .okr-fill.okr-b-plain{background:var(--ink);}\n.docskin .okr-fill.okr-b-warn{background:var(--muted);}\n.docskin .okr-fill.okr-b-bad{background:var(--negative);}\n.docskin .okr-pct{flex:none;font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--muted);min-width:34px;text-align:right;}\n/* The KR's status as a word chip (the bar tone alone never carries it). */\n.docskin .okr-status{flex:none;font-family:var(--font-mono);font-size:9px;font-weight:600;padding:1px 7px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .okr-status.okr-s-done,.docskin .okr-status.okr-s-on-track{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .okr-status.okr-s-at-risk{border-color:var(--accent);color:var(--accent);}\n.docskin .okr-status.okr-s-off-track{border-color:var(--negative);color:var(--negative);}\n/* persona (user persona cards) */\n.docskin .persona{margin:22px 0;}\n.docskin .pa-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pa-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .pa-grid{grid-template-columns:1fr;}}\n.docskin .pa-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:16px 18px;box-shadow:none;}\n.docskin .pa-id{display:flex;align-items:center;gap:12px;}\n.docskin .pa-avatar{flex:none;width:42px;height:42px;border-radius:50%;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);font-family:var(--font-display);font-size:15px;font-weight:700;display:flex;align-items:center;justify-content:center;letter-spacing:.02em;}\n.docskin .pa-name{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);line-height:1.25;}\n.docskin .pa-role{font-size:12px;color:var(--muted);margin-top:1px;}\n.docskin .pa-quote{font-family:var(--font-display);font-style:italic;font-size:13px;color:var(--muted);line-height:1.5;margin:12px 0 0;padding:2px 0 2px 12px;border-left:2px solid var(--rule-solid);}\n.docskin .pa-section{margin-top:12px;}\n.docskin .pa-sec-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:4px;}\n.docskin .pa-list{list-style:none;margin:0;padding:0;}\n.docskin .pa-li{position:relative;font-size:12.5px;color:var(--ink);line-height:1.5;padding:1px 0 1px 14px;}\n.docskin .pa-li::before{content:\"\";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--muted);}\n.docskin .pa-frustrations .pa-li::before{background:var(--negative);}\n.docskin .pa-tools{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .pa-tool{font-family:var(--font-mono);font-size:10.5px;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;}\n/* Card accents are ignored by the skin. */\n/* changelog (release history on a vertical rail) */\n.docskin .changelog{margin:22px 0;}\n.docskin .cg-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .cg-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .cg-rail{position:relative;padding-left:26px;}\n.docskin .cg-rail::before{content:\"\";position:absolute;left:7px;top:8px;bottom:8px;width:2px;background:var(--rule);}\n.docskin .cg-release{position:relative;padding-bottom:20px;}\n.docskin .cg-release:last-child{padding-bottom:0;}\n.docskin .cg-dot{position:absolute;left:-25px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink);box-shadow:none;}\n.docskin .cg-dot-breaking{border-color:var(--negative);background:var(--negative-tint);}\n.docskin .cg-rel-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:7px;}\n.docskin .cg-version{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--ink);background:var(--paper-2);border-radius:3px;padding:2px 9px;}\n.docskin .cg-version.cg-v-breaking{background:var(--paper);color:var(--negative);border:1px solid var(--negative);}\n.docskin .cg-date{font-size:12px;color:var(--muted);}\n.docskin .cg-tag{font-family:var(--font-mono);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;}\n.docskin .cg-tag-breaking{color:var(--negative);border-color:var(--negative);}\n.docskin .cg-items{display:flex;flex-direction:column;gap:5px;}\n.docskin .cg-item{display:flex;align-items:baseline;gap:9px;}\n/* Change kinds as status chips: added / fixed = paper-2 fill \u00B7 changed = ink outline \u00B7 removed / deprecated = dashed \u00B7 security = negative outline. */\n.docskin .cg-type{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:1px 7px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .cg-t-added,.docskin .cg-t-fixed{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .cg-t-removed,.docskin .cg-t-deprecated{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .cg-t-security{border-color:var(--negative);color:var(--negative);}\n.docskin .cg-text{font-size:13px;color:var(--ink);line-height:1.5;}\n/* team (compact people cards) */\n.docskin .team{margin:22px 0;}\n.docskin .tem-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .tem-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .tem-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch;}\n@media(max-width:900px){.docskin .tem-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .tem-grid{grid-template-columns:1fr;}}\n.docskin .tem-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:16px 16px 14px;text-align:center;box-shadow:none;}\n.docskin .tem-avatar{width:40px;height:40px;border-radius:50%;background:var(--paper-2);color:var(--ink);border:1px solid var(--rule-solid);font-family:var(--font-display);font-size:14px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;letter-spacing:.02em;margin-bottom:9px;}\n.docskin .tem-name{font-family:var(--font-display);font-weight:700;font-size:14px;color:var(--ink);line-height:1.3;}\n.docskin .tem-role{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);margin-top:2px;}\n.docskin .tem-focus{font-size:12.5px;color:var(--muted);line-height:1.45;margin-top:6px;}\n/* Card accents are ignored by the skin. */\n/* heatmap (numeric grid with an intensity ramp) */\n.docskin .heatmap{margin:22px 0;}\n.docskin .hm-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .hm-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .hm-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:14px 16px;box-shadow:none;}\n.docskin .hm-grid{display:grid;gap:4px;min-width:0;}\n.docskin .hm-corner{min-width:0;}\n.docskin .hm-col{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--gray);text-align:center;align-self:end;padding-bottom:2px;white-space:nowrap;}\n.docskin .hm-rowlabel{font-size:12px;font-weight:600;color:var(--charcoal);text-align:right;align-self:center;padding-right:8px;white-space:nowrap;}\n.docskin .hm-cell{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--charcoal);border-radius:6px;min-height:32px;display:flex;align-items:center;justify-content:center;}\n.docskin .hm-cell.hm-blank{background:var(--paper-2);}\n/* scorecard (weighted decision matrix) \u2014 the winner takes the accent */\n.docskin .scorecard{margin:22px 0;}\n.docskin .sc-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sc-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .sc-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;box-shadow:none;}\n.docskin .sc-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--paper);}\n.docskin .sc-table thead th{background:var(--paper-2);color:var(--muted);padding:10px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .sc-table th.c,.docskin .sc-table td.c{text-align:center;}\n.docskin .sc-table thead th.sc-win{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .sc-table td{padding:9px 12px;border-bottom:1px solid var(--rule-table);color:var(--ink);}\n.docskin .sc-crit{font-weight:600;color:var(--ink);}\n.docskin .sc-weight{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:1px 6px;margin-left:8px;}\n.docskin .sc-score{font-family:var(--font-mono);font-weight:600;}\n.docskin .sc-note{display:block;font-family:var(--font-body);font-size:11px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:3px;}\n.docskin .sc-winner{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-left:8px;vertical-align:middle;}\n.docskin .sc-foot td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}\n.docskin .sc-foot td.sc-total{font-size:14px;color:var(--ink);letter-spacing:0;}\n.docskin .sc-foot td.sc-total.sc-win{background:var(--accent-tint);color:var(--ink);font-weight:700;}\n/* risk (risk register row-cards) \u2014 severity and status as chips */\n.docskin .risk{margin:22px 0;}\n.docskin .rk-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .rk-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .rk-list{display:flex;flex-direction:column;gap:10px;}\n.docskin .rk-item{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:12px 16px;box-shadow:none;}\n.docskin .rk-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}\n.docskin .rk-sev{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .rk-sev-critical{background:var(--negative-tint);color:var(--negative);border-color:var(--negative);}\n.docskin .rk-sev-high{color:var(--negative);border-color:var(--negative);}\n.docskin .rk-sev-low{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n.docskin .rk-risk{font-family:var(--font-display);font-weight:700;font-size:13.5px;color:var(--ink);flex:1;min-width:0;}\n.docskin .rk-chips{display:flex;align-items:center;gap:6px;flex:none;margin-left:auto;}\n.docskin .rk-owner{font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 8px;white-space:nowrap;}\n.docskin .rk-status{font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;white-space:nowrap;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .rk-st-mitigating{border-color:var(--accent);color:var(--accent);}\n.docskin .rk-st-accepted,.docskin .rk-st-closed{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .rk-meta{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--gray);margin-top:4px;}\n.docskin .rk-mitigation{font-size:12.5px;color:var(--slate);margin:5px 0 0;line-height:1.5;}\n.docskin .rk-mit-label{font-weight:700;color:var(--charcoal);}\n/* palette (colour-token swatches) */\n.docskin .palette{margin:22px 0;}\n.docskin .pl-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pl-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pl-grid{display:grid;grid-template-columns:repeat(var(--pl-cols,4),minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:900px){.docskin .pl-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .pl-grid{grid-template-columns:1fr;}}\n.docskin .pl-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pl-swatch{height:64px;border-radius:5px 5px 0 0;display:flex;align-items:flex-end;padding:6px 9px;}\n.docskin .pl-hex{font-family:var(--font-mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;padding:1px 6px;border-radius:3px;}\n.docskin .pl-meta{padding:9px 11px 11px;border-top:1px solid var(--rule);}\n.docskin .pl-name{font-weight:700;font-size:13px;color:var(--charcoal);line-height:1.3;}\n.docskin .pl-usage{font-size:11.5px;color:var(--slate);margin-top:2px;line-height:1.45;}\n/* eventcontract (async event contract card \u2014 the twin of endpoint). Chips carry words; the partition-key row is the one accent. */\n.docskin .eventcontract{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .evc-head{display:flex;align-items:center;gap:12px;padding:11px 16px;background:var(--paper-2);border-bottom:1px solid var(--rule-solid);flex-wrap:wrap;}\n.docskin .evc-eyebrow{color:var(--muted);} .docskin .evc-sep{margin:0 5px;}\n.docskin .evc-name{font-family:var(--font-mono);font-size:14px;font-weight:600;color:var(--ink);}\n.docskin .evc-channel{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .evc-channel .t-eyebrow{color:var(--muted);}\n.docskin .evc-body{padding:6px 16px 14px;}\n.docskin .evc-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin:10px 0 2px;}\n.docskin .evc-summary,.docskin .evc-desc-p{font-size:13.5px;color:var(--muted);margin:10px 0 0;line-height:1.55;}\n/* Producers \u2192 consumers: two columns of mono chips on the paper-2 ground, the arrow between them. */\n.docskin .evc-strip{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:start;margin:14px 0 0;padding:10px 12px;background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;}\n.docskin .evc-party-label{display:block;margin-bottom:7px;color:var(--muted);}\n.docskin .evc-chips{display:flex;flex-wrap:wrap;gap:6px;}\n.docskin .evc-chip{display:inline-block;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 7px;line-height:1.5;}\n.docskin .evc-none{color:var(--muted);}\n.docskin .evc-arrow{align-self:center;font-size:15px;color:var(--muted);padding:14px 2px 0;}\n/* Delivery facts: outlined word chips \u2014 the label word in the eyebrow role, then the value. */\n.docskin .evc-facts{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0;}\n.docskin .evc-fact{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-mono);font-size:10.5px;color:var(--ink);background:var(--paper);border:1px solid var(--ink);border-radius:3px;padding:2px 8px;line-height:1.5;}\n.docskin .evc-fact-k{color:var(--muted);}\n.docskin .evc-section{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:500;margin:16px 0 6px;}\n.docskin .evc-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .evc-table th{text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500;padding:4px 8px;border-bottom:1px solid var(--rule);}\n.docskin .evc-table td{padding:6px 8px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink);}\n.docskin .evc-mark{width:14px;padding-left:6px;padding-right:2px;font-family:var(--font-mono);font-weight:600;color:var(--muted);text-align:center;}\n.docskin .evc-fname{font-family:var(--font-mono);font-weight:600;color:var(--ink);white-space:nowrap;}\n.docskin .evc-type{font-family:var(--font-mono);color:var(--muted);font-size:12px;}\n.docskin .evc-eg{font-family:var(--font-mono);font-size:11px;color:var(--muted);}\n/* The partition key is the one accent: its marker and name in accent (on paper \u2014 the tint would drop it under 4.5:1), a rule down the row's left edge. */\n.docskin .evc-key td:first-child{border-left:2px solid var(--accent);padding-left:4px;}\n.docskin .evc-key .evc-mark,.docskin .evc-key .evc-fname{color:var(--accent);}\n.docskin .evc-keyline{margin:6px 0 0;color:var(--muted);} .docskin .evc-mark-k{font-weight:600;color:var(--ink);}\n.docskin .evc-note{font-size:12.5px;color:var(--muted);margin:14px 0 0;padding-top:10px;border-top:1px solid var(--rule);line-height:1.5;}\n/* typescale (live type specimen) */\n.docskin .typescale{margin:22px 0;}\n.docskin .ts-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .ts-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .ts-row{display:flex;align-items:center;gap:18px;padding:12px 0;border-bottom:1px solid var(--rule);}\n.docskin .ts-row:last-child{border-bottom:none;}\n.docskin .ts-meta{flex:0 0 160px;min-width:0;}\n.docskin .ts-name{font-weight:700;font-size:12.5px;color:var(--charcoal);line-height:1.3;}\n.docskin .ts-spec{font-family:var(--font-mono);font-size:10.5px;color:var(--gray);margin-top:2px;}\n.docskin .ts-note{font-size:11px;color:var(--slate);margin-top:2px;line-height:1.4;}\n.docskin .ts-sample{flex:1;min-width:0;color:var(--charcoal);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}\n.docskin .ts-f-display{font-family:var(--font-display);}\n.docskin .ts-f-body{font-family:var(--font-body);}\n.docskin .ts-f-mono{font-family:var(--font-mono);}\n/* dodont (do / don't guideline cards) */\n.docskin .dodont{margin:22px 0;}\n.docskin .dd-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .dd-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .dd-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start;}\n@media(max-width:680px){.docskin .dd-grid{grid-template-columns:1fr;}}\n.docskin .dd-card{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .dd-band{display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--paper-2);border-bottom:1px solid var(--rule);}\n.docskin .dd-sign{flex:none;width:18px;height:18px;border-radius:50%;font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:1px solid currentColor;background:var(--paper);}\n.docskin .dd-do .dd-sign{color:var(--ink);}\n.docskin .dd-dont .dd-sign{color:var(--negative);}\n.docskin .dd-label{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;}\n.docskin .dd-do .dd-label{color:var(--ink);}\n.docskin .dd-dont .dd-label{color:var(--negative);}\n.docskin .dd-list{padding:11px 14px 14px;display:flex;flex-direction:column;gap:9px;}\n.docskin .dd-item{position:relative;padding-left:14px;}\n.docskin .dd-item::before{content:\"\";position:absolute;left:0;top:8px;width:5px;height:5px;border-radius:50%;}\n.docskin .dd-do .dd-item::before{background:var(--muted);}\n.docskin .dd-dont .dd-item::before{background:var(--negative);}\n.docskin .dd-text{font-size:13px;color:var(--ink);line-height:1.5;}\n.docskin .dd-ex{display:inline-block;font-family:var(--font-mono);font-size:11.5px;color:var(--muted);background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:4px;padding:3px 8px;margin-top:4px;}\n/* inventory (component / feature status board) */\n.docskin .inventory{margin:22px 0;}\n.docskin .inv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .inv-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .inv-row{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);}\n.docskin .inv-row:last-child{border-bottom:none;}\n.docskin .inv-main{flex:1;min-width:0;}\n.docskin .inv-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}\n.docskin .inv-name{font-weight:700;font-size:13.5px;color:var(--charcoal);line-height:1.35;}\n.docskin .inv-tag{font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--slate);background:var(--light-gray);border:1px solid var(--rule);border-radius:4px;padding:1px 6px;}\n.docskin .inv-note{font-size:12px;color:var(--slate);margin-top:1px;line-height:1.45;}\n.docskin .inv-status{flex:none;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 8px;margin-top:1px;white-space:nowrap;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .inv-st-stable{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .inv-st-experimental,.docskin .inv-st-planned{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .inv-st-deprecated{border-color:var(--negative);color:var(--negative);}\n/* algorithms & data structures (array / bintree / hashmap) \u2014 cell values only; everything else is a type role */\n.docskin .ds-val{font-family:var(--font-mono);font-size:13px;font-weight:600;text-anchor:middle;}\n.docskin .bt-val{font-family:var(--font-mono);font-size:12.5px;font-weight:600;text-anchor:middle;}\n.docskin .hsh-key{font-family:var(--font-mono);font-size:11px;font-weight:600;text-anchor:middle;}\n/* agentloop (agent-loop diagram, SVG) */\n.docskin .al-edge{stroke:var(--muted);stroke-width:1.5;fill:none;}\n.docskin .al-edge.dashed{stroke:var(--muted);stroke-dasharray:5 4;}\n.docskin .al-lbl{font-family:var(--font-mono);font-size:9.5px;font-weight:400;fill:var(--muted);letter-spacing:.04em;paint-order:stroke;stroke:var(--paper);stroke-width:2.5px;stroke-linejoin:round;}\n.docskin .al-name{font-family:var(--font-body);font-size:13px;font-weight:600;fill:var(--ink);}\n.docskin .al-chip{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.04em;fill:var(--muted);}\n.docskin .al-note{font-family:var(--font-body);font-size:10.5px;fill:var(--muted);}\n.docskin .al-env{font-family:var(--font-body);font-size:12px;font-weight:600;fill:var(--ink);}\n.docskin .al-tool-name{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n.docskin .al-tool-desc{font-family:var(--font-body);font-size:10px;fill:var(--muted);}\n.docskin .al-more{font-family:var(--font-mono);font-size:10px;fill:var(--muted);font-style:italic;}\n.docskin .al-mem{font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;fill:var(--muted);}\n.docskin .al-mem-item{font-family:var(--font-body);font-size:10px;fill:var(--ink);}\n.docskin .al-foot{margin-top:14px;padding-top:12px;border-top:1px solid var(--rule);font-size:12.5px;color:var(--ink);}\n.docskin .al-foot-label{font-family:var(--font-mono);font-size:9.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-right:6px;}\n/* trace (agent / session execution transcript) */\n.docskin .trace{margin:22px 0;}\n.docskin .tr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .tr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .tr-list{display:flex;flex-direction:column;}\n.docskin .tr-turn{position:relative;padding:0 0 16px 0;}\n.docskin .tr-turn::before{content:\"\";position:absolute;left:14px;top:24px;bottom:-2px;width:1px;background:var(--rule);}\n.docskin .tr-turn:last-child{padding-bottom:0;}\n.docskin .tr-turn:last-child::before{display:none;}\n/* Roles as chips: the assistant is the one accent; user = paper-2 fill; tool = ink outline; system = dashed. */\n.docskin .tr-chip{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;letter-spacing:.08em;padding:2px 8px;border-radius:3px;margin-bottom:6px;position:relative;z-index:1;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .tr-user>.tr-chip{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .tr-assistant>.tr-chip{color:var(--accent);border-color:var(--accent);}\n.docskin .tr-system>.tr-chip{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .tr-card{margin-left:28px;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);padding:12px 16px;box-shadow:none;}\n.docskin .tr-think{font-size:12px;font-style:italic;color:var(--muted);border-left:2px dotted var(--muted);padding-left:10px;margin-bottom:8px;white-space:pre-wrap;line-height:1.55;}\n.docskin .tr-text{font-size:13.5px;color:var(--ink);line-height:1.6;white-space:pre-wrap;}\n.docskin .tr-think+.tr-text{margin-top:2px;}\n.docskin .tr-tool-name{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px;}\n.docskin .tr-io{display:flex;align-items:baseline;gap:8px;margin:4px 0;}\n.docskin .tr-io-label{flex:none;font-family:var(--font-mono);font-size:10px;font-weight:700;color:var(--gray);}\n.docskin .tr-mono{font-family:var(--font-mono);font-size:11.5px;color:var(--charcoal);background:var(--light-gray);border:1px solid var(--rule);border-radius:5px;padding:2px 8px;white-space:pre-wrap;min-width:0;}\n.docskin .tr-io+.tr-text{margin-top:8px;}\n/* prompt (prompt anatomy with variable highlighting) */\n.docskin .prompt{margin:22px 0;}\n.docskin .pr-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .pr-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .pr-list{display:flex;flex-direction:column;gap:10px;}\n.docskin .pr-seg{border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);overflow:hidden;box-shadow:none;}\n.docskin .pr-kicker{font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:8px 16px 0;color:var(--muted);}\n.docskin .pr-assistant>.pr-kicker{color:var(--accent);}\n.docskin .pr-label{font-family:var(--font-body);font-weight:600;font-size:11px;letter-spacing:0;text-transform:none;color:var(--muted);margin-left:6px;}\n.docskin .pr-text{font-family:var(--font-mono);font-size:12.5px;line-height:1.65;color:var(--ink);background:var(--paper-2);border-top:1px solid var(--rule);padding:12px 16px;margin-top:8px;white-space:pre-wrap;}\n/* Variables: accent text on paper (never on the tint \u2014 4.46:1), boxed by a hairline. */\n.docskin .pr-var{font-family:var(--font-mono);background:var(--paper);color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 4px;font-weight:600;}\n.docskin .pr-vars{display:flex;flex-direction:column;gap:5px;margin-top:12px;padding-top:12px;border-top:1px dashed var(--rule);}\n.docskin .pr-var-row{display:flex;align-items:baseline;gap:10px;}\n.docskin .pr-var-row .pr-var{font-size:11.5px;}\n.docskin .pr-var-desc{font-size:12px;color:var(--slate);line-height:1.45;}\n/* context (context-window token budget, SVG) */\n.docskin .ctx-window-label{font-family:var(--font-mono);font-size:10px;font-weight:500;fill:var(--muted);letter-spacing:.06em;}\n/* Segment labels sit on a paper mask (series fills are mid-tone; no text reads on them directly). */\n.docskin .ctx-seg-mask{fill:var(--paper);stroke:none;}\n.docskin .ctx-seg-label{font-family:var(--font-mono);font-size:10px;font-weight:600;fill:var(--ink);}\n.docskin .ctx-free-label{font-family:var(--font-mono);font-size:10.5px;font-weight:500;fill:var(--muted);}\n.docskin .ctx-boundary{stroke:var(--negative);stroke-width:1.4;stroke-dasharray:5 4;}\n.docskin rect.ctx-chip-bg{fill:var(--paper);stroke:var(--negative);stroke-width:1;}\n.docskin text.ctx-chip{font-family:var(--font-mono);font-size:9.5px;font-weight:600;fill:var(--negative);}\n.docskin .ctx-legend{display:flex;flex-direction:column;gap:6px;margin-top:14px;padding-top:10px;border-top:1px solid var(--rule);}\n.docskin .ctx-legend .lg-title{margin-bottom:2px;}\n.docskin .ctx-row{display:flex;align-items:baseline;gap:9px;font-size:12.5px;color:var(--ink);}\n.docskin .ctx-dot{flex:none;width:11px;height:11px;border-radius:2px;align-self:center;}\n.docskin .ctx-idx{flex:none;font-family:var(--font-mono);font-size:10px;font-weight:600;color:var(--muted);}\n.docskin .ctx-label{font-weight:600;}\n.docskin .ctx-num{font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap;}\n.docskin .ctx-note{font-size:12px;color:var(--muted);}\n/* archmap (target-architecture capability map) */\n.docskin .archmap{margin:22px 0;}\n.docskin .am-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .am-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .am-grid{display:grid;grid-template-columns:repeat(var(--am-cols,3),minmax(0,1fr));gap:10px;align-items:stretch;}\n@media(max-width:900px){.docskin .am-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}\n@media(max-width:680px){.docskin .am-grid{grid-template-columns:1fr;}}\n/* Areas are paper-2 frames with an eyebrow; tile status by stroke: current = hairline \u00B7 new = ink 1.5px \u00B7 target = dashed ink \u00B7 gap = dashed negative \u00B7 deprecated = paper-2, muted. Area accents are ignored. */\n.docskin .am-area{background:var(--paper-2);border:1px solid var(--rule-solid);border-radius:6px;padding:12px;box-shadow:none;}\n.docskin .am-area-label{font-family:var(--font-mono);font-size:8.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:500;color:var(--muted);margin-bottom:2px;}\n.docskin .am-area-desc{font-size:11.5px;color:var(--muted);line-height:1.45;}\n.docskin .am-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:6px;margin-top:8px;}\n.docskin .am-tile{background:var(--paper);border:1px solid var(--rule-solid);border-radius:4px;padding:6px 8px;font-size:11.5px;line-height:1.35;color:var(--ink);text-align:center;}\n.docskin .am-t-target{border:1px dashed var(--ink);}\n.docskin .am-t-new{border:1.5px solid var(--ink);}\n.docskin .am-t-gap{background:var(--paper);border:1px dashed var(--ink);}\n.docskin .am-chip{display:block;margin-top:3px;color:var(--muted);}\n.docskin .am-t-deprecated{background:var(--paper-2);color:var(--muted);border:1px dashed var(--muted);}\n/* Legend swatches mirror the tile strokes (the gap entry is its word chip). */\n.docskin .am-sw{display:inline-block;width:30px;height:14px;border-radius:2px;box-sizing:border-box;}\n.docskin .am-sw-current{background:var(--paper);border:1px solid var(--rule-solid);}\n.docskin .am-sw-target{background:var(--paper);border:1px dashed var(--ink);}\n.docskin .am-sw-new{background:var(--paper);border:1.5px solid var(--ink);}\n.docskin .am-sw-deprecated{background:var(--paper-2);border:1px dashed var(--muted);}\n/* divider (full-width section-break band) */\n.docskin .dvd{--dvd-accent:var(--navy);--dvd-soft:var(--light-blue);margin:22px 0;width:100%;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:36px 28px;text-align:center;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--dvd-soft) 45%,transparent);}\n.docskin .dvd-kicker{display:flex;align-items:center;gap:12px;}\n.docskin .dvd-kicker-text{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--dvd-accent);}\n.docskin .dvd-rule{width:36px;height:1px;background:var(--dvd-accent);opacity:.55;}\n.docskin .dvd-title{font-family:var(--font-display);font-weight:700;font-size:34px;line-height:1.15;letter-spacing:-.01em;color:var(--charcoal);max-width:820px;}\n.docskin .dvd-subtitle{font-size:15px;color:var(--slate);line-height:1.55;max-width:680px;margin:0;}\n/* Band accents are ignored by the skin. */\n/* spans (distributed-trace waterfall) \u2014 lanes per service; bars lighten by depth (ink \u2192 muted \u2192 paper-2);\n the critical path is the one accent; errors are a negative outline + ERR chip. */\n.docskin .sp-axis{stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-grid{stroke:var(--rule);stroke-width:1;}\n.docskin .sp-lane-rule{stroke:var(--rule);stroke-width:1;}\n.docskin .sp-bar.d0{fill:var(--ink);stroke:none;}\n.docskin .sp-bar.d1{fill:var(--muted);stroke:none;}\n.docskin .sp-bar.d2{fill:var(--paper-2);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-bar.crit{fill:var(--accent-tint);stroke:var(--accent);stroke-width:1.5;}\n.docskin .sp-bar.err{fill:var(--negative-tint);stroke:var(--negative);stroke-width:1.5;}\n/* Paper text on a dark bar drops the paper halo (it would blot the glyphs). */\n.docskin svg text.sp-on-dark{fill:var(--paper);stroke:none;}\n.docskin .sp-link{stroke:var(--rule-solid);stroke-width:1;fill:none;}\n.docskin .sp-chip{fill:var(--paper);stroke:var(--rule-solid);stroke-width:1;}\n.docskin .sp-chip.err{stroke:var(--negative);}\n.docskin svg text.sp-chip-text.err{fill:var(--negative);}\n.docskin .sp-details{margin-top:12px;padding-top:10px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink);}\n.docskin .sp-details-title{display:block;margin-bottom:6px;}\n.docskin .sp-details ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;}\n.docskin .sp-details li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;}\n.docskin .sp-d-span{font-weight:600;color:var(--ink);}\n.docskin .sp-d-service{font-family:var(--font-mono);font-weight:400;font-size:10px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;margin-right:4px;}\n.docskin .sp-d-attrs{display:inline-flex;flex-wrap:wrap;gap:4px 8px;}\n.docskin .sp-d-attr{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}\n.docskin .sp-d-note{color:var(--muted);font-style:italic;}\n/* rollout (progressive-delivery stage strip) \u2014 paper cards on the frame ground, an ink traffic bar,\n the gate as a chip on the connector; status by the shared chip encoding, current = the one accent. */\n.docskin .ro-strip{display:flex;align-items:stretch;overflow-x:auto;padding:4px 0 6px;}\n.docskin .ro-stage{flex:1 1 160px;min-width:150px;box-sizing:border-box;display:flex;flex-direction:column;gap:6px;padding:10px 12px 12px;border-radius:4px;background:var(--paper);border:1px solid var(--ink);}\n.docskin .ro-stage.ro-s-done{background:var(--paper-2);border-color:var(--rule-solid);}\n.docskin .ro-stage.ro-s-current{border:1.5px solid var(--accent);}\n.docskin .ro-stage.ro-s-next{border-style:dashed;border-color:var(--muted);}\n.docskin .ro-stage.ro-s-blocked{border-color:var(--negative);background:var(--negative-tint);}\n.docskin .ro-n{display:block;}\n.docskin .ro-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;}\n.docskin .ro-status{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:1px 6px;border-radius:2px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);}\n.docskin .ro-status.ro-st-done{background:var(--paper);border-color:var(--rule-solid);color:var(--muted);}\n.docskin .ro-status.ro-st-current{color:var(--accent);border-color:var(--accent);}\n.docskin .ro-status.ro-st-next{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n.docskin .ro-status.ro-st-blocked{color:var(--negative);border-color:var(--negative);}\n.docskin .ro-traffic{display:flex;align-items:center;gap:8px;}\n.docskin .ro-track{flex:1;height:6px;border-radius:3px;background:var(--paper-2);border:1px solid var(--rule-solid);overflow:hidden;}\n.docskin .ro-s-done .ro-track{background:var(--paper);}\n.docskin .ro-fill{height:100%;background:var(--ink);}\n.docskin .ro-pct{flex:none;color:var(--ink);}\n.docskin .ro-note{font-size:12px;color:var(--muted);line-height:1.45;}\n.docskin .ro-link{flex:0 0 auto;position:relative;display:flex;align-items:center;justify-content:center;min-width:34px;max-width:150px;padding:0 8px;}\n.docskin .ro-link::before{content:\"\";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--muted);}\n.docskin .ro-link::after{content:\"\";position:absolute;right:0;top:50%;margin-top:-4px;border:4px solid transparent;border-left:6px solid var(--muted);border-right:0;}\n.docskin .ro-link-end::after{display:none;}\n.docskin .ro-gate{position:relative;max-width:134px;padding:2px 7px;border-radius:2px;background:var(--paper);border:1px solid var(--rule-solid);color:var(--ink);text-align:center;line-height:1.35;}\n.docskin .ro-rollback{display:flex;align-items:baseline;gap:10px;margin-top:12px;font-size:12.5px;color:var(--ink);}\n/* bignumber (one hero metric at presentation scale) \u2014 ink, never a coloured fill */\n.docskin .bn{margin:22px 0;width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;padding:30px 24px;text-align:center;}\n.docskin .bn-value-row{display:flex;align-items:baseline;justify-content:center;gap:14px;flex-wrap:wrap;}\n.docskin .bn-value{font-family:var(--font-display);font-weight:700;font-size:clamp(56px,10vw,84px);line-height:1;letter-spacing:-.02em;color:var(--ink);}\n.docskin .bn-delta{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--muted);}\n.docskin .bn-arrow{color:var(--muted);font-size:12px;}\n.docskin .bn-label{font-family:var(--font-display);font-weight:700;font-size:18px;color:var(--ink);line-height:1.35;max-width:720px;}\n.docskin .bn-context{font-size:13.5px;color:var(--muted);line-height:1.5;max-width:640px;margin:0;}\n/* takeaways (numbered closing-slide rows) */\n.docskin .tk{margin:22px 0;width:100%;}\n.docskin .tk-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:14px;}\n.docskin .tk-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:18px;}\n.docskin .tk-item{display:flex;align-items:flex-start;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--rule);}\n.docskin .tk-item:last-child{padding-bottom:0;border-bottom:none;}\n.docskin .tk-num{flex:none;width:30px;height:30px;border-radius:50%;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .tk-body{flex:1;min-width:0;padding-top:3px;}\n.docskin .tk-text{font-family:var(--font-display);font-weight:700;font-size:17px;color:var(--ink);line-height:1.35;}\n.docskin .tk-detail{font-size:13.5px;color:var(--muted);margin:5px 0 0;line-height:1.55;max-width:760px;}\n/* statustable (task table + status chips) */\n.docskin .stt{margin:14px 0;}\n.docskin .stt-desc{font-size:13px;color:var(--muted);margin:0 0 10px;max-width:760px;}\n.docskin .stt-wrap{border:1px solid var(--rule-solid);border-radius:6px;overflow:hidden;background:var(--paper);box-shadow:none;}\n.docskin .stt-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .stt-table thead{background:var(--paper-2);color:var(--muted);}\n.docskin .stt-table th{padding:9px 12px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);}\n.docskin .stt-table th.stt-status-h{width:1%;white-space:nowrap;}\n.docskin .stt-table td{padding:9px 12px;border-bottom:1px solid var(--rule);vertical-align:middle;color:var(--ink);}\n.docskin .stt-table tbody.stt-group:nth-of-type(even){background:color-mix(in srgb,var(--paper-2) 50%,transparent);}\n.docskin .stt-table tbody.stt-group:last-of-type tr:last-child td{border-bottom:none;}\n.docskin .stt-table td.stt-lead{font-weight:600;color:var(--ink);}\n.docskin .stt-table tr.stt-haskids td{border-bottom-style:dashed;}\n.docskin .stt-table tr.stt-sub td{color:var(--muted);font-size:12.5px;padding-top:6px;padding-bottom:6px;border-bottom-style:dashed;}\n.docskin .stt-table tr.stt-sub td:first-child{padding-left:24px;}\n.docskin .stt-table tr.stt-sub:last-child td{border-bottom-style:solid;}\n.docskin .stt-tree{font-family:var(--font-mono);color:var(--muted);margin-right:8px;}\n.docskin .stt-table td.stt-status{white-space:nowrap;}\n/* The status vocabulary's colour names map onto the chip encoding: green = paper-2 fill (done) \u00B7\n amber = accent outline (in progress) \u00B7 red = negative outline (blocked) \u00B7 gray = dashed (todo) \u00B7 the rest = ink outline. */\n.docskin .stt-pill{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;padding:2px 8px;border-radius:3px;text-transform:uppercase;letter-spacing:.06em;background:var(--paper);color:var(--ink);border:1px solid var(--ink);}\n.docskin .stt-pill.stt-green{background:var(--paper-2);border-color:var(--paper-2);}\n.docskin .stt-pill.stt-amber{border-color:var(--accent);color:var(--accent);}\n.docskin .stt-pill.stt-red{border-color:var(--negative);color:var(--negative);}\n.docskin .stt-pill.stt-gray{border-style:dashed;border-color:var(--muted);color:var(--muted);}\n/* The legend is the shared strip, inside the frame. */\n.docskin .stt-wrap .diagram-legend{margin:0;padding:10px 12px;}\n.docskin .stt-dot{flex:none;width:10px;height:10px;border-radius:2px;background:var(--paper);border:1px solid var(--ink);box-sizing:border-box;}\n.docskin .stt-dot.stt-green{background:var(--paper-2);border-color:var(--rule-solid);}\n.docskin .stt-dot.stt-amber{border-color:var(--accent);}\n.docskin .stt-dot.stt-red{border-color:var(--negative);}\n.docskin .stt-dot.stt-gray{border-style:dashed;border-color:var(--muted);}\n/* benchmark (measured results: subject columns \u00D7 metric rows) \u2014 an airy\n scoreboard: no fills in the header, hairline row rules drawn as inset\n shadows so the featured column's real borders can close into a rounded\n outline, and the winning value in each row tinted with its subject's tone. */\n.docskin .benchmark{margin:26px 0 34px;}\n.docskin .bm-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .bm-desc{font-size:13px;color:var(--slate);margin:2px 0 14px;line-height:1.5;}\n.docskin .bm-scroll{overflow-x:auto;padding:3px 3px 4px;}\n.docskin .bm-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;}\n.docskin .bm-table th,.docskin .bm-table td{box-shadow:inset 0 -1px 0 var(--rule);vertical-align:middle;}\n.docskin .bm-table tbody tr:last-child th,.docskin .bm-table tbody tr:last-child td{box-shadow:none;}\n.docskin .bm-table th.bm-subj{padding:10px 14px 12px;text-align:center;font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--charcoal);}\n.docskin .bm-subj-sub{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);margin-top:3px;}\n.docskin .bm-table th.bm-metric{padding:10px 14px 12px;text-align:left;font-family:var(--font-body);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--gray);}\n.docskin .bm-table td.bm-metric{padding:12px 18px 12px 2px;width:30%;min-width:170px;}\n.docskin .bm-row-label{display:block;font-size:14px;font-weight:600;color:var(--charcoal);line-height:1.35;}\n.docskin .bm-row-sub{display:block;font-size:12px;color:var(--gray);line-height:1.4;margin-top:1px;}\n.docskin .bm-table td.bm-cell{padding:0;text-align:center;}\n.docskin .bm-slot{padding:11px 10px;border-radius:4px;}\n.docskin .bm-slot + .bm-slot{position:relative;}\n.docskin .bm-slot + .bm-slot::before{content:\"\";position:absolute;top:0;left:22%;right:22%;height:1px;background:var(--rule);}\n.docskin .bm-val{display:block;font-size:15px;color:var(--charcoal);line-height:1.25;}\n.docskin .bm-slot.bm-best .bm-val{font-weight:700;}\n.docskin .bm-cap{display:block;font-size:11px;color:var(--gray);margin-top:2px;}\n.docskin .bm-note{display:block;font-size:11px;color:var(--gray);margin-bottom:2px;}\n.docskin .bm-slot.bm-best.bm-accent{background:var(--accent-tint);}\n.docskin .bm-slot.bm-best.bm-muted{background:var(--paper-2);}\n/* The featured column is the one accent: side borders on every cell, closed top and bottom. */\n.docskin .bm-table th.bm-feat,.docskin .bm-table td.bm-feat{border-left:1.5px solid var(--accent);border-right:1.5px solid var(--accent);}\n.docskin .bm-table thead th.bm-feat{border-top:1.5px solid var(--accent);border-radius:6px 6px 0 0;}\n.docskin .bm-table tbody tr:last-child td.bm-feat{border-bottom:1.5px solid var(--accent);border-radius:0 0 6px 6px;}\n.docskin .src-note{font-family:var(--font-mono);font-size:11px;color:var(--gray);margin:-6px 0 18px;letter-spacing:.02em;}\n/* tree values \u2014 the driver-tree treatment: the number, then its share of the parent */\n.docskin .tvalue{margin-left:10px;font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--navy);}\n.docskin .tshare{margin-left:6px;font-family:var(--font-mono);font-size:10.5px;color:var(--gray);}\n/* storymap \u2014 backbone step cards across the top, release slices as bands; the first slice is the one accent */\n.docskin .sm-scroll{overflow-x:auto;}\n.docskin .sm-row{display:flex;align-items:stretch;}\n.docskin .sm-head{background:var(--paper-2);}\n.docskin .sm-gutter{flex:0 0 128px;padding:8px 10px 8px 12px;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);position:sticky;left:0;z-index:2;background:var(--paper-2);}\n/* The nearest release is the one accent: its label, and a single rule down the row's left edge. */\n.docskin .sm-band-first .sm-gutter{color:var(--accent);border-left:3px solid var(--accent);padding-left:9px;}\n.docskin .sm-colcell{flex:0 0 170px;padding:4px 5px;min-width:0;}\n.docskin .sm-step{background:var(--paper);border:1px solid var(--ink);border-radius:4px;padding:7px 11px 8px;height:100%;box-sizing:border-box;}\n.docskin .sm-step-eyebrow{display:block;margin-bottom:2px;color:var(--muted);}\n.docskin .sm-step-label{font-size:13px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-step-note{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-band{border-top:1px solid var(--rule);}\n.docskin .sm-band .sm-gutter{padding-top:12px;}\n.docskin .sm-cell{padding:8px 5px;}\n.docskin .sm-card{background:var(--paper);border:1px solid var(--rule-solid);padding:7px 10px;border-radius:4px;}\n.docskin .sm-card + .sm-card{margin-top:6px;}\n.docskin .sm-card-title{font-size:12.5px;font-weight:600;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}\n.docskin .sm-card-tag{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:500;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:2px;padding:1px 5px;margin-top:5px;}\n/* scenarios \u2014 assumptions in columns, the outcome on its own row */\n.docskin .scenarios{margin:26px 0 34px;}\n.docskin .sn-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--charcoal);margin-bottom:2px;}\n.docskin .sn-desc{font-size:13px;color:var(--slate);margin:2px 0 12px;line-height:1.5;}\n.docskin .sn-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);box-shadow:none;}\n.docskin .sn-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .sn-table thead th{background:var(--paper-2);color:var(--ink);padding:10px 12px;text-align:center;font-family:var(--font-display);font-size:13px;font-weight:700;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .sn-table th.sn-driver,.docskin .sn-table td.sn-driver{text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);}\n.docskin .sn-table td{padding:9px 12px;border-bottom:1px solid var(--rule);text-align:center;font-family:var(--font-mono);color:var(--ink);}\n.docskin .sn-table td.sn-driver{font-family:var(--font-body);color:var(--muted);}\n/* The base case is the one accent: a chip in its header and a tint down its column. */\n.docskin .sn-badge{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-top:5px;}\n.docskin .sn-note{display:block;font-family:var(--font-body);font-size:10.5px;font-weight:400;color:var(--muted);text-transform:none;letter-spacing:0;margin-top:3px;}\n.docskin .sn-blank{color:var(--rule-solid);}\n.docskin .sn-table .sc-base{background:var(--accent-tint);}\n.docskin .sn-table thead th.sc-base{background:var(--paper-2);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .sn-outcome td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-display);font-size:17px;font-weight:700;color:var(--ink);padding:11px 12px;}\n.docskin .sn-outcome td:first-child{font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;color:var(--muted);text-align:left;}\n/* harvey \u2014 the rated comparison grid: options across, criteria down; the recommendation is the one accent */\n.docskin .harvey{margin:26px 0 34px;}\n.docskin .hv-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .hv-desc{font-size:13px;color:var(--muted);margin:2px 0 12px;line-height:1.5;}\n.docskin .hv-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);box-shadow:none;}\n.docskin .hv-table{width:100%;border-collapse:collapse;font-size:13px;}\n.docskin .hv-table thead th{background:var(--paper-2);color:var(--muted);padding:10px 12px;text-align:center;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;vertical-align:top;border-bottom:1px solid var(--rule-solid);}\n.docskin .hv-table th.hv-crit{text-align:left;}\n.docskin .hv-table td{padding:9px 12px;border-bottom:1px solid var(--rule);text-align:center;vertical-align:middle;color:var(--ink);}\n.docskin .hv-table td.hv-crit{text-align:left;}\n.docskin .hv-label{font-weight:600;color:var(--ink);}\n.docskin .hv-note{display:block;font-size:11.5px;color:var(--muted);margin-top:2px;}\n.docskin .hv-weight{display:inline-block;font-family:var(--font-mono);font-size:9.5px;font-weight:600;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:1px 6px;margin-left:8px;}\n.docskin .hv-rec{display:inline-block;font-family:var(--font-mono);font-size:8.5px;font-weight:600;letter-spacing:.1em;color:var(--accent);background:var(--paper);border:1px solid var(--accent);border-radius:3px;padding:1px 6px;margin-top:5px;}\n.docskin .hv-table td.hv-is-rec{background:var(--accent-tint);}\n.docskin .hv-table thead th.hv-is-rec{color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent);}\n.docskin .hv-na{color:var(--muted);font-family:var(--font-mono);}\n.docskin .hv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}\n.docskin .hv-foot td{border-bottom:none;border-top:1.5px solid var(--ink);font-family:var(--font-mono);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);text-align:center;}\n.docskin .hv-foot td:first-child{text-align:left;}\n.docskin .hv-foot td.hv-lead{color:var(--ink);font-weight:700;}\n.docskin .hv-scroll .diagram-legend{margin:0;padding:10px 12px;}\n/* scqa \u2014 the executive summary ladder; the answer carries the weight and the one accent */\n.docskin .scqa{margin:26px 0 34px;}\n.docskin .sq-head{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:2px;}\n.docskin .sq-desc{font-size:13px;color:var(--muted);margin:2px 0 14px;line-height:1.5;}\n.docskin .sq-row{display:flex;gap:14px;padding:11px 0;border-bottom:1px dashed var(--rule);}\n.docskin .sq-num{flex:none;width:22px;height:22px;border-radius:50%;background:var(--paper);color:var(--ink);border:1px solid var(--ink);font-family:var(--font-mono);font-size:10px;font-weight:600;display:flex;align-items:center;justify-content:center;}\n.docskin .sq-body{min-width:0;}\n.docskin .sq-label{display:block;font-family:var(--font-mono);font-size:9.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:3px;}\n.docskin .sq-text{font-size:15px;line-height:1.55;color:var(--ink);margin:0;}\n.docskin .sq-answer{margin-top:16px;padding:16px 20px;background:var(--paper-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;}\n.docskin .sq-label-answer{color:var(--accent);}\n.docskin .sq-text-answer{font-family:var(--font-display);font-size:19px;font-weight:700;line-height:1.4;color:var(--ink);}\n.docskin .sq-because{margin:10px 0 0;padding-left:18px;}\n.docskin .sq-because li{font-size:13.5px;line-height:1.55;color:var(--muted);margin-bottom:3px;}\n/* packet \u2014 the bit ruler, field cells, and each cell's bit count */\n.docskin .pk-tick{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);}\n.docskin .pk-off{font-family:var(--font-mono);font-size:9px;fill:var(--gray);text-anchor:end;dominant-baseline:middle;}\n.docskin .pk-name{font-family:var(--font-body);font-size:11.5px;font-weight:700;fill:var(--charcoal);text-anchor:middle;}\n.docskin .pk-value{font-family:var(--font-mono);font-size:10px;fill:var(--slate);text-anchor:middle;}\n.docskin .pk-bits{font-family:var(--font-mono);font-size:8.5px;fill:var(--gray);text-anchor:middle;}\n.docskin .pk-total{font-family:var(--font-mono);font-size:11px;color:var(--gray);margin:10px 0 0;letter-spacing:.03em;}\n/* gitgraph \u2014 lane names, commit messages, release tags */\n.docskin .gg-branch{font-family:var(--font-mono);font-size:11px;font-weight:700;text-anchor:end;}\n.docskin .gg-msg{font-family:var(--font-body);font-size:11px;fill:var(--slate);text-anchor:middle;}\n.docskin .gg-tag{font-family:var(--font-mono);font-size:10px;font-weight:700;fill:var(--highlight);text-anchor:middle;}\n.docskin .bm-foot{font-size:12px;color:var(--gray);margin:12px 0 0;line-height:1.5;}\n/* \u2500\u2500 audit (findings register) \u2014 the risk chip encoding for severity; open = negative, fixing = the accent \u2500\u2500 */\n.docskin .audit{margin:22px 0;}\n.docskin .au-head{display:flex;align-items:baseline;gap:8px 18px;flex-wrap:wrap;margin-bottom:2px;}\n.docskin .au-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);}\n.docskin .au-meta{display:inline-flex;flex-wrap:wrap;gap:4px 14px;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);}\n.docskin .au-k{font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin-right:6px;}\n.docskin .au-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .au-counts{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:8px 0 10px;}\n.docskin .au-total{margin-right:6px;}\n.docskin .au-sev{display:inline-block;line-height:1.5;}\n.docskin .au-count .au-n{font-weight:700;}\n.docskin .au-sev.rk-sev-info{background:var(--paper);border-color:var(--rule-solid);color:var(--soft);}\n.docskin .au-scroll{overflow-x:auto;border:1px solid var(--rule-solid);border-radius:6px;background:var(--paper);}\n.docskin .au-table{width:100%;border-collapse:collapse;font-size:12.5px;}\n.docskin .au-table thead th{background:var(--paper-2);color:var(--muted);padding:8px 10px;text-align:left;font-family:var(--font-mono);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:500;border-bottom:1px solid var(--rule-solid);white-space:nowrap;}\n.docskin .au-table td{padding:8px 10px;border-bottom:1px solid var(--rule);vertical-align:top;color:var(--ink);line-height:1.45;}\n.docskin .au-table tbody tr:last-child td{border-bottom:none;}\n.docskin .au-id{font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;}\n.docskin .au-c-sev,.docskin .au-c-status{white-space:nowrap;}\n.docskin .au-ftitle{display:block;font-weight:600;color:var(--ink);}\n.docskin .au-area{display:inline-block;margin-top:3px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--rule-solid);border-radius:2px;padding:0 5px;line-height:1.5;}\n.docskin .au-ref{display:inline-block;margin:3px 0 0 6px;font-family:var(--font-mono);font-size:10px;color:var(--link);}\n.docskin .au-evidence{font-family:var(--font-mono);font-size:11px;color:var(--muted);min-width:140px;}\n.docskin .au-fix{min-width:150px;}\n.docskin .au-owner{font-family:var(--font-mono);font-size:11px;color:var(--muted);white-space:nowrap;}\n.docskin .au-st-open{border-color:var(--negative);color:var(--negative);}\n.docskin .au-st-fixing{border-color:var(--accent);color:var(--accent);}\n.docskin .au-st-fixed{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n.docskin .au-st-accepted,.docskin .au-st-wontfix{border-color:var(--rule-solid);color:var(--soft);}\n/* \u2500\u2500 checklist (pass / fail with evidence) \u2014 verdict chips, mono evidence, the derived pass rate \u2500\u2500 */\n.docskin .checklist{margin:22px 0;}\n.docskin .cl-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:2px;}\n.docskin .cl-title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--ink);}\n.docskin .cl-standard{font-family:var(--font-mono);font-size:10px;color:var(--muted);background:var(--paper);border:1px solid var(--rule-solid);border-radius:3px;padding:2px 7px;line-height:1.5;}\n.docskin .cl-desc{font-size:13px;color:var(--muted);margin:2px 0 10px;line-height:1.5;}\n.docskin .cl-groups{display:flex;flex-direction:column;gap:14px;margin-top:8px;}\n.docskin .cl-group-label{display:block;margin-bottom:4px;}\n.docskin .cl-items{display:flex;flex-direction:column;border-top:1px solid var(--rule);}\n.docskin .cl-item{display:flex;align-items:flex-start;gap:12px;padding:8px 2px;border-bottom:1px solid var(--rule);}\n.docskin .cl-verdict{flex:none;display:inline-flex;align-items:center;gap:5px;min-width:64px;font-family:var(--font-mono);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:3px;padding:2px 7px;line-height:1.5;color:var(--ink);background:var(--paper);border:1px solid var(--ink);margin-top:1px;}\n.docskin .cl-glyph{font-size:11px;line-height:1;}\n.docskin .cl-v-pass{background:var(--paper-2);border-color:var(--paper-2);color:var(--ink);}\n.docskin .cl-v-fail{color:var(--negative);border-color:var(--negative);background:var(--negative-tint);}\n.docskin .cl-v-partial{color:var(--accent);border-color:var(--accent);}\n.docskin .cl-v-na,.docskin .cl-v-pending{color:var(--soft);border-color:var(--rule-solid);}\n.docskin .cl-body{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;min-width:0;font-size:13px;line-height:1.5;}\n.docskin .cl-text{color:var(--ink);font-weight:500;}\n.docskin .cl-s-na .cl-text{color:var(--muted);font-weight:400;}\n.docskin .cl-evidence{font-family:var(--font-mono);font-size:11px;color:var(--muted);}\n.docskin .cl-note{font-size:12px;color:var(--muted);font-style:italic;}\n.docskin .cl-ref{font-family:var(--font-mono);font-size:10px;color:var(--link);}\n.docskin .cl-foot{display:flex;justify-content:space-between;align-items:baseline;gap:10px 18px;flex-wrap:wrap;margin-top:10px;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);letter-spacing:.03em;}\n.docskin .cl-rate b{color:var(--ink);font-weight:700;font-size:12px;}\n/* \u2500\u2500 modelcard (ML model card) \u2014 the eventcontract card chrome plus a spec strip and a metrics table \u2500\u2500 */\n.docskin .modelcard{border:1px solid var(--rule-solid);border-radius:6px;margin:18px 0;overflow:hidden;background:var(--paper);}\n.docskin .mc-task{margin-left:auto;display:inline-flex;align-items:center;gap:7px;font-family:var(--font-body);font-size:12px;color:var(--ink);background:var(--paper);border:1px solid var(--rule-solid);padding:3px 8px;border-radius:3px;}\n.docskin .mc-task .t-eyebrow{color:var(--muted);}\n.docskin .mc-spec{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin:14px 0 0;background:var(--rule-solid);border:1px solid var(--rule-solid);border-radius:4px;overflow:hidden;}\n.docskin .mc-cell{display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:var(--paper-2);}\n.docskin .mc-k{color:var(--muted);}\n.docskin .mc-v{font-family:var(--font-mono);font-size:11.5px;color:var(--ink);line-height:1.4;}\n.docskin .mc-list{margin:0;padding-left:18px;font-size:13px;line-height:1.55;color:var(--ink);}\n.docskin .mc-list li{margin:2px 0;}\n.docskin .mc-metrics th.mc-value,.docskin .mc-metrics td.mc-value{text-align:right;}\n.docskin .mc-metrics td.mc-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600;color:var(--ink);white-space:nowrap;}\n/* \u2500\u2500 chevrons (process chevron strip) \u2014 paper text on the one accent-filled step \u2500\u2500 */\n.docskin svg .t-name.ch-on-accent{fill:var(--paper);stroke:none;}\n/* \u2500\u2500 roadmap (themes \u00D7 periods) \u2014 the current chip's label is bold \u2500\u2500 */\n.docskin svg .rm-label{font-size:10.5px;}\n.docskin svg .rm-current{font-weight:600;}\n/* perfbudget \u2014 metric names in the label column and the measured value at the bar end */\n.docskin .pb-label{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n.docskin .pb-val{font-weight:600;}\n/* percentiles \u2014 the row label */\n.docskin .pc-label{font-family:var(--font-mono);font-size:11px;font-weight:600;fill:var(--ink);}\n/* threatmodel \u2014 trust boundaries restyle the shared group panel; the STRIDE table under the drawing */\n.docskin .tm-bounds rect{fill:var(--negative-tint);fill-opacity:1;stroke:var(--negative);stroke-dasharray:4 3;}\n.docskin .tm-bounds text{fill:var(--negative);}\n.docskin .tm-scroll{overflow-x:auto;margin-top:14px;}\n.docskin .tm-table{margin:0;font-size:12.5px;}\n.docskin .tm-table td{vertical-align:top;color:var(--ink);}\n.docskin .tm-id,.docskin .tm-target{font-family:var(--font-mono);font-size:11px;white-space:nowrap;}\n.docskin .tm-id{color:var(--muted);font-weight:600;}\n.docskin .tm-threat{font-weight:600;}\n.docskin .tm-mit{color:var(--muted);}\n.docskin .tm-none{color:var(--soft);}\n.docskin .tm-cat{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:3px;border:1px solid var(--ink);color:var(--ink);background:var(--paper);font-family:var(--font-mono);font-size:10.5px;font-weight:700;text-decoration:none;cursor:help;}\n.docskin .tm-st-open{color:var(--negative);border-color:var(--negative);}\n.docskin .tm-st-accepted{background:var(--paper-2);border-color:var(--paper-2);color:var(--muted);}\n/* \u2500\u2500 code (refined) \u2014 accent bands for highlight, a counter gutter for lines, the cols / compare grid, wrap, captions \u2500\u2500 */\n.docskin .cb>pre{padding:14px 0;}\n.docskin .cb .cl{display:block;padding:0 20px;}\n.docskin .cb .cl-hl{background:color-mix(in srgb,var(--accent) 16%,transparent);box-shadow:inset 2px 0 0 var(--accent);}\n.docskin .cb-lines>pre{counter-reset:line var(--code-start,0);}\n.docskin .cb-lines .cl{padding-left:calc(20px + var(--code-gutter,2ch) + 14px);text-indent:calc(-1 * (var(--code-gutter,2ch) + 14px));}\n.docskin .cb-lines .cl::before{counter-increment:line;content:counter(line);display:inline-block;width:var(--code-gutter,2ch);margin-right:14px;text-align:right;text-indent:0;color:var(--code-muted);opacity:.7;user-select:none;-webkit-user-select:none;}\n.docskin .cb-wrap>pre{white-space:pre-wrap;overflow-wrap:anywhere;}\n.docskin .code-grid{display:grid;grid-template-columns:repeat(var(--code-cols,1),minmax(0,1fr));gap:14px;margin:14px 0 18px;}\n.docskin .code-grid>.code-block{margin:0;display:flex;flex-direction:column;background:var(--code-bg);}\n.docskin .code-grid>.code-block>pre{flex:1 1 auto;}\n@media(max-width:720px){.docskin .code-grid{grid-template-columns:1fr;}}\n.docskin .code-eyebrow{font-size:8.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--code-muted);}\n.docskin .code-cap{font-size:12px;color:var(--muted);line-height:1.45;padding:8px 16px 9px;background:var(--paper);border-top:1px solid var(--rule-solid);}\n.docskin .code-cap-group{border:0;background:none;padding:0 2px;margin:-10px 0 18px;}";
|
|
30
30
|
|
|
31
31
|
/**
|
|
32
32
|
* The chiltepin brand mark — the official kawaii-chiltepin logo (adopted
|