/* ═══════════════════════════════════════════════════════════════════
   theme: default
   A clean light documentation page. Used by anything that has not earned
   a bespoke theme, and a deliberate contrast with the dark homepage.
   Fonts are imported here so a theme stays a single self-contained file.
   ═══════════════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Serif:ital,wght@0,400;1,400&display=swap');

:root {
  --paper:  #FBFAF8;
  --panel:  #F2F0EC;
  --ink:    #1A1D21;
  --ink-2:  #4A4F56;
  --ink-3:  #767B82;
  --rule:   #DFDCD6;
  --rule-2: #ECEAE5;
  --link:   #1F5E8C;
  --ok:     #2E7D5B;
  --warn:   #A66A0A;
  --pad: clamp(1.4rem, 5vw, 3rem);
  --max: 58rem;
  --sans: "IBM Plex Sans", system-ui, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;
}

body {
  background: var(--paper);
  color: var(--ink);
  font: 400 clamp(1rem, .3vw + .95rem, 1.06rem)/1.68 var(--sans);
}
a { color: var(--link); }
::selection { background: #cfe3f2; }
:focus-visible { outline: 2px solid var(--link); outline-offset: 2px; }

/* band */
.band {
  background: var(--panel);
  border-bottom: 1px solid var(--rule);
  font: 500 .82rem/1 var(--mono);
}
.band a { color: var(--ink-2); text-decoration: none; }
.band a:hover { color: var(--link); }
.band__home { font-weight: 600; color: var(--ink) !important; }

/* head */
.pr__name {
  font: 600 clamp(2rem, 5vw, 2.9rem)/1.1 var(--sans);
  letter-spacing: -.02em;
}
.pr__sum { font: 400 1.14em/1.6 "IBM Plex Serif", Georgia, serif; color: var(--ink-2); }
.pr__meta { border-top: 1px solid var(--rule); font: 400 .82rem/1 var(--mono); color: var(--ink-3); }
.pr__fields { color: var(--ink-3); }
.pr__links a { font: 500 .84rem/1 var(--mono); }

.pr > section { border-top: 1px solid var(--rule-2); }
.pr > section > h2 {
  font: 600 .78rem/1 var(--mono);
  letter-spacing: .16em; text-transform: uppercase; color: var(--ink-3);
}

/* status */
.st { font: 400 .78rem/1 var(--mono); color: var(--ink-3); }
.st::before { background: var(--ink-3); }
.st--run::before { background: var(--ok); }
.st--bench::before { background: var(--warn); }
.st--dead::before { background: none; border: 1px solid var(--ink-3); }

/* reference */
.pr__ref p, .pr__ref li { color: var(--ink-2); }
.tbl table { font-size: .93em; }
.tbl th {
  border-bottom: 2px solid var(--rule); color: var(--ink);
  font: 600 .78rem/1.4 var(--mono); letter-spacing: .04em; text-transform: uppercase;
}
.tbl td { border-bottom: 1px solid var(--rule-2); color: var(--ink-2); }
.tbl tr:hover td { background: var(--panel); }

/* files */
.dl li { border-bottom: 1px solid var(--rule-2); }
.dl__label { font-weight: 500; }
.dl__size { font: 400 .8rem/1 var(--mono); color: var(--ink-3); }
.dl__desc { font-size: .92em; color: var(--ink-3); }

/* log */
.ent { border-bottom: 1px solid var(--rule-2); }
.ent__when time { font: 400 .84rem/1.5 var(--mono); color: var(--ink-3); }
.ent__body h3 { font: 600 clamp(1.18rem, 2vw, 1.38rem)/1.25 var(--sans); letter-spacing: -.01em; }
.ent__body h3 a:hover { color: var(--link); }
.ent__body p, .ent__body li { color: var(--ink-2); }
.ent__body h4 {
  font: 600 .76rem/1.3 var(--mono); letter-spacing: .14em;
  text-transform: uppercase; color: var(--ink);
}
.ent__body li::marker { color: var(--ink-3); }
code {
  font: 400 .9em/1.4 var(--mono);
  background: var(--panel); border: 1px solid var(--rule-2);
  padding: .05em .35em; border-radius: 3px;
}
pre { background: var(--panel); border: 1px solid var(--rule); border-radius: 4px; }
pre code { border: 0; background: none; padding: 0; font-size: .86rem; line-height: 1.6; }
.pr__empty { color: var(--ink-3); font-style: italic; }

/* index */
.all { border-top: 1px solid var(--rule); }
.all li { border-bottom: 1px solid var(--rule-2); }
.all a { color: var(--ink); }
.all a:hover { background: var(--panel); }
.all__name { font-weight: 500; }
.all__fields, .all__notes, .all__when { font: 400 .8rem/1.5 var(--mono); color: var(--ink-3); }

.pr__foot {
  border-top: 1px solid var(--rule); font: 400 .82rem/1.6 var(--mono); color: var(--ink-3);
}
.pr__foot a { color: var(--ink-2); }
