:root { font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: #172033; background: #f5f7fb; font-size: 16px; }
* { box-sizing: border-box; }
body { margin: 0; }
.checkattend-public-shell { width: min(1080px, calc(100% - 32px)); margin: 48px auto; }
.checkattend-public-heading { text-align: center; margin-bottom: 28px; }
.checkattend-public-heading > span { color: #2775e2; font-weight: 700; }
.checkattend-public-brand { align-items: center; color: #12213b; display: inline-flex; font-size: 23px; font-weight: 800; gap: 10px; letter-spacing: -.04em; }
.checkattend-public-brand > span:last-child > span { color: #2878ed; }
.checkattend-public-brand-mark { align-items: center; background: linear-gradient(145deg, #1d65ce, #42bfee); border-radius: 10px 10px 10px 2px; box-shadow: 0 6px 14px rgba(40, 120, 237, .25); color: #fff; display: inline-flex; font-size: 20px; font-weight: 800; height: 36px; justify-content: center; letter-spacing: 0; transform: rotate(-8deg); width: 36px; }
.checkattend-public-organization-logo{margin-bottom:18px}.checkattend-public-organization-logo img{display:block;height:auto;margin-inline:auto;max-height:84px;max-width:min(280px,100%);object-fit:contain}.checkattend-public-organization-name{color:#263751;font-size:16px;font-weight:750;margin-bottom:14px}
.checkattend-public-heading h1 { font-size: 2rem; margin: 8px 0; }
.checkattend-public-heading p { color: #647089; }
[data-public-registration] { display: grid; gap: 0 24px; grid-template-columns: 190px minmax(0, 1fr); align-items: start; }
.checkattend-public-steps { display: grid; gap: 4px; grid-column: 1; grid-row: 1; padding-top: 6px; margin: 0; }
.checkattend-public-steps > span { align-items: center; background: transparent; border-radius: 8px; color: #596981; display: flex; gap: 10px; padding: 10px 11px; text-align: left; }
.checkattend-public-steps > span > span:last-child { display: grid; gap: 2px; min-width: 0; }
.checkattend-public-steps strong { font-size: .78rem; }
.checkattend-public-steps small { color: #8a96a8; font-size: .66rem; font-weight: 500; }
.checkattend-step-icon { align-items: center; background: #e8edf5; border-radius: 8px; display: flex; flex: 0 0 34px; height: 34px; justify-content: center; width: 34px; }
.checkattend-step-icon svg { fill: none; height: 19px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 19px; }
.checkattend-public-steps > span.active { background: #e9f2ff; color: #1768c7; }
.checkattend-public-steps > span.active small { color: #4779b4; }
.checkattend-public-steps > span.active .checkattend-step-icon { background: #fff; color: #2878ed; }
.checkattend-public-steps > span.complete .checkattend-step-icon { background: #e7f7ef; color: #258258; }
.checkattend-public-card { display: none; grid-column: 2; grid-row: 1; background: #fff; border: 1px solid #e2e7ef; border-radius: 14px; padding: 28px; box-shadow: 0 8px 30px rgba(30, 48, 80, .07); }
.checkattend-public-card.active { display: block; }
.checkattend-public-card h2 { margin: 0 0 6px; }
.checkattend-public-card > p, .checkattend-public-card-title p { margin: 0 0 24px; color: #647089; }
.checkattend-public-card-title { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
.checkattend-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.checkattend-public-grid label, .checkattend-verification-card form label { color: #34425a; display: flex; flex-direction: column; gap: 7px; font-size: .82rem; font-weight: 600; }
.checkattend-public-grid .wide { grid-column: 1 / -1; }
input:not([type="hidden"]), select, textarea { appearance: none; background-color: #fbfcff; border: 1px solid #d8e0eb; border-radius: 9px; box-shadow: 0 1px 2px rgba(24,39,65,.025) inset; color: #24334c; font: inherit; font-size: .88rem; line-height: 1.4; min-height: 44px; outline: none; padding: 10px 12px; transition: background-color .15s ease,border-color .15s ease,box-shadow .15s ease; width: 100%; }
input:not([type="hidden"]):hover, select:hover, textarea:hover { border-color: #b9c7d9; }
input:not([type="hidden"]):focus, select:focus, textarea:focus { background-color: #fff; border-color: #4d91ef; box-shadow: 0 0 0 3px rgba(40,120,237,.13); }
input::placeholder, textarea::placeholder { color: #98a3b5; opacity: 1; }
input[readonly] { background-color: #f1f5fa; color: #5d6b81; cursor: default; }
select { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%2368758b' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.6' d='m1 1.5 5 5 5-5'/%3E%3C/svg%3E"); background-position: right 13px center; background-repeat: no-repeat; padding-right: 38px; }
textarea { min-height: 96px; resize: vertical; }
button { border: 0; border-radius: 8px; background: #2775e2; color: #fff; padding: 11px 18px; font: inherit; font-weight: 700; cursor: pointer; }
button.secondary { background: #edf3fc; color: #215fae; }
button.remove { position: absolute; right: 18px; top: 14px; background: transparent; color: #b63746; padding: 6px; }
.checkattend-repeat-card { position: relative; border: 1px solid #e0e6ef; border-radius: 10px; padding: 20px; margin: 0 0 18px; }
.checkattend-repeat-card legend { font-weight: 700; padding: 0 7px; }
.checkattend-add-row-bottom { margin-top: 2px; }
.checkattend-public-actions { display: flex; justify-content: space-between; grid-column: 2; grid-row: 2; margin-top: 18px; }
.checkattend-public-actions [data-next], .checkattend-public-actions [data-submit] { margin-left: auto; }
.checkattend-honeypot { position: absolute !important; left: -10000px !important; }
.checkattend-public-muted { font-size: .9rem; }
.checkattend-review { display: grid; gap: 14px; margin-top: 22px; }
.checkattend-review-section { background: #f8faff; border: 1px solid #e1e7f0; border-radius: 12px; overflow: hidden; }
.checkattend-review-section header { align-items: flex-start; display: flex; gap: 18px; justify-content: space-between; padding: 16px 18px 12px; }
.checkattend-review-section h3 { color: #263751; font-size: 1rem; margin: 0 0 3px; }
.checkattend-review-section header p { color: #6d7890; font-size: .8rem; margin: 0; }
.checkattend-review-edit { background: transparent; color: #2878ed; font-size: .8rem; padding: 5px 7px; }
.checkattend-review-details { background: #fff; border-top: 1px solid #e8edf4; padding: 5px 18px; }
.checkattend-review-details>div { display: grid; gap: 14px; grid-template-columns: minmax(130px,.8fr) minmax(0,1.8fr); padding: 10px 0; }
.checkattend-review-details>div+div { border-top: 1px solid #edf1f6; }
.checkattend-review-details span { color: #6b768b; font-size: .78rem; }
.checkattend-review-details strong { color: #2c3950; font-size: .86rem; overflow-wrap: anywhere; text-align: left; white-space: pre-line; }
.checkattend-waiver-copy { background: #f8faff; border: 1px solid #e1e7f0; border-radius: 12px; color: #34425a; font-size: .9rem; line-height: 1.65; max-height: 360px; overflow-y: auto; padding: 20px; }
.checkattend-waiver-consent { align-items: flex-start; background: #eef5ff; border: 1px solid #cbdcf3; border-radius: 10px; color: #263751; cursor: pointer; display: flex; font-size: .9rem; font-weight: 650; gap: 11px; margin-top: 18px; padding: 15px 16px; }
.checkattend-waiver-consent input[type="checkbox"] { appearance: auto; flex: 0 0 18px; height: 18px; margin: 1px 0 0; min-height: 18px; padding: 0; width: 18px; }
.checkattend-verification-shell { width: min(560px, calc(100% - 32px)); }
.checkattend-verification-card { text-align: center; }
.checkattend-verification-card form { display: grid; gap: 16px; margin-top: 22px; text-align: left; }
.checkattend-verification-card form button { justify-self: start; }
.checkattend-verification-icon { align-items: center; background: #e9f2ff; border-radius: 50%; color: #2878ed; display: inline-flex; height: 52px; justify-content: center; margin-bottom: 18px; width: 52px; }
.checkattend-verification-icon svg { fill: none; height: 25px; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; width: 25px; }
.checkattend-verification-message { background: #f1f6fd; border: 1px solid #cbdcf3; border-radius: 8px; color: #365779; margin-top: 16px; padding: 11px 13px; text-align: left; }
.checkattend-code-input { font-size: 1.35rem!important; font-weight: 700!important; letter-spacing: .3em; max-width: 220px; text-align: center; }
.checkattend-start-over { color: #215fae; display: inline-block; font-size: .85rem; margin-top: 20px; }
.checkattend-verified-email { color: #258258; font-size: .72rem; font-weight: 600; }
@media (max-width: 720px) {
	.checkattend-public-shell { margin: 20px auto; }
	[data-public-registration] { display: block; }
	.checkattend-public-steps { display: flex; gap: 6px; margin-bottom: 14px; overflow-x: auto; padding: 0 0 5px; }
	.checkattend-public-steps > span { flex: 0 0 auto; padding: 7px; }
	.checkattend-public-steps > span > span:last-child { display: none; }
	.checkattend-step-icon { height: 36px; width: 36px; }
	.checkattend-public-grid { grid-template-columns: 1fr; }
	.checkattend-public-grid .wide { grid-column: auto; }
	.checkattend-public-card { padding: 20px; }
	.checkattend-public-card-title { display: block; }
	.checkattend-public-card-title button { margin-bottom: 18px; }
	.checkattend-review-details>div { gap: 4px; grid-template-columns: 1fr; }
}

/* Mobile registration hardening, including iPhone safe areas and focus behavior. */
.checkattend-public-shell,.checkattend-public-card,.checkattend-public-grid>* { min-width: 0; }
.checkattend-public-card img,.checkattend-public-card svg { max-width: 100%; }
@media (max-width: 720px) {
	body { overflow-x: hidden; }
	.checkattend-public-shell { width: auto; margin: max(16px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left)); }
	.checkattend-public-heading { margin-bottom: 18px; }
	.checkattend-public-heading h1 { font-size: 1.55rem; overflow-wrap: anywhere; }
	.checkattend-public-heading p { line-height: 1.5; }
	.checkattend-public-steps { -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; scrollbar-width: none; }
	.checkattend-public-steps::-webkit-scrollbar { display: none; }
	.checkattend-public-card { padding: 18px 16px; }
	.checkattend-public-card h2 { font-size: 1.3rem; }
	.checkattend-repeat-card { padding: 17px 14px; }
	input:not([type="hidden"]), select, textarea { font-size: 16px; }
	button { min-height: 44px; }
	button.remove { min-height: 36px; min-width: 36px; }
	.checkattend-public-actions { align-items: stretch; gap: 10px; }
	.checkattend-public-actions button { flex: 1; }
	.checkattend-waiver-copy { max-height: 45dvh; padding: 16px; }
}
@media (max-width: 390px) {
	.checkattend-public-brand { font-size: 20px; }
	.checkattend-public-heading h1 { font-size: 1.4rem; }
	.checkattend-public-actions { flex-wrap: wrap; }
	.checkattend-public-actions button { flex-basis: 100%; }
}
