:root {
  --d4-primary: #2563eb; --d4-sidebar: 17rem; --d4-sidebar-compact: 4rem;
  --d4-border: #e2e8f0; --d4-surface: #fff; --d4-canvas: #f6f8fb;
  --d4-text: #172033; --d4-muted: #617087; --d4-accent-text: #4168b8; --d4-focus: #b45309;
}
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
.sidebar-open { overflow: hidden; }
body { background: var(--d4-canvas); color: var(--d4-text); }
button, input, select, textarea { font: inherit; }
a { text-underline-offset: .18em; }
:focus-visible { outline: 3px solid var(--d4-focus); outline-offset: 2px; }
.btn:focus-visible { outline: 3px solid var(--d4-focus); outline-offset: 2px; }
.skip-link { position: fixed; inset-block-start: .75rem; inset-inline-start: .75rem; z-index: 1100; padding: .65rem 1rem; border-radius: .5rem; background: #111827; color: #fff; transform: translateY(-180%); transition: transform .15s ease; }
.skip-link:focus { transform: translateY(0); }
.app-shell { min-height: 100vh; }
.app-sidebar { position: fixed; inset: 0 auto 0 0; z-index: 1030; width: var(--d4-sidebar); display: flex; flex-direction: column; overflow: hidden; background: #0f1f3d; color: #dbe7ff; border-inline-end: 1px solid rgb(255 255 255 / .08); transition: width .18s ease, transform .18s ease; }
.sidebar-brand { min-height: 4.25rem; display: flex; align-items: center; gap: .5rem; padding: .75rem; }
.brand-link { min-width: 0; display: flex; align-items: center; gap: .75rem; color: #fff; text-decoration: none; font-weight: 700; }
.brand-mark { display: grid; place-items: center; flex: 0 0 2.5rem; height: 2.5rem; border-radius: .65rem; background: var(--d4-primary); letter-spacing: -.04em; }
.brand-name, .nav-label { overflow: hidden; white-space: nowrap; }
.sidebar-collapse { margin-inline-start: auto; width: 2.25rem; height: 2.25rem; border: 0; border-radius: .5rem; background: rgb(255 255 255 / .08); color: #fff; }
.sidebar-collapse:hover { background: rgb(255 255 255 / .16); }
.sidebar-nav { display: grid; gap: .2rem; padding: .5rem .65rem; overflow: auto; }
.nav-entry { min-height: 2.75rem; display: flex; align-items: center; gap: .75rem; padding: .6rem .7rem; border-radius: .55rem; color: #c8d6ef; text-decoration: none; cursor: pointer; }
.nav-entry:hover, .nav-entry[aria-current="page"] { color: #fff; background: rgb(77 129 255 / .2); }
.nav-entry[aria-current="page"] { box-shadow: inset 3px 0 0 #78a5ff; }
.nav-icon { display: grid; place-items: center; flex: 0 0 1.75rem; font-size: .9rem; font-weight: 700; }
.nav-group { margin: 0; }
.nav-group > summary { list-style: none; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: "⌄"; margin-inline-start: auto; color: #91a4c6; }
.nav-children { display: grid; gap: .1rem; margin: .15rem 0 .35rem 2.45rem; }
.nav-children a { padding: .45rem .65rem; border-radius: .45rem; color: #aebfdd; text-decoration: none; }
.nav-children a:hover, .nav-children a[aria-current="page"] { color: #fff; background: rgb(255 255 255 / .08); }
.sidebar-logout { margin-block-start: auto; padding: .65rem; border-block-start: 1px solid rgb(255 255 255 / .08); }
.sidebar-account { display: flex; align-items: center; gap: .75rem; margin-block-start: auto; padding: .8rem 1.05rem; border-block-start: 1px solid rgb(255 255 255 / .08); }
.account-avatar { display: grid; place-items: center; flex: 0 0 1.75rem; height: 1.75rem; border-radius: 50%; background: rgb(120 165 255 / .22); color: #fff; font-weight: 700; }
.account-copy { display: grid; min-width: 0; }
.account-copy strong { overflow: hidden; color: #fff; font-size: .82rem; text-overflow: ellipsis; }
.account-copy small { color: #9fb1d1; font-size: .75rem; }
.sidebar-account + .sidebar-logout { margin-block-start: 0; }
.fault-nav-link { display: flex !important; align-items: center; justify-content: space-between; gap: .65rem; }
.fault-count { font-size: .75rem; color: #dbeafe; white-space: nowrap; }
.compact-fault-link { display: none; position: relative; }
.compact-fault-count { position: absolute; inset-block-start: .2rem; inset-inline-end: .15rem; min-width: 1.25rem; padding: .05rem .2rem; border-radius: 999px; background: #fef3c7; color: #78350f; font-size: .65rem; font-variant-numeric: tabular-nums; text-align: center; }
.publication-gate { display: flex; align-items: center; gap: .65rem; margin-block-end: 1rem; padding: .75rem 1rem; border: 1px solid #f59e0b; border-radius: .5rem; background: #fffbeb; color: #78350f; }
.publication-gate a { margin-inline-start: auto; color: #92400e; font-weight: 600; }
.attempt-fault-trigger { display: block; margin-block-start: .3rem; padding: 0; border: 0; background: transparent; color: var(--d4-primary); font-size: .78rem; text-decoration: underline; text-underline-offset: .15em; }
.attempt-fault-region { margin-block-start: .8rem; padding: .85rem 1rem; border-inline-start: 3px solid #60a5fa; background: #eff6ff; }
.attempt-fault-region h3 { margin: 0 0 .55rem; font-size: .95rem; }
.attempt-fault-region ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.attempt-fault-region li { display: grid; grid-template-columns: minmax(10rem, 1fr) minmax(7rem, auto) auto; align-items: center; gap: .7rem; }
.nav-entry-button { width: 100%; border: 0; background: transparent; }
.app-main { min-height: 100vh; margin-inline-start: var(--d4-sidebar); transition: margin-inline-start .18s ease; }
.mobile-header { display: none; }
.page-body { padding-block: 2rem 3rem; }
.panel { background: var(--d4-surface); border: 1px solid var(--d4-border); border-radius: .8rem; padding: clamp(1rem, 2vw, 1.5rem); box-shadow: 0 1px 2px rgb(15 23 42 / .04); }
.panel > h1:first-child { margin-block-start: 0; letter-spacing: -.025em; }
.panel table:not(.table) { width: 100%; border-collapse: collapse; }
.panel table:not(.table) th, .panel table:not(.table) td { padding: .7rem; border-block-end: 1px solid var(--d4-border); text-align: start; vertical-align: top; }
.panel table:not(.table) th { color: #64748b; font-size: .8rem; }
.panel label { display: grid; gap: .4rem; margin-block: .75rem; color: #45546b; font-size: .875rem; font-weight: 600; }
.panel input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]), .panel select, .panel textarea { width: 100%; min-height: 2.45rem; padding: .5rem .7rem; border: 1px solid #cbd5e1; border-radius: .5rem; background: #fff; color: #172033; }
.panel button:not(.btn):not(.btn-close):not(.directory-toggle) { min-height: 2.35rem; padding: .45rem .8rem; border: 1px solid #b9c5d5; border-radius: .5rem; background: #fff; color: #24324a; font-weight: 600; }
.panel button:not(.btn):not(.btn-close):not(.directory-toggle):hover { border-color: #8da5c6; background: #f6f8fb; }
.page-heading { display: flex; justify-content: space-between; gap: 1rem; margin-block-end: 1.25rem; }
.page-heading h1, .section-heading h2 { margin: 0; letter-spacing: -.025em; }
.page-heading p:last-child { margin: .35rem 0 0; color: var(--d4-muted); }
.eyebrow { margin: 0 0 .25rem; color: var(--d4-accent-text); font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.search-panel { margin-block-end: 1.5rem; }
.search-form { display: flex; gap: .65rem; }
.search-form .form-control { min-width: 0; }
.content-section { margin-block: 1.5rem; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-block-end: 1rem; }
.responsive-table { overflow-x: auto; }
.material-table { min-width: 38rem; margin: 0; }
.material-table th { color: #64748b; font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; }
.item-title { color: #172033; font-weight: 650; text-decoration-thickness: 1px; }
.popular-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: .75rem; }
.popular-card { display: flex; align-items: center; gap: .75rem; min-height: 3.75rem; padding: .75rem 1rem; border: 1px solid var(--d4-border); border-radius: .7rem; background: #fff; color: #172033; text-decoration: none; box-shadow: 0 1px 2px rgb(15 23 42 / .03); }
.popular-card:hover { border-color: #a9c3ff; box-shadow: 0 5px 16px rgb(37 99 235 / .08); }
.popular-rank { display: grid; place-items: center; flex: 0 0 2rem; height: 2rem; border-radius: .5rem; background: #e9f0ff; color: #2755ae; font-variant-numeric: tabular-nums; font-weight: 700; }
.pagination-row { display: flex; align-items: center; justify-content: center; gap: .75rem; margin-block-start: 1.25rem; }
.empty-state { padding: 2.5rem 1rem; text-align: center; color: var(--d4-muted); }
.empty-state h3 { color: #334155; }
.material-info { padding-block-end: 1.5rem; margin-block-end: 1.5rem; border-block-end: 1px solid var(--d4-border); }
.material-info h1 { max-width: 34ch; margin-block: .2rem .75rem; text-wrap: balance; }
.primary-metadata { display: flex; flex-wrap: wrap; gap: .35rem 1.25rem; color: #526077; }
.action-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-block-start: 1rem; }
.lead-copy { max-width: 72ch; color: #475569; line-height: 1.8; }
.app-dialog { width: min(38rem, calc(100% - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 0; border-radius: .85rem; color: #172033; box-shadow: 0 24px 70px rgb(15 23 42 / .28); }
.app-dialog::backdrop { background: rgb(15 23 42 / .58); }
.dialog-header, .dialog-actions { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.dialog-header { border-block-end: 1px solid var(--d4-border); }
.dialog-header h2 { margin: 0; font-size: 1.2rem; }
.dialog-actions { justify-content: end; border-block-start: 1px solid var(--d4-border); }
.dialog-actions[hidden] { display: none; }
.path-line { display: block; margin-block: .2rem; color: var(--d4-muted); overflow-wrap: anywhere; }
.compact-empty { padding: 1rem; text-align: start; }
.link-button { appearance: none; border: 0; padding: 0; background: transparent; color: var(--d4-primary); font: inherit; text-align: start; cursor: pointer; text-decoration: underline; text-underline-offset: .16em; }
.detail-list { display: grid; margin: 0; padding: .5rem 1.25rem; }
.detail-list div { display: grid; grid-template-columns: minmax(7rem, .4fr) 1fr; gap: 1rem; padding-block: .7rem; border-block-end: 1px solid #edf1f6; }
.detail-list div:last-child { border: 0; }
.detail-list dt { color: #64748b; font-weight: 500; }
.detail-list dd { margin: 0; }
.break-all { overflow-wrap: anywhere; }
.term-header { padding-block-end: 1.5rem; margin-block-end: 1.5rem; border-block-end: 1px solid var(--d4-border); }
.term-header h1 { margin-block: .2rem 1rem; }
.term-definition { max-width: 78ch; }
.fact-list { display: grid; gap: .5rem; padding-inline-start: 1.4rem; margin-block-end: 1.25rem; }
.description-unavailable { margin: .75rem 0 0; color: #526077; font-weight: 600; }
.evidence-groups { display: grid; gap: .85rem; }
.evidence-card { padding: 1rem; border: 1px solid var(--d4-border); border-radius: .7rem; background: #fbfcfe; }
.evidence-card h3 { margin: 0; font-size: 1rem; }
.source-meta { margin: .25rem 0 .8rem; color: #64748b; font-size: .85rem; }
.excerpt-list { display: grid; gap: .55rem; }
.excerpt-preview { display: -webkit-box; overflow: hidden; margin: 0; color: #46556d; line-height: 1.65; white-space: pre-wrap; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.back-link { display: inline-block; margin-block-end: 1rem; }
.evidence-full-list { display: grid; gap: 0; }
.full-evidence-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding-block: 1rem; border-block-end: 1px solid var(--d4-border); }
.full-evidence-item:first-child { padding-block-start: 0; }
.full-evidence-item:last-of-type { padding-block-end: 0; border: 0; }
.source-link { display: inline-block; margin-block-start: .5rem; font-size: .85rem; }
.dialog-body { max-height: 55vh; overflow: auto; padding: 1.25rem; }
.dialog-body pre { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.term-list { display: grid; }
.term-list-item { padding-block: 1.1rem; border-block-end: 1px solid var(--d4-border); }
.term-list-item:first-child { padding-block-start: 0; }
.term-list-item:last-child { padding-block-end: 0; border: 0; }
.term-list-item h3 { margin: 0 0 .5rem; font-size: 1.05rem; }
.term-list-item h2 { margin: 0 0 .5rem; font-size: 1.1rem; }
.term-description-preview { display: -webkit-box; overflow: hidden; margin: 0; color: #46556d; line-height: 1.65; white-space: pre-wrap; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.search-results { display: grid; }
.search-result { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: 1rem; border-block-end: 1px solid var(--d4-border); }
.search-result:first-child { padding-block-start: 0; }
.search-result:last-child { padding-block-end: 0; border: 0; }
.search-result h2 { margin: 0; font-size: 1.05rem; }
.subnav { display: flex; gap: .25rem; overflow-x: auto; margin-block-end: 1.25rem; padding: .25rem; border: 1px solid var(--d4-border); border-radius: .7rem; background: #fff; }
.subnav a { flex: 0 0 auto; padding: .55rem .9rem; border-radius: .5rem; color: #526077; text-decoration: none; font-weight: 600; }
.subnav a:hover, .subnav a[aria-current="page"] { background: #eaf1ff; color: #2455b5; }
.pending-grid { display: grid; gap: 1rem; }
.pending-card h2 { margin: 0 0 1.25rem; overflow-wrap: anywhere; font-size: 1.05rem; }
.field { display: grid; gap: .4rem; }
.field label { margin: 0; color: #45546b; font-size: .875rem; font-weight: 600; }
.field label span { color: var(--d4-muted); font-weight: 400; }
.field-wide { margin-block: 1rem; }
.metadata-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.configuration-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; align-items: start; }
.configuration-group { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--d4-border); border-radius: .7rem; }
.configuration-group legend { padding-inline: .35rem; color: var(--d4-text); font-weight: 700; }
.configuration-form .card-actions { margin-block-start: 1rem; }
.card-actions { display: flex; justify-content: end; padding-block-start: 1rem; border-block-start: 1px solid var(--d4-border); }
.success-card { border-color: #a7d8b5; background: #f3fbf5; }
.wide-dialog { width: min(64rem, calc(100% - 2rem)); }
.attempt-table { min-width: 48rem; }
.fault-table { min-width: 58rem; }
.attempt-table small { display: block; color: var(--d4-muted); font-family: ui-monospace, monospace; }
.status-pill { display: inline-flex; align-items: center; min-height: 1.65rem; padding: .2rem .55rem; border-radius: 999px; background: #e9eef5; color: #45546b; font-size: .8rem; font-weight: 650; white-space: nowrap; }
.status-processing, .status-text_ready { background: #e8f0ff; color: #2755ae; }
.status-failed { background: #ffebed; color: #ae2634; }
.status-active { background: #e7f7eb; color: #27773b; }
.status-replaced, .status-withdrawn { background: #eef1f5; color: #5b6575; }
.table-actions { display: flex; flex-wrap: wrap; gap: .4rem; }
.table-actions form { margin: 0; }
[aria-disabled="true"] { cursor: not-allowed; opacity: .55; }
[data-unavailable-activated="true"] { outline: 3px solid #ef9a9a; }
.history-table code { display: block; max-width: 11rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.version-actions { display: flex; align-items: center; gap: .4rem; }
.selection-list { display: grid; }
.selection-list form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-block: .8rem; border-block-end: 1px solid var(--d4-border); }
.selection-list form:last-child { border: 0; }
.selection-list span { overflow-wrap: anywhere; }
.reader-surface:fullscreen { overflow: auto; padding: 1rem; background: var(--d4-canvas); }
.reader-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .75rem; margin-block-end: 1rem; }
[data-reader-surface] { container-type: inline-size; }
.reader-layout { display: grid; grid-template-columns: minmax(14rem, 18rem) minmax(0, 1fr); align-items: start; gap: 1.5rem; }
.reader-layout > * { min-width: 0; }
.reader-directory { --directory-control: 1.75rem; position: sticky; top: 1rem; max-height: calc(100dvh - 2rem); overflow: auto; padding: .75rem; border: 1px solid var(--d4-border); border-radius: .7rem; background: var(--d4-surface); font-size: .875rem; line-height: 1.5; }
.reader-directory summary { cursor: pointer; padding: .25rem .25rem .5rem; color: var(--d4-text); font-weight: 600; }
.reader-directory ol { display: grid; gap: .125rem; margin: 0; padding-inline-start: 1rem; list-style: none; }
.reader-directory [data-reader-directory] { padding: .25rem 0 0; }
.reader-directory [data-reader-directory] > li + li { margin-block-start: .5rem; }
.material-directory { list-style: none; padding-inline-start: 0; }
.reader-directory a[aria-current="page"] { color: var(--d4-text); font-weight: 700; background: var(--d4-canvas); box-shadow: inset 2px 0 var(--d4-primary); }
.reader-directory ol[hidden] { display: none; }
.reader-directory li { min-width: 0; margin: 0; }
.reader-directory a { overflow-wrap: anywhere; color: var(--d4-accent-text); text-decoration: none; }
.reader-directory [data-reader-directory] > li > .directory-row > a { font-weight: 600; }
.directory-row { display: grid; grid-template-columns: var(--directory-control) minmax(0, 1fr); align-items: start; column-gap: .125rem; }
.directory-row > a { grid-column: 2; min-height: var(--directory-control); padding: .25rem .375rem; border-radius: .25rem; line-height: 1.5; }
.reader-directory .directory-disclosure { display: grid; grid-template-columns: var(--directory-control) minmax(0, 1fr); align-items: start; column-gap: .125rem; padding: 0; min-height: var(--directory-control); font-weight: inherit; list-style: none; }
.directory-disclosure::-webkit-details-marker { display: none; }
.directory-disclosure::marker { content: ""; }
.directory-disclosure > a { min-height: var(--directory-control); padding: .25rem .375rem; border-radius: .25rem; }
.directory-caret { display: grid; place-items: center; min-height: var(--directory-control); color: var(--d4-muted); }
.directory-caret::before { content: "▸"; }
.directory-native[open] > .directory-disclosure > .directory-caret::before { content: "▾"; }
[data-native-unit] > details > summary > a { font-weight: 600; }
.reader-directory .directory-toggle { grid-column: 1; grid-row: 1; width: var(--directory-control); min-height: var(--directory-control); padding: 0; border: 0; border-radius: .25rem; background: transparent; color: var(--d4-muted); cursor: pointer; line-height: 1; }
.reader-directory li[role="status"] { padding: .25rem .375rem .5rem; color: var(--d4-muted); }
@media (hover: hover) {
  .directory-row > a:hover { background: var(--d4-canvas); text-decoration: underline; }
  .reader-directory .directory-toggle:hover { background: var(--d4-canvas); color: var(--d4-text); }
}
@media (pointer: coarse) { .reader-directory { --directory-control: 2.75rem; } }
.continuous-reading { display: flex; justify-content: space-between; gap: 1rem; margin-block-start: 2rem; padding-block-start: 1rem; border-block-start: 1px solid var(--d4-border); }
.continuous-reading a:last-child { margin-inline-start: auto; text-align: end; }
.sidebar-compact .app-sidebar { width: var(--d4-sidebar-compact); }
.sidebar-compact .app-main { margin-inline-start: var(--d4-sidebar-compact); }
.sidebar-compact .app-sidebar .nav-label, .sidebar-compact .app-sidebar .nav-entry::after, .sidebar-compact .app-sidebar .nav-children { display: none; }
.sidebar-compact .sidebar-brand { justify-content: center; padding-inline: .5rem; }
.sidebar-compact .brand-link { display: none; }
.sidebar-compact .sidebar-collapse { margin-inline-start: 0; background: rgb(255 255 255 / .12); color: #fff; }
.sidebar-compact .sidebar-account { justify-content: center; padding-inline: .5rem; }
.sidebar-compact .nav-entry { justify-content: center; padding-inline: .4rem; }
.sidebar-compact .compact-fault-link { display: flex; }
.auth-page { min-height: 100vh; display: grid; place-items: center; padding: 1.5rem; background: radial-gradient(circle at top, #edf4ff, #f7f9fc 50%); }
.auth-container { width: min(100%, 28rem); }
.sidebar-backdrop { position: fixed; inset: 0; z-index: 1025; background: rgb(15 23 42 / .5); }
@media (max-width: 991.98px) {
  .app-sidebar { transform: translateX(-105%); width: min(19rem, 86vw); box-shadow: 10px 0 30px rgb(15 23 42 / .18); }
  .sidebar-open .app-sidebar { transform: translateX(0); }
  .sidebar-open .sidebar-backdrop { display: block; }
  .app-main, .sidebar-compact .app-main { margin-inline-start: 0; }
  .mobile-header { min-height: 3.75rem; display: flex; align-items: center; gap: .75rem; padding: .6rem 1rem; background: #fff; border-block-end: 1px solid var(--d4-border); }
  .mobile-brand { color: #172033; text-decoration: none; font-weight: 700; }
  .sidebar-collapse { display: none; }
}
@media (max-width: 767.98px) { .metadata-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .configuration-grid { grid-template-columns: 1fr; } }
@media (max-width: 767.98px) { .reader-layout { grid-template-columns: minmax(0, 1fr); } .reader-directory { position: static; max-height: 22rem; } }
@container (max-width: 48rem) { .reader-layout { grid-template-columns: minmax(0, 1fr); } .reader-directory { position: static; max-height: 22rem; } }
@media (max-width: 575.98px) { .search-form { align-items: stretch; flex-direction: column; } .detail-list div { grid-template-columns: 1fr; gap: .2rem; } .full-evidence-item { grid-template-columns: 1fr; } }
@media (max-width: 575.98px) { input, select, textarea, .form-control, .form-select { font-size: 1rem; } .btn, button { min-height: 2.75rem; } }
@media (max-width: 399.98px) { .metadata-fields { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; } }
