.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{min-height:180px;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-detail-drilldown{justify-self:start;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;cursor:pointer}
.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-view-switcher{position:sticky;z-index:2;top:0;display:grid;width:min(1240px,calc(100vw - 32px));gap:6px;margin:0 auto;padding:12px;border:1px solid var(--architecture-line);border-radius:10px 10px 0 0;background:var(--architecture-page);color:var(--architecture-ink)}.architecture-view-tabs{display:flex;flex-wrap:wrap;gap:6px}.architecture-view-tabs button{padding:7px 10px;border:1px solid var(--architecture-line);border-radius:999px;background:var(--architecture-surface);color:var(--architecture-ink);font-weight:700}.architecture-view-tabs button[aria-pressed="true"]{background:var(--architecture-ink);color:var(--architecture-surface)}.architecture-view-description{margin:0;color:var(--architecture-muted);font-size:12px}.architecture-view-switcher+.architecture-model-compact{border-top:0;border-radius:0 0 10px 10px}
.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}
@media(prefers-color-scheme:dark){.architecture-model-mount,.architecture-model,.session-store-inspector,.session-store-inspector-loading,.session-store-inspector-error{--architecture-page:#0e1511;--architecture-surface:#17201a;--architecture-alt:#20382b;--architecture-ink:#edf4ee;--architecture-muted:#a9b7ad;--architecture-line:#536158}.architecture-model-svg-light{display:none}.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)}
@media(prefers-color-scheme: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}@media(prefers-color-scheme: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}.session-store-relationships{display:grid;gap:8px;min-width:0}.session-store-schema-diagram{overflow:auto;max-height:55vh;border:1px solid var(--architecture-line);border-radius:8px;background:var(--architecture-page);color:var(--architecture-ink)}.session-store-relation-detail{margin:0;min-height:2.6em;overflow-wrap:anywhere;font:12px/1.4 ui-monospace,monospace;color:var(--architecture-ink);background:var(--architecture-page)}.session-store-schema-diagram path[data-edge-source][role=button]:not([data-edge-hit]){cursor:pointer;stroke-width:3;pointer-events:stroke}.session-store-schema-diagram path[data-edge-source][data-selected]:not([data-edge-hit]){stroke:var(--architecture-ink);stroke-width:5}.session-store-inspector-controls button[aria-pressed=true]{background:var(--architecture-alt);color:var(--architecture-ink);font-weight:700}.session-store-schema-diagram p{padding:12px}.session-store-schema-diagram svg{touch-action:pan-x pan-y}@media(max-width:600px){.session-store-schema-diagram{max-height:50dvh}}

.session-store-schema-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:12px;align-items:start}.session-store-table-description{padding:12px;border:1px solid var(--architecture-line);border-radius:8px;background:var(--architecture-surface);color:var(--architecture-ink);overflow-wrap:anywhere}.session-store-table-description h3{margin:0;font-size:13px;line-height:1.4;font-weight:700;user-select:text}.session-store-table-description p{margin:12px 0 0;font-size:13px;line-height:1.5;user-select:text}@media(max-width:700px){.session-store-schema-layout{grid-template-columns:minmax(0,1fr)}.session-store-table-description{grid-row:1}}

.session-store-schema-diagram [data-edge-source]{cursor:pointer}.session-store-schema-diagram path[data-edge-hit]{stroke:transparent;stroke-width:18;pointer-events:stroke}.session-store-schema-diagram g[data-edge-source][data-selected]>rect{stroke:var(--architecture-ink);stroke-width:2}
