.visitor-analytics-dashboard{display:grid;gap:18px;margin-bottom:20px}.visitor-analytics-dashboard[hidden]{display:none!important}.analytics-heading,.analytics-block{padding:18px;border:1px solid var(--line);border-radius:14px;background:#fff}.analytics-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;background:linear-gradient(135deg,#fff 0%,#f5f7ff 100%)}.analytics-heading h3,.analytics-block h3,.analytics-block h4{margin:0}.analytics-heading p:last-child{max-width:560px;margin:0;color:var(--muted);font-size:13px;line-height:1.5}.analytics-filter-grid{position:sticky;top:0;z-index:7;display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 8px 22px rgba(20,30,70,.07);backdrop-filter:blur(8px)}.analytics-filter-grid label{display:grid;gap:5px;color:var(--muted);font-size:11px;font-weight:800}.analytics-filter-grid select{width:100%;min-width:0;min-height:40px}.analytics-filter-grid button{align-self:end;min-height:40px}.analytics-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analytics-kpi,.analytics-comparison-grid article{display:grid;gap:6px;min-height:118px;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 8px 22px rgba(20,30,70,.05)}.analytics-kpi.primary{border-color:#bac3ff;background:linear-gradient(145deg,#202778,#333da1);color:#fff}.analytics-kpi span,.analytics-kpi small,.analytics-comparison-grid span,.analytics-comparison-grid small{color:var(--muted);font-size:12px}.analytics-kpi.primary span,.analytics-kpi.primary small{color:#dfe3ff}.analytics-kpi strong,.analytics-comparison-grid strong{font-size:24px;line-height:1.15}.analytics-comparison-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.analytics-comparison-grid article{min-height:105px}.analytics-comparison-grid b{font-size:13px}.analytics-comparison-grid .up{color:#16864b}.analytics-comparison-grid .down{color:#c3202f}.analytics-comparison-grid .flat{color:var(--muted)}.analytics-two-column,.analytics-three-column,.analytics-chart-grid{display:grid;gap:16px;align-items:start}.analytics-two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.analytics-chart-grid article,.analytics-three-column article{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbfcff}.analytics-chart-grid h4,.analytics-three-column h4{margin:0 0 12px;font-size:14px}.analytics-nested>div{min-width:0}.analytics-inline-select{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;font-weight:700}.analytics-inline-select select{min-height:36px}.analytics-chart{display:grid;gap:8px;min-height:60px;max-height:440px;overflow:auto;padding:4px 2px}.analytics-bar-row{display:grid;grid-template-columns:minmax(110px,165px) minmax(80px,1fr) minmax(72px,auto);align-items:center;gap:9px;min-height:28px;font-size:12px}.analytics-bar-row>span,.analytics-bar-row>button{overflow:hidden;margin:0;padding:0;border:0;background:none;color:var(--ink);text-align:left;text-overflow:ellipsis;white-space:nowrap}.analytics-click-chart .analytics-bar-row>button,.analytics-member-link{color:var(--primary);font-weight:800;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;cursor:pointer}.analytics-click-chart .analytics-bar-row>button:hover,.analytics-member-link:hover{text-decoration-color:currentColor}.analytics-bar-track{height:13px;overflow:hidden;border-radius:999px;background:#edf0f7}.analytics-bar-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#202778,#6673df)}.analytics-bar-row strong{text-align:right;font-size:11px}.analytics-timeline .analytics-bar-row{grid-template-columns:84px minmax(70px,1fr) 42px}.analytics-mini-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:16px 0}.analytics-mini-kpis .analytics-kpi{min-height:94px;padding:13px}.analytics-mini-kpis .analytics-kpi strong{font-size:20px}.analytics-empty{padding:20px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center}.analytics-block>.panel-title{margin-bottom:14px}.analytics-block .report-table{max-height:470px;overflow:auto}.analytics-block table{width:100%}.analytics-member-link{border:0;background:none;padding:0;text-align:left}.report-controls .segmented{flex-wrap:wrap}.report-export-actions{flex-wrap:wrap}
@media(max-width:1180px){.analytics-filter-grid{grid-template-columns:repeat(3,minmax(140px,1fr))}.analytics-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-mini-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.analytics-three-column{grid-template-columns:1fr}}
@media(max-width:820px){.analytics-heading{align-items:flex-start;flex-direction:column}.analytics-filter-grid{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-kpi-grid,.analytics-comparison-grid,.analytics-two-column,.analytics-chart-grid{grid-template-columns:1fr 1fr}.analytics-bar-row{grid-template-columns:90px minmax(60px,1fr) auto}}
@media(max-width:560px){.analytics-filter-grid,.analytics-kpi-grid,.analytics-comparison-grid,.analytics-two-column,.analytics-chart-grid,.analytics-mini-kpis{grid-template-columns:1fr}.analytics-kpi{min-height:96px}.analytics-bar-row{grid-template-columns:92px minmax(50px,1fr) auto}.analytics-block,.analytics-heading{padding:14px}}

/* Compact half-hour private calendar; events span their complete booked duration. */
.trainer-calendar-grid{grid-auto-rows:minmax(42px,auto)}
.trainer-calendar-grid>.trainer-time-head,.trainer-calendar-grid>.trainer-head{grid-row:1}
.trainer-calendar-event{position:relative;z-index:2;height:100%;min-height:0;overflow:hidden;border-radius:7px;box-shadow:0 2px 7px rgba(7,27,65,.18)}
.trainer-calendar-event.booked.unpaid{box-shadow:inset 4px 0 #8f101a,0 2px 7px rgba(7,27,65,.18)}
.trainer-calendar-event.selected{outline:3px solid #f3b51b;outline-offset:-3px}
.private-calendar-saved-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 13px;border:1px solid #b8c8e8;border-radius:10px;background:#f3f7ff;color:#253958;font-size:13px;font-weight:750}
.trainer-block-presets{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:8px;border:1px solid #d7dfeb;border-radius:11px;background:#f7f9fc}.trainer-block-presets button{min-height:40px;padding:8px;border:1px solid #c8d2e2;border-radius:8px;background:#fff;color:#31415c;font-weight:800;cursor:pointer}.trainer-block-presets button:hover,.trainer-block-presets button.active{border-color:#202778;background:#202778;color:#fff}@media(max-width:620px){.trainer-block-presets{grid-template-columns:1fr 1fr}.trainer-block-presets button:last-child{grid-column:1/-1}}
.private-day-navigation{align-items:center;padding:8px;border:1px solid #d7dfeb;border-radius:11px;background:#f7f9fc}.private-day-navigation .private-day-arrow{display:grid;place-items:center;width:44px;min-width:44px;min-height:44px;padding:0;font-size:28px;line-height:1}.private-calendar-date-jump{display:grid;grid-template-columns:auto minmax(155px,210px);align-items:center;gap:8px;margin:0;color:#526079;font-size:12px;font-weight:800}.private-calendar-date-jump>.day-first-date-control{width:100%}.private-calendar-date-jump input{min-height:42px}@media(max-width:760px){.private-day-navigation{grid-template-columns:44px auto minmax(170px,1fr) 44px}.private-calendar-date-jump{grid-template-columns:1fr}.private-calendar-date-jump>span:first-child{display:none}}
