body { margin: 0; padding: 2rem 1rem; color: #182b38; background: #f5f7f8; font: 1rem/1.6 system-ui, sans-serif; }
main { max-width: 48rem; margin: auto; }
h1 { line-height: 1.2; }
form { margin: 1.5rem 0; }
label { display: block; font-weight: 600; }
input, button, select { font: inherit; padding: .5rem; max-width: 100%; box-sizing: border-box; }
button { display: block; margin-top: .7rem; cursor: pointer; }
input, select { display: block; width: 100%; margin: .3rem 0 1rem; }
section { margin: 1.5rem 0; padding: 1rem; background: white; border: 1px solid #c8d4db; border-radius: .3rem; }
nav form { display: inline; margin: 0; }
nav button { display: inline; }
code { overflow-wrap: anywhere; }
[role="alert"] { padding: 1rem; background: #fff3cd; }
a { color: #075b8d; }
textarea { font: inherit; width: 100%; padding: .5rem; box-sizing: border-box; }
fieldset { margin: 1.5rem 0; border: 1px solid #b5c5cf; padding: 1rem; }
legend { font-weight: 700; }
.choice { display: flex; gap: .7rem; align-items: flex-start; margin: 1rem 0; font-weight: 400; }
.choice input { width: auto; flex: 0 0 auto; margin: .35rem 0 0; }
.shift { padding: .7rem; background: white; border-radius: .3rem; }
.notice { padding: 1rem; background: #e8eff3; }
.honeypot { position: absolute; left: -10000px; }
.roster-shift li { margin: 1rem 0; overflow-wrap: anywhere; }
@media print {
    body { background: white; color: black; padding: 0; font-size: 10pt; }
    main { max-width: none; }
    nav, form, .no-print { display: none !important; }
    .roster-shift { border: 0; padding: 0; }
    .roster-shift h2 { break-after: avoid; }
    .roster-shift li { break-inside: avoid; }
}
