/* /open-source (src/pages/open-source.astro), on top of legal.css: the same measure, headings and tables. Brand tokens
   and faces only; no inline style (CSP). Package names, versions and the counts are data, so DM Mono with tabular
   figures (CLAUDE.md). License and NOTICE texts keep their own line breaks and wrap inside the measure, so nothing
   scrolls sideways at 320px. Every link and every "Show license" reaches 44px (spec §6.9). */
.o-intro{ margin-top:var(--s3); font-size:var(--fs-lead); line-height:1.5; text-wrap:pretty; }
.o-num{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.o-sum td:last-child, .o-sum th:last-child{ text-align:right; }
.o-tot td{ font-weight:700; border-bottom-color:var(--ink); }
.o-list{ list-style:none; padding:0; margin-top:var(--s2); }
.o-r{ padding-block:var(--s2); border-bottom:1px solid var(--line); }
.o-r > * + *{ margin-top:var(--s1); }
.o-h{ display:flex; flex-wrap:wrap; align-items:baseline; gap:0 var(--s2); }
.o-n{ font:500 var(--fs-body)/1.4 var(--mono); color:var(--ink); overflow-wrap:anywhere; }
.o-f{ font:700 var(--fs-body)/1.4 var(--display); }
.o-v{ font:400 var(--fs-micro)/1.4 var(--mono); font-variant-numeric:tabular-nums; color:var(--muted); }
.o-ls{ display:flex; flex-wrap:wrap; column-gap:var(--s3); margin-top:0 !important; }
.o-a{ display:inline-flex; align-items:center; min-height:44px; min-width:44px; overflow-wrap:anywhere; }
.o-c{ font-size:var(--fs-micro); line-height:1.6; color:var(--muted); overflow-wrap:anywhere; }
.o-x{ font-size:var(--fs-micro); line-height:1.6; }
.o-d > summary{ display:flex; align-items:center; gap:var(--s1); min-height:44px; width:max-content; cursor:pointer;
  color:var(--brand-deep); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:.2em; list-style:none; }
.o-d > summary::-webkit-details-marker{ display:none; }
.o-d > summary::before{ content:"+"; font-family:var(--mono); text-decoration:none; display:inline-block; width:1ch; }
.o-d[open] > summary::before{ content:"\2212"; }
.o-d > summary:hover{ text-decoration-thickness:2px; }
.o-l{ font:400 var(--fs-micro)/1.5 var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--muted); }
.o-t{ margin-top:var(--s1); padding:var(--s2) var(--s3); border-radius:var(--r1); background:var(--surface-2); color:var(--ink);
  font:400 var(--fs-micro)/1.6 var(--mono); white-space:pre-wrap; overflow-wrap:anywhere; }
.o-std{ margin-top:var(--s4); }
.o-g > p{ margin-top:var(--s2); }
