.ph{--ph-bg: #f4f5f7;--ph-fg: #15171c;--ph-muted: #525a67;--ph-card: #ffffff;--ph-line: #c5cad3;--ph-bad: #a61f19;--ph-bad-text: #a61f19;--ph-bad-fg: #ffffff;--ph-bad-soft: #fbe3e1;--ph-unk-a: #fff4d9;--ph-unk-b: #f6d88f;--ph-unk-fg: #3d2a00;--ph-unk-line: #9a6200;--ph-ok: #1b6b36;--ph-na: #6a7280;--ph-info: #1d58a3;--ph-info-soft: #e7effa;--ph-link: #0a58a8;--ph-quiet: #e6e8ec;--ph-band-a: #eef0f3;--ph-band-b: #e5e8ed;--ph-wire: #4d5563;--ph-jdbc: #7b3fb2;--ph-rail: #6f7887;--ph-guide: #7d8591;--ph-gutter: 6.75rem;background:var(--ph-bg);color:var(--ph-fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.4;min-height:100vh;padding:1rem 1.25rem 3rem;box-sizing:border-box}@media (prefers-color-scheme: dark){.ph{--ph-bg: #111317;--ph-fg: #e6e8ec;--ph-muted: #a3aab6;--ph-card: #1b1e24;--ph-line: #3a404b;--ph-bad: #b8322a;--ph-bad-text: #ff7b72;--ph-bad-fg: #ffffff;--ph-bad-soft: #3b1714;--ph-unk-a: #2c2410;--ph-unk-b: #4b3b12;--ph-unk-fg: #f7e6bd;--ph-unk-line: #d59b2c;--ph-ok: #5cc27f;--ph-na: #9aa2b0;--ph-info: #80b1ef;--ph-info-soft: #172538;--ph-link: #86bdff;--ph-quiet: #262a31;--ph-band-a: #16191e;--ph-band-b: #1c2026;--ph-wire: #aab2bf;--ph-jdbc: #c79bff;--ph-rail: #8d97a6;--ph-guide: #6b7380;color-scheme:dark}}.ph *,.ph *:before,.ph *:after{box-sizing:border-box}.ph a{color:var(--ph-link)}.ph code{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92em}.ph h1,.ph h2,.ph h3,.ph h4,.ph p{margin:0}.ph summary{cursor:pointer}.ph-hint{color:var(--ph-muted);font-size:.8rem}.ph-k-problem{background:var(--ph-bad);color:var(--ph-bad-fg);border:2px solid var(--ph-bad)}.ph-k-unknown{background-color:var(--ph-unk-a);background-image:repeating-linear-gradient(135deg,var(--ph-unk-a) 0 8px,var(--ph-unk-b) 8px 12px);color:var(--ph-unk-fg);border:2px solid var(--ph-unk-line)}.ph-k-fine{background:var(--ph-card);color:var(--ph-fg);border:2px solid var(--ph-ok)}.ph-k-na{background:var(--ph-card);color:var(--ph-fg);border:2px dashed var(--ph-na)}.ph-k-info{background:var(--ph-card);color:var(--ph-fg);border:2px dotted var(--ph-info)}.ph-k-recovered{background:var(--ph-info-soft);color:var(--ph-fg);border:2px dotted var(--ph-info)}.ph-k-problem .ph-hint,.ph-k-problem a,.ph-k-unknown .ph-hint{color:inherit}.ph-word{font-weight:800;letter-spacing:.03em;white-space:nowrap}.ph-word:before{display:inline-block;margin-right:.3em;font-weight:900}.ph-word[data-kind=problem]:before{content:"■"}.ph-word[data-kind=unknown]:before{content:"?"}.ph-word[data-kind=fine]:before{content:"●";color:var(--ph-ok)}.ph-word[data-kind=na]:before{content:"○"}.ph-word[data-kind=info]:before{content:"i";font-style:italic;font-family:Georgia,Times New Roman,serif}.ph-word[data-kind=recovered]:before{content:"↻";color:var(--ph-info)}.ph-a{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:.5rem 2rem;padding-bottom:.75rem;border-bottom:1px solid var(--ph-line)}.ph-title{font-size:1.4rem;letter-spacing:.06em}.ph-times{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin:0}.ph-time dt{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ph-muted)}.ph-time dd{margin:0;font-weight:650;overflow-wrap:anywhere}.ph-time .ph-sub{font-weight:400;font-size:.75rem;color:var(--ph-muted)}.ph-age{font-weight:400}.ph-model{flex-basis:100%;font-size:.78rem;color:var(--ph-muted);overflow-wrap:anywhere}.ph-chip{display:inline-block;padding:0 .4rem;border-radius:4px;border-width:1px}.ph-banner{margin:1rem 0;padding:.7rem 1rem;border-radius:8px;font-weight:650}.ph-status{max-width:50rem;margin:2rem auto;padding:1.5rem 1.75rem;border-radius:12px}.ph-status h2{font-size:1.4rem;margin:.25rem 0 .75rem}.ph-status p+p{margin-top:.6rem}.ph-status-word{font-size:1.6rem}.ph-status-plain{background:var(--ph-card);border:1px solid var(--ph-line)}.ph-signin{display:inline-block;padding:.6rem 1.2rem;border:2px solid var(--ph-link);border-radius:6px;font-weight:700;text-decoration:none}.ph-section-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.25rem;margin:1.5rem 0 .5rem}.ph-section-head h2{font-size:1rem;letter-spacing:.08em}.ph-toggle{font-size:.85rem;cursor:pointer}.ph-counts{margin:.9rem 0 .6rem}.ph-counts-line{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem 0;font-size:1.15rem}.ph-counts-second{margin-top:.4rem!important;font-size:.95rem}.ph-count-item{display:inline-flex;align-items:center}.ph-sep{padding:0 .45rem;color:var(--ph-muted);font-weight:800}.ph-count{position:relative;display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:0 .4rem;padding:.3rem .75rem;border-radius:8px;font:inherit;font-weight:700;color:inherit;text-align:left;cursor:pointer}.ph-count-down{background:var(--ph-card);border:2px dashed var(--ph-bad)}.ph-count-down .ph-count-label:before{content:"□";margin-right:.3em}.ph-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ph-count-status{margin-top:.4rem!important;padding:.1rem .5rem;border-left:4px solid var(--ph-link);color:var(--ph-link);font-size:.85rem;font-weight:700;overflow-wrap:anywhere}.ph-count-status:empty{margin-top:0!important;padding:0;border:0}.ph-flash{outline:4px solid var(--ph-link);outline-offset:3px;box-shadow:0 0 0 7px #0a58a840}.ph-recon{margin-top:.5rem;padding:.35rem .6rem;border:1px solid var(--ph-line);border-radius:8px;background:var(--ph-card);font-size:.82rem;font-variant-numeric:tabular-nums}.ph-recon-line+.ph-recon-line{margin-top:.15rem!important}.ph-recon-contra{color:var(--ph-bad-text)}.ph-count-n{font-size:1.45rem;font-weight:900;font-variant-numeric:tabular-nums}.ph-counts-second .ph-count-n{font-size:1.15rem}.ph-count-suffix{font-size:.8rem;font-weight:600}.ph-count-problem{background:var(--ph-bad);color:var(--ph-bad-fg);border:2px solid var(--ph-bad)}.ph-count-problem .ph-count-label:before{content:"■";margin-right:.3em}.ph-count-unknown{background-color:var(--ph-unk-a);background-image:repeating-linear-gradient(135deg,var(--ph-unk-a) 0 8px,var(--ph-unk-b) 8px 12px);color:var(--ph-unk-fg);border:2px solid var(--ph-unk-line)}.ph-count-unknown .ph-count-label:before{content:"?";margin-right:.3em;font-weight:900}.ph-count-recovered{background:var(--ph-info-soft);border:2px dotted var(--ph-info)}.ph-count-recovered .ph-count-label:before{content:"↻";margin-right:.3em}.ph-count-zero{background:var(--ph-card);border:2px solid var(--ph-line)}.ph-count-house{background:var(--ph-card);border:2px dashed var(--ph-na)}.ph-count-pop{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:15;width:max-content;max-width:min(30rem,85vw);padding:.45rem .6rem;border:1px solid var(--ph-line);border-radius:6px;background:var(--ph-card);color:var(--ph-fg);font-size:.8rem;font-weight:500;box-shadow:0 4px 14px #0000002e}.ph-count:focus-visible .ph-count-pop{display:block}.ph-count:focus-visible{outline:3px solid var(--ph-link);outline-offset:2px}.ph-headline{margin:.4rem 0 .8rem;padding:.75rem 1rem;border-radius:10px}.ph-headline-text{font-size:1.02rem;font-weight:600;overflow-wrap:anywhere}.ph-store{display:grid;grid-template-columns:minmax(0,16rem) minmax(0,1fr);gap:.4rem 1rem;align-items:start;padding:.6rem .9rem;border:2px solid var(--ph-line);border-radius:10px;background:var(--ph-card)}.ph-store-head h2{font-size:.95rem;letter-spacing:.08em}.ph-store-head .ph-hint{display:block;overflow-wrap:anywhere}.ph-store .ph-reason{grid-column:1 / -1}.ph-plane{margin-top:1.25rem}.ph-plane-scroll{overflow-x:auto;overflow-y:hidden;border:1px solid var(--ph-line);border-radius:10px;background:var(--ph-card)}.ph-plane-scroll:focus-visible{outline:3px solid var(--ph-link);outline-offset:2px}.ph-scroll-track{position:relative;height:10px;margin:.3rem 0 0;border:1px solid var(--ph-guide);border-radius:6px;background:var(--ph-quiet);cursor:pointer}.ph-scroll-thumb{position:absolute;top:1px;bottom:1px;min-width:14px;border-radius:4px;background:var(--ph-muted)}.ph-plane-scroll::-webkit-scrollbar{height:12px}.ph-plane-scroll::-webkit-scrollbar-track{background:var(--ph-quiet);border-radius:0 0 10px 10px}.ph-plane-scroll::-webkit-scrollbar-thumb{background:var(--ph-muted);border:2px solid var(--ph-quiet);border-radius:6px}@supports not selector(::-webkit-scrollbar){.ph-plane-scroll{scrollbar-width:auto;scrollbar-color:var(--ph-muted) var(--ph-quiet)}}.ph-scroll-cue{margin:0 0 .3rem!important;padding:.25rem .6rem;border:2px dashed var(--ph-link);border-radius:6px;background:var(--ph-card);color:var(--ph-link);font-size:.8rem;font-weight:700}.ph-grid{position:relative;display:grid;column-gap:0;row-gap:0;padding:0 10px 8px 0}.ph-band-bg{z-index:0;background:var(--ph-band-a)}.ph-band-bg-alt{background:var(--ph-band-b)}.ph-colguide{z-index:0;border-left:1px dashed var(--ph-guide);pointer-events:none}.ph-band-label{z-index:2;position:relative;align-self:stretch;padding:.7rem .6rem;font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--ph-muted);border-right:2px solid var(--ph-line);overflow-wrap:anywhere}.ph-colhead{z-index:2;position:relative;padding:.45rem 14px .3rem;font-size:.8rem;font-weight:800;letter-spacing:.04em}.ph-colhead-text{display:inline-block;padding:.05rem .45rem;border-radius:5px;background:var(--ph-card);border:1px solid var(--ph-line)}.ph-colhead-top .ph-colhead-text{font-size:.86rem;text-transform:uppercase}.ph-seghead{padding-top:.35rem;padding-bottom:1rem}.ph-seghead .ph-colhead-text{border-style:dashed}.ph-continued{font-weight:500;color:var(--ph-muted)}.ph-cell{z-index:2;position:relative;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:flex-start;gap:30px 22px;padding:18px 14px;min-height:2.5rem}.ph-cell[data-fill~=tall]{align-items:stretch;align-content:stretch}.ph-cell[data-fill~=tall]>.ph-asset{display:flex;flex-direction:column}.ph-cell[data-fill~=tall]>.ph-asset>.ph-asset-btn{flex:1 1 auto}.ph-cell[data-fill~=wide]>.ph-asset{flex:1 1 9.75rem}.ph-cell-strip{padding:.4rem 0}.ph-rail{z-index:1;position:relative;min-height:4.4rem;margin:0 14px;padding:.4rem .2rem 0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;align-content:flex-start;gap:.2rem 1rem}.ph-rail-label,.ph-rail-jdbc{position:relative;z-index:3;padding:0 .4rem;border-radius:4px;background:var(--ph-card);font-size:.74rem;font-weight:800;letter-spacing:.03em}.ph-rail-jdbc{color:var(--ph-jdbc);border:1px dashed var(--ph-jdbc)}.ph-rail-line{position:absolute;left:0;right:0;bottom:1.1rem;height:3px;border-radius:2px;background:var(--ph-rail)}.ph-rail-gutter{font-style:italic}.ph-wires{position:absolute;left:0;top:0;z-index:1;pointer-events:none;overflow:visible;width:100%;height:100%;max-width:100%;max-height:100%}.ph-wire{fill:none;stroke:var(--ph-wire);stroke-width:1.6;stroke-linejoin:round}.ph-wire-jdbc{stroke:var(--ph-jdbc);stroke-width:2;stroke-dasharray:6 4}.ph-wire-blocked{stroke-dasharray:2 3}.ph-arrow-flow{fill:var(--ph-wire)}.ph-arrow-jdbc{fill:var(--ph-jdbc)}.ph-wire-label{fill:var(--ph-jdbc);font-size:10px;font-weight:800;letter-spacing:.04em;paint-order:stroke;stroke:var(--ph-card);stroke-width:3px}.ph-wire-legend{display:inline-flex;align-items:center;gap:.3rem}.ph-asset{position:relative;z-index:2;width:9.75rem;border-radius:7px;font-size:.78rem}.ph-asset-btn{display:flex;flex-direction:column;align-items:stretch;gap:.12rem;width:100%;padding:.35rem .5rem .4rem;border:0;border-radius:5px;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.ph-asset-btn:hover{filter:brightness(.96)}.ph-asset-btn:focus-visible,.ph-linkbtn:focus-visible,.ph-close:focus-visible{outline:3px solid var(--ph-link);outline-offset:2px}.ph-asset-btn[aria-expanded=true]{outline:3px solid var(--ph-fg);outline-offset:1px}.ph-asset-top{display:flex;justify-content:space-between;align-items:baseline;gap:.3rem}.ph-asset-type{font-size:.66rem;text-transform:uppercase;letter-spacing:.03em;opacity:.85;overflow-wrap:anywhere}.ph-env{flex:0 0 auto;padding:0 .3rem;border:1px solid currentColor;border-radius:3px;font-size:.6rem;font-weight:800;letter-spacing:.04em;line-height:1.35}.ph-env[data-env=DEV]{border-style:dashed}.ph-env[data-env=GLOBAL]{border-style:dotted}.ph-asset-name{font-weight:800;font-size:.82rem;line-height:1.2;overflow-wrap:anywhere}.ph-asset-state{font-size:.72rem}.ph-asset-line{font-size:.72rem;line-height:1.25;overflow-wrap:anywhere}.ph-asset-summary{opacity:.95}.ph-recorded{display:inline-block;padding:0 .25rem;border:1px dashed currentColor;border-radius:3px;font-size:.62rem;font-weight:700;white-space:nowrap}.ph-recorded-inherited{border:1px solid var(--ph-fg);background:var(--ph-fg);color:var(--ph-card);font-weight:800;letter-spacing:.03em}.ph-recorded-other{border:1px solid var(--ph-unk-line);background:var(--ph-unk-a);color:var(--ph-unk-fg);white-space:normal}.ph-markers{display:flex;flex-wrap:wrap;gap:.2rem .3rem;margin-top:.1rem}.ph-hk-marker,.ph-down-marker{align-self:flex-start;padding:0 .3rem;border:1px dashed currentColor;border-radius:3px;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.ph-asset.ph-k-problem-hk{background-color:var(--ph-card);background-image:repeating-linear-gradient(45deg,var(--ph-card) 0 6px,var(--ph-quiet) 6px 10px);color:var(--ph-fg);border:2px solid var(--ph-bad-text)}.ph-k-problem-hk .ph-word[data-kind=problem]{color:var(--ph-bad-text)}.ph-k-problem-hk .ph-hk-marker{padding:.05rem .4rem;border:2px solid var(--ph-bad-text);background:var(--ph-card);color:var(--ph-bad-text);font-size:.68rem}.ph-asset:not(.ph-k-problem) .ph-lw[data-line-kind=problem]{padding:0 .3rem;border-radius:3px;background:var(--ph-bad);color:var(--ph-bad-fg)}.ph-asset.ph-k-problem-hk .ph-lw[data-line-kind=problem]{color:var(--ph-bad-text)}.ph-retired{opacity:.65;filter:grayscale(1)}.ph-members{padding:0 .5rem .4rem;font-size:.7rem}.ph-members>summary{display:inline-block;padding:0 .3rem;border:1px solid currentColor;border-radius:3px;font-weight:700}.ph-members ul{margin:.25rem 0 0;padding-left:1rem;overflow-wrap:anywhere}.ph-lw{font-weight:700}.ph-lw:before{margin-right:.25em}.ph-lw[data-line-kind=problem]:before{content:"■"}.ph-lw[data-line-kind=unknown]:before{content:"?";font-weight:900}.ph-lw[data-line-kind=recovered]:before{content:"↻"}.ph-lw[data-line-kind=ok]:before{content:"✓"}.ph-lw[data-line-kind=na]:before{content:"○"}.ph-lw[data-line-kind=none]:before{content:"–"}.ph-lw[data-line-kind=none],.ph-lw[data-line-kind=na]{font-weight:600}.ph-unplaced{margin-top:.9rem;padding:.7rem .9rem;border:3px solid var(--ph-bad-text);border-radius:10px;background:var(--ph-card)}.ph-unplaced h3{font-size:.95rem;letter-spacing:.06em;color:var(--ph-bad-text)}.ph-unplaceable{display:flex;flex-direction:column;gap:.2rem;max-width:14rem}.ph-unplaced-item>.ph-note{margin:0 0 .2rem!important;font-weight:700}.ph-registry{margin:1.5rem 0 0;padding:.7rem 1rem;border:1px solid var(--ph-line);border-radius:10px;background:var(--ph-card)}.ph-registry>summary{font-size:.95rem}.ph-reg-title{font-weight:800;letter-spacing:.08em}.ph-retired-toggle{margin-top:1rem!important}.ph-table-wrap{overflow-x:auto}.ph-table{width:100%;border-collapse:collapse;font-size:.82rem}.ph-table th,.ph-table td{padding:.3rem .5rem;border-bottom:1px solid var(--ph-line);text-align:left;vertical-align:top}.ph-drawer{position:fixed;top:0;right:0;bottom:0;z-index:20;width:min(36rem,100vw);overflow-y:auto;padding:0 1rem 2rem;background:var(--ph-bg);border-left:2px solid var(--ph-line);box-shadow:-8px 0 24px #0000002e}.ph-drawer-bar{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;margin:0 -1rem .6rem;padding:.55rem 1rem;background:var(--ph-bg);border-bottom:1px solid var(--ph-line)}.ph-drawer-title{font-size:.8rem;font-weight:800;letter-spacing:.08em}.ph-close{padding:.25rem .7rem;border:2px solid var(--ph-line);border-radius:6px;background:var(--ph-card);color:var(--ph-fg);font:inherit;font-weight:700;cursor:pointer}.ph-panel-head{display:flex;flex-direction:column;gap:.1rem;margin-bottom:.45rem}.ph-panel-head h3{font-size:1.2rem}.ph-panel-head h3:focus{outline:none}.ph-panel-state{padding:.45rem .7rem;border-radius:8px}.ph-panel-sub{margin:.8rem 0 .2rem!important;font-size:.9rem}.ph-dtable{width:100%;margin-top:.5rem;border-collapse:collapse;font-size:.82rem;background:var(--ph-card)}.ph-dtable th,.ph-dtable td{padding:.35rem .5rem;border-bottom:1px solid var(--ph-line);text-align:left;vertical-align:top;overflow-wrap:anywhere}.ph-dtable th{width:8.5rem;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--ph-muted)}.ph-cites{display:block;font-size:.74rem;color:var(--ph-muted)}.ph-tag{display:inline-block;padding:0 .3rem;border:1px solid var(--ph-line);border-radius:3px;font-size:.66rem;font-weight:800;letter-spacing:.04em}.ph-plain-list{margin:.2rem 0 0;padding-left:1.1rem}.ph-plain-list li+li{margin-top:.2rem}.ph-cols{columns:14rem auto;margin:0;padding-left:1.2rem;font-size:.8rem}.ph-checks{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:.45rem;margin-top:.45rem}.ph-panel .ph-checks{grid-template-columns:minmax(0,1fr)}.ph-check{padding:.45rem .6rem;border-radius:6px;font-size:.82rem}.ph-check-quiet{padding:.35rem .55rem}.ph-check-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.2rem .45rem}.ph-check-name{overflow-wrap:anywhere}.ph-check-time{margin-top:.2rem!important;font-size:.74rem;opacity:.9}.ph-from{font-size:.72rem;opacity:.8}.ph-tile-details{margin-top:.25rem;font-size:.76rem}.ph-tile-details>summary{display:inline-block;padding:0 .35rem;border:1px solid currentColor;border-radius:4px;font-weight:700;opacity:.85}.ph-reason{margin-top:.25rem!important;font-weight:600;overflow-wrap:anywhere}.ph-diag{margin-top:.25rem!important;font-size:.8rem;overflow-wrap:anywhere}.ph-contra{margin-top:.3rem!important;padding-left:.4rem;border-left:4px double currentColor;font-weight:700;overflow-wrap:anywhere}.ph-facts{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.1rem .5rem;margin:.35rem 0 0;font-size:.76rem}.ph-facts dt{opacity:.75}.ph-facts dd{margin:0;overflow-wrap:anywhere}.ph-note{margin-top:.3rem!important;font-size:.8rem;overflow-wrap:anywhere}.ph-legacy{display:inline-block;margin-top:.3rem;padding:.05rem .4rem;border:1px solid currentColor;border-radius:4px;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.ph-value{font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.95em;overflow-wrap:anywhere}.ph-role{display:inline-block;margin-top:.15rem;padding:0 .35rem;border:1px solid currentColor;border-radius:4px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}@media (max-width: 760px){.ph{padding:.75rem .75rem 2rem}.ph-store{grid-template-columns:minmax(0,1fr)}.ph-counts-line{font-size:1rem}.ph-count{padding:.25rem .5rem}.ph-count-n{font-size:1.2rem}.ph-sep{padding:0 .2rem}.ph-drawer{width:100vw;border-left:0}.ph-dtable th{width:6.5rem}}.pbi-embed{width:100%;height:100%}.pbi-embed iframe{border:none;width:100%;height:100%}
