@import url("https://fonts.googleapis.com/css2?family=Source+Sans+3:wght@400;600;700&display=swap");
:root {
  --ink: #1a1a1a;
  --muted: #444;
  --line: #ccc;
}
* { box-sizing: border-box; }
body {
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  font-size: 14pt;
  line-height: 1.45;
  color: var(--ink);
  max-width: 8.5in;
  margin: 0 auto;
  padding: 0.5in;
  background: #fff;
}
h1, h2, h3 { line-height: 1.2; page-break-after: avoid; }
h1 { font-size: 22pt; margin: 0 0 0.25em; }
h2 { font-size: 16pt; margin-top: 1.25em; border-bottom: 2px solid var(--ink); padding-bottom: 0.2em; }
h3 { font-size: 13pt; margin-bottom: 0.25em; }
.meta { font-size: 11pt; color: var(--muted); margin-bottom: 1.5em; }
.cover {
  min-height: 9in;
  display: flex;
  flex-direction: column;
  justify-content: center;
  text-align: center;
  page-break-after: always;
}
.cover .brand { font-size: 12pt; letter-spacing: 0.15em; text-transform: uppercase; }
.dementia {
  font-size: 10pt;
  background: #f0f0f0;
  border-left: 4px solid #333;
  padding: 0.5em 0.75em;
  margin: 0.75em 0;
}
table.calendar { width: 100%; border-collapse: collapse; font-size: 11pt; }
table.calendar th, table.calendar td { border: 1px solid var(--line); padding: 0.4em 0.5em; vertical-align: top; }
table.calendar th { background: #eee; text-align: left; width: 18%; }
.room-card {
  border: 2px solid var(--ink);
  padding: 0.75em;
  margin: 1em 0;
  page-break-inside: avoid;
}
.room-card ol { margin: 0.5em 0 0; padding-left: 1.25em; font-size: 13pt; }
.page-break { page-break-before: always; }
.bingo {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  max-width: 6.5in;
  margin: 1em 0;
}
.bingo span {
  border: 1px solid #000;
  min-height: 1.4in;
  display: grid;
  place-items: center;
  font-size: 12pt;
  font-weight: 700;
  text-align: center;
  padding: 0.25em;
}
@media print {
  body { padding: 0.35in; }
  a { color: var(--ink); text-decoration: none; }
}
