/* ── Print / PDF — e-konte sheet, board layout and prompt sheet ──
   Loaded with media="print" from index.html. Uses only ek- classes, --ek-*
   tokens and element ids; it defines no nf- name (see the Archive theme's
   no-shared-names rule in neverfear-starter/docs/archive-theme.md).

   The default page is A4 landscape; the app injects a <style id="ek-page-size">
   override for Letter / portrait at print time (@page can't be selected by class). */

@page {
  size: A4 landscape;
  margin: 10mm;
}

html, body {
  height: auto !important;
  overflow: visible !important;
  background: #fff !important;
}

/* The app shell is a fixed-height flex layout with a scrolling content pane.
   Printing that only ever produces the visible viewport — unfold it. */
#app, #main, #content {
  display: block !important;
  position: static !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  width: auto !important;
  overflow: visible !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Chrome and controls */
#sidebar,
#header,
#toast-container,
#modal-container,
#loading-screen,
.ek-toolbar,
.ek-breadcrumb,
.ek-edit-meta-btn,
.ek-add-row-bar,
.ek-add-section-btn,
.ek-row-actions,
.ek-drag-handle,
.ek-frame-tools,
.ek-tag-picker,
.ek-frame-tag--add,
.ek-section-delete,
.ek-spec-toggle,
.ek-spec-drawer,
.ek-spec-btn,
.ek-frame-asset,
.ek-cast-chip--add,
.ek-shotlink-chip--add,
.ek-sw-chip--add,
.ek-cast-chip__x,
.ek-board-panel__foot,
.ek-board-empty,
.ek-frame-box__placeholder,
.ek-ps-actions,
.ek-ps-prompt__head .ek-spec-btn {
  display: none !important;
}

.ek-document {
  max-width: none;
  padding: 0;
  margin: 0;
}

/* Editable fields print as plain text */
.ek-editable {
  outline: none !important;
  background: transparent !important;
  cursor: default;
}

.ek-editable:empty::before {
  content: none !important;
}

/* Colour is part of the sheet */
* {
  print-color-adjust: exact;
  -webkit-print-color-adjust: exact;
}

/* ── Page flow ── */

.ek-title-page {
  margin-bottom: 0;
  break-after: page;
  page-break-after: always;
}

.ek-print-no-title .ek-title-page {
  display: none !important;
}

.ek-section-header {
  break-before: page;
  page-break-before: always;
  break-after: avoid;
  page-break-after: avoid;
}

/* The first section follows the title page (or the top of the document) directly */
.ek-title-page + .ek-section-header,
.ek-sheet-root > .ek-section-header:first-child,
.ek-breadcrumb + .ek-section-header {
  break-before: auto;
  page-break-before: auto;
}

.ek-sheet,
.ek-board-sheet {
  margin-bottom: 0;
}

.ek-columns {
  break-after: avoid;
  page-break-after: avoid;
}

.ek-shot-row,
.ek-sound-row,
.ek-breathing-row,
.ek-board-panel,
.ek-board-strip,
.ek-ps-block {
  break-inside: avoid;
  page-break-inside: avoid;
}

.ek-sheet-footer {
  break-before: avoid;
  page-break-before: avoid;
}

/* Board: one printed page per board page */
.ek-board-page {
  break-after: page;
  page-break-after: always;
  border-top: none !important;
  margin-top: 0 !important;
  padding-top: 6px !important;
}

.ek-board-page:last-of-type {
  break-after: auto;
  page-break-after: auto;
}

/* Running footer (added by the app at print time; repeats on every page in Chrome) */
.ek-print-footer {
  display: flex !important;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  justify-content: space-between;
  gap: 12px;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 8px;
  letter-spacing: 0.5px;
  color: #6b5f52;
  padding: 0 1mm;
}

/* Prompt sheet: portrait pages, one block per shot, no controls */
.ek-ps-title-row {
  border-bottom-width: 1.5px;
}

.ek-ps-filter {
  outline: none !important;
  opacity: 1 !important;
  cursor: default;
}

.ek-ps-block__body {
  grid-template-columns: 180px 1fr;
}

.ek-ps-thumb.ek-frame-box {
  width: 180px;
  height: 101px;
}

/* ── Scenes overview + Script view ── */

.ek-scenes-tools,
.ek-scene-tools,
.ek-scene-move,
.ek-scene-grip,
.ek-scene-tod-pick,
.ek-scene-strip,
.ek-scene-lock,
.ek-section-lock-static,
.ek-script-toolbar,
.ek-script-strip,
.ek-script-bar,
.ek-script-gutter__grip,
.ek-script-gutter__menu,
.ek-script-gutter__x,
.ek-dlg-add,
.ek-dlg-x,
.ek-export-menu,
.ek-episode-head .ek-toolbar__btn {
  display: none !important;
}

.ek-scene-status,
.ek-scene-intext {
  appearance: none;
  -webkit-appearance: none;
  border: none;
  background: transparent;
}

.ek-scenes-list {
  border-width: 1px;
}

.ek-scene-row,
.ek-scene-card {
  break-inside: avoid;
  page-break-inside: avoid;
}

.ek-scene-cards {
  background: #fff;
  border: none;
  padding: 0;
}

.ek-scene-card {
  box-shadow: none;
}

.ek-script {
  box-shadow: none;
  border: none;
  max-width: none;
  padding: 0;
  margin: 0;
  color: #000;
}

.ek-script-scene__head {
  break-after: avoid;
  page-break-after: avoid;
}

.ek-script-row,
.ek-dlg-line {
  break-inside: avoid;
  page-break-inside: avoid;
}

.ek-script .ek-dlg-name {
  break-after: avoid;
  page-break-after: avoid;
  border-color: transparent;
}

.ek-script .ek-dlg-name--empty {
  display: none;
}
