.weekly-session-content { margin:1rem 0; padding:1rem; border:1px solid #b9d0d9; border-radius:12px; background:#fff; color:#173e4b; font-size:16px; line-height:1.55; overflow-wrap:anywhere; }
.weekly-session-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.weekly-session-content h3,.weekly-session-content h4 { margin:0; font-size:18px; line-height:1.5; }
.weekly-session-content h5 { margin:1rem 0 .5rem; font-size:16px; line-height:1.5; }
.weekly-session-content p { margin:.5rem 0; font-size:16px; }
.weekly-session-content button { min-height:44px; max-width:100%; padding:.75rem 1rem; border:1px solid #0e6275; border-radius:8px; background:#0e6275; color:#fff; font:inherit; font-weight:750; white-space:normal; cursor:pointer; }
.weekly-session-content button:focus-visible,.weekly-session-card:focus { outline:3px solid #c65b09; outline-offset:3px; }
.weekly-session-card { margin-top:1rem; padding:1rem; border:1px solid #bdced7; border-radius:10px; background:#f7fafc; min-width:0; }
.weekly-session-card header p,.weekly-session-categories span,.weekly-session-facts dt { font-size:14px; color:#365363; }
.weekly-session-categories { display:flex; flex-wrap:wrap; gap:.75rem; list-style:none; padding:0; margin:1rem 0; }
.weekly-session-categories li { display:grid; gap:.25rem; min-width:0; flex:1 1 180px; padding:.75rem; border:1px solid #c3d6df; border-radius:8px; background:#fff; }
.weekly-session-categories strong { font-size:16px; }
.weekly-session-description { white-space:pre-wrap; overflow-wrap:anywhere; color:#163744; }
.weekly-session-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr)); gap:.75rem; margin:1rem 0; }
.weekly-session-facts div { min-width:0; padding:.5rem; border-bottom:1px solid #c8d9e1; }
.weekly-session-facts dd { margin:.25rem 0 0; font-size:16px; font-weight:700; }
.weekly-session-note { padding:.75rem; border-left:4px solid #996014; background:#fff5e5; color:#5c3b11; }
.weekly-session-content [hidden] { display:none !important; }
@media (max-width:600px) { .weekly-session-content,.weekly-session-card { padding:.75rem; } .weekly-session-heading button { width:100%; } }
@media print { .weekly-session-content { display:none; } }

/* Weekly category cards use the same framed surface as session content.
   Screen only: keep the established report PDF layout unchanged. */
@media screen {
  .report-training-targets { margin:1rem 0; padding:1rem; gap:1rem; border:2px solid #b9d0d9; border-radius:12px; background:#fff; color:#173e4b; line-height:1.5; overflow-wrap:anywhere; }
  .training-targets-heading { align-items:flex-start; flex-wrap:wrap; gap:.5rem 1rem; }
  .training-targets-heading strong { font-size:18px; line-height:1.5; letter-spacing:.02em; }
  .training-targets-heading small { font-size:14px; color:#365363; line-height:1.5; }
  .training-targets-grid { gap:1rem; }
  .training-target { gap:.75rem; padding:1rem; border:2px solid #0e6275; border-radius:10px; background:#f7fafc; box-shadow:none; }
  .training-target > span { display:flex; align-items:center; min-height:64px; margin:-1rem -1rem 0; padding:.75rem 1rem; border-radius:8px 8px 0 0; background:#0e6275; color:#fff; font-size:16px; line-height:1.5; font-weight:750; }
  .training-target > strong { font-size:20px; line-height:1.4; }
  .training-target > small { font-size:14px; line-height:1.5; color:#365363; }
  .training-target > b { width:fit-content; max-width:100%; white-space:normal; font-size:14px; line-height:1.5; letter-spacing:0; color:#664914; }
  .training-target.met { border-color:#0e6275; }
  .training-target.unconfirmed { border-color:#0e6275; }
  .training-target.met > b { color:#075c42; }
  .training-target.below > b { color:#803c1b; }
  .training-target-sessions summary { min-height:44px; padding:.65rem .75rem; border:1px solid #0e6275; border-radius:8px; color:#0e6275; background:#fff; font-size:14px; line-height:1.5; }
  .training-target-session-list button { min-height:44px; padding:.65rem .75rem; font-size:14px; line-height:1.5; white-space:normal; overflow-wrap:anywhere; }
  .training-target-sessions summary:focus-visible,.training-target-session-list button:focus-visible { outline:3px solid #c65b09; outline-offset:3px; }
}
@media screen and (max-width:1000px) { .training-targets-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media screen and (max-width:760px) { .training-targets-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media screen and (max-width:600px) { .report-training-targets { padding:.75rem; } .training-targets-grid { grid-template-columns:1fr; } .training-target > span { min-height:44px; } }
