body { font: 18px/1.4 system-ui, sans-serif; margin: 0; background: #f6f4ef; color: #222; }
header { display: flex; gap: 1rem; align-items: center; padding: .5rem 1rem; background: #23395b; color: #fff; }
header h1 { margin: 0; font-size: 1.4rem; }
header h1 button { font: inherit; padding: 0; margin: 0; background: none; color: inherit; }
/* Opens on hover, and on tap/keyboard focus for touch kiosks. */
.menu { position: relative; }
#about-menu { display: none; position: absolute; top: 100%; left: 0; z-index: 10; min-width: 16rem; margin: 0; padding: .5rem 0; list-style: none; background: #fff; color: #222; border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.25); }
.menu:hover #about-menu:not([hidden]), .menu:focus-within #about-menu:not([hidden]) { display: block; }
#about-menu li { padding: .5rem 1rem; font-size: .9rem; }
#about-menu a { color: #23395b; }
header #btn-maint { margin-left: auto; }
header.test-site { background: #b34700; }
header.test-site::after { content: 'TEST SITE'; margin-left: auto; font-weight: bold; letter-spacing: .1em; }
main { max-width: 900px; margin: 0 auto; padding: 1rem; }
label { display: block; margin: .6rem 0; }
input, select, textarea { font: inherit; padding: .5rem; width: 100%; box-sizing: border-box; }
input[type=radio] { width: auto; }
fieldset label { display: inline-block; margin-right: 1.5rem; }
button { font: inherit; padding: .8rem 1.4rem; margin: .4rem .4rem .4rem 0; border: 0; border-radius: 6px; background: #23395b; color: #fff; cursor: pointer; }
button.secondary { background: #8a8a8a; }
button:disabled { opacity: .5; }
#search-form { display: flex; gap: .5rem; }
#search-form button { margin: 0; }
.choices { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: .5rem; }
.choices button { width: 100%; height: 100%; margin: 0; text-align: left; }
.choices small { display: block; opacity: .8; }
#waiver-frame { width: 100%; height: 65vh; border: 1px solid #ccc; background: #fff; }
#k-done { text-align: center; padding: 3rem 0; }
.msg { color: #a00; min-height: 1.4em; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; margin-bottom: 1.5rem; }
th, td { text-align: left; padding: .3rem .4rem; border-bottom: 1px solid #ddd; }
td button { padding: .2rem .6rem; margin: 0; }
body.mode-park .event-only, body.mode-event .park-only { display: none; }
