:root {
  --ats-primary: #6d28d9;
  --ats-accent: #a3e635;
  --ats-ink: #172033;
  --ats-muted: #657086;
  --ats-line: #e5e8ef;
  --ats-surface: #ffffff;
  --ats-soft: #f7f7fb;
  --ats-success: #087f5b;
  --ats-warning: #9a6700;
  --ats-danger: #b42318;
  --ats-radius: 18px;
  --ats-shadow: 0 12px 35px rgba(20, 30, 55, .08);
}

.ats-app, .ats-app * { box-sizing: border-box; }
.ats-app { color: var(--ats-ink); font-size: 16px; line-height: 1.55; margin: 24px auto; max-width: 1180px; }
.ats-wrap { max-width: 1180px; margin: 32px auto; padding: 0 18px; }
.ats-app h1, .ats-app h2, .ats-app h3, .ats-app h4 { color: var(--ats-ink); line-height: 1.15; margin-top: 0; }
.ats-app h1 { font-size: clamp(2rem, 5vw, 3.7rem); letter-spacing: -.04em; }
.ats-app h2 { font-size: clamp(1.45rem, 3vw, 2.15rem); letter-spacing: -.025em; }
.ats-app h3 { font-size: 1.15rem; }
.ats-app a { color: var(--ats-primary); }
.ats-app p { margin-top: 0; }
.ats-app button, .ats-app input, .ats-app select, .ats-app textarea { font: inherit; }

.ats-card { background: var(--ats-surface); border: 1px solid var(--ats-line); border-radius: var(--ats-radius); box-shadow: var(--ats-shadow); padding: clamp(18px, 3vw, 30px); margin-bottom: 20px; }
.ats-card--hero { background: linear-gradient(135deg, var(--ats-primary), #431aa3); color: #fff; overflow: hidden; position: relative; }
.ats-card--hero::after { background: var(--ats-accent); border-radius: 999px; content: ""; height: 190px; opacity: .23; position: absolute; right: -65px; top: -55px; width: 190px; }
.ats-card--hero h1, .ats-card--hero h2, .ats-card--hero p, .ats-card--hero a { color: #fff; position: relative; z-index: 1; }
.ats-card--hero p { font-size: 1.08rem; max-width: 720px; }
.ats-eyebrow { color: var(--ats-primary); display: block; font-size: .76rem; font-weight: 800; letter-spacing: .12em; margin-bottom: 8px; text-transform: uppercase; }
.ats-card--hero .ats-eyebrow { color: var(--ats-accent); }
.ats-section { margin: 38px 0; }
.ats-section__head, .ats-results-head, .ats-child__header, .ats-session-card__top, .ats-challenge > div:first-child { align-items: center; display: flex; gap: 16px; justify-content: space-between; }
.ats-section__head { margin-bottom: 16px; }
.ats-section__head h2 { margin-bottom: 0; }
.ats-actions, .ats-row-actions, .ats-admin-links, .ats-export-grid { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; }

.ats-button, .ats-small-button { align-items: center; background: var(--ats-primary); border: 1px solid var(--ats-primary); border-radius: 999px; color: #fff !important; cursor: pointer; display: inline-flex; font-weight: 750; justify-content: center; min-height: 48px; padding: 11px 20px; text-decoration: none !important; transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease; }
.ats-button:hover, .ats-small-button:hover { box-shadow: 0 8px 20px rgba(109, 40, 217, .22); opacity: .95; transform: translateY(-1px); }
.ats-button--ghost { background: transparent; border-color: currentColor; }
.ats-card:not(.ats-card--hero) .ats-button--ghost { color: var(--ats-primary) !important; }
.ats-small-button { min-height: 34px; padding: 6px 12px; font-size: .85rem; }
.ats-link-button { background: none; border: 0; color: var(--ats-primary); cursor: pointer; font-weight: 700; padding: 6px 0; text-decoration: underline; }
.ats-text-link { display: inline-block; font-weight: 700; margin-top: 15px; }

.ats-grid { display: grid; gap: 20px; }
.ats-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ats-session-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ats-stat-grid { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin: 20px 0; }
.ats-stat { background: var(--ats-soft); border: 1px solid var(--ats-line); border-radius: 15px; padding: 18px; }
.ats-stat strong { display: block; font-size: 1.8rem; line-height: 1; margin-bottom: 7px; }
.ats-stat span { color: var(--ats-muted); font-size: .88rem; font-weight: 650; }

.ats-form { display: grid; gap: 14px; }
.ats-form--grid, .ats-filters { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ats-form label, .ats-filters label, .ats-book-form label { color: var(--ats-ink); display: grid; font-size: .9rem; font-weight: 700; gap: 6px; }
.ats-app input:not([type="checkbox"]):not([type="radio"]), .ats-app select, .ats-app textarea { background: #fff; border: 1px solid #cfd5e2; border-radius: 11px; color: var(--ats-ink); min-height: 46px; padding: 10px 12px; width: 100%; }
.ats-app textarea { min-height: 100px; resize: vertical; }
.ats-app input:focus, .ats-app select:focus, .ats-app textarea:focus { border-color: var(--ats-primary); box-shadow: 0 0 0 3px rgba(109, 40, 217, .13); outline: 0; }
.ats-check { align-items: flex-start !important; display: flex !important; font-weight: 500 !important; gap: 9px !important; }
.ats-check input { flex: 0 0 auto; height: 20px; margin-top: 2px; width: 20px; }
.ats-help { color: var(--ats-muted); display: block; font-size: .8rem; font-weight: 400; }
.ats-sensitive-note { background: #fff7df; border-left: 4px solid #f0ad00; border-radius: 8px; font-size: .88rem; margin-bottom: 15px; padding: 12px; }

.ats-filters { align-items: end; grid-template-columns: 1.2fr 1.2fr 1fr .7fr; }
.ats-filters .ats-check { align-self: center; }
.ats-session-card { display: flex; flex-direction: column; margin-bottom: 0; }
.ats-session-card h2 { font-size: 1.35rem; margin-bottom: 6px; }
.ats-session-card--full { margin: 20px 0; }
.ats-provider { color: var(--ats-muted); font-weight: 650; }
.ats-pill, .ats-free, .ats-badge { border-radius: 999px; display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .04em; padding: 5px 9px; text-transform: uppercase; }
.ats-pill { background: rgba(109, 40, 217, .1); color: var(--ats-primary); }
.ats-free { background: var(--ats-accent); color: #1f3100; }
.ats-session-meta { display: grid; gap: 10px; grid-template-columns: 1fr 1fr; margin: 15px 0; }
.ats-session-meta div { display: grid; gap: 2px; }
.ats-session-meta strong { font-size: .75rem; text-transform: uppercase; }
.ats-session-meta span { color: var(--ats-muted); font-size: .9rem; }
.ats-capacity { margin: auto 0 15px; }
.ats-capacity__bar { background: #eceef4; border-radius: 999px; display: block; height: 8px; margin-bottom: 8px; overflow: hidden; }
.ats-capacity__bar i, .ats-progress i { background: linear-gradient(90deg, var(--ats-primary), #9f6bea); display: block; height: 100%; }
.ats-capacity strong { font-size: .85rem; }
.ats-book-form { align-items: end; display: grid; gap: 10px; grid-template-columns: 1fr auto; }
.ats-prose { border-top: 1px solid var(--ats-line); margin-top: 10px; padding-top: 18px; }

.ats-notice { border: 1px solid transparent; border-radius: 12px; margin: 12px 0 20px; padding: 13px 16px; }
.ats-notice--success { background: #e9fbf3; border-color: #a8e5c9; color: #065f46; }
.ats-notice--error { background: #fff0ef; border-color: #f1b4af; color: #8a1c13; }
.ats-notice--warning { background: #fff8e6; border-color: #eed28f; color: #805300; }
.ats-notice--info { background: #eef5ff; border-color: #bed4f5; color: #184d87; }
.ats-badge--confirmed, .ats-badge--published, .ats-badge--attended { background: #e6f8f1; color: var(--ats-success); }
.ats-badge--waiting_list, .ats-badge--draft, .ats-badge--late { background: #fff4d6; color: var(--ats-warning); }
.ats-badge--cancelled, .ats-badge--late_cancelled, .ats-badge--did_not_attend, .ats-badge--session_cancelled { background: #fff0ef; color: var(--ats-danger); }
.ats-badge--completed, .ats-badge--archived { background: #eef0f4; color: #556070; }

.ats-list { display: grid; gap: 12px; }
.ats-booking-row { align-items: center; display: flex; justify-content: space-between; margin: 0; }
.ats-booking-row h3 { margin-bottom: 5px; }
.ats-booking-row p { color: var(--ats-muted); margin-bottom: 0; }
.ats-child { scroll-margin-top: 30px; }
.ats-child__header { justify-content: flex-start; }
.ats-child__header .ats-points { margin-left: auto; text-align: right; }
.ats-avatar { align-items: center; background: rgba(109, 40, 217, .1); border-radius: 50%; display: inline-flex; font-size: 1.45rem; height: 48px; justify-content: center; width: 48px; }
.ats-points strong { display: block; font-size: 1.5rem; }
.ats-points span { color: var(--ats-muted); font-size: .76rem; text-transform: uppercase; }
.ats-profile-status { margin: 12px 0 18px; }
.ats-accordion-grid { display: grid; gap: 10px; }
.ats-details { border: 1px solid var(--ats-line); border-radius: 13px; margin-bottom: 8px; overflow: hidden; }
.ats-details > summary { align-items: center; cursor: pointer; display: flex; justify-content: space-between; list-style: none; padding: 14px 16px; }
.ats-details > summary::-webkit-details-marker { display: none; }
.ats-details > summary span { color: var(--ats-muted); font-size: .82rem; }
.ats-details[open] > summary { background: var(--ats-soft); border-bottom: 1px solid var(--ats-line); }
.ats-details > form, .ats-details > p, .ats-details > div:not(.ats-sensitive-note) { padding: 16px; }
.ats-details .ats-sensitive-note { margin: 16px 16px 0; }
.ats-child__lower { display: grid; gap: 20px; grid-template-columns: 1.3fr 1fr; margin-top: 22px; }
.ats-challenge { border: 1px solid var(--ats-line); border-radius: 11px; margin-bottom: 10px; padding: 12px; }
.ats-challenge span, .ats-challenge small { color: var(--ats-muted); }
.ats-progress { background: #eceef4; border-radius: 999px; height: 7px; margin: 8px 0; overflow: hidden; }
.ats-points-list, .ats-venue-list, .ats-challenge-admin, .ats-checklist { list-style: none; margin: 0; padding: 0; }
.ats-points-list li { border-bottom: 1px solid var(--ats-line); display: flex; gap: 10px; justify-content: space-between; padding: 9px 0; }
.ats-points-list strong { color: var(--ats-success); }
.ats-venue-list li, .ats-challenge-admin li { border-bottom: 1px solid var(--ats-line); display: grid; gap: 3px; padding: 12px 0; }
.ats-venue-list span, .ats-challenge-admin span, .ats-challenge-admin small { color: var(--ats-muted); }

.ats-table-wrap { overflow-x: auto; }
.ats-table { border-collapse: collapse; min-width: 720px; width: 100%; }
.ats-table th, .ats-table td { border-bottom: 1px solid var(--ats-line); padding: 11px 10px; text-align: left; vertical-align: top; }
.ats-table th { color: var(--ats-muted); font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; }
.ats-table small { color: var(--ats-muted); }
.ats-empty { box-shadow: none; text-align: center; }

.ats-register { padding: 0; overflow: hidden; }
.ats-register > .ats-notice { margin: 18px; }
.ats-register-row { align-items: center; border-bottom: 1px solid var(--ats-line); display: grid; gap: 18px; grid-template-columns: 1.2fr 1fr; padding: 16px 20px; }
.ats-register-person { display: grid; gap: 3px; }
.ats-register-person > span { color: var(--ats-muted); font-size: .85rem; }
.ats-register-controls { align-items: center; display: grid; gap: 8px; grid-template-columns: 1fr 1fr; }
.ats-register > .ats-button { margin: 18px; }
.ats-health-alert { background: #fff8e6; border-radius: 9px; margin-top: 8px; padding: 8px 10px; }
.ats-health-alert summary { cursor: pointer; font-size: .82rem; font-weight: 750; }
.ats-health-alert p { font-size: .85rem; margin: 8px 0; }

.ats-period-tabs { display: flex; gap: 7px; margin-top: 18px; }
.ats-period-tabs a { border: 1px solid rgba(255,255,255,.55); border-radius: 999px; padding: 7px 13px; text-decoration: none; }
.ats-period-tabs a.is-active { background: #fff; color: var(--ats-primary); }
.ats-leader-list { list-style: none; margin: 0; padding: 0; }
.ats-leader-list li { align-items: center; border-bottom: 1px solid var(--ats-line); display: grid; gap: 12px; grid-template-columns: 36px 48px 1fr auto; padding: 12px 0; }
.ats-rank { align-items: center; background: var(--ats-soft); border-radius: 50%; display: flex; font-weight: 800; height: 32px; justify-content: center; width: 32px; }
.ats-leader-score { font-weight: 800; }

.ats-admin { max-width: none; margin-right: 20px; }
.ats-admin .ats-card { box-shadow: 0 4px 18px rgba(20, 30, 55, .06); }
.ats-admin-links, .ats-export-grid { align-items: stretch; flex-direction: column; }
.ats-admin-links .button, .ats-export-grid .button { text-align: center; }
.ats-checklist li { margin: 10px 0; }

@media (max-width: 960px) {
  .ats-session-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ats-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 700px) {
  .ats-app { margin: 14px auto; }
  .ats-grid--2, .ats-session-grid, .ats-form--grid, .ats-filters, .ats-child__lower { grid-template-columns: 1fr; }
  .ats-section__head, .ats-booking-row { align-items: flex-start; flex-direction: column; }
  .ats-book-form { grid-template-columns: 1fr; }
  .ats-book-form .ats-button { width: 100%; }
  .ats-session-meta { grid-template-columns: 1fr; }
  .ats-register-row { align-items: stretch; grid-template-columns: 1fr; }
  .ats-register-controls { grid-template-columns: 1fr; }
  .ats-child__header { align-items: flex-start; }
  .ats-child__header .ats-points { margin-left: auto; }
  .ats-details > summary { align-items: flex-start; flex-direction: column; }
  .ats-card { border-radius: 14px; padding: 17px; }
  .ats-card--hero { padding: 24px 19px; }
}

.ats-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.ats-health-details{margin-top:.6rem;padding:.55rem .7rem;border:1px solid #dbe3ec;border-radius:.65rem;background:#f8fafc}

.ats-provider-profile { align-items: center; background: var(--ats-soft); border: 1px solid var(--ats-line); border-radius: 16px; display: grid; gap: 20px; grid-template-columns: minmax(100px, 160px) 1fr; margin-top: 24px; padding: 20px; }
.ats-provider-logo { height: auto; max-height: 120px; max-width: 150px; object-fit: contain; width: 100%; }
.ats-provider-links { display: flex; flex-wrap: wrap; gap: 8px 14px; }
.ats-partner-grid { display: grid; gap: 20px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ats-partner-card { display: grid; gap: 16px; }
.ats-partner-card__logo { align-items: center; background: var(--ats-soft); border-radius: 14px; display: flex; justify-content: center; min-height: 130px; padding: 18px; }
.ats-partner-card__logo img { max-height: 100px; object-fit: contain; width: auto; }
.ats-partner-card--full { grid-template-columns: minmax(160px, 240px) 1fr; }
.ats-completion-box { background: #fff8e6; border: 1px solid #eed28f; border-radius: 12px; margin: 12px 0 18px; padding: 12px 15px; }
.ats-completion-box ul { margin: 6px 0 0 20px; }
.ats-registration-child { border: 1px solid var(--ats-line); border-radius: 14px; margin: 0 0 16px; padding: 16px; }
.ats-registration-child legend { padding: 0 7px; }
.ats-registration-consents { display: grid; gap: 10px; margin-top: 12px; }
.ats-registration-form hr { border: 0; border-top: 1px solid var(--ats-line); margin: 10px 0; }

@media(max-width:780px){
  .ats-partner-grid{grid-template-columns:1fr}
  .ats-partner-card--full,.ats-provider-profile{grid-template-columns:1fr}
}
