:root { --ink: #1a1a1a; --muted: #666; --line: #d8d8d8; --accent: #2b5cab; }
* { box-sizing: border-box; }
body { font-family: Georgia, 'Times New Roman', serif; color: var(--ink); margin: 0; line-height: 1.5; }
header.site { background: var(--accent); color: #fff; padding: 1rem 1.5rem; }
header.site a { color: #fff; text-decoration: none; }
main { max-width: 820px; margin: 0 auto; padding: 1.5rem; }
.filters { display: flex; gap: .5rem; flex-wrap: wrap; margin-bottom: 1rem; }
.card { border: 1px solid var(--line); border-radius: 8px; padding: 1rem; margin-bottom: .75rem; }
.card h3 { margin: 0 0 .25rem; }
.meta { color: var(--muted); font-size: .9rem; }
.ws-header { border-bottom: 2px solid var(--ink); padding-bottom: .75rem; margin-bottom: 1rem; }
.ws-header .row { display: flex; justify-content: space-between; gap: 1rem; }
.question { margin: 1rem 0; }
.answer-space { border-bottom: 1px dotted var(--line); height: 2.5rem; margin-top: .5rem; }
.toolbar { display: flex; gap: .5rem; margin: 1rem 0; }
button { font: inherit; padding: .5rem .9rem; border: 1px solid var(--accent); background: #fff; color: var(--accent); border-radius: 6px; cursor: pointer; }
#answerKey { display: none; }
#answerKey.show { display: block; }
@media print {
  header.site, .toolbar, .filters { display: none !important; }
  main { max-width: none; padding: 0; }
  .answer-space { height: 2.2rem; }
  #answerKey { display: none; }
  body.print-answers .question { display: none; }
  body.print-answers #answerKey { display: block; page-break-before: always; }
}
