.belt-program{margin:24px 0 32px}.belt-program h2{font-size:23px}.belt-section{border:1px solid var(--line);border-left:6px solid var(--belt);background:white;border-radius:12px;margin:12px 0;overflow:hidden}.belt-section summary{cursor:pointer;padding:20px;font-weight:700;font-size:17px;list-style-position:inside}.belt-section summary span{font-weight:400;font-size:12px;margin-left:12px;color:var(--muted)}.belt-questions{padding:0 22px 22px}.belt-questions ol{padding-left:24px}.belt-questions li{padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.8}.belt-questions li strong{display:block;font-size:16px}.belt-questions li small{display:block;color:var(--muted)}.belt-questions .club-actions{margin-top:20px}.club-tabs,.club-actions{display:flex;gap:10px;flex-wrap:wrap}.club-tabs{margin:24px 0}.club-tabs button,.club-actions button{min-height:44px}.club-content,.club-fields{border:0;padding:0;margin:0;min-width:0}.club-panel{border:1px solid var(--line);border-radius:16px;padding:24px;background:white;margin:24px 0}.club-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.club-fields input:not([type=checkbox]),.club-fields select,.club-content>.plan-field input,.club-exam-select{font:inherit;font-size:16px;border:1px solid #cdd8cf;border-radius:8px;padding:12px;min-height:46px;max-width:100%;min-width:0;width:100%;background:#fafbf8;color:var(--ink)}.club-weekdays,.club-participants{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.club-weekdays legend,.club-participants legend{font-size:13px;padding:0 6px}.club-weekdays label,.club-participants label{display:flex;align-items:center;gap:8px;min-height:44px;background:#f4f6ef;padding:8px;border-radius:6px;font-size:13px;cursor:pointer}.club-weekdays input,.club-participants input{width:19px;height:19px;accent-color:var(--teal);flex-shrink:0}.club-participants{max-height:330px;overflow-y:auto}.club-fields>.club-actions{grid-column:1/-1}.athlete-list{display:grid;gap:12px}.athlete-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:white;border:1px solid var(--line);padding:20px;border-radius:14px}.athlete-card h3{margin:0 0 8px}.athlete-card p{font-size:13px;line-height:1.8;margin:3px 0}.athlete-card.inactive{background:#f0f1ec;color:#69756e}.club-empty{padding:32px;text-align:center;background:#eef2e9;border-radius:12px;color:var(--muted)}.club-table-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:12px;background:white;margin:20px 0;overscroll-behavior-x:contain}.club-table{border-collapse:separate;border-spacing:0;text-align:left;font-size:12px;width:max-content;min-width:100%}.club-table caption{position:absolute;clip-path:inset(100%);width:1px;height:1px;overflow:hidden}.club-table th,.club-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px;text-align:center;vertical-align:middle;min-width:86px;max-width:190px;overflow-wrap:anywhere}.club-table th{background:#eef2e9}.club-table .frozen{position:sticky;left:0;z-index:1;background:#f7f8f2;min-width:170px;width:170px;text-align:left;box-shadow:1px 0 0 #ccd6ce}.club-table thead .frozen{z-index:2}.club-table small{display:block;font-size:11px;font-weight:400;margin-top:5px;color:#5b6d65;line-height:1.6}.club-table th>strong{display:block;font-size:12px;line-height:1.7}.club-table .not-planned{background:#f5f6f1;color:#b0b7ac}.attendance-mark{font:inherit;padding:9px 5px;min-height:44px;width:116px;border:1px solid #d3dbcf;border-radius:7px;background:#f7f8f3}.attendance-mark[data-status=present]{background:#d7eadb;color:#1c5a35}.attendance-mark[data-status=absent]{background:#f9e1db;color:#973921}.attendance-mark[data-status=excused]{background:#fff0c8;color:#745309}.score-table input{font:inherit;font-size:16px;width:90px;min-height:46px;padding:9px;border:1px solid #bdcfc3;border-radius:7px;text-align:center}.score-table input[aria-invalid=true]{border:2px solid #b64430}.score-table thead th:not(.frozen){min-width:160px}.grade-average{font-weight:700;font-size:17px;color:var(--teal)}.club-status{position:sticky;bottom:18px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:13px 18px;margin-top:24px;border:1px solid #cbd8cb;border-radius:12px;background:#f0f5eaff;box-shadow:0 5px 24px #163f2a16;z-index:3}.club-status p{font-size:13px;line-height:1.6;margin:0;flex:1;min-width:100px}.club-status.has-error{background:#fff1df;border-color:#e2c29a}.club-export{margin-bottom:24px}.club-exam-select{margin:10px 0}.club-content>h2{font-size:23px}.club-content>.plan-field{max-width:240px}.club-content>.muted{font-size:12px;line-height:1.8}
@media(max-width:1024px){.club-status{bottom:calc(82px + var(--safe-bottom))}.learning-shortcuts{gap:6px}.learning-shortcuts button{font-size:11px}}
@media(max-width:600px){.club-fields{grid-template-columns:1fr}.club-panel{padding:17px 13px}.athlete-card{align-items:flex-start;flex-direction:column;padding:18px}.club-tabs{display:grid;grid-template-columns:1fr;gap:7px}.club-tabs button{font-size:13px}.club-table .frozen{min-width:110px;max-width:110px;width:110px;font-size:11px}.club-table th,.club-table td{padding:8px}.club-status{padding:12px}.club-status button{min-height:44px}.belt-section summary{font-size:16px;padding:17px 13px}.belt-section summary span{display:block;margin-top:5px;margin-left:20px}.belt-questions{padding:0 14px 18px}.belt-questions li{font-size:13px}.belt-questions li strong{font-size:15px}.learning-tabs{grid-template-columns:1fr 1fr}.learning-tabs button:last-child{grid-column:1/-1}}

.sidebar{overflow-y:auto}
/* Keep venue and native time controls identical, including iOS Safari. */
.club-fields input[name="athlete-address"],
.club-fields input[name="athlete-phone"],
.club-fields input[name="athlete-venue"],
.club-fields input[name="athlete-training-end-time"],
.club-fields input[name="athlete-training-time"]{
  display:block;
  box-sizing:border-box;
  width:100%;min-width:0;max-width:100%;
  height:48px;min-height:48px;max-height:48px;
  padding:12px;
  line-height:22px;
  -webkit-appearance:none;appearance:none;
}
.club-fields input[name="athlete-training-time"]::-webkit-date-and-time-value{
  min-height:22px;text-align:left;
}
.club-fields input[name="athlete-training-time"]::-webkit-datetime-edit{padding:0;}

.athlete-card>div{min-width:0;overflow-wrap:anywhere}

.club-time-range{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}.club-time-range .plan-field{min-width:0;gap:4px}.club-time-range .plan-field>span{font-size:12px}.club-time-range input[type="time"]{padding:8px}.club-time-range input::-webkit-date-and-time-value{min-height:22px;text-align:left}.club-time-range input::-webkit-datetime-edit{padding:0}
.attendance-table .attendance-toggle{width:48px;min-width:48px;min-height:48px;font-size:26px;font-weight:800;padding:4px;cursor:pointer}.attendance-toggle:focus-visible{outline:3px solid var(--teal);outline-offset:2px}.attendance-table td{min-width:70px;padding:8px}.attendance-toggle[aria-pressed=true]{border:2px solid #1c5a35}
