/* ig-artifact.css: the IG's one stylesheet, on every IG page — the artefact pages (gen-ig-pages), the artifacts and toc pages, the narrative layout (build-ig-site) and the pages publisher-pages gives the IG's bar (ig-search.ts withIgBar). Linked, never inlined.
   The page's width, bar position and scrolling are NOT here: they are the shared page layout's (cat-harness-tools page-layout.css, linked first), so every page has one width and one bar. This file is the IG's look on top of it. */
:root{--iga-fg:#1f2328;--iga-bg:#fff;--iga-muted:#59636e;--iga-line:#d1d9e0;--iga-soft:#f6f8fa;--iga-link:#0b5cad;--iga-held:#1a7f37;--iga-ref:#6e7781;--iga-err:#b42318}
@media (prefers-color-scheme:dark){:root:not([data-fa-scheme="light"]){--iga-fg:#e6edf3;--iga-bg:#0d1117;--iga-muted:#9198a1;--iga-line:#3d444d;--iga-soft:#151b23;--iga-link:#6cb6ff;--iga-held:#3fb950;--iga-ref:#9198a1;--iga-err:#ff7b72}}
:root[data-fa-scheme="dark"]{--iga-fg:#e6edf3;--iga-bg:#0d1117;--iga-muted:#9198a1;--iga-line:#3d444d;--iga-soft:#151b23;--iga-link:#6cb6ff;--iga-held:#3fb950;--iga-ref:#9198a1;--iga-err:#ff7b72}
/* The body's colours, font and margin, and the content's links, are the page layout's (body:has(.fa-page-main)), so a page this file is linked to for the bar alone (an OpenAPI page) keeps its own. */
/* The thin pages' own header, where publisher-pages has not given them the IG's bar: the bar's look. */
.iga-top{background:var(--ig-topbar-bg,#1c4b7c);color:#fff}
.iga-top a{color:#fff;text-decoration:none}
.iga-top .iga-home{font-weight:600}
.ig-search-top{background:var(--ig-topbar-bg,#1c4b7c);color:#fff}
.ig-search-top>.ig-search-home{color:#fff;text-decoration:none;font-weight:600}
.iga h1{margin:.5rem 0 .25rem}
.iga-key code,.iga code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;overflow-wrap:anywhere}
.iga-sub{color:var(--iga-muted);margin:.25rem 0}
.iga-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.5rem;margin:1rem 0}
.iga-stat{border:1px solid var(--iga-line);border-radius:6px;padding:.5rem .75rem;background:var(--iga-soft)}
.iga-stat b{display:block;font-size:1rem;overflow-wrap:break-word}
.iga-stat span{color:var(--iga-muted);font-size:.8rem}
.iga-scroll{overflow-x:auto}
.iga-table{display:table;border-collapse:collapse;width:100%;font-size:.92rem}
.iga-table th,.iga-table td{border:1px solid var(--iga-line);padding:.35rem .5rem;text-align:left;vertical-align:top;overflow-wrap:anywhere}
.iga-identity th{width:11rem;background:var(--iga-soft);font-weight:600}
.iga-content thead th{background:var(--iga-soft)}
.iga-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}
.iga-tag{display:inline-block;border-radius:1em;padding:0 .5em;font-size:.8rem;color:#fff;background:var(--iga-ref)}
.iga-held{background:var(--iga-held)}
.iga-state{color:var(--iga-muted)}
.iga-error,.ast-error{color:var(--iga-err)}
.ast-narrative{border:1px solid var(--iga-line);border-radius:6px;padding:.5rem 1rem;overflow-x:auto}
.ast-narrative table{border-collapse:collapse}
.ast-narrative td,.ast-narrative th{border:1px solid var(--iga-line);padding:.2rem .4rem}
.ast-json{background:var(--iga-soft);border:1px solid var(--iga-line);border-radius:6px;padding:.75rem;overflow:auto;max-height:40rem;font-size:.8rem}
#ig-footer{margin:0;padding:1rem 1.5rem;border-top:1px solid var(--iga-line);color:var(--iga-muted);font-size:.85rem;box-sizing:border-box}
#ig-footer p{margin:.25rem 0}
@media (max-width:40rem){.iga-identity,.iga-identity tbody,.iga-identity tr,.iga-identity th,.iga-identity td{display:block;width:auto}.iga-identity th{border-bottom:0}.iga-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}#ig-footer{padding:1rem .75rem}}
/* The IG's list pages (artifacts.html, toc.html). */
.igi-count{color:var(--iga-muted)}
.igi-jump{margin:.5rem 0 1rem;line-height:1.9}
.igi-filter{width:100%;max-width:30rem;box-sizing:border-box;padding:.4rem .6rem;margin:0 0 .5rem;font:inherit;color:var(--iga-fg);background:var(--iga-bg);border:1px solid var(--iga-line);border-radius:6px}
.igi-table td:first-child{width:35%}
.igi-table thead th{white-space:nowrap;overflow-wrap:normal}
.igi-key{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:var(--iga-muted);overflow-wrap:anywhere}
.igi-table .iga-desc{margin:0}
.igi-guide{border:1px solid var(--iga-line);border-radius:6px;background:var(--iga-soft);padding:.25rem 1rem .75rem;margin:1rem 0}
.igi-guide h2{margin-top:.5rem}
.igi-guide p{margin:.35rem 0}
.igi-sub h3{color:var(--iga-fg)}
.igi-profile,.igi-code,.igi-type{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
.igi-toc,.igi-toc ul,.igi-outline,.igi-outline ul{padding-left:1.25rem}
.igi-toc li,.igi-outline li{margin:.15rem 0;overflow-wrap:anywhere}
/* The IG's narrative pages: their prose is the page layout's (.fa-page-main); the list pages' first column gives way on a phone. */
@media (max-width:40rem){.igi-table td:first-child{width:auto}}
/* An artefact's tab views (owner, 2026-10-14: "3. Render them too"): the tab bar, and the definitions, mappings and examples views. */
.iga-tabs{display:flex;flex-wrap:wrap;gap:.25rem;margin:.75rem 0 0;border-bottom:1px solid var(--iga-line)}
.iga-tabs a{padding:.35rem .75rem;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;text-decoration:none}
.iga-tabs a[aria-current="page"]{border-color:var(--iga-line);background:var(--iga-soft);color:var(--iga-fg);font-weight:600}
.iga h1 .iga-view{color:var(--iga-muted);font-weight:400}
.iga-element h3{overflow-wrap:anywhere}
.iga-element .iga-identity th{width:9.5rem}
.iga-only{display:block;margin:.5rem 0}
.iga-constraints{margin:0;padding-left:1.1rem}
/* The IG's top bar (build-ig-site.ts IG_TOPBAR_CSS, kept identical by its test): the title on its own line, the menu as dropdowns below it. */
.ig-topbar{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;padding:.5rem 1.5rem;background:var(--ig-topbar-bg,#1c4b7c);color:#fff;font-size:.95rem}
.ig-topbar a{color:#fff;text-decoration:none}
.ig-topbar-home{flex:0 0 100%;font-weight:600}
.ig-topbar-group{position:relative}
.ig-topbar-group summary{cursor:pointer;list-style:none}
.ig-topbar-group summary::after{content:" \25BE"}
.ig-topbar-group ul{position:absolute;z-index:20;margin:.25rem 0 0;padding:.25rem 0;min-width:16rem;list-style:none;background:#fff;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,.15)}
.ig-topbar-group li a{display:block;padding:.25rem .75rem;color:#1c4b7c}
.ig-topbar-group li a:hover{background:#eef3f8}
.ig-topbar .ig-topbar-group ul > li{margin:0;padding:0}
.ig-topbar .ig-topbar-group ul > li::before{content:none;display:none}
html:not([data-fa-scheme="light"]) .ig-topbar-group ul{background:#2f2e35;border-color:#44434d;box-shadow:0 2px 8px rgba(0,0,0,.5)}
html:not([data-fa-scheme="light"]) .ig-topbar-group li a{color:#cfe0f7}
html:not([data-fa-scheme="light"]) .ig-topbar-group li a:hover{background:#3a3943}
.ig-main{max-width:none;padding:1rem 1.5rem 3rem}
.ig-edit{margin-top:2rem;font-size:.85rem}
.ig-src{font-size:.7em;text-decoration:none;opacity:.45;margin-left:.25em}
.ig-src:hover{opacity:1}
.ig-feedback{font-size:.7em;text-decoration:none;opacity:.55;margin-left:.15em}
.ig-feedback:hover{opacity:1}
/* The IG's search box in the header (ig-search.ts IG_SEARCH_CSS, kept identical by its test). */
.ig-search{position:relative;z-index:1000;margin-left:auto;flex:0 1 18rem;min-width:10rem}
.ig-search-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ig-search-input{width:100%;box-sizing:border-box;padding:.3rem .6rem;font:inherit;font-size:.9rem;color:#1f2328;background:#fff;border:1px solid #c8d1dc;border-radius:4px}
.ig-search-results{position:absolute;right:0;z-index:30;width:min(32rem,90vw);max-height:70vh;overflow:auto;margin:.25rem 0 0;padding:.25rem 0;list-style:none;background:#fff;color:#1f2328;border:1px solid #ccc;box-shadow:0 2px 6px rgba(0,0,0,.15);text-align:left}
.ig-search-results li{margin:0;padding:0}
.ig-search-results li::before{content:none;display:none}
.ig-search-results a{display:block;padding:.3rem .75rem;color:#0b5cad;text-decoration:none}
.ig-search-results a:hover,.ig-search-results a[aria-selected="true"]{background:#eef3f8}
.ig-search-results small{display:block;color:#59636e;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ig-search-kind{display:inline-block;margin-right:.4rem;padding:0 .4em;border-radius:1em;font-size:.72rem;color:#fff;background:#6e7781}
.ig-search-none{padding:.3rem .75rem;color:#59636e}
html:not([data-fa-scheme="light"]) .ig-search-results{background:#2f2e35;color:#e6edf3;border-color:#44434d;box-shadow:0 2px 8px rgba(0,0,0,.5)}
html:not([data-fa-scheme="light"]) .ig-search-results a{color:#cfe0f7}
html:not([data-fa-scheme="light"]) .ig-search-results a:hover,html:not([data-fa-scheme="light"]) .ig-search-results a[aria-selected="true"]{background:#3a3943}
html:not([data-fa-scheme="light"]) .ig-search-results small,html:not([data-fa-scheme="light"]) .ig-search-none{color:#9198a1}
