/* Worksheet maker: vertical 筆算 on squares, horizontal rows, fractions */
.ws-sheet { display: grid; grid-template-columns: repeat(var(--cols), minmax(0, 1fr)); gap: .875rem 1.125rem; }
.ws-sheet.screen { --sq: 1.875rem; }
.ws-v { display: grid; grid-template-columns: auto 1fr; gap: .25rem; align-items: start; }
.ws-no, .ws-h .ws-no { font-size: .8em; color: var(--ink2); font-family: var(--f-m); }
.ws-grid { border-collapse: collapse; font-family: var(--f-m); }
.ws-grid td { width: var(--sq, 8mm); height: var(--sq, 8mm); padding: 0; text-align: center; vertical-align: middle; font-size: calc(var(--sq, 8mm) * .62); border: 1px dotted #AFC3DE; position: relative; }
.ws-grid tr.marks td { height: calc(var(--sq, 8mm) * .55); font-size: calc(var(--sq, 8mm) * .42); border-color: transparent; vertical-align: bottom; }
.ws-grid td.e { border-color: transparent; }
.ws-grid td.rl { border-top: 2px solid var(--ink); }
.ws-grid td.o { font-weight: 600; }
.ws-grid td.d { font-size: calc(var(--sq, 8mm) * .9); line-height: 1; transform: scaleY(1.3); border-color: transparent; }
.ws-grid.div td.g { border-left-color: transparent; border-right-color: transparent; border-bottom-color: transparent; }
.ws-grid td.a { border: 1px solid #8FA8CC; }
.ws-steps { grid-column: 1 / -1; font: 500 .6875rem/1.4 var(--f-m); color: var(--ink2); }
.ws-h { display: grid; grid-template-columns: 2.6em auto 1fr; align-items: center; gap: .25rem .375rem; font-family: var(--f-m); font-size: 1.125rem; min-height: 2.4em; }
.ws-h .ws-a { border-bottom: 1px solid var(--ink); min-width: 4em; min-height: 1.6em; display: flex; align-items: flex-end; padding-bottom: 2px; }
.fr { display: inline-flex; flex-direction: column; align-items: center; vertical-align: middle; line-height: 1.1; margin: 0 .1em; }
.fr span:first-child { border-bottom: 1.5px solid currentColor; padding: 0 .15em; }
.ws-big .fr { font-size: .8em; }
@media print {
  .ws-sheet.print { gap: 4mm 5mm; align-content: start; }
  .ws-sheet.print.horizontal { grid-auto-flow: column; grid-template-rows: repeat(var(--hrows), auto); row-gap: 2mm; }
  .ws-sheet.print .ws-grid td { border-color: #B9CBE4; }
  .ws-sheet.print .ws-grid td.a { border-color: #7F9AC2; }
  .ws-sheet.print .ws-grid td.e, .ws-sheet.print .ws-grid tr.marks td { border-color: transparent; }
  .ws-sheet.print .ws-grid.div td.g { border-left-color: transparent; border-right-color: transparent; border-bottom-color: transparent; }
  .ws-sheet.print .ws-grid td.rl { border-top: .5mm solid #263049; }
  .ws-sheet.print .ws-h { font-size: 12.5pt; min-height: var(--hrow, 11mm); height: var(--hrow, 11mm); }
  .ws-sheet.print .ws-steps { font-size: 7pt; color: #444; }
  .ws-sheet.print .sh-ans { color: #C0392B; }
}
