/* No external fonts, scripts, images, or trackers. */
:root {
  color-scheme: light dark;
  --ink: #1d2823;
  --muted: #5e6a64;
  --paper: #f5f6f2;
  --surface: #ffffff;
  --line: #d7ddd7;
  --line-strong: #c2cbc4;
  --green: #176b50;
  --green-dark: #0f4f3b;
  --warm: #fff5db;
  --focus: #a56500;
  --header-bg: rgba(245, 246, 242, .97);
  --table-head-bg: #e9eee9;
  --table-head-ink: #45514a;
  --row-hover: #f7faf7;
  --deadline-ink: #70410d;
  --deadline-hover: #fff0c9;
  --text-soft: #394840;
  --button-ink: #ffffff;
  --banner-line: #b27c09;
  --new-bg: #eaf4ed;
  --new-line: #75a486;
  font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
:root[data-theme="light"] { color-scheme: light; }
:root[data-theme="dark"] {
  color-scheme: dark;
  --ink: #e7eee9;
  --muted: #aebbb4;
  --paper: #101713;
  --surface: #17211c;
  --line: #34443b;
  --line-strong: #4b5b52;
  --green: #6cc9a6;
  --green-dark: #9be1c4;
  --warm: #352b14;
  --focus: #ffcc66;
  --header-bg: rgba(16, 23, 19, .97);
  --table-head-bg: #26332c;
  --table-head-ink: #c1cec7;
  --row-hover: #1d2b24;
  --deadline-ink: #f0cf82;
  --deadline-hover: #3d3219;
  --text-soft: #c6d0ca;
  --button-ink: #08150f;
  --banner-line: #c89b3c;
  --new-bg: #1c3329;
  --new-line: #568c70;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) {
    --ink: #e7eee9;
    --muted: #aebbb4;
    --paper: #101713;
    --surface: #17211c;
    --line: #34443b;
    --line-strong: #4b5b52;
    --green: #6cc9a6;
    --green-dark: #9be1c4;
    --warm: #352b14;
    --focus: #ffcc66;
    --header-bg: rgba(16, 23, 19, .97);
    --table-head-bg: #26332c;
    --table-head-ink: #c1cec7;
    --row-hover: #1d2b24;
    --deadline-ink: #f0cf82;
    --deadline-hover: #3d3219;
    --text-soft: #c6d0ca;
    --button-ink: #08150f;
    --banner-line: #c89b3c;
    --new-bg: #1c3329;
    --new-line: #568c70;
  }
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-size: 15px; line-height: 1.5; }
a { color: var(--green-dark); text-underline-offset: .18em; }
a:hover { text-decoration-thickness: .13em; }
a:focus-visible, button:focus-visible, select:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.mobile-only { display: none; }
.skip-link { position: absolute; left: -9999px; top: 0; z-index: 10; padding: .55rem .75rem; background: var(--ink); color: var(--surface); }
.skip-link:focus { left: .75rem; top: .5rem; }
.site-header { position: sticky; top: 0; z-index: 5; border-bottom: 1px solid var(--line); background: var(--header-bg); }
.header-inner, .footer-inner, main { width: min(1240px, calc(100% - 2rem)); margin-inline: auto; }
.header-inner { min-height: 3.35rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.site-name { color: var(--ink); font-size: .94rem; font-weight: 800; text-decoration: none; letter-spacing: .01em; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: .45rem 1rem; min-width: 0; }
nav { display: flex; flex-wrap: wrap; gap: .2rem .9rem; }
nav a { color: var(--muted); font-size: .82rem; font-weight: 700; text-decoration: none; }
nav a[aria-current="page"] { color: var(--green); text-decoration: underline; text-decoration-thickness: .12em; }
.theme-control, .sort-control { display: inline-flex; align-items: center; gap: .3rem; color: var(--muted); font-size: .76rem; font-weight: 700; white-space: nowrap; }
.sort-control { display: none; }
.published-sort-control { display: none; padding: .2rem .42rem; border: 1px solid var(--line-strong); border-radius: .25rem; color: var(--muted); background: var(--surface); font: inherit; font-size: .72rem; font-weight: 700; }
.js .published-sort-control { display: inline-flex; }
.published-sort-control:hover, .published-sort-control[aria-pressed="true"] { color: var(--green-dark); border-color: var(--green); background: var(--new-bg); }
select { max-width: 100%; padding: .24rem 1.6rem .24rem .4rem; border: 1px solid var(--line-strong); border-radius: .25rem; color: var(--ink); background: var(--surface); font: inherit; }
main { padding-block: 1rem 2rem; }
.site-intro { padding: .15rem 0 .85rem; border-bottom: 1px solid var(--line); }
.site-intro h1 { margin: 0; font-size: clamp(1.35rem, 2.3vw, 1.8rem); line-height: 1.25; letter-spacing: .01em; }
.site-intro p { margin: .18rem 0 0; color: var(--muted); font-size: .9rem; }
.eyebrow { margin: 0 0 .35rem; color: var(--green); font-size: .7rem; font-weight: 850; letter-spacing: .12em; }
h1, h2 { line-height: 1.3; letter-spacing: .01em; }
.demo-banner { margin: .65rem 0 0; padding: .5rem .7rem; border: 1px solid var(--banner-line); background: var(--warm); font-size: .83rem; font-weight: 700; }
.listing { margin-top: .85rem; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; }
.section-heading h2 { margin: 0; font-size: 1.12rem; }
.listing-controls { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: .35rem .8rem; }
.updated-at { flex: none; margin: 0; color: var(--muted); font-size: .75rem; }
.event-table-frame { overflow: hidden; border: 1px solid var(--line-strong); background: var(--surface); }
.event-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: .87rem; }
.event-table thead { background: var(--table-head-bg); }
.event-table th, .event-table td { padding: .5rem .58rem; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.event-table thead th { color: var(--table-head-ink); font-size: .74rem; font-weight: 800; white-space: nowrap; }
.sort-button { display: flex; align-items: center; justify-content: space-between; gap: .28rem; width: 100%; margin: 0; padding: 0; border: 0; border-radius: .18rem; color: inherit; background: transparent; font: inherit; font-weight: inherit; text-align: left; }
.sort-indicator { flex: none; width: .8em; color: var(--deadline-ink); font-size: .72em; line-height: 1; text-align: center; }
.js .sort-button { cursor: pointer; }
.js .sort-button:hover { color: var(--green-dark); text-decoration: underline; text-underline-offset: .18em; }
.event-table thead th:nth-child(1) { width: 11.5%; }
.event-table thead th:nth-child(2) { width: 23%; }
.event-table thead th:nth-child(3) { width: 12.5%; }
.event-table thead th:nth-child(4) { width: 22%; }
.event-table thead th:nth-child(5) { width: 11%; }
.event-table thead th:nth-child(6) { width: 12%; }
.event-table thead th:nth-child(7) { width: 8%; }
.event-table tbody tr:last-child > * { border-bottom: 0; }
.event-table tbody tr:hover > * { background-color: var(--row-hover); }
.event-table tbody tr:hover > .event-deadline { background-color: var(--deadline-hover); }
.event-deadline { color: var(--deadline-ink); background: var(--warm); font-weight: 850; font-variant-numeric: tabular-nums; white-space: nowrap; }
.event-title { font-size: .94rem; font-weight: 800; overflow-wrap: anywhere; }
.new-badge { display: inline-block; margin-left: .34rem; padding: .02rem .28rem; border: 1px solid var(--new-line); border-radius: .28rem; color: var(--green-dark); background: var(--new-bg); font-size: .62rem; font-weight: 700; line-height: 1.35; letter-spacing: .04em; vertical-align: .12em; white-space: nowrap; }
.event-datetime { font-variant-numeric: tabular-nums; white-space: nowrap; }
.event-venue { overflow-wrap: anywhere; }
.event-capacity { color: var(--text-soft); overflow-wrap: anywhere; }
.event-source { font-size: .82rem; overflow-wrap: anywhere; }
.event-source a { font-weight: 700; }
.event-apply { text-align: center !important; }
.apply-link { display: inline-block; padding: .28rem .48rem; border: 1px solid var(--green); border-radius: .25rem; color: var(--button-ink); background: var(--green); font-size: .78rem; font-weight: 800; line-height: 1.25; text-align: center; text-decoration: none; white-space: nowrap; }
.apply-link:hover { background: var(--green-dark); }
.empty-state, .official-note, .content-page { border: 1px solid var(--line); background: var(--surface); }
.empty-state { padding: 1.4rem; text-align: center; }
.empty-state h2 { margin: 0 0 .3rem; font-size: 1.05rem; }
.empty-state p { margin: 0; color: var(--muted); }
.official-note { margin-top: .85rem; padding: .7rem .85rem; }
.official-note h2 { margin: 0 0 .15rem; font-size: .9rem; }
.official-note p { margin: 0; color: var(--muted); font-size: .8rem; }
.content-page { max-width: 780px; margin-inline: auto; padding: clamp(1.25rem, 4vw, 2.25rem); }
.content-page h1 { margin: 0 0 1.25rem; font-size: clamp(1.65rem, 4vw, 2.25rem); }
.content-page h2 { margin: 1.7rem 0 .4rem; font-size: 1.15rem; }
.content-page p { color: var(--text-soft); }
.policy-date { margin-top: 1.8rem; color: var(--muted) !important; font-size: .82rem; }
.site-footer { margin-top: 1.5rem; border-top: 1px solid var(--line); background: var(--surface); }
.footer-inner { padding-block: 1.1rem; }
.footer-inner p { margin: .4rem 0 0; color: var(--muted); font-size: .78rem; }
@media (max-width: 900px) {
  .header-inner, .footer-inner, main { width: min(100% - 1rem, 1240px); }
  .header-inner { gap: .65rem; }
  .header-actions { gap: .35rem .65rem; }
  .event-table { font-size: .8rem; }
  .event-table th, .event-table td { padding: .42rem .38rem; }
  .event-table thead th { font-size: .68rem; }
  .event-title { font-size: .86rem; }
  .event-source, .apply-link { font-size: .72rem; }
}
@media (max-width: 680px) {
  body { font-size: 14px; }
  .site-header { position: static; }
  .header-inner { min-height: 0; align-items: flex-start; flex-direction: column; padding-block: .55rem; gap: .32rem; }
  .header-actions { width: 100%; align-items: center; justify-content: space-between; }
  nav { gap: .15rem .75rem; }
  main { padding-block: .6rem 1.25rem; }
  .site-intro { padding-bottom: .55rem; }
  .site-intro h1 { font-size: 1.25rem; }
  .site-intro p { font-size: .8rem; }
  .demo-banner { margin-top: .45rem; padding: .38rem .5rem; font-size: .75rem; }
  .listing { margin-top: .6rem; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: .12rem; margin-bottom: .35rem; }
  .section-heading h2 { font-size: 1rem; }
  .listing-controls { width: 100%; justify-content: space-between; }
  .sort-control { display: inline-flex; min-width: 0; }
  .js .published-sort-control { display: none; }
  .sort-control select { min-width: 0; }
  .updated-at { font-size: .7rem; }
  .event-table-frame { overflow: visible; }
  .event-table, .event-table tbody { display: block; width: 100%; }
  .event-table thead { display: none; }
  .event-row { display: grid; grid-template-columns: max-content minmax(0, 1fr) max-content; grid-template-areas: "deadline deadline apply" "title title title" "datetime venue venue" "capacity source source"; column-gap: .5rem; row-gap: .16rem; padding: .52rem .58rem; border-bottom: 1px solid var(--line); }
  .event-table tbody tr:last-child { border-bottom: 0; }
  .event-row > th, .event-row > td { display: block; min-width: 0; padding: 0; border: 0; background: transparent; white-space: normal; }
  .event-table tbody tr:hover > * { background: transparent; }
  .event-deadline { grid-area: deadline; color: var(--deadline-ink); font-size: .8rem; }
  .event-title { grid-area: title; font-size: .98rem; line-height: 1.3; }
  .event-datetime { grid-area: datetime; color: var(--text-soft); font-size: .78rem; white-space: nowrap !important; }
  .event-venue { grid-area: venue; color: var(--text-soft); font-size: .78rem; overflow-wrap: anywhere; }
  .event-venue::before { content: "/ "; color: var(--muted); }
  .event-capacity { grid-area: capacity; color: var(--muted); font-size: .74rem; }
  .event-source { grid-area: source; font-size: .74rem; text-align: right; }
  .event-apply { grid-area: apply; align-self: start; text-align: right !important; }
  .apply-link { padding: .28rem .46rem; font-size: .72rem; }
  .mobile-only { display: inline; }
  .official-note { margin-top: .6rem; padding: .55rem .65rem; }
  .official-note h2 { font-size: .82rem; }
  .official-note p { font-size: .74rem; }
  .content-page { padding: 1.1rem; }
  .content-page h1 { margin-bottom: 1rem; font-size: 1.55rem; }
  .site-footer { margin-top: 1rem; }
  .footer-inner { padding-block: .8rem; }
}
@media (max-width: 380px) {
  .header-inner, .footer-inner, main { width: min(100% - .7rem, 1240px); }
  .header-actions { align-items: flex-start; flex-direction: column; }
  .listing-controls { align-items: flex-start; flex-direction: column; gap: .2rem; }
  .sort-control { width: 100%; }
  .sort-control select { flex: 1; }
  .event-row { padding-inline: .45rem; column-gap: .35rem; }
  .event-title { font-size: .92rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
