:root {
  color-scheme: light dark;
  --font-sans: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-serif: ui-serif, "New York", Georgia, serif;
  --font-mono: ui-monospace, "SFMono-Regular", "SF Mono", Menlo, Monaco, Consolas, monospace;
  --font-family: var(--font-sans);
  --base-font-size: 16px;
  --content-line-height: 1.2;
  --vertical-gap: 2px;
  --outline-indent: 32px;
  --corner-radius: 6px;
  --header-path-gap: 1.25rem;
  --header-action-size: 2.6rem;
  --header-hover-radius: 0.4rem;
  --cell-symbol-inset: calc(0.5rem - 1px);
  --cell-symbol-width: 1.6rem;
  --disclosure-hit-size: 1.35rem;
  --cell-symbol-text-gap: 1px;
  --cell-text-count-gap: calc(0.65rem - 3px);
  --normal-font-weight: 400;
  --bold-font-weight: 600;
  --normal-text-light: #202020;
  --normal-text-dark: #e6e6e6;
  --light-text-light: #888888;
  --light-text-dark: #b6b6b6;
  --vibrant-light: #316ccf;
  --vibrant-dark: #80adff;
  --vibrant-on-light: #ffffff;
  --vibrant-on-dark: #111111;
  --delete-light: #b42318;
  --delete-dark: #ff9188;
  --active-field-light: #efefef;
  --active-field-dark: #282828;
  --highlight-light: #ffd54f4d;
  --highlight-dark: #ffd54f59;
  --page-background: #ffffff;
  --canvas-background: #f2f2f2;
  --cell-background: #ffffff;
  --cell-detail-background: color-mix(in srgb, var(--canvas-background) 55%, var(--cell-background));
  --normal-text-color: var(--normal-text-light);
  --light-text-color: var(--light-text-light);
  --vibrant-color: var(--vibrant-light);
  --selection-text-color: var(--vibrant-on-light);
  --delete-color: var(--delete-light);
  --active-field-color: var(--active-field-light);
  --hover-background: var(--active-field-color);
  --canvas-hover-background: color-mix(in srgb, var(--hover-background) 90%, #000000);
  --highlight-color: var(--highlight-light);
  --page-text: var(--normal-text-color);
  --page-muted: var(--light-text-color);
  --page-surface: var(--active-field-color);
  --page-surface-strong: color-mix(in srgb, var(--normal-text-color) 10%, var(--active-field-color));
  --page-border: color-mix(in srgb, var(--light-text-color) 34%, transparent);
  --cell-border: color-mix(in srgb, var(--normal-text-color) 14%, transparent);
  --cell-radius: max(0px, calc(var(--corner-radius) * 2 - 2px));
  --header-control-radius: calc(var(--cell-radius) * 0.8);
  --cell-shadow: 0 0.0625rem 0.2rem color-mix(in srgb, var(--normal-text-color) 6%, transparent);
  --accent: var(--vibrant-color);
  --accent-soft: color-mix(in srgb, var(--vibrant-color) 18%, var(--page-background));
  --accent-on: var(--selection-text-color);
  --border: var(--page-border);
  --surface: var(--page-surface);
  --warning: var(--vibrant-color);
  --danger: var(--delete-color);
  --syntax-background: var(--page-background);
  --syntax-plain: var(--normal-text-color);
  --syntax-command: var(--normal-text-color);
  --syntax-subcommand: var(--normal-text-color);
  --syntax-domain: var(--normal-text-color);
  --syntax-key: var(--normal-text-color);
  --syntax-argument: var(--normal-text-color);
  --syntax-option: var(--active-field-color);
  --syntax-value: var(--active-field-color);
  --syntax-manual: var(--normal-text-color);
  --syntax-section: var(--active-field-color);
  --syntax-paragraph: var(--normal-text-color);
  --syntax-invocation: var(--light-text-color);
  --syntax-quoted: var(--active-field-color);
  --syntax-number: var(--light-text-color);
  --syntax-operator: var(--light-text-color);
  --syntax-comment: var(--light-text-color);
  --syntax-on-fill: var(--normal-text-color);
  font-family: var(--font-family);
  line-height: var(--content-line-height);
}

html[data-font="serif"] { --font-family: var(--font-serif); }
html[data-font="mono"] { --font-family: var(--font-mono); }
html[data-font-size="16"] { --base-font-size: 16px; }
html[data-font-size="18"] { --base-font-size: 18px; }
html[data-font-size="20"] { --base-font-size: 20px; }
html[data-font-size="22"] { --base-font-size: 22px; }
html[data-font-size="24"] { --base-font-size: 24px; }
html[data-normal-weight="ultralight"] { --normal-font-weight: 100; }
html[data-normal-weight="light"] { --normal-font-weight: 300; }
html[data-normal-weight="regular"] { --normal-font-weight: 400; }
html[data-normal-weight="medium"] { --normal-font-weight: 500; }
html[data-bold-weight="medium"] { --bold-font-weight: 500; }
html[data-bold-weight="semibold"] { --bold-font-weight: 600; }
html[data-bold-weight="bold"] { --bold-font-weight: 700; }
html[data-bold-weight="heavy"] { --bold-font-weight: 800; }
html[data-text-color="ink-1"] { --normal-text-light: #111111; --normal-text-dark: #f6f6f6; }
html[data-text-color="ink-2"] { --normal-text-light: #181818; --normal-text-dark: #eeeeee; }
html[data-text-color="ink-3"] { --normal-text-light: #202020; --normal-text-dark: #e6e6e6; }
html[data-text-color="ink-4"] { --normal-text-light: #292929; --normal-text-dark: #dddddd; }
html[data-text-color="ink-5"] { --normal-text-light: #333333; --normal-text-dark: #d4d4d4; }
html[data-text-color="ink-6"] { --normal-text-light: #3d3d3d; --normal-text-dark: #cccccc; }
html[data-text-color="ink-7"] { --normal-text-light: #474747; --normal-text-dark: #c4c4c4; }
html[data-text-color="ink-8"] { --normal-text-light: #515151; --normal-text-dark: #bcbcbc; }
html[data-light-text-color="gray-1"] { --light-text-light: #6f6f6f; --light-text-dark: #a0a0a0; }
html[data-light-text-color="gray-2"] { --light-text-light: #7c7c7c; --light-text-dark: #aaaaaa; }
html[data-light-text-color="gray-3"] { --light-text-light: #888888; --light-text-dark: #b6b6b6; }
html[data-light-text-color="gray-4"] { --light-text-light: #949494; --light-text-dark: #c2c2c2; }
html[data-light-text-color="gray-5"] { --light-text-light: #a0a0a0; --light-text-dark: #cecece; }
html[data-light-text-color="gray-6"] { --light-text-light: #acacac; --light-text-dark: #dadada; }
html[data-light-text-color="gray-7"] { --light-text-light: #b8b8b8; --light-text-dark: #e6e6e6; }
html[data-light-text-color="gray-8"] { --light-text-light: #c4c4c4; --light-text-dark: #f2f2f2; }
html[data-vibrant-color="blue"] { --vibrant-light: #5b96e6; --vibrant-dark: #8bb9ff; --vibrant-on-light: #111111; --vibrant-on-dark: #111111; }
html[data-vibrant-color="ocean-8"] { --vibrant-light: #316ccf; --vibrant-dark: #80adff; --vibrant-on-light: #ffffff; --vibrant-on-dark: #111111; }
html[data-vibrant-color="cobalt"] { --vibrant-light: #1e4ed8; --vibrant-dark: #7a9cff; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="coral"] { --vibrant-light: #c63f2a; --vibrant-dark: #ff8d7a; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="violet"] { --vibrant-light: #6840d5; --vibrant-dark: #b6a1ff; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="teal"] { --vibrant-light: #007c83; --vibrant-dark: #72d0d2; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="amber"] { --vibrant-light: #a85d00; --vibrant-dark: #ffb55d; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="rose"] { --vibrant-light: #b8326d; --vibrant-dark: #ff91bd; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-vibrant-color="lime"] { --vibrant-light: #4f7600; --vibrant-dark: #b9dc6a; --vibrant-on-light: #ffffff; --vibrant-on-dark: #101010; }
html[data-delete-color="red-1"] { --delete-light: #9f2119; --delete-dark: #ffaaa3; }
html[data-delete-color="red-2"] { --delete-light: #aa2118; --delete-dark: #ff9d95; }
html[data-delete-color="red-3"] { --delete-light: #b42318; --delete-dark: #ff9188; }
html[data-delete-color="red-4"] { --delete-light: #be261b; --delete-dark: #ff867d; }
html[data-delete-color="red-5"] { --delete-light: #c82a1f; --delete-dark: #ff7a71; }
html[data-delete-color="red-6"] { --delete-light: #8f201a; --delete-dark: #ff7068; }
html[data-delete-color="red-7"] { --delete-light: #98231c; --delete-dark: #ff665e; }
html[data-delete-color="red-8"] { --delete-light: #a1261e; --delete-dark: #ff5c55; }
html[data-field-color="field-1"] { --active-field-light: #f8f8f8; --active-field-dark: #202020; }
html[data-field-color="field-2"] { --active-field-light: #f4f4f4; --active-field-dark: #242424; }
html[data-field-color="field-3"] { --active-field-light: #efefef; --active-field-dark: #282828; }
html[data-field-color="field-4"] { --active-field-light: #eaeaea; --active-field-dark: #2c2c2c; }
html[data-field-color="field-5"] { --active-field-light: #ffffff; --active-field-dark: #303030; }
html[data-field-color="field-6"] { --active-field-light: #ececec; --active-field-dark: #343434; }
html[data-field-color="field-7"] { --active-field-light: #e6e6e6; --active-field-dark: #383838; }
html[data-field-color="field-8"] { --active-field-light: #e0e0e0; --active-field-dark: #3c3c3c; }
html[data-theme="light"] { color-scheme: light; }
html[data-theme="dark"] {
  color-scheme: dark;
  --page-background: #151515;
  --canvas-background: #101010;
  --cell-background: #1d1d1d;
  --normal-text-color: var(--normal-text-dark);
  --light-text-color: var(--light-text-dark);
  --vibrant-color: var(--vibrant-dark);
  --selection-text-color: var(--vibrant-on-dark);
  --delete-color: var(--delete-dark);
  --active-field-color: var(--active-field-dark);
  --highlight-color: var(--highlight-dark);
}

@media (prefers-color-scheme: dark) {
  html[data-theme="system"] {
    --page-background: #151515;
    --canvas-background: #101010;
    --cell-background: #1d1d1d;
    --normal-text-color: var(--normal-text-dark);
    --light-text-color: var(--light-text-dark);
    --vibrant-color: var(--vibrant-dark);
    --selection-text-color: var(--vibrant-on-dark);
    --delete-color: var(--delete-dark);
    --active-field-color: var(--active-field-dark);
    --highlight-color: var(--highlight-dark);
  }
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
[hidden] { display: none !important; }
body { max-width: 76rem; margin: 0 auto; padding: clamp(1rem, 3vw, 2rem); background: Canvas; color: CanvasText; }
.site-header, main, footer { max-width: 68rem; }
h1, h2, h3 { line-height: 1.2; text-wrap: balance; }
h1 { margin-block: 0.2em; font-size: clamp(2.25rem, 7vw, 4.75rem); }
h2 { margin-block-start: 0; }
a { color: LinkText; text-underline-offset: 0.16em; }
a:hover { text-decoration-thickness: 0.14em; }
section { margin-block: 2.5rem; padding-block-start: 1rem; border-block-start: 1px solid var(--border); }
article { scroll-margin-top: 1rem; }
.lede { max-width: 62ch; font-size: 1.2rem; }
.eyebrow { font-weight: 750; letter-spacing: 0.06em; text-transform: uppercase; }
.revision-summary { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: 0.75rem; }
.revision-summary div { padding: 0.75rem; border: 1px solid var(--border); border-radius: 0.5rem; }
.version-details { width: fit-content; max-width: 100%; margin: 0; }
.version-details summary { cursor: pointer; }
.version-debugging { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.35rem 0.75rem; margin-block: 0.6rem 0; padding: 0.65rem; border-inline-start: 0.2rem solid var(--border); }
.version-debugging code { overflow-wrap: anywhere; }
.inline-version-details { display: inline-block; vertical-align: top; }
dt { font-weight: 750; }
dd { margin-inline-start: 0; }
.section-nav, .actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.section-nav { padding: 0; list-style: none; }
.outline, .timeline { padding-inline-start: 1.4rem; }
.outline li, .timeline li { margin-block: 0.6rem; }
.limitation { padding: 1rem 1.2rem; border-inline-start: 0.4rem solid var(--warning); background: color-mix(in srgb, var(--warning) 15%, Canvas); }
.status { padding: 0.75rem; border: 1px solid var(--border); border-radius: 0.5rem; }
.confirmation-card { margin-block: 1rem; padding: 1rem; border: 2px solid var(--warning); border-radius: 0.5rem; background: color-mix(in srgb, var(--warning) 10%, Canvas); }
.confirmation-card[hidden] { display: none; }
.confirmation-card h3 { margin-top: 0; }
.status[data-state="ready"] { border-color: var(--vibrant-color); }
.status[data-state="failed"] { border-color: var(--delete-color); }
.graph-figure { margin-inline: 0; padding: 1rem; border: 1px solid var(--border); border-radius: 0.75rem; background: var(--surface); }
.graph-figure svg { display: block; width: 100%; height: auto; min-height: 15rem; }
.graph-node { fill: Canvas; stroke: CanvasText; stroke-width: 2; }
.graph-edge { stroke: CanvasText; stroke-width: 3; }
.graph-figure text { fill: CanvasText; font: 700 20px system-ui, sans-serif; }
.graph-figure .graph-kind { font-size: 14px; font-weight: 500; }
.graph-figure a:focus .graph-node, .graph-figure a:hover .graph-node { stroke: var(--vibrant-color); stroke-width: 5; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; }
caption { margin-block-end: 0.5rem; font-weight: 750; text-align: start; }
th, td { padding: 0.75rem; border: 1px solid var(--border); text-align: start; vertical-align: top; }
.stance { display: inline-block; padding: 0.1rem 0.45rem; border: 0; border-radius: 0.35rem; background: var(--surface); font-weight: 750; }
pre { max-height: 28rem; padding: 1rem; overflow: auto; border: 1px solid var(--border); border-radius: 0.5rem; background: var(--surface); white-space: pre-wrap; overflow-wrap: anywhere; }
button, .button-link { min-height: 2.75rem; padding: 0.45rem 1rem; border: 0.1rem solid currentColor; border-radius: 0.45rem; background: Canvas; color: CanvasText; font: inherit; font-weight: 650; }
.button-link { display: inline-flex; align-items: center; text-decoration: none; }
button:hover:not(:disabled), .button-link:hover { background: var(--surface); }
button:disabled { opacity: 0.55; }
fieldset { display: grid; gap: 0.9rem; padding: 1rem; border: 1px solid var(--border); border-radius: 0.5rem; }
fieldset label { display: grid; gap: 0.3rem; font-weight: 650; }
.control-group { display: grid; gap: 0.3rem; }
.control-label { font-weight: 650; }
.direction-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.direction-options button[aria-pressed="true"] { background: Highlight; color: HighlightText; }
fieldset label:has(input[type="checkbox"]) { grid-template-columns: auto 1fr; align-items: start; font-weight: 500; }
input, select, textarea { width: 100%; min-height: 2.6rem; padding: 0.45rem 0.6rem; border: 1px solid var(--border); border-radius: 0.35rem; background: Canvas; color: CanvasText; font: inherit; }
textarea { resize: vertical; }
input[type="checkbox"] { width: 1.25rem; min-height: 1.25rem; margin-block-start: 0.2rem; }
.research-preview-card { padding: 1rem 1.2rem; border: 1px solid var(--border); border-radius: 0.75rem; background: var(--surface); }
.research-preview-card h3 { font-size: 1.5rem; }

.research-builder-page, .ontology-page, .research-library-page, .public-research-page {
  max-width: none;
  margin: 0;
  padding: 0;
  background: var(--canvas-background);
  color: var(--normal-text-color);
  font-family: var(--font-family);
  font-size: var(--base-font-size);
  font-style: normal;
  font-weight: var(--normal-font-weight);
  line-height: var(--content-line-height);
  -webkit-font-smoothing: antialiased;
  font-synthesis: none;
  text-rendering: geometricPrecision;
}

.research-builder-page { --site-content-max-width: 61.2rem; }
.ontology-page, .research-library-page { --site-content-max-width: 49.3rem; }
.public-research-page { --site-content-max-width: 57.8rem; }

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) * {
  font-family: inherit;
  font-size: inherit !important;
  font-style: normal;
  font-weight: inherit;
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(h1, h2, h3, strong, b, button, summary, legend, dt, th, .button-link, .eyebrow, [aria-current="page"]) {
  font-weight: var(--bold-font-weight);
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(a, button, summary, input, select, textarea):focus,
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(a, button, summary, input, select, textarea):focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--vibrant-color);
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(input, select, textarea) {
  border: 0;
  border-radius: 0.4rem;
  background: var(--active-field-color);
  color: var(--normal-text-color);
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(input, textarea)::placeholder { color: var(--light-text-color); opacity: 1; }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--vibrant-color); }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(button, .button-link) { border: 0; border-radius: 0.4rem; background: var(--active-field-color); }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) button { color: var(--normal-text-color); }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(button, .button-link):hover:not(:disabled) { background: var(--hover-background); }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) section { border: 0; }

.research-builder-header {
  padding: var(--header-path-gap) 0;
}

.site-shell-header { position: relative; display: flex; align-items: center; gap: 0; }
.site-brand-icon { position: relative; display: grid; flex: 0 0 24px; width: 24px; height: 24px; margin-inline-end: 0.75rem; border-radius: var(--header-control-radius); background: var(--canvas-background); box-shadow: var(--cell-shadow); }
.site-brand-icon::after { content: ""; position: absolute; inset: 0; border: 1px solid var(--cell-border); border-radius: inherit; pointer-events: none; }
.site-brand-icon img { display: block; grid-area: 1 / 1; width: 24px; height: 24px; max-width: none; border-radius: inherit; }
.site-brand-icon .site-brand-dark { display: none; }
:root[data-theme="dark"] .site-brand-icon .site-brand-light { display: none; }
:root[data-theme="dark"] .site-brand-icon .site-brand-dark { display: block; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .site-brand-icon .site-brand-light { display: none; }
  :root:not([data-theme="light"]) .site-brand-icon .site-brand-dark { display: block; }
}
.research-builder-nav { display: flex; min-width: 0; flex: 1; align-items: center; flex-wrap: wrap; gap: calc(0.45rem - 1px); margin: 0; color: var(--normal-text-color); }
.research-builder-nav a { color: var(--normal-text-color); font-weight: 600; text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--light-text-color); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.research-builder-nav a:hover { color: var(--normal-text-color); text-decoration-style: solid; text-decoration-color: var(--normal-text-color); }
.research-builder-nav [aria-current="page"] { color: var(--normal-text-color); font-weight: var(--normal-font-weight); }
.breadcrumb-brand { color: var(--normal-text-color); font-weight: var(--bold-font-weight); }
.breadcrumb-separator { width: calc(0.5rem + 3px); height: calc(0.9rem + 4px); flex: 0 0 auto; padding-inline-start: 3px; overflow: visible; color: var(--light-text-color); fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1; }

.research-more-menu { position: relative; flex: none; margin: 0 0 0 0.5rem; }
.research-more-menu summary { display: grid; width: var(--header-action-size); min-height: var(--header-action-size); place-items: center; padding: 0.45rem; border-radius: var(--header-hover-radius); background: transparent; color: var(--light-text-color); cursor: pointer; list-style: none; }
.research-more-menu summary::-webkit-details-marker { display: none; }
.research-more-menu summary:hover, .research-more-menu[open] summary { background: var(--active-field-color); color: var(--normal-text-color); }
.research-more-menu summary svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-linecap: square; stroke-width: 1; }
.research-more-actions { position: absolute; z-index: 20; inset-block-start: calc(100% + 0.35rem); inset-inline-end: 0; display: grid; width: min(15rem, calc(100vw - 2rem)); gap: 0.2rem; padding: 0.4rem; border-radius: 0.5rem; background: var(--active-field-color); box-shadow: 0 0.45rem 1.4rem color-mix(in srgb, var(--normal-text-color) 14%, transparent); }
.research-more-actions :is(button, a) { display: flex; width: 100%; min-height: 2.4rem; align-items: center; padding: 0.35rem 0.55rem; border-radius: 0.3rem; background: transparent; color: var(--normal-text-color); text-align: start; text-decoration: none; }
.research-more-actions :is(button, a):hover { background: color-mix(in srgb, var(--normal-text-color) 9%, var(--active-field-color)); }
.research-more-actions .reset-local-button { color: var(--delete-color); }

.research-builder-header,
.research-builder,
.research-library-main,
.ontology-main,
.public-page-shell,
.public-research-page .site-header,
.public-research-page main,
.public-research-page footer {
  width: min(var(--site-content-max-width), calc(100% - 5.5rem));
  max-width: none;
  margin-inline-start: max(4.5rem, calc((100% - var(--site-content-max-width)) / 2));
  margin-inline-end: auto;
}
.research-builder, .research-library-main, .ontology-main { padding: 0 0 6rem; }
.research-composer, .library-content { margin: 0; padding: 0; }
.public-research-page .site-header { padding-block: 0 1rem; }
.public-research-page main { padding-bottom: 4rem; }
.public-research-page footer { padding-block: 1rem 3rem; color: var(--light-text-color); }
.public-research-page .lede { max-width: 70ch; }
.technical-status { margin-block: 1rem; padding: 0; }
.technical-status h2 { margin-bottom: 0.5rem; }
.technical-status .status { margin: 0; border: 0; border-radius: var(--corner-radius); background: var(--active-field-color); }
.technical-status-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--vertical-gap); margin: var(--vertical-gap) 0 0; }
.technical-status-grid div { padding: 0.55rem 0.65rem; border-radius: var(--corner-radius); background: color-mix(in srgb, var(--active-field-color) 72%, var(--page-background)); }
.technical-status-grid dt { margin-bottom: 0.16rem; }
.technical-status-grid dd, .technical-status-note { color: var(--light-text-color); }
.technical-status-note { max-width: 80ch; margin-bottom: 0; }

.appearance-panel { width: calc(100% - 2rem); max-width: none; margin: 0 1rem 1.1rem; padding: 0.9rem; border-radius: var(--corner-radius); background: color-mix(in srgb, var(--active-field-color) 76%, var(--page-background)); }
.appearance-heading-row, .appearance-footer, .library-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; }
.appearance-heading-row h2, .library-heading-row h1 { margin: 0; }
.appearance-heading-row button, .appearance-footer button { min-height: 2.2rem; padding: 0.25rem 0.55rem; }
.appearance-text-controls { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.7rem; }
.appearance-select-control { display: grid; flex: 1 1 7em; min-width: 0; grid-template-columns: minmax(0, 1fr); gap: 0.25rem; color: var(--light-text-color); }
.appearance-select-control :is(select, input) { min-width: 0; min-height: 2.35rem; color: var(--normal-text-color); }
.appearance-number-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 0.3rem; }
.appearance-number-unit { min-width: 1.25rem; color: var(--light-text-color); }
.appearance-color-controls { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: 0.75rem; }
.appearance-color-control { display: block; flex: 1 1 10em; min-width: 0; margin: 0; padding: 0; border: 0; }
.appearance-color-control legend { margin-bottom: 0.3rem; color: var(--light-text-color); }
.appearance-color-options { display: grid; gap: 0.16rem; }
.appearance-color-option { position: relative; display: grid; min-width: 0; grid-template-columns: 2.6rem minmax(0, 1fr); align-items: center; gap: 0.35rem; padding: 0.2rem; border-radius: var(--corner-radius); cursor: pointer; }
.appearance-color-option input { position: absolute; width: 1px; min-height: 1px; opacity: 0; }
.appearance-color-option:has(input:focus-visible), .appearance-color-option:has(input:checked) { outline: none; box-shadow: 0 0 0 0.15rem var(--vibrant-color); }
.appearance-color-pair { display: grid; grid-template-columns: 1fr 1fr; height: 1.35rem; overflow: hidden; border-radius: calc(var(--corner-radius) * 0.65); }
.appearance-color-pair i { display: block; min-width: 0; }
.appearance-color-option .appearance-color-light { background: var(--appearance-option-light) !important; }
.appearance-color-option .appearance-color-dark { background: var(--appearance-option-dark) !important; }
.appearance-color-code { min-width: 0; color: var(--light-text-color); font-variant-numeric: tabular-nums; white-space: nowrap; }
.appearance-color-code-dark { display: none; }
html[data-theme="dark"] .appearance-color-code-light { display: none; }
html[data-theme="dark"] .appearance-color-code-dark { display: inline; }
@media (prefers-color-scheme: dark) {
  html[data-theme="system"] .appearance-color-code-light { display: none; }
  html[data-theme="system"] .appearance-color-code-dark { display: inline; }
}
[data-color-option="ink-1"] .appearance-color-light { background: #111111; }
[data-color-option="ink-1"] .appearance-color-dark { background: #f6f6f6; }
[data-color-option="ink-2"] .appearance-color-light { background: #181818; }
[data-color-option="ink-2"] .appearance-color-dark { background: #eeeeee; }
[data-color-option="ink-3"] .appearance-color-light { background: #202020; }
[data-color-option="ink-3"] .appearance-color-dark { background: #e6e6e6; }
[data-color-option="ink-4"] .appearance-color-light { background: #292929; }
[data-color-option="ink-4"] .appearance-color-dark { background: #dddddd; }
[data-color-option="ink-5"] .appearance-color-light { background: #333333; }
[data-color-option="ink-5"] .appearance-color-dark { background: #d4d4d4; }
[data-color-option="ink-6"] .appearance-color-light { background: #3d3d3d; }
[data-color-option="ink-6"] .appearance-color-dark { background: #cccccc; }
[data-color-option="ink-7"] .appearance-color-light { background: #474747; }
[data-color-option="ink-7"] .appearance-color-dark { background: #c4c4c4; }
[data-color-option="ink-8"] .appearance-color-light { background: #515151; }
[data-color-option="ink-8"] .appearance-color-dark { background: #bcbcbc; }
[data-color-option="gray-1"] .appearance-color-light { background: #6f6f6f; }
[data-color-option="gray-1"] .appearance-color-dark { background: #a0a0a0; }
[data-color-option="gray-2"] .appearance-color-light { background: #7c7c7c; }
[data-color-option="gray-2"] .appearance-color-dark { background: #aaaaaa; }
[data-color-option="gray-3"] .appearance-color-light { background: #888888; }
[data-color-option="gray-3"] .appearance-color-dark { background: #b6b6b6; }
[data-color-option="gray-4"] .appearance-color-light { background: #949494; }
[data-color-option="gray-4"] .appearance-color-dark { background: #c2c2c2; }
[data-color-option="gray-5"] .appearance-color-light { background: #a0a0a0; }
[data-color-option="gray-5"] .appearance-color-dark { background: #cecece; }
[data-color-option="gray-6"] .appearance-color-light { background: #acacac; }
[data-color-option="gray-6"] .appearance-color-dark { background: #dadada; }
[data-color-option="gray-7"] .appearance-color-light { background: #b8b8b8; }
[data-color-option="gray-7"] .appearance-color-dark { background: #e6e6e6; }
[data-color-option="gray-8"] .appearance-color-light { background: #c4c4c4; }
[data-color-option="gray-8"] .appearance-color-dark { background: #f2f2f2; }
[data-color-option="blue"] .appearance-color-light { background: #5b96e6; }
[data-color-option="blue"] .appearance-color-dark { background: #8bb9ff; }
[data-color-option="cobalt"] .appearance-color-light { background: #1e4ed8; }
[data-color-option="cobalt"] .appearance-color-dark { background: #7a9cff; }
[data-color-option="coral"] .appearance-color-light { background: #c63f2a; }
[data-color-option="coral"] .appearance-color-dark { background: #ff8d7a; }
[data-color-option="violet"] .appearance-color-light { background: #6840d5; }
[data-color-option="violet"] .appearance-color-dark { background: #b6a1ff; }
[data-color-option="teal"] .appearance-color-light { background: #007c83; }
[data-color-option="teal"] .appearance-color-dark { background: #72d0d2; }
[data-color-option="amber"] .appearance-color-light { background: #a85d00; }
[data-color-option="amber"] .appearance-color-dark { background: #ffb55d; }
[data-color-option="rose"] .appearance-color-light { background: #b8326d; }
[data-color-option="rose"] .appearance-color-dark { background: #ff91bd; }
[data-color-option="lime"] .appearance-color-light { background: #4f7600; }
[data-color-option="lime"] .appearance-color-dark { background: #b9dc6a; }
[data-color-option="red-1"] .appearance-color-light { background: #9f2119; }
[data-color-option="red-1"] .appearance-color-dark { background: #ffaaa3; }
[data-color-option="red-2"] .appearance-color-light { background: #aa2118; }
[data-color-option="red-2"] .appearance-color-dark { background: #ff9d95; }
[data-color-option="red-3"] .appearance-color-light { background: #b42318; }
[data-color-option="red-3"] .appearance-color-dark { background: #ff9188; }
[data-color-option="red-4"] .appearance-color-light { background: #be261b; }
[data-color-option="red-4"] .appearance-color-dark { background: #ff867d; }
[data-color-option="red-5"] .appearance-color-light { background: #c82a1f; }
[data-color-option="red-5"] .appearance-color-dark { background: #ff7a71; }
[data-color-option="red-6"] .appearance-color-light { background: #8f201a; }
[data-color-option="red-6"] .appearance-color-dark { background: #ff7068; }
[data-color-option="red-7"] .appearance-color-light { background: #98231c; }
[data-color-option="red-7"] .appearance-color-dark { background: #ff665e; }
[data-color-option="red-8"] .appearance-color-light { background: #a1261e; }
[data-color-option="red-8"] .appearance-color-dark { background: #ff5c55; }
[data-color-option="field-1"] .appearance-color-light { background: #f8f8f8; }
[data-color-option="field-1"] .appearance-color-dark { background: #202020; }
[data-color-option="field-2"] .appearance-color-light { background: #f4f4f4; }
[data-color-option="field-2"] .appearance-color-dark { background: #242424; }
[data-color-option="field-3"] .appearance-color-light { background: #efefef; }
[data-color-option="field-3"] .appearance-color-dark { background: #282828; }
[data-color-option="field-4"] .appearance-color-light { background: #eaeaea; }
[data-color-option="field-4"] .appearance-color-dark { background: #2c2c2c; }
[data-color-option="field-5"] .appearance-color-light { background: #ffffff; }
[data-color-option="field-5"] .appearance-color-dark { background: #303030; }
[data-color-option="field-6"] .appearance-color-light { background: #ececec; }
[data-color-option="field-6"] .appearance-color-dark { background: #343434; }
[data-color-option="field-7"] .appearance-color-light { background: #e6e6e6; }
[data-color-option="field-7"] .appearance-color-dark { background: #383838; }
[data-color-option="field-8"] .appearance-color-light { background: #e0e0e0; }
[data-color-option="field-8"] .appearance-color-dark { background: #3c3c3c; }
.appearance-footer { justify-content: flex-end; margin-top: 0.75rem; }

.research-entry-shell { display: block; padding: 0.65rem 0.8rem; border: 0; border-radius: var(--corner-radius); background: var(--active-field-color); }
.research-entry-shell input { min-height: 3.2rem; padding: 0; border: 0; background: var(--active-field-color); color: var(--normal-text-color); }
.research-entry-shell input:focus, .research-entry-shell input:focus-visible { box-shadow: none !important; }
.research-entry-shell:focus-within { box-shadow: 0 0 0 2px var(--vibrant-color); }
.research-builder-toolbar { display: flex; justify-content: flex-end; margin-top: 0.55rem; }
.research-builder-toolbar .actions { justify-content: flex-end; }
.research-builder-toolbar button { min-height: 2.3rem; padding: 0.3rem 0.65rem; }
.research-save-status { min-height: 1.5em; margin: 0.55rem 0 0; padding: 0; color: var(--light-text-color); }

.reset-local-dialog { position: fixed; z-index: 50; inset: 0; display: grid; place-items: center; margin: 0; padding: 1rem; background: color-mix(in srgb, var(--normal-text-color) 58%, transparent); }
.reset-local-dialog-card { width: min(34rem, 100%); padding: clamp(1rem, 4vw, 1.7rem); border-radius: 0.65rem; background: var(--page-background); color: var(--normal-text-color); }
.reset-local-dialog h2 { margin: 0.3rem 0 1rem; }
.reset-local-dialog ul { display: grid; gap: 0.4rem; padding-left: 1.25rem; }
.dialog-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 0.6rem; margin-top: 1.2rem; }
.agent-change-counts, .google-import-details { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0.4rem 0.8rem; }
.agent-change-counts { padding: 0.7rem; border-radius: 0.4rem; background: var(--active-field-color); }
.google-import-excerpt { min-height: 5rem; max-height: 12rem; margin: 0.4rem 0 0; border: 0; background: var(--active-field-color); color: var(--normal-text-color); }
.google-private-note-choice { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 0.55rem; margin-top: 0.8rem; }
.google-private-note-choice input { width: 1.2rem; min-height: 1.2rem; margin: 0.2rem 0 0; }
.share-destination-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; margin-top: 1.2rem; }
.share-destination-actions button { width: 100%; justify-content: flex-start; text-align: left; }
.share-destination-status { min-height: 1.5em; margin: 0.8rem 0 0; color: var(--light-text-color); }
.delete-button { color: var(--delete-color) !important; }
.danger-button { background: var(--delete-color) !important; color: var(--page-background) !important; }
.danger-button:hover:not(:disabled) { background: var(--hover-background) !important; color: var(--delete-color) !important; }

.research-map { margin: 1.5rem 0 0; padding: 0; }
.map-counts { display: flex; align-items: center; flex-wrap: wrap; gap: 0.32em; margin: 0 0 0.55rem; color: var(--light-text-color); }
.map-count-separator { flex: 0 0 auto; }
.research-command-panel { max-width: 46rem; margin: 1.5rem auto; padding: 1rem; border-radius: 0.55rem; background: var(--active-field-color); }
.research-command-panel h3 { margin: 0.15rem 0 0.8rem; }
.research-command-panel input, .research-command-panel select { min-height: 3rem; background: var(--page-background); }
.research-command-panel .actions, .inline-confirmation { margin-top: 0.8rem; }
.inline-confirmation { padding: 0.75rem; border-radius: 0.45rem; background: color-mix(in srgb, var(--delete-color) 10%, var(--page-background)); }
.inline-confirmation p { margin-top: 0; }
.relationship-options { display: grid; gap: 0.25rem; max-height: 17rem; margin-top: 0.5rem; overflow: auto; }
.relationship-option { min-height: 2.4rem; border: 0; border-radius: 0.35rem; background: transparent; text-align: left; }
.relationship-option[aria-selected="true"] { background: var(--vibrant-color); color: var(--selection-text-color); }
.type-autocomplete-backdrop { position: fixed; z-index: 100; inset: 0; background: rgb(0 0 0 / 28%); }
.type-autocomplete-menu { position: absolute; z-index: 120; display: grid; grid-auto-rows: max-content; max-height: min(24rem, calc(100vh - 1rem)); gap: 0; margin: 0; padding: 0; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--cell-border); border-radius: var(--cell-radius); background: var(--cell-background); box-shadow: var(--cell-shadow); }
.research-builder-page .type-autocomplete-option { display: flex; width: 100%; min-height: 0; height: round(up, calc(1.25em + 5px), 1px); align-items: center; gap: 0; padding: 2px 8px; border: 0; border-block-end: 1px solid var(--cell-border); border-radius: 0; background: transparent; color: var(--normal-text-color); box-shadow: none; font-weight: var(--normal-font-weight); line-height: 1.25; text-align: start; white-space: nowrap; }
.research-builder-page .type-autocomplete-option:last-child { border-block-end: 0; }
.research-builder-page .type-autocomplete-option:hover { background: var(--hover-background); }
.research-builder-page .type-autocomplete-option[aria-selected="true"] { background: var(--highlight-color); color: var(--normal-text-color); }
.type-autocomplete-variant, .type-autocomplete-count { margin-inline-start: var(--cell-text-count-gap); }
.type-autocomplete-variant { color: var(--light-text-color); }
.type-autocomplete-count { color: var(--vibrant-color); font-variant-numeric: tabular-nums; }
.type-autocomplete-highlight { border-radius: 0.15em; background: var(--highlight-color); color: inherit; }
.command-help { margin: 0.7rem 0 0; color: var(--light-text-color); }
.recognized-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; min-height: 2rem; margin-top: 0.6rem; }
.tag-chip, .type-chip, .identity-chip, .outline-reference, .note-reference { display: inline-flex; align-items: center; min-height: 1.5rem; padding: 0.05rem 0.38rem; border: 0; border-radius: 0.3rem; background: var(--active-field-color); color: var(--normal-text-color); text-decoration: none; white-space: nowrap; }
.tag-chip, .type-chip, .outline-reference, .note-reference { border-block: 2px solid transparent; background-clip: padding-box; }
.tag-prefix { color: var(--vibrant-color); }

.research-outline, .ontology-outline, .ontology-results { display: grid; gap: var(--vertical-gap); margin: 0; padding: 0; color: var(--normal-text-color); line-height: var(--content-line-height); list-style: none; }
.research-outline, .ontology-outline { position: relative; isolation: isolate; }
.research-outline { isolation: auto; }
.research-outline-item, .ontology-type-group, .ontology-type-row { position: relative; z-index: 1; min-width: 0; list-style: none; }
.research-outline-item { z-index: auto; overflow: visible; }
.hierarchy-connectors { position: absolute; z-index: 0; inset: 0; overflow: visible; color: var(--vibrant-color); pointer-events: none; }
.hierarchy-connectors path { fill: none; stroke: currentColor; stroke-width: 2px; stroke-linecap: butt; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.outline-depth-0 { margin-inline-start: 0; }
.outline-depth-1 { margin-inline-start: var(--outline-indent); }
.outline-depth-2 { margin-inline-start: calc(var(--outline-indent) * 2); }
.outline-depth-3 { margin-inline-start: calc(var(--outline-indent) * 3); }
.outline-depth-4 { margin-inline-start: calc(var(--outline-indent) * 4); }
.outline-depth-5 { margin-inline-start: calc(var(--outline-indent) * 5); }
.outline-depth-6 { margin-inline-start: calc(var(--outline-indent) * 6); }
.outline-depth-7 { margin-inline-start: calc(var(--outline-indent) * 7); }
.outline-depth-8 { margin-inline-start: calc(var(--outline-indent) * 8); }
.research-outline-node { min-width: 0; padding: calc(0.5rem - 1px) 0.7rem calc(0.5rem - 1px) calc(var(--cell-symbol-inset) + var(--cell-symbol-width) + var(--cell-symbol-text-gap)); border: 0; border-radius: 0.45rem; cursor: pointer; user-select: none; }
.research-outline-node:hover:not(:has(a:hover, button:hover, .research-cell-details:hover, .node-note-input:hover)) { background: var(--hover-background); }
.research-outline-node[data-active="true"], .research-outline-node:focus, .research-outline-node:focus-visible { outline: none; background: transparent; box-shadow: none; }
.hierarchy-disclosure svg { width: 1rem; height: 1rem; overflow: visible; fill: currentColor; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 0.7; transform: translateY(1px); transform-origin: center; }
.hierarchy-disclosure[aria-expanded="true"] svg { transform: translateY(1px) rotate(90deg); }
:is(.research-builder-page, .ontology-page) button.hierarchy-disclosure { display: grid; width: var(--disclosure-hit-size); min-height: var(--disclosure-hit-size); flex: 0 0 var(--disclosure-hit-size); place-items: center; padding: 0; border-radius: var(--corner-radius); background: transparent; color: var(--light-text-color); }
:is(.research-builder-page, .ontology-page) button.hierarchy-disclosure[aria-expanded="true"] { color: var(--vibrant-color); }
:is(.research-builder-page, .ontology-page) button.hierarchy-disclosure:is(:hover, :focus-visible) { background: var(--active-field-color); }
:is(.research-builder-page, .ontology-page) button.hierarchy-disclosure:is(:focus, :focus-visible) { outline: none; box-shadow: none; }
.outline-cap-anchor { position: relative; display: inline-block; width: 0; height: 1cap; vertical-align: baseline; }
.research-outline-disclosure { position: absolute; z-index: 1; inset-block-start: calc((1cap - var(--disclosure-hit-size)) / 2); inset-inline-start: calc(-1 * (var(--cell-symbol-width) + var(--cell-symbol-text-gap)) + ((var(--cell-symbol-width) - var(--disclosure-hit-size)) / 2)); }
.research-outline-disclosure svg { transform: none; }
.research-outline-disclosure[aria-expanded="true"] svg { transform: rotate(90deg); }
.hierarchy-level-marker { width: 0.9cap; height: 0.9cap; overflow: visible; color: var(--light-text-color); transform: translateY(0.5px); transform-origin: center; }
.research-level-marker-slot { position: absolute; inset-block-start: 0; inset-inline-start: calc(-1 * (var(--cell-symbol-width) + var(--cell-symbol-text-gap))); display: grid; width: var(--cell-symbol-width); height: 1cap; place-items: center; pointer-events: none; }
.research-level-marker-slot .hierarchy-level-marker { transform: none; }
.outline-node-line { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.outline-relationship { color: var(--light-text-color); }
.outline-node-label { min-width: 0; color: var(--normal-text-color); font-weight: var(--bold-font-weight); overflow-wrap: anywhere; text-decoration-color: var(--light-text-color); }
.outline-node-url { font-weight: var(--normal-font-weight); }
.research-outline-tagline { color: var(--light-text-color); font-weight: var(--normal-font-weight); }
.outline-link-favicon { display: inline-block; width: 0.9em; min-width: 0.9em; max-width: 0.9em; height: 0.9em; min-height: 0.9em; max-height: 0.9em; aspect-ratio: 1; margin-inline-end: 0.28em; border-radius: 2px; object-fit: contain; opacity: 0; vertical-align: -0.08em; }
.outline-link-favicon[data-ready="true"] { opacity: 1; }
.research-cell-details { --detail-row-background: var(--canvas-background); --detail-row-alternate-background: color-mix(in srgb, var(--canvas-background) 96%, var(--normal-text-color)); display: grid; grid-template-columns: max-content minmax(0, 1fr); align-items: center; row-gap: 2px; column-gap: 6px; margin-block: calc(0.5rem - 1px) calc(1px - 0.5rem); margin-inline: calc(-1 * (var(--cell-symbol-inset) + var(--cell-symbol-width) + var(--cell-symbol-text-gap))) -0.7rem; padding: calc(0.28rem - 3px) 0.7rem; border-block-start: 1px solid var(--cell-border); border-end-start-radius: calc(var(--cell-radius) - 1px); border-end-end-radius: calc(var(--cell-radius) - 1px); background: var(--detail-row-background); cursor: default; }
.research-cell-details > label { position: relative; grid-column: 1; align-self: stretch; display: flex; align-items: center; justify-content: flex-end; padding-inline: 0.38rem 0; color: var(--normal-text-color); text-align: end; }
.research-cell-detail-band { grid-column: 1 / -1; align-self: stretch; margin-inline: -0.7rem; background: var(--detail-row-alternate-background); pointer-events: none; }
.research-cell-detail-band-last { margin-block-end: calc(3px - 0.28rem); border-end-start-radius: calc(var(--cell-radius) - 1px); border-end-end-radius: calc(var(--cell-radius) - 1px); }
.research-cell-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.6rem; margin: 2px -0.7rem calc(3px - 0.28rem); padding: 0.3rem 0.7rem; border-block-start: 1px solid var(--cell-border); border-end-start-radius: inherit; border-end-end-radius: inherit; background: var(--canvas-background); }
.research-builder-page .research-cell-actions > button { display: inline-flex; align-items: center; gap: 0.25em; min-height: 1.7rem; padding: 0.12rem 0.3rem; background: transparent; font: inherit; cursor: pointer; }
.research-cell-actions .cell-delete { margin-inline-start: auto; }
.research-builder-page .research-cell-actions > .cell-delete { color: var(--delete-color); }
.research-builder-page .research-cell-actions > button:hover { background: var(--canvas-hover-background); }
.cell-delete svg { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.5; }
.research-builder-page .research-cell-actions > .cell-connection-input { width: min(22rem, 100%); min-width: 0; min-height: 1.7rem; padding: 0.12rem 0.38rem; background: #ffffff; color: var(--normal-text-light); }
.research-builder-page .research-cell-details > input { position: relative; z-index: 1; grid-column: 2; min-width: 0; min-height: 1.65rem; padding: 0.08rem 0.38rem; background: #ffffff; color: var(--normal-text-light); cursor: text; user-select: text; }
.research-builder-page .research-cell-details > input::placeholder { color: var(--light-text-light); }
.research-builder-page .research-cell-details > input:is(:focus, :focus-visible) { z-index: 110; background: #ffffff; box-shadow: 0 0 0 2px var(--vibrant-color); }
.research-builder-page .research-cell-details > input[name="url"] { color: var(--vibrant-color); caret-color: var(--vibrant-color); }
.tag-field-shell { display: grid; grid-template-columns: minmax(0, 1fr); }
.tag-field-shell > input { grid-area: 1 / 1; }
.tag-field-paint { position: relative; z-index: 1; display: flex; align-items: center; grid-column: 1; align-self: stretch; min-width: 0; overflow: hidden; padding: 0.45rem 0.6rem; border-radius: 0.4rem; background: var(--active-field-color); color: var(--normal-text-color); pointer-events: none; user-select: none; }
.tag-field-text { display: block; flex: 0 0 auto; white-space: pre; }
.research-cell-details > .tag-field-paint { grid-column: 2; padding: 0.08rem 0.38rem; background: #ffffff; color: var(--normal-text-light); }
.research-builder-page input.tag-colored-input { position: relative; z-index: 2; background: transparent; color: transparent; caret-color: var(--normal-text-color); }
.research-builder-page .research-cell-details > input.tag-colored-input { caret-color: var(--normal-text-light); }
.research-builder-page input.tag-colored-input:is(:focus, :focus-visible) { z-index: 110; background: transparent; color: transparent; }
.tag-colored-input:is(:focus, :focus-visible) + .tag-field-paint { z-index: 109; }
.tag-colored-input::selection { background: Highlight; color: HighlightText; }
@media (forced-colors: active) {
  .research-builder-page input.tag-colored-input, .research-builder-page input.tag-colored-input:is(:focus, :focus-visible) { background: Canvas; color: CanvasText; caret-color: CanvasText; }
  .tag-field-paint { visibility: hidden; }
}
.research-builder-page :is(input, textarea):focus, .research-builder-page .type-autocomplete-owner { position: relative; z-index: 110; }
.node-notes-list { display: grid; gap: 0.2rem; margin: 0.4rem 0 0; padding: 0; list-style: none; }
.node-note-item { position: relative; display: block; list-style: none; }
.node-note-item::before { position: absolute; inset-inline-start: -0.85rem; color: var(--light-text-color); content: "–"; }
.note-level-0 { margin-inline-start: 0.9rem; }
.note-level-1 { margin-inline-start: 2.2rem; }
.note-level-2 { margin-inline-start: 3.5rem; }
.note-level-3 { margin-inline-start: 4.8rem; }
.note-level-4 { margin-inline-start: 6.1rem; }
.note-level-5 { margin-inline-start: 7.4rem; }
.note-level-6 { margin-inline-start: 8.7rem; }
.note-level-7 { margin-inline-start: 10rem; }
.note-level-8 { margin-inline-start: 11.3rem; }
.node-note-input { width: 100%; min-height: 2rem; padding: 0.25rem 0.4rem; background: transparent; color: var(--normal-text-color); }
.node-note-input:focus, .node-note-input:focus-visible { background: var(--active-field-color); }
.note-references { display: flex; justify-content: flex-start; flex-wrap: wrap; gap: 0.25rem; margin: 0.18rem 0 0 0.4rem; }

.library-content { width: 100%; margin-top: 0; }
.research-library-page .research-library-main { padding-top: 0; }
.research-library-page .research-more-menu { margin-inline-end: 0; }
.research-library-page :is(main, .breadcrumb) a { min-height: auto; padding: 0; border-radius: 0; background: transparent; color: var(--normal-text-color); font-weight: 600; text-decoration-line: underline; text-decoration-style: dotted; text-decoration-color: var(--light-text-color); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.research-library-page :is(main, .breadcrumb) a:hover { background: var(--hover-background); color: var(--normal-text-color); text-decoration-style: solid; text-decoration-color: var(--normal-text-color); }
.library-heading-row { align-items: baseline; }
.library-overview { display: grid; width: 100%; gap: 0; margin: 0.75rem 0 0; padding-inline-start: calc(1.25rem + 1px); }
.library-intro { min-width: 0; margin: 0; color: var(--light-text-color); text-align: start; white-space: normal; line-height: 1.5; }
.library-overview .library-cache-clear { display: inline; min-height: 0; margin: 0; padding: 0; border: 0; border-radius: 0.2rem; background: transparent; color: var(--delete-color); font: inherit; text-decoration: underline dotted currentColor; text-decoration-thickness: 1px; text-underline-offset: 0.2em; cursor: pointer; }
.library-overview .library-cache-clear:hover:not(:disabled) { box-shadow: 0 0 0 3px var(--canvas-hover-background); text-decoration-style: solid; }
.library-overview .library-cache-clear:disabled { opacity: 0.5; cursor: default; text-decoration: none; }
.library-statistic-value, .research-count-value { color: var(--vibrant-color); font-variant-numeric: tabular-nums; }
.research-library-page a.library-create-button { position: relative; isolation: isolate; display: grid; width: 24px; height: 24px; min-height: 24px; flex: 0 0 24px; margin-inline-start: 0.75rem; place-items: center; padding: 0; border: 1px solid var(--cell-border); border-radius: var(--header-control-radius); background: var(--vibrant-color); color: var(--accent-on); box-shadow: var(--cell-shadow); text-decoration: none; }
.research-library-page a.library-create-button:hover { --create-hover-fill: color-mix(in srgb, var(--vibrant-color) 92%, #000000); background: var(--create-hover-fill); color: var(--accent-on); text-decoration: none; }
.library-create-button::before, .library-create-button:hover::after { content: ""; position: absolute; pointer-events: none; }
.library-create-button::before { z-index: -2; inset: 50% auto auto 50%; width: var(--header-action-size); height: var(--header-action-size); transform: translate(-50%, -50%); border-radius: var(--header-hover-radius); background: transparent; pointer-events: auto; }
.library-create-button:hover::before { background: var(--canvas-hover-background); }
.library-create-button:hover::after { z-index: -1; inset: -1px; border: 1px solid var(--cell-border); border-radius: inherit; background: var(--create-hover-fill); box-shadow: var(--cell-shadow); }
.library-create-button svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-linecap: round; stroke-width: 1.5; }
.research-library-list { display: grid; gap: var(--vertical-gap); margin-top: 0; }
.research-library-row { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: var(--vertical-gap) 0.75rem; padding: 1rem 0.75rem 1rem 1.25rem; cursor: pointer; user-select: none; }
.research-library-page main a.research-library-open-link { display: block; min-width: 0; padding: 0; background: transparent; color: var(--normal-text-color); font-weight: var(--normal-font-weight); text-decoration: none; cursor: pointer; }
.research-library-page main a.research-library-open-link:hover { background: transparent; text-decoration: none; }
.research-library-row:has(.research-library-open-link:hover) { background: var(--hover-background); }
.research-library-open-link::after { content: ""; position: absolute; inset: 0; border-radius: var(--cell-radius); }
.research-library-title-line { display: block; line-height: 1.5; overflow-wrap: anywhere; }
.research-library-title { font-weight: var(--bold-font-weight); }
.research-library-subtitle { color: var(--light-text-color); }
.research-library-counts { display: inline; margin: 0; line-height: inherit; }
.research-library-counts > span { white-space: nowrap; }
.research-library-title-line .map-count-separator { display: inline-block; margin-inline: 0.32em; vertical-align: 0.05cap; transform: none; }
.research-trash { margin: 1.6rem 0 0; padding: 0; }
.research-trash h2 { margin: 0; }
.empty-library { margin: 0; padding: 0.55rem 0.65rem; border-radius: var(--corner-radius); background: var(--active-field-color); }

.ontology-main { padding-top: 0; }
.ontology-outline { inline-size: max-content; max-inline-size: 100%; margin-top: 0; }
.ontology-type-row { display: grid; min-height: calc(1.8rem + var(--vertical-gap) + 2px); grid-template-columns: var(--cell-symbol-width) max-content max-content auto; align-items: center; column-gap: 0; padding: calc(var(--vertical-gap) / 2) var(--cell-symbol-inset); border: 0; border-radius: var(--corner-radius); }
.ontology-type-group { list-style: none; margin: 0; scroll-margin-top: calc(var(--base-font-size) * var(--content-line-height) + 1.1rem); }
.ontology-type-group h2 { display: flex; min-height: 1.8rem; align-items: center; gap: calc(var(--cell-symbol-text-gap) + ((var(--cell-symbol-width) - var(--disclosure-hit-size)) / 2)); margin: 0; font-size: 1em; font-weight: var(--bold-font-weight); }
.ontology-type-row { scroll-margin-top: calc(var(--base-font-size) * var(--content-line-height) + 1.1rem); }
.ontology-level-marker { align-self: center; justify-self: center; }
.ontology-disclosure { justify-self: center; }
.ontology-type-label { min-width: 0; margin-inline-start: var(--cell-symbol-text-gap); padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--normal-text-color); overflow-wrap: anywhere; }
.ontology-type-parent .ontology-type-label { font-weight: var(--bold-font-weight); }
.ontology-type-variant, .ontology-type-count { margin-inline-start: var(--cell-text-count-gap); }
.ontology-type-variant { color: var(--light-text-color); }
.ontology-type-count { color: var(--vibrant-color); font-variant-numeric: tabular-nums; }
.ontology-page a.ontology-type-count { color: var(--vibrant-color); }
.ontology-type-row[data-active="true"], .ontology-type-row:focus, .ontology-type-row:focus-visible { outline: none; background: transparent; box-shadow: none; }
.ontology-results { margin-top: 0; }
.ontology-result-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0.75rem; padding-block: calc(var(--vertical-gap) / 2); }
.ontology-result-row a { overflow-wrap: anywhere; }
.ontology-result-research, .ontology-empty { color: var(--light-text-color); }
.ontology-empty { margin-top: 0; }
.connections-list { display: grid; inline-size: max-content; max-inline-size: 100%; gap: var(--vertical-gap); margin: 0; padding: 0; list-style: none; }
.connection-row { display: grid; min-height: calc(1.8rem + var(--vertical-gap) + 2px); grid-template-columns: var(--cell-symbol-width) max-content auto; align-items: center; padding: calc(var(--vertical-gap) / 2) var(--cell-symbol-inset); border: 1px solid var(--cell-border); border-radius: var(--cell-radius); background: var(--cell-background); box-shadow: var(--cell-shadow); list-style: none; }
.connection-marker { align-self: center; justify-self: center; }
.connection-label { margin-inline-start: var(--cell-symbol-text-gap); }
.connection-count { margin-inline-start: var(--cell-text-count-gap); color: var(--vibrant-color) !important; font-variant-numeric: tabular-nums; }
.connection-result-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0.75rem; padding: calc(var(--vertical-gap) / 2) var(--cell-symbol-inset); border: 1px solid var(--cell-border); border-radius: var(--cell-radius); background: var(--cell-background); box-shadow: var(--cell-shadow); }
.connection-result-statement { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.type-scroll-path { position: fixed; z-index: 45; inset-block-start: 0; inset-inline: 0; display: flex; width: 100%; min-height: calc(var(--base-font-size) * var(--content-line-height) + 1rem); flex: none; flex-wrap: nowrap; padding-block: 0.5rem; padding-inline-start: max(4.5rem, calc((100vw - var(--site-content-max-width)) / 2)); padding-inline-end: max(1rem, calc((100vw - var(--site-content-max-width)) / 2)); overflow-x: auto; background: var(--canvas-background); box-shadow: 0 1px 0 color-mix(in srgb, var(--light-text-color) 26%, transparent); white-space: nowrap; }

.research-builder-header { border: 0; background: transparent; box-shadow: none; }

.research-builder-page .research-composer,
.research-builder-page .research-outline-item,
.research-library-page .research-library-row,
.ontology-page :is(.ontology-type-group, .ontology-type-row, .ontology-result-row),
.public-research-page main > section {
  border: 1px solid var(--cell-border);
  border-radius: var(--cell-radius);
  background: var(--cell-background);
  box-shadow: var(--cell-shadow);
}

.research-builder-page .research-composer,
.public-research-page main > section { padding: 1rem; }

.public-research-page .site-header > .lede { margin-block-start: 0; }

.ontology-page .ontology-type-group { padding: calc(var(--vertical-gap) / 2) var(--cell-symbol-inset); }

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) a {
  color: var(--normal-text-color);
  text-decoration-line: underline;
  text-decoration-style: dotted;
  text-decoration-color: var(--light-text-color);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.2em;
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) a:hover {
  background: var(--hover-background);
  color: var(--normal-text-color);
  text-decoration-style: solid;
  text-decoration-color: var(--normal-text-color);
}

.research-builder-page .research-outline-item a:not(.type-chip, .note-reference-type, .tag-chip, .note-reference-tag),
.research-builder-page .research-outline-item a:not(.type-chip, .note-reference-type, .tag-chip, .note-reference-tag):hover,
.public-research-page main > section a:not(.type-chip, .note-reference-type, .tag-chip, .note-reference-tag),
.public-research-page main > section a:not(.type-chip, .note-reference-type, .tag-chip, .note-reference-tag):hover {
  color: var(--vibrant-color);
  text-decoration-color: currentColor;
}

/* Paint a small inset without reflowing inline links or their neighboring symbols. */
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) a:not(.type-chip, .tag-chip, .note-reference, .button-link, .library-create-button, .research-library-open-link, .research-result-open, .research-more-actions a):hover {
  border-radius: 0.2rem;
  box-shadow: 0 0 0 3px var(--link-hover-background, var(--hover-background));
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(.research-builder-nav, .research-more-menu, .library-overview, footer) :is(a, button, summary):hover:not(:disabled),
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) .research-more-menu[open] > summary {
  --link-hover-background: var(--canvas-hover-background);
  background: var(--canvas-hover-background);
}

.appearance-color-option:hover { background: var(--hover-background); }

.ontology-page.research-results-page { --site-content-max-width: 61.2rem; }
.ontology-page .ontology-result-row.research-result-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--vertical-gap); margin: 0 0 0.75rem; padding: 0; border: 0; background: transparent; box-shadow: none; }
.research-result-cell { position: relative; min-width: 0; margin-inline-start: min(calc(var(--result-depth) * var(--outline-indent)), 25%); padding: calc(0.5rem - 1px) 0.7rem; border: 1px solid var(--cell-border); border-radius: var(--cell-radius); background: var(--cell-background); box-shadow: var(--cell-shadow); cursor: pointer; user-select: none; }
.research-result-context { opacity: 0.5; }
.research-result-cell .outline-node-line { position: relative; pointer-events: none; }
.research-result-cell .outline-node-line a { position: relative; z-index: 1; pointer-events: auto; }
.research-result-cell .research-result-open { position: absolute; inset: 0; border-radius: inherit; }
.research-result-cell a:not(.type-chip, .tag-chip, .research-result-open),
.research-result-cell a:not(.type-chip, .tag-chip, .research-result-open):hover { color: var(--vibrant-color); text-decoration-color: currentColor; }
.research-outline-item[data-arrival-highlight]::after { content: ""; position: absolute; z-index: 2; inset: 0; border-radius: inherit; background: var(--highlight-color); pointer-events: none; animation: research-arrival-highlight 1.5s ease-out both; }
@keyframes research-arrival-highlight { 0%, 25% { opacity: 1; } 100% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .research-outline-item[data-arrival-highlight]::after { animation: research-arrival-highlight 0.6s step-end both; }
}

:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) a:is(:focus, :focus-visible) { outline: none; box-shadow: none; }
:is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) a:focus-visible { outline: 2px solid var(--vibrant-color); outline-offset: 3px; }

.skip-link { position: absolute; z-index: 100; inset-inline-start: 1rem; inset-block-start: -10rem; padding: 0.6rem; border: 0; border-radius: 0.35rem; background: var(--active-field-color); color: var(--normal-text-color); }
.skip-link:focus { inset-block-start: 1rem; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; border: 0; clip: rect(0, 0, 0, 0); white-space: nowrap; }
:focus-visible { outline: 0.2rem solid var(--vibrant-color); outline-offset: 0.2rem; }

@media (max-width: 42rem) {
  body { padding-inline: 1rem; }
  .research-builder-page, .ontology-page, .research-library-page, .public-research-page { padding-inline: 0; }
  .site-shell-header { align-items: flex-start; }
  .share-destination-actions { grid-template-columns: 1fr; }
  .technical-status-grid { grid-template-columns: 1fr; }
  .outline-depth-2, .outline-depth-3, .outline-depth-4, .outline-depth-5, .outline-depth-6, .outline-depth-7, .outline-depth-8 { margin-inline-start: calc(var(--outline-indent) * 2); }
  .note-level-3, .note-level-4, .note-level-5, .note-level-6, .note-level-7, .note-level-8 { margin-inline-start: 4.8rem; }
  .graph-figure { padding: 0.25rem; }
  th, td { padding: 0.5rem; }
  .version-debugging { grid-template-columns: 1fr; }
}

@media (prefers-contrast: more) {
  :root { --page-border: currentColor; }
  .limitation { border: 0.25rem solid currentColor; }
  :is(.research-builder-page, .ontology-page, .research-library-page, .public-research-page) :is(input, select, textarea, button:not(.hierarchy-disclosure), .button-link):focus-visible { box-shadow: 0 0 0 0.25rem var(--vibrant-color); }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

@media (forced-colors: active) {
  .research-entry-shell, .research-command-panel, .research-outline-node, .tag-chip, .type-chip, .identity-chip, .reset-local-dialog-card, .research-library-row { border: 1px solid CanvasText; }
  .relationship-option[aria-selected="true"], .danger-button { background: Highlight !important; color: HighlightText !important; }
}

@media print { .actions, .research-more-menu, #kernel-status, #agent-tools { display: none; } a { color: inherit; } section { break-inside: avoid; } }
