/* RxAce printable study sheets (the study bundle).
   On screen: a preview of each page as a white card. On paper: one .sheet per physical page, black on
   white in both themes, sized for the Letter/A4 intersection (186 × 240 mm inside 12/12/14 mm margins).
   Everything is scoped under .printarea so the app's own .sheet cards are untouched. */

.printopts { display: grid; gap: 10px; margin: 14px 0; }
.printopts .optrow { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.printopts .opt { display: grid; gap: 4px; min-width: 0; flex: 1 1 150px; }
.printopts .opt .field { min-height: 44px; font-size: var(--f-1); }
.printopts fieldset { border: 0; padding: 0; margin: 0; }
.printopts legend { font-weight: 650; font-size: var(--f-1); margin-bottom: 6px; }
.printopts .checks { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.printopts .checks label { display: inline-flex; gap: 8px; align-items: center; font-size: var(--f-1); min-height: 32px; }
.printopts .checks input { width: 20px; height: 20px; }
.printbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 12px 0 4px; }
.printbar .pages { color: var(--ink-3); font-size: var(--f-1); }
.upsell { border: 1.5px solid var(--line-2); border-radius: var(--r-l); padding: 18px; background: var(--sheet); margin-top: 14px; }
.upsell h2 { font-family: var(--sans); font-size: var(--f-3); margin-bottom: 8px; }
.upsell ul { margin: 10px 0 14px; padding-left: 20px; }
.upsell li { margin: 4px 0; }

/* minmax(0, 1fr): a fixed-size card (88 mm) must not widen the preview column past the screen */
.printarea { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; margin-top: 14px; }
.printarea .sheet {
  background: #fff; color: #000; border: 1px solid var(--line-2); border-radius: var(--r-m); padding: 14px 16px; box-shadow: var(--shadow);
  font-family: var(--sans); font-size: 10pt; line-height: 1.35; overflow-wrap: anywhere; box-sizing: border-box; display: flex; flex-direction: column; min-width: 0; max-width: 100%;
}
.printarea .sheet a { color: #000; }
.printarea .sheet-head { display: flex; justify-content: space-between; gap: 8px 16px; align-items: flex-end; flex-wrap: wrap; border-bottom: 1.5px solid #000; padding-bottom: 5px; margin-bottom: 7px; }
.printarea .sheet-titles { min-width: 0; flex: 1 1 60%; }
.printarea .sheet-title { font-family: var(--serif); font-size: 15pt; font-weight: 600; margin: 0; color: #000; line-height: 1.2; }
.printarea .sheet-sub { margin: 2px 0 0; font-size: 8.5pt; color: #222; line-height: 1.3; }
.printarea .sheet-meta { margin: 0; font-size: 7.5pt; color: #222; text-align: right; line-height: 1.3; }
.printarea .sheet-body { flex: 1 0 auto; }
.printarea .sheet-foot { border-top: 1px solid #000; margin-top: 10px; padding-top: 4px; font-size: 7.5pt; color: #111; line-height: 1.35; }
.printarea .sheet-foot p { margin: 0 0 1.5px; }
.printarea .keyintro, .printarea .warn { margin: 0 0 6px; font-size: 9pt; }
.printarea .warn { border: 1px solid #000; padding: 4px 6px; }
.printarea .muted { color: #333; }
.printarea .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* tables (9 pt) */
.printarea .tablewrap { overflow-x: auto; margin: 0; border: 0; border-radius: 0; background: transparent; }
.printarea table { width: 100%; border-collapse: collapse; font-size: 9pt; line-height: 1.3; }
.printarea th, .printarea td { padding: 1.2mm 1.6mm; border-top: 1px solid #888; vertical-align: top; text-align: left; color: #000; }
.printarea thead th { border-top: 0; border-bottom: 1.5px solid #000; font-weight: 700; }
.printarea tr.grp th { background: #eee; border-top: 1.5px solid #000; font-weight: 700; padding-top: 1.6mm; }
.printarea tr.grp .n { font-weight: 400; color: #333; }
.printarea tr.pearl td { border-top: 0; padding-top: 0; font-size: 8pt; color: #111; }
.printarea table.drugs th:first-child, .printarea table.drugs td:first-child { width: 18%; font-weight: 600; }
.printarea table.drugs td:nth-child(2) { width: 18%; }
.printarea table.drugs td:nth-child(3) { width: 22%; }
.printarea table.drugs td:nth-child(5) { width: 7%; white-space: nowrap; }
.printarea .blank { display: inline-block; width: 92%; min-width: 24mm; height: 1.1em; border-bottom: 1px solid #000; vertical-align: text-bottom; }
.printarea .answers { columns: 2; column-gap: 8mm; margin: 0; padding-left: 7mm; font-size: 7.5pt; line-height: 1.3; }
.printarea .answers li { break-inside: avoid; margin-bottom: 0.4mm; }
.printarea .sources { list-style: none; margin: 0; padding: 0; font-size: 7.5pt; line-height: 1.3; }
.printarea .sources li { margin: 0 0 1.4mm; break-inside: avoid; }
.printarea .url { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 7pt; }

/* worksheets */
.printarea .prob { border: 1px solid #888; padding: 1.5mm 2.5mm 1mm; margin: 0 0 1.5mm; break-inside: avoid; font-size: 9.5pt; }
.printarea .prob h3, .printarea .keyitem h3 { font-family: var(--sans); font-size: 9.5pt; font-weight: 700; margin: 0 0 0.8mm; color: #000; line-height: 1.3; }
.printarea .no { display: inline-block; min-width: 5mm; height: 5mm; border: 1px solid #000; border-radius: 50%; text-align: center; line-height: 4.8mm; font-size: 8pt; margin-right: 1mm; }
.printarea .stem { margin: 0; }
.printarea .pnote { margin: 0.4mm 0 0; font-size: 7.5pt; color: #222; }
.printarea .rule { margin: 0.4mm 0 0; font-size: 7.5pt; color: #222; }
.printarea .workbox { height: 12mm; border-top: 1px dotted #888; margin-top: 1mm; }
.printarea .ansline { margin: 0; font-size: 8.5pt; }
.printarea .ansline .blank { width: 30mm; min-width: 30mm; }
.printarea .keyitem { border-top: 1px solid #888; padding: 1.2mm 0 0.8mm; break-inside: avoid; font-size: 9pt; }
.printarea .keyitem:first-of-type { border-top: 0; }
.printarea .keyitem .ans { font-weight: 700; }
.printarea .keyitem .rule { margin-left: 5.5mm; }
.printarea .steps { margin: 0 0 0 5.5mm; padding-left: 4mm; font-size: 9pt; }
.printarea .steps li { margin: 0; }
/* app.css styles .calc as a padded block for worked examples; here it is a plain inline run */
.printarea .calc { display: inline; margin: 0 0 0 1.5mm; padding: 0; background: none; border-radius: 0; overflow: visible; white-space: normal; font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 8.3pt; color: #111; }
.printarea .errs, .printarea .src { margin: 0.6mm 0 0 5.5mm; font-size: 7.8pt; color: #111; }

/* flashcards: 88 × 54 mm; four rows are 216 mm, so card sheets use a compact head and foot */
.printarea .sheet.cards .sheet-head { padding-bottom: 1.5px; margin-bottom: 2.5px; align-items: center; }
.printarea .sheet.cards .sheet-title { font-size: 11pt; }
.printarea .sheet.cards .sheet-sub { font-size: 7.5pt; margin-top: 0; }
.printarea .sheet.cards .sheet-foot { font-size: 6.8pt; margin-top: 4px; padding-top: 2px; line-height: 1.3; }
.printarea .sheet.cards .sheet-foot p { display: inline; margin: 0 4px 0 0; }
.printarea .cardgrid.fold { display: grid; gap: 0; justify-content: center; }
.printarea .cardrow { display: flex; flex-wrap: wrap; justify-content: center; }
.printarea .cardgrid.duplex { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(88mm, 100%), 1fr)); gap: 0; justify-content: center; }
.printarea .card { width: 88mm; max-width: 100%; height: 54mm; border: 1px dashed #777; padding: 2.5mm 3mm; box-sizing: border-box; display: flex; flex-direction: column; position: relative; overflow: hidden; break-inside: avoid; }
.printarea .cardrow .card.front { border-right-style: solid; }
.printarea .card .cn { position: absolute; top: 1mm; right: 2mm; font-size: 6.5pt; color: #444; }
.printarea .card .txt { margin: auto 0; text-align: center; line-height: 1.25; }
.printarea .card .txt.t1 { font-size: 13pt; }
.printarea .card .txt.t2 { font-size: 11pt; }
.printarea .card .txt.t3 { font-size: 9.5pt; }
.printarea .card .txt.t4 { font-size: 8pt; line-height: 1.2; }
.printarea .card .cnote { display: block; font-size: 7.5pt; color: #333; margin-top: 1.5mm; }
.printarea .card.empty { border-style: dotted; }

/* schedule */
.printarea table.sched th:first-child { width: 11%; }
.printarea table.sched td.dates { width: 13%; white-space: nowrap; }
.printarea table.sched td.done { width: 7%; text-align: center; }
.printarea tr.review td, .printarea tr.review th { background: #f3f3f3; }
.printarea tr.after td, .printarea tr.after th { color: #333; font-style: italic; }
.printarea .lessons { list-style: none; margin: 0; padding: 0; }
.printarea .lessons li { margin: 0 0 0.6mm; }
.printarea .min { color: #333; font-size: 8pt; white-space: nowrap; }
.printarea .tag { font-size: 7.5pt; font-weight: 700; text-transform: uppercase; letter-spacing: .02em; }
.printarea .box { display: inline-block; width: 3.2mm; height: 3.2mm; border: 1px solid #000; vertical-align: -0.5mm; margin-right: 1.5mm; }
.printarea .box.big { width: 5mm; height: 5mm; margin: 0; }

@media (max-width: 480px) {
  .printarea .sheet-meta { text-align: left; }
}

@media print {
  @page { size: auto; margin: 12mm 12mm 14mm; }
  html, body { background: #fff !important; color: #000 !important; }
  .shell, main { display: block !important; padding: 0 !important; margin: 0 !important; max-width: none !important; min-height: 0 !important; }
  .printarea { display: block; margin: 0; }
  .printarea .sheet { width: 186mm; min-height: 240mm; border: 0; border-radius: 0; padding: 0; margin: 0; box-shadow: none; break-after: page; page-break-after: always; }
  .printarea .sheet:last-child { break-after: auto; page-break-after: auto; }
  .printarea .sheet-foot { margin-top: auto; }
  .printarea .sheet-meta { text-align: right; }
  .printarea .tablewrap { overflow: visible; }
  .printarea thead { display: table-header-group; }
  .printarea tr { break-inside: avoid; page-break-inside: avoid; }
  .printarea .cardgrid.duplex { grid-template-columns: 88mm 88mm; }
  .printarea .cardrow { flex-wrap: nowrap; }
  .printarea .answers { columns: 2; }
}
