.rehab-journal { color: #172c35; background: #f5faf9; border: 1px solid #b7cbc8; border-radius: 16px; padding: clamp(12px, 3vw, 28px); max-width: 100%; overflow-wrap: anywhere; }
.rehab-journal *, .rehab-journal *::before, .rehab-journal *::after { box-sizing: border-box; min-width: 0; }
.rehab-journal [hidden] { display: none !important; }
.rehab-journal h2 { font-size: clamp(1.3rem, 4vw, 1.8rem); line-height: 1.3; margin: 0 0 12px; }
.rehab-journal p { line-height: 1.6; }
.rehab-journal__days { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 16px; margin: 18px 0; }
.rehab-journal fieldset { margin: 0; padding: 14px; border: 1px solid #b7cbc8; border-radius: 10px; background: white; }
.rehab-journal legend { font-weight: 700; padding: 0 4px; max-width: 100%; }
.rehab-journal__field { display: grid; gap: 6px; margin-bottom: 12px; }
.rehab-journal label { display: block; font-weight: 600; font-size: 1rem; line-height: 1.5; }
.rehab-journal input, .rehab-journal textarea { display: block; width: 100%; max-width: 100%; border: 1px solid #647d82; border-radius: 6px; padding: 10px; color: #172c35; background: #fff; font: inherit; min-height: 44px; }
.rehab-journal textarea { resize: vertical; }
.rehab-journal__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rehab-journal button { border: 1px solid #145b53; border-radius: 7px; background: #145b53; color: #fff; padding: 10px 16px; font: inherit; font-weight: 600; min-height: 44px; white-space: normal; cursor: pointer; max-width: 100%; }
.rehab-journal button:disabled { background: #e0e9e7; color: #435953; border-color: #a8bbb5; cursor: default; }
.rehab-journal :is(input, textarea, button):focus-visible { outline: 3px solid #236ec1; outline-offset: 3px; }
.rehab-journal [aria-invalid="true"] { border: 2px solid #a62228; }
.rehab-journal__error { color: #a62228; font-weight: 600; line-height: 1.4; }
.rehab-journal__status { min-height: 1.6em; }
.rehab-journal__output textarea { line-height: 1.5; margin-top: 8px; }
.rehab-journal-print { display: none; }
@media print {
  body.rehab-journal-printing > :not(.rehab-journal-print) { display: none !important; }
  body.rehab-journal-printing > .rehab-journal-print { display: block !important; margin: 0; padding: 0; color: #000; background: #fff; border: 0; }
  .rehab-journal-print pre { white-space: pre-wrap; overflow-wrap: anywhere; font: 11pt/1.5 sans-serif; }
}
