*,:before,:after{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}:root{--color-primary:#2c6e49;--color-primary-dark:#1b4332;--color-primary-light:#d8f3dc;--color-accent:#52b788;--color-danger:#c1121f;--color-danger-light:#fde8e8;--color-success:#2c6e49;--color-success-light:#d8f3dc;--color-surface:#fff;--color-surface-alt:#f8f9fa;--color-border:#dee2e6;--color-text:#212529;--color-text-muted:#6c757d;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:.75rem;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a}html{-webkit-text-size-adjust:100%;font-size:100%}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-surface-alt);min-block-size:100dvh;font-size:1rem;line-height:1.6}img{max-inline-size:100%}a{color:var(--color-primary);text-decoration:underline}a:hover{color:var(--color-primary-dark)}fieldset{border:none}.site-header{background-color:var(--color-primary);color:#fff;padding-block:var(--space-md);box-shadow:var(--shadow-sm)}.site-header__inner{align-items:center;gap:var(--space-sm);max-inline-size:48rem;padding-inline:var(--space-lg);margin-inline:auto;display:flex}.site-header__title{letter-spacing:-.01em;font-size:clamp(1rem,2.5vw,1.25rem);font-weight:700}.site-main{max-inline-size:48rem;padding-inline:var(--space-lg);padding-block:var(--space-xl);margin-inline:auto}.site-footer{text-align:center;padding-block:var(--space-xl);color:var(--color-text-muted);font-size:.875rem}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-xl)}.card+.card{margin-block-start:var(--space-lg)}.event-heading{margin-block-end:var(--space-lg)}.event-heading__name{color:var(--color-primary-dark);margin-block-end:var(--space-xs);font-size:clamp(1.25rem,4vw,1.75rem);font-weight:700}.event-heading__date{font-size:1.0625rem;font-weight:600}.alert{padding:var(--space-md);border-radius:var(--radius-md);margin-block-end:var(--space-lg);font-size:.9375rem}.alert--success{background-color:var(--color-success-light);color:var(--color-success);border-inline-start:4px solid var(--color-success)}.alert--danger{background-color:var(--color-danger-light);color:var(--color-danger);border-inline-start:4px solid var(--color-danger)}.attendance-form{margin-block-end:var(--space-xl)}.attendance-form__legend{color:var(--color-text);margin-block-end:var(--space-md);font-size:1.0625rem;font-weight:600}.radio-group{gap:var(--space-sm);flex-wrap:wrap;margin-block-end:var(--space-md);transition:opacity .15s;display:flex}fieldset[aria-busy=true] .radio-group{pointer-events:none}fieldset[aria-busy=true] .radio-option{color:#0000;border-color:var(--color-border);background-color:var(--color-surface-alt);position:relative;overflow:hidden}fieldset[aria-busy=true] .radio-option input{visibility:hidden}fieldset[aria-busy=true] .radio-option:after{content:"";background:linear-gradient(90deg,#0000 0%,#fff9 50%,#0000 100%) 0 0/200% 100%;animation:1.2s ease-in-out infinite skeleton-shimmer;position:absolute;inset:0}@keyframes skeleton-shimmer{0%{background-position:200%}to{background-position:-200%}}.radio-option{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background-color .15s;display:flex}.radio-option:has(input:checked){border-color:var(--color-primary);background-color:var(--color-primary-light)}.radio-option input[type=radio]{accent-color:var(--color-primary);block-size:1.1em;inline-size:1.1em}.btn{align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);padding-inline:var(--space-lg);border-radius:var(--radius-md);cursor:pointer;border:2px solid #0000;font-size:1rem;font-weight:600;line-height:1.4;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn--primary{background-color:var(--color-primary);color:#fff}.btn--primary:hover{background-color:var(--color-primary-dark);color:#fff}.attendee-list__heading{color:var(--color-text);margin-block-end:var(--space-md);font-size:1.0625rem;font-weight:600}.attendee-list__count{background-color:var(--color-primary);color:#fff;block-size:1.5rem;min-inline-size:1.5rem;padding-inline:var(--space-xs);vertical-align:middle;border-radius:999px;justify-content:center;align-items:center;margin-inline-start:var(--space-xs);font-size:.75rem;font-weight:700;display:inline-flex}.attendee-list{gap:var(--space-xs);flex-direction:column;list-style:none;display:flex}.attendee-list__item{align-items:center;gap:var(--space-sm);padding-block:var(--space-sm);border-block-end:1px solid var(--color-border);font-size:.9375rem;display:flex}.attendee-list__item:last-child{border-block-end:none}.attendee-list__you{color:var(--color-text-muted);font-size:.75rem;font-style:italic}.attendee-list__empty{color:var(--color-text-muted);padding-block:var(--space-md);font-style:italic}.status-badge{align-items:center;gap:var(--space-xs);padding-block:.2em;padding-inline:var(--space-sm);border-radius:999px;font-size:.8125rem;font-weight:600;display:inline-flex}.status-badge--attending{background-color:var(--color-success-light);color:var(--color-success)}.status-badge--not-attending{background-color:var(--color-danger-light);color:var(--color-danger)}.status-badge--pending{background-color:var(--color-surface-alt);color:var(--color-text-muted)}
