/* Presentation-only compatibility for original project documents and interactive pages. */
body.project-unified {
  --project-ink:#15171b; --project-muted:#515963; --project-blue:#264eb3; --project-rule:#dadde1; --project-soft:#f5f7f9;
  --project-site-height:76px; --project-localbar-height:56px; --project-footer-overlap:0px;
  --bg:#fff; --panel:#f5f7f9; --text:#15171b; --muted:#515963; --border:#dadde1; --accent:#264eb3; --accent-hover:#264eb3; --code:#f5f7f9; --card-bg:#fff;
  --bg-primary:#fff; --bg-secondary:#f5f7f9; --bg-sidebar:#fff; --bg-card:#fff; --border-light:#c6cbd2; --text-primary:#15171b; --text-secondary:#515963; --text-muted:#515963;
  --accent-blue:#264eb3; --accent-violet:#264eb3; --accent-gradient:linear-gradient(#264eb3,#264eb3); --code-bg:#f5f7f9;
  --primary:#264eb3; --card:#fff; --text2:#515963; --text3:#636b75; --ink:#15171b; --line:#dadde1; --paper:#fff; --canvas:#fff; --side:#fff; --side2:#f5f7f9; --blue:#264eb3; --blue-soft:#edf1fa;
  --bg2:#f5f7f9; --bd:#dadde1; --tx:#15171b; --tx2:#515963; --accent2:#264eb3; --zh:#15171b;
  display:block; margin:0; height:auto; min-height:100dvh; overflow-x:clip; overflow-y:auto; background:#fff; color:var(--project-ink);
  font:16px/1.8 "Inter","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased;
}
body.project-unified::before { background:none; }
.project-unified > [data-site-header] { position:sticky; top:0; z-index:60; margin:0; border:0; border-radius:0; background:transparent; padding:12px clamp(12px,2vw,32px) 4px; }
.project-unified > [data-site-footer] { position:relative; z-index:45; clear:both; width:100%; margin:0; }
.project-unified > .project-crumb { display:flex; flex-wrap:wrap; gap:10px; max-width:1040px; margin:20px auto 0; padding:0 24px; color:var(--project-muted); font-size:13px; }
.project-unified > .project-crumb a { color:var(--project-muted); text-decoration:none; }
.project-unified > .project-crumb a:hover { color:var(--project-blue); }
.project-unified[data-site-embedded] > [data-site-header], .project-unified[data-site-embedded] > [data-site-footer] { display:none; }
.project-unified [data-site-header] .ocp-menu-body h2 { border:0; background:none; padding:4px 10px; }
.project-unified [data-site-footer] .ocp-foot-top h2 { border:0; background:none; padding:0; }
.project-unified :is(button,input,select,textarea) { font-family:inherit; }
.project-unified :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline:2px solid var(--project-blue); outline-offset:3px; }
.project-unified :is(.page-container,.container,.markdown-body,.article-body,.article,.doc) { color:var(--project-ink); }
.project-unified :is(.page-container,.container,.markdown-body,.article-body,.article,.doc) :is(h1,h2,h3,h4,h5,h6,strong,b) { color:var(--project-ink); }
.project-unified :is(.page-container,.container,.markdown-body,.article-body,.article,.doc) :is(p,li,em,td) { color:var(--project-muted); }
.project-unified :is(.page-container,.container,.markdown-body,.article-body,.article,.doc) a { color:var(--project-blue); text-underline-offset:3px; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) h1 { font-weight:570; letter-spacing:-.035em; line-height:1.4; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) :is(h2,h3,h4) { font-weight:590; line-height:1.5; scroll-margin-top:calc(var(--project-site-height) + 18px); }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) h2 { font-size:24px; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) h3 { font-size:20px; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) pre { max-width:100%; overflow:auto; background:var(--project-soft); color:var(--project-ink); border:1px solid var(--project-rule); border-radius:5px; font-size:14px; line-height:1.7; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) code { background:var(--project-soft); color:var(--project-ink); font-family:"SFMono-Regular",Consolas,monospace; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) pre code { background:transparent; color:var(--project-ink); font-size:inherit; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) table { display:block; max-width:100%; overflow:auto; border-collapse:collapse; font-size:15px; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) :is(th,td) { border-color:var(--project-rule); padding:10px 12px; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) th { background:var(--project-soft); color:var(--project-ink); font-weight:590; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) td { background:#fff; }
.project-unified :is(.page-container,.container,.markdown-body,.article,.doc) img { max-width:100%; height:auto; }
.project-unified :is(.back-link,.crumb,.meta,.bottom a,.nav-btn) { border-color:var(--project-rule); background:var(--project-soft); color:var(--project-muted); border-radius:5px; }
.project-unified :is(.page-container,.container) { max-width:1040px; padding:32px 24px 64px; }
.project-unified .container > header { background:#fff; color:var(--project-ink); border-radius:0; border-bottom:1px solid var(--project-rule); padding:20px 0 28px; }
.project-unified .container > header :is(h1,.subtitle,.meta) { color:var(--project-ink); opacity:1; }
.project-unified .container :is(.card,.toc) { border-radius:5px; border-color:var(--project-rule); box-shadow:none; }
.project-unified .article-head h1 { color:var(--project-ink); }
.project-unified .callout { background:#edf1fa; border-color:var(--project-rule); }
.project-unified .sidebar .brand h2 { color:var(--project-ink); }
.project-unified .sidebar { background:#fff; border-color:var(--project-rule); }
.project-unified .sidebar :is(a,.group) { color:var(--project-muted); }
.project-unified .sidebar a.active { color:var(--project-blue); background:#edf1fa; border-left-color:var(--project-blue); }
.project-unified[data-project-layout="legacy"] > .wrap { margin:0 auto; font-size:17px; }
.project-unified[data-project-layout="legacy"] .wrap :is(h1,h2,h3,h4,.card .t,.mis .claim,.faq .q) { color:var(--project-ink); }
.project-unified[data-project-layout="legacy"] .wrap :is(.lead,.back,.item p,.meta,.card .d) { color:var(--project-muted); }
.project-unified[data-project-layout="legacy"] .wrap a { color:var(--project-blue); }
.project-unified[data-project-layout="legacy"] .wrap :is(.item,.card,.box,.verse) { background:var(--project-soft); border-color:var(--project-rule); border-radius:5px; }

/* Original fixed reader: keep its scroll container and all original toggle/zoom actions. */
.project-unified[data-project-layout="fixed-reader"] .topbar { position:sticky; top:var(--project-site-height); z-index:40; background:#fff; border-color:var(--project-rule); }
.project-unified[data-project-layout="fixed-reader"] .topbar :is(.brand,.back,.meta) { color:var(--project-ink); }
.project-unified[data-project-layout="fixed-reader"] .topbar-logo { color:var(--project-ink); font-weight:590; }
.project-unified[data-project-layout="fixed-reader"] .layout { height:calc(100dvh - var(--project-site-height) - var(--project-localbar-height)); min-height:400px; padding-top:0; }
.project-unified[data-project-layout="fixed-reader"] .content-area { background:#fff; }
.project-unified[data-project-layout="fixed-reader"] :is(.article-search,.sidebar-header,.article-group) { border-color:var(--project-rule); }
.project-unified[data-project-layout="fixed-reader"] :is(.sidebar-header h3,.article-group,.article-item,.article-item.level-2,.empty-state,.loading-text) { color:var(--project-muted); }
.project-unified[data-project-layout="fixed-reader"] .article-search input { background:#fff; color:var(--project-ink); border-color:var(--project-rule); font-size:14px; }
.project-unified[data-project-layout="fixed-reader"] .article-item.active { color:var(--project-blue); background:#edf1fa; border-left-color:var(--project-blue); }
.project-unified[data-project-layout="fixed-reader"] :is(.article-item:hover,.topbar-btn:hover,.sidebar-toggle:hover,.close-btn:hover,.action-btn:hover) { color:var(--project-blue); background:var(--project-soft); }
.project-unified[data-project-layout="fixed-reader"] :is(.loading-overlay,.error-state) { background:#fff; color:var(--project-ink); }
.project-unified[data-project-layout="fixed-reader"] > :is(.loading-overlay,.error-state) { top:calc(var(--project-site-height) + var(--project-localbar-height)); z-index:35; }
.project-unified[data-project-layout="fixed-reader"] .loading-spinner { border-color:var(--project-rule); border-top-color:var(--project-blue); }
.project-unified[data-project-layout="fixed-reader"] :is(.topbar-btn.primary,.device-btn.active) { background:var(--project-ink); border-color:var(--project-ink); color:#fff; }
.project-unified[data-project-layout="fixed-reader"] .device-group { background:var(--project-soft); }
.project-unified[data-project-layout="fixed-reader"] .action-btn { color:var(--project-ink); border-color:var(--project-rule); }
.project-unified[data-project-layout="fixed-reader"] .content-wrap { height:calc(100dvh - var(--project-site-height) - var(--project-localbar-height)); min-height:400px; background:var(--project-soft); padding:12px 24px 24px; }
.project-unified[data-project-layout="fixed-reader"] .content-wrap.mobile { padding:20px max(10px,calc((100vw - 390px)/2)) 24px; }
.project-unified[data-project-layout="fixed-reader"] .content-wrap .proto-frame { height:100%; box-shadow:0 0 0 1px var(--project-rule); border-color:var(--project-rule); }
.project-unified[data-project-layout="fixed-reader"].fullscreen > :is([data-site-header],[data-site-footer]) { display:none; }
.project-unified[data-project-layout="fixed-reader"].fullscreen .content-wrap { height:100dvh; min-height:0; padding:0; }
.project-unified[data-project-layout="fixed-reader"].fullscreen .proto-frame { height:100dvh; }
.project-unified[data-project-layout="fixed-reader"] .markdown-body { font-family:inherit; font-size:17px; line-height:1.85; background:#fff; color:var(--project-ink); box-shadow:none; }
.project-unified[data-project-layout="fixed-reader"] .toc-list a.active { color:var(--project-blue); background:#edf1fa; border-left-color:var(--project-blue); }
.project-unified[data-project-layout="fixed-reader"] :is(.topbar-btn,.sidebar-toggle,.float-btn,.back-top-btn) { color:var(--project-ink); border-radius:5px; border-color:var(--project-rule); box-shadow:none; }
.project-unified[data-project-layout="fixed-reader"] :is(.float-actions,.back-top-btn) { z-index:35; }
.project-unified[data-project-layout="fixed-reader"][data-project-footer-visible] :is(.float-actions,.back-top-btn) { visibility:hidden; }

/* Code library: keep the original sidebar filters, examples, frames, canvases and navigation. */
.project-unified[data-project-layout="code-library"] .book-wrapper { min-height:calc(100dvh - var(--project-site-height)); }
.project-unified[data-project-layout="code-library"] .sidebar { top:var(--project-site-height); height:calc(100dvh - var(--project-site-height) - var(--project-footer-overlap)); bottom:var(--project-footer-overlap); z-index:40; }
.project-unified[data-project-layout="code-library"] .content { min-height:calc(100dvh - var(--project-site-height)); }
.project-unified[data-project-layout="code-library"] .top-bar { top:var(--project-site-height); z-index:30; background:#fff; border-color:var(--project-rule); }
.project-unified[data-project-layout="code-library"] .overlay { top:var(--project-site-height); z-index:35; }
.project-unified[data-project-layout="code-library"] .sidebar-search input { background:#fff; border-color:var(--project-rule); color:var(--project-ink); font-size:14px; }
.project-unified[data-project-layout="code-library"] :is(.logo,.home-hero h1) { color:var(--project-ink); background:none; -webkit-text-fill-color:currentColor; }
.project-unified[data-project-layout="code-library"] .logo { font-size:16px; font-weight:590; }
.project-unified[data-project-layout="code-library"] .article { font-size:17px; line-height:1.85; }
.project-unified[data-project-layout="code-library"] .article :is(.example,.tutintro) { background:var(--project-soft); border-color:var(--project-rule); border-radius:5px; }
.project-unified[data-project-layout="code-library"] .article .note { color:#704b00; background:#fff9eb; }
.project-unified[data-project-layout="code-library"] .article :is(.example_head,.example h2,.color_h1,.color_h2) { color:var(--project-blue); }
.project-unified[data-project-layout="code-library"] .article :is(.hl-brackets,.hl-number) { color:#813586; }
.project-unified[data-project-layout="code-library"] .article :is(.hl-reserved,.hl-identifier) { color:var(--project-blue); }
.project-unified[data-project-layout="code-library"] .article .hl-code { color:var(--project-ink); }
.project-unified[data-project-layout="code-library"] .article .hl-var { color:#765000; }
.project-unified[data-project-layout="code-library"] .article :is(.hl-quotes,.hl-string) { color:#167049; }
.project-unified[data-project-layout="code-library"] .article .hl-comment { color:var(--project-muted); }
.project-unified[data-project-layout="code-library"] .home-hero { background:#fff; border-bottom:1px solid var(--project-rule); }
.project-unified[data-project-layout="code-library"] .home-hero h1 { font-weight:570; letter-spacing:-.045em; }
.project-unified[data-project-layout="code-library"] :is(.home-tutorial-card,.chapter-link-row) { border-radius:5px; background:#fff; border-color:var(--project-rule); }
.project-unified[data-project-layout="code-library"] .home-tutorial-icon { background:var(--project-soft); color:var(--project-blue); border:1px solid var(--project-rule); border-radius:4px; }
.project-unified[data-project-layout="code-library"] .toc-chapter.active { color:var(--project-blue); background:#edf1fa; }

/* Existing interactive product prototype: retain its independently scrolling panels. */
.project-unified[data-project-layout="prototype"] > .shell { height:calc(100dvh - var(--project-site-height)); min-height:640px; grid-template-columns:230px minmax(0,1fr) 310px; }
.project-unified[data-project-layout="prototype"] > .shell .left { color:var(--project-ink); background:#fff; border-color:var(--project-rule); }
.project-unified[data-project-layout="prototype"] > .shell :is(.brand,.right,.doc-head) { border-color:var(--project-rule); }
.project-unified[data-project-layout="prototype"] > .shell :is(.brand p,.nav-group h2,.foot,.nav) { color:var(--project-muted); }
.project-unified[data-project-layout="prototype"] > .shell .nav.active { background:#edf1fa; color:var(--project-blue); }
.project-unified[data-project-layout="prototype"] > .shell :is(.nav .num,.mark) { color:var(--project-blue); border-color:var(--project-rule); }
.project-unified[data-project-layout="prototype"] > .shell .center { background:var(--project-soft); }
.project-unified[data-project-layout="prototype"] > .shell .prototype { box-shadow:none; border-radius:5px; border-color:var(--project-rule); }
.project-unified[data-project-layout="prototype"] > .shell :is(.primary,.btn.blue) { background:var(--project-ink); border-color:var(--project-ink); color:#fff; }
.project-unified[data-project-layout="legacy"] > .layout > .sidebar { top:var(--project-site-height); height:calc(100dvh - var(--project-site-height)); }
.project-unified[data-project-layout="legacy"] > .layout > .main { min-width:0; font-size:17px; }

/* Dynamic release list. No changes to the supplied release data or selection handlers. */
.project-unified[data-project-layout="changelog"] :is(.products,.product-head,.release,.empty-box,.error-box) { background:#fff; border-color:var(--project-rule); border-radius:5px; box-shadow:none; }
.project-unified[data-project-layout="changelog"] .products { top:calc(var(--project-site-height) + 20px); }
.project-unified[data-project-layout="changelog"] :is(.page-header h1,.product-head h2,.release h3,.product-item) { color:var(--project-ink); }
.project-unified[data-project-layout="changelog"] :is(.page-header p,.meta-line,.products .list-title,.ph-sub,.release li,.legend,.legend b,.empty-box) { color:var(--project-muted); }
.project-unified[data-project-layout="changelog"] :is(.product-item.active,.product-item:hover) { background:#edf1fa; color:var(--project-blue); border-color:var(--project-rule); }
.project-unified[data-project-layout="changelog"] :is(.p-count,.ph-icon,.r-date,.open-link) { background:var(--project-soft); color:var(--project-blue); border-color:var(--project-rule); }
.project-unified[data-project-layout="changelog"] .open-link[style] { color:var(--project-muted)!important; background:var(--project-soft)!important; border-color:var(--project-rule)!important; }
.project-unified[data-project-layout="changelog"] .release::before { background:var(--project-blue); }
.project-unified[data-project-layout="changelog"] .release li::before { background:var(--project-blue); }
.project-unified[data-project-layout="changelog"] .error-box { color:#a61c2c; border-color:#e4c6cb; background:#fff7f8; }

/* Rendered diagrams keep their original geometry and labels; only the old dark palette changes. */
.project-unified[data-project-layout="flowchart"] .markdown-body { background:#fff; font-family:inherit; font-size:17px; line-height:1.85; }
.project-unified[data-project-layout="flowchart"] :is(.mermaid,.mermaid svg) { background:#fff; }
.project-unified[data-project-layout="flowchart"] .mermaid :is(.node rect,.node circle,.node ellipse,.node polygon,.node path,.actor,.labelBox,.cluster rect) { fill:#f5f7f9!important; stroke:#dadde1!important; }
.project-unified[data-project-layout="flowchart"] .mermaid :is(.label,.nodeLabel,.edgeLabel,.cluster-label,.messageText,text,tspan) { color:#15171b!important; fill:#15171b!important; }
.project-unified[data-project-layout="flowchart"] .mermaid :is(.edgePath path,.flowchart-link,.messageLine0,.messageLine1,.relationshipLine) { stroke:#264eb3!important; }
.project-unified[data-project-layout="flowchart"] .mermaid .edgeLabel { background-color:#fff!important; }
.project-unified[data-project-layout="flowchart"] .mermaid-loading { color:var(--project-muted); }

@media(max-width:980px) {
  .project-unified[data-project-layout="prototype"] > .shell { height:auto; min-height:0; display:block; }
  .project-unified[data-project-layout="prototype"] > .shell .left { position:sticky; top:var(--project-site-height); z-index:35; overflow:auto; white-space:nowrap; border-bottom:1px solid var(--project-rule); }
  .project-unified[data-project-layout="prototype"] > .shell .nav-group { display:inline-flex; padding:8px 4px; }
  .project-unified[data-project-layout="prototype"] > .shell :is(.brand,.nav-group h2,.foot) { display:none; }
  .project-unified[data-project-layout="prototype"] > .shell .nav { width:auto; }
  .project-unified[data-project-layout="prototype"] > .shell .right { border-left:0; border-top:1px solid var(--project-rule); }
  .project-unified[data-project-layout="prototype"] > .shell .doc-head { position:relative; }
}
@media(max-width:900px) {
  .project-unified[data-project-layout="fixed-reader"] .sidebar { top:calc(var(--project-site-height) + var(--project-localbar-height)); bottom:var(--project-footer-overlap); z-index:45; }
}
@media(max-width:860px) {
  .project-unified[data-project-layout="legacy"] > .layout > .sidebar { position:relative; top:auto; height:auto; max-height:300px; }
}
@media(max-width:700px) {
  .project-unified :is(.page-container,.container) { padding:24px 16px 40px; }
  .project-unified :is(.page-container,.container,.markdown-body,.article,.doc) h2 { font-size:22px; }
  .project-unified :is(.page-container,.container,.markdown-body,.article,.doc) h3 { font-size:19px; }
  .project-unified[data-project-layout="code-library"] .article { padding:20px 16px; }
  .project-unified[data-project-layout="code-library"] .article pre { font-size:14px; }
  .project-unified[data-project-layout="changelog"] .products { top:auto; }
  .project-unified[data-project-layout="fixed-reader"] .content-wrap { padding:12px 10px; }
  .project-unified[data-project-layout="fixed-reader"] .content-wrap.mobile { padding:12px 10px; }
}
@media(prefers-reduced-motion:no-preference) {
  .project-unified :is(.topbar-btn,.back-link,.nav-btn,.home-tutorial-card,.chapter-link-row,.product-item,.open-link,.nav) { transition:background-color 160ms,color 160ms,border-color 160ms,transform 180ms cubic-bezier(.2,.7,.28,1); }
  .project-unified :is(.topbar-btn,.back-link,.nav-btn,.open-link):active { transform:scale(.98); }
}
@media(prefers-reduced-motion:reduce) {
  .project-unified *, .project-unified *::before, .project-unified *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
