:root{color-scheme:dark;--ink:#e8eeea;--muted:#bccfd0;--gold:#e5c797;--line:#abc1c544;--header:#344f5c;--paper:#e4eae3;--paper-ink:#2b444d}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#2c444f;color:var(--ink);font:15px/1.6 'Segoe UI',sans-serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}[hidden]{display:none!important}button{border:0}svg{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;clip:rect(0,0,0,0);overflow:hidden}
.header{height:88px;position:fixed;inset:0 0 auto;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:26px;padding:16px 30px;background:var(--header);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none;font-size:23px;font-weight:550;letter-spacing:-.4px;flex:none}.brand-mark{font:34px Georgia,serif;color:var(--gold)}.brand small{display:block;font:8px/1.6 Consolas,monospace;letter-spacing:1.6px;color:#c5d4d3}
.search-wrap{position:relative;width:min(540px,44vw)}.search-wrap input{width:100%;height:43px;border:1px solid #aac0c55c;border-radius:7px;background:#29434f;color:#edf0e9;padding:10px 75px 10px 37px;font-size:14px}.search-wrap input::placeholder{color:#bfd0d1}.search-symbol{position:absolute;top:7px;left:13px;font-size:21px;color:var(--gold)}.search-wrap kbd{position:absolute;right:12px;top:13px;color:#abc2c6;font:10px Consolas,monospace;pointer-events:none}.intro-button{background:#405d6a;border:1px solid var(--line);border-radius:6px;padding:9px 13px;font-size:12px;white-space:nowrap}
.cluster-bar{position:fixed;inset:88px 0 auto;height:66px;z-index:25;padding:12px 30px;display:flex;align-items:center;gap:20px;background:#304b58;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:9px}.tabs a{display:block;text-decoration:none;background:#3e5b69;border:1px solid #aac1c549;border-radius:6px;padding:8px 25px;font-size:13px}.tabs a:hover{background:#496a78}.tabs a[aria-current]{background:var(--gold);color:#29434c;border-color:#f0dcba}.view-summary{margin-left:auto;color:#c4d5d6;font-size:12px}.fit-button{background:transparent;border:1px solid #acbec26e;border-radius:5px;padding:8px 13px;font-size:12px;white-space:nowrap}
#viewport{position:fixed;inset:154px 0 66px;background:#2b4350;background-image:radial-gradient(#b1c9ce23 1px,transparent 1px);background-size:23px 23px;overflow:clip;touch-action:none;user-select:none;cursor:grab;outline-offset:-4px}#viewport.dragging{cursor:grabbing}.diagram-stage{position:absolute;left:0;top:0;transform-origin:0 0;will-change:auto}.tables-layer{position:absolute;inset:0;pointer-events:none}.connector-layer{position:absolute;inset:0;overflow:visible;pointer-events:none}
.canvas-title{position:absolute;top:14px;left:30px;z-index:4;pointer-events:none;color:#e3eae5;font-size:13px;max-width:calc(100% - 60px);padding:7px 13px;border-radius:5px;background:#2c4553e6;box-shadow:0 3px 12px #243a431a}.canvas-title small{display:block;font-size:10px;color:#b5cbce}
.table-card{position:absolute;pointer-events:auto;background:var(--paper);color:var(--paper-ink);border:1px solid #99b0b5;border-radius:9px;box-shadow:0 8px 24px #152e3c3d;overflow:hidden}.table-card.main-card{border:2px solid #e7cb9c}.table-card.context-card{border:1px dashed #abc1c3}.table-header{height:112px;padding:13px 16px;background:#466474;color:#edf1e9;display:flex;flex-direction:column;justify-content:space-between}.main-card .table-header{background:#5e717a}.context-card .table-header{background:#3e5967}.table-title-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0}.table-title{padding:0;text-align:left;background:transparent;font-size:25px;line-height:1.25;font-weight:550;color:#f1f1e7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.table-title:hover{text-decoration:underline;text-decoration-color:#d9c198;text-underline-offset:5px}.sql-book{display:flex;align-items:center;gap:7px;border:1px solid #d8bd8a99;border-radius:5px;padding:6px 10px;background:#405b67;color:#f0d49f;font-size:15px;flex:none}.sql-book svg{width:21px;height:21px;stroke:currentColor;stroke-width:1.6;fill:none}.sql-book:hover{background:#dcca9f;color:#2d4651}.table-secondary{display:flex;align-items:center;gap:16px}.column-count{font-size:15px;color:#c9dddc;white-space:nowrap}.table-faces{margin-left:auto;display:flex;gap:8px}.face-button{background:transparent;padding:0;width:28px;height:35px;flex:none;border:1px solid #9eb7bc;border-radius:50%;overflow:hidden;line-height:1}.face-button img{display:block;width:100%;height:100%;object-fit:cover}.face-button:hover,.face-button:focus-visible{border-color:#f2dfb5;box-shadow:0 0 0 2px #e5c79788}.cluster-link{color:#f1d5a5;font-size:18px;text-decoration:none;align-self:flex-start;border-bottom:1px solid #dabd8799}.cluster-link:hover{color:#fff0ce}
.columns{display:none}.context-card .columns,.diagram-stage.show-columns .columns{display:block}.column-row{height:40px;display:flex;align-items:center;gap:7px;padding:0 12px;border-bottom:1px solid #7e9c9e29;font:15px Consolas,monospace;min-width:0}.column-row:last-child{border:0}.column-row:hover,.column-row:focus-within{background:#eee0bd}.key-marks{display:flex;align-items:center;width:33px;flex:none;gap:2px;color:#a77b3d}.pk-mark svg{width:14px;height:19px;stroke:currentColor;stroke-width:1.9;fill:none}.fk-mark{font:21px/1 Consolas,monospace;color:#9a753c;background:transparent;padding:0}.column-name{font:15px Consolas,monospace;flex:1;min-width:0;text-align:left;padding:0;color:#2e4851;background:transparent;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.column-name:hover{color:#674d28}.data-type{font:13px Consolas,monospace;color:#526f77;white-space:nowrap;margin-left:auto}.field-faces{display:flex;gap:4px;flex:none}.field-faces .face-button{width:20px;height:25px;border-color:#92aab0}.context-card .column-name{font-weight:600}.context-card .column-row{font-size:17px}
.diagram-stage:not(.show-columns) .table-title{font-size:var(--overview-font,26px)}.diagram-stage:not(.show-faces) .table-faces,.diagram-stage:not(.show-faces) .column-count,.diagram-stage:not(.show-faces) .sql-book{display:none}.diagram-stage:not(.show-faces) .table-header{justify-content:center}.diagram-stage:not(.show-faces) .context-card .table-header{justify-content:space-between}.diagram-stage:not(.show-faces) .cluster-link{font-size:26px}.diagram-stage:not(.show-faces) .context-card .column-row{font-size:26px}.diagram-stage:not(.show-faces) .context-card .column-name{font-size:26px}
.edge path{fill:none;stroke-linejoin:round;stroke-linecap:round}.edge-underlay{stroke:#2b4350;stroke-width:7;pointer-events:none}.edge-line{stroke:#b4d0d6;stroke-width:2.8;pointer-events:none}.self-edge .edge-line{stroke:#dfc18d}.edge-hit{stroke:transparent;stroke-width:17;pointer-events:stroke;cursor:help}.edge.active .edge-line,.edge:focus-visible .edge-line{stroke:#ffe0a8;stroke-width:5}.edge:focus-visible{outline:none}.diagram-stage.highlighting .edge:not(.active) .edge-line{opacity:.17}.diagram-stage.highlighting .table-card:not(.related){opacity:.55}.table-card.search-focus{box-shadow:0 0 0 6px #efce96,0 10px 40px #102f3a66}
.canvas-footer{position:fixed;inset:auto 0 0;height:66px;z-index:25;display:flex;align-items:center;justify-content:space-between;padding:10px 30px;background:#334e5c;border-top:1px solid var(--line);gap:15px}.legend{display:flex;align-items:center;gap:8px;font-size:11px;color:#cbdad9}.key-legend{color:var(--gold);width:13px}.key-legend svg{width:12px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.infinity{color:var(--gold);font:20px Consolas,monospace;margin-left:8px}.legend-divider{height:18px;width:1px;background:#a6bdbf55;margin:0 9px}.zoom-controls{display:flex;align-items:center;gap:3px}.zoom-controls button{min-width:35px;height:36px;border:1px solid #afc2c457;background:#3e5c6a;border-radius:4px;font-size:20px}.zoom-controls button:hover{background:#527483}.zoom-controls output{width:55px;text-align:center;font:12px Consolas,monospace}.zoom-controls #focus-main{font-size:11px;margin-left:10px;padding:0 12px}
#tooltip{position:fixed;z-index:80;width:min(620px,calc(100vw - 24px));max-height:min(76dvh,800px);padding:0;background:#385664;border:1px solid #e3c69a;border-radius:11px;color:#edf1e8;box-shadow:0 20px 65px #172f3e90;overflow:hidden}#tooltip-content{padding:24px 27px;max-height:inherit;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.eyebrow{font:11px/1.5 Consolas,monospace;letter-spacing:.7px;color:#e4c997;margin:0 0 9px}#tooltip h2{font-size:23px;line-height:1.3;font-weight:550;letter-spacing:-.4px;margin:4px 0 17px;overflow-wrap:anywhere}.prose{font:16px/1.8 'Segoe UI',sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.source-note{font:11px/1.6 Consolas,monospace;color:#c2d2d4;padding-top:14px;border-top:1px solid #a9bfc347;margin-top:22px;overflow-wrap:anywhere}.field-type{font:13px Consolas,monospace;color:#d9cead}.exact-path{font:12px/1.8 Consolas,monospace;color:#ebd6ae;overflow-wrap:anywhere}.constraint-name{font:11px/1.7 Consolas,monospace;color:#c0d0d3;overflow-wrap:anywhere}.fk-notes{border-top:1px solid #aec3c13b;margin-top:20px;padding-top:8px}.text-link{display:block;text-align:left;margin:8px 0;background:transparent;color:#ecd5ab;border-bottom:1px solid #ccb68b5e;padding:4px 0;font-size:13px}.tooltip-action{background:#e1c79f;color:#2d4853;border-radius:5px;padding:10px 15px;margin-top:16px}.tooltip-person{display:flex;align-items:center;gap:12px;margin-bottom:17px;color:#cfdedb;font-size:13px}.tooltip-person img{width:44px;height:55px;border-radius:7px;object-fit:cover;border:1px solid #c7b995}.evidence-note{font-size:12px;color:#c2d3d6}.intro-select{display:block;width:100%;margin:0 0 17px;background:#2f4b59;border:1px solid #a4babc6b;color:#eef0e8;border-radius:5px;padding:10px;font-size:13px}.tooltip-links{display:flex;gap:15px;flex-wrap:wrap}
#search-results{position:absolute;left:0;right:0;top:51px;max-height:65dvh;overflow:auto;overscroll-behavior:contain;border:1px solid #b5c8c58c;border-radius:8px;background:#35515f;padding:9px;box-shadow:0 16px 45px #152c3b99}.search-count{font-size:11px;color:#bdcfd0;padding:4px 9px;margin:0 0 6px}.search-result{display:block;width:100%;text-align:left;background:transparent;color:#e6eee7;border:1px solid #b0c3c324;padding:11px 12px;border-radius:4px;margin-bottom:5px;font-size:13px;line-height:1.6}.search-result small{display:block;font:10px Consolas,monospace;color:#d5bf98;margin-bottom:5px}.search-result:hover,.search-result:focus-visible{background:#476575;border-color:#d7c08d}
#book{position:fixed;inset:3dvh 3vw;margin:0;padding:0;width:94vw;height:94dvh;max-width:none;max-height:none;border:7px solid #796348;border-radius:13px;background:#eee3c9;color:#2d4652;box-shadow:0 20px 90px #132c3cbb;overflow:hidden}#book::backdrop{background:#183240c9;backdrop-filter:blur(3px)}.book-header{height:96px;display:flex;align-items:center;justify-content:space-between;padding:17px 27px;background:#ded0ab;border-bottom:1px solid #a69571}.book-header .eyebrow{color:#706443;margin:0}.book-header h1{font:29px/1.2 Georgia,serif;margin:3px 0}.book-header button{font-size:29px;padding:0;background:transparent;color:#3b5360;width:40px;height:40px}.book-controls{height:52px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#d9c99f;border-bottom:1px solid #a29068}.book-controls button{padding:8px 15px;background:#3b5766;color:#f2e5c6;border-radius:4px;font-size:12px}.book-controls button:disabled{opacity:.42;cursor:default}.book-controls span{font:12px Consolas,monospace}.book-layout{display:grid;grid-template-columns:300px minmax(0,1fr);height:calc(100% - 148px);min-height:0}#book-index{overflow:auto;background:#e0d3b0;border-right:3px solid #b39d73;padding:18px;overscroll-behavior:contain}#book-index button{display:block;width:100%;text-align:left;border:1px solid #9f8f6a77;background:transparent;color:#3a525c;border-radius:3px;padding:11px 12px;font-size:13px;line-height:1.6;margin-bottom:8px}#book-index button:hover,#book-index button[aria-current]{background:#c8b78d;border-color:#8d7651}.book-source{font:10px/1.7 Consolas,monospace;color:#74644b;margin:0 0 16px}#book-page{min-width:0;min-height:0;overflow:auto;padding:25px 32px;background:linear-gradient(90deg,#cab98c26,#f3e9d0 5%,#ede0c3);overscroll-behavior:contain;scrollbar-gutter:stable}#book-page h2{font:27px/1.4 Georgia,serif;margin:0 0 20px}#book-page .prose{font-size:15px;color:#465d66}.query-code{font:14px/1.75 Consolas,monospace;white-space:pre;tab-size:4;padding:20px;background:#f7eed9;border:1px solid #b09d75;color:#293f4c;overflow:auto;box-shadow:inset 3px 0 #ab8950;max-width:100%}.copy-sql{padding:10px 16px;background:#385362;border-radius:4px;color:#f1e6cb;font-size:12px}#book .source-note{color:#7c6747;border-color:#a8946859}.book-header button:focus-visible,.book-controls button:focus-visible,#book-index button:focus-visible{outline-color:#365667}
#loading{position:absolute;inset:0;z-index:8;display:grid;place-content:center;background:#2c4552;color:#dcd9c7;font-size:18px}#load-error{position:absolute;z-index:9;top:25%;left:50%;transform:translateX(-50%);padding:25px;width:min(500px,90vw);background:#3d5b6b;border:1px solid #c7b88f;border-radius:8px}#load-error h1{font-size:22px}#load-error button{padding:10px 15px;border-radius:4px;background:#e3ca9e;color:#2c4651}.no-script{position:absolute;z-index:10;inset:0;padding:60px;background:#304b58}
@media(max-width:1000px){.header{gap:18px;padding:14px 20px}.brand{font-size:20px}.intro-button{font-size:11px;max-width:135px;white-space:normal;line-height:1.5}.search-wrap{width:auto;flex:1;min-width:0}.search-wrap input{padding-right:15px;font-size:13px}.search-wrap kbd{display:none}.cluster-bar,.canvas-footer{padding-left:20px;padding-right:20px}.legend #detail-hint{display:none}.legend-divider{display:none}.book-layout{grid-template-columns:245px minmax(0,1fr)}}
@media(max-width:700px){.header{height:116px;padding:12px 15px;display:flex;flex-wrap:wrap;align-content:space-between;gap:8px}.brand{font-size:19px;gap:9px}.brand-mark{font-size:29px}.brand small{font-size:6px}.intro-button{margin-left:auto;font-size:10px;max-width:98px;padding:6px 8px}.search-wrap{order:3;flex-basis:100%;width:100%;height:36px}.search-wrap input{height:36px;font-size:13px;padding-top:7px;padding-bottom:7px}.search-symbol{top:3px}#search-results{top:43px;max-height:60dvh}.cluster-bar{top:116px;height:57px;padding:8px 15px;gap:8px}.tabs{gap:6px}.tabs a{font-size:11px;padding:7px 16px}.view-summary{display:none}.fit-button{margin-left:auto;font-size:10px;padding:7px 9px}#viewport{top:173px;bottom:63px}.canvas-title{top:9px;left:14px;padding:5px 9px;max-width:calc(100% - 28px);font-size:10px}.canvas-title small{font-size:9px}.canvas-footer{height:63px;padding:8px 13px;gap:5px}.legend{font-size:8px;gap:4px}.legend .infinity{font-size:17px;margin-left:3px}.zoom-controls button{min-width:29px;height:31px;font-size:18px}.zoom-controls output{font-size:9px;width:37px}.zoom-controls #focus-main{padding:0 7px;font-size:9px;margin-left:4px}#tooltip{max-height:calc(100dvh - 205px)}#tooltip-content{padding:19px 20px}.prose{font-size:15px;line-height:1.8}#tooltip h2{font-size:21px}.tooltip-person{font-size:12px}#book{inset:1dvh 2vw;width:96vw;height:98dvh;border-width:4px}.book-header{height:78px;padding:13px 17px}.book-header h1{font-size:23px}.book-controls{height:46px;padding:0 13px}.book-controls button{font-size:10px;padding:7px 10px}.book-controls span{font-size:10px}.book-layout{display:flex;flex-direction:column;height:calc(100% - 124px)}#book-index{max-height:135px;flex:none;border-right:0;border-bottom:1px solid #b09a71;padding:10px 13px}#book-index button{font-size:11px;padding:8px 9px;margin-bottom:5px}.book-source{font-size:9px;margin-bottom:7px}#book-page{padding:18px;flex:1;min-height:0}#book-page h2{font-size:22px}.query-code{font-size:12px;padding:13px}.book-header .eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.flight-ghost{pointer-events:none!important;z-index:0}.flight-ghost *{pointer-events:none!important}.diagram-stage:not(.flight-ghost){z-index:1}#viewport.is-flying .diagram-stage{pointer-events:none;will-change:transform}#viewport.is-flying .table-card,#viewport.is-flying .edge-hit{pointer-events:none!important}

/* Three automatic zoom levels share the same authored table anchors. */
:root{--paper:#f1eee5;--paper-ink:#2c4650;--gold:#e5c28b;--header:#344f5c}
body{background:#29424e}
.header{background:linear-gradient(110deg,#355363,#304a58);box-shadow:0 4px 20px #17324126;border-bottom-color:#9dbcc146}
.brand{font-weight:600;letter-spacing:-.65px}.brand-mark{font-size:37px}.brand small{color:#bdcfd1;letter-spacing:1.9px}
.cluster-bar{background:#304b59eF}.tabs a{background:#3c5b6a;border-color:#a6c5cc3b;border-radius:7px;box-shadow:inset 0 1px #bed3d619;transition:background .16s,border-color .16s}.tabs a[aria-current]{background:linear-gradient(145deg,#ead2a8,#d7b47b);box-shadow:0 3px 12px #152d383b;color:#28414d}
#viewport{background-color:#294552;background-image:radial-gradient(ellipse at 56% 44%,#58778048,transparent 65%),radial-gradient(#bbd2d823 1px,transparent 1px);background-size:auto,24px 24px}
.canvas-title{background:linear-gradient(110deg,#2b4655f2,#2b4655d9);padding:11px 16px;border-left:2px solid #d9ba825c;box-shadow:0 6px 22px #18343f19;font-size:14px;color:#e9ede5}.canvas-title small{font-size:10px;letter-spacing:.3px;color:#a8c3c9}
.table-card{background:linear-gradient(120deg,#f3f1e9,#e9ede6);border-color:#9bb6bb;border-radius:11px;box-shadow:0 12px 34px #142d3b42,0 2px 6px #142d3b32,inset 0 1px #fff9;transition:box-shadow .18s,border-color .18s,opacity .16s}
.table-card:hover{border-color:#c9d9d7;box-shadow:0 14px 40px #142d3b60,0 0 0 1px #dae9e25e}
.table-card.main-card{border:2px solid #ddbf88;background:linear-gradient(120deg,#f6f0df,#ebeadd);box-shadow:0 16px 42px #122d3c69,0 0 0 4px #dbbd8220}
.main-card:hover{border-color:#f0d5a4;box-shadow:0 18px 44px #142d3b70,0 0 0 4px #e3c38b33}
.table-header{padding:7px 16px;background:linear-gradient(115deg,#3f6575,#466775);border-bottom:1px solid #819d9d55;gap:2px}
.main-card .table-header{background:linear-gradient(115deg,#596e70,#526972);border-bottom-color:#c5b68c99}
.table-card[data-role="related"] .table-header{background:linear-gradient(115deg,#4d6373,#466271)}
.context-card{border-style:dashed;background:linear-gradient(120deg,#e6eeeb,#dce8e5);box-shadow:0 8px 24px #122d3c30}
.context-card .table-header{background:linear-gradient(115deg,#385966,#3d5b66)}
.table-role{font:9px/1.2 Consolas,monospace;letter-spacing:1.7px;color:#c6d9d5;white-space:nowrap}.main-card .table-role{color:#ecd1a1}.context-card .table-role{color:#afcbd2}
.table-title{font-size:var(--table-font,25px);letter-spacing:-.5px;font-weight:600;line-height:1.18}.schema-prefix{color:#d1dfd8;font-weight:400}
.table-title:hover{text-decoration-color:#dec896}.column-count{font:13px 'Segoe UI',sans-serif;color:#bfd3d1}
.sql-book{background:#3c5865b3;border-color:#d8bd8a78;box-shadow:inset 0 1px #c9d6d22a}.sql-book:hover{box-shadow:0 0 13px #e6cda122}
.columns{position:relative}.column-row{position:absolute;left:0;right:0;width:100%;font-size:var(--row-font,15px);background:transparent;transition:background .15s;min-width:0}
.column-row:nth-child(even){background:#45657006}.column-name{font-size:var(--row-font,15px);color:#304a53}.data-type{font-size:var(--type-font,13px);color:#637e83}.column-row:hover,.column-row:focus-within{background:#eddfb7}
.column-row.row-endpoint{background:#f1e2bc;box-shadow:inset 3px 0 #bb9250,inset 0 0 0 1px #cfa96a88}.row-endpoint .column-name{color:#563f21;font-weight:600}
.diagram-stage[data-zoom-level="overview"] .columns,.diagram-stage[data-zoom-level="overview"] .table-role,.diagram-stage[data-zoom-level="overview"] .table-secondary,.diagram-stage[data-zoom-level="overview"] .sql-book{display:none}
.diagram-stage[data-zoom-level="overview"] .table-header{padding:calc(2px / var(--zoom)) calc(6px / var(--zoom));justify-content:center;gap:0;border:0}
.diagram-stage[data-zoom-level="overview"] .table-title{display:block;font:600 var(--overview-font)/1.1 'Segoe UI',sans-serif;letter-spacing:-.15px;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;max-height:2.25em;overflow:hidden;text-align:left}
.diagram-stage[data-zoom-level="overview"] .schema-prefix{display:none}
.diagram-stage[data-zoom-level="overview"] .context-card .table-title-line{padding-right:calc(16px / var(--zoom))}
.diagram-stage[data-zoom-level="overview"] .context-card .table-header{position:relative;justify-content:center}
.diagram-stage[data-zoom-level="overview"] .cluster-link{position:absolute;right:calc(5px / var(--zoom));top:50%;transform:translateY(-50%);font-size:0;border:0;line-height:1;padding:0}
.diagram-stage[data-zoom-level="overview"] .cluster-link::after{content:'↗';font:calc(14px / var(--zoom)) 'Segoe UI',sans-serif;color:#f1d5a2}
.diagram-stage[data-zoom-level="connections"] .columns{display:block}
.diagram-stage[data-zoom-level="connections"] .column-row[data-key="false"]{display:none}
.diagram-stage[data-zoom-level="connections"] .field-faces,.diagram-stage[data-zoom-level="connections"] .table-faces,.diagram-stage[data-zoom-level="connections"] .sql-book{display:none}
.diagram-stage[data-zoom-level="connections"] .table-header{padding:calc(4px / var(--zoom)) calc(9px / var(--zoom));justify-content:space-between;gap:0}
.diagram-stage[data-zoom-level="connections"] .table-role{font-size:calc(8px / var(--zoom));letter-spacing:calc(1px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .table-title{font-size:calc(13.5px / var(--zoom));line-height:1.2}
.diagram-stage[data-zoom-level="connections"] .column-count{display:block;font-size:calc(10px / var(--zoom));line-height:1.2}
.diagram-stage[data-zoom-level="connections"] .context-card .table-role{display:none}
.diagram-stage[data-zoom-level="connections"] .cluster-link{font-size:calc(11px / var(--zoom));line-height:1.2}
.diagram-stage[data-zoom-level="connections"] .column-row{padding-left:calc(7px / var(--zoom));padding-right:calc(9px / var(--zoom));gap:calc(5px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .key-marks{width:calc(14px / var(--zoom));gap:0}
.diagram-stage[data-zoom-level="connections"] .pk-mark svg{width:calc(10px / var(--zoom));height:calc(13px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .fk-mark{font-size:calc(15px / var(--zoom))}
.diagram-stage[data-zoom-level="reading"] .column-row[data-key="false"]{animation:reveal-field .18s ease-out}
@keyframes reveal-field{from{opacity:0}to{opacity:1}}
.edge-underlay{stroke:#2c4854;stroke-width:calc(5px / var(--zoom));vector-effect:none}.edge-line{stroke:#a7c8ce;stroke-width:calc(1.3px / var(--zoom));opacity:.67;vector-effect:none}.self-edge .edge-line{stroke:#d3b988;opacity:.65}
.edge-hit{stroke-width:calc(7px / var(--zoom));vector-effect:none}
.edge.active .edge-line,.edge:focus-visible .edge-line{stroke:#ead3a6;stroke-width:calc(2px / var(--zoom));opacity:1}
.edge-trace{stroke:#fff3ca;stroke-width:calc(3.4px / var(--zoom));stroke-dasharray:.07 1;stroke-dashoffset:-1;opacity:0;pointer-events:none;vector-effect:none;filter:drop-shadow(0 0 3px #f5d6a2)}
.endpoint-dot{fill:#f5dfad;stroke:#6b6a55;stroke-width:calc(1px / var(--zoom));opacity:0;pointer-events:none;vector-effect:none}
.diagram-stage[data-highlight-kind="relationship"] .edge.active .endpoint-dot{opacity:1}
.diagram-stage.highlighting .edge:not(.active) .edge-line{opacity:.12}
.diagram-stage.highlighting .table-card:not(.related){opacity:.62}
.diagram-stage[data-highlight-kind="table"] .edge.active .edge-line{stroke:#bed9d9;stroke-width:calc(1.35px / var(--zoom));opacity:.8}
.canvas-footer{background:linear-gradient(100deg,#344f5d,#304b59)}
#tooltip{background:linear-gradient(125deg,#3c5d6b,#355460);border-color:#d2ba91;border-radius:12px;box-shadow:0 22px 65px #132c3c88,inset 0 1px #e9efe521}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important}}

/* Existing navigation gains context; the map has no extra controls. */
.cluster-map{height:44px;width:236px;flex:0 0 236px;margin-left:8px;padding-left:14px;border-left:1px solid #8dadb84d;pointer-events:none;user-select:none}
.cluster-map svg{width:100%;height:100%;overflow:visible}.map-line{fill:none;stroke:#8eadb46b;stroke-width:1;stroke-dasharray:3 4}.map-trail{fill:none;stroke:#ddc28f;stroke-width:1.5}
.map-landmark{fill:#42616e;stroke:#92b5bf;stroke-width:1.25}.map-cluster text{font:12px 'Segoe UI',sans-serif;fill:#b9cfd2}.map-cluster.current .map-landmark{fill:#e7cb99;stroke:#f3dfbd;stroke-width:2}.map-cluster.current text{fill:#eee2c6;font-weight:600}.map-cluster.origin .map-landmark{stroke:#ddc48d;stroke-width:2}.map-cluster.preview .map-landmark{fill:#5b7f8d;stroke:#f3d9a9;stroke-width:2}.map-cluster.preview text{fill:#f3dbb2}.map-traveller{fill:#fff0c9;stroke:#d6b981;stroke-width:1;filter:drop-shadow(0 0 2px #eed4a7)}
#tooltip.destination-tooltip{width:min(350px,calc(100vw - 24px));max-height:calc(100dvh - 145px)}.destination-tooltip #tooltip-content{padding:18px 22px}.destination-tooltip h2{font-size:22px;margin-bottom:9px}.destination-caption{font-size:13px;color:#ccdcd7;margin:0 0 12px;line-height:1.6}.destination-diagram{width:100%;height:168px;border:1px solid #8dafb24a;border-radius:6px;background:#2c4854;margin:10px 0 14px}.preview-links path{fill:none;stroke:#92bbc3;stroke-width:16;opacity:.64}.preview-node{fill:#587986;stroke:#b6ced0;stroke-width:10}.preview-main{fill:#ead4a8;stroke:#efddb9;stroke-width:12}.preview-context{fill:#466876;stroke:#a0c2c9;stroke-width:10;stroke-dasharray:20 12}.destination-facts{display:flex;justify-content:space-between;gap:15px;font:11px Consolas,monospace;color:#e5cfaa}.destination-main{margin:12px 0 0;padding-top:12px;border-top:1px solid #9ab9c046;font-size:11px;color:#b9cdd0}
.face-button{position:relative;width:34px;height:42.5px;overflow:visible;border-radius:8px;border-color:var(--person-color,#9cb9c1);background:#314e5a}.face-button img{border-radius:7px;transition:transform .16s,filter .16s;transform-origin:center;box-shadow:0 1px 5px #1b333844}.face-button:hover img,.face-button:focus-visible img{transform:scale(1.12);filter:brightness(1.045)}.face-button:hover,.face-button:focus-visible{box-shadow:0 0 0 2px #e5c79777;z-index:2}
.person-role{display:none;pointer-events:none}.table-faces .person-role{display:block;position:absolute;bottom:-3px;left:50%;transform:translateX(-50%);border-radius:3px;background:#294752;border:1px solid var(--person-color,#91b2bd);color:#f3e6c9;padding:0 3px;min-width:13px;font:8px/11px Consolas,monospace;text-align:center;white-space:nowrap}
.field-faces .face-button{width:24px;height:30px;overflow:hidden;border-radius:6px}.field-faces .face-button img{border-radius:5px}.tooltip-person img{width:72px;height:90px;border-radius:8px;flex:none}.tooltip-person{align-items:center;font-size:13px}
@media(max-width:1100px){.cluster-map{width:198px;flex-basis:198px;margin-left:0;padding-left:8px}.view-summary{font-size:10px}}
@media(max-width:900px){.view-summary{display:none}.cluster-map{margin-left:auto}.fit-button{margin-left:0}}
@media(max-width:700px){.cluster-bar{height:90px;flex-wrap:wrap;align-content:space-between;padding:7px 15px 3px;row-gap:0}.cluster-map{order:4;width:100%;height:33px;flex-basis:100%;margin:0;padding:0;border-left:0;border-top:1px solid #7fa3af3b}.cluster-map svg{height:32px;width:236px;margin-left:auto;margin-right:auto}.fit-button{margin-left:auto}#viewport{top:206px}.canvas-title{font-size:11px;padding:7px 11px}.canvas-title small{font-size:9px}.tooltip-person img{width:64px;height:80px}.destination-diagram{height:145px}}

/* Names, type families and passive reading context; authored FK geometry stays fixed. */
.table-header{padding:9px 14px;gap:4px}
.table-card[data-role="main"] .table-header{background:linear-gradient(120deg,#567465,#50695f)}
.table-card[data-role="reference"] .table-header{background:linear-gradient(120deg,#486888,#3f5b78)}
.table-card[data-role="related"] .table-header{background:linear-gradient(120deg,#735d7c,#63526e)}
.table-card[data-role="context"] .table-header{background:linear-gradient(120deg,#42717a,#3d606b)}
.table-title{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
.table-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.table-symbol{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex:none;color:#ead3a3}
.table-symbol svg{width:100%;height:100%}
.table-title-line .column-count{margin-left:auto;font-size:max(11px,calc(10px / var(--zoom)));flex:none}
.table-secondary{justify-content:flex-end;gap:0}.table-faces{gap:5px}
.table-faces .face-button{width:max(40px,calc(38px / var(--zoom)));height:54px}
.face-button{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;overflow:hidden;--name-height:max(12px,calc(11px / var(--zoom)));border-radius:7px}
.face-button img{height:calc(100% - var(--name-height));width:auto;max-width:100%;object-fit:contain;flex:none;box-shadow:none;border-radius:5px}
.person-name{display:block;width:100%;height:var(--name-height);font:max(11px,calc(11px / var(--zoom)))/var(--name-height) 'Segoe UI',sans-serif;font-weight:600;color:#f3ede0;background:#243f4c;white-space:nowrap;pointer-events:none;text-align:center}
.table-faces .person-role,.person-role{display:none}
.field-faces .face-button{width:max(38px,calc(38px / var(--zoom)));height:max(38px,calc(26px / var(--zoom)));border-radius:5px}
.field-faces{gap:4px}.field-faces .face-button img{height:calc(100% - var(--name-height));width:auto;max-width:100%;border-radius:3px}
.face-button:hover img,.face-button:focus-visible img{transform:scale(1.12)}
.diagram-stage[data-zoom-level="overview"] .table-title{display:flex;align-items:center;gap:calc(5px / var(--zoom))}
.diagram-stage[data-zoom-level="overview"] .table-label{white-space:normal}
.diagram-stage[data-zoom-level="overview"] .table-symbol{width:calc(14px / var(--zoom));height:calc(14px / var(--zoom))}
.diagram-stage[data-zoom-level="overview"] .column-count{display:none}
.diagram-stage[data-zoom-level="connections"] .table-title-line{flex-wrap:wrap;gap:calc(3px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .table-title{flex-basis:100%;gap:calc(5px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .table-symbol{width:calc(16px / var(--zoom));height:calc(16px / var(--zoom))}
.diagram-stage[data-zoom-level="connections"] .table-title-line .column-count{margin-left:calc(21px / var(--zoom));font-size:calc(10px / var(--zoom))}
.data-type{font-weight:600}.data-type[data-type-family="integer"]{color:#7b5907}.data-type[data-type-family="text"]{color:#994411}.data-type[data-type-family="decimal"]{color:#38691a}.data-type[data-type-family="temporal"]{color:#0e6578}.data-type[data-type-family="boolean"]{color:#7944a0}.data-type[data-type-family="structured"]{color:#5948a5}
.column-null{display:inline-block;flex:none;min-width:max(34px,calc(34px / var(--zoom)));height:max(17px,calc(14px / var(--zoom)));padding:0 5px;border:1px solid #bfaeab;border-radius:4px;background:#e0d4d0;color:#76564b;font:600 max(10px,calc(9px / var(--zoom)))/max(15px,calc(12px / var(--zoom))) 'Segoe UI',sans-serif;text-align:center}
.prose{white-space:normal}.prose p{margin:0 0 1em}.prose p:last-child{margin-bottom:0}.prose-list{margin:0 0 1em;padding-left:1.35em}.prose-list:last-child{margin-bottom:0}.prose-list li{padding-left:.25em;margin:0 0 .65em}.prose-list li:last-child{margin-bottom:0}.prose-list li::marker{color:#d8bc8f}
.reading-context{position:absolute;right:24px;top:14px;z-index:5;display:flex;align-items:center;gap:10px;max-width:min(490px,calc(100% - 48px));padding:10px 15px;border:1px solid #c2b5898c;border-radius:7px;background:#38584def;color:#f0eddd;box-shadow:0 6px 22px #142e3c33;font-size:14px;pointer-events:none}
.reading-context[data-role="reference"]{background:#3c5c7cef}.reading-context[data-role="context"]{background:#3e6972ef}.reading-context[data-role="related"]{background:#66516fef}
.reading-context .table-symbol{width:21px;height:21px}.reading-context strong{font-weight:600;white-space:nowrap}.context-field{font:12px Consolas,monospace;color:#e1cba4;border-left:1px solid #adc4bd55;padding-left:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.book-paper{position:relative;min-width:0;min-height:0;perspective:1500px;overflow:hidden;background:#eee3c9}
#book-page{height:100%}.book-turn-leaf{position:absolute;inset:0;z-index:2;background:#f1e6cc;overflow:hidden;backface-visibility:hidden;pointer-events:none;box-shadow:-12px 0 30px #705a353b}
.book-turn-leaf::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#82674124,transparent 10%,transparent 85%,#8c754538);pointer-events:none}
.book-page-snapshot{padding:25px 32px;min-height:100%;background:linear-gradient(90deg,#cab98c26,#f3e9d0 5%,#ede0c3)}
.book-page-snapshot h2{font:27px/1.4 Georgia,serif;margin:0 0 20px}.book-page-snapshot .prose{font-size:15px;color:#465d66}
@media(max-width:700px){.reading-context{top:65px;right:12px;max-width:calc(100% - 24px);padding:7px 10px;font-size:12px;gap:7px}.reading-context .table-symbol{width:18px;height:18px}.context-field{font-size:10px}.book-paper{flex:1}.book-page-snapshot{padding:18px}.book-page-snapshot h2{font-size:22px}}
