/* Weekly Training and Recovery Calendar. Prefix: cal- */
.cal-setup-grid { display: grid; gap: 16px; margin-bottom: 8px; }
.cal-setup .form-field { margin: 0; }
.cal-setup select, .cal-setup input, .cal-day select, .cal-day input { min-height: 48px; }
.cal-buttons, .cal-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 10px; }
.cal-buttons .btn, .cal-actions .btn { min-height: 48px; }
.cal-status { min-height: 1.5em; font-weight: 700; margin: 4px 0 12px; }

.cal-grid { list-style: none; margin: 0 0 28px; padding: 0; display: grid; gap: 18px; }
.cal-day { background: var(--white); border: 3px solid var(--ink); padding: 16px 16px 8px; }
.cal-day h3 { font-size: 1.05rem; margin: 0 0 12px; }
.cal-day .form-field { margin-bottom: 12px; }
.cal-day .form-field label { font-size: .82rem; font-weight: 800; margin-bottom: 3px; }
.cal-day .form-field input, .cal-day .form-field select { padding: 8px 10px; }
.cal-load { font-weight: 700; border-top: 2px solid var(--surface); padding-top: 8px; margin: 4px 0 6px; }

.cal-stats { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 14px; grid-template-columns: repeat(2, 1fr); }
.cal-stats li { font-weight: 700; }
.cal-stats .big { font-size: clamp(1.8rem, 6vw, 2.6rem); }
.cal-chart-panel { margin-top: 24px; }
.cal-svg { display: block; width: 100%; max-width: 560px; height: auto; }
.cal-legend { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-wrap: wrap; gap: 8px 18px; font-weight: 700; font-size: .9rem; }
.cal-legend li { display: flex; align-items: center; gap: 8px; }
.cal-k { display: inline-flex; width: 26px; height: 26px; align-items: center; justify-content: center; color: #fff; font-weight: 900; }
.cal-k-hard { background: #D91606; } .cal-k-moderate { background: #B7791F; } .cal-k-easy { background: #276749; } .cal-k-rest { background: #4A5568; } .cal-k-game { background: #553C9A; }
.cal-band h3 { margin: 0 0 8px; font-size: 1.1rem; }
.cal-band p { font-weight: 600; }
.cal-flaglist { margin: 8px 0 0; padding-left: 1.2em; font-weight: 700; }
.cal-sleep-panel h3 { margin-bottom: 8px; }

.cal-split { display: grid; gap: 28px; align-items: start; }
.cal-photo { margin: 0; max-width: 300px; }
.cal-photo img { width: 100%; height: auto; border: 3px solid var(--ink); box-shadow: var(--shadow); }

@media (min-width: 600px) {
  .cal-setup-grid { grid-template-columns: repeat(3, 1fr); }
  .cal-grid { grid-template-columns: repeat(2, 1fr); }
  .cal-stats { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 800px) {
  .cal-split { grid-template-columns: 1fr 280px; gap: 40px; }
  .cal-split-rev { grid-template-columns: 280px 1fr; }
}
@media (min-width: 1000px) {
  .cal-grid { grid-template-columns: repeat(4, 1fr); }
}

/* Print: one landscape page with the table, chart, totals and branded footer. Everything else is hidden by .no-print. */
#cal-print { display: none; }
@media print {
  @page { size: landscape; margin: 9mm; }
  body { font-size: 9pt; }
  #cal-print { display: block !important; }
  .tool-sources, .tool-disclaimer, .faq, .nearby, .cta-band { display: none !important; }
  .cal-print-head { font-size: 12pt; margin: 0 0 6px; border-bottom: 2px solid #000; padding-bottom: 4px; }
  .cal-print-table { width: 100%; border-collapse: collapse; table-layout: fixed; margin-bottom: 8px; }
  .cal-print-table th, .cal-print-table td { border: 1.5px solid #000; padding: 4px 5px; font-size: 9pt; text-align: left; vertical-align: top; overflow-wrap: anywhere; }
  .cal-print-table thead th { background: #eee !important; font-size: 9pt; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cal-print-table tbody th { width: 13%; font-size: 8.5pt; }
  .cal-print-table tbody tr:last-child td { height: 34px; }
  .cal-print-bottom { display: grid; grid-template-columns: 300px 1fr; gap: 14px; align-items: start; }
  .cal-print-bottom p { margin: 0 0 4px; font-size: 9pt; }
  .cal-print-chart .cal-svg { max-width: 300px; }
  .cal-svg rect, .cal-svg text { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .cal-print-foot { border-top: 2px solid #000; margin: 6px 0 0; padding-top: 4px; font-size: 8pt; }
}
