:root { font-size: 20px; }
body { font-family: Arial, sans-serif; margin: 0; background: #f6f6f6; color: #111; }
header { background: #111; color: #fff; padding: 1rem 1.5rem; }
main { max-width: 1100px; margin: 1.5rem auto; background: #fff; padding: 1.5rem; border-radius: .4rem; }
a, button, input, select { font-size: 1rem; }
a.button, button, input[type=submit] { display: inline-block; padding: .55rem .85rem; border: 2px solid #111; background: #fff; color: #111; text-decoration: none; border-radius: .3rem; cursor: pointer; margin: .2rem 0; }
a.button:hover, button:hover, input[type=submit]:hover { background: #111; color: #fff; }
table { border-collapse: collapse; width: 100%; margin-top: 1rem; }
th, td { border: 1px solid #999; padding: .45rem; text-align: left; vertical-align: top; }
th { background: #eee; }
nav a { margin-right: .8rem; color: #fff; }
.notice { padding: .75rem; border: 2px solid #333; background: #f2f2f2; margin: 1rem 0; }
.error { border-color: #900; background: #fff0f0; }
input[type=text], input[type=password], input[type=file], input[type=datetime-local], input[type=date], input[type=time], input[type=number] { padding: .45rem; width: min(100%, 28rem); }
label { display: block; margin-top: .8rem; font-weight: bold; }
.checkbox-cell { text-align: center; }
@media print { header, nav, .no-print, button, input[type=submit] { display:none; } main { margin:0; padding:0; } body { background:#fff; } }

.card { border: 1px solid #bbb; padding: 1rem; background: #fafafa; margin: 1rem 0; }
.print-page { page-break-after: always; margin-bottom: 2rem; }
.print-page:last-child { page-break-after: auto; }
@media print { .print-page { page-break-after: always; } h1 { font-size: 1.4rem; } h2 { font-size: 1.2rem; } }
