/* HUMAN RESOURCES: retro-futuristic corporate intranet.
   Day shift: beige putty panels, navy title bars, phosphor terminal. Night shift: amber CRT. */
@import url("depts.css");

@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 400; font-style: italic; font-display: swap; src: url("../fonts/ibm-plex-sans-400-italic.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Sans"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-sans-600.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-mono-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-weight: 600; font-style: normal; font-display: swap; src: url("../fonts/ibm-plex-mono-600.woff2") format("woff2"); }
/* The network's own faces, for the channel links in the masthead: Future News's masthead (Playfair Display Black)
   and DOOM POP TV's logo (Monoton). Copied from those projects; both SIL Open Font License. */
@font-face { font-family: "Playfair Display"; font-weight: 900; font-style: normal; font-display: swap; src: url("../fonts/playfair-display-900.woff2") format("woff2"); }
@font-face { font-family: "Monoton"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/monoton-400.woff2") format("woff2"); }
@font-face { font-family: "VT323"; font-weight: 400; font-style: normal; font-display: swap; src: url("../fonts/vt323-400.woff2") format("woff2"); }

:root {
  --sans: "IBM Plex Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, monospace;
  --crt: "VT323", "IBM Plex Mono", monospace;

  --desk: #d6cfba;
  --desk-line: rgba(80, 70, 40, .07);
  --panel: #ebe5d3;
  --panel-hi: #fbf8ee;
  --panel-lo: #8f8770;
  --paper: #fffdf5;
  --ink: #1f1c15;
  --muted: #5a5444;
  --rule: #bdb59d;
  --link: #1e4b9c;
  --link-visited: #5b3a8c;
  --titlebar: #22375a;
  --titlebar-2: #3d5d8f;
  --titlebar-ink: #f4f0e2;
  --term-bg: #0d170f;
  --term-fg: #7cf59a;
  --term-dim: #3f8f55;
  --stamp: #b4261c;
  --focus: #ff9f1a;
  --dept: #6b6b6b;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --desk: #110c05; --desk-line: rgba(255, 170, 60, .035); --panel: #1c150b; --panel-hi: #3b2d16; --panel-lo: #000;
    --paper: #181209; --ink: #ffd394; --muted: #c8995a; --rule: #5b4422; --link: #ffc76b; --link-visited: #e8a95e;
    --titlebar: #4a3010; --titlebar-2: #6b4716; --titlebar-ink: #ffdca3; --term-bg: #090602; --term-fg: #ffb547;
    --term-dim: #9a6a24; --stamp: #ff6f5c; --dept: var(--dept-night);
    color-scheme: dark;
  }
}
:root[data-theme="dark"] {
  --desk: #110c05; --desk-line: rgba(255, 170, 60, .035); --panel: #1c150b; --panel-hi: #3b2d16; --panel-lo: #000;
  --paper: #181209; --ink: #ffd394; --muted: #c8995a; --rule: #5b4422; --link: #ffc76b; --link-visited: #e8a95e;
  --titlebar: #4a3010; --titlebar-2: #6b4716; --titlebar-ink: #ffdca3; --term-bg: #090602; --term-fg: #ffb547;
  --term-dim: #9a6a24; --stamp: #ff6f5c; --dept: var(--dept-night);
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  background-color: var(--desk);
  background-image: linear-gradient(var(--desk-line) 1px, transparent 1px), linear-gradient(90deg, var(--desk-line) 1px, transparent 1px);
  background-size: 24px 24px;
  color: var(--ink);
  font: 400 1.0625rem/1.6 var(--sans);
}
a { color: var(--link); text-underline-offset: .15em; }
a:visited { color: var(--link-visited); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--mono); font-weight: 600; line-height: 1.25; letter-spacing: -.01em; }
.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--paper); padding: .5rem 1rem; z-index: 10; }
.skip:focus { left: 1rem; }
html:not(.js) .js-only { display: none; }

/* ── Chrome: system bar, masthead, menus ─────────────────────────────── */
.masthead { max-width: 1120px; margin: 0 auto; padding: 1.4rem 16px .6rem; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: .5rem 2rem; }
.masthead .fnn { margin-left: auto; }
/* fnn-strip:start  The Future News Network strip: the FNN banner over the four channels in two columns.
   Master copy in ~/futurenewsnetwork/strip/; every channel site carries this block unchanged (see its README).
   Needs the fonts Playfair Display 900, Monoton, VT323 and IBM Plex Mono 600. Sizes are in px so it looks the same on every site. */
.fnn { display: inline-grid; grid-template-columns: 1fr 1fr; gap: 6px; line-height: 1; text-align: left; }
.fnn a { box-sizing: border-box; display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 0 10px; white-space: nowrap; text-decoration: none; }
/* FNN: the network's red logo on a dark news-desk bar, across both columns, to the network's home page */
.fnn .fnn-home {
  grid-column: 1 / -1; justify-content: flex-start; gap: 10px; min-height: 0; padding: 4px 12px 4px 4px;
  background: #121318; border: 1px solid #121318; color: #ecebe6; font: 600 11px/1 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .14em; text-transform: uppercase;
}
.fnn .fnn-home:hover, .fnn .fnn-home:focus-visible { color: #fff; border-color: #d42a2a; }
.fnn-logo { display: block; width: 52px; height: 24px; flex: none; }
/* Future News: its masthead, ink on newsprint with the double rule */
.fnn .fnn-fn {
  background: #f5f1e8; border: 1px solid #1a1a1a; border-bottom: 4px double #1a1a1a; color: #1a1a1a;
  font: 900 18px/1 'Playfair Display', Georgia, serif; letter-spacing: -.01em;
}
.fnn .fnn-fn:hover, .fnn .fnn-fn:focus-visible { color: #1a1a1a; background: #fffdf7; }
/* DOOM POP TV: its neon logo on its own night-black screen */
.fnn .fnn-dptv { align-items: baseline; padding-top: 10px; gap: .28em; background: #07050b; border: 1px solid #2a1d3a; border-radius: 8px; font: 400 15px/1 'Monoton', sans-serif; letter-spacing: .04em; }
.fnn .fnn-dptv:hover, .fnn .fnn-dptv:focus-visible { border-color: #b026ff; box-shadow: 0 0 14px rgba(176, 38, 255, .45); }
.fnn-dptv-doom { color: #f3e6ff; text-shadow: 0 0 6px rgba(176, 38, 255, .8), 0 0 18px rgba(176, 38, 255, .55); }
.fnn-dptv-pop { color: #ff2bd6; text-shadow: 0 0 6px rgba(255, 43, 214, .8), 0 0 16px rgba(255, 43, 214, .45); }
.fnn-dptv-tv { font: 600 .62em 'IBM Plex Mono', ui-monospace, monospace; color: #07050b; background: #b026ff; padding: .05em .25em; border-radius: 3px; box-shadow: 0 0 10px rgba(176, 38, 255, .6); }
/* AGENTS ONLY: its phosphor-green terminal sign */
.fnn .fnn-ao { background: #050805; border: 1px solid #1f4d2a; color: #39ff7a; text-shadow: 0 0 6px rgba(57, 255, 122, .45); font: 400 22px/1 'VT323', monospace; letter-spacing: .08em; }
.fnn .fnn-ao:hover, .fnn .fnn-ao:focus-visible { color: #39ff7a; border-color: #39ff7a; box-shadow: 0 0 12px rgba(57, 255, 122, .35); }
.fnn-ao-mark { color: #ffb000; text-shadow: none; font-size: .6em; }
/* Human Resources: its navy HR badge on beige putty, with the hard drop shadow */
.fnn .fnn-hr { justify-content: flex-start; padding-left: 4px; background: #ebe5d3; border: 1px solid #1f1c15; box-shadow: 3px 3px 0 #1f1c15; color: #1f1c15; font: 600 12px/1 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: .06em; }
.fnn .fnn-hr:hover, .fnn .fnn-hr:focus-visible { color: #1f1c15; background: #fbf8ee; }
.fnn-hr-mark { display: inline-grid; place-items: center; width: 26px; height: 26px; flex: none; background: #22375a; color: #f4f0e2; font: 600 13px/1 'IBM Plex Mono', ui-monospace, monospace; letter-spacing: 0; border: 1px solid #1f1c15; }
/* Phones: the same strip, smaller */
@media (max-width: 640px) {
  .fnn { gap: 5px; }
  .fnn a { min-height: 30px; padding: 0 7px; }
  .fnn .fnn-home { padding: 3px 10px 3px 3px; font-size: 9px; letter-spacing: .1em; }
  .fnn-logo { width: 42px; height: 20px; }
  .fnn .fnn-fn { font-size: 15px; border-bottom-width: 3px; }
  .fnn .fnn-dptv { font-size: 12px; padding-top: 8px; border-radius: 6px; }
  .fnn .fnn-ao { font-size: 18px; }
  .fnn .fnn-hr { padding-left: 3px; font-size: 10px; letter-spacing: .03em; box-shadow: 2px 2px 0 #1f1c15; }
  .fnn-hr-mark { width: 21px; height: 21px; font-size: 11px; }
}
/* Narrow phones: the strip takes the full width */
@media (max-width: 560px) {
  .fnn { display: grid; width: 100%; }
}
/* fnn-strip:end */
.logo { display: inline-flex; align-items: center; gap: .75rem; text-decoration: none; color: var(--ink) !important; }
.logo-mark {
  display: inline-grid; place-items: center; width: 3.1rem; height: 3.1rem;
  background: var(--titlebar); color: var(--titlebar-ink); font: 600 1.4rem var(--mono);
  border: 2px solid var(--ink); box-shadow: 4px 4px 0 var(--ink);
}
.logo-text { font: 600 clamp(1.5rem, 5vw, 2.4rem)/1 var(--mono); letter-spacing: .06em; }
.tagline { margin: .45rem 0 0; font: 400 .95rem var(--mono); color: var(--muted); }

/* ── Department buttons: two rows of three ─────────────────────────── */
.deptgrid { max-width: 1120px; margin: 0 auto; padding: .4rem 16px 0; }
.deptgrid ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.deptgrid a {
  display: grid; gap: 0; align-content: start; height: 100%; padding: .4rem .8rem .45rem; text-decoration: none; color: var(--ink) !important;
  background: var(--panel); border: 2px solid; border-color: var(--panel-hi) var(--panel-lo) var(--panel-lo) var(--panel-hi);
  border-top: 6px solid var(--dept); box-shadow: 2px 2px 0 rgba(0, 0, 0, .18);
}
.deptgrid a:hover { background: var(--paper); }
.deptgrid a[aria-current="page"] {
  background: var(--paper); border-color: var(--panel-lo) var(--panel-hi) var(--panel-hi) var(--panel-lo); border-top-color: var(--dept);
  box-shadow: inset 2px 2px 0 rgba(0, 0, 0, .12); transform: translate(1px, 1px);
}
.dg-top { display: flex; justify-content: space-between; align-items: baseline; gap: .5rem; }
.dg-no { font: 600 .75rem var(--mono); letter-spacing: .14em; color: var(--dept); filter: saturate(1.2); }
.dg-name { font: 600 1.02rem/1.25 var(--mono); }
.dg-short { font-size: .82rem; line-height: 1.35; color: var(--muted); }
.dg-count { font: .7rem var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .08em; white-space: nowrap; }

/* ── Sidebar + main ─────────────────────────────────────────────────── */
.layout { max-width: 1120px; margin: 0 auto; padding: 1.2rem 16px 3rem; display: grid; grid-template-columns: 13rem minmax(0, 1fr); gap: 1.4rem; align-items: start; }
.sidebar { position: sticky; top: .8rem; display: grid; gap: 1rem; }
.sidenav { display: grid; gap: .5rem; }
.sidenav a {
  display: grid; padding: .6rem .8rem; text-decoration: none; color: var(--ink) !important;
  background: var(--panel); border: 2px solid; border-color: var(--panel-hi) var(--panel-lo) var(--panel-lo) var(--panel-hi);
  box-shadow: 2px 2px 0 rgba(0, 0, 0, .18);
}
.sidenav a:hover { background: var(--paper); }
.sidenav a[aria-current="page"] { background: var(--titlebar); color: var(--titlebar-ink) !important; border-color: var(--panel-lo) var(--panel-hi) var(--panel-hi) var(--panel-lo); }
.sb-label { font: 600 1rem var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.sb-label::before { margin-right: .45rem; }
.sb-inbox .sb-label::before { content: "▣"; }
.sb-filing .sb-label::before { content: "▤"; }
.sb-staff .sb-label::before { content: "☺"; }
.sb-note { font: .72rem var(--mono); opacity: .8; text-transform: uppercase; letter-spacing: .06em; }
.policy-box { background: var(--term-bg); color: var(--term-fg); padding: .7rem .8rem; border: 2px solid var(--panel-lo); }
.policy-label { margin: 0 0 .3rem; font: 600 .7rem var(--mono); text-transform: uppercase; letter-spacing: .12em; color: var(--term-dim); }
.policy-box .policy { margin: 0; font: 1.15rem/1.25 var(--crt); }
main { min-width: 0; }
.panel-intro { color: var(--muted); margin-top: 0; }
.list-count { font-weight: 400; color: var(--muted); }


.crumbs { font: .85rem var(--mono); color: var(--muted); margin-bottom: .8rem; }
.page-title { font-size: 1.9rem; margin: .2rem 0 .3rem; }
.page-intro { color: var(--muted); margin-top: 0; }
.list-heading { font-size: 1.05rem; text-transform: uppercase; letter-spacing: .08em; margin: 2rem 0 .6rem; border-bottom: 2px solid var(--ink); padding-bottom: .2rem; }
.more { font: .9rem var(--mono); }

/* ── Windows ───────────────────────────────────────────────────────── */
.window {
  background: var(--panel); border: 2px solid; border-color: var(--panel-hi) var(--panel-lo) var(--panel-lo) var(--panel-hi);
  box-shadow: 1px 1px 0 var(--ink), 6px 6px 0 rgba(0, 0, 0, .18); margin-bottom: 1.4rem; min-width: 0;
}
.window-title {
  display: flex; justify-content: space-between; gap: 1rem; align-items: center;
  background: linear-gradient(90deg, var(--titlebar), var(--titlebar-2)); color: var(--titlebar-ink);
  font: 600 .85rem var(--mono); letter-spacing: .05em; padding: .3rem .6rem; text-transform: uppercase;
}
.window-buttons { letter-spacing: .4em; font-weight: 400; white-space: nowrap; }
.window-body { padding: 1rem 1.2rem; }
.window-body > :first-child { margin-top: 0; }
.window-body > :last-child { margin-bottom: 0; }

.terminal {
  background: var(--term-bg); color: var(--term-fg); border: 2px solid var(--panel-lo); margin-bottom: 1.4rem;
  box-shadow: inset 0 0 40px rgba(0, 0, 0, .6), 6px 6px 0 rgba(0, 0, 0, .18); position: relative; overflow: hidden;
}
.terminal::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .22) 0 1px, transparent 1px 3px);
}
.terminal pre {
  margin: 0; padding: 1rem 1.2rem; font: 1.25rem/1.25 var(--crt); white-space: pre-wrap; word-break: break-word;
  text-shadow: 0 0 6px color-mix(in srgb, var(--term-fg) 60%, transparent);
}
.cursor { animation: blink 1.1s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
.lead { font-size: 1.15rem; }

.statusboard { margin-bottom: 1.2rem; background: var(--term-bg); color: var(--term-fg); display: flex; align-items: stretch; border: 2px solid var(--panel-lo); overflow: hidden; }
.statusboard-label { margin: 0; padding: .45rem .8rem; background: var(--stamp); color: #fff; font: 600 .78rem var(--mono); letter-spacing: .08em; display: flex; align-items: center; flex-shrink: 0; }
.ticker { list-style: none; margin: 0; padding: .4rem .8rem; font: 1.2rem/1.3 var(--crt); flex: 1; min-width: 0; }
.ticker li + li, .ticker.rotating li { display: none; }
.ticker.rotating li.on { display: block; animation: type-in .5s steps(12) both; }
@keyframes type-in { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }

/* ── Document lists ───────────────────────────────────────────────── */
.doclist { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--rule); }
.docrow a {
  display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: .1rem 1rem; padding: .55rem .5rem .55rem .7rem;
  text-decoration: none; color: var(--ink) !important; border-bottom: 1px solid var(--rule); border-left: 5px solid var(--dept);
}
.docrow a:hover { background: var(--paper); }
.docrow-id { font: 600 .85rem/1.9 var(--mono); color: var(--muted); grid-row: span 2; }
.docrow-title { font-weight: 600; }
.docrow-meta { display: flex; flex-wrap: wrap; gap: .1rem 1rem; font: .78rem var(--mono); color: var(--muted); }
.docrow-type { text-transform: uppercase; letter-spacing: .05em; }
.docrow[hidden] { display: none; }
.empty { font-family: var(--mono); color: var(--muted); }

.filters { display: flex; flex-wrap: wrap; gap: .6rem 1rem; align-items: end; padding: .8rem 1rem; margin-bottom: 1rem; background: var(--panel); border: 1px solid var(--panel-lo); }
.filters label { display: grid; gap: .2rem; font: 600 .78rem var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.filters input, .filters select {
  font: 1rem var(--mono); color: var(--ink); background: var(--paper); min-width: 12rem; max-width: 100%;
  border: 2px solid; border-color: var(--panel-lo) var(--panel-hi) var(--panel-hi) var(--panel-lo); padding: .3rem .5rem;
}
.filter-count { margin: 0; font: .85rem var(--mono); color: var(--muted); }

/* ── Documents ─────────────────────────────────────────────────────── */
.doc { background: var(--paper); border-left: 10px solid var(--dept); }
.classbar { margin: 0; text-align: center; background: var(--stamp); color: #fff; font: 600 .78rem var(--mono); letter-spacing: .2em; text-transform: uppercase; padding: .2rem .5rem; }
.doc-inner { padding: 1.4rem clamp(1rem, 4vw, 2.6rem) 1.6rem; position: relative; max-width: 52rem; }
.stamp {
  float: right; margin: 0 0 1rem 1rem; padding: .3rem .8rem; transform: rotate(-6deg); text-align: center; line-height: 1.25;
  border: 3px double var(--stamp); color: var(--stamp); font: 600 .8rem var(--mono); letter-spacing: .12em; text-transform: uppercase;
  opacity: .9; background: color-mix(in srgb, var(--paper) 70%, transparent);
}
.stamp span { display: block; font-size: .65rem; letter-spacing: .15em; }
.doc-kind { margin: 0; font: 600 .8rem var(--mono); color: var(--dept); letter-spacing: .1em; text-transform: uppercase; filter: saturate(1.2); }
.doc h1 { font-size: clamp(1.4rem, 3.6vw, 2rem); margin: .3rem 0 1rem; }
.doc h2 { font-size: 1.1rem; margin: 1.8rem 0 .5rem; }
.secno { color: var(--muted); }
.routing { border-collapse: collapse; font: .88rem var(--mono); margin-bottom: 1rem; }
.routing th { text-align: left; padding: .1rem 1rem .1rem 0; color: var(--muted); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; vertical-align: top; }
.routing td { padding: .1rem 0; }
.routing-memo { border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); padding: .4rem 0; display: block; }
.doc-summary { border-top: 1px dashed var(--rule); border-bottom: 1px dashed var(--rule); margin: 1.2rem 0; }
.doc-summary h2 { margin-top: .8rem; font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.doc-memo .doc-summary { border: 0; }
.fields { margin: 1.2rem 0; }
.fields-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: 0; border: 1px solid var(--ink); }
.field { padding: .5rem .7rem; border: 1px solid var(--rule); margin: 0; }
.field dt { font: 600 .72rem var(--mono); text-transform: uppercase; letter-spacing: .1em; color: var(--muted); }
.field dd { margin: .15rem 0 0; }
.field-status dd { font: 600 1rem var(--mono); color: var(--stamp); }
.fields-table, .ratings { border-collapse: collapse; width: 100%; font-size: .95rem; }
.fields-table th, .fields-table td, .ratings th, .ratings td { border: 1px solid var(--rule); padding: .4rem .6rem; text-align: left; vertical-align: top; }
.fields-table th, .ratings thead th { font: 600 .78rem var(--mono); text-transform: uppercase; letter-spacing: .06em; background: var(--panel); width: 30%; }
.ratings thead th { width: auto; }
.ratings tbody th { font-weight: 600; }
.score { font-family: var(--mono); color: var(--dept); letter-spacing: .1em; white-space: nowrap; filter: saturate(1.2); }
.score-off { color: var(--rule); }
.doc-list { padding-left: 1.4rem; }
.doc-list li { margin-bottom: .35rem; }
.tags { font: .8rem var(--mono); color: var(--muted); margin-top: 2rem; }
.tags span { border: 1px solid var(--rule); padding: 0 .4rem; margin-right: .2rem; white-space: nowrap; }

/* ── Departments ──────────────────────────────────────────────────── */
.dept-info { border-top: 10px solid var(--dept); }
.dept-info h1 { margin: 0 0 .3rem; font-size: 1.9rem; }
.dept-no { margin: 0; font: 600 .85rem var(--mono); letter-spacing: .16em; color: var(--dept); filter: saturate(1.2); }
.dept-remit { font-size: 1.15rem; }

.textpage { max-width: 52rem; }
.staffgrid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: .8rem; }
.staffcard { background: var(--paper); border: 1px solid var(--rule); border-left: 6px solid var(--dept); padding: .6rem .8rem; }
.staffcard p { margin: 0; }
.staff-name { font: 600 1rem var(--mono); }
.staff-role { font-size: .9rem; color: var(--muted); }
.staff-depts, .staff-docs { font: .78rem var(--mono); margin-top: .3rem !important; }
.staff-depts a, .staff-docs a { margin-right: .35rem; white-space: nowrap; }
.textpage h1 { margin-top: 0; }

/* ── Footer ───────────────────────────────────────────────────────── */
.site-footer { border-top: 3px double var(--ink); max-width: 1120px; margin: 0 auto; padding: 1.2rem 16px 3rem; font-size: .9rem; color: var(--muted); }

/* Desktop: logo left, network strip always on the right; they shrink, then stack, rather than dropping below */
@media (min-width: 821px) {
  .masthead { flex-wrap: nowrap; align-items: center; }
  .masthead-inner { flex-shrink: 0; }
}
@media (min-width: 821px) and (max-width: 1150px) {
  .logo-text { font-size: clamp(1.4rem, 3.2vw, 2.4rem); }
}
@media (max-width: 820px) {
  .masthead .fnn { margin-left: 0; }
  .layout { grid-template-columns: minmax(0, 1fr); gap: 1rem; padding-top: .8rem; }
  .sidebar { position: static; }
  .sidenav { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .4rem; }
  .sidenav a { padding: .45rem .5rem; text-align: center; }
  .sb-label { font-size: .85rem; letter-spacing: .04em; }
  .sb-note, .policy-box { display: none; }
  .deptgrid ul { gap: .4rem; }
  .deptgrid a { padding: .35rem .5rem .4rem; border-top-width: 5px; }
  .dg-short, .dg-count { display: none; }
  .dg-name { font-size: .8rem; }
  .dg-no { font-size: .66rem; letter-spacing: .06em; }
  .docrow a { grid-template-columns: minmax(0, 1fr); }
  .docrow-id { grid-row: auto; line-height: 1.3; }
  .stamp { float: none; display: inline-block; margin: 0 0 .8rem; }
  .statusboard { flex-direction: column; }
  .window-buttons { display: none; }
  .ratings { font-size: .88rem; }
  .ratings th, .ratings td { padding: .3rem .4rem; }
  .score { letter-spacing: 0; }
}
@media (prefers-reduced-motion: reduce) { .cursor { animation: none; } }
@media print {
  .deptgrid, .sidebar, .filters, .related { display: none; }
  .layout { display: block; }
  body { background: #fff; }
}

/* Long machine identifiers (FIRST_PREFERENCE_IS_TRUE_PREFERENCE) must wrap rather than burst out of their boxes */
.doc-inner, .field dd, .fields-table td, .ratings td, .routing td, .docrow-title { overflow-wrap: anywhere; }
