* { box-sizing: border-box; }
body { margin: 0; font-family: Arial, sans-serif; color: #222; background: #f6f7f9; }
header { background: #1f3a5f; padding: 10px 20px; display: flex; flex-wrap: wrap; gap: 15px; align-items: center; }
header a { color: #fff; text-decoration: none; }
header .brand { font-weight: bold; font-size: 1.1rem; display: flex; align-items: center; gap: 10px; }
header .brand img { display: block; }
header nav { display: flex; flex-wrap: wrap; gap: 4px 14px; }
header nav a { opacity: .8; font-size: .9rem; }
header nav a.active, header nav a:hover { opacity: 1; text-decoration: underline; }
main { padding: 20px; max-width: 1400px; margin: 0 auto; }
main.login { max-width: 380px; margin-top: 60px; }
h1 { margin-top: 0; }
a { color: #1f5fa8; }
table { border-collapse: collapse; background: #fff; width: 100%; }
th, td { border: 1px solid #ddd; padding: 7px 10px; text-align: left; vertical-align: top; }
th { background: #eef1f5; white-space: nowrap; }
th a { text-decoration: none; color: inherit; }
tr:hover td { background: #f5f9ff; }
.scroll { overflow-x: auto; }
.toolbar { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; }
.toolbar form { display: flex; gap: 6px; align-items: center; }
.meta { color: #666; }
.pager { text-align: center; }
.btn, button { display: inline-block; padding: 8px 16px; background: #2b7a78; color: #fff; border: 0; border-radius: 4px; text-decoration: none; cursor: pointer; font-size: .95rem; }
.btn:hover, button:hover { background: #1f5e5c; }
input[type=text], input[type=number], input[type=password], input[type=search], textarea { width: 100%; padding: 8px; border: 1px solid #bbb; border-radius: 4px; font: inherit; }
.toolbar input[type=search] { width: 260px; }
form.record { background: #fff; border: 1px solid #ddd; border-radius: 6px; padding: 20px; max-width: 700px; }
form.record label { display: block; font-weight: bold; margin: 14px 0 5px; }
form.record label:first-child { margin-top: 0; }
.static { padding: 8px 0; color: #555; }
.actions { margin-top: 20px; }
.notice { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; padding: 10px; border-radius: 4px; }
.error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; padding: 10px; border-radius: 4px; }
@media (max-width: 600px) { main { padding: 12px; } .toolbar input[type=search] { width: 160px; } }
header nav.account { margin-left: auto; align-items: center; }
header nav.account span { color: #cfd8e6; font-size: .85rem; }
select { padding: 8px; border: 1px solid #bbb; border-radius: 4px; font: inherit; }
form.danger { margin-top: 20px; }
form.danger button { background: #b3261e; }
form.danger button:hover { background: #8c1d18; }
td.num, th.num { text-align: right; font-variant-numeric: tabular-nums; }
table.report tfoot th { background: #dde6f2; border-top: 2px solid #1f3a5f; }
.reportform { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 10px; }
.reportform label { font-weight: bold; }
.reportform select { margin-left: 6px; }
h3 .meta { font-weight: normal; font-size: .85rem; }
@media print { header, .reportform { display: none; } body { background: #fff; } }
main.login { text-align: center; }
main.login form { text-align: left; }
.logo { margin: 0 0 10px; }

.pending-banner { background: #fff3cd; border-bottom: 1px solid #e0c36a; padding: .5rem 1rem; text-align: center; }
.pending-banner a { color: #5c4500; font-weight: bold; }

.welcome { background: #f4f7fb; border: 1px solid #d5deea; border-radius: 6px; padding: .75rem 1rem; margin-bottom: 1rem; font-size: .95rem; text-align: left; }
.welcome p { margin: .4rem 0; }
.welcome ol { margin: .3rem 0 .5rem 1.2rem; padding: 0; }
@media (max-width: 600px) {
  header { padding: 8px 12px; gap: 8px; }
  header nav.account { margin-left: 0; width: 100%; }
  input[type=text], input[type=number], input[type=password], input[type=search], select, textarea { font-size: 16px; }
  main.login { margin-top: 24px; }
  .toolbar form, .toolbar input[type=search] { width: 100%; }
  .btn, button { padding: 10px 16px; }
}

form.record .help { color: #666; font-size: .85rem; margin: -2px 0 5px; }
form.record .warn { color: #b3261e; font-size: .85rem; margin: 4px 0 0; }
p.warn { background: #fdecea; border: 1px solid #b3261e; color: #b3261e; padding: 8px 12px; border-radius: 4px; }
details.howto { background: #eef4f8; border: 1px solid #c9d9e4; border-radius: 6px; padding: 8px 14px; margin: 0 0 14px; }
details.howto summary { cursor: pointer; font-weight: 600; }
details.howto ol { margin: 10px 0 6px 18px; padding: 0; }
details.howto li { margin-bottom: 6px; }
@media print { details.howto { display: none; } }
