/* Gigs, promoters and the press kit (spec 7h.3). Colours are tokens only, so every palette applies. */

.form-card.wide { max-width: 640px; }

/* The board filter */
.gig-filter { display: flex; flex-wrap: wrap; gap: 12px; align-items: flex-end; margin-bottom: 18px; }
.gig-filter .field { flex: 1 1 180px; margin: 0; }

/* Board rows: a date badge, what and who, and the actions */
.gig-board { display: grid; gap: 10px; }
.gig-row { display: flex; gap: 14px; align-items: flex-start; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--surface) 85%, transparent); }
.gig-row.slot { border-left: 3px solid var(--brass); }
.gig-row.open { border-left: 3px solid var(--ok); }
.gig-row p { margin: 0 0 4px; }
.gig-row .member-actions { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: flex-end; }
.gig-row .member-actions form { margin: 0; }
.gig-date { flex: 0 0 56px; display: grid; justify-items: center; line-height: 1.1; padding: 6px 0; border-radius: var(--radius-sm); background: var(--accent-soft); color: var(--accent-ink, var(--text)); }
.gig-date b { font-family: var(--font-display); font-size: 22px; }
.gig-date span { font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.gig-date small { font-size: 11px; color: var(--muted); }
.gig-offers li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.gig-offers li form { margin: 0; }

@media (max-width: 640px) {
    .gig-row { flex-wrap: wrap; }
    .gig-row .member-actions { width: 100%; justify-content: flex-start; }
}

/* The offer card at the top of a gig thread */
.gig-offer-card { border: 1px solid var(--border-strong); border-radius: var(--radius); padding: 14px 16px; margin: 0 0 12px; background: color-mix(in srgb, var(--brass) 8%, var(--surface)); }
.gig-offer-card.accepted { background: color-mix(in srgb, var(--ok) 9%, var(--surface)); }
.gig-offer-card.declined, .gig-offer-card.withdrawn, .gig-offer-card.removed { opacity: .8; }
.gig-offer-card .row { justify-content: space-between; align-items: center; }
.gig-terms { display: grid; grid-template-columns: max-content 1fr; gap: 4px 14px; margin: 10px 0 4px; }
.gig-terms dt { color: var(--muted); font-size: 13px; }
.gig-terms dd { margin: 0; }
.decide-form { margin: 0 0 12px; padding: 12px; border: 1px dashed var(--border-strong); border-radius: var(--radius-sm); }
.decide-form .field { margin-bottom: 8px; }

/* Press-kit photos */
.epk-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; margin: 12px 0; }
.epk-photos.small { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); }
.epk-photos figure { margin: 0; }
.epk-photos img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--border); display: block; }
.epk-photos figcaption { font-size: 12px; color: var(--muted); margin-top: 4px; display: flex; gap: 6px; align-items: center; justify-content: space-between; }
.epk-photos figcaption form { margin: 0; }

/* Availability calendar */
.avail { display: grid; gap: 12px; margin-bottom: 10px; }
.avail-title { margin: 0 0 4px; font-weight: 600; font-size: 14px; }
.avail-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; text-align: center; font-size: 12px; }
.avail-dow { color: var(--muted); font-size: 11px; }
.avail-day { display: inline-block; padding: 3px 0; border-radius: 6px; min-width: 22px; color: var(--text); }
.avail-day.past { color: var(--muted); opacity: .5; }
.avail-day.open { background: color-mix(in srgb, var(--ok) 22%, transparent); color: var(--ok); font-weight: 700; outline: 1px solid color-mix(in srgb, var(--ok) 55%, transparent); }
.avail-day.booked { background: color-mix(in srgb, var(--brass) 22%, transparent); color: var(--brass); font-weight: 700; text-decoration: line-through; }
.avail-key { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.avail-key .avail-day { padding: 1px 6px; }
