* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; }
body {
  font-family: Georgia, "Times New Roman", serif;
  color: #1d3b2a;
  background: #1a5a35 url("bg.png") center top / cover no-repeat fixed;
  min-height: 100vh;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 6vh 16px 40vh;
}
.card {
  width: 100%;
  max-width: 440px;
  background: rgba(255, 255, 255, 0.93);
  border-radius: 16px;
  padding: 28px 24px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
  border-top: 6px solid #c8102e;
}
.card.wide { max-width: 960px; }
.logo { display: block; max-width: 260px; width: 80%; height: auto; margin: 0 auto 12px; }
h1 { margin: 0 0 4px; color: #c8102e; text-align: center; font-size: 2rem; }
.sub { text-align: center; margin: 0 0 20px; color: #1a5a35; }
label, legend { display: block; font-weight: bold; margin: 16px 0 6px; }
fieldset { border: 0; padding: 0; margin: 0; }
input[type=text], input[type=password], select {
  width: 100%; padding: 12px; font-size: 1rem;
  border: 1px solid #9bb5a4; border-radius: 8px; font-family: inherit;
}
.choices { display: flex; gap: 10px; }
.choices label {
  flex: 1; margin: 0; font-weight: normal; text-align: center;
  border: 2px solid #1a5a35; border-radius: 8px; padding: 10px; cursor: pointer;
}
.choices input { position: absolute; opacity: 0; }
.choices label:has(input:checked) { background: #1a5a35; color: #fff; }
.choices label:has(input:focus-visible) { outline: 3px solid #c8102e; }
button, .btn {
  display: inline-block; width: 100%; margin-top: 24px; padding: 14px;
  font-size: 1.1rem; font-family: inherit; font-weight: bold;
  background: #c8102e; color: #fff; border: 0; border-radius: 8px; cursor: pointer;
  text-align: center; text-decoration: none;
}
button:hover, .btn:hover { background: #a00d25; }
.error { background: #fde2e6; color: #8a0b1f; padding: 10px; border-radius: 8px; }
.thanks { text-align: center; font-size: 1.15rem; }
.hidden { display: none; }
.stats { display: flex; flex-wrap: wrap; gap: 10px; margin: 16px 0; }
.stat { flex: 1 1 120px; background: #eaf3ed; border-radius: 8px; padding: 10px; text-align: center; }
.stat b { display: block; font-size: 1.6rem; color: #c8102e; }
.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
th, td { padding: 8px; border-bottom: 1px solid #d5e3da; text-align: left; white-space: nowrap; }
th { background: #1a5a35; color: #fff; }
.admin-links { display: flex; gap: 10px; }
h2 { color: #1a5a35; margin: 28px 0 8px; font-size: 1.3rem; border-bottom: 2px solid #c8102e; padding-bottom: 4px; }
h2 small { font-weight: normal; font-size: 0.9rem; color: #555; }
tfoot th { background: #eaf3ed; color: #1d3b2a; }
td a { color: #c8102e; }
.admin-links .btn { margin-top: 8px; font-size: 0.95rem; padding: 10px; }
