/* ============================================================
   FBC Forney Run Sheet Builder — Print Styles
   One page per role sheet, landscape letter, clean layout
   ============================================================ */

@media print {

  /* ── Page setup ─────────────────────────────────────────── */
  @page {
    size: letter portrait;
    margin: 0.35in 0.25in 0.3in 0.25in;
  }

  /* ── Hide all app chrome ────────────────────────────────── */
  #sidebar,
  .view-header,
  .time-tabs-bar,
  .role-tabs-bar,
  .sheet-panel-header,
  .master-toolbar,
  .no-print,
  .modal-overlay {
    display: none !important;
  }

  body {
    background: #fff;
    display: block;
    height: auto;
    overflow: visible;
    font-size: 15px;
    font-family: 'Segoe UI', Arial, sans-serif;
  }

  #main-content {
    display: block;
    height: auto;
    overflow: visible;
  }

  /* Hide all views by default */
  .view { display: none !important; }
  .view.active { display: block !important; }

  /* Hide all tab panels by default */
  .tab-panel { display: none !important; }

  /* ── When printing a specific role (data-print-target set on body) ── */

  /* Show only the targeted print area */
  body[data-print-target] .print-area { display: none !important; }
  body[data-print-target] .tab-panel  { display: none !important; }

  body[data-print-target="print-foh-audio-915"]      #panel-foh-audio,
  body[data-print-target="print-broadcast-audio-915"] #panel-broadcast-audio,
  body[data-print-target="print-graphics-915"]        #panel-graphics,
  body[data-print-target="print-director-915"]        #panel-director,
  body[data-print-target="print-broadcast-td-915"]    #panel-broadcast-td,
  body[data-print-target="print-live-td-915"]         #panel-live-td,
  body[data-print-target="print-lights-915"]          #panel-lights,
  body[data-print-target="print-foh-audio-1100"]      #panel-foh-audio,
  body[data-print-target="print-broadcast-audio-1100"] #panel-broadcast-audio,
  body[data-print-target="print-graphics-1100"]       #panel-graphics,
  body[data-print-target="print-director-1100"]       #panel-director,
  body[data-print-target="print-broadcast-td-1100"]   #panel-broadcast-td,
  body[data-print-target="print-live-td-1100"]        #panel-live-td,
  body[data-print-target="print-lights-1100"]         #panel-lights {
    display: block !important;
  }

  /* Show matching print area inside the visible panel */
  body[data-print-target="print-foh-audio-915"]       #print-foh-audio-915,
  body[data-print-target="print-broadcast-audio-915"] #print-broadcast-audio-915,
  body[data-print-target="print-graphics-915"]        #print-graphics-915,
  body[data-print-target="print-director-915"]        #print-director-915,
  body[data-print-target="print-broadcast-td-915"]    #print-broadcast-td-915,
  body[data-print-target="print-live-td-915"]         #print-live-td-915,
  body[data-print-target="print-lights-915"]          #print-lights-915,
  body[data-print-target="print-foh-audio-1100"]      #print-foh-audio-1100,
  body[data-print-target="print-broadcast-audio-1100"] #print-broadcast-audio-1100,
  body[data-print-target="print-graphics-1100"]       #print-graphics-1100,
  body[data-print-target="print-director-1100"]       #print-director-1100,
  body[data-print-target="print-broadcast-td-1100"]   #print-broadcast-td-1100,
  body[data-print-target="print-live-td-1100"]        #print-live-td-1100,
  body[data-print-target="print-lights-1100"]         #print-lights-1100 {
    display: block !important;
  }

  /* ── Print area layout ──────────────────────────────────── */
  .print-area {
    page-break-inside: avoid;
    page-break-after: always;
  }
  .print-area:last-of-type { page-break-after: auto; }

  /* ── Sheet print footer — fixed to bottom of every printed page ── */
  .sheet-print-footer {
    display: block !important;
    position: fixed;
    bottom: 0.15in;
    right: 0.25in;
    font-size: 8.5pt;
    color: #555;
  }

  /* ── Sheet print header ─────────────────────────────────── */
  .sheet-print-header {
    display: flex !important;
    border-bottom: 2.5px solid #3d6d9e;
    padding-bottom: 5px;
    margin-bottom: 8px;
  }

  .sheet-print-header__row {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    line-height: 1.15;
  }

  .sheet-print-header__church {
    font-size: 20px;
    font-weight: 700;
    color: #20507f;
    letter-spacing: .1em;
    text-transform: uppercase;
    flex-shrink: 0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .sheet-print-header__role {
    font-size: 20px;
    font-weight: 700;
    color: #3d6d9e;
    letter-spacing: .06em;
    flex: 1;
    text-align: center;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .sheet-print-header__date {
    font-size: 16px;
    font-weight: 500;
    color: #222;
    text-transform: uppercase;
    flex-shrink: 0;
  }

  .sheet-print-header__time {
    font-size: 17px;
    font-weight: 700;
    background: #1e3a5f !important;
    color: #fff !important;
    padding: 3px 7px;
    border-radius: 3px;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    min-width: 100px;
    text-align: center;
    flex-shrink: 0;
  }

  /* ── Table — base (FOH Audio, Broadcast Audio, Graphics, Lights, Extras) ── */
  .sheet-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 15px;
    box-shadow: none;
    border-radius: 0;
  }

  .sheet-table th {
    background: #3d6d9e !important;
    color: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-size: 15px;
    font-weight: 500;
    letter-spacing: .05em;
    padding: 4pt 6pt;
    text-align: left;
    border-right: .5pt solid rgba(255,255,255,.25);
  }
  .sheet-table th:last-child { border-right: none; }

  .sheet-table td {
    padding: 4pt 6pt;
    border-bottom: .5pt solid #e2e8f0;
    border-right: .5pt solid #e2e8f0;
    vertical-align: middle;
    line-height: 1.3;
    font-weight: 300;
  }
  .sheet-table td:last-child { border-right: none; }

  /* Section header rows */
  .sheet-row--section td {
    background: var(--section-bg, #4a9fd4) !important;
    color: var(--section-text, #fff) !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-weight: 600;
    font-size: 15px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding: 4pt 6pt;
  }

  /* Action rows — colors come from inline CSS vars set by sheets.js */
  .sheet-row--action td {
    background: var(--action-color, #dbeafe) !important;
    color: var(--action-text-color, #1e293b) !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-weight: 500;
    font-size: 15px;
    letter-spacing: .03em;
    padding: 3pt 6pt;
    border-bottom: .5pt solid #e2e8f0 !important;
    border-right: .5pt solid #e2e8f0 !important;
  }
  .sheet-row--action td:last-child { border-right: none !important; }

  /* Full-width action — centered spanning cell */
  .sheet-row--action-fw td {
    text-align: center;
    letter-spacing: .06em;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
  }

  /* Alternating row shading — group-aware, sub-rows match parent */
  .sheet-table tbody tr.row-group--even td {
    background: #EEF2F7 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    border-bottom: .5pt solid #e2e8f0 !important;
    border-right: .5pt solid #e2e8f0 !important;
  }
  .sheet-table tbody tr.row-group--odd td {
    background: #fff !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    border-bottom: .5pt solid #e2e8f0 !important;
    border-right: .5pt solid #e2e8f0 !important;
  }
  .sheet-table tbody tr.row-group--even td:last-child,
  .sheet-table tbody tr.row-group--odd td:last-child { border-right: none !important; }

  /* Sub-rows */
  .sheet-row--subrow td {
    font-size: 15px;
    border-bottom: .5pt solid #e2e8f0 !important;
    border-right: .5pt solid #e2e8f0 !important;
  }
  .sheet-row--subrow td:last-child { border-right: none !important; }
  .cell-name--sub { padding-left: 14pt !important; color: #555; }

  /* Remove bottom border between parent and sub-rows so they read as one group */
  .sheet-table tbody tr.sheet-row--data:has(+ tr.sheet-row--subrow) td,
  .sheet-table tbody tr.sheet-row--subrow:has(+ tr.sheet-row--subrow) td { border-bottom: none !important; }

  /* Name column */
  .cell-name {
    font-weight: 400;
    color: #111;
  }

  [data-role="foh-audio"] .cell-name,
  [data-role="broadcast-audio"] .cell-name,
  [data-role="graphics"] .cell-name {
    font-weight: 300;
  }

  [data-role="foh-audio"] .sheet-row--action .cell-name,
  [data-role="broadcast-audio"] .sheet-row--action .cell-name,
  [data-role="graphics"] .sheet-row--action .cell-name {
    font-weight: 500;
  }

  /* Column widths and table-layout live in main.css — apply to both screen and print */
  /* All cells: clip overflow so no column can push table wider than its allocated width */
  .sheet-table td, .sheet-table th { overflow: hidden; }

  /* Director and Switchers — font size and padding live in main.css */

  /* Markup color spans */
  .sheet-table td span[style] {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* Remove contenteditable highlights */
  .cell-data  { outline: none !important; background: transparent !important; }
  .cell-dirty { background: transparent !important; }
  .cell-dirty::after { display: none; }

  /* Alert notes print in red */
  .cell-alert {
    color: #DC2626 !important;
    font-weight: 500;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ── Staging print: show only the staging area (Print This Sheet) ─── */
  body[data-print-staging] #sidebar,
  body[data-print-staging] #main-content {
    display: none !important;
  }

  body[data-print-staging] #print-staging {
    display: block !important;
  }

  body[data-print-staging] #print-staging .print-area {
    display: block !important;
  }

  /* No scrollbars */
  * { overflow: visible !important; }

  /* Team grid — prints at bottom of Extras sheets */
  .team-grid-section {
    margin-top: 16pt;
    padding-top: 8pt;
    border-top: 1.5pt solid #000;
    page-break-inside: avoid;
  }
  .team-grid-heading {
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 6px;
  }
  .team-grid {
    display: grid;
    grid-template-columns: 215px repeat(3, 1fr);
    grid-auto-flow: column;
    gap: 6px 12px;
  }
  .team-grid-position {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #000;
  }
  .team-grid-name {
    font-size: 13px;
    color: #000;
  }

  /* ── Condensed print mode ─────────────────────────────────────────── */
  .print-area.condensed .sheet-table         { font-size: 13px; }
  .print-area.condensed .sheet-table td      { padding: 3pt 6pt; }
  .print-area.condensed .sheet-row--section td { font-size: 13px; padding: 3pt 6pt; }
  .print-area.condensed .sheet-row--action td  { font-size: 13px; padding: 2pt 6pt; }
  .print-area.condensed .sheet-row--subrow td  { font-size: 13px; }
  .print-area.condensed [data-role="director"] .sheet-table td { font-size: 12px; }
  .print-area.condensed .team-grid-heading   { font-size: 14px; }
  .print-area.condensed .team-grid-name      { font-size: 12px; }
  .print-area.condensed .team-grid-position  { font-size: 11px; }
}
