:root { color-scheme: light; }
* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; line-height: 1.5; color: #1b1f24; background: #f6f7f9; }
header, main, footer { max-width: 62rem; margin: 0 auto; padding: 1rem; }
h1 { font-size: 1.7rem; margin: 0.5rem 0; }
h2 { font-size: 1.25rem; margin-top: 1.5rem; }
a { color: #0b5cad; }
.card { background: #fff; border: 1px solid #d5d9df; border-radius: 8px; padding: 1rem; margin: 1rem 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0.75rem; }
label { display: block; font-weight: 600; font-size: 0.9rem; }
input, select, textarea { display: block; width: 100%; margin-top: 0.25rem; padding: 0.45rem; font: inherit; border: 1px solid #98a1ad; border-radius: 4px; background: #fff; }
button, .button { display: inline-block; margin-top: 0.75rem; padding: 0.55rem 1rem; font: inherit; font-weight: 600; color: #fff; background: #0b5cad; border: 0; border-radius: 6px; cursor: pointer; text-decoration: none; }
button.secondary { background: #4b5563; }
.errors { color: #9b1c1c; font-weight: 600; margin: 0.5rem 0; }
.status { margin: 0.5rem 0; }
.notice { background: #eef5ff; border-left: 4px solid #0b5cad; padding: 0.6rem 0.9rem; margin: 0.75rem 0; }
.placeholder-note { background: #fff7e0; border-left: 4px solid #b7791f; padding: 0.6rem 0.9rem; }
table { width: 100%; border-collapse: collapse; background: #fff; font-size: 0.9rem; }
th, td { border: 1px solid #d5d9df; padding: 0.35rem 0.5rem; text-align: left; vertical-align: top; }
th { background: #e9edf2; }
tr.day td { background: #dbe4ef; font-weight: 700; }
tr.sleep td { background: #f0f0f4; color: #5b6470; }
tr.final td { background: #fff1d6; font-weight: 700; }
.downloads li { margin: 0.35rem 0; }
.hidden { display: none; }
nav a { margin-right: 1rem; }
footer { font-size: 0.85rem; color: #4b5563; }

@media print {
  body { background: #fff; }
  header nav, form, button, .no-print, footer { display: none; }
  .card { border: 0; padding: 0; }
  table { font-size: 10pt; }
  tr { page-break-inside: avoid; }
}
