.tgt-cohorts {
	margin-top: 3rem;
}

.tgt-cohort-list {
	display: grid;
	gap: 1rem;
}

.tgt-cohort-card {
	border: 1px solid #d8dee9;
	border-radius: .75rem;
	padding: 1.25rem;
	background: #fff;
}

.tgt-cohort-card__header {
	display: flex;
	align-items: start;
	justify-content: space-between;
	gap: 1rem;
}

.tgt-cohort-card__header h3 {
	margin: 0;
}

.tgt-cohort-card__details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	gap: 1rem;
	margin: 1.25rem 0;
}

.tgt-cohort-card__details dt {
	font-weight: 700;
}

.tgt-cohort-card__details dd {
	margin: .25rem 0 0;
}

.tgt-status {
	display: inline-block;
	border-radius: 999px;
	padding: .25rem .65rem;
	font-size: .875rem;
	font-weight: 700;
	white-space: nowrap;
	background: #e5e7eb;
	color: #374151;
}

.tgt-status--open {
	background: #dcfce7;
	color: #166534;
}

.tgt-status--full,
.tgt-status--closed {
	background: #fee2e2;
	color: #991b1b;
}

.tgt-button {
	display: inline-block;
	border-radius: .5rem;
	padding: .7rem 1rem;
	background: #0f4c81;
	color: #fff;
	font-weight: 700;
	text-decoration: none;
}

.tgt-button:hover,
.tgt-button:focus {
	background: #083760;
	color: #fff;
}

.tgt-application-form,
.tgt-application-result {
	max-width: 52rem;
	margin: 4rem auto;
	padding: clamp(1.5rem, 4vw, 3rem);
	border: 1px solid #d8e2ef;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 20px 48px rgba(15, 43, 78, .11);
}

.tgt-application-form > h1,
.tgt-application-result > h1 {
	margin: 0 0 .4rem;
	color: #092f5b;
	font-family: Prompt, Sarabun, sans-serif;
	font-size: clamp(1.8rem, 4vw, 2.35rem);
	line-height: 1.25;
}

.tgt-application-form > h1 + p,
.tgt-application-result > p {
	color: #62718a;
	margin: 0 0 1.5rem;
}

.tgt-application-summary {
	margin: 1.5rem 0 1.75rem;
	padding: 1.2rem 1.3rem;
	border: 1px solid #c9ddf2;
	border-left: 5px solid #0f4c81;
	border-radius: .65rem;
	background: linear-gradient(135deg, #eff7ff, #f8fbff);
	color: #193756;
}

.tgt-application-summary strong {
	display: block;
	margin-bottom: .2rem;
	color: #092f5b;
	font-size: 1.08rem;
}

.tgt-public-form {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.1rem 1.25rem;
}

.tgt-public-form > p {
	margin: 0;
}

.tgt-public-form label {
	display: block;
	color: #203957;
	font-size: .94rem;
	font-weight: 700;
}

.tgt-public-form input:not([type="checkbox"]),
.tgt-public-form select {
	display: block;
	width: 100%;
	min-height: 46px;
	margin-top: .45rem;
	padding: .65rem .75rem;
	border: 1px solid #afbdd0;
	border-radius: .5rem;
	background: #fff;
	color: #172b45;
	font: inherit;
	transition: border-color .15s ease, box-shadow .15s ease;
}

.tgt-public-form input:focus,
.tgt-public-form select:focus {
	border-color: #0f4c81;
	outline: 0;
	box-shadow: 0 0 0 3px rgba(15, 76, 129, .15);
}

.tgt-public-form input[type="file"] {
	padding: .55rem;
	background: #f8fafc;
}

.tgt-public-form input[type="file"]::file-selector-button {
	margin-right: .75rem;
	padding: .45rem .7rem;
	border: 0;
	border-radius: .35rem;
	background: #dceafb;
	color: #083763;
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}

.tgt-public-form .tgt-consent,
.tgt-public-form > p:last-child {
	grid-column: 1 / -1;
}

.tgt-public-form .tgt-consent {
	padding: 1rem;
	border-radius: .55rem;
	background: #f6f8fb;
}

.tgt-public-form .tgt-consent label {
	display: block;
	font-weight: 500;
}

.tgt-public-form .tgt-consent input {
	display: inline;
	width: 1rem;
	height: 1rem;
	min-height: 0;
	margin-top: 0;
	margin-right: .45rem;
	vertical-align: middle;
}

.tgt-public-form small {
	display: block;
	margin-top: .45rem;
	color: #667892;
}

.tgt-public-form .tgt-button {
	min-width: 12rem;
	padding: .85rem 1.35rem;
	border: 0;
	box-shadow: 0 8px 17px rgba(15, 76, 129, .2);
	font: inherit;
	cursor: pointer;
}

.tgt-form-error {
	margin: 1rem 0;
	padding: .9rem 1rem;
	border: 1px solid #fecaca;
	border-radius: .55rem;
	color: #991b1b;
	background: #fff1f2;
}

.tgt-status-lookup > p { color: #52667f; }
.tgt-status-result dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem 1.5rem; margin: 1rem 0 0; }
.tgt-status-result dl div { padding-top: .7rem; border-top: 1px solid #d8e3ef; }
.tgt-status-result dt { color: #64748b; font-size: .82rem; }
.tgt-status-result dd { margin: .15rem 0 0; color: #092f5b; font-weight: 700; }

@media (max-width: 640px) {
	.tgt-application-form,
	.tgt-application-result { margin: 2rem auto; border-radius: .75rem; }
	.tgt-public-form { grid-template-columns: 1fr; }
	.tgt-public-form .tgt-consent,
	.tgt-public-form > p:last-child { grid-column: auto; }
	.tgt-public-form .tgt-button { width: 100%; }
	.tgt-status-result dl { grid-template-columns: 1fr; }
}

/* Group registration form */
.tgt-group-registration { max-width: 980px; }
.tgt-group-registration form { display: grid; gap: 1.25rem; }
.tgt-group-box { min-width: 0; margin: 0; padding: 1.35rem; border: 1px solid #c9d9eb; border-radius: .75rem; background: #fff; }
.tgt-group-box legend { padding: 0 .55rem; color: #083763; font-size: 1.1rem; font-weight: 800; }
.tgt-group-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem 1.25rem; }
.tgt-group-grid label, .tgt-group-payment { display: block; color: #203957; font-size: .94rem; font-weight: 700; }
.tgt-group-grid input, .tgt-group-grid select, .tgt-group-payment select { display: block; box-sizing: border-box; width: 100%; min-height: 46px; margin-top: .45rem; padding: .65rem .75rem; border: 1px solid #afbdd0; border-radius: .5rem; background: #fff; color: #172b45; font: inherit; }
.tgt-group-grid input:focus, .tgt-group-grid select:focus, .tgt-group-payment select:focus { border-color: #0f4c81; outline: 0; box-shadow: 0 0 0 3px rgba(15,76,129,.15); }
.tgt-group-grid b, .tgt-group-registration b { color: #bd1d2d; }
.tgt-registrant { margin: 0 0 1rem; padding: 1rem; border: 1px solid #d8e3f0; border-radius: .65rem; background: #f8fbff; }
.tgt-registrant__head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; color: #083763; }
.tgt-remove-registrant, .tgt-add-registrant { padding: .55rem .85rem; border: 1px solid #8daaca; border-radius: .45rem; color: #083763; background: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.tgt-add-registrant { border-color: #0f4c81; background: #eaf3ff; }
.tgt-group-payment { max-width: 420px; }
.tgt-group-registration .tgt-consent { display: block; padding: 1rem; border-radius: .55rem; background: #f6f8fb; color: #203957; font-weight: 500; }
.tgt-group-registration .tgt-consent input { width: 1rem; height: 1rem; margin-right: .45rem; vertical-align: middle; }
.tgt-group-registration .tgt-button { justify-self: start; min-width: 13rem; padding: .85rem 1.35rem; border: 0; border-radius: .45rem; box-shadow: 0 8px 17px rgba(15,76,129,.2); font: inherit; cursor: pointer; }
@media (max-width: 640px) { .tgt-group-box { padding: 1rem; } .tgt-group-grid { grid-template-columns: 1fr; } .tgt-group-registration .tgt-button { width: 100%; } }
