/*
 * Organization of Power — Signal & Structure
 * Production design system: G6 / T2 / P5
 * Dense Instrument / IBM Plex / Ice–Ultramarine–Amber
 */

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex/IBMPlexSans-Regular.5aaadb685d3c.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex/IBMPlexSans-Italic.2cf7d9cd7a9e.woff2") format("woff2");
    font-style: italic;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex/IBMPlexSans-Medium.02ec16345450.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex/IBMPlexSans-SemiBold.51d76d33ef85.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Sans";
    src: url("../fonts/ibm-plex/IBMPlexSans-Bold.ea5f696de389.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../fonts/ibm-plex/IBMPlexMono-Regular.b51685c998a0.woff2") format("woff2");
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../fonts/ibm-plex/IBMPlexMono-Medium.91abacd323ba.woff2") format("woff2");
    font-style: normal;
    font-weight: 500;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../fonts/ibm-plex/IBMPlexMono-SemiBold.7d69bd02da7b.woff2") format("woff2");
    font-style: normal;
    font-weight: 600;
    font-display: swap;
}

@font-face {
    font-family: "IBM Plex Mono";
    src: url("../fonts/ibm-plex/IBMPlexMono-Bold.11da63e3f137.woff2") format("woff2");
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

:root {
    --font-sans: "IBM Plex Sans", "Noto Sans TC", "Noto Sans KR", "PingFang TC", "Microsoft JhengHei", "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;
    --font-mono: "IBM Plex Mono", "Cascadia Mono", Consolas, monospace;
    --display-font: var(--font-sans);
    --body-font: var(--font-sans);
    --ui-font: var(--font-sans);
    --mono-font: var(--font-mono);
    --ink: var(--text);
    --reading-width: 68ch;
    --measure-wide: 78ch;
    --rule: 1px solid var(--border);
    --rule-strong: 2px solid var(--panel);
    --control-height: 40px;
    --action-interactive: #0b6fb3;
    --danger: #a83232;
    --space-1: 0.375rem;
    --space-2: 0.625rem;
    --space-3: 1rem;
    --space-4: 1.5rem;
    --space-5: 2.25rem;
    --space-6: 3.25rem;
}

/* Actions and controls */

.action,
.action-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: var(--control-height);
    padding: 0.5rem 0.875rem;
    border: 1px solid var(--panel);
    border-radius: 0;
    background: var(--surface);
    color: var(--panel);
    cursor: pointer;
    font-family: var(--ui-font);
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
}

.action:hover,
.action:focus-visible {
    text-decoration: none;
}

.action--primary {
    border-color: var(--panel);
    background: var(--panel);
    color: var(--panel-text);
}

.action--primary:hover,
.action--primary:focus-visible {
    border-color: var(--link);
    background: var(--link);
    color: #fff;
}

.action--secondary:hover,
.action--secondary:focus-visible {
    border-color: var(--action-interactive);
    color: var(--action-interactive);
}

.action--danger {
    border-color: var(--danger);
    color: var(--danger);
}

.action--danger:hover,
.action--danger:focus-visible {
    border-color: var(--danger);
    background: var(--danger);
    color: #fff;
}

.action--compact {
    min-height: 36px;
    padding: 0.38rem 0.7rem;
    font-size: 0.82rem;
}

.action:disabled,
.action[aria-disabled="true"],
.action-state {
    border-color: var(--border);
    background: var(--surface-muted);
    color: var(--muted);
    cursor: not-allowed;
}

.action-group {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.625rem;
}

.action-group--separated {
    justify-content: space-between;
}

.text-action {
    display: inline-flex;
    align-items: center;
    min-height: var(--control-height);
    color: var(--text);
    font-family: var(--ui-font);
    font-weight: 600;
    text-decoration: none;
    text-underline-offset: 0.2em;
}

.text-action:hover,
.text-action:focus-visible {
    color: var(--action-interactive);
    text-decoration: underline;
    text-decoration-thickness: 2px;
}

.action-state__detail {
    margin-left: 0.35rem;
    font-weight: 400;
}

.action-state {
    cursor: default;
}

.resource-row__actions > * {
    white-space: nowrap;
}

.text-action__detail {
    margin-left: 0.25rem;
    font-size: 0.8rem;
    font-weight: 400;
}

.pagination__status {
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

@media (forced-colors: active) {
    .action,
    .action-state {
        border: 1px solid ButtonText;
    }

    .action--primary {
        background: ButtonText;
        color: ButtonFace;
    }

    .action:disabled,
    .action[aria-disabled="true"],
    .action-state {
        border-color: GrayText;
        color: GrayText;
    }
}

html {
    font-family: var(--font-sans);
    font-synthesis: none;
    text-rendering: optimizeLegibility;
}

body {
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.65;
}

button,
input,
select,
textarea {
    font-family: var(--ui-font);
}

strong,
b {
    font-weight: 600;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--text);
    font-family: var(--display-font);
    font-weight: 600;
    letter-spacing: -0.018em;
    text-wrap: balance;
}

h1 {
    font-size: clamp(2rem, 4vw, 3.25rem);
    line-height: 1.02;
}

h2 {
    font-size: clamp(1.45rem, 2.2vw, 1.85rem);
    line-height: 1.15;
}

h3 {
    font-size: clamp(1.1rem, 1.6vw, 1.3rem);
    line-height: 1.25;
}

h4,
h5,
h6 {
    line-height: 1.3;
}

p,
li,
dd {
    hanging-punctuation: first last;
}

a {
    text-decoration-thickness: 1px;
    text-underline-offset: 0.18em;
}

a:hover {
    text-decoration-thickness: 2px;
}

.site-name,
.page-title,
.section-breadcrumb-title h1,
.home-hero h1,
.team-profile-heading h1 {
    font-weight: 600;
}

.page-title,
.section-breadcrumb-title h1 {
    letter-spacing: -0.032em;
}

.page-title > a,
.page-title > span[aria-hidden="true"],
.section-breadcrumb-title li:not(:last-child),
.page-kicker,
.home-hero__eyebrow,
.home-pathway__role,
.metadata,
.record-meta,
.news-feed-meta,
.home-current-work__meta,
.training-video-meta,
.training-resource-meta,
.resource-row__metadata {
    font-family: var(--mono-font);
}

.section-breadcrumb-title li:not(:last-child),
.page-title > a,
.page-title > span[aria-hidden="true"] {
    font-weight: 600;
}

.document-content,
.news-detail-body,
.about-content-section,
.training-detail__section,
.project-section-block {
    line-height: 1.72;
}

.document-content section > p,
.document-content section > ul,
.document-content section > ol,
.news-detail-body > p,
.news-detail-body > ul,
.news-detail-body > ol,
.training-detail__section > p,
.about-content-section p {
    max-width: var(--reading-width);
}

.page-intro,
.downloads-intro,
.audit-intro,
.research-approaches__shared-introduction,
.research-streams__shared-introduction {
    max-width: var(--reading-width);
    font-size: 1.05rem;
    line-height: 1.68;
}

.document-content section {
    margin-bottom: var(--space-6);
}

.document-content h2,
.team-profile section h3,
.training-detail__section > h2 {
    margin-bottom: var(--space-3);
    padding-bottom: 0.65rem;
    border-bottom: var(--rule);
}

.document-content h2::after,
.team-profile section h3::after,
.training-detail__section > h2::after {
    display: block;
    width: 3rem;
    height: 3px;
    margin-top: 0.65rem;
    background: var(--signal);
    content: "";
}

/* Collection controls */

.index-filter-panel {
    display: grid;
    gap: 0;
    margin-bottom: var(--space-5);
    padding: 0;
    border-top: var(--rule-strong);
    border-bottom: var(--rule);
    background: var(--surface);
}

.filter-bar,
.filter-select-form {
    min-height: 54px;
    gap: 0.55rem;
    margin: 0;
    padding: 0.45rem 0.75rem;
}

.index-filter-panel > * + * {
    border-top: var(--rule);
}

.index-filter-panel > .active-filter {
    min-height: 54px;
    gap: 0.55rem;
    margin: 0;
    padding: 0.45rem 0.75rem;
    border-top: var(--rule);
}

.active-filter__clear {
    margin-left: 0.2rem;
    font-family: var(--ui-font);
    font-size: 0.82rem;
}

.filter-label,
.audit-filter-label,
.audit-filter-chip,
.filter-chip,
.filter-count,
.filter-select,
.active-filter {
    font-family: var(--mono-font);
}

.filter-label,
.audit-filter-label {
    min-width: 5.5rem;
    margin-right: 0.2rem;
    color: var(--muted);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.065em;
}

.filter-chip,
.audit-filter-chip,
.descriptor-chip,
.country-chip,
.tag-list li {
    min-height: 36px;
    padding: 0.42rem 0.7rem;
    border: 1px solid var(--border-strong);
    border-radius: 0;
    background: transparent;
    line-height: 1.25;
}

.filter-chip,
.audit-filter-chip {
    font-size: 0.82rem;
}

.filter-chip:hover,
.audit-filter-chip:hover,
.descriptor-chip:hover {
    border-color: var(--link);
    background: var(--link-soft);
    color: var(--link);
    text-decoration: none;
}

.filter-chip--active,
.audit-filter-chip--active {
    border-color: var(--panel);
    background: var(--panel);
    box-shadow: inset 0 calc(-1 * var(--signal-rail-block)) 0 var(--signal);
    color: var(--panel-text);
    font-weight: 600;
}

.filter-chip--active:hover,
.audit-filter-chip--active:hover {
    border-color: var(--panel);
    background: var(--panel);
    color: var(--panel-text);
}

.filter-count {
    min-width: 1.55rem;
    margin-left: 0.45rem;
    padding: 0.12rem 0.35rem;
    border-radius: 0;
    background: var(--surface-strong);
    color: var(--text);
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums;
}

.filter-chip--active .filter-count {
    background: var(--signal);
    color: var(--panel);
}

.filter-select,
.filter-select,
.nk-page-shell input,
.nk-page-shell select,
.nk-page-shell textarea,
.resource-filter-field input,
.resource-filter-field select,
.resource-edit-form input,
.resource-edit-form select,
.resource-edit-form textarea {
    border-radius: 0;
}

/* Candidate A forms: shared field anatomy, contextual density. */

.form-region {
    min-width: 0;
    padding: clamp(1rem, 3vw, 1.75rem);
    border: 0;
    border-top: var(--rule-strong);
    border-bottom: var(--rule);
    border-radius: 0;
    background: var(--surface);
}

.form-region--narrow { max-width: 720px; }
.auth-container { width: min(460px, 100%); margin: 30px auto; }
.auth-intro, .auth-footer { color: var(--muted); }
.auth-footer { margin-top: 1.5rem; font-size: 0.9rem; }
.field-stack { display: grid; gap: 1.5rem; }
.field-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 1rem; }
.field, .field-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.field { display: grid; align-content: start; gap: 0.4rem; }
.field-group { display: block; }
.field__label, .form-region .field__label {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    color: var(--text);
    font-family: var(--ui-font);
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: normal;
    text-transform: none;
}
.field__requirement {
    display: inline-block;
    margin-left: 0.5rem;
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.7rem;
    font-weight: 400;
}
.field__help, .form-region .field__help {
    margin: 0;
    color: var(--muted);
    font-size: 0.85rem;
    line-height: 1.5;
    overflow-wrap: anywhere;
}
.field__error, .form-region .field__error {
    margin: 0;
    padding: 0;
    list-style: none;
    color: var(--danger);
    font-size: 0.85rem;
    overflow-wrap: anywhere;
}
.field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.field select, .field textarea,
.form-region .field input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
.form-region .field select, .form-region .field textarea,
.filter-select {
    box-sizing: border-box;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border: 1px solid var(--muted);
    border-radius: 0;
    background: var(--surface);
    color: var(--text);
    box-shadow: none;
    font-family: var(--ui-font);
    font-size: 1rem;
    line-height: 1.4;
}
.filter-select { width: auto; }
.field textarea { min-height: 8rem; resize: vertical; }
.field input[type="checkbox"], .field input[type="radio"] {
    width: 1.15rem;
    height: 1.15rem;
    margin: 0 0.5rem 0 0;
    accent-color: var(--panel);
}
.field-group > div > div > label { display: flex; align-items: center; min-height: 44px; font-weight: 400; }
.field input:focus, .field select:focus, .field textarea:focus, .filter-select:focus {
    outline: 3px solid var(--link);
    outline-offset: 3px;
}
.field [aria-invalid="true"], .form-region .field [aria-invalid="true"] {
    border-color: var(--danger);
    border-left-width: 4px;
}
.field input:disabled, .field select:disabled, .field textarea:disabled {
    background: var(--surface-muted);
    color: var(--muted);
    cursor: not-allowed;
}
.validation-summary {
    margin: 0 0 1.5rem;
    padding: 0.8rem 1rem;
    border-top: 3px solid var(--danger);
    border-bottom: 1px solid var(--danger);
    background: #fff5f3;
    color: var(--danger);
    overflow-wrap: anywhere;
}
.validation-summary p { margin: 0; }
.validation-summary ul { margin: 0.4rem 0 0; padding-left: 1.25rem; }
.validation-summary a { color: inherit; text-decoration: underline; }
.form-actions, .form-submit { margin-top: 1.5rem; }
.form-workbench-layout { display: grid; grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.3fr); gap: 1.5rem; align-items: start; }
.form-region.article-search-form { display: grid; gap: 1rem; border-radius: 0; }
.form-region .search-grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); align-items: start; }
.form-region .query-builder { display: grid; gap: 1rem; padding: 0; border: 0; border-radius: 0; background: transparent; }
.form-region .rule-group { display: grid; gap: 1rem; }
.form-region .rule-row {
    display: grid;
    gap: 0.75rem;
    align-items: end;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 1rem 0;
    border: 0;
    border-top: var(--rule);
    border-radius: 0;
}
.form-region .rule-row > .action { justify-self: start; }
.form-region .boolean-query-input { font-family: var(--mono-font); }
@media (max-width: 700px) {
    .form-workbench-layout, .form-region .rule-row, .form-region .search-grid, .field-grid { grid-template-columns: minmax(0, 1fr); }
    .form-region .rule-row:first-child .rule-combinator { display: none; }
}
@media (forced-colors: active) {
    .validation-summary { border-color: CanvasText; background: Canvas; color: CanvasText; }
    .field [aria-invalid="true"], .form-region .field [aria-invalid="true"] { border-color: CanvasText; }
    .field__error, .form-region .field__error { color: CanvasText; }
    .field input:focus, .field select:focus, .field textarea:focus, .filter-select:focus { outline-color: Highlight; }
}

/* Ruled feedback: explicit text carries the state; color reinforces it. */
:root {
    --feedback-info: #0b6fb3;
    --feedback-warning: #825b08;
    --feedback-success: #286141;
}
.feedback {
    --feedback-color: var(--feedback-info);
    margin: 1rem 0;
    padding: 1rem 1.25rem;
    border: 0;
    border-top: 3px solid var(--feedback-color);
    border-bottom: var(--rule);
    border-radius: 0;
    background: var(--surface);
    color: var(--text);
    overflow-wrap: anywhere;
}
.feedback--warning, .feedback--stale { --feedback-color: var(--feedback-warning); }
.feedback--error { --feedback-color: var(--danger); }
.feedback--success { --feedback-color: var(--feedback-success); }
.feedback--empty, .feedback--access, .feedback--unavailable { --feedback-color: var(--muted); }
.feedback--compact { padding: 0.6rem 0.8rem; font-size: 0.9rem; }
.feedback .feedback__label {
    display: block;
    margin: 0 0 0.4rem;
    color: var(--feedback-color);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}
.feedback p { margin: 0; }
.feedback p + p { margin-top: 0.4rem; }
.feedback__actions { margin-top: 0.75rem; }
.feedback[hidden] { display: none; }
@media (forced-colors: active) {
    .feedback { border-color: CanvasText; background: Canvas; color: CanvasText; }
    .feedback .feedback__label { color: CanvasText; }
}

/* Borderless indexes and relation lists */

.section-heading,
.resource-section__heading,
.audit-family__heading {
    margin: 0;
    padding: 0.65rem 0.75rem;
    border-top: var(--rule-strong);
    border-bottom: var(--rule);
    background: var(--surface-strong);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.07em;
    line-height: 1.35;
    text-transform: uppercase;
}

.record-list,
.training-video-list,
.training-resource-list,
.news-feed,
.research-stream-list,
.resource-index,
.audit-rule-index {
    border-top: 0;
    border-bottom: var(--rule);
}

.record-row,
.training-video-row,
.training-resource-row,
.news-feed-row,
.research-stream-row,
.resource-row,
.audit-rule-row {
    position: relative;
    padding: 1.35rem 0.75rem;
    border-bottom: var(--rule);
    background: transparent;
}

.record-row:hover,
.training-video-row:hover,
.training-resource-row:hover,
.news-feed-row:hover,
.research-stream-row:hover,
.resource-row:hover,
.audit-rule-row:hover,
.record-row:focus-within,
.training-video-row:focus-within,
.training-resource-row:focus-within,
.news-feed-row:focus-within,
.research-stream-row:focus-within,
.resource-row:focus-within,
.audit-rule-row:focus-within {
    background: var(--surface);
    box-shadow: inset var(--signal-rail-inline) 0 0 var(--signal);
}

.record-title,
.training-video-title,
.training-resource-title,
.news-feed-title,
.resource-row__title,
.research-stream-row h2 {
    margin: 0 0 0.45rem;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.3;
}

.record-title a,
.training-video-title a,
.training-resource-title a,
.news-feed-title a,
.resource-row__title a,
.research-stream-title a {
    color: var(--text);
    text-decoration: none;
}

.record-row:hover .record-title a,
.training-video-row:hover .training-video-title a,
.training-resource-row:hover .training-resource-title a,
.news-feed-row:hover .news-feed-title a,
.research-stream-row:hover .research-stream-title a,
.resource-row:hover .resource-row__title a,
.record-row:focus-within .record-title a,
.training-video-row:focus-within .training-video-title a,
.training-resource-row:focus-within .training-resource-title a,
.news-feed-row:focus-within .news-feed-title a,
.research-stream-row:focus-within .research-stream-title a,
.resource-row:focus-within .resource-row__title a,
.record-title a:hover,
.training-video-title a:hover,
.training-resource-title a:hover,
.news-feed-title a:hover,
.resource-row__title a:hover,
.research-stream-title a:hover,
.record-title a:focus-visible,
.training-video-title a:focus-visible,
.training-resource-title a:focus-visible,
.news-feed-title a:focus-visible,
.resource-row__title a:focus-visible,
.research-stream-title a:focus-visible {
    color: var(--link);
    text-decoration: underline;
    text-decoration-thickness: 2px;
    text-underline-offset: 0.2em;
}

.record-summary,
.training-video-summary,
.training-resource-summary,
.news-feed-summary,
.database-record__summary,
.resource-row__description,
.research-stream-summary {
    max-width: var(--measure-wide);
    margin: 0;
    line-height: 1.62;
}

.research-stream-summary p {
    margin: 0;
}

.research-stream-summary p + p {
    margin-top: 0.7rem;
}

/* Editorial detail decks: hierarchy without reusing the interactive cyan rail. */

.detail-deck {
    max-width: var(--measure-wide);
    margin: 0 0 var(--space-6);
    padding: 1rem 0.85rem 1.1rem;
    border-top: var(--rule-strong);
    border-bottom: var(--rule);
    background: var(--surface);
}

.detail-deck__meta {
    margin: 0;
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.015em;
    line-height: 1.5;
}

.detail-deck__meta time {
    color: var(--text);
    font-weight: 600;
}

.detail-deck__meta a {
    font-weight: 600;
}

.detail-deck__summary {
    max-width: var(--reading-width);
    margin: 0.75rem 0 0;
    color: var(--text);
    font-size: clamp(1.05rem, 1.5vw, 1.18rem);
    line-height: 1.62;
}

.detail-deck__descriptors {
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: var(--rule);
}

.database-record__heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 1rem;
}

.database-record__heading .record-title {
    margin: 0;
}

.database-record__heading .database-record__actions {
    justify-content: flex-end;
    gap: 0.55rem 1rem;
    margin: 0;
    padding: 0;
    border: 0;
    font-family: var(--mono-font);
    font-size: 0.75rem;
    letter-spacing: 0.02em;
}

/* Mission statements remain editable text, presented as compact dossiers. */

#mission .about-section-items {
    gap: 1px;
    padding: 1px;
    border-left: var(--signal-rail-inline) solid var(--signal);
    background: var(--border-strong);
    counter-reset: mission-statement;
}

#mission .about-section-item {
    min-height: 12rem;
    padding: 1.35rem 1.4rem 1.5rem;
    border: 0;
    background: var(--surface);
    counter-increment: mission-statement;
}

#mission .about-section-item::before {
    display: block;
    margin-bottom: 0.85rem;
    color: var(--signal-amber);
    content: "MISSION 0" counter(mission-statement);
    font-family: var(--mono-font);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

#mission .about-section-item h3 {
    max-width: 26ch;
    margin-bottom: 0.8rem;
    font-size: 1.18rem;
    line-height: 1.28;
}

#mission .about-section-item ul {
    margin-bottom: 0;
}

#mission .about-section-item li::marker {
    color: var(--link);
}

.record-meta,
.metadata,
.training-video-meta,
.training-resource-meta,
.news-feed-meta,
.resource-row__metadata {
    color: var(--muted);
    font-size: 0.78rem;
    letter-spacing: 0.005em;
}

.descriptor-chip,
.country-chip,
.tag-list li {
    min-height: 0;
    font-family: var(--mono-font);
    font-size: 0.75rem;
}

.linked-record-list,
.resource-list,
.team-profile-list,
.training-material-list,
.training-offering-list {
    gap: 0;
    max-width: var(--measure-wide);
    margin: 0;
    padding-left: 1.35rem;
}

.linked-record-list li,
.resource-list li,
.team-profile-list li,
.training-material-list li,
.training-offering-list li {
    padding: 0.45rem 0 0.45rem 0.25rem;
}

/* Sticky contents and database navigation are instrument panels. */

.sticky-index,
.explore-sidebar {
    padding: 1rem;
    border: 0;
    border-top: 4px solid var(--signal);
    background: var(--panel);
    color: var(--panel-text);
}

.sticky-index__title,
.explore-sidebar__title {
    margin-bottom: 0.65rem;
    color: var(--signal);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
}

.sticky-index nav,
.explore-sidebar nav {
    gap: 0;
}

.sticky-index a,
.explore-sidebar a,
.explore-sidebar__disabled {
    display: block;
    padding: 0.55rem 0.65rem;
    border-left: var(--signal-rail-inline) solid transparent;
    color: var(--panel-muted);
    font-family: var(--ui-font);
    font-size: 0.86rem;
    line-height: 1.35;
}

.sticky-index a:hover,
.explore-sidebar a:hover,
.explore-sidebar a[aria-current="page"] {
    border-left-color: var(--signal);
    background: var(--panel-secondary);
    color: var(--panel-text);
    text-decoration: none;
}

.explore-sidebar a[aria-current="page"] {
    color: var(--signal);
    font-weight: 600;
}

/* Documentary citations */

.publication-citation-box,
.database-citation {
    max-width: var(--measure-wide);
    margin: 1rem 0;
    padding: 1.1rem 1.25rem;
    border: var(--rule);
    border-left: 6px solid var(--signal-amber);
    background: var(--surface);
    color: var(--text);
    font-size: 0.98rem;
    line-height: 1.65;
}

.publication-record-row .publication-citation {
    max-width: var(--measure-wide);
    margin: 0.35rem 0 0;
    color: var(--muted);
    font-size: 0.93rem;
    line-height: 1.58;
}

.publication-record-row .publication-citation a {
    color: inherit;
    text-decoration-color: var(--border-strong);
}

/* Tables and structured data */

.table-wrapper,
.table-scroll,
.nk-table-scroll {
    overflow-x: auto;
    background: var(--surface);
    max-width: 100%;
    min-width: 0;
}

table {
    width: 100%;
    border-collapse: collapse;
    background: var(--surface);
    border-top: 2px solid var(--panel);
}

table caption {
    padding: 0.75rem;
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-align: left;
    text-transform: uppercase;
}

table thead th {
    padding: 0.7rem 0.75rem;
    border-right: 0;
    border-bottom: var(--rule);
    background: var(--surface);
    color: var(--text);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    line-height: 1.35;
    text-align: left;
    text-transform: none;
    vertical-align: bottom;
    overflow-wrap: anywhere;
}

table tbody th,
table tbody td {
    padding: 0.72rem 0.75rem;
    border-bottom: var(--rule);
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
    border-left: 0;
    border-right: 0;
}

table.resource-table {
    min-width: 40rem;
}

.nk-data-table.table--compact {
    min-width: 36rem;
}

table.table--compact th,
table.table--compact td {
    padding: 0.5rem 0.65rem;
    min-width: 6rem;
}

table .table-number {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.collection-result-summary {
    margin: 1rem 0;
}

.pagination,
.pagination-actions,
.nk-enterprise-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.75rem;
    margin: 1rem 0;
}

.grant-details-table,
.org-details-table {
    border-top: 2px solid var(--panel);
}

.grant-details-table th,
.org-details-table th {
    padding: 0.8rem 1.2rem 0.8rem 0.75rem;
    background: var(--surface);
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    white-space: normal;
    overflow-wrap: anywhere;
}

.grant-details-table td,
.org-details-table td {
    padding: 0.8rem 0.75rem;
    background: var(--surface);
}

.resource-detail-row dt,
.project-descriptor-grid dt {
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

/* Panels: calm editorial surfaces with concentrated instrument zones. */

.card,
.team-card,
.content-card,
.empty-message,
.preview-notice,
.downloads-access-note,
.approach-section-item,
.nk-panel,
.team-profile-photo,
.team-profile-photo-placeholder,
.profile-photo,
.approach-figure img {
    border-radius: 0;
}

.card,
.team-card,
.content-card,
.empty-message,
.approach-section-item,
.nk-panel {
    border: var(--rule);
    border-top: 3px solid var(--panel);
    background: var(--surface);
    box-shadow: none;
}

/* Team portraits remain a distinct editorial system, not panel cards. */
.team-card {
    border: 0;
    background: transparent;
}

.team-related-list {
    max-width: none;
    margin: 0;
    padding: 0;
    border-top: var(--rule);
    list-style: none;
}

.team-related-list li {
    padding: 0.9rem 0;
    border-bottom: var(--rule);
}

/* Team portraits are an editorial roster, not bordered content cards. */

.team-card {
    border: 0;
    background: transparent;
}

.team-profile-heading h1 {
    font-weight: 600;
}

.team-profile-list,
.team-related-list {
    gap: 0;
    max-width: var(--measure-wide);
    margin: 0;
    padding: 0;
    list-style: none;
}

.team-profile-list li,
.team-related-list li {
    padding: 0.9rem 0;
}

.preview-notice,
.downloads-access-note {
    border-left: 6px solid var(--signal-amber);
    background: var(--surface);
}

.resource-filter-form,
.audit-filter-bar {
    padding: 1rem;
    border: 0;
    border-top: 4px solid var(--signal);
    background: var(--panel);
    color: var(--panel-text);
}

.resource-filter-form label,
.audit-filter-bar .audit-filter-label {
    color: var(--panel-muted);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.audit-filter-bar .audit-filter-chip {
    border-color: var(--panel-muted);
    color: var(--panel-muted);
}

.audit-filter-bar .audit-filter-chip--active {
    border-color: var(--signal);
    background: var(--signal);
    color: var(--panel);
    box-shadow: inset 0 calc(-1 * var(--signal-rail-block)) 0 var(--panel-secondary);
}

.schema-sidebar {
    border-right-color: var(--panel-secondary);
    background: var(--panel);
    color: var(--panel-text);
}

.schema-sidebar a,
.schema-menu-heading {
    color: var(--panel-muted);
}

.schema-menu-heading {
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.07em;
}

.schema-menu a {
    border-left: var(--signal-rail-inline) solid transparent;
    border-radius: 0;
}

.schema-menu a:hover,
.schema-menu a[aria-current="page"] {
    border-left-color: var(--signal);
    background: var(--panel-secondary);
    color: var(--panel-text);
}

.schema-menu a[aria-current="page"] {
    color: var(--signal);
}

.audit-rule-id,
.audit-count,
.nk-official-list-id,
.nk-roster-entry-dates,
.resource-result-count {
    font-family: var(--mono-font);
    font-variant-numeric: tabular-nums;
}

.audit-rule-id {
    font-size: 0.78rem;
}

.audit-rule-header {
    padding-inline: 0.75rem;
    border-bottom: 2px solid var(--signal);
    background: var(--panel);
    color: var(--panel-text);
    font-family: var(--mono-font);
}

@media (max-width: 760px) {
    .document-layout,
    .explore-layout {
        gap: var(--space-5);
    }

    .sticky-index,
    .explore-sidebar {
        position: static;
    }

    .sticky-index nav,
    .explore-sidebar nav {
        gap: 1px;
    }

    .filter-bar,
    .filter-select-form {
        align-items: flex-start;
        padding: 0.75rem;
    }

    .filter-label {
        flex: 1 0 100%;
        min-width: 0;
    }

    .filter-stack > .active-filter {
        align-items: flex-start;
        padding: 0.75rem;
    }

    .database-record__heading {
        grid-template-columns: minmax(0, 1fr);
        gap: 0.65rem;
    }

    .database-record__heading .database-record__actions {
        justify-content: flex-start;
    }

    .record-row,
    .training-video-row,
    .training-resource-row,
    .news-feed-row,
    .research-stream-row,
    .resource-row,
    .audit-rule-row {
        padding-inline: 0.55rem;
    }

    .document-content {
        font-size: 1rem;
    }
}

/* Database workbenches: DEC-190 ruled workspaces. */

.explore-workspace,
.nk-browser-page {
    min-width: 0;
    border-top: 4px solid var(--panel);
    background: var(--surface);
}

.explore-heading,
.nk-browser-header {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: var(--space-4);
    margin: 0;
    padding: var(--space-4) var(--space-4) var(--space-3);
    border-bottom: var(--rule);
    background: var(--surface);
}

.explore-heading h2,
.nk-browser-header h2,
.nk-browser-header h1 {
    margin: 0 0 0.25rem;
}

.nk-browser-body {
    background: var(--surface);
}

.nk-browser-tree,
.nk-browser-detail,
.nk-enterprise-directory-body {
    background: var(--surface);
}

.nk-browser-tree {
    border-right: var(--rule);
}

.nk-browser-detail,
.nk-enterprise-directory-body {
    padding: var(--space-4);
}

.nk-tree-toolbar,
.nk-official-search,
.nk-enterprise-search,
.resource-filter-form {
    border-bottom: var(--rule);
}

.nk-tree-toolbar,
.nk-browser-panel-header {
    margin-bottom: var(--space-3);
}

.nk-page-shell summary,
.workbench-tree-summary,
.transition-tree-summary {
    border-radius: 0;
}

.workbench-tree-summary,
.transition-tree-summary {
    border-left: var(--signal-rail-inline) solid transparent;
}

.workbench-tree-summary.is-selected,
.transition-tree-summary.selected-tree-org,
summary.selected-tree-org {
    padding: 0.35rem 0.45rem;
    border-left-color: var(--signal);
    background: var(--surface-strong);
    color: var(--text);
    font-weight: 700;
}

.workbench-id,
.workbench-tree-count,
.workbench-tree-label,
.workbench-date,
.workbench-count,
.workbench-row__label {
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.78rem;
    font-variant-numeric: tabular-nums;
}

.workbench-id {
    margin-left: 0.4rem;
}

.workbench-warning {
    color: var(--danger);
}

.workbench-section {
    padding: var(--space-4) 0;
    border-bottom: var(--rule);
}

.workbench-section:first-child {
    padding-top: 0;
}

.workbench-section:last-child {
    border-bottom: 0;
}

.workbench-section__heading,
.workbench-record-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-3);
    align-items: center;
}

.workbench-section__heading {
    margin-bottom: var(--space-3);
}

.workbench-section__heading h2 {
    margin: 0;
    font-size: 1.05rem;
}

.workbench-record-heading {
    grid-template-columns: minmax(0, 1fr) auto auto;
}

.workbench-record-heading__title {
    font-size: 1.15rem;
    font-weight: 600;
}

.workbench-column-labels,
.workbench-row--count {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(4rem, auto);
    gap: var(--space-3);
}

.workbench-column-labels {
    padding: 0.45rem 0;
    border-bottom: 2px solid var(--panel);
    color: var(--muted);
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
}

.workbench-rows {
    margin: 0;
    padding: 0;
    list-style: none;
}

.workbench-row {
    padding: 0.75rem 0;
    border-bottom: var(--rule);
}

.workbench-row:last-child {
    border-bottom: 0;
}

.workbench-row--relation {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: var(--space-3);
    align-items: baseline;
}

.workbench-transition-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr) auto;
    gap: var(--space-4);
    align-items: start;
}

.workbench-row__label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 600;
}

.workbench-row__action {
    justify-self: end;
    white-space: nowrap;
}

.workbench-empty {
    color: var(--muted);
}

.nk-official-list a,
.nk-roster-entry-list a,
.nk-enterprise-card {
    border-left: var(--signal-rail-inline) solid transparent;
    border-radius: 0;
}

.nk-official-list a:hover,
.nk-official-list a.is-selected,
.nk-roster-entry-list a:hover,
.nk-roster-entry-list a.is-selected,
.nk-enterprise-card:hover,
.nk-enterprise-card:focus-visible {
    border-left-color: var(--signal);
    background: var(--surface-strong);
    box-shadow: none;
}

.nk-enterprise-list {
    display: block;
    border-top: 2px solid var(--panel);
}

.nk-enterprise-list > li,
.article-result,
.document-result {
    border: 0;
    border-bottom: var(--rule);
}

.nk-enterprise-card {
    height: auto;
    padding: var(--space-3);
    border-top: 0;
    border-right: 0;
    border-bottom: 0;
}

.nk-enterprise-card__header {
    padding-bottom: var(--space-2);
}

.article-results,
.document-results {
    display: grid;
    gap: 0;
    margin-top: var(--space-3);
    border-top: 2px solid var(--panel);
}

.article-result,
.document-result {
    padding: var(--space-3) var(--space-2);
    border-radius: 0;
    background: var(--surface);
}

.resource-detail-list,
.resource-field-summary {
    margin: 0 var(--space-4) var(--space-4);
}

.resource-detail-list {
    border-top: 2px solid var(--panel);
}

.resource-detail-row {
    border-bottom: var(--rule);
}

.explore-workspace > .form-region,
.explore-workspace > .feedback,
.explore-workspace > .document-results,
.explore-workspace > .article-results,
.explore-workspace > .resource-result-count,
.explore-workspace > .pagination,
.explore-workspace > .resource-field-summary {
    margin-right: var(--space-4);
    margin-left: var(--space-4);
}

@media (max-width: 760px) {
    .explore-heading,
    .nk-browser-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .nk-browser-tree {
        border-right: 0;
        border-bottom: var(--rule);
    }

    .workbench-record-heading,
    .workbench-row--relation,
    .workbench-transition-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .workbench-row__action {
        justify-self: start;
    }

    .workbench-transition-row__direction {
        display: flex;
        gap: var(--space-2);
    }
}

/* Media and rich content: DEC-191 Evidence ledger. */

.media-ledger:not(.home-hero__figure),
.ck-content figure.image {
    max-width: var(--measure-wide);
    margin: var(--space-4) 0;
    background: var(--surface);
}

.media-ledger__image,
.ck-content figure.image img,
.ck-content > img {
    display: block;
    max-width: 100%;
    height: auto;
    border: 0;
    background: var(--surface-strong);
}

.news-detail-lead-media .media-ledger__image,
.about-hero .media-ledger__image,
.about-content-section .media-ledger__image {
    width: 100%;
    aspect-ratio: 16 / 9;
    object-fit: cover;
}

.about-content-section .media-ledger__image {
    aspect-ratio: 4 / 3;
}

.media-focus--top .media-ledger__image {
    object-position: 50% 20%;
}

.media-focus--center .media-ledger__image {
    object-position: 50% 50%;
}

.media-focus--bottom .media-ledger__image {
    object-position: 50% 80%;
}

.media-ledger__caption,
.ck-content figure.image figcaption {
    display: grid;
    gap: 0.45rem;
    margin: 0;
    padding: 0.9rem 1rem;
    border-top: 2px solid var(--panel);
    border-bottom: var(--rule);
    background: var(--surface);
    color: var(--text);
    font-size: 0.94rem;
    line-height: 1.55;
    text-align: left;
}

.media-ledger__label,
.media-ledger__credit,
.ck-content figure.image figcaption::before {
    font-family: var(--mono-font);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.055em;
    text-transform: uppercase;
}

.media-ledger__label,
.ck-content figure.image figcaption::before {
    color: var(--text);
}

.ck-content figure.image figcaption::before {
    content: "Figure";
    display: block;
}

.media-ledger__text,
.media-ledger__text p {
    margin: 0;
}

.media-ledger__credit {
    color: var(--muted);
    font-weight: 400;
    letter-spacing: 0.025em;
    text-transform: none;
}

.media-fallback {
    max-width: var(--measure-wide);
    margin: 0;
}

.media-ledger > .media-fallback:not([hidden]) {
    margin: 0;
}

.media-ledger.is-unavailable .media-ledger__caption {
    border-top-color: var(--feedback-warning);
}

.media-embed {
    position: relative;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
    padding: 0;
    border: 0;
    border-top: 3px solid var(--panel);
    background: #000;
}

.media-embed iframe {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

.media-embed__fallback {
    margin: 0.5rem 0 var(--space-4);
    font-size: 0.9rem;
}

.ck-content {
    overflow-wrap: anywhere;
}

.ck-content blockquote {
    margin-left: 0;
    padding: 0.2rem 1rem;
    border-left: var(--signal-rail-inline) solid var(--signal);
}

.ck-content figure.table,
.ck-content .table {
    max-width: 100%;
    overflow-x: auto;
    border: 0;
}

.ck-content table {
    min-width: 36rem;
}

.home-hero__figure .media-ledger__image {
    object-fit: cover;
}

.home-hero__figure .media-ledger__label,
.home-hero__figure .media-ledger__credit {
    color: inherit;
    font-size: inherit;
}

@media (max-width: 760px) {
    .media-ledger__caption,
    .ck-content figure.image figcaption {
        padding: 0.75rem;
    }
}

@media (forced-colors: active) {
    .media-ledger__caption,
    .ck-content figure.image figcaption,
    .media-embed {
        border-color: CanvasText;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}
