/* Events module: cards, category colours, month calendar, ticket. Colours keep a 4.5:1 contrast on their background. */
.ev-cat { font-weight: 600; border-left: 3px solid currentColor; border-radius: .25rem; }
.ev-cat-SEMINAR { background: #e7f0fb; color: #0b4a8b; }
.ev-cat-WORKSHOP { background: #fdf0e1; color: #8a4500; }
.ev-cat-COMPETITION { background: #f7e6f3; color: #7d1f66; }
.ev-cat-CAREER { background: #e5f4f1; color: #0d5f52; }
.ev-cat-SOCIAL { background: #fbe9e9; color: #9b1c1c; }
.ev-cat-ACADEMIC { background: #e9f3e4; color: #2d6119; }
.ev-cat-OTHER { background: #eef0f2; color: #3d4852; }

.ev-min-w-0 { min-width: 0; }
.ev-card { transition: box-shadow .15s ease-in-out; }
.ev-card:hover, .ev-card:focus-within { box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .12) !important; }
.ev-card-img { aspect-ratio: 16 / 7; object-fit: cover; }
.ev-title-link { color: inherit; text-decoration: none; }
.ev-title-link:hover, .ev-title-link:focus { text-decoration: underline; }
.ev-cancelled .card-title, .ev-cancelled .ev-date { opacity: .6; }
.ev-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.ev-date {
  flex: 0 0 3.25rem; text-align: center; border-radius: .5rem; background: var(--gic-green-light, #e9f3e4);
  color: var(--gic-green-dark, #2d6119); padding: .35rem 0; align-self: flex-start;
}
.ev-date-month { display: block; font-size: .75rem; text-transform: uppercase; font-weight: 600; }
.ev-date-day { display: block; font-size: 1.35rem; font-weight: 700; line-height: 1.1; }

.ev-filters { display: flex; flex-wrap: wrap; gap: .4rem; }
.ev-crumb { max-width: 60vw; }
.ev-hero-img { width: 100%; max-height: 22rem; object-fit: cover; }
.ev-description img { max-width: 100%; height: auto; }
.ev-facts dt { font-size: .8rem; color: #5c636a; font-weight: 600; }
.ev-facts dd { margin-bottom: .6rem; }
.ev-thumb { width: 6rem; height: 3.5rem; object-fit: cover; }

/* Month calendar */
.ev-calendar { width: 100%; table-layout: fixed; border-collapse: collapse; background: #fff; }
.ev-calendar th { font-size: .8rem; font-weight: 600; text-align: left; padding: .4rem .5rem; color: #495057; background: #f1f3f1; border: 1px solid #dee2e6; }
.ev-calendar th abbr { text-decoration: none; cursor: default; }
.ev-calendar td { vertical-align: top; height: 7.5rem; padding: .3rem; border: 1px solid #dee2e6; }
.ev-calendar td.ev-out { background: #f8f9fa; }
.ev-calendar td.ev-out .ev-daynum { color: #6c757d; }
.ev-calendar td.ev-today, .ev-calendar td.ev-out.ev-today { background: #f3f9ef; box-shadow: inset 0 0 0 2px var(--gic-green, #3b7d23); }
.ev-daynum { font-size: .85rem; font-weight: 600; margin-bottom: .15rem; }
.ev-today .ev-daynum { color: var(--gic-green-dark, #2d6119); }
.ev-chip {
  display: block; font-size: .75rem; line-height: 1.25; padding: .15rem .3rem; margin-bottom: .15rem; border-radius: .25rem;
  border-left: 3px solid currentColor; text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ev-chip:hover, .ev-chip:focus { text-decoration: underline; }
.ev-chip-time { font-weight: 600; margin-right: .15rem; }
.ev-today-list h3 { color: var(--gic-green-dark, #2d6119); }
.ev-agenda-item { color: inherit; padding: .35rem .25rem; border-radius: .35rem; }
.ev-agenda-item:hover, .ev-agenda-item:focus { background: #eef5ea; }
.ev-agenda-time { flex: 0 0 4.5rem; padding-top: .1rem; }
.ev-month-title { min-width: 10rem; text-align: center; }

/* Ticket */
.ev-ticket { max-width: 26rem; border-top: 6px solid var(--gic-green, #3b7d23); }
.ev-qr { width: min(18rem, 80vw); }
.ev-qr svg { width: 100%; height: auto; display: block; }
.ev-code { letter-spacing: .08em; word-break: break-all; }

/* Check-in */
.ev-camera { width: 100%; max-width: 22rem; border-radius: .5rem; background: #000; }

/* Visually hidden labels in table headers must not widen the page on phones */
.table-responsive { position: relative; }
.ev-description h1, .ev-description h2 { font-size: 1.35rem; margin-top: 1.25rem; }
.ev-description h3, .ev-description h4 { font-size: 1.1rem; margin-top: 1rem; }
.form-check-input:checked { background-color: var(--gic-green, #3b7d23); border-color: var(--gic-green, #3b7d23); }
.form-check-input:focus { border-color: #8fbf7d; box-shadow: 0 0 0 .25rem rgba(59, 125, 35, .25); }
