.ashgym-menu-parent::after {
	content: "\25B8";
	float: right;
	margin-left: .4rem;
	transition: transform .15s ease;
}
.ashgym-menu-parent.ashgym-menu-open::after { transform: rotate(90deg); }
.ashgym-schedule-filters, .ashgym-schedule-navigation, .ashgym-schedule-legend { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem 1rem; margin:1rem 0; }
.ashgym-schedule-filters label { display:flex; flex-direction:column; gap:.25rem; }
.ashgym-schedule-navigation strong { margin:0 auto; }
.ashgym-schedule-scroll { overflow-x:auto; border:1px solid var(--colorborder,rgba(127,127,127,.25)); border-radius:.4rem; background:var(--colorbackbody,#fff); }
.ashgym-schedule-head, .ashgym-schedule-body { min-width:980px; display:grid; grid-template-columns:64px repeat(7,minmax(125px,1fr)); }
.ashgym-schedule-head { position:sticky; top:0; z-index:4; background:var(--colorbacklineimpair2,rgba(127,127,127,.12)); border-bottom:1px solid var(--colorborder,rgba(127,127,127,.25)); }
.ashgym-schedule-head > div { padding:.55rem .35rem; text-align:center; border-left:1px solid var(--colorborder,rgba(127,127,127,.2)); }
.ashgym-schedule-head small { display:block; margin-top:.15rem; opacity:.7; }
.ashgym-schedule-axis, .ashgym-schedule-day { position:relative; height:var(--ashgym-schedule-height); }
.ashgym-schedule-axis { background:var(--colorbacklineimpair2,rgba(127,127,127,.08)); }
.ashgym-schedule-axis span { position:absolute; right:.4rem; transform:translateY(-.65em); font-size:.78rem; opacity:.72; }
.ashgym-schedule-day { border-left:1px solid var(--colorborder,rgba(127,127,127,.2)); }
.ashgym-schedule-line { position:absolute; left:0; right:0; border-top:1px solid var(--colorborder,rgba(127,127,127,.15)); }
.ashgym-schedule-slot { position:absolute; left:4px; width:calc(100% - 8px); z-index:2; box-sizing:border-box; overflow:hidden; padding:.25rem .35rem; border-left:4px solid; border-radius:.25rem; color:#222; font-size:.8rem; }
.ashgym-schedule-slot strong,.ashgym-schedule-slot span,.ashgym-schedule-slot small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ashgym-schedule-slot small { margin-top:.15rem; }
.ashgym-schedule-slot-specific { border-style:dashed; border-width:2px 2px 2px 5px; z-index:3; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.ashgym-schedule-slot .ashgym-schedule-type { display:inline-block; padding:.08rem .3rem; border-radius:.25rem; background:rgba(255,255,255,.7); font-weight:700; }
.ashgym-schedule-slot-absence { background:rgba(220,53,69,.22);border-color:rgb(176,42,55);color:inherit;z-index:4; }
.ashgym-schedule-slot-replacement { background:rgba(25,135,84,.22);border-color:rgb(20,108,67);color:inherit;z-index:5;box-shadow:0 1px 4px rgba(0,0,0,.2); }
.ashgym-schedule-slot-session { background:rgb(220,236,255);border-color:rgb(36,99,168);color:rgb(20,45,76);z-index:6;box-shadow:0 2px 6px rgba(0,0,0,.22);text-decoration:none; }
.ashgym-schedule-slot-session:hover { filter:brightness(.96);text-decoration:none; }
.ashgym-schedule-slot-session-0 { background:rgb(229,231,235);border-color:rgb(107,114,128);color:rgb(41,45,51); }
.ashgym-schedule-slot-session-2 { background:rgba(220,53,69,.25);border-color:rgb(176,42,55);color:inherit;text-decoration:line-through; }
.ashgym-schedule-slot-session-3 { background:rgb(232,232,232);border-color:rgb(115,115,115);color:rgb(85,85,85);opacity:.78; }
.ashgym-session-cancel-confirm { max-width:680px;margin:1rem auto;text-align:left; }
.ashgym-session-cancel-confirm textarea { display:block;margin-top:.45rem; }
.ashgym-business-legend { display:flex;flex-wrap:wrap;align-items:center;gap:.55rem 1rem;margin:.8rem 0;padding:.7rem;border:1px solid var(--colorborder,rgba(127,127,127,.25));border-radius:.4rem; }
.ashgym-business-legend span { display:inline-flex;align-items:center;gap:.35rem;font-size:.88rem; }
.ashgym-business-legend i { width:1rem;height:.75rem;border-left:4px solid;border-radius:.2rem;box-sizing:border-box; }
.ashgym-legend-availability { background:hsl(205 75% 88%);border-color:hsl(205 55% 45%); }
.ashgym-legend-planned { background:rgb(220,236,255);border-color:rgb(36,99,168); }
.ashgym-legend-draft { background:rgb(229,231,235);border-color:rgb(107,114,128); }
.ashgym-legend-cancelled,.ashgym-legend-absence { background:rgba(220,53,69,.25);border-color:rgb(176,42,55); }
.ashgym-legend-replacement { background:rgba(25,135,84,.22);border-color:rgb(20,108,67); }
.ashgym-legend-completed { background:rgb(232,232,232);border-color:rgb(115,115,115);opacity:.78; }
.ashgym-schedule-day-clickable { cursor:crosshair; }
.ashgym-quick-session { position:fixed;inset:0;z-index:10020;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:1rem; }
.ashgym-quick-session[hidden] { display:none; }
.ashgym-quick-session-dialog { position:relative;width:min(680px,100%);max-height:90vh;overflow:auto;background:var(--colorbackbody,rgb(255,255,255)); }
.ashgym-quick-session-close { position:absolute;right:.5rem;top:.35rem;border:0;background:transparent;color:inherit;font-size:1.8rem;cursor:pointer; }
.ashgym-series-weekdays { display:flex;flex-wrap:wrap;gap:.5rem 1rem; }
.ashgym-series-weekdays label { white-space:nowrap; }
.ashgym-date-item { display:flex; align-items:center; gap:.5rem; margin-bottom:.4rem; }
.ashgym-replacement-response { display:flex; flex-wrap:wrap; gap:.35rem; align-items:center; }
.ashgym-schedule-legend span { display:inline-flex; align-items:center; gap:.35rem; }
.ashgym-schedule-legend i { width:.8rem; height:.8rem; border-radius:50%; }
@media(max-width:700px){.ashgym-schedule-navigation strong{order:-1;width:100%;text-align:center}.ashgym-schedule-filters label{width:100%}.ashgym-schedule-filters select{width:100%}}
.ashgym-dashboard-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
	gap: 1rem;
}

.ashgym-card {
	color: inherit;
	background: var(--colorbackbody, transparent);
	border: 1px solid var(--colorborder, rgba(127, 127, 127, .25));
	border-radius: .4rem;
	padding: 1rem;
}

.ashgym-setup-section { margin: 1rem 0 1.5rem; }
.ashgym-setup-heading { display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.7rem; }
.ashgym-setup-heading h2 { margin:0 0 .2rem;font-size:1.25rem; }
.ashgym-setup-heading p { margin:0;max-width:70rem;opacity:.72; }
.ashgym-setup-form { border:1px solid var(--colorborder,rgba(127,127,127,.25));border-radius:.55rem;overflow:hidden;background:var(--colorbackbody,#fff); }
.ashgym-setup-form .div-table-responsive { margin:0; }
.ashgym-setup-form table { margin:0;border:0; }
.ashgym-setup-form .center { padding:.9rem; }
.ashgym-setup-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.8rem; }
.ashgym-setup-card { display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;min-height:8rem;padding:1rem;border:1px solid var(--colorborder,rgba(127,127,127,.25));border-radius:.55rem;background:var(--colorbackbody,#fff);box-sizing:border-box; }
.ashgym-setup-card:hover { border-color:var(--colorbackhmenu1,currentColor);box-shadow:0 2px 8px rgba(0,0,0,.08); }
.ashgym-setup-card-icon { display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.5rem;background:var(--colorbacklineimpair2,rgba(127,127,127,.1));font-size:1.25rem; }
.ashgym-setup-card-icon img { max-width:1.4rem;max-height:1.4rem; }
.ashgym-setup-card-body { display:flex;flex-direction:column;min-width:0; }
.ashgym-setup-card h3 { margin:0 0 .35rem;font-size:1.05rem; }
.ashgym-setup-card p { flex:1;margin:0 0 .8rem;opacity:.75;line-height:1.4; }
.ashgym-setup-card-action { align-self:flex-start;margin:0; }
.ashgym-setup-maintenance { padding-top:.25rem;border-top:1px solid var(--colorborder,rgba(127,127,127,.25)); }

.ashgym-member-banner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	gap: 1rem;
	align-items: center;
	margin: .5rem 0 1rem;
	padding: 1rem;
	border-bottom: 1px solid var(--colorborder, rgba(127, 127, 127, .25));
}
.ashgym-member-avatar { font-size: 2.5rem; }
.ashgym-member-summary h2 { margin: 0 0 .25rem; }
.ashgym-member-status { text-align: right; }
.ashgym-context-nav { display:flex;flex-wrap:wrap;gap:.45rem;margin:.6rem 0 1rem;padding:.65rem;border:1px solid var(--colorborder,rgba(127,127,127,.25));border-radius:.4rem;background:var(--colorbacklineimpair2,rgba(127,127,127,.06)); }
.ashgym-context-link { display:inline-flex;align-items:center;min-height:2rem;padding:.25rem .65rem;border:1px solid var(--colorborder,rgba(127,127,127,.3));border-radius:1rem;background:var(--colorbackbody,#fff);text-decoration:none;font-weight:600; }
.ashgym-context-link:hover { text-decoration:underline; }
.ashgym-kpi-selected { outline:2px solid var(--colorbackhmenu1);outline-offset:2px; }
.ashgym-expiry-alerts { display:grid;gap:.5rem;margin:.7rem 0 1rem; }
.ashgym-expiry-alert { display:grid;grid-template-columns:minmax(8rem,auto) 1fr auto;gap:.5rem 1rem;align-items:center;padding:.65rem .8rem;border:1px solid var(--colorborder);border-left-width:5px;border-radius:.35rem;background:var(--colorbacklineimpair2); }
.ashgym-expiry-alert-overdue { border-left-color:var(--colornegative); }
.ashgym-expiry-alert-today,.ashgym-expiry-alert-critical { border-left-color:var(--colorwarning); }
.ashgym-expiry-alert-warning { border-left-color:var(--colorbackhmenu1); }
.ashgym-expiry-alert-notice { border-left-color:var(--colorinfomessage); }
@media (max-width:700px) { .ashgym-expiry-alert { grid-template-columns:1fr;gap:.2rem; } }
@media (max-width: 650px) {
	.ashgym-member-banner { grid-template-columns: auto 1fr; }
	.ashgym-member-status { grid-column: 1 / -1; text-align: left; }
}

.ashgym-stats-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem 1.2rem;
	align-items: end;
	margin: 1rem 0;
	padding: 1rem;
	border: 1px solid var(--colorborder, rgba(127, 127, 127, .25));
	border-radius: .4rem;
}
.ashgym-filter-action { padding-bottom: .05rem; }
.ashgym-member-pagination { margin: 1rem 0; }
.ashgym-kpi-grid, .ashgym-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
	gap: 1rem;
	margin: 1rem 0;
}
.ashgym-kpi, .ashgym-stat-card {
	border: 1px solid var(--colorborder, rgba(127, 127, 127, .25));
	border-radius: .4rem;
	padding: 1rem;
	background: var(--colorbackbody, transparent);
}
.ashgym-kpi-value { font-size: 1.8rem; font-weight: 700; }
.ashgym-stat-card h3 { margin-top: 0; }
.ashgym-bar-row {
	display: grid;
	grid-template-columns: minmax(5rem, 8rem) minmax(6rem, 1fr) auto;
	gap: .6rem;
	align-items: center;
	margin: .55rem 0;
}
.ashgym-bar-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ashgym-bar-track { height: .7rem; background: var(--colorbacklineimpair2, rgba(127, 127, 127, .16)); border-radius: 1rem; overflow: hidden; }
.ashgym-bar-track span { display: block; height: 100%; background: var(--butactionbg, currentColor); border-radius: 1rem; }
.ashgym-stat-footer { margin-top: .9rem; padding-top: .7rem; border-top: 1px solid var(--colorborder, rgba(127, 127, 127, .25)); font-size: .92em; }
.ashgym-assessment-evolution { margin: 1rem 0 1.5rem; padding: 1rem; border: 1px solid var(--colorborder, rgba(127,127,127,.25)); border-radius: .35rem; }
.ashgym-assessment-evolution h3 { margin-top: 0; }
.ashgym-line-chart { width: 100%; min-height: 250px; margin: 1rem 0 .4rem; }
.ashgym-line-chart svg { width: 100%; height: 280px; overflow: visible; }
.ashgym-chart-axis { stroke: var(--colorborder, currentColor); stroke-width: 1; }
.ashgym-chart-line { fill: none; stroke: var(--butactionbg, currentColor); stroke-width: 3; vector-effect: non-scaling-stroke; }
.ashgym-chart-point { fill: var(--butactionbg, currentColor); stroke: var(--colorbackbody, white); stroke-width: 2; vector-effect: non-scaling-stroke; }
.ashgym-chart-text { fill: currentColor; font-size: 12px; }
.ashgym-chart-text-end { text-anchor: end; }
.ashgym-photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 1rem; margin-top: 1rem; }
.ashgym-photo-card { border: 1px solid var(--colorborder, rgba(127,127,127,.25)); border-radius: .35rem; padding: .7rem; }
.ashgym-photo-card img, .ashgym-photo-placeholder { width: 100%; height: 220px; object-fit: cover; display: block; margin-bottom: .6rem; background: var(--colorbacklineimpair2, rgba(127,127,127,.12)); }
.ashgym-photo-placeholder { display: grid; place-items: center; }
.ashgym-photo-full { max-width: 100%; max-height: 75vh; object-fit: contain; }
.ashgym-gallery-open { appearance: none; border: 0; padding: 0; width: 100%; background: transparent; cursor: zoom-in; text-align: left; }
.ashgym-photo-compare { margin: 1rem 0 1.5rem; padding: 1rem; border: 1px solid var(--colorborder, rgba(127,127,127,.25)); border-radius: .4rem; }
.ashgym-photo-compare-form { display: flex; flex-wrap: wrap; align-items: end; gap: 1rem; }
.ashgym-photo-compare-form label { flex: 1 1 280px; }
.ashgym-photo-compare-form select { display: block; width: 100%; margin-top: .3rem; }
.ashgym-photo-comparison { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin-top: 1rem; }
.ashgym-photo-comparison figure { margin: 0; text-align: center; }
.ashgym-photo-comparison img { width: 100%; height: min(60vh,650px); object-fit: contain; background: #111; }
.ashgym-photo-comparison figcaption { font-weight: 600; margin-bottom: .4rem; }
.ashgym-photo-pagination { margin-top: 1rem; text-align: center; }
.ashgym-photo-lightbox { position: fixed; inset: 0; z-index: 10000; background: rgba(0,0,0,.92); display: grid; grid-template-columns: 64px minmax(0,1fr) 64px; align-items: center; padding: 1rem; }
.ashgym-photo-lightbox[hidden] { display: none; }
.ashgym-photo-lightbox figure { margin: 0; text-align: center; color: #fff; }
.ashgym-photo-lightbox img { max-width: 100%; max-height: 82vh; object-fit: contain; }
.ashgym-photo-lightbox button { border: 0; background: rgba(255,255,255,.15); color: #fff; font-size: 2.5rem; cursor: pointer; border-radius: .3rem; }
.ashgym-gallery-close { position: absolute; right: 1rem; top: 1rem; width: 48px; height: 48px; }
@media (max-width: 700px) { .ashgym-photo-comparison { grid-template-columns: 1fr; } .ashgym-photo-lightbox { grid-template-columns: 44px minmax(0,1fr) 44px; padding: .4rem; } }
@media (max-width: 700px) {
	.tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; white-space: nowrap; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
	.tabs .tab { flex: 0 0 auto; }
	.ashgym-stats-filters { align-items: stretch; padding: .7rem; }
	.ashgym-stats-filters > div { flex: 1 1 100%; }
	.ashgym-stats-filters input, .ashgym-stats-filters select { box-sizing: border-box; width: 100%; max-width: 100%; }
	.ashgym-filter-action { display: flex; gap: .5rem; }
	.ashgym-filter-action .button { flex: 1 1 0; text-align: center; }
	.ashgym-kpi-grid, .ashgym-stats-grid { grid-template-columns: 1fr; }
	.ashgym-setup-heading { align-items:flex-start; }
	.ashgym-setup-grid { grid-template-columns:1fr; }
	.ashgym-setup-card { min-height:0;padding:.8rem; }
	.ashgym-setup-card-action { width:100%;box-sizing:border-box;text-align:center; }
}
