/* Institutional pages share the full-width content layout and navigation. */
.institution-empty { margin: 0; padding: 28px; border-radius: 10px; background: #fff; color: #62758a; font-size: 15px; line-height: 1.8; }
.institution-president { display: flex; align-items: center; gap: 40px; }
.institution-president-photo { flex: 0 0 32%; margin: 0; }
.institution-president-photo img { width: 100%; height: auto; max-height: 540px; object-fit: contain; border-radius: 8px; }
.institution-president-message { min-width: 0; }
.institution-president-message h2 { font-size: 30px; }
.institution-president-message blockquote { margin: 24px 0 0; padding: 8px 0 8px 24px; border-left: 3px solid #d99a3b; color: #52677d; font-size: 19px; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.institution-directory { min-width: 0; }
.institution-people { display: flex; flex-wrap: wrap; justify-content: center; align-items: flex-start; gap: 24px; margin: 0 0 32px; padding: 0; list-style: none; }
.institution-people:last-child { margin-bottom: 0; }
.institution-person { width: calc((100% - 48px) / 3); min-width: 0; background: #fff; border: 1px solid #dfe7ef; border-radius: 10px; overflow: hidden; }
.institution-portrait { position: relative; aspect-ratio: 6 / 7; background: #e9eff5; }
.institution-portrait-placeholder { position: absolute; inset: 0; display: grid; place-items: center; color: #8498ac; font-size: 60px; font-weight: 600; }
.institution-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #f0f4f8; }
.institution-portrait img[hidden] { display: none; }
.institution-person-info { padding: 22px; }
.institution-person h2 { margin: 0 0 8px; font-size: 20px; color: #003a70; line-height: 1.4; overflow-wrap: anywhere; }
.institution-person-role { margin: 0; color: #52677d; font-size: 14px; line-height: 1.6; }
.institution-person-description { margin: 16px 0 0; color: #62758a; font-size: 14px; line-height: 1.7; white-space: pre-line; overflow-wrap: anywhere; }
.institution-person-links { display: flex; flex-wrap: wrap; gap: 4px 14px; list-style: none; margin: 16px 0 0; padding: 12px 0 0; border-top: 1px solid #e3eaf0; }
.institution-person-links a { display: inline-flex; align-items: center; min-height: 44px; color: #003a70; font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.institution-group-title { margin: 0 0 18px; color: #62758a; font-size: 15px; font-weight: 600; }
.institution-people-group + .institution-people-group { margin-top: 32px; }
.institution-org ul { list-style: none; margin: 0; padding: 0; }
.institution-org li { min-width: 0; position: relative; }
.institution-org-node { display: block; border: 1px solid #dfe7ef; border-left: 3px solid #d99a3b; border-radius: 6px; padding: 15px 18px; color: #003a70; background: #f6f8fb; font-size: 15px; line-height: 1.6; overflow-wrap: anywhere; }
.institution-org > ul > li > .institution-org-node { color: #fff; background: #003a70; font-size: 20px; font-weight: 600; }
.institution-org li > ul { display: grid; gap: 12px; margin: 16px 0 20px 22px; padding-left: 22px; border-left: 1px solid #ccd9e5; }
.institution-org li > ul > li::before { content: ''; position: absolute; width: 22px; left: -23px; top: 28px; border-top: 1px solid #ccd9e5; }
.institution-org > ul { display: grid; gap: 24px; }
.institution-member-filters { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto; gap: 16px; align-items: end; }
.institution-member-filters label { display: block; margin-bottom: 8px; color: #003a70; font-size: 13px; font-weight: 600; }
.institution-member-filters :is(input,select) { width: 100%; min-width: 0; height: 48px; padding: 10px 12px; border: 1px solid #cad7e3; border-radius: 6px; background: #fff; color: #29445e; font: inherit; font-size: 16px; }
.institution-member-filters button { min-height: 48px; padding: 10px 22px; border: 1px solid #003a70; border-radius: 6px; color: #fff; background: #003a70; font-size: 14px; font-weight: 600; }
.institution-member-summary { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin: 28px 0 0; padding-bottom: 18px; border-bottom: 1px solid #e3eaf0; font-size: 14px; }
.institution-member-summary p { margin: 0; }
.institution-member-summary a { color: #003a70; text-decoration: underline; }
.institution-pagination { display: flex; justify-content: center; margin-top: 28px; }
.institution-member-filters :is(input,select,button):focus-visible { outline: 3px solid #c7801e; outline-offset: 3px; }
@media (hover:hover) { .institution-member-filters button:hover { background: #092e51; } }
@media (max-width: 1199.98px) { .institution-person { width: calc((100% - 24px) / 2); } }
@media (max-width: 767.98px) {
  .institution-president { flex-direction: column; align-items: stretch; gap: 24px; }
  .institution-president-photo { flex-basis: auto; }
  .institution-president-photo img { max-height: 420px; }
  .institution-president-message h2 { font-size: 25px; }
  .institution-president-message blockquote { font-size: 16px; padding-left: 18px; }
  .institution-member-filters { grid-template-columns: minmax(0,1fr); }
  .institution-org li > ul { margin-left: 8px; padding-left: 12px; }
  .institution-org li > ul > li::before { left: -13px; width: 12px; }
  .institution-org-node { padding: 12px; font-size: 14px; }
}
@media (max-width: 575.98px) {
  .institution-person { width: 100%; }
  .institution-person-info { padding: 20px; }
}

/* Serpentine chronology: the DOM always follows the editor's record order. */
.history-article { padding: 36px 20px 40px; }
.history-canvas { position: relative; }
.institution-timeline { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 48px; row-gap: 76px; margin: 0; padding: 36px 32px 0; list-style: none; position: relative; }
.institution-timeline > li { position: relative; grid-row: var(--history-row); grid-column: var(--history-column); padding: 28px; border: 1px solid #e0e8f0; border-radius: 10px; background: #f6f8fb; min-width: 0; }
.institution-timeline > li:first-child { border-bottom: 3px solid #d99a3b; }
.history-step { display: grid; place-items: center; position: absolute; z-index: 1; top: -33px; left: 50%; transform: translateX(-50%); width: 30px; height: 30px; border: 2px solid #d5a45a; border-radius: 50%; background: #fff; color: #7e541b; font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.institution-timeline-year { display: block; margin-bottom: 14px; color: #003a70; font-size: 34px; font-weight: 600; font-variant-numeric: tabular-nums; line-height: 1.2; letter-spacing: -.04em; overflow-wrap: anywhere; }
.institution-timeline-event h2 { margin: 0 0 12px; font-size: 21px; }
.institution-timeline-event p { margin: 0; color: #52677d; font-size: 15px; line-height: 1.8; white-space: pre-line; overflow-wrap: anywhere; }
.history-path { position: absolute; inset: 0; pointer-events: none; overflow: visible; }
.history-path path { fill: none; stroke: #d4a761; stroke-width: 2; }
.institution-timeline > .institution-empty { grid-column: 1 / -1; border: 0; padding: 0; background: none; }
/* Explicit hierarchy remains available as a text view and without JavaScript. */
.org-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid #e3eaf0; }
.org-toolbar[hidden], .org-help[hidden], .org-zoom-controls[hidden] { display: none; }
.org-zoom-controls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.org-toolbar button { min-width: 40px; min-height: 40px; padding: 8px 12px; border: 1px solid #d5e0ea; border-radius: 5px; background: #fff; color: #003a70; font-size: 12px; font-weight: 600; }
.org-toolbar button:disabled { opacity: .4; cursor: default; }
.org-toolbar button[aria-pressed='true'] { background: #003a70; color: #fff; }
.org-toolbar output { min-width: 48px; text-align: center; color: #62758a; font-size: 12px; font-variant-numeric: tabular-nums; }
.org-help { margin: 14px 0 20px; color: #62758a; font-size: 12px; line-height: 1.7; }
.org-viewport { max-width: 100%; }
.org-viewport.is-chart { overflow: auto; max-height: 760px; border: 1px solid #e3eaf0; border-radius: 8px; background-color: #f8fafc; background-image: radial-gradient(#dce5ee .75px,transparent .75px); background-size: 18px 18px; overscroll-behavior: contain; }
.is-chart .org-canvas { position: relative; margin: 0 auto; }
.is-chart .institution-org { position: absolute; top: 0; left: 0; transform-origin: 0 0; }
.is-chart .institution-org ul, .is-chart .institution-org li { display: contents; border: 0; margin: 0; padding: 0; }
.is-chart .institution-org li::before { display: none; }
.is-chart .institution-org-node { position: absolute; width: 196px; min-height: 60px; display: flex; align-items: center; justify-content: center; text-align: center; padding: 8px 12px; border: 1px solid #d1deea; border-top: 3px solid #d4a055; border-radius: 7px; background: #fff; color: #003a70; font-size: 14px; font-weight: 600; line-height: 1.4; box-shadow: 0 3px 9px #163f6510; }
.is-chart .institution-org > ul > li > .institution-org-node { background: #003a70; color: #fff; font-size: 17px; }
.org-connections { position: absolute; inset: 0; pointer-events: none; }
.org-connections path { fill: none; stroke: #9bafc1; stroke-width: 1.5; }
.org-toolbar button:focus-visible, .org-viewport:focus-visible { outline: 3px solid #c7801e; outline-offset: 3px; }
/* Compact directory table. Horizontal scrolling is contained on narrow screens. */
.institution-member-summary { margin-top: 20px; border-bottom: 0; padding-bottom: 12px; }
.institution-member-table-wrap { position: relative; border: 1px solid #dfe7ef; border-radius: 8px; overflow-x: auto; }
.institution-member-table { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; font-size: 13px; line-height: 1.6; }
.institution-member-table th, .institution-member-table td { padding: 12px 16px; border-bottom: 1px solid #e3eaf0; vertical-align: middle; overflow-wrap: anywhere; }
.institution-member-table thead th { background: #edf2f7; color: #52677d; font-size: 11px; font-weight: 600; letter-spacing: .025em; text-align: left; }
.institution-member-table thead th:nth-child(1) { width: 34%; }
.institution-member-table thead th:nth-child(2) { width: 20%; }
.institution-member-table thead th:nth-child(3) { width: 26%; }
.institution-member-table thead th:nth-child(4) { width: 20%; }
.institution-member-table tbody th { color: #003a70; text-align: left; font-size: 14px; font-weight: 600; }
.institution-member-table tbody td { color: #62758a; }
.institution-member-table tbody tr:nth-child(even) { background: #f8fafc; }
.institution-member-table tbody tr:last-child > * { border-bottom: 0; }
.member-table-address { white-space: pre-line; }
.institution-member-links { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; list-style: none; margin: 0; padding: 0; }
.institution-member-links a { display: grid; place-items: center; width: 36px; height: 36px; color: #003a70; background: #edf2f7; border: 1px solid #dfe7ef; border-radius: 5px; font-size: 15px; text-decoration: none; }
.member-contact-empty { color: #93a1b0; }
.member-table-hint { display: none; margin: 0 0 10px; color: #62758a; font-size: 12px; }
@media (hover:hover) {
  .institution-member-table tbody tr:hover { background: #f0f5fa; }
  .institution-member-links a:hover, .org-toolbar button:not(:disabled):hover { background: #003a70; color: #fff; }
}
@media (max-width: 1399.98px) {
  .institution-timeline { gap: 64px 36px; padding-right: 24px; padding-left: 24px; }
  .institution-timeline > li { padding: 22px; }
  .institution-timeline-event h2 { font-size: 20px; }
}
@media (max-width: 767.98px) {
  .history-article { padding: 24px 18px; }
  .institution-timeline { display: flex; flex-direction: column; gap: 24px; padding: 0 0 0 36px; }
  .institution-timeline > li { padding: 20px; }
  .history-step { top: 24px; left: -24px; width: 26px; height: 26px; font-size: 10px; }
  .institution-timeline-year { font-size: 29px; }
  .institution-timeline-event h2 { font-size: 20px; }
  .org-viewport.is-chart { max-height: 560px; }
  .member-table-hint { display: block; }
  .institution-member-table { min-width: 760px; }
  .institution-member-table th, .institution-member-table td { padding: 10px 12px; }
  .institution-member-links a { width: 40px; height: 40px; }
}
