/* Participant Registration — module styles (Bootstrap 5 on top). Colours follow the EMS brand (css/ems.css --ems-brand #3e2723). */
:root {
  --reg-primary: #3e2723;
  --reg-primary-dark: #2a1b18;
  --reg-accent: #c9a45c;
  --reg-bg: #f6f4f2;
  --bs-primary: #3e2723;
  --bs-primary-rgb: 62, 39, 35;
  --bs-link-color: #3e2723;
  --bs-link-color-rgb: 62, 39, 35;
  --bs-link-hover-color: #2a1b18;
  --bs-link-hover-color-rgb: 42, 27, 24;
}
body { background: var(--reg-bg); }
.btn-primary { --bs-btn-bg: var(--reg-primary); --bs-btn-border-color: var(--reg-primary); --bs-btn-hover-bg: #33201d; --bs-btn-hover-border-color: #33201d; --bs-btn-active-bg: #33201d; --bs-btn-active-border-color: #33201d; }
.btn-outline-primary { --bs-btn-color: var(--reg-primary); --bs-btn-border-color: var(--reg-primary); --bs-btn-hover-bg: var(--reg-primary); --bs-btn-hover-border-color: var(--reg-primary); --bs-btn-active-bg: var(--reg-primary); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: #9c7f78; box-shadow: 0 0 0 .25rem rgba(62,39,35,.15); }
.form-check-input:checked { background-color: var(--reg-primary); border-color: var(--reg-primary); }
.text-bg-primary { background-color: var(--reg-primary) !important; }
.page-link { color: var(--reg-primary); }
.page-item.active .page-link { background-color: var(--reg-primary); border-color: var(--reg-primary); }

/* hero */
.reg-hero { background: linear-gradient(135deg, #2a1b18 0%, #3e2723 60%, #5b403c 100%); color: #fff; border-bottom: 4px solid var(--reg-accent); }
.reg-hero-inner { display: flex; align-items: center; gap: 1.25rem; }
.reg-hero-logo { width: 96px; height: 96px; flex: none; object-fit: contain; }
.reg-nav-logo { width: 32px; height: 32px; object-fit: contain; }
.reg-auth-logo { width: 84px; height: 84px; object-fit: contain; margin-bottom: .5rem; }
.reg-hero-org { text-transform: uppercase; letter-spacing: .12em; font-size: .78rem; opacity: .85; }
.reg-hero-title { font-size: clamp(1.4rem, 3.4vw, 2.2rem); font-weight: 700; margin: .25rem 0 0; }
.reg-hero-sub { font-size: 1.05rem; opacity: .9; }
.reg-hero-meta { margin-top: .75rem; display: flex; flex-wrap: wrap; gap: .5rem 1.5rem; font-size: .92rem; }
.reg-hero-meta span { display: inline-flex; align-items: center; gap: .4rem; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 999px; padding: .3rem .85rem; }
.reg-hero-due { font-weight: 600; color: #ffe0a8; border-color: rgba(201,164,92,.7) !important; background: rgba(201,164,92,.18) !important; }
.reg-admin { display: flex; flex-direction: column; min-height: 100vh; }
.reg-admin main { flex: 1; }
.reg-footer { color: #6c757d; border-top: 1px solid #e6e0de; margin-top: 2rem; text-align: center; }

/* cards & sections */
.reg-card { border: 0; box-shadow: 0 1px 3px rgba(42,27,24,.08), 0 6px 20px rgba(42,27,24,.05); border-radius: .75rem; }
.reg-section-title { font-size: 1.1rem; font-weight: 600; display: flex; align-items: center; gap: .6rem; margin-bottom: 1rem; }
.reg-step { display: inline-flex; width: 1.7rem; height: 1.7rem; border-radius: 50%; background: var(--reg-primary); color: #fff; align-items: center; justify-content: center; font-size: .85rem; font-weight: 700; flex: none; }
fieldset.reg-cat[hidden] { display: none; }
.reg-field .form-label { font-weight: 500; margin-bottom: .25rem; }
.reg-gu { font-weight: 400; color: #6c757d; font-size: .9em; }
.reg-narrow { max-width: 14rem; }
.reg-choices { display: flex; flex-wrap: wrap; gap: .25rem 1rem; }
.reg-areas .form-check { margin-bottom: .25rem; }
.reg-wc { white-space: nowrap; margin-left: auto; }
.reg-wc.over { color: #dc3545 !important; font-weight: 600; }
.reg-field-textarea .d-flex { flex-wrap: wrap; gap: 0 .75rem; }
.reg-photo-preview { max-height: 140px; border-radius: .5rem; border: 1px solid #dee2e6; }
.reg-regno { font-size: 2rem; font-weight: 800; letter-spacing: .08em; color: var(--reg-primary); }

/* type cards (section 1) */
.reg-type-card { display: flex; flex-direction: column; align-items: flex-start; gap: .25rem; width: 100%; padding: 1rem 1.1rem; border: 2px solid #dee2e6; border-radius: .75rem; cursor: pointer; background: #fff; transition: border-color .15s, box-shadow .15s; }
.reg-type-card i { font-size: 1.6rem; color: var(--reg-primary); }
.reg-type-name { font-weight: 700; font-size: 1.05rem; }
.reg-type-desc { font-size: .85rem; color: #6c757d; }
.btn-check:checked + .reg-type-card { border-color: var(--reg-primary); box-shadow: 0 0 0 .2rem rgba(62,39,35,.15); background: #f6efed; }
.btn-check:focus-visible + .reg-type-card { outline: 2px solid var(--reg-accent); outline-offset: 2px; }

/* OTP modal */
.reg-otp-row { padding: .8rem; border: 1px solid #e3e6ea; border-radius: .6rem; margin-bottom: .75rem; }
.reg-otp-row.verified { border-color: #198754; background: #f2fbf6; }
.reg-otp-row.verified .input-group, .reg-otp-row.verified [data-otp-resend] { display: none; }
.reg-otp-input { letter-spacing: .3em; font-weight: 600; }
.reg-otp-success-icon { font-size: 3.5rem; color: #198754; line-height: 1; }
[data-otp-resend].disabled { pointer-events: none; opacity: .5; }

/* stats */
.reg-stat { background: #fff; border-radius: .75rem; padding: 1.1rem 1.2rem; box-shadow: 0 1px 3px rgba(42,27,24,.08); border-left: 4px solid var(--reg-primary); }
.reg-stat-n { font-size: 2rem; font-weight: 800; line-height: 1.1; color: var(--reg-primary); }
.reg-stat-l { font-size: .85rem; color: #6c757d; text-transform: uppercase; letter-spacing: .05em; }
.reg-stat-sm { padding: .7rem 1rem; }
.reg-stat-sm .reg-stat-n { font-size: 1.4rem; }

/* admin */
.reg-pills { display: flex; flex-wrap: wrap; gap: .4rem; }
.reg-pill { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem; border-radius: 999px; border: 1px solid #d9d2cf; background: #fff; color: #3e2723; font-size: .85rem; text-decoration: none; }
.reg-pill span { background: #f1ece9; border-radius: 999px; padding: 0 .45rem; font-weight: 600; font-size: .78rem; }
.reg-pill:hover { border-color: #3e2723; }
.reg-pill.active { background: #3e2723; color: #fff; border-color: #3e2723; }
.reg-pill.active span { background: rgba(255,255,255,.2); }
.reg-pill-success.active { background: #1e7d4f; border-color: #1e7d4f; }
.reg-pill-danger.active { background: #ba1a1a; border-color: #ba1a1a; }
.reg-pill-warning.active { background: #b97309; border-color: #b97309; }
.reg-pill-info.active { background: #1565c0; border-color: #1565c0; }
.dropdown-item .small { white-space: normal; }
.reg-navbar {
  background: var(--reg-primary);
  --bs-navbar-color: rgba(255,255,255,.85);
  --bs-navbar-hover-color: #fff;
  --bs-navbar-active-color: #fff;
  --bs-navbar-brand-color: #fff;
  --bs-navbar-brand-hover-color: #fff;
  --bs-navbar-toggler-border-color: rgba(255,255,255,.4);
}
.reg-navbar .navbar-text { color: rgba(255,255,255,.85); }
.reg-navbar .nav-link { border-radius: .4rem; padding: .35rem .7rem; }
.reg-navbar .nav-link:hover { background: rgba(255,255,255,.1); }
.reg-navbar .nav-link.active { color: #fff; font-weight: 600; background: rgba(255,255,255,.18); }
.reg-navbar .navbar-toggler-icon { filter: invert(1); }
.reg-table tbody tr[data-href] { cursor: pointer; }
.reg-dl dt { font-weight: 500; color: #6c757d; font-size: .9rem; }
.reg-dl dd { margin-bottom: .5rem; }
.reg-photo-lg { max-width: 100%; max-height: 260px; border-radius: .6rem; border: 1px solid #dee2e6; }

/* auth */
.reg-auth { background: linear-gradient(135deg, #2a1b18, #5b403c); min-height: 100vh; }
.reg-auth-wrap { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1rem; gap: 1rem; }
.reg-auth-foot { color: rgba(255,255,255,.7); text-align: center; }
.reg-auth-card { background: #fff; border-radius: 1rem; padding: 1.8rem; width: 100%; max-width: 400px; box-shadow: 0 10px 40px rgba(0,0,0,.25); }

@media (max-width: 575.98px) {
  .reg-hero-logo { width: 64px; height: 64px; }
  .reg-hero-meta { flex-direction: column; gap: .25rem; }
  .reg-narrow { max-width: 100%; }
  .reg-choices .form-check-inline { margin-right: .5rem; }
}

/* about the seminar (public info block) */
.reg-about { border-top: 4px solid var(--reg-accent); }
.reg-about-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.reg-about-kicker { text-transform: uppercase; letter-spacing: .12em; font-size: .75rem; color: #8a6d2f; font-weight: 600; }
.reg-about-title { font-size: 1.35rem; font-weight: 700; margin: .15rem 0 .25rem; color: var(--reg-primary); }
.reg-about-tagline { font-style: italic; color: #6c757d; margin: 0; }
.reg-about-toggle { flex: none; white-space: nowrap; }
.reg-about-h { font-size: .95rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--reg-primary); display: flex; align-items: center; gap: .4rem; margin-bottom: .5rem; }
.reg-about-themes { columns: 2; column-gap: 2rem; padding-left: 1.25rem; margin: 0; font-size: .95rem; }
.reg-about-themes li { break-inside: avoid; margin-bottom: .3rem; }
.reg-about-side { background: #faf7f5; border: 1px solid #ece5e2; border-radius: .6rem; padding: 1rem 1.1rem; height: 100%; }
.reg-about-dates { display: grid; grid-template-columns: auto 1fr; gap: .3rem 1rem; margin: 0; }
.reg-about-dates dt { font-weight: 500; color: #6c757d; }
.reg-about-dates dd { margin: 0; font-weight: 600; white-space: nowrap; }
.reg-about-contacts { list-style: none; padding: 0; margin: 0; }
.reg-about-contacts li { display: flex; justify-content: space-between; gap: 1rem; padding: .25rem 0; border-bottom: 1px dashed #e6e0de; }
.reg-about-contacts li:last-child { border-bottom: 0; }
.reg-about-contacts a { font-weight: 600; text-decoration: none; }
@media (max-width: 575.98px) { .reg-about-themes { columns: 1; } }
/* always expanded on large screens; collapsible (button) below lg */
@media (min-width: 992px) { .reg-about-body.collapse:not(.show) { display: block; } }
