/* Ambuklas site styles. Kept minimal so the site template decides the look. */
.ambuklas-filters fieldset { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; border: 0; padding: 0; margin: 0 0 1.5rem; }
.ambuklas-filter { display: flex; flex-direction: column; gap: .25rem; min-width: 12rem; }
.ambuklas-filter-buttons { flex-direction: row; min-width: 0; }
.ambuklas-session-list { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); padding: 0; }
.ambuklas-session article { border: 1px solid rgba(0, 0, 0, .125); border-radius: .5rem; padding: 1rem; height: 100%; display: flex; flex-direction: column; gap: .35rem; }
.ambuklas-session p { margin: 0; }
.ambuklas-session .btn { margin-top: auto; align-self: flex-start; }
.ambuklas-session-time { margin-left: .5rem; }
.ambuklas-session-title { margin: 0; }
.ambuklas-map { position: relative; min-height: 22rem; margin: 0 0 1.5rem; border-radius: .5rem; background: #eef3f8; overflow: hidden; }
.ambuklas-map-small { min-height: 16rem; }
.ambuklas-map-canvas { position: absolute; inset: 0; }
.ambuklas-map-consent { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; padding: 1rem; text-align: center; }
.ambuklas-map-popup ul { margin: .5rem 0 0; padding-left: 1rem; }
.ambuklas-map-date { color: #555; white-space: nowrap; }
.ambuklas-facts { display: grid; grid-template-columns: max-content 1fr; gap: .25rem 1.5rem; }
.ambuklas-facts dt { font-weight: 600; }
.ambuklas-facts dd { margin: 0; }
.ambuklas-registration { margin-top: 2rem; }
.ambuklas-registration-form { max-width: 40rem; }
/* Honeypot: off screen for people, still in the form for bots. */
.ambuklas-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
/* Portal: tables become stacked cards on small screens (labels from data-label). */
.ambuklas-portal .ambuklas-row-actions { white-space: nowrap; }
.ambuklas-portal .ambuklas-row-actions form { margin: 0; }
.ambuklas-past-list { padding-left: 1.25rem; }
.ambuklas-pick-list { max-height: 28rem; overflow: auto; }
.ambuklas-participant-form, .ambuklas-activate-form, .ambuklas-import-form { max-width: 40rem; }
.ambuklas-import-preview td { min-width: 6rem; }
@media (max-width: 47.99rem) {
    .ambuklas-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .ambuklas-stack, .ambuklas-stack tbody, .ambuklas-stack tr, .ambuklas-stack th, .ambuklas-stack td { display: block; width: 100%; }
    .ambuklas-stack tr { border: 1px solid rgba(0, 0, 0, .125); border-radius: .5rem; padding: .5rem .75rem; margin-bottom: .75rem; }
    .ambuklas-stack th, .ambuklas-stack td { border: 0; padding: .15rem 0; min-width: 0; }
    .ambuklas-stack td[data-label]::before { content: attr(data-label) ": "; font-weight: 600; }
    .ambuklas-stack td:empty { display: none; }
    .ambuklas-portal .ambuklas-row-actions { white-space: normal; padding-top: .5rem; }
}
/* Attendance: big tap targets for phone and tablet. */
.ambuklas-attendance-list { margin: 0; padding: 0; }
.ambuklas-attendance-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; padding: .75rem 0; border-bottom: 1px solid rgba(0, 0, 0, .125); }
.ambuklas-attendance-person { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }
.ambuklas-attendance-buttons { display: flex; gap: .5rem; margin: 0; flex: 0 0 auto; }
.ambuklas-tap { min-height: 3rem; min-width: 6.5rem; font-size: 1.05rem; }
@media (max-width: 30rem) {
    .ambuklas-attendance-buttons { flex: 1 1 100%; }
    .ambuklas-attendance-buttons .ambuklas-tap { flex: 1 1 0; }
}
/* A tapped but not chosen button must not look chosen (Bootstrap fills :active/:focus). */
.ambuklas-tap.btn-outline-secondary[aria-pressed="false"]:focus,
.ambuklas-tap.btn-outline-secondary[aria-pressed="false"]:active { background-color: transparent; color: var(--bs-secondary-color, #6c757d); }
