/* The workshop lives inside the existing fairytale book — never a separate app. */
.latex-content { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.75; min-width: 0; }
.latex-content .katex { white-space: normal; font-size: 1.12em; }
.latex-content .katex-display { overflow-x: auto; overflow-y: hidden; padding: .4rem 0; max-width: 100%; }
.bank-tools, .bank-filters, .bank-pagination, .bank-import-counts { display: flex; gap: 12px 20px; align-items: center; flex-wrap: wrap; }
.bank-tools { padding-bottom: 24px; border-bottom: 1px solid var(--border, var(--line)); }
.app-main > .text-link:first-of-type { display: inline-block; margin-bottom: 20px; }
.bank-filters { margin: 24px 0 32px; align-items: end; }
.bank-filters label { flex: 1 1 200px; max-width: 350px; font-size: .875rem; }
.bank-filters label input, .bank-filters label select { width: 100%; margin-top: 6px; }
.bank-list { border-top: 1px solid var(--line); }
.bank-entry { padding: 24px 0; border-bottom: 1px solid var(--line); }
.bank-entry h3 { margin: 8px 0 10px; }
.bank-entry h3 a { text-decoration: none; color: inherit; }
.bank-entry-meta { display: flex; gap: 12px; justify-content: space-between; color: var(--muted); font-size: .8125rem; }
.bank-excerpt { margin-bottom: 12px; }
.bank-pagination { justify-content: center; margin: 28px 0; }
.bank-topics, .bank-delete, .latex-help { margin-top: 28px; border-top: 1px solid #d1b77f; padding: 20px 0; }
.bank-topics summary, .bank-delete summary, .latex-help summary { min-height: 44px; cursor: pointer; color: var(--primary); }
.bank-document { border-top: 1px solid #d1b77f; padding-top: 22px; }
.bank-private { border-left: 3px solid #993e53; background: #faf7f5; padding: 20px 24px; margin: 32px 0; }
.bank-private h2 { font-size: 1.3rem; margin-top: 20px; }
.bank-editor-meta { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; margin-bottom: 24px; }
.bank-editor-meta input, .bank-editor-meta select { width: 100%; margin-top: 8px; }
.bank-editor-field { margin-bottom: 28px; min-width: 0; }
.bank-editor-field > label { display: block; font-size: 1.15rem; font-weight: 600; color: var(--heading); }
.bank-editor-field > input { width: 100%; }
.help-text { font-size: .8125rem; line-height: 1.55; color: var(--muted); margin: 8px 0 12px; }
.latex-editor { border: 1px solid var(--control-border); border-top: 3px solid #b68b43; border-radius: 5px; overflow: hidden; background: white; }
.latex-toolbar { display: flex; flex-wrap: wrap; gap: 3px; padding: 6px; border-bottom: 1px solid var(--line); background: var(--field); }
.latex-tool { font-family: inherit; border: 1px solid transparent; background: transparent; color: var(--primary); padding: 8px 10px; min-height: 44px; border-radius: 4px; font-size: .8125rem; cursor: pointer; }
.latex-tool:hover { background: #fff; border-color: var(--control-border); }
.latex-refresh { margin-left: auto; }
.latex-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.latex-source-pane, .latex-preview-pane { min-width: 0; }
.latex-source-pane { border-right: 1px solid var(--line); }
.latex-editor-document .latex-split { grid-template-columns: minmax(0, 1fr); }
.latex-editor-document .latex-source-pane { border-right: 0; }
.latex-pane-heading { font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); padding: 9px 14px; border-bottom: 1px solid var(--line); }
.latex-preview { padding: 18px 22px; height: 300px; overflow: auto; font-size: .9375rem; }
.latex-editor .CodeMirror { font: 13px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; background: var(--surface); }
.latex-editor .CodeMirror-gutters { background: var(--field); border-right: 1px solid var(--line); }
.latex-editor .CodeMirror-linenumber { color: var(--muted); }
.latex-editor .CodeMirror-lines { padding: 12px 0; }
.latex-editor .cm-tag, .latex-editor .cm-keyword { color: #285a8b; }
.latex-editor .cm-atom, .latex-editor .cm-number { color: #993e53; }
.latex-editor textarea:not(.CodeMirror textarea) { width: 100%; border: 0; font-family: ui-monospace, monospace; min-height: 200px; resize: vertical; }
.latex-status { background: var(--field); border-top: 1px solid var(--line); font-size: .75rem; color: var(--muted); padding: 8px 14px; }
.latex-status.has-errors { color: #8e3549; background: #fff5f6; }
.editor-savebar { position: sticky; bottom: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 0; margin-top: 24px; border-top: 1px solid #d1b77f; background: rgba(255, 255, 255, .97); }
.latex-help code { color: var(--heading); overflow-wrap: anywhere; }
.latex-help pre { background: var(--field); padding: 18px; border-left: 3px solid #b68b43; overflow: auto; font-size: .875rem; }
.bank-import-preview { margin-top: 32px; }
.bank-import-counts { border-block: 1px solid #d1b77f; padding: 16px 0; margin: 18px 0; }
.bank-import-rows { max-height: 480px; overflow: auto; margin: 24px 0; border: 1px solid var(--line); border-radius: 5px; }
.bank-import-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; padding: 14px; border-bottom: 1px solid var(--line); }
.bank-import-row p { margin: 6px 0; font-size: .875rem; overflow-wrap: anywhere; }
.bank-row-number { color: var(--muted); font-family: Literata, serif; }
.bank-status { font-size: .75rem; height: fit-content; border-radius: 4px; padding: 4px 8px; background: var(--field); }
.bank-status-conflict { color: #8e3549; background: #fff0f3; }
.bank-status-new { color: var(--success); background: var(--success-bg); }
.bank-pick-entry { display: flex; align-items: start; gap: 18px; padding: 24px 8px; border-bottom: 1px solid var(--line); cursor: pointer; }
.bank-pick-entry > input { width: 24px; height: 24px; margin: 12px 4px; flex: 0 0 24px; accent-color: var(--primary); }
.bank-pick-entry > span { flex: 1; min-width: 0; }
.bank-pick-entry > span > span, .bank-pick-entry strong { display: block; margin-bottom: 8px; }
.bank-pick-entry:has(input:checked) { background: var(--field); box-shadow: inset 3px 0 var(--primary); }
@media (max-width: 767px) {
  .bank-editor-meta, .latex-split { grid-template-columns: minmax(0, 1fr); }
  .bank-editor-meta { gap: 16px; }
  .latex-source-pane { border-right: 0; border-bottom: 1px solid var(--line); }
  .latex-preview { height: 220px; padding: 16px; }
  .latex-editor .CodeMirror { font-size: 16px; max-height: 260px; }
  .bank-entry-meta { gap: 8px; flex-wrap: wrap; }
  .bank-private { padding: 16px; }
  .bank-filters label { max-width: none; flex-basis: 100%; }
  .bank-tools { gap: 10px; }
  .bank-tools .button { flex: 1 1 140px; }
  .bank-import-row { grid-template-columns: 24px minmax(0, 1fr); gap: 8px; }
  .bank-status { grid-column: 2; width: fit-content; }
  .editor-savebar { align-items: stretch; flex-direction: column; gap: 8px; }
  .editor-savebar .button { width: 100%; }
  .bank-pick-entry { gap: 10px; }
}
@media print { .latex-toolbar, .latex-source-pane, .latex-status, .editor-savebar, .bank-tools, .bank-filters { display: none; } .latex-split { display: block; } .latex-preview { height: auto; overflow: visible; } }
