/* Acrostic poem generator */
.ac-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 14px; }
.ac-wide { grid-column: 1 / -1; }
#ac-out[hidden] { display: none; }
.tool-in label.ac-inl { display: inline; margin: 0; font-weight: 600; }
.ac-opts { gap: 10px 20px; }
.ac-opts input[type="radio"], .ac-opts input[type="checkbox"] { width: 18px; height: 18px; accent-color: var(--accent); margin: 0; }
.ac-sheet { max-width: 820px; margin: 16px auto; }
.ac-sheet.ac-border { border: 6px double var(--accent) !important; padding: 30px 28px; }
.ac-lines { list-style: none; margin: 14px 0 0; padding: 0; counter-reset: none; }
.ac-line { display: flex; align-items: baseline; gap: 2px; padding: 4px 0; }
.ac-line.ac-gap { margin-top: 22px; }
.ac-letter { flex: 0 0 auto; width: 1.1em; text-align: right; font: 800 44px/1.1 var(--font-sans); color: var(--accent) !important; }
.ac-text { flex: 1 1 auto; min-width: 0; font: 400 22px/1.35 Georgia, "Times New Roman", serif; color: #0f172a; overflow-wrap: anywhere; border-bottom: 1px dashed transparent; outline: none; padding: 2px 4px; border-radius: 4px; }
.ac-text:hover { border-bottom-color: #cbd5e1; }
.ac-text:focus { background: #eef2ff; border-bottom-color: var(--accent); }
.ac-shuf { margin-left: 10px; flex: 0 0 auto; padding: 4px 10px; font-size: 12px; align-self: center; }
.ac-mid .ac-letter { font-size: 36px; } .ac-mid .ac-text { font-size: 19px; }
.ac-small .ac-letter { font-size: 28px; } .ac-small .ac-text { font-size: 16px; }
.ac-small .ac-line { padding: 2px 0; }
/* blank worksheet: big letter + a writing line */
.ac-blank .ac-text { visibility: hidden; }
.ac-blank .ac-line { align-items: flex-end; padding: 10px 0; }
.ac-blank .ac-text { border-bottom: 2px solid #475569; min-height: 1.6em; }
.ac-blank .ac-shuf { display: none; }
.sheet .namedate { text-align: center; margin: 4px 0 0; color: #0f172a !important; }
@media (max-width: 520px) { .ac-letter { font-size: 34px; } .ac-text { font-size: 18px; } .ac-line { gap: 2px; } .ac-sheet { padding: 20px 14px; } }
@media print {
  .ac-sheet { max-width: none; margin: 0; }
  .ac-sheet.ac-border { border: 6pt double #000 !important; padding: 22pt 24pt !important; box-sizing: border-box; }
  .ac-letter { font-size: 40pt; color: #3730a3 !important; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .ac-text { font-size: 20pt; color: #000; border-bottom: none !important; }
  .ac-mid .ac-letter { font-size: 32pt; } .ac-mid .ac-text { font-size: 17pt; }
  .ac-small .ac-letter { font-size: 24pt; } .ac-small .ac-text { font-size: 14pt; }
  .ac-blank .ac-text { border-bottom: 1.5pt solid #000 !important; }
  .ac-shuf, .ac-controls { display: none !important; }
  .sheet .namedate { display: block !important; }
  .sheet .namedate[hidden] { display: none !important; }
  .sheet h2 { font-size: 26pt !important; margin-bottom: 8pt; }
}
