:root{--brand:#6c0c86;--brand-dark:#4e0863;--brand-mid:#8e36a8;--brand-pale:#f5eafa;--brand-line:#e2c9eb;--ink:#2b2330;--muted:#716779;--surface:#fff}
*{box-sizing:border-box}body{background:#f7f5f9;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.district-header{background:linear-gradient(120deg,#4e0863 0%,#6c0c86 56%,#8737a1 100%);color:#fff;box-shadow:0 5px 20px #4e086322}
.district-logo{width:70px;height:70px;object-fit:contain;background:#fff;border-radius:16px;padding:5px}.header-mark{border:1px solid #ffffff66;border-radius:12px;padding:10px 14px;font-weight:800;letter-spacing:2px}
.section-card{border:1px solid #e6dce9;border-radius:16px;overflow:hidden;background:white;box-shadow:0 5px 18px #32113d0a;margin-bottom:20px}
.section-heading{padding:14px 18px;background:linear-gradient(90deg,#f5eafa,#fbf7fd);border-bottom:1px solid var(--brand-line);font-weight:750;color:var(--brand);display:flex;align-items:center;gap:10px}
.section-heading .step{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--brand);color:#fff;font-size:.85rem}
.section-body{padding:20px}.form-label{font-weight:650;font-size:.91rem}.required:after{content:" *";color:#dc3545}.form-control,.form-select{min-height:44px;border-color:#d9cddd;border-radius:9px}.form-control:focus,.form-select:focus{border-color:var(--brand-mid);box-shadow:0 0 0 .2rem #6c0c8622}
.btn-primary{background:var(--brand);border-color:var(--brand)}.btn-primary:hover,.btn-primary:focus{background:var(--brand-dark);border-color:var(--brand-dark)}.btn-outline-primary{color:var(--brand);border-color:var(--brand)}.btn-outline-primary:hover{background:var(--brand);border-color:var(--brand);color:white}
.hero-note{border:1px solid var(--brand-line);background:#fbf5fd;border-radius:12px;padding:13px 16px}.conditional-panel{border:1px dashed #c59ad4;background:#fcf8fe;border-radius:12px;padding:16px}
.table thead th{background:#6c0c86;color:#fff;white-space:nowrap;overflow-wrap:normal;border-color:#8b49a0}.table tbody tr:nth-child(even)>td{background:#fbf7fd}.table tbody tr:hover>td{background:#f4e8f8}.badge-soft{background:#f0ddf7;color:#5b0871}.field-picker{border:1px solid var(--brand-line);background:#fcf9fd;border-radius:12px;padding:16px}.field-option{display:flex;gap:8px;align-items:flex-start;padding:8px 10px;border:1px solid #eadfed;background:#fff;border-radius:8px;height:100%;cursor:pointer;font-size:.88rem}.field-option:hover{border-color:#b77ac8;background:#fdf8ff}.field-option .form-check-input{margin-top:.2rem;flex:0 0 auto;accent-color:var(--brand)}.report-heading{background:linear-gradient(90deg,#6c0c86,#8534a0);color:#fff;border-bottom-color:#8534a0}.report-heading .step{background:#fff;color:#6c0c86}.pdf-report-title{display:none}.report-count{font-size:.8rem;background:#ffffff22;border:1px solid #ffffff55;border-radius:20px;padding:4px 10px}
/* Keep the on-screen records table on one line; scroll horizontally for wide tables. */
.table-responsive{overflow-x:auto;}
#recordsTable th,#recordsTable td{white-space:nowrap;overflow-wrap:normal;word-break:normal;}

@media print{
 @page{size:A4 landscape;margin:12mm}body{background:#fff!important;color:#222!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;font-size:9pt}
 .no-print,footer,.field-picker,.district-header .header-mark{display:none!important}.pdf-report-title{display:inline!important}.district-header{display:block!important;background:linear-gradient(120deg,#4e0863,#6c0c86)!important;color:#fff!important;box-shadow:none!important;margin-bottom:12px}.district-header .container{padding:10px 0!important}.district-logo{width:48px;height:48px}.district-header h1{font-size:15pt!important}.district-header .small{font-size:8pt!important}
 main.container{max-width:100%!important;padding:0!important}.section-card{box-shadow:none!important;border:1px solid #d8c3df!important;break-inside:avoid}.report-card{border-radius:0!important}.report-heading{display:flex!important;background:var(--pdf-accent,#6c0c86)!important;color:#fff!important;padding:9px 12px!important}.report-heading .step{display:inline-grid!important;background:#fff!important;color:var(--pdf-accent,#6c0c86)!important}.table-responsive{overflow:visible!important}.table{font-size:6.5pt!important;width:100%!important;border-collapse:collapse!important;table-layout:auto!important}
 .table th,.table td{white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;hyphens:auto!important;min-width:0!important;max-width:none!important;vertical-align:top!important}
 #recordsTable{table-layout:auto!important;width:100%!important}
 #recordsTable th,#recordsTable td{width:auto!important}.table thead{display:table-header-group}.table thead th{background:var(--pdf-accent,#6c0c86)!important;color:#fff!important;border:1px solid var(--pdf-line,#bca4c5)!important;padding:6px 5px!important}.table tbody td{border:1px solid var(--pdf-line,#d9cddd)!important;padding:4px 3px!important;overflow-wrap:anywhere!important;white-space:normal!important}.table tbody tr:nth-child(even)>td{background:var(--pdf-pale,#f5eafa)!important}.badge-soft{background:var(--pdf-pale,#f0ddf7)!important;color:var(--pdf-dark,#5b0871)!important}.table tr{break-inside:avoid}
}
.print-only{display:none}
.print-filter-summary{border:1px solid #d8c3df;background:#fbf7fd;padding:10px 14px;margin-bottom:10px;border-radius:8px;color:#34213b}
.print-filter-summary h2{font-size:12pt;color:#6c0c86;margin:0 0 4px}.print-filter-summary p{font-size:8pt;margin:2px 0}
@media print{.print-only{display:block!important}.print-filter-summary{background:#f5eafa!important;border-color:#cbb6d5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.no-print,.field-picker{display:none!important}}
.progression-item{padding:3px 0;border-bottom:1px dashed #eadfed;font-size:.86rem;line-height:1.35}.progression-item:last-child{border-bottom:0}
@media print{.progression-item{padding:2px 0;border-bottom:1px solid #ded2e4!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
@media print {
  .district-header { display:none!important; }
  .pdf-masthead { display:flex!important; align-items:flex-start; justify-content:space-between; gap:18px; width:100%; margin:0 0 10px; padding:0 0 8px; border-bottom:2px solid var(--pdf-accent,#6c0c86); color:#2c1832; }
  .pdf-district-logo { display:block!important; flex:0 0 62px; width:62px!important; height:62px!important; object-fit:contain!important; background:#fff!important; padding:2px!important; border:1px solid #e2c9eb!important; border-radius:6px!important; print-color-adjust:exact; -webkit-print-color-adjust:exact; }
  .pdf-masthead-title { flex:1 1 50%; min-width:0; text-align:left; }
  .pdf-org-title { font-size:12pt; font-weight:800; line-height:1.2; color:var(--pdf-dark,#4e0863); }
  .pdf-district-title { font-size:11pt; font-weight:700; margin-top:2px; }
  .pdf-report-subtitle { font-size:9pt; margin-top:2px; }
  .pdf-filter-box { flex:0 1 40%; min-width:0; border:1px solid var(--pdf-line,#cbb6d5); background:var(--pdf-pale,#fbf7fd)!important; padding:6px 9px; font-size:7.5pt; overflow-wrap:anywhere; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
  .pdf-filter-box strong { display:block; color:var(--pdf-accent,#6c0c86); font-size:8pt; margin-bottom:2px; }
  .pdf-filter-box small { display:block; margin-top:3px; font-size:7pt; }
  .print-filter-summary { display:none!important; }
}

/* Prevent the report table from being pushed wholesale to page 2 during PDF printing. */
@media print {
  .pdf-masthead { break-after: avoid !important; page-break-after: avoid !important; }
  .report-card, .report-card .table-responsive, #recordsTable {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }
  .report-heading { break-after: avoid !important; page-break-after: avoid !important; }
  #recordsTable tr { break-inside: avoid; page-break-inside: avoid; }
}
