
/* Structural styles only: visual identity (colors, fonts) should come from the active theme. */
.wp-schedule-shortcode { width:100%; }
.wp-schedule-shortcode--full,
.alignfull .wp-schedule-shortcode,
.alignwide .wp-schedule-shortcode,
.wp-block-shortcode.alignfull .wp-schedule-shortcode,
.wp-block-shortcode.alignwide .wp-schedule-shortcode {
	box-sizing:border-box;
	width:100vw;
	max-width:none;
	margin-left:calc(50% - 50vw);
	margin-right:calc(50% - 50vw);
	padding-left:max(clamp(12px, 2vw, 28px), env(safe-area-inset-left));
	padding-right:max(clamp(12px, 2vw, 28px), env(safe-area-inset-right));
}

@supports (width: 100dvw) {
	.wp-schedule-shortcode--full,
	.alignfull .wp-schedule-shortcode,
	.alignwide .wp-schedule-shortcode,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode {
		width:100dvw;
		margin-left:calc(50% - 50dvw);
		margin-right:calc(50% - 50dvw);
	}
}

.wp-filterbar { display:flex; flex-wrap:wrap; gap:10px 16px; align-items:flex-end; margin:10px 0 14px; }
.wp-filter-field { display:flex; flex-direction:column; min-width:220px; gap:4px; }
.wp-filter-field input[type="text"] { min-height:2.25em; padding:.375em .625em; }
.wp-filter-actions { margin-left:auto; display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.wp-print-icon { margin-right:6px; }

.wp-tabs { margin-top:10px; }
.wp-tab-buttons { list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:6px; align-items:flex-end; }
.wp-tab-buttons li {
	cursor:pointer;
	padding:.45em .8em;
	line-height:1.2;
	border-left:1px solid #000;
	border-top:1px solid #000;
	border-right:1px solid #000;
	border-bottom:0;
	border-radius:8px 8px 0 0;
	background:#e6e6e6;
	position:relative;
	z-index:1;
}
.wp-schedule-shortcode .wp-tab-buttons li { color:var(--wp-schedule-tab-color, inherit) !important; }
.wp-tab-buttons li:hover { background:#dcdcdc; }
.wp-tab-buttons li.active {
	font-weight:700;
	background:#fff;
	margin-bottom:-1px;
	z-index:2;
}
.wp-tab-buttons li:focus-visible { outline:1px solid currentColor; outline-offset:2px; }
.wp-tab-content {
	border-top:1px solid #000;
	padding-top:10px;
}
.wp-tab-content[hidden] { display:none !important; }

.wp-day-title { margin:4px 0 10px; }
.wp-schedule-shortcode .wp-day-title { color:var(--wp-schedule-day-heading-color, inherit) !important; }
.wp-schedule { overflow-x:auto; }
.wp-table { width:100%; border-collapse:collapse; }
.wp-table th, .wp-table td { padding:.5em .75em; text-align:left; vertical-align:top; }
.wp-schedule-shortcode .wp-table th { color:var(--wp-schedule-table-header-color, inherit) !important; }
.wp-schedule-shortcode .wp-table tbody tr.wp-row-location td { background:#fff !important; }
.wp-schedule-shortcode .wp-table tbody tr.wp-row-gray td { background:#e5e7eb !important; }
.wp-schedule-shortcode .wp-table tbody tr.wp-row-white td { background:#fff !important; }
.wp-schedule-shortcode .wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(1) { color:var(--wp-schedule-time-color, inherit) !important; }
.wp-schedule-shortcode .wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(2) { color:var(--wp-schedule-description-color, inherit) !important; }
.wp-schedule-shortcode .wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(3) { color:var(--wp-schedule-description-color, inherit) !important; }
.wp-schedule-shortcode .wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(4) { color:var(--wp-schedule-description-color, inherit) !important; }
.wp-schedule-shortcode .wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(5) { color:var(--wp-schedule-coach-color, inherit) !important; }
.wp-table .col-time { width:12rem; white-space:nowrap; }
.wp-table .col-discipline,
.wp-table .col-group,
.wp-table .col-coach { width:12rem; }
.wp-table .col-desc,
.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(4) { white-space:normal; }
.wp-table .col-coach,
.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(5),
.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td:nth-child(5) .wp-filter-link { white-space:nowrap; }
.wp-filter-link { color:inherit; text-decoration:underline; text-underline-offset:.12em; }
.wp-filter-link:hover,
.wp-filter-link:focus-visible { text-decoration-thickness:2px; }
.wp-row-day td, .wp-row-location td { font-weight:700; }
.wp-schedule-shortcode .wp-row-day td { color:var(--wp-schedule-day-row-color, inherit) !important; }
.wp-schedule-shortcode .wp-row-location td { color:var(--wp-schedule-location-row-color, inherit) !important; }

.wp-no-results { margin:10px 0; }

@media (max-width: 768px) {
	.wp-filter-field { min-width:180px; flex:1 1 180px; }
	.wp-filter-actions { margin-left:0; width:100%; }
	.wp-table .col-time,
	.wp-table .col-discipline,
	.wp-table .col-group,
	.wp-table .col-coach { width:auto; }
}

@media (max-width: 600px) {
	.wp-filter-field { min-width:100%; }
	.wp-filter-field input[type="text"] { width:100%; box-sizing:border-box; }
	.wp-tab-buttons li { min-height:44px; display:flex; align-items:center; }
	.wp-schedule { overflow:visible; }
	.wp-table,
	.wp-table tbody { display:block; width:100%; }
	.wp-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;
	}
	.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) {
		display:block;
		margin:0 0 12px;
		border:1px solid #cbd5e1;
		border-radius:4px;
		overflow:hidden;
	}
	.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td {
		display:grid;
		grid-template-columns:minmax(6.5em, 34%) minmax(0, 1fr);
		gap:10px;
		padding:.6em .75em;
		white-space:normal;
		word-break:normal;
		overflow-wrap:anywhere;
	}
	.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td::before {
		content:attr(data-label);
		font-weight:700;
	}
	.wp-table tbody tr:not(.wp-row-day):not(.wp-row-location) td + td {
		border-top:1px solid rgba(100, 116, 139, .2);
	}
	.wp-table .wp-row-day,
	.wp-table .wp-row-location { display:block; }
	.wp-table .wp-row-day td,
	.wp-table .wp-row-location td {
		display:block;
		width:auto;
	}
}

@media (min-width: 769px) {
	.wp-schedule-shortcode--full .wp-filterbar,
	.wp-schedule-shortcode--full .wp-tabs,
	.alignfull .wp-schedule-shortcode .wp-filterbar,
	.alignfull .wp-schedule-shortcode .wp-tabs,
	.alignwide .wp-schedule-shortcode .wp-filterbar,
	.alignwide .wp-schedule-shortcode .wp-tabs,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-filterbar,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-tabs,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-filterbar,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-tabs {
		width:min(100%, 88rem);
		margin-left:auto;
		margin-right:auto;
	}

	.wp-schedule-shortcode--full .wp-schedule,
	.alignfull .wp-schedule-shortcode .wp-schedule,
	.alignwide .wp-schedule-shortcode .wp-schedule,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-schedule,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-schedule {
		display:flex;
		justify-content:center;
	}

	.wp-schedule-shortcode--full .wp-table,
	.alignfull .wp-schedule-shortcode .wp-table,
	.alignwide .wp-schedule-shortcode .wp-table,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table {
		width:auto;
		min-width:72rem;
		max-width:100%;
		margin-left:auto;
		margin-right:auto;
	}

	.wp-schedule-shortcode--full .wp-table .col-discipline,
	.wp-schedule-shortcode--full .wp-table .col-group,
	.wp-schedule-shortcode--full .wp-table .col-coach,
	.wp-schedule-shortcode--full .wp-table td:nth-child(2),
	.wp-schedule-shortcode--full .wp-table td:nth-child(4),
	.wp-schedule-shortcode--full .wp-table td:nth-child(5),
	.alignfull .wp-schedule-shortcode .wp-table .col-discipline,
	.alignfull .wp-schedule-shortcode .wp-table .col-group,
	.alignfull .wp-schedule-shortcode .wp-table .col-coach,
	.alignfull .wp-schedule-shortcode .wp-table td:nth-child(2),
	.alignfull .wp-schedule-shortcode .wp-table td:nth-child(4),
	.alignfull .wp-schedule-shortcode .wp-table td:nth-child(5),
	.alignwide .wp-schedule-shortcode .wp-table .col-discipline,
	.alignwide .wp-schedule-shortcode .wp-table .col-group,
	.alignwide .wp-schedule-shortcode .wp-table .col-coach,
	.alignwide .wp-schedule-shortcode .wp-table td:nth-child(2),
	.alignwide .wp-schedule-shortcode .wp-table td:nth-child(4),
	.alignwide .wp-schedule-shortcode .wp-table td:nth-child(5),
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table .col-discipline,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table .col-group,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table .col-coach,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table td:nth-child(2),
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table td:nth-child(4),
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table td:nth-child(5),
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table .col-discipline,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table .col-group,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table .col-coach,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table td:nth-child(2),
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table td:nth-child(4),
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table td:nth-child(5) {
		white-space:nowrap;
	}

	.wp-schedule-shortcode--full .wp-table .col-desc,
	.wp-schedule-shortcode--full .wp-table td:nth-child(3),
	.alignfull .wp-schedule-shortcode .wp-table .col-desc,
	.alignfull .wp-schedule-shortcode .wp-table td:nth-child(3),
	.alignwide .wp-schedule-shortcode .wp-table .col-desc,
	.alignwide .wp-schedule-shortcode .wp-table td:nth-child(3),
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table .col-desc,
	.wp-block-shortcode.alignfull .wp-schedule-shortcode .wp-table td:nth-child(3),
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table .col-desc,
	.wp-block-shortcode.alignwide .wp-schedule-shortcode .wp-table td:nth-child(3) {
		white-space:normal;
	}
}

/* Schedule info shortcode styles */
.wp-schedule-info {
    margin:15px 0;
    padding:18px 20px;
    border:1px solid #d7dee8;
    border-radius:12px;
    background:linear-gradient(180deg, #ffffff 0%, #f5f7fb 100%);
    box-shadow:0 2px 8px rgba(15, 23, 42, 0.05);
    display:flex;
    flex-direction:column;
    gap:8px;
}
.wp-schedule-info h1,
.wp-schedule-info h2,
.wp-schedule-info h3 {
    margin:0;
    line-height:1.15;
    font-weight:800;
    color:#0f172a;
    letter-spacing:-0.03em;
}
.wp-schedule-info h1 {
    font-size:2.1em;
    color:#0f172a;
}
.wp-schedule-info h2 {
    font-size:1.5em;
    color:#1e293b;
}
.wp-schedule-info h3 {
    font-size:1.15em;
    color:#334155;
}
