/* Saldo docs: the user guide and the API reference. Continues the Saldo homepage: navy header, mint wordmark dot, Inter. */
:root {
    --navy: #0b1539;
    --navy-2: #10204f;
    --navy-3: #152a6b;
    --ink: #13224b;
    --text: #2a3350;
    --muted: #56607e;
    --faint: #646e8c;
    --line: #dfe5f0;
    --line-strong: #c7d1e5;
    --surface: #ffffff;
    --paper: #f4f7fc;
    --tint: #eff3fa;
    --blue: #3e5fdb;
    --blue-ink: #2b45b3;
    --blue-soft: #e8edfc;
    --mint: #a7efd2;
    --mint-ink: #0c6546;
    --mint-bg: #e9f8f1;
    --mint-line: #bde8d4;
    --ui-bg: #edf1fa;
    --ui-ink: #1a2856;
    --code-bg: #0b1539;
    --code-bar: #111f4d;
    --code-text: #e1e8fb;
    --mark: #fff0b3;
    --tip-bg: #eef3ff;
    --tip-line: #cdd9fb;
    --important-bg: #fff7e7;
    --important-line: #f1dcab;
    --warning-bg: #fdeeee;
    --warning-line: #f1c8ca;
    --legal-bg: #f3f1ff;
    --legal-line: #dad4fa;
    --limit-bg: #f2f4f8;
    --limit-line: #dce2ec;
    --get: #1d5fc9;
    --get-bg: #e5eefc;
    --post: #0b7a55;
    --post-bg: #e0f4eb;
    --patch: #8f5a00;
    --patch-bg: #fff0d2;
    --delete: #b42f37;
    --delete-bg: #fde5e6;
    --shadow: 0 1px 2px rgba(19, 34, 75, .06), 0 12px 32px -18px rgba(19, 34, 75, .28);
    --header-h: 64px;
    --font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    color-scheme: light;
}
@media screen {
    :root[data-theme="dark"] {
        --ink: #eef2fd;
        --text: #cbd4ec;
        --muted: #9ba7c7;
        --faint: #7e8aab;
        --line: #223050;
        --line-strong: #30406a;
        --surface: #0d1630;
        --paper: #0a1127;
        --tint: #121d3b;
        --blue: #8fb0ff;
        --blue-ink: #b6caff;
        --blue-soft: #172651;
        --mint-ink: #a7efd2;
        --mint-bg: #0f2b27;
        --mint-line: #1d4b41;
        --ui-bg: #1a2750;
        --ui-ink: #dde6ff;
        --code-bg: #070d20;
        --code-bar: #0b1532;
        --mark: #6b5a12;
        --tip-bg: #13224a;
        --tip-line: #25397a;
        --important-bg: #2c2412;
        --important-line: #5a4719;
        --warning-bg: #321a1d;
        --warning-line: #63303a;
        --legal-bg: #1d1a3d;
        --legal-line: #3b3478;
        --limit-bg: #151d33;
        --limit-line: #28324f;
        --get: #9cc0ff;
        --get-bg: #172a54;
        --post: #8ce8c0;
        --post-bg: #103a2d;
        --patch: #ffcf7a;
        --patch-bg: #3d2d0e;
        --delete: #ff9aa2;
        --delete-bg: #43191e;
        --shadow: 0 12px 32px -18px rgba(0, 0, 0, .7);
        color-scheme: dark;
    }
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-padding-top: calc(var(--header-h) + 16px); }
body { margin: 0; background: var(--surface); color: var(--text); font: 400 1rem/1.7 var(--font); overflow-x: clip; }
a { color: var(--blue); text-underline-offset: .18em; text-decoration-thickness: 1px; }
a:hover { color: var(--blue-ink); }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-radius: 4px; }
img { max-width: 100%; }
kbd { display: inline-block; min-width: 1.6em; padding: .05em .45em; border: 1px solid var(--line-strong); border-bottom-width: 2px; border-radius: 6px; background: var(--surface); color: var(--ink); font: 600 .82em/1.45 var(--font); text-align: center; white-space: nowrap; }
code { padding: .08em .36em; border: 1px solid var(--line); border-radius: 5px; background: var(--tint); color: var(--ink); font: 500 .86em var(--mono); overflow-wrap: anywhere; }
mark { background: var(--mark); color: inherit; border-radius: 3px; padding: 0 .08em; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 10px 16px; border-radius: 8px; background: var(--surface); color: var(--ink); font-weight: 650; }
.skip:focus { top: 12px; }
.i { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }

/* Header: the homepage's navy band with the wordmark, the two parts, search and the way back to the app. */
.dh { position: sticky; top: 0; z-index: 60; background: linear-gradient(90deg, #0b1539 0%, #10204f 100%); color: #fff; border-bottom: 1px solid rgba(203, 217, 255, .16); }
.dh-inner { display: flex; align-items: center; gap: 18px; max-width: 1480px; height: var(--header-h); margin: 0 auto; padding: 0 24px; }
.dh :focus-visible { outline-color: var(--mint); }
.dh-menu { display: none; align-items: center; gap: 8px; min-height: 44px; padding: 0 10px; margin-left: -10px; border-radius: 10px; color: #dfe6fb; font-size: .9rem; font-weight: 600; text-decoration: none; }
.dh-menu:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.dh-brand { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; color: #fff; text-decoration: none; }
.dh-brand:hover { color: #fff; }
.wordmark { font-size: 1.36rem; font-weight: 800; letter-spacing: -.07em; line-height: 1; }
.wordmark > span { color: #a7efd2; }
.dh-sub { padding-left: 12px; border-left: 1px solid rgba(203, 217, 255, .28); color: #bccaee; font-size: .92rem; font-weight: 600; }
.dh-parts { display: flex; gap: 4px; margin-left: 6px; }
.dh-parts a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 12px; border-radius: 8px; color: #c6d2f4; font-size: .92rem; font-weight: 600; text-decoration: none; }
.dh-parts a:hover { color: #fff; background: rgba(255, 255, 255, .07); }
.dh-parts a[aria-current] { color: #fff; background: rgba(255, 255, 255, .1); box-shadow: inset 0 -2px 0 #a7efd2; }
.dh-search { display: flex; align-items: center; gap: 10px; min-width: 250px; height: 40px; margin-left: auto; padding: 0 8px 0 12px; border: 1px solid rgba(203, 217, 255, .26); border-radius: 10px; background: rgba(255, 255, 255, .06); color: #c6d2f4; font: 500 .9rem var(--font); cursor: pointer; }
.dh-search:hover { border-color: rgba(203, 217, 255, .5); color: #fff; }
.dh-search kbd { margin-left: auto; border-color: rgba(203, 217, 255, .3); background: transparent; color: #c6d2f4; }
.dh-search[hidden] + .dh-app { margin-left: auto; }
.dh-app { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 10px; background: #3e5fdb; color: #fff; font-size: .9rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.dh-app:hover { background: #3452c8; color: #fff; }

/* Layout: part navigation, the text column and the table of contents. */
.dl { display: grid; grid-template-columns: 264px minmax(0, 1fr) 216px; gap: 0 52px; max-width: 1480px; margin: 0 auto; padding: 0 24px; }
.dl--wide { grid-template-columns: 264px minmax(0, 1fr); }
.dl--solo { grid-template-columns: minmax(0, 1fr); }
.dn { position: sticky; top: var(--header-h); align-self: start; max-height: calc(100vh - var(--header-h)); overflow: auto; padding: 26px 10px 40px 0; border-right: 1px solid var(--line); overscroll-behavior: contain; }
.dn-head, .dn-parts, .dn .dn-app { display: none; }
.dn-group { margin: 22px 10px 6px; color: var(--muted); font-size: .8rem; font-weight: 700; letter-spacing: .01em; }
.dn-group:first-of-type { margin-top: 4px; }
.dn ul { margin: 0; padding: 0; list-style: none; }
.dn a { display: flex; align-items: baseline; gap: 10px; padding: 7px 10px; border-radius: 8px; color: var(--text); font-size: .93rem; line-height: 1.38; text-decoration: none; }
.dn a:hover { background: var(--tint); color: var(--ink); }
.dn a[aria-current="page"] { background: var(--blue-soft); color: var(--blue-ink); font-weight: 650; }
.dn-num { min-width: 1.35em; color: var(--faint); font-size: .84rem; font-variant-numeric: tabular-nums; }
.dn a[aria-current="page"] .dn-num { color: inherit; }
.dm { min-width: 0; padding: 26px 0 88px; outline: none; }
.dt { position: sticky; top: calc(var(--header-h) + 26px); align-self: start; max-height: calc(100vh - var(--header-h) - 52px); overflow: auto; padding: 44px 0 24px; font-size: .86rem; }
.dt-title { margin: 0 0 10px; color: var(--ink); font-size: .82rem; font-weight: 700; }
.dt ol { margin: 0; padding: 0; list-style: none; border-left: 1px solid var(--line); }
.dt ol ol { border-left: 0; }
.dt a { display: block; margin-left: -1px; padding: 4px 0 4px 13px; border-left: 2px solid transparent; color: var(--muted); line-height: 1.4; text-decoration: none; }
.dt ol ol a { padding-left: 25px; font-size: .95em; }
.dt a:hover { color: var(--ink); }
.dt a[aria-current="true"] { border-left-color: var(--blue); color: var(--blue-ink); font-weight: 600; }

/* Breadcrumbs and the document head. */
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 0 0 20px; padding: 0; list-style: none; color: var(--muted); font-size: .86rem; }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--faint); }
.crumbs a { color: var(--muted); text-decoration: none; }
.crumbs a:hover { color: var(--blue-ink); text-decoration: underline; }
.doc { max-width: 780px; }
.doc-head { margin-bottom: 30px; }
.doc-kicker { margin: 0 0 8px; color: var(--blue); font-size: .9rem; font-weight: 650; }
.doc h1 { margin: 0 0 14px; color: var(--ink); font-size: clamp(2rem, 1.45rem + 1.7vw, 2.62rem); font-weight: 780; letter-spacing: -.032em; line-height: 1.1; text-wrap: balance; }
.lead { max-width: 62ch; margin: 0 0 14px; color: var(--text); font-size: 1.14rem; line-height: 1.62; }
.doc-meta { margin: 0; color: var(--muted); font-size: .88rem; }
.doc-head--home { position: relative; margin: 0 0 40px; padding: clamp(28px, 4vw, 44px); overflow: hidden; border-radius: 18px; background: linear-gradient(180deg, #0b1539 0%, #10204f 100%); color: #fff; }
.doc-head--home h1 { color: #fff; }
.doc-head--home .lead { color: #d6def7; }
.doc-head--home .doc-meta { color: #aebbe3; }
.doc-head--home a { color: #a7efd2; }
.doc-head--home :focus-visible { outline-color: #a7efd2; }
.doc p, .doc li { max-width: 70ch; }
.doc p { margin: 0 0 1rem; }
.doc ul, .doc ol { margin: 0 0 1rem; padding-left: 1.3rem; }
.doc li { margin: 0 0 .35rem; }
.doc li::marker { color: var(--faint); }
b.ui { padding: .02em .28em; border-radius: 5px; background: var(--ui-bg); color: var(--ui-ink); font-weight: 600; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
a.ext::after { content: "↗"; display: inline-block; margin-left: .15em; font-size: .8em; text-decoration: none; }

/* Sections and headings with their permanent links. */
.sec, .op { scroll-margin-top: calc(var(--header-h) + 16px); }
.sec--h2 > h2, .doc > section > h2, .op > h2 { position: relative; margin: 3.1rem 0 .85rem; color: var(--ink); font-size: 1.52rem; font-weight: 720; letter-spacing: -.02em; line-height: 1.25; text-wrap: balance; }
.sec--h3 > h3 { position: relative; margin: 2.2rem 0 .6rem; color: var(--ink); font-size: 1.16rem; font-weight: 690; letter-spacing: -.01em; line-height: 1.35; }
.sec-where { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 3px 12px; margin: -.15rem 0 1.1rem; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.sec-where div { display: contents; }
.sec-where dt { color: var(--text); font-weight: 650; }
.sec-where dd { margin: 0; }
.doc h3 { color: var(--ink); }
.anchor { display: inline-flex; vertical-align: middle; margin-left: 8px; padding: 4px; border-radius: 6px; color: var(--faint); opacity: 0; transition: opacity .15s ease; }
.anchor .i { width: 18px; height: 18px; }
h2:hover > .anchor, h3:hover > .anchor, .anchor:focus-visible { opacity: 1; }
.anchor:hover { color: var(--blue); }
@media (hover: none) { .anchor { opacity: .55; } }

/* The procedure: who, for which firm, prerequisites, numbered steps, the expected result and what to do when it fails. */
.proc { margin: 1.3rem 0 1.9rem; overflow: hidden; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); }
.proc-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 18px; margin: 0; padding: 14px 20px; border-bottom: 1px solid var(--line); background: var(--tint); font-size: .93rem; line-height: 1.55; }
.proc-facts div { display: contents; }
.proc-facts dt { color: var(--ink); font-weight: 650; }
.proc-facts dd { margin: 0; }
.doc .proc-label { margin: 18px 20px 10px; color: var(--muted); font-size: .82rem; font-weight: 700; letter-spacing: .01em; }
.proc-before ul { margin: 0 20px 4px; padding-left: 1.2rem; }
.proc-steps { margin: 0; padding: 0 20px 4px; list-style: none; counter-reset: step; }
.proc-steps li { position: relative; max-width: none; margin: 0; padding: 0 0 16px 44px; counter-increment: step; }
.proc-steps li::before { content: counter(step); position: absolute; top: .05rem; left: 0; display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--navy); color: #fff; font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; }
:root[data-theme="dark"] .proc-steps li::before { background: #3e5fdb; }
.proc-steps li::after { content: ""; position: absolute; top: 34px; bottom: 4px; left: 13.5px; width: 1px; background: var(--line-strong); }
.proc-steps li:last-child { padding-bottom: 8px; }
.proc-steps li:last-child::after { display: none; }
.proc-result { margin: 8px 20px 18px; padding: 12px 16px; border: 1px solid var(--mint-line); border-radius: 10px; background: var(--mint-bg); }
.doc .proc-result .proc-label { margin: 0 0 4px; color: var(--mint-ink); }
.doc .proc-result p:last-child { margin: 0; }
.proc-problems { border-top: 1px solid var(--line); }
.proc-problems dl { margin: 0 20px 14px; }
.proc-problems dt { color: var(--ink); font-weight: 650; }
.proc-problems dd { margin: 2px 0 12px; }
.proc-related { border-top: 1px solid var(--line); }
.proc-related ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 20px 18px; padding: 0; list-style: none; }
.proc-related li { margin: 0; }
.proc-related a { display: inline-flex; align-items: center; min-height: 36px; padding: 4px 12px; border: 1px solid var(--line); border-radius: 999px; font-size: .88rem; text-decoration: none; }
.proc-related a:hover { border-color: var(--blue); background: var(--blue-soft); }
.plain-steps { counter-reset: step; }

/* Notes, figures, definitions and tables. */
.note { margin: 1.2rem 0 1.5rem; padding: 14px 18px; border: 1px solid var(--limit-line); border-radius: 12px; background: var(--limit-bg); }
.note p { margin: 0 0 .5rem; }
.note p:last-child { margin: 0; }
.note-title { color: var(--ink); font-weight: 700; }
.note-source { color: var(--muted); font-size: .88rem; }
.note--tip { border-color: var(--tip-line); background: var(--tip-bg); }
.note--important { border-color: var(--important-line); background: var(--important-bg); }
.note--warning { border-color: var(--warning-line); background: var(--warning-bg); }
.note--legal { border-color: var(--legal-line); background: var(--legal-bg); }
.fig { margin: 1.6rem 0 1.9rem; }
.fig img { display: block; height: auto; border: 1px solid var(--line); border-radius: 12px; background: #fff; box-shadow: var(--shadow); }
.fig--phone img { max-width: min(100%, 300px); border-radius: 22px; }
.fig figcaption { margin-top: 10px; color: var(--muted); font-size: .88rem; line-height: 1.5; }
.fig-demo { display: inline-block; margin-left: 4px; padding: 1px 9px; border-radius: 999px; background: var(--mint-bg); color: var(--mint-ink); font-size: .76rem; font-weight: 650; white-space: nowrap; }
.fig-missing { display: block; padding: 24px; border: 1px dashed var(--line-strong); border-radius: 12px; color: var(--muted); }
.defs { margin: 1rem 0 1.4rem; }
.defs dt { color: var(--ink); font-weight: 650; }
.defs dd { margin: 2px 0 12px; }
.table-wrap { margin: 1.1rem 0 1.5rem; overflow-x: auto; border: 1px solid var(--line); border-radius: 12px; }
.table-wrap:focus-visible { outline-offset: 2px; }
table { width: 100%; border-collapse: collapse; font-size: .92rem; line-height: 1.5; }
caption { padding: 12px 14px 0; color: var(--muted); font-size: .86rem; text-align: left; caption-side: top; }
th, td { padding: 10px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
thead th { background: var(--tint); color: var(--ink); font-size: .84rem; font-weight: 650; white-space: nowrap; }
tbody th { color: var(--ink); font-weight: 600; }
tbody tr:last-child > * { border-bottom: 0; }
.muted { color: var(--muted); }

/* Code samples on the navy of the header, with tabs and a copy button. */
.code { margin: 1rem 0 1.4rem; overflow: hidden; border-radius: 12px; background: var(--code-bg); color: var(--code-text); }
.code-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 42px; padding: 4px 6px 4px 14px; border-bottom: 1px solid rgba(203, 217, 255, .12); background: var(--code-bar); }
.code-title { color: #b2bee5; font-size: .8rem; font-weight: 650; }
.code-tabs { display: flex; gap: 2px; margin-left: -8px; }
.code-tabs [role="tab"] { min-height: 34px; padding: 0 12px; border: 0; border-radius: 7px; background: none; color: #b2bee5; font: 650 .8rem var(--font); cursor: pointer; }
.code-tabs [role="tab"]:hover { color: #fff; }
.code-tabs [aria-selected="true"] { background: rgba(255, 255, 255, .09); color: #fff; box-shadow: inset 0 -2px 0 #a7efd2; }
.code-copy { min-height: 34px; padding: 0 12px; border: 1px solid rgba(203, 217, 255, .24); border-radius: 7px; background: none; color: #dbe3fb; font: 600 .78rem var(--font); cursor: pointer; }
.code-copy:hover { border-color: rgba(203, 217, 255, .55); color: #fff; }
.code-copy.done { border-color: #a7efd2; color: #a7efd2; }
.code :focus-visible { outline-color: #a7efd2; }
.code pre { margin: 0; padding: 14px 16px; overflow: auto; max-height: 560px; color: var(--code-text); font: 400 .84rem/1.62 var(--mono); tab-size: 2; }
.code pre code { padding: 0; border: 0; background: none; color: inherit; font: inherit; overflow-wrap: normal; }
.code-alt { display: none; margin: 0; padding: 10px 16px 0; color: #b2bee5; font-size: .78rem; font-weight: 650; }
html:not(.js) .code-alt { display: block; }
.js .code-panel[data-inactive] { display: none; }
.t-key, .t-tag { color: #92b4ff; }
.t-str { color: #a7efd2; }
.t-num, .t-flag, .t-var { color: #ffd69f; }
.t-lit { color: #f7afc6; }
.t-punc { color: #8e9ac0; }
.t-com { color: #7885ad; font-style: italic; }
.t-kw, .t-attr { color: #cbbcff; }

/* API reference. */
.method { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 8px; border-radius: 6px; background: var(--get-bg); color: var(--get); font: 700 .72rem/1 var(--mono); letter-spacing: .03em; }
.method--post { background: var(--post-bg); color: var(--post); }
.method--patch, .method--put { background: var(--patch-bg); color: var(--patch); }
.method--delete { background: var(--delete-bg); color: var(--delete); }
.op { margin-top: 3.2rem; padding-top: .3rem; border-top: 1px solid var(--line); }
.op > h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 1.2rem; font-size: 1.32rem; }
.op-path { margin: -.2rem 0 1rem; }
.op-path code { padding: 0; border: 0; background: none; color: var(--ink); font-size: .95rem; word-break: break-all; }
.op-param { color: var(--blue); }
.op th code, code.field { overflow-wrap: normal; word-break: normal; }
.op-facts, .op-behaviour { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 18px; margin: 0 0 1.2rem; font-size: .93rem; line-height: 1.55; }
.op-facts div, .op-behaviour div { display: contents; }
.op-facts dt, .op-behaviour dt { color: var(--ink); font-weight: 650; }
.op-facts dd, .op-behaviour dd { margin: 0; }
.op h3 { margin: 1.6rem 0 .5rem; font-size: 1.02rem; font-weight: 700; }
.op-example-title { margin: 1.5rem 0 .5rem; color: var(--ink); font-size: 1rem; font-weight: 700; }
.op-note { color: var(--muted); font-size: .92rem; }
.op-variant { margin: 1.6rem 0; padding-left: 18px; border-left: 3px solid var(--line); }
.op-variant > h3 { font-size: 1rem; }
.op-variant > h3 code { font-size: .92em; }
.status { display: inline-block; min-width: 2.8em; padding: 2px 7px; border-radius: 6px; font: 700 .76rem var(--mono); text-align: center; }
.status--ok { background: var(--post-bg); color: var(--post); }
.status--err { background: var(--delete-bg); color: var(--delete); }

/* Home pages: the chapters as one path through the bookkeeping year, common procedures, API areas. */
.featured { margin: 0 0 2.6rem; }
.featured h2, .phase h2, .doc--home section > h2 { margin: 0 0 .5rem; font-size: 1.2rem; }
.doc .featured-list, .doc .topic-list, .doc .group-list, .doc .hub-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; margin: 14px 0 0; padding: 0; list-style: none; }
.featured-list li, .topic-list li, .group-list li, .hub-list li { max-width: none; margin: 0; }
.featured-list a, .topic-list a, .group-list a, .hub-list a { display: flex; flex-direction: column; gap: 4px; height: 100%; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; color: var(--text); font-size: .9rem; line-height: 1.45; text-decoration: none; }
.featured-list a:hover, .topic-list a:hover, .group-list a:hover, .hub-list a:hover { border-color: var(--blue); background: var(--blue-soft); }
.featured-list strong, .topic-list strong, .group-list strong, .hub-list strong { color: var(--ink); font-size: .98rem; }
.group-list em { margin-top: auto; padding-top: 6px; color: var(--muted); font-size: .82rem; font-style: normal; }
.doc .hub-list { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.hub-list a { padding: 22px; font-size: 1rem; }
.hub-list strong { font-size: 1.2rem; }
.phase { margin: 0 0 2.4rem; }
.phase > p { color: var(--muted); }
.doc .path { position: relative; margin: 10px 0 0; padding: 0 0 0 4px; list-style: none; }
.path::before { content: ""; position: absolute; top: 18px; bottom: 18px; left: 18px; width: 2px; background: var(--line); }
.path li { max-width: none; margin: 0; }
.path a { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 16px; padding: 10px 12px 10px 0; border-radius: 12px; color: var(--text); text-decoration: none; }
.path a:hover { background: var(--tint); }
.path-num { position: relative; z-index: 1; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--surface); box-shadow: 0 0 0 2px var(--blue); color: var(--blue-ink); font-size: .84rem; font-weight: 750; font-variant-numeric: tabular-nums; }
.path a:hover .path-num { background: var(--blue); color: #fff; }
.path-text { display: flex; flex-direction: column; gap: 2px; font-size: .92rem; line-height: 1.5; }
.path-text strong { color: var(--ink); font-size: 1.02rem; }
.api-base .code { max-width: 640px; }

/* Previous and next chapter, and the inline table of contents on narrow screens. */
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 4rem; }
.pager a { display: flex; flex-direction: column; gap: 2px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 12px; color: var(--ink); font-weight: 650; text-decoration: none; }
.pager a:hover { border-color: var(--blue); background: var(--blue-soft); }
.pager span { color: var(--muted); font-size: .8rem; font-weight: 500; }
.pager-next { grid-column: 2; text-align: right; }
.toc-inline { display: none; margin: 0 0 26px; padding: 4px 16px; border: 1px solid var(--line); border-radius: 12px; }
.toc-inline summary { min-height: 44px; display: flex; align-items: center; color: var(--ink); font-weight: 650; cursor: pointer; }
.toc-inline ol { margin: 0 0 12px; padding-left: 1.2rem; font-size: .92rem; }

/* Footer. */
.df { background: #0a1230; color: #b8c4e2; }
.df-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; max-width: 1480px; margin: 0 auto; padding: 44px 24px 28px; }
.df .wordmark { color: #fff; font-size: 1.55rem; }
.df-brand p { max-width: 44ch; margin: 12px 0 0; font-size: .88rem; line-height: 1.55; }
.df-links { display: grid; grid-template-columns: repeat(2, max-content); gap: 0 40px; align-content: start; }
.df-links a { display: inline-flex; align-items: center; min-height: 40px; color: #e2e8f8; font-size: .9rem; text-decoration: none; }
.df-links a:hover { color: #a7efd2; }
.df-theme { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 16px; font-size: .84rem; }
.df-theme button { min-height: 36px; padding: 0 12px; border: 1px solid rgba(200, 215, 255, .26); border-radius: 999px; background: none; color: #d8e0f6; font: 600 .8rem var(--font); cursor: pointer; }
.df-theme button[aria-pressed="true"] { border-color: #a7efd2; color: #a7efd2; }
.df :focus-visible { outline-color: #a7efd2; }
.df-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 20px; max-width: 1480px; margin: 0 auto; padding: 16px 24px 30px; border-top: 1px solid rgba(200, 215, 255, .18); color: #aab8d6; font-size: .8rem; }

/* Search dialog. */
.ds { width: min(700px, calc(100vw - 24px)); max-height: min(80vh, 740px); margin: 9vh auto auto; padding: 0; overflow: hidden; border: 0; border-radius: 16px; background: var(--surface); color: var(--text); box-shadow: 0 30px 80px -20px rgba(4, 9, 26, .55); }
.ds[open] { display: flex; flex-direction: column; }
.ds::backdrop { background: rgba(5, 10, 28, .58); }
.ds-box { display: flex; flex: 1; flex-direction: column; min-height: 0; }
.ds-field { display: flex; align-items: center; gap: 10px; padding: 10px 10px 10px 16px; border-bottom: 1px solid var(--line); color: var(--muted); }
.ds-field input { flex: 1; min-width: 0; min-height: 44px; border: 0; outline: 0; background: transparent; color: var(--ink); font: 500 1.05rem var(--font); }
.ds-field input::-webkit-search-cancel-button { display: none; }
.ds-close { display: grid; place-items: center; width: 44px; height: 44px; border: 0; border-radius: 10px; background: none; color: var(--muted); cursor: pointer; }
.ds-close:hover { background: var(--tint); color: var(--ink); }
.ds-scope { display: flex; gap: 6px; padding: 10px 16px; border-bottom: 1px solid var(--line); }
.ds-scope button { min-height: 36px; padding: 0 14px; border: 1px solid var(--line); border-radius: 999px; background: none; color: var(--muted); font: 600 .84rem var(--font); cursor: pointer; }
.ds-scope button[aria-pressed="true"] { border-color: var(--navy); background: var(--navy); color: #fff; }
:root[data-theme="dark"] .ds-scope button[aria-pressed="true"] { border-color: #3e5fdb; background: #3e5fdb; }
.ds-results { flex: 1; min-height: 0; margin: 0; padding: 8px; overflow: auto; list-style: none; }
.ds-results li { margin: 0; }
.ds-results a { display: block; padding: 10px 12px; border-radius: 10px; color: var(--text); text-decoration: none; }
.ds-results [aria-selected="true"] a, .ds-results a:hover { background: var(--tint); }
.ds-r-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; color: var(--muted); font-size: .8rem; }
.ds-r-title { display: block; color: var(--ink); font-weight: 650; }
.ds-r-text { display: block; margin-top: 2px; color: var(--muted); font-size: .86rem; line-height: 1.5; }
.ds-r-path { font: 500 .78rem var(--mono); }
.ds-status { margin: 0; padding: 10px 16px 14px; color: var(--muted); font-size: .86rem; }
.ds-status:empty { display: none; }
.toast { position: fixed; bottom: 20px; left: 50%; z-index: 90; padding: 10px 16px; border-radius: 10px; background: var(--navy); color: #fff; font-size: .9rem; box-shadow: var(--shadow); transform: translateX(-50%); }

@media (max-width: 1220px) {
    .dl { grid-template-columns: 250px minmax(0, 1fr); gap: 0 40px; }
    .dl--solo { grid-template-columns: minmax(0, 1fr); }
    .dt { display: none; }
    .toc-inline { display: block; }
}

@media (max-width: 920px) {
    :root { --header-h: 56px; }
    .dh-inner { gap: 8px; padding: 0 16px; }
    .dh-menu { display: inline-flex; }
    .dh-sub, .dh-parts, .dh-app, .dh-search kbd, .dh-search-label { display: none; }
    .dh-search { justify-content: center; min-width: 44px; width: 44px; height: 44px; margin-left: auto; padding: 0; }
    .dl, .dl--wide { display: block; padding: 0 16px; }
    .dn { position: fixed; top: 0; bottom: 0; left: 0; z-index: 80; align-self: stretch; width: min(86vw, 340px); height: 100%; max-height: none; padding: 0 12px 28px; border-right: 0; background: var(--surface); box-shadow: 0 0 40px rgba(4, 9, 26, .35); transform: translateX(-104%); visibility: hidden; transition: transform .22s ease, visibility .22s; }
    .dn:target, .nav-open .dn { transform: none; visibility: visible; }
    .dn-head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; height: 58px; margin: 0 -12px 4px; padding: 0 8px 0 22px; border-bottom: 1px solid var(--line); background: var(--surface); color: var(--ink); font-weight: 700; }
    .dn-close { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 10px; color: var(--muted); }
    .dn-parts { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin: 10px 0 6px; }
    .dn-parts a { justify-content: center; padding: 9px 8px; border: 1px solid var(--line); font-weight: 650; }
    .dn-parts a[aria-current] { border-color: var(--navy); background: var(--navy); color: #fff; }
    .dn .dn-app { display: flex; align-items: center; gap: 8px; margin-top: 18px; padding: 11px 12px; border: 1px solid var(--line); font-weight: 650; }
    .nav-open body::after { content: ""; position: fixed; inset: 0; z-index: 70; background: rgba(5, 10, 28, .5); }
    .dm { padding: 20px 0 64px; }
    .df-inner { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 36px 16px 22px; }
    .df-bottom { padding: 16px 16px 28px; }
    .sec--h2 > h2, .doc > section > h2, .op > h2 { margin-top: 2.6rem; font-size: 1.36rem; }
}

@media (max-width: 600px) {
    body { font-size: .97rem; }
    .ds { width: 100%; max-width: none; height: 100%; max-height: none; margin: 0; border-radius: 0; }
    .lead { font-size: 1.06rem; }
    .proc-facts { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .proc-facts dd { margin-bottom: 8px; }
    .doc .proc-label { margin-inline: 16px; }
    .proc-before ul, .proc-problems dl, .proc-related ul { margin-inline: 16px; }
    .proc-steps { padding-inline: 16px; }
    .proc-steps li { padding-left: 40px; }
    .proc-result { margin-inline: 16px; }
    .doc .proc-result .proc-label { margin-inline: 0; }
    .op-facts, .op-behaviour { grid-template-columns: minmax(0, 1fr); gap: 0; }
    .op-facts dd, .op-behaviour dd { margin-bottom: 8px; }
    .pager { grid-template-columns: minmax(0, 1fr); }
    .pager-next { grid-column: 1; }
    .df-links { grid-template-columns: minmax(0, 1fr); }
    .doc-head--home { margin-inline: -4px; border-radius: 14px; }
    th, td { padding: 9px 11px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media print {
    :root { --header-h: 0px; }
    .dh, .dn, .dt, .toc-inline, .pager, .skip, .ds, .code-copy, .anchor, .df-links, .df-theme, .crumbs, .toast { display: none !important; }
    body { background: #fff; color: #000; font-size: 10.5pt; line-height: 1.5; }
    .dl, .dl--wide, .dl--solo { display: block; max-width: none; padding: 0; }
    .dm { padding: 0; }
    .doc { max-width: none; }
    .doc-head--home { padding: 0; background: none; color: #000; }
    .doc-head--home h1, .doc-head--home .lead, .doc-head--home .doc-meta { color: #000; }
    a { color: #000; }
    a.ext::after { content: " (" attr(href) ")"; font-size: .85em; }
    .code, .code-bar { background: #f4f5f8 !important; color: #000 !important; }
    .code pre { max-height: none; overflow: visible; white-space: pre-wrap; color: #000; }
    .code [class^="t-"] { color: #000 !important; }
    .js .code-panel[data-inactive] { display: block; }
    .code-alt { display: block; color: #333; }
    .code-tabs { display: none; }
    .proc, .note, .fig, .table-wrap, .code, tr { break-inside: avoid; }
    h1, h2, h3 { break-after: avoid; }
    .fig img { box-shadow: none; max-width: 70%; }
    .fig--phone img { max-width: 40%; }
    .df { background: none; color: #000; }
    .df-bottom { color: #333; border-color: #ccc; }
    .df .wordmark { color: #000; }
}
