:root {
  color-scheme: light;
  font-family: Arial, Helvetica, sans-serif;
  line-height: 1.55;
  color: #172016;
  background: #f5f2e9;
}
body { margin: 0; }
.skip-link { position: absolute; left: -10000px; top: auto; }
.skip-link:focus { left: 1rem; top: 1rem; z-index: 10; padding: .75rem; background: white; color: #102f18; }
.site-header { background: #153d23; color: white; padding: 1rem max(1rem, calc((100% - 70rem) / 2)); }
.brand { font-size: 1.8rem; font-weight: 700; margin: 0; }
.subtitle { font-size: 1.1rem; margin: .1rem 0 .75rem; }
.identity p { margin: .2rem 0; }
main, .messages { max-width: 70rem; margin: 0 auto; padding: 1rem; }
h1 { line-height: 1.2; }
.panel, .notice, .error, .session-controls { background: white; border: 2px solid #49634d; border-radius: .35rem; padding: 1rem; margin: 1rem 0; }
.error { border-color: #9f1f1f; }
label { display: block; font-weight: 700; margin-top: 1rem; }
input { display: block; width: min(28rem, 95%); padding: .65rem; font-size: 1rem; border: 2px solid #49524a; }
button, .button-link { display: inline-block; background: #1d5b31; color: white; border: 2px solid #103c20; border-radius: .25rem; padding: .75rem 1rem; margin: 1rem .5rem .25rem 0; font-size: 1rem; font-weight: 700; text-decoration: none; cursor: pointer; }
button.secondary { background: #505650; }
button:focus, a:focus, input:focus { outline: 4px solid #f3bd28; outline-offset: 2px; }
.section-links { display: flex; flex-wrap: wrap; gap: 1rem; margin: 1rem 0; }
section { margin: 2rem 0; }
table { width: 100%; border-collapse: collapse; background: white; margin: 1rem 0; }
caption { text-align: left; font-weight: 700; padding: .6rem 0; }
th, td { border: 1px solid #667268; padding: .65rem; text-align: left; vertical-align: top; }
thead th, tfoot th { background: #e5ebdf; }
.detail { display: block; font-size: .9rem; font-weight: 400; color: #39463c; }
.inline-form label { margin-top: 0; }
.inline-form input[type="number"] { width: 6rem; }
fieldset label { font-weight: 400; }
input[type="radio"] { display: inline-block; width: auto; margin-right: .45rem; }
.status-panel { background: #edf6ea; border: 2px solid #1d5b31; padding: 1rem; }
.category-group { background: white; border: 2px solid #49634d; border-radius: .35rem; margin: .75rem 0; padding: .25rem .75rem; }
.category-group summary { color: #143b21; cursor: pointer; font-size: 1.15rem; font-weight: 700; padding: .75rem .25rem; }
.category-group summary:focus { outline: 4px solid #f3bd28; outline-offset: 2px; }
.choice-list { display: grid; gap: .5rem; max-width: 40rem; }
.operation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); gap: 1rem; }
.operation-grid a { display: block; padding: 1rem; background: white; color: #143b21; border: 2px solid #49634d; font-size: 1.15rem; font-weight: 700; }
.operation-grid span { display: block; margin-top: .35rem; font-size: .95rem; font-weight: 400; color: #253329; }
@media (max-width: 40rem) { .operation-grid { grid-template-columns: 1fr; } }
