.ttp-program{--ttp-accent:#146c43;--ttp-highlight:#c00000;--ttp-border:#dfe5e2;--ttp-muted:#66736d;--ttp-bg:#fff;--ttp-soft:#f3f7f5;font:inherit;color:inherit;margin:1.5rem 0}.ttp-program *{box-sizing:border-box}.ttp-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin:0 0 1rem}.ttp-heading h2{margin:0;font-size:clamp(1.45rem,2vw,2rem);line-height:1.2}.ttp-count{white-space:nowrap;color:var(--ttp-muted);font-size:.92rem}.ttp-count strong{color:var(--ttp-accent);font-size:1.1em}.ttp-count--standalone{display:block;text-align:right;margin-bottom:.75rem}.ttp-filters{display:grid;grid-template-columns:minmax(190px,1.35fr) repeat(3,minmax(145px,1fr)) auto;gap:.75rem;align-items:end;padding:1rem;margin-bottom:1rem;background:var(--ttp-soft);border:1px solid var(--ttp-border);border-radius:12px}.ttp-filter label{display:block;margin:0 0 .35rem;font-size:.78rem;font-weight:700;letter-spacing:.02em;color:#3f4d47}.ttp-filter input,.ttp-filter select{width:100%;height:42px;margin:0;padding:.55rem .7rem;border:1px solid #bdc9c3;border-radius:8px;background:#fff;color:inherit;font:inherit;line-height:1.2}.ttp-filter input:focus,.ttp-filter select:focus{outline:3px solid color-mix(in srgb,var(--ttp-accent) 22%,transparent);border-color:var(--ttp-accent)}.ttp-reset{height:42px;padding:.55rem .9rem;border:1px solid var(--ttp-accent);border-radius:8px;background:transparent;color:var(--ttp-accent);font:inherit;font-weight:700;cursor:pointer}.ttp-reset:hover,.ttp-reset:focus{background:var(--ttp-accent);color:#fff}.ttp-table-wrap{overflow-x:auto;border:1px solid var(--ttp-border);border-radius:12px;background:var(--ttp-bg);box-shadow:0 8px 28px rgba(23,52,39,.06)}.ttp-table{width:100%;min-width:1020px;margin:0;border:0;border-collapse:separate;border-spacing:0;background:transparent;font-size:.94rem}.ttp-table th,.ttp-table td{padding:.85rem .75rem;border:0;border-bottom:1px solid var(--ttp-border);text-align:left;vertical-align:middle}.ttp-table th{position:sticky;top:0;z-index:1;background:var(--ttp-accent);color:#fff;font-size:.8rem;font-weight:750;letter-spacing:.02em;white-space:nowrap}.ttp-table th:first-child{border-top-left-radius:11px}.ttp-table th:last-child{border-top-right-radius:11px}.ttp-table tbody tr:last-child td{border-bottom:0}.ttp-table tbody tr:hover{background:color-mix(in srgb,var(--ttp-accent) 5%,#fff)}.ttp-table td:nth-child(1),.ttp-table td:nth-child(2),.ttp-table td:nth-child(3){white-space:nowrap}.ttp-table td:nth-child(3){text-align:center}.ttp-event-title{font-weight:700;min-width:210px}.ttp-row--highlight td:not(:last-child){color:var(--ttp-highlight)}.ttp-row--finished{color:#5f6a65}.ttp-row[hidden]{display:none}.ttp-status{display:inline-flex;align-items:center;justify-content:center;min-width:108px;padding:.32rem .58rem;border-radius:999px;font-size:.76rem;font-weight:750;line-height:1.25;white-space:nowrap}.ttp-status--upcoming{background:#e8f3ee;color:#145f40}.ttp-status--in-progress{background:#fff2c9;color:#745000}.ttp-status--finished{background:#ecefed;color:#53605a}.ttp-empty,.ttp-no-results{padding:1.2rem;border:1px dashed var(--ttp-border);border-radius:10px;background:var(--ttp-soft);text-align:center;color:var(--ttp-muted)}
@media(max-width:980px){.ttp-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.ttp-reset{width:100%}}
@media(max-width:720px){.ttp-heading{align-items:flex-start;flex-direction:column}.ttp-count--standalone{text-align:left}.ttp-filters{grid-template-columns:1fr}.ttp-table-wrap{overflow:visible;border:0;background:transparent;box-shadow:none}.ttp-table{display:block;min-width:0}.ttp-table thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ttp-table tbody{display:grid;gap:.9rem}.ttp-table tr{display:block;padding:.45rem 1rem;background:#fff;border:1px solid var(--ttp-border);border-left:5px solid var(--ttp-accent);border-radius:11px;box-shadow:0 7px 22px rgba(23,52,39,.06)}.ttp-table .ttp-row--highlight{border-left-color:var(--ttp-highlight)}.ttp-table td{display:grid;grid-template-columns:minmax(90px,.42fr) minmax(0,1fr);gap:.75rem;padding:.52rem 0;border-bottom:1px solid var(--ttp-border);text-align:left!important;white-space:normal!important}.ttp-table td:last-child{border-bottom:0}.ttp-table td::before{content:attr(data-label);font-size:.76rem;font-weight:750;color:var(--ttp-muted);text-transform:none}.ttp-event-title{min-width:0}.ttp-status{justify-self:start}.ttp-table tbody tr:hover{background:#fff}}

/* Larger typography for the public program view. */
.ttp-program {
	font-size: 18px;
	line-height: 1.55;
}
.ttp-heading h2 {
	font-size: clamp(1.9rem, 3vw, 2.65rem);
}
.ttp-count {
	font-size: 1.05rem;
}
.ttp-filter label {
	font-size: .95rem;
}
.ttp-filter input,
.ttp-filter select,
.ttp-reset {
	font-size: 1rem;
}
.ttp-table {
	font-size: 1.08rem;
}
.ttp-table th {
	font-size: .95rem;
}
.ttp-table th,
.ttp-table td {
	padding: 1rem .9rem;
}
.ttp-event-title {
	font-size: 1.08em;
}
.ttp-status {
	font-size: .9rem;
	min-width: 122px;
	padding: .42rem .7rem;
}
.ttp-empty,
.ttp-no-results {
	font-size: 1.05rem;
}

@media (max-width: 720px) {
	.ttp-program {
		font-size: 17px;
	}
	.ttp-heading h2 {
		font-size: clamp(1.7rem, 8vw, 2.2rem);
	}
	.ttp-table td::before {
		font-size: .9rem;
	}
	.ttp-table td {
		grid-template-columns: minmax(105px, .45fr) minmax(0, 1fr);
		gap: .85rem;
		padding: .65rem 0;
	}
}
