  /* Hours Digest: a summary strip, then interns in Finishing / Midway / Early sections. Each row
     leads with hours left, carries an ink progress hairline, a tier-coloured 8-week trend line
     (hover or arrow keys for the week's hours) and an estimated finish week. */
  .hd { --tier-ok:#7fa86f; --tier-ok-dot:#4f7a41; --tier-warn:#d49a3c; --tier-warn-dot:#8a5a1a; --tier-bad:#d85f75; --tier-bad-dot:#a13a52; }
  .hd .it { font-family: Georgia, serif; font-style: italic; color: var(--muted); font-size: 12px; }
  .hd .it.amber { color: #82501f; }
  .hd-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 1px solid var(--line); }
  .hd-strip > div { padding: 16px 20px 18px; border-right: 1px solid var(--line-soft); min-width: 0; }
  .hd-strip > div:first-child { padding-left: 0; }
  .hd-strip > div:last-child { border-right: 0; }
  .hd-strip .ledger-figure { display: block; font-size: 38px; margin-top: 10px; white-space: nowrap; }
  .hd-strip .it { display: block; margin-top: 6px; font-size: 11px; }
  .hd-legend { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 12px; font-size: 11px; color: var(--muted); }
  .hd-legend > span { display: inline-flex; align-items: center; gap: 6px; }
  .hd-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--tier-bad); }
  .hd-dot.ok { background: var(--tier-ok); }
  .hd-dot.warn { background: var(--tier-warn); }
  .hd-sec { margin-top: 34px; }
  .hd-sec-title { margin: 0; font: inherit; }
  .hd-toggle, .hd-sec-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; width: 100%; padding: 0 0 8px; border: 0; border-bottom: 1px solid var(--ink); background: none; text-align: left; color: inherit; }
  .hd-toggle { cursor: pointer; }
  .hd-sec-name { font: 400 22px Georgia, serif; }
  .hd-sec-meta { display: inline-flex; align-items: center; gap: 8px; }
  .hd-chev { display: grid; place-items: center; color: var(--muted); transition: transform .15s ease; }
  .hd-toggle:hover .hd-chev { color: var(--ink); }
  .hd-toggle[aria-expanded="false"] .hd-chev { transform: rotate(-90deg); }
  .hd-none { padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
  .hd-row { display: grid; grid-template-columns: 96px minmax(0, 1fr) 150px minmax(0, 190px); gap: 22px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line-soft); }
  .hd-left { font-size: 34px; white-space: nowrap; }
  .hd-left .ledger-label { display: block; margin-top: 4px; font-size: 11px; line-height: 1; }
  .hd-name { font: 400 17px Georgia, serif; }
  .hd-meta { font-size: 11.5px; color: var(--muted); margin-top: 2px; }
  .hd-meta .it { font-size: 10.5px; margin-left: 6px; }
  .hd-hair { position: relative; height: 2px; background:var(--track); margin-top: 9px; }
  .hd-hair span { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ink); }
  .hd-hair::after { content: ""; position: absolute; right: 0; top: -3px; width: 1px; height: 8px; background: var(--ink); }
  .hd-spk { position: relative; min-width: 0; border-radius: 4px; outline-offset: 4px; }
  .hd-spk:focus-visible { outline: 2px solid var(--rose-2); }
  .hd-spk [hidden] { display: none !important; }
  .hd-plot { position: relative; height: 36px; cursor: crosshair; touch-action: pan-y; }
  .hd-plot svg { display: block; width: 100%; height: 100%; overflow: visible; color: var(--tier); }
  .hd-guide { position: absolute; top: 0; bottom: 0; width: 1px; margin-left: -.5px; background: var(--ink); opacity: .35; pointer-events: none; }
  .hd-pt { position: absolute; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--tier-dot); pointer-events: none; }
  .hd-pt.is-hover { width: 9px; height: 9px; margin: -4.5px 0 0 -4.5px; background: var(--paper); border: 2px solid var(--tier-dot); }
  .hd-tip { position: absolute; bottom: calc(100% + 8px); z-index: 5; display: flex; flex-direction: column; gap: 2px; padding: 6px 9px; border-radius: 7px; background: var(--ink); color: #fff6ef; white-space: nowrap; pointer-events: none; box-shadow: 0 6px 16px -8px rgba(69,42,29,.5); }
  .hd-tip-wk { font: 11px Georgia, serif; font-variant-caps: all-small-caps; letter-spacing: .06em; color: #e3d3ca; }
  .hd-tip .ledger-figure { font-size: 17px; }
  .hd-tip .ledger-figure small { color: #c9b7ad; }
  .hd-spk-l { display: flex; justify-content: space-between; margin-top: 2px; font: 11px Georgia, serif; font-variant-caps: all-small-caps; letter-spacing: .06em; color: var(--muted); }
  .hd-eta { text-align: right; }
  .hd-eta b { display: block; font: 400 15px Georgia, serif; }
  .hd-eta .it { display: block; margin-top: 2px; font-size: 10.5px; }
  .hd-note { margin-top: 14px; font: italic 12px Georgia, serif; color: var(--muted); }
  /* Intern Program page (intern_hours.js): the same ledger, plus a plain ruled table. */
  .hd-strip .ledger-figure.ih-date { font-family: Georgia, serif; font-size: 24px; letter-spacing: 0; margin-top: 16px; }
  .hd-strip.ih-strip-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 560px; }
  .ih-row { grid-template-columns: 110px minmax(0, 1fr) minmax(0, 190px); }
  .ih-scroll { overflow-x: auto; max-width: 100%; }
  .hd { min-width: 0; }
  .ih-ledger { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; }
  .ih-ledger th { font: 400 12px Georgia, serif; font-variant-caps: all-small-caps; letter-spacing: .08em; color: var(--muted); text-align: left; padding: 10px 12px 6px; border-bottom: 1px solid var(--ink); white-space: nowrap; }
  .ih-ledger td { padding: 11px 12px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
  .ih-ledger :is(th, td):first-child { padding-left: 0; }
  .ih-ledger :is(th, td):last-child { padding-right: 0; }
  .ih-ledger .num { text-align: right; white-space: nowrap; }
  .ih-ledger .ledger-figure { font-size: 18px; }
  .ih-ledger small { font-size: 11px; color: var(--muted); }
  .ih-ledger .ih-wk { font: 400 15px Georgia, serif; white-space: nowrap; }
  .ih-ledger .ih-prog { width: 30%; min-width: 140px; }
  .ih-ledger .ih-prog .hd-hair { margin: 0 0 4px; }
  .ih-ledger .ih-prog .it { font-size: 10.5px; }
  .ih-ledger tr.is-off .ih-wk { color: var(--muted); }
  .ih-ledger tr.is-today .ih-wk::after { content: "today"; margin-left: 8px; font: italic 11px Georgia, serif; color: var(--rose-ink); }
  @media (max-width: 900px) {
    .hd-row { grid-template-columns: 84px minmax(0, 1fr) 150px; }
    .hd-eta { grid-column: 2 / -1; text-align: left; display: flex; gap: 8px; align-items: baseline; }
  }
  @media (max-width: 760px) {
    .hd-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hd-strip > div { padding-left: 0; }
    .hd-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
    .hd-row { grid-template-columns: 72px minmax(0, 1fr); gap: 8px 16px; }
    .hd-strip.ih-strip-2 { max-width: none; }
    .hd-left { font-size: 28px; }
    .hd-spk { grid-column: 2 / -1; }
    .hd-eta { flex-wrap: wrap; }
  }
  @media (prefers-reduced-motion: reduce) { .hd-chev { transition: none; } }
