@font-face{font-family:Plex Sans;src:url(fonts/IBMPlexSans-Regular.woff2) format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Plex Sans;src:url(fonts/IBMPlexSans-Medium.woff2) format('woff2');font-weight:500;font-display:swap}
:root{color-scheme:dark;font-family:Plex Sans,Arial,sans-serif;--canvas:#04121d;--sidebar:#061722;--text:#e2edf0;--nav:#c9dbe4;--icon:#91b5c4;--muted:#93aab8;--line:rgba(134,168,185,.16);--accent:#78c8d8;--selection:rgba(120,200,216,.055);--hover:rgba(120,200,216,.09);--grid-major:rgba(92,132,150,.11);--grid-minor:rgba(54,91,112,.12);background:var(--canvas);color:var(--text)}
:root[data-theme="light"]{color-scheme:light;--canvas:#e9edef;--sidebar:#e2e8eb;--text:#142c3a;--nav:#294553;--icon:#496b7c;--muted:#526977;--line:rgba(36,65,82,.18);--accent:#236a7d;--selection:rgba(36,83,104,.06);--hover:rgba(36,83,104,.1);--grid-major:rgba(65,94,110,.13);--grid-minor:rgba(65,94,110,.065)}
*{box-sizing:border-box}
body{margin:0}
.workspace{display:grid;grid-template-columns:clamp(280px,28vw,400px) minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}
.sidebar{display:flex;flex-direction:column;min-height:0;overflow-y:auto;background:var(--sidebar);border-right:1px solid var(--line);padding:32px 24px 20px}
.brand{padding:0 8px 30px}
.brand-owner{font-size:10px;letter-spacing:.24em;color:var(--muted);font-weight:500}
.brand-image{position:relative;aspect-ratio:2.52;overflow:hidden;margin:16px -8px 14px;line-height:0}
.brand-image .brand-logo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:block;width:132%;max-width:none;height:auto}
.brand-ink{fill:#f7faf9}
[data-theme="light"] .brand-ink{fill:#04121d}
.beta{display:inline-block;color:var(--muted);font-size:11px;letter-spacing:.09em}
nav{border-top:1px solid var(--line);padding-top:22px}
summary,.nav-link{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:5px;font-size:14px;font-weight:400;cursor:pointer;color:var(--nav);text-decoration:none;transition:background .15s}
summary{list-style:none;color:var(--text);background:var(--selection)}
summary::-webkit-details-marker{display:none}
summary:hover,.nav-link:hover{background:var(--hover)}
nav svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;color:var(--icon)}
nav .chevron,nav .external{margin-left:auto;width:14px;height:14px}
.browse[open] .chevron{transform:rotate(90deg)}
.browse-placeholder{font-size:12px;line-height:1.7;color:var(--muted);margin:14px 16px 24px 42px;max-width:180px}
.nav-link{margin-top:8px}
.sidebar-footer{margin-top:auto;padding:40px 8px 0;color:var(--muted);font-size:10px;line-height:1.6;letter-spacing:.035em}
.canvas{position:relative;min-width:0;min-height:0;background-color:var(--canvas);background-image:linear-gradient(var(--grid-major) 1px,transparent 1px),linear-gradient(90deg,var(--grid-major) 1px,transparent 1px),linear-gradient(var(--grid-minor) 1px,transparent 1px),linear-gradient(90deg,var(--grid-minor) 1px,transparent 1px);background-size:100px 100px,100px 100px,20px 20px,20px 20px;background-position:-1px -1px}
.canvas-heading{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:14px;padding:23px 30px;background:linear-gradient(var(--canvas) 30%,transparent);pointer-events:none}
h1{margin:0;font-size:14px;font-weight:500;letter-spacing:.04em}
.canvas-heading span{font-size:11px;color:var(--muted)}
:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.skip-link{position:fixed;top:8px;left:8px;z-index:10;padding:12px;background:#e2edf0;color:#04121d;transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
@media(max-width:700px){.workspace{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding:24px 12px 16px}.brand{padding-bottom:24px}.brand-owner{font-size:9px}.brand-image{margin-top:12px}summary,.nav-link{font-size:12px;gap:9px;padding:12px 8px}.browse-placeholder{margin-left:35px;font-size:11px}.sidebar-footer{font-size:9px}.canvas-heading{padding:22px 16px;display:block}.canvas-heading span{display:block;margin-top:6px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.theme-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;margin:0 0 22px;padding:10px 12px;font:400 13px Plex Sans,Arial,sans-serif;color:var(--text);background:var(--selection);border:1px solid var(--line);border-radius:5px;cursor:pointer;text-align:left}
.theme-toggle:hover{background:var(--hover)}
.theme-toggle svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.theme-toggle .theme-moon{display:none}
[data-theme="light"] .theme-toggle .theme-moon{display:block}
[data-theme="light"] .theme-toggle .theme-sun{display:none}

[hidden]{display:none!important}
.whitepaper-view{min-width:0;min-height:0;height:100%;background:var(--canvas)}
.whitepaper-view iframe{display:block;border:0;width:100%;height:100%}
.nav-link[aria-current="page"]{background:var(--hover);color:var(--text);box-shadow:inset 2px 0 var(--accent)}
.atlas-return{display:block;margin:0 12px 18px;font-size:12px;color:var(--accent);text-underline-offset:3px}
.atlas-return{display:none}
.reading .atlas-return{display:block}

/* The document index stays with the portal navigation, visible from the cover. */
.whitepaper-index{display:none}
.reading .whitepaper-index{display:block;margin-top:12px}
.whitepaper-index summary{font-size:12px;padding:10px 12px;background:transparent;color:var(--muted);border-top:1px solid var(--line);border-radius:0}
.whitepaper-index summary::after{content:'+';margin-left:auto}
.whitepaper-index[open] summary::after{content:'−'}
.whitepaper-index-links{max-height:calc(100dvh - 490px);min-height:140px;overflow-y:auto;scrollbar-width:thin;padding:0 8px 8px 12px}
.whitepaper-index-links a{display:block;padding:7px 2px;font-size:12px;line-height:1.45;color:var(--nav);text-decoration:none;border-bottom:1px solid var(--line)}
.whitepaper-index-links a:hover,.whitepaper-index-links a:focus-visible{color:var(--accent);background:var(--selection)}
.reading .browse{display:none}
.reading .sidebar-footer{padding-top:20px}

.sample-link{display:block;margin:12px 10px 20px 38px;padding:10px 0;color:var(--accent);font:12px Plex Mono,monospace;text-decoration:none}.sample-link span{display:block;margin-top:6px;font:11px Plex Sans,Arial,sans-serif;color:var(--muted)}.sample-link:hover{text-decoration:underline;text-underline-offset:4px}

.catalog-group{margin:12px 8px 0 28px}
.catalog-group>summary{padding:10px 12px;background:transparent;font-size:14px}
.browse[open] .catalog-group:not([open])>summary .chevron{transform:none}
.catalog-group[open]>summary .chevron{transform:rotate(90deg)}
.system-links{margin:4px 0 8px 12px;padding-left:12px;border-left:1px solid var(--line)}
.system-links a{display:block;padding:10px 12px;font-size:13px;color:var(--nav);text-decoration:none;border-radius:5px}
.system-links a:hover{background:var(--selection);color:var(--text)}
.system-links a[aria-current="page"]{background:var(--hover);color:var(--accent);box-shadow:inset 2px 0 var(--accent)}
.catalog-placeholder{padding:30px;max-width:650px}
.catalog-path{font-size:12px;color:var(--muted);margin:0 0 12px}
.catalog-placeholder h1{font-size:22px;font-weight:500;letter-spacing:0}
#catalog-message{font-size:14px;color:var(--muted);line-height:1.6}
@media(max-width:700px){.catalog-group{margin-left:5px;margin-right:0}.system-links{margin-left:8px;padding-left:8px}.system-links a{font-size:12px;padding:10px 8px}.catalog-placeholder{padding:24px 16px}.catalog-placeholder h1{font-size:18px}}

/* Diagram theme control lives in the style toolbar. Keep a fallback for reading. */
.diagram-active .theme-fallback{display:none}

/* Publication states describe Atlas views, never the completeness of the KG. */
.atlas-section-link{display:flex;align-items:center;gap:10px;margin:2px 8px 2px 28px;padding:10px 12px;color:var(--nav);text-decoration:none;font-size:14px;border-radius:5px;line-height:1.4}
.atlas-section-link>span:first-child{flex:1}
.atlas-section-link:hover,.atlas-section-link[aria-current="page"]{background:var(--hover);color:var(--text)}
.publication-icon{flex:none;font-size:14px;color:var(--muted);cursor:help;line-height:1}
.publication-icon.available{color:var(--accent)}
.publication-legend{margin:12px 12px 14px 38px;color:var(--muted);font-size:11px;line-height:1.65}
.publication-legend>summary{padding:5px 0;font-size:11px;background:none;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.catalog-publication-status{color:var(--accent);font-size:13px}
.catalog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
.catalog-actions button,.engagement-actions button{font:inherit;color:var(--nav);background:transparent;border:1px solid var(--line);border-radius:5px;padding:10px 12px;cursor:pointer;text-align:left}
.catalog-actions button:hover,.engagement-actions button:hover{background:var(--hover);color:var(--text)}
.engagement-actions{display:grid;gap:8px;margin-bottom:12px;font-size:13px;letter-spacing:0}
.engagement-actions button{display:flex;gap:10px;align-items:center;min-height:40px}
.engagement-actions button span{color:var(--icon)}
.sidebar{overflow:hidden}
.sidebar>.brand,.sidebar>.sidebar-footer{flex-shrink:0}
.sidebar>nav{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin}
.sidebar>.sidebar-footer{padding-top:16px}
.contact-dialog{width:min(600px,calc(100vw - 28px));max-height:calc(100dvh - 32px);overflow-y:auto;background:var(--sidebar);color:var(--text);border:1px solid var(--line);border-radius:10px;padding:28px;box-shadow:0 20px 80px #0005;font-size:14px;line-height:1.6}
.contact-dialog::backdrop{background:#0008}
.contact-dialog h2{font-size:20px;font-weight:500;padding-right:24px;margin:0 0 12px;line-height:1.3}
.contact-dialog p{color:var(--muted)}
.contact-close{position:absolute;top:12px;right:12px;font-size:24px;color:var(--nav);border:0;background:none;cursor:pointer;padding:0 8px}
.contact-dialog form>label:not(.contact-check),.contact-dialog section>label{display:block;margin-top:14px;margin-bottom:6px;color:var(--nav)}
.contact-dialog select,.contact-dialog textarea{display:block;width:100%;border:1px solid var(--line);background:var(--canvas);color:var(--text);border-radius:5px;padding:10px;font:inherit;line-height:1.5;resize:vertical}
.contact-dialog textarea[readonly]{font-size:12px}
.contact-check{display:flex;align-items:flex-start;gap:10px;margin:18px 0 10px;cursor:pointer}
.contact-check input{margin-top:5px;accent-color:var(--accent);flex:none}
.contact-help{font-size:12px;line-height:1.6}
.contact-dialog button:not(.contact-close),.contact-buttons>a{display:inline-block;color:var(--text);background:var(--selection);border:1px solid var(--line);border-radius:5px;padding:9px 14px;font:inherit;text-decoration:none;cursor:pointer}
.contact-dialog .contact-primary{border-color:var(--accent)!important}
.contact-dialog a{color:var(--accent);text-underline-offset:3px}
.contact-buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.contact-dialog section{border-top:1px solid var(--line);margin-top:22px;padding-top:12px}
@media(max-width:700px){.atlas-section-link{margin-left:5px;margin-right:0;font-size:12px;padding:10px 8px}.publication-legend{margin-left:13px}.engagement-actions{font-size:12px}.contact-dialog{padding:22px 18px}.reading .sidebar>.sidebar-footer{height:auto;padding:10px 0 0}.reading .engagement-actions{grid-template-columns:1fr 1fr;margin-bottom:0}.reading .sidebar>nav{flex:none;overflow:visible}}

/* Visible wording distinguishes an expanding section from an unopened catalog. */
.system-links a[data-publication-status]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.publication-badge{font-size:10px;line-height:1.5;font-weight:400;letter-spacing:.02em;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:1px 5px;white-space:nowrap}

/* Reading documents share the portal shell; their indexes stay separate. */
.terms-reading .whitepaper-index{display:none}
.atlas-scope-link{display:block;color:var(--muted);font-size:11px;line-height:1.5;letter-spacing:0;margin:4px 0 10px;text-underline-offset:3px}

.atlas-language-control { display:flex; align-items:center; justify-content:space-between; gap:8px; width:100%; margin-top:10px; font-size:11px; color:var(--muted); }
.atlas-language-control select { font:inherit; color:inherit; background:var(--panel, transparent); border:1px solid currentColor; border-radius:4px; padding:3px 6px; }
