/* Dark palettes follow html[data-theme], resolved by /assets/skins.js from the skin mode or the OS. */
.architecture-model{--architecture-page:#f7f5ee;--architecture-surface:#fffdf6;--architecture-alt:#e7f0e8;--architecture-ink:#17231b;--architecture-muted:#536158;--architecture-line:#93a79e;position:relative;display:grid;width:100%;gap:18px;margin:0;padding:20px;border:1px solid var(--architecture-line);border-radius:10px;background:var(--architecture-page);color:var(--architecture-ink)}
.architecture-model-head{padding-right:318px}.architecture-model-head h2{margin:0;font-size:20px}.architecture-model-head>p{max-width:760px;margin:3px 0 0;color:var(--architecture-muted)}
.architecture-model-stage{min-width:0}.architecture-model-canvas{display:grid;min-width:0;gap:8px}/* The detail aside floats above the drawing and stays there: lifting the drawing on hover hid the very panel the hovered node fills. The scroll lane keeps a right margin the width of the aside so every part of the drawing can be scrolled out from under it. */.architecture-model-scroll{padding-right:320px}@media(max-width:780px){.architecture-model-scroll{padding-right:0}}.architecture-model-scroll{overflow-x:auto;border:1px solid var(--architecture-line);border-radius:9px;background:var(--architecture-page)}.architecture-model-svg{display:block;min-width:0}.architecture-model-svg svg{display:block;max-width:none}.architecture-model-svg-dark{display:none}.architecture-model-svg svg text{user-select:text}.architecture-model-svg [data-node-id]{cursor:pointer}.architecture-model-svg [data-node-id]:is(:hover,:focus-visible){outline:2px solid var(--architecture-ink);outline-offset:2px}.architecture-model-failure{margin:0;padding:8px 10px;border:1px solid #b42318;border-radius:7px;background:var(--architecture-surface);color:#b42318;font-size:12px}.architecture-model-detail{position:absolute;z-index:3;top:20px;right:20px;display:grid;width:300px;height:180px;gap:6px;overflow:auto;padding:10px;border:1px solid var(--architecture-line);border-radius:9px;background:var(--architecture-surface);box-shadow:0 6px 18px rgba(23,55,47,.12)}.architecture-model-detail h3{display:flex;align-items:center;gap:8px;margin:0;font:800 13px/1.25 ui-monospace,monospace}.architecture-model-detail p{margin:0;color:var(--architecture-muted);font-size:12px;line-height:1.4}.architecture-model-detail-empty{font-style:italic}.architecture-model-detail-state{padding:1px 6px;border-radius:999px;font:700 9px/1.4 ui-monospace,monospace;text-transform:uppercase;background:var(--architecture-alt)}.architecture-model-page-links{display:grid;justify-items:start;gap:4px}.architecture-model-page-link{padding:5px 9px;border:1px solid var(--architecture-line);border-radius:6px;background:var(--architecture-alt);color:var(--architecture-ink);font:700 11px/1.2 ui-monospace,monospace;text-decoration:none}.architecture-model-page-link:hover{background:var(--architecture-surface)}.architecture-model-page-link:focus-visible{outline:2px solid var(--architecture-ink);outline-offset:2px}
.session-store-inspector,.session-store-inspector-loading,.session-store-inspector-error{--architecture-page:#f7f5ee;--architecture-surface:#fffdf6;--architecture-alt:#e7f0e8;--architecture-ink:#17231b;--architecture-muted:#536158;--architecture-line:#93a79e;background:var(--architecture-page);color:var(--architecture-ink)}.session-store-inspector{display:grid;width:min(1120px,calc(100vw - 48px));max-height:82vh;gap:12px;overflow:auto;padding:20px;border:1px solid var(--architecture-line);border-radius:10px}.session-store-inspector-head{display:flex;align-items:start;gap:14px}.session-store-inspector-head button,.session-store-inspector-error button{padding:7px 10px;border:1px solid var(--architecture-line);border-radius:6px;background:var(--architecture-surface);color:var(--architecture-ink);font-weight:700}.session-store-inspector-head h2{margin:0}.session-store-inspector-head p,.session-store-inspector-notice{margin:3px 0 0;color:var(--architecture-muted)}.session-store-inspector-notice{font-size:12px}.session-store-tables{display:grid;gap:8px}.session-store-table{border:1px solid var(--architecture-line);border-radius:7px;background:var(--architecture-surface)}.session-store-table summary{display:flex;justify-content:space-between;gap:12px;padding:10px;cursor:pointer}.session-store-table summary span{color:var(--architecture-muted);font-size:12px}.session-store-schema{display:flex;flex-wrap:wrap;gap:5px;margin:0;padding:0 10px 10px}.session-store-schema code{padding:3px 5px;border-radius:4px;background:var(--architecture-alt);font-size:10px}.session-store-schema code.is-redacted{text-decoration:line-through;opacity:.65}.session-store-grid{max-height:310px;overflow:auto;border-top:1px solid var(--architecture-line)}.session-store-grid table{width:max-content;min-width:100%;border-collapse:collapse;font:11px/1.35 ui-monospace,monospace}.session-store-grid th,.session-store-grid td{max-width:280px;padding:6px 8px;border-right:1px solid var(--architecture-line);border-bottom:1px solid var(--architecture-line);overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.session-store-grid th{position:sticky;top:0;background:var(--architecture-alt)}.session-store-empty,.session-store-inspector-loading,.session-store-inspector-error{padding:16px;color:var(--architecture-muted)}
.architecture-model-mount{--architecture-page:#f7f5ee;--architecture-surface:#fffdf6;--architecture-alt:#e7f0e8;--architecture-ink:#17231b;--architecture-muted:#536158;--architecture-line:#93a79e;display:grid;gap:0}
.architecture-model-compact{width:min(1240px,calc(100vw - 32px));max-height:86vh;overflow:auto;box-shadow:0 18px 54px rgba(16,47,59,.28)}.architecture-model-compact .architecture-model-head p{font-size:12px}
@media(max-width:780px){.architecture-model{padding:14px}.architecture-model-head{min-height:0;padding-right:0}.architecture-model-detail{position:static;width:auto;height:180px;margin-top:10px;box-shadow:none}}
.session-store-grid th strong,.session-store-grid th small{display:block}.session-store-grid th small{margin-top:2px;color:var(--architecture-muted);font-size:9px;font-weight:500}.session-store-grid th.is-redacted,.session-store-grid td.is-redacted{background:var(--architecture-alt);color:var(--architecture-muted)}.session-store-grid td.is-redacted{font-style:italic}
html[data-theme="dark"] .architecture-model-mount,html[data-theme="dark"] .architecture-model,html[data-theme="dark"] .session-store-inspector,html[data-theme="dark"] .session-store-inspector-loading,html[data-theme="dark"] .session-store-inspector-error{--architecture-page:#0e1511;--architecture-surface:#17201a;--architecture-alt:#20382b;--architecture-ink:#edf4ee;--architecture-muted:#a9b7ad;--architecture-line:#536158}html[data-theme="dark"] .architecture-model-svg-light{display:none}html[data-theme="dark"] .architecture-model-svg-dark{display:block}
.architecture-model{--architecture-added:#1f7a4d;--architecture-added-fill:#dff3e6;--architecture-changed:#a6690b;--architecture-changed-fill:#fbefd2}.architecture-model-svg [data-node-id][data-diff="added"]>rect{fill:var(--architecture-added-fill);stroke:var(--architecture-added);stroke-width:3}.architecture-model-svg [data-node-id][data-diff="changed"]>rect{fill:var(--architecture-changed-fill);stroke:var(--architecture-changed);stroke-width:3}.architecture-model-svg g[data-edge-source][data-diff="added"]>path{stroke:var(--architecture-added);stroke-width:3}.architecture-model-svg g[data-edge-source][data-diff="changed"]>path{stroke:var(--architecture-changed);stroke-width:3}.architecture-model-svg g[data-edge-source][data-diff="added"]>rect{fill:var(--architecture-added-fill)}.architecture-model-svg g[data-edge-source][data-diff="changed"]>rect{fill:var(--architecture-changed-fill)}.architecture-model-svg [data-container-id][data-diff="changed"]>text{fill:var(--architecture-changed)}
html[data-theme="dark"] .architecture-model{--architecture-added:#7fd6a5;--architecture-added-fill:#1d4630;--architecture-changed:#f0c26b;--architecture-changed-fill:#4a3a12}
.architecture-model-detail-owner{color:var(--architecture-muted);font:700 10px/1.3 ui-monospace,monospace}
/* An edge is path + label + invisible hit lane; hovering any part heats all of them. */.architecture-model-edge{cursor:pointer}.architecture-model-edge-hit{outline:none}path.architecture-model-edge:not(.architecture-model-edge-hit).is-hot,path.architecture-model-edge:not(.architecture-model-edge-hit)[aria-pressed="true"]{stroke-width:4}path.architecture-model-edge:not(.architecture-model-edge-hit)[aria-pressed="true"]{stroke:#0b7a5a}g.architecture-model-edge.is-hot text,g.architecture-model-edge[aria-pressed="true"] text{font-weight:700}g.architecture-model-edge.is-hot rect{stroke:#0b7a5a;stroke-width:1.5}.architecture-model-detail-endpoints{color:var(--architecture-muted);font:600 10px/1.3 ui-monospace,monospace;letter-spacing:.02em;text-transform:uppercase}.architecture-model-detail-description{margin-top:4px;color:var(--architecture-ink);font-size:13px;line-height:1.45}.architecture-model-detail-members{margin-top:6px;color:var(--architecture-muted);font-size:11px;line-height:1.4}.architecture-model-boundary{cursor:pointer;outline:none}.architecture-model-boundary:is(:hover,:focus-visible)>rect,.architecture-model-boundary[aria-pressed="true"]>rect{stroke-width:3}.architecture-model-boundary[aria-pressed="true"]>rect{stroke:#0b7a5a}

/* Pinning controls expansion; hover only selects the compact preview. */
.architecture-model-detail{transition:width 200ms ease,height 200ms ease;align-content:start}
.architecture-model-detail.is-pinned{width:min(360px,calc(100% - 40px));height:min(var(--architecture-detail-height,180px),70vh)}
.architecture-model-detail:focus-visible{outline:2px solid var(--architecture-ink);outline-offset:2px}
@media(max-width:780px){.architecture-model-detail.is-pinned{width:auto;height:min(var(--architecture-detail-height,180px),60vh)}}
@media(prefers-reduced-motion:reduce){.architecture-model-detail{transition:none}}

.architecture-model-detail[hidden]{display:none}
.architecture-model-svg [data-node-id][aria-pressed="true"]>rect{stroke:var(--architecture-ink);stroke-width:3}
/* Mouse focus must not look pinned after aria-pressed is cleared. Keep keyboard focus visible. */
.architecture-model-svg [aria-pressed]:focus:not(:focus-visible){outline:none}
/* Database inspection is an explicit snapshot; browsing never refreshes selected text. */
dialog.session-store-inspector{box-sizing:border-box;margin:auto;color-scheme:light}.session-store-inspector::backdrop{background:rgb(8 20 12 / .55)}.session-store-inspector-head h2{flex:1;font-size:17px}.session-store-inspector-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.session-store-inspector-controls label{display:flex;align-items:center;gap:6px;min-width:0}.session-store-inspector-controls button,.session-store-inspector-controls select{max-width:100%;padding:6px 9px;border:1px solid var(--architecture-line);border-radius:7px;background:var(--architecture-surface);color:var(--architecture-ink);font:inherit}.session-store-inspector-controls button:disabled,.session-store-inspector-controls select:disabled{background:var(--architecture-alt);color:var(--architecture-muted);cursor:default}.session-store-inspector :focus-visible{outline:2px solid var(--architecture-ink);outline-offset:2px}.session-store-inspector .session-store-grid{max-height:52vh}.session-store-inspector .session-store-grid td{white-space:pre-wrap;overflow-wrap:anywhere;min-width:110px;max-width:400px;vertical-align:top;user-select:text}.session-store-grid td small{display:block;margin-top:4px;color:var(--architecture-muted)}.session-store-inspector [role=alert]{color:var(--architecture-ink);font-weight:700}html[data-theme="dark"] dialog.session-store-inspector{color-scheme:dark}@media(max-width:600px){dialog.session-store-inspector{width:calc(100vw - 16px);padding:12px;max-height:90dvh}.session-store-inspector-controls label{width:100%}.session-store-inspector-controls select{flex:1;min-width:0}}
.session-store-inspector .session-store-grid table,.session-store-inspector .session-store-grid td{color:var(--architecture-ink);background:var(--architecture-surface)}.session-store-inspector .session-store-grid th,.session-store-inspector .session-store-grid td.is-redacted{color:var(--architecture-ink);background:var(--architecture-alt)}
.session-store-inspector [hidden]{display:none!important}


.architecture-profile-button{padding:6px 10px;border:1px solid var(--architecture-line);border-radius:7px;background:var(--architecture-surface);color:var(--architecture-ink);font:inherit;cursor:pointer}


.architecture-resources{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-block:12px}.architecture-resources a{color:inherit;text-decoration:underline}
.agent-architecture-document{margin:0;background:#edf5ef;color:#17372f;font:16px/1.6 system-ui,sans-serif}.agent-architecture-document main{max-width:960px;margin:auto;padding:24px}.agent-architecture-document nav{display:flex;gap:24px;flex-wrap:wrap}.agent-architecture-document a{color:#285f49}.agent-architecture-document h1{font-size:1.5rem}.agent-architecture-document platform-markdown-page{display:block;overflow-wrap:anywhere}
html[data-theme="dark"] .agent-architecture-document{background:#10251f;color:#edf6ea}html[data-theme="dark"] .agent-architecture-document a{color:#a9d9bc}



.timing-test-label { font: 12px/1.4 system-ui, sans-serif; min-width: 10rem; max-width: 32rem; overflow-wrap: anywhere; }
.timing-test-label details { font-size: .75rem; color: var(--muted); background: var(--surface); }
.timing-test-label code { white-space: normal; color: var(--ink); background: var(--surface); }

.architecture-model-notice{margin:8px 16px;padding:10px 12px;background:var(--architecture-alt);color:var(--architecture-ink);border:1px solid var(--architecture-line);border-radius:8px;font-size:13px}
.architecture-model-table-wrap{margin:16px;overflow-x:auto}
.architecture-model-table{width:100%;border-collapse:collapse;background:var(--architecture-surface);color:var(--architecture-ink);font-size:13px;line-height:1.5}
.architecture-model-table caption{text-align:left;font-weight:700;padding:8px 0;color:var(--architecture-ink)}
.architecture-model-table th,.architecture-model-table td{padding:9px 12px;border:1px solid var(--architecture-line);text-align:left;vertical-align:top;min-width:150px}
.architecture-model-table thead th{background:var(--architecture-alt);color:var(--architecture-ink)}
.architecture-model-table tbody th{width:24%;font-weight:600}
@media(max-width:600px){.architecture-model-table-wrap{margin:10px}.architecture-model-table th,.architecture-model-table td{min-width:120px;padding:7px}}










.releases-page{max-width:1240px;margin:0 auto;color:var(--ink);min-width:0}.releases-page h1{font-size:20px;margin:0 0 12px}.releases-page .architecture-model-head{min-height:0;padding-right:0}.releases-page .architecture-model-detail.has-source.is-pinned{width:min(850px,calc(100% - 40px));height:min(720px,78vh);max-height:78vh}.release-source{min-width:0;border-top:1px solid var(--architecture-line);padding-top:9px}.release-source summary{cursor:pointer;font-weight:700;color:var(--architecture-ink)}.release-source-path{overflow-wrap:anywhere;font-family:ui-monospace,monospace!important}.release-source-code{margin:8px 0 0;max-width:100%;overflow:auto;padding:12px;background:var(--architecture-page);color:var(--architecture-ink);border:1px solid var(--architecture-line);border-radius:6px;font:12px/1.5 ui-monospace,monospace;tab-size:2;white-space:pre}.release-source-code code{font:inherit}.release-source-retry{padding:5px 9px;background:var(--architecture-alt);color:var(--architecture-ink);border:1px solid var(--architecture-line);border-radius:6px}.release-source-code .c,.release-source-code .c1,.release-source-code .ch,.release-source-code .cm{color:#526c5c}.release-source-code .k,.release-source-code .kn,.release-source-code .kd,.release-source-code .kc,.release-source-code .ow{color:#793ba4;font-weight:600}.release-source-code .s,.release-source-code .s1,.release-source-code .s2,.release-source-code .sd,.release-source-code .si{color:#216a42}.release-source-code .nb,.release-source-code .nf,.release-source-code .nc{color:#17618a}.release-source-code .m,.release-source-code .mi,.release-source-code .mf,.release-source-code .nv{color:#8d4b12}
html[data-theme="dark"] .release-source-code .c,html[data-theme="dark"] .release-source-code .c1,html[data-theme="dark"] .release-source-code .ch,html[data-theme="dark"] .release-source-code .cm{color:#a6bdad}html[data-theme="dark"] .release-source-code .k,html[data-theme="dark"] .release-source-code .kn,html[data-theme="dark"] .release-source-code .kd,html[data-theme="dark"] .release-source-code .kc,html[data-theme="dark"] .release-source-code .ow{color:#d2adf2}html[data-theme="dark"] .release-source-code .s,html[data-theme="dark"] .release-source-code .s1,html[data-theme="dark"] .release-source-code .s2,html[data-theme="dark"] .release-source-code .sd,html[data-theme="dark"] .release-source-code .si{color:#9cdeb1}html[data-theme="dark"] .release-source-code .nb,html[data-theme="dark"] .release-source-code .nf,html[data-theme="dark"] .release-source-code .nc{color:#8dcbe9}html[data-theme="dark"] .release-source-code .m,html[data-theme="dark"] .release-source-code .mi,html[data-theme="dark"] .release-source-code .mf,html[data-theme="dark"] .release-source-code .nv{color:#efbc86}
@media(max-width:780px){.releases-page .architecture-model-detail{position:fixed;right:14px;top:54px!important;width:calc(100% - 28px);height:180px;margin:0;z-index:3}.releases-page .architecture-model-detail.has-source.is-pinned{width:calc(100% - 28px);height:70vh;max-height:70vh}}

.releases-page .architecture-model-detail.has-source>p:not(.release-background-description){display:none}.release-source-close{flex:none;padding:4px 7px;border:1px solid var(--architecture-line);border-radius:6px;background:var(--architecture-alt);color:var(--architecture-ink);font:12px system-ui,sans-serif}.release-source-header{position:sticky;top:-10px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-10px -10px 10px;padding:10px;background:var(--architecture-surface);color:var(--architecture-ink);border-bottom:1px solid var(--architecture-line)}.release-source-header h3{margin:0!important;min-width:0}.release-pseudocode-step{padding:9px 0;border-top:1px solid var(--architecture-line)}.release-pseudocode-step summary{font:13px/1.5 system-ui,sans-serif;font-weight:500}.release-pseudocode-step[open]>summary{font-weight:700}.release-pseudocode-step .release-source-path{margin:8px 0 0}.release-source-header button:focus-visible,.release-pseudocode-step summary:focus-visible{outline:2px solid var(--architecture-ink);outline-offset:3px}

.architecture-annotation-button{justify-self:start;max-width:100%;padding:5px 9px;border:1px dashed var(--architecture-line);border-radius:7px;background:var(--architecture-alt);color:var(--architecture-ink);font:600 12px/1.4 system-ui,sans-serif;cursor:pointer;text-align:left}.architecture-annotation-button[aria-pressed="true"]{border-style:solid}.architecture-annotation-button:focus-visible,[data-annotation-id]:focus-visible{outline:2px solid var(--architecture-ink);outline-offset:3px}
.releases-page .architecture-model-detail.has-proposal.is-pinned{width:min(620px,calc(100% - 40px));height:auto;max-height:75vh}.release-security-proposal{display:grid;gap:12px}.release-security-proposal h4{font:700 13px/1.4 system-ui,sans-serif;margin:0 0 4px}.release-security-proposal p{color:var(--architecture-ink)}.release-proposal-status{font-weight:700}
@media(max-width:780px){.releases-page .architecture-model-detail.has-proposal.is-pinned{width:calc(100% - 28px);max-height:70vh}}



.workflow-inspector{display:block}.workflow-inspector .session-store-inspector-head{position:sticky;top:-20px;z-index:3;background:var(--architecture-page);color:var(--architecture-ink);padding:10px 0}.workflow-inspector>button{padding:6px 9px;border:1px solid var(--architecture-line);border-radius:7px;background:var(--architecture-surface);color:var(--architecture-ink)}.workflow-inspector a{color:var(--architecture-ink)}

.release-timings-link{color:var(--architecture-ink);background:var(--architecture-surface);font-size:12px;text-decoration:underline;justify-self:start}

.release-reliability-detail{color:var(--architecture-ink);background:var(--architecture-surface);font:12px/1.5 system-ui,sans-serif;padding:8px 0}.release-reliability-detail p{margin:5px 0}.release-reliability-detail ul{padding-left:18px;margin:6px 0}.release-reliability-error{font:12px/1.6 system-ui,sans-serif;padding:8px 10px;border:1px solid #b77b72;border-radius:7px;margin:0 0 10px;color:#832c26;background:#fff0ec}html[data-theme="dark"] .release-reliability-error{color:#ffbdb5;background:#382621}

.release-background-guide{margin:16px 0;border:1px solid var(--line,#668c7b);border-radius:10px;padding:10px 12px;background:#fffdf5;color:#17372f;font-size:13px}
.release-background-guide summary{cursor:pointer;font-weight:650}
.release-background-guide dl{display:grid;grid-template-columns:100px 1fr;gap:8px 12px}.release-background-guide dt{font-weight:650}.release-background-guide dd{margin:0}.release-background-guide h2{font-size:14px}.release-background-note{font-size:12px}
html[data-theme="dark"] .release-background-guide{background:#18352e;color:#edf6ea}


/* A standalone system page: its title, one line of description, then the diagram. The detail panel takes no space until something is selected. */
.system-page{margin:12px auto;max-width:1280px;min-width:0;padding:16px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:12px}.system-page-head h1{margin:0;font-size:22px;color:var(--ink)}.system-page-head p{margin:4px 0 12px;color:var(--muted);font-size:13px}.system-page-notice{margin:0 0 12px;padding:10px;border:1px solid var(--architecture-line);border-radius:8px;background:var(--architecture-surface);color:var(--architecture-ink)}
.system-page-section{scroll-margin-top:12px}.system-page-section+.system-page-section{margin-top:28px;padding-top:16px;border-top:1px solid var(--line)}.system-page-section>h2{margin:0;font-size:18px;color:var(--ink)}.system-page-section>p{margin:4px 0 12px;color:var(--muted);font-size:13px}
@media(max-width:600px){.system-page{padding:10px}}