:root{--blue:#198dc0;--blue-mid:#00466f;--navy:#1b3965;--ink-navy:#001226;--band:#eef3f9;
  --body:#3b444e;--muted:#6f7a86;--line:#e3e9f0;--bg:#fff;--maxw:1220px;
  --head:"Montserrat",-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --sans:"Roboto",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:var(--sans);color:var(--body);line-height:1.7;background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3,h4{font-family:var(--head);color:var(--ink-navy);line-height:1.25;margin:1.6em 0 .5em;font-weight:700}
h1{margin-top:0;font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.2rem}
img{max-width:100%;height:auto}
code{font-family:var(--mono);font-size:.9em;background:#f2f5f9;padding:.12em .38em;border-radius:4px}
pre{background:var(--ink-navy);color:#e6edf6;padding:16px 18px;border-radius:8px;overflow:auto}
pre code{background:none;color:inherit;padding:0}
/* Build-time code highlighting (WikiCodeHighlighter), tuned for the navy pre background */
.hl-c{color:#8ea3c6;font-style:italic}.hl-s{color:#a8e6b8}.hl-k{color:#7cc4ff}.hl-n{color:#f5c27a}
.hl-v{color:#f0a6cc}.hl-p{color:#ffd88a}.hl-f{color:#9fe0ff}
table{border-collapse:collapse;width:100%;margin:1rem 0}
th,td{border:1px solid var(--line);padding:.55rem .7rem;text-align:left}
/* Tables sit in a scroll box (WikiRenderer.AddTableBreakPoints): one that can't fit scrolls inside it,
   never under the On this page panel; long slash lists get break points so they wrap first. */
.table-scroll{overflow-x:auto;margin:1rem 0}.table-scroll>table{margin:0}
th{background:var(--band);font-family:var(--head)}
blockquote{border-left:4px solid var(--blue);margin:1rem 0;padding:.2rem 1rem;color:var(--muted)}
.callout{border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:8px;padding:12px 16px;margin:1.2rem 0;background:#f7fafd}
.callout.warning{border-left-color:#c2410c;background:#fdf5f0}
.callout.tip{border-left-color:#1d9e75;background:#f1faf6}
.callout.note{border-left-color:var(--blue)}
.embed{position:relative;aspect-ratio:16/9;margin:1.2rem 0;border-radius:10px;overflow:hidden;background:#000}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* Header */
.kb-header{background:var(--ink-navy);color:#fff;position:sticky;top:0;z-index:50}
.kb-header .in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:18px;padding:12px 22px}
.kb-header .home{display:flex;flex-shrink:0}
.kb-header .logo{height:34px;width:auto}
.kb-menu{display:none;flex-shrink:0;font:600 .9rem var(--head);color:#fff;background:transparent;border:1px solid #2a3f63;border-radius:6px;padding:.45rem .8rem;cursor:pointer}
.kb-menu:focus-visible,.kb-search input:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.kb-menu[aria-expanded="true"]{background:#0b1c3a}
.kb-header .title{font-family:var(--head);font-weight:600;color:#dbe4f2;font-size:1rem}
.kb-search{margin-left:auto;position:relative}
.kb-search input{width:280px;max-width:46vw;padding:.5rem .8rem;border-radius:6px;border:1px solid #2a3f63;background:#0b1c3a;color:#fff;font:inherit}
.kb-search input::placeholder{color:#8ea3c6}
.kb-results{position:absolute;top:110%;right:0;width:420px;max-width:80vw;background:#fff;color:var(--body);
  border:1px solid var(--line);border-radius:8px;box-shadow:0 12px 30px rgba(0,18,38,.18);max-height:60vh;overflow:auto;display:none;z-index:60}
.kb-results.show{display:block}
.kb-results a{display:block;padding:10px 14px;border-bottom:1px solid var(--line);color:var(--ink-navy)}
.kb-results a:hover{background:var(--band);text-decoration:none}
.kb-results .p{font-size:.8rem;color:var(--muted)}
.kb-results .empty{padding:12px 14px;color:var(--muted)}

/* Layout */
.kb-wrap{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:270px 1fr;gap:34px;padding:26px 22px}
.kb-side{position:sticky;top:74px;align-self:start;max-height:calc(100vh - 90px);overflow:auto;font-size:.93rem}
.kb-side .sec{margin-bottom:.4rem}
.kb-side .sec>a{font-family:var(--head);font-weight:600;color:var(--ink-navy);display:block;padding:.28rem 0}
.kb-side ul{list-style:none;margin:.1rem 0 .5rem;padding-left:.7rem;border-left:1px solid var(--line)}
.kb-side li{padding:.16rem 0}
.kb-side a.current,.kb-side .sec>a.current{color:var(--blue);font-weight:600}
.kb-side .sec.open>a{color:var(--blue-mid)}
.kb-side .sub{padding-left:.7rem}
.kb-main{min-width:0}
.breadcrumbs{font-size:.85rem;color:var(--muted);margin-bottom:1rem}
.breadcrumbs a{color:var(--muted)}

/* Menu (section landing) cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin:1.2rem 0}
.card{display:block;border:1px solid var(--line);border-radius:12px;padding:20px;background:#fff;transition:transform .15s,box-shadow .15s}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(0,18,38,.10);text-decoration:none}
.card .ic{font-size:1.6rem}
.card .ic img{height:44px;width:auto;display:block}
.section-logo{height:72px;width:auto;display:block;margin-bottom:.8rem}
.card .t{font-family:var(--head);font-weight:700;color:var(--ink-navy);margin:.5rem 0 .2rem}
.card .d{font-size:.9rem;color:var(--muted)}
.article-list{list-style:none;padding:0;margin:1rem 0}
.article-list li{padding:.5rem 0;border-bottom:1px solid var(--line)}
.article-list .d{font-size:.88rem;color:var(--muted)}

/* Article + TOC */
.article-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:34px}
.article-body{min-width:0}   /* long code lines and wide tables scroll inside, never widen the page */
.toc{position:sticky;top:74px;align-self:start;font-size:.86rem;border-left:1px solid var(--line);padding-left:14px}
.toc .h{font-family:var(--head);font-weight:700;color:var(--ink-navy);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;margin-bottom:.5rem}
.toc a{display:block;padding:.2rem 0;color:var(--muted)}
.toc a.lvl3{padding-left:.8rem}
.tags{margin:1.6rem 0 0;font-size:.82rem;color:var(--muted)}
.tags span{display:inline-block;background:var(--band);border-radius:14px;padding:.15rem .7rem;margin-right:.3rem}

.kb-footer{border-top:1px solid var(--line);color:var(--muted);font-size:.85rem;margin-top:2rem}
.kb-footer .in{max-width:var(--maxw);margin:0 auto;padding:18px 22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (max-width:900px){.kb-wrap{grid-template-columns:1fr}.article-grid{grid-template-columns:1fr}.toc{display:none}
  /* Phone/tablet: the section menu becomes a panel opened by the header's Menu button. */
  .kb-menu{display:block}
  .kb-side{display:none;position:static;max-height:none;border:1px solid var(--line);border-radius:10px;padding:.8rem 1rem;background:var(--band)}
  .kb-side.open{display:block}}
@media (max-width:600px){.kb-header .in{gap:10px;padding:10px 16px}.kb-header .title{display:none}
  .kb-search{flex:1;min-width:0}.kb-search input{width:100%;max-width:none}
  .kb-results{position:fixed;top:58px;left:16px;right:16px;width:auto;max-width:none}
  .kb-wrap{padding:18px 16px;gap:20px}h1{font-size:1.6rem}}