/* One customer surface: select on the timetable, then pay to confirm. */
.chart-page{max-width:1320px;padding-top:38px;padding-bottom:30px}.chart-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:26px}.chart-heading h1{font-size:clamp(34px,3.4vw,50px);line-height:1.1;margin:0 0 13px;letter-spacing:-.045em}.chart-heading p{font-size:17px;line-height:1.6;margin:0}.chart-key{display:flex;gap:20px;flex-shrink:0;padding-bottom:3px}.chart-key span{display:flex;align-items:center;gap:7px;font-size:14px}.chart-key i{height:13px;width:13px;border:1px solid #b7bdb0;background:var(--paper)}.chart-key i.selected{background:var(--lime);border-color:#75a51d}.chart-key i.unavailable{background:#e4e7de;border-color:#d3d8ca}
.chart-wrap{overflow:auto;border:1px solid var(--line)}.training-chart{width:100%;min-width:650px;table-layout:fixed;border-collapse:collapse;font-variant-numeric:tabular-nums;text-align:center}.training-chart th,.training-chart td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:0}.training-chart tr>:last-child{border-right:0}.training-chart tbody tr:last-child>*{border-bottom:0}.training-chart thead th{font-size:16px;font-weight:500;background:#edf0e7;padding:17px 6px}.training-chart thead th:first-child{width:95px;color:var(--muted);background:var(--paper)}.training-chart tbody th{font-size:16px;font-weight:500;line-height:1.25;padding:8px 4px;background:var(--paper)}.training-chart th small{display:block;font-size:12px;color:var(--muted);margin-top:3px}.training-chart .chart-slot{font-family:var(--sans);font-size:16px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:52px;color:var(--ink);background:var(--paper);border:0;border-radius:0;transition:background .12s}.training-chart .chart-slot:hover{background:#e8eedf}.training-chart .chart-slot.selected{background:var(--lime);color:var(--on-lime)}.training-chart .chart-slot.selected:hover{background:#a9ed26}.training-chart .chart-slot:disabled{background:#e9ece4;color:#7f8776;opacity:1;cursor:not-allowed}.training-chart .slot-check{font-size:13px;line-height:1}.training-chart .chart-slot:not(.selected):not(.class-slot) .slot-check{display:none}.training-chart .class-slot{box-shadow:inset 0 3px var(--brand-green)}.training-chart .no-session{background:#f0f1ec;color:#a2a899;font-size:16px}.training-chart th:first-child{position:sticky;left:0;z-index:1;box-shadow:1px 0 var(--line)}
.chart-caption{display:flex;justify-content:space-between;gap:20px;font-size:14px;color:var(--muted);padding:15px 0 20px}.chart-checkout{display:grid;grid-template-columns:1fr auto;gap:8px 30px;align-items:center;padding:24px 28px;background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--ink);position:sticky;bottom:0;z-index:5;box-shadow:0 -8px 25px rgba(25,29,23,.035)}.chart-summary>p{font-size:16px;margin:0 0 5px}.chart-price{display:flex;align-items:baseline;gap:10px;line-height:1.15}.chart-price strong{font-family:var(--sans);font-size:39px;font-weight:500;letter-spacing:-.045em}.chart-price>span{font-size:16px;color:var(--muted)}.chart-summary>small{display:block;margin-top:7px;font-size:13px;color:var(--muted)}.chart-pay{display:flex;flex-direction:column;align-items:flex-end;gap:9px}.chart-pay .button{font-size:17px!important;min-width:250px;justify-content:space-between;min-height:58px;background:var(--lime)!important;border-color:var(--lime)!important;color:var(--on-lime)!important}.chart-pay .button>span{color:var(--on-lime)!important}.chart-pay>small{font-size:13px;color:var(--muted)}.chart-checkout #payment-feedback{grid-column:1/-1}.chart-checkout #payment-feedback:empty{display:none}.chart-checkout .form-error,.chart-message{margin:10px 0 0;font-size:16px;line-height:1.5}.chart-footnote{font-size:13px;color:var(--muted);margin:15px 0}.chart-pending{display:flex;align-items:center;gap:24px;font-size:15px;padding:20px 0;border-bottom:1px solid var(--line)}.chart-pending>span{margin-right:auto}.chart-invoice{margin-top:18px}.chart-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:24px max(5.3%,24px);font-size:14px;color:var(--muted)}.chart-mobile-hint{display:none}
@media(max-width:950px){.chart-heading{align-items:flex-start;flex-direction:column;gap:18px}.chart-caption{flex-wrap:wrap;gap:8px 24px}}
@media(max-width:580px){.chart-page{padding:26px 18px 20px}.chart-heading{margin-bottom:16px;gap:16px}.chart-heading h1{font-size:34px}.chart-heading p{font-size:16px}.chart-key{gap:17px}.chart-key span{font-size:13px}.chart-day-rest{display:none}.chart-mobile-hint{display:block;font-size:13px;margin:0 0 10px;color:var(--muted)}.training-chart{min-width:620px}.training-chart thead th:first-child{width:76px}.training-chart .chart-slot{min-height:52px}.chart-checkout{padding:17px 18px;grid-template-columns:1fr;gap:13px}.chart-summary{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center}.chart-summary>p{font-size:14px;margin:0}.chart-price{gap:5px;flex-wrap:wrap;justify-content:flex-end}.chart-price strong{font-size:30px}.chart-price>span{font-size:13px}.chart-summary>small{grid-column:1/-1;font-size:12px;margin:0}.chart-pay{align-items:stretch;gap:6px}.chart-pay .button{width:100%;min-height:52px}.chart-pay>small{font-size:12px;text-align:center}.chart-caption{font-size:13px}.chart-pending{flex-wrap:wrap;gap:10px 22px}.chart-pending>span{width:100%}.chart-footer{font-size:13px;padding:20px 18px}.chart-footnote{font-size:12px}}

.training-chart tbody tr{height:59px}.training-chart .class-cell{position:relative}.training-chart .class-cell .class-slot{position:absolute;inset:0;height:100%;flex-direction:column;gap:7px}.training-chart .class-time{font-size:14px;font-weight:400}.training-chart .slot-check{margin-left:5px}
.chart-checkout.is-confirmed{position:static;box-shadow:none}

/* Keep unfinished-payment recovery visible above the timetable. */
.chart-page .chart-pending{display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:18px 20px;margin:0 0 20px;border:1px solid var(--line);background:var(--stone);color:var(--ink)}
.chart-pending strong{font-size:18px}.chart-pending p{margin:4px 0 0;font-size:15px;color:var(--muted)}
.checkout-recovery-actions{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.checkout-recovery-actions .button{font-size:15px;min-height:46px;padding:10px 16px}
@media(max-width:600px){.checkout-recovery-actions{align-items:stretch;flex-direction:column}.checkout-recovery-actions .button{justify-content:center}.chart-page .chart-pending{padding:16px}}

.confirmed-training{margin:18px 0 24px}.confirmed-training h2{font-size:21px;margin:0 0 5px}.confirmed-training p{font-size:14px;color:var(--muted);margin:0 0 12px}.confirmed-training>div{display:flex;flex-wrap:wrap;gap:8px}.confirmed-training>div>span{background:var(--lime);color:#191d17;padding:10px 14px;font-size:16px}.confirmed-training strong{font-weight:600;margin-right:8px}
