.frac-event-full { grid-column: 1 / -1; width: 100%; min-width: 0; }
.frac-event-full textarea,.frac-event-full select { width: 100%; }
.frac-event-full [hidden] { display: none !important; }
.frac-event-full .cke { width: 100% !important; box-sizing: border-box; }
.frac-event-ticket { display: flex; gap: 28px; align-items: center; padding: 24px; border: 1px solid #b9964c; border-radius: 18px; background: #fffdf7; margin: 16px 0; }
.frac-event-ticket img { width: 200px; height: 200px; flex-shrink: 0; background: white; }
.frac-ticket-copy { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.frac-scanner { max-width: 600px; margin: 20px auto; padding: 24px; border-radius: 24px; background: #152c25; color: #fff9eb; }
.frac-scanner .frac-text-link,.frac-scanner .frac-fineprint { color: #e9d6a9; }
.frac-scanner h1 { font-size: clamp(2rem,7vw,3.5rem); }
.frac-scanner-camera { position: relative; aspect-ratio: 1; overflow: hidden; background: #07110d; border-radius: 18px; margin: 24px 0; }
.frac-scanner-camera video { width: 100%; height: 100%; object-fit: cover; }
.frac-scanner-frame { position: absolute; inset: 18%; border: 3px solid #dec17d; border-radius: 20px; pointer-events: none; }
.frac-scanner .frac-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.frac-scanner-photo { display: block; margin: 20px 0; }
.frac-scanner-photo input { display: block; width: 100%; margin-top: 10px; }
.frac-scan-status { padding: 18px; background: #29483d; border-radius: 12px; min-height: 70px; font-weight: 700; }
.frac-scan-status[data-state='error'] { background: #6c2929; }
.frac-scan-status[data-state='duplicate'] { background: #66511f; }
.frac-scan-list { padding-left: 20px; }
.frac-scan-list li { padding: 10px 0; border-bottom: 1px solid #4e6258; }
@media(max-width:600px) { .frac-event-ticket { flex-direction: column; align-items: flex-start; padding: 18px; gap: 16px; } .frac-event-ticket img { align-self: center; } .frac-scanner { padding: 18px; border-radius: 16px; } }

.frac-scanner-body { margin: 0; padding: 12px; min-height: 100dvh; background: #081e17; font-family: 'DM Sans', sans-serif; }
.frac-scanner-body .frac-scanner { margin: 0 auto; }
.frac-scanner-body .frac-scanner-camera { aspect-ratio: 4 / 3; margin: 16px 0; }
.frac-scanner-body .frac-actions > button { min-height: 48px; flex: 1; }
.frac-scanner-body h2 { font-size: 1.5rem; }
.frac-scanner-body .frac-eyebrow { color: #e9ce8e; }

.frac-event-row { display: flex; align-items: center; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--frac-border); }
.frac-event-row-link { display: flex; flex: 1; flex-wrap: wrap; align-items: baseline; gap: 8px 20px; min-width: 0; color: var(--frac-text); text-decoration: none; }
.frac-event-row-link strong { flex: 1 1 180px; font-size: 15px; overflow-wrap: anywhere; }
.frac-event-row-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; font-size: 11px; }
.frac-event-status { font-weight: 700; }
.frac-event-row-actions { display: flex; flex-shrink: 0; gap: 6px; }
.frac-event-row-actions form { margin: 0; }
.frac-event-action { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid var(--frac-border); border-radius: 6px; background: transparent; color: var(--frac-text); text-decoration: none; cursor: pointer; }
.frac-event-action:hover,.frac-event-action:focus-visible { background: #efe2c1; border-color: #a17c2b; }
.frac-event-action[aria-pressed='true'] { color: #175a36; background: #e5eee2; }
.frac-event-action:disabled { opacity: .5; cursor: wait; }
.frac-event-action [hidden] { display: none; }
.frac-event-action span { display: flex; }
#prior-events { margin-top: 20px; }
#prior-events summary { cursor: pointer; }
@media(max-width:700px) { .frac-event-row { flex-wrap: wrap; gap: 10px; } .frac-event-row-link { flex-basis: 100%; } .frac-event-row-actions { margin-left: auto; } }

.frac-event-image-fields { display: grid; gap: 10px; }
.frac-event-image-fields label { display: flex; flex-direction: column; gap: 8px; }
.frac-event-image-fields input[type='file'] { width: 100%; max-width: 100%; }
.frac-event-image-fields .frac-calendar-upload-previews { display: flex; flex-wrap: wrap; gap: 12px; }
.frac-event-image-fields .frac-calendar-upload-previews > img,.frac-event-image-fields figure img { width: 160px; height: 110px; object-fit: cover; border-radius: 8px; }
.frac-event-image-fields figure { margin: 0; max-width: 180px; overflow-wrap: anywhere; }
.frac-event-image-fields figcaption { font-size: 11px; margin: 6px 0; }
.frac-event-image-fields .frac-event-banner-preview img { width: min(100%, 520px); height: auto; max-height: 240px; }
.frac-event-banner { display: block; width: 100%; aspect-ratio: 16 / 6; object-fit: cover; border-radius: 16px; margin: 0 0 28px; }
.frac-event-gallery-section { margin: 28px 0; }
.frac-event-gallery-section .frac-calendar-event-image { margin: 0; aspect-ratio: 4 / 3; object-fit: cover; }
@media(max-width:600px) { .frac-event-banner { aspect-ratio: 16 / 9; } }

.frac-event-list-thumbnail { width: 40px; height: 40px; flex: 0 0 40px; object-fit: cover; border-radius: 6px; }
.frac-calendar-event-thumbnail { float: left; width: 28px; height: 28px; object-fit: cover; border-radius: 4px; margin: 0 7px 5px 0; }
.frac-calendar-club-event { display: flow-root; }
.frac-calendar-club-event > strong { clear: both; }
.frac-calendar-club-event .frac-event-draft-note { clear: both; margin-top: 4px; color: #d9dfd5; font-size: 10px; font-weight: 400; line-height: 1.4; }

#prior-events > summary h2 { display: inline-block; margin: 0; vertical-align: middle; }

.frac-ticket-actions { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; }
@media print {
  .frac-ticket-print-ancestor > :not(.frac-ticket-print-ancestor):not(.frac-ticket-print-target) { display: none !important; }
  .frac-ticket-print-ancestor { display: block !important; position: static !important; width: auto !important; max-width: none !important; height: auto !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; overflow: visible !important; background: white !important; }
  .frac-ticket-print-ancestor::before,.frac-ticket-print-ancestor::after { display: none !important; }
  .frac-ticket-print-target { display: flex !important; flex-direction: row !important; align-items: center !important; gap: 24px !important; margin: 0 !important; padding: 24px !important; color: #002d3b !important; background: white !important; break-inside: avoid; }
  .frac-ticket-print-target .frac-ticket-actions { display: none !important; }
  .frac-ticket-print-target img { width: 200px !important; height: 200px !important; }
}
