:root { --pico-font-size: 100%; }
.brand { font-weight: 800; letter-spacing: -0.02em; }
.muted { color: var(--pico-muted-color); }
.small { font-size: 0.875rem; }
.inline { display: inline; margin: 0; }
button.link { background: none; border: none; padding: 0; color: var(--pico-primary); cursor: pointer; width: auto; margin: 0; }
.flash { padding: .75rem 1rem; border-radius: var(--pico-border-radius); margin-bottom: 1rem; background: #e8f1ff; border-left: 4px solid #3478f6; }
.flash-success { background: #e7f7ec; border-color: #2e9d58; }
.flash-error { background: #fdecec; border-color: #d13b3b; }
.flash-warning { background: #fff6e0; border-color: #d99a00; }
.badge { display: inline-block; padding: .1rem .55rem; border-radius: 999px; font-size: .78rem; font-weight: 600; background: #eef0f3; color: #333; white-space: nowrap; }
.badge-confirmed, .badge-paid, .badge-open { background: #e0f4e7; color: #1f7a42; }
.badge-waitlisted, .badge-unpaid, .badge-not_open { background: #fff1d6; color: #8a5a00; }
.badge-cancelled, .badge-closed { background: #fde2e2; color: #a12a2a; }
.badge-comp { background: #e5ecff; color: #2c4db0; }
.badge-in { background: #dff3ff; color: #075985; }
.page-head { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.page-head h1, .page-head h2 { margin: 0; }
.actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.actions a[role=button], .actions button { margin: 0; padding: .4rem .8rem; font-size: .9rem; width: auto; }
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 1rem; }
.cards article { margin: 0; }
.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.stat { padding: 1rem; border-radius: var(--pico-border-radius); background: var(--pico-card-sectioning-background-color); text-align: center; }
.stat strong { display: block; font-size: 2rem; line-height: 1.1; }
.table-wrap { overflow-x: auto; }
table td form select { margin: 0; padding: .2rem 1.8rem .2rem .5rem; font-size: .85rem; height: auto; }
table td button { margin: 0; padding: .2rem .6rem; font-size: .85rem; width: auto; }
.ticket { max-width: 460px; margin: 0 auto; text-align: center; }
.ticket .qr svg { width: 220px; height: 220px; }
.ticket .code { font-family: ui-monospace, monospace; font-size: 1.6rem; letter-spacing: .15em; font-weight: 700; }
.scan-result { padding: 1.25rem; border-radius: var(--pico-border-radius); font-size: 1.2rem; font-weight: 600; margin-bottom: 1rem; }
.scan-ok { background: #d9f5e3; color: #145c30; border: 2px solid #2e9d58; }
.scan-bad { background: #fde2e2; color: #7f1d1d; border: 2px solid #d13b3b; }
.scan-result small { display: block; font-weight: 400; font-size: .95rem; }
.progress-row { display: grid; grid-template-columns: 1fr auto; gap: .25rem 1rem; align-items: center; }
.progress-row progress { grid-column: 1 / -1; margin: 0 0 .75rem; }
.errorlist { color: #b42318; list-style: none; padding: 0; margin: .25rem 0; font-size: .875rem; }
fieldset ul, fieldset div > div { list-style: none; padding-left: 0; }
.helptext { display: block; font-size: .8rem; color: var(--pico-muted-color); margin-top: -.5rem; margin-bottom: .75rem; }
@media (max-width: 600px) { .hide-sm { display: none; } }
