/* Shared basics and print rules (the theme itself is in style.css). */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; }

body { margin: 0; }

img { max-width: 100%; height: auto; }

.skip {
  position: absolute; left: -9999px; top: 0;
  background: #fff; color: #000; padding: 6px 10px; z-index: 10;
}
.skip:focus { left: 8px; top: 8px; }

a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible {
  outline: 2px solid #8f6ee8; outline-offset: 2px;
}

.sitenav ul { list-style: none; margin: 0; padding: 0; }

.table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; }
caption { text-align: left; }

figure { margin: 1.2em 0; }
figcaption { font-size: 0.88em; }

.visually-hidden {
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

/* Publication list */
.pub-controls { display: flex; flex-wrap: wrap; gap: 0.6em 1.2em; align-items: center; margin: 1em 0; }
.pub-controls label { white-space: nowrap; }
.pub-controls input[type="search"] { min-width: 14em; flex: 1 1 14em; max-width: 26em; }
.pub-list { padding-left: 2.6em; }
.pub-list li { margin-bottom: 0.7em; }
.pub-year { margin-top: 1.4em; }
.pub-count { font-size: 0.9em; }
.pub-links a { margin-right: 0.6em; white-space: nowrap; }

/* Group tables */
.group-table td, .group-table th { vertical-align: top; }
.group-table .who { white-space: nowrap; }

/* Small helpers */
.nowrap { white-space: nowrap; }
.muted { opacity: 0.8; }

@media print {
  .sitenav, .sky-switch, .pub-controls, .skip, .howto, .sky-fx { display: none !important; }
  body { background: #fff !important; color: #000 !important; }
  a { color: #000 !important; text-decoration: none !important; }
  .page { max-width: none !important; display: block !important; }
  .masthead { background: none !important; color: #000 !important; border-bottom: 2px solid #000 !important; }
  .masthead * { color: #000 !important; }
}
