@import url('extra-v2.css?v=2');
.record{background:#b85c00}
.notice.success{background:#dff5e8;color:#075f38;border:2px solid #39a56d;font-size:16px}.notice.saving{background:#eef4f0;color:#315744}.notice.adult-checkin{background:#e8f3ff;color:#174f7a;border-left:4px solid #2b78b8}#saveOverlay{position:fixed;inset:0;z-index:1000;background:rgba(15,38,29,.58);display:grid;place-items:center;padding:22px}#saveOverlay[hidden]{display:none}#saveOverlay>div{width:min(360px,92vw);display:grid;justify-items:center;gap:12px;background:#fff;border-radius:18px;padding:28px;text-align:center;box-shadow:0 18px 60px rgba(0,0,0,.25)}#saveOverlay b{font-size:20px;color:var(--dark)}#saveOverlay small{color:#617269}.save-spinner{width:42px;height:42px;border:5px solid #d7e8de;border-top-color:var(--g);border-radius:50%;animation:bsc-spin .8s linear infinite}@keyframes bsc-spin{to{transform:rotate(360deg)}}body.attendance-saving{overflow:hidden}
[hidden]{display:none!important}.coachadmin{margin:15px 0}.coachform{display:grid;grid-template-columns:1fr auto auto;gap:9px;margin-bottom:12px}.coachform input{min-height:45px;border:1px solid var(--line);border-radius:10px;padding:10px}.coachform button,.coachadmin #coachList button{border:0;border-radius:8px;padding:9px 11px;font-weight:800}.coachform #coachSave{background:var(--g);color:#fff}.coachadmin #coachList>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line)}.coachadmin #coachList button{margin-left:6px}.metric small{display:none}@media(max-width:700px){.coachform{grid-template-columns:1fr}.coachadmin #coachList>div{align-items:flex-start;flex-direction:column}.coachadmin #coachList button{margin:3px 5px 0 0}.report .report-head{display:none}.report .metric{display:flex;justify-content:space-between;align-items:center;background:var(--mint);border-radius:9px;padding:10px 12px;font-size:18px}.report .metric small{display:block;color:#687a70;font-size:12px;font-weight:800}.report>div>*:first-child{margin-bottom:5px}}
@media(min-width:701px){.report>div{grid-template-columns:1.35fr repeat(6,1fr)}.report.simple>div{grid-template-columns:1.35fr 1fr 1fr}}
.record-actions{display:flex;align-items:center;gap:12px}.cancel-option{display:flex;align-items:center;gap:8px;background:#fff4dc;border:1px solid #f0ca83;border-radius:10px;padding:12px;font-weight:800;color:#7b5410}.cancel-option input{width:20px;height:20px;accent-color:var(--orange)}.session-cancelled{opacity:.48}.session-cancelled .athlete{background:#f1f1f1}@media(max-width:700px){.hero{align-items:flex-start}.record-actions{margin-left:10px}.cancel-option{padding:10px;font-size:12px}}
.brand{display:flex;align-items:center;gap:11px}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:#f4f8f2;overflow:hidden;box-shadow:0 7px 18px #153c2d18}.brand-mark img{width:47px;height:47px;object-fit:contain}.brand-copy{display:flex;flex-direction:column;line-height:1}.brand-copy strong{font-size:23px;letter-spacing:.06em;color:var(--dark)}.brand-copy small{margin-top:5px;color:#687a70;font-size:12px;font-weight:700}.gate-logo{display:block;width:112px;height:94px;object-fit:contain;margin:0 auto 6px}header{box-shadow:0 5px 22px #153c2d0b}nav{backdrop-filter:blur(8px)}.coach-card{display:block!important;padding:15px!important;border:1px solid var(--line)!important;border-radius:13px;margin:10px 0;background:#fbfdfb}.coach-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.coach-group-picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.coach-group-picker label{display:flex;align-items:center;gap:5px;background:var(--mint);border-radius:8px;padding:8px 10px;font-size:12px;font-weight:750}.coach-group-picker input{accent-color:var(--g)}.coach-group-picker button{margin-left:auto!important;background:var(--g);color:#fff}@media(max-width:700px){.brand-mark{width:44px;height:44px}.brand-mark img{width:40px;height:40px}.brand-copy strong{font-size:19px}.brand-copy small{font-size:10px}.gate-logo{width:90px;height:76px}.coach-row{align-items:flex-start;flex-direction:column}.coach-group-picker{display:grid;grid-template-columns:1fr 1fr}.coach-group-picker button{grid-column:1/3;margin:4px 0 0!important}}
.brand>span{margin-left:0}
.record:disabled{background:#a9b4ae;cursor:not-allowed;box-shadow:none}.cancel-option:has(input:disabled){opacity:.55;cursor:not-allowed}
.registry-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:12px}.registry-head p,.member-editor p{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--g);margin:0}.registry-head h2,.member-editor h2{margin:4px 0}.member-toolbar{display:grid;grid-template-columns:1fr 220px 180px;gap:10px;margin:12px 0}.member-toolbar input,.member-toolbar select,.member-grid input,.member-grid select,.member-grid textarea,.cards input{width:100%;min-height:45px;border:1px solid var(--line);border-radius:10px;padding:10px;background:#fff}.member-editor{margin:12px 0;border:2px solid #b9ddc9}.editor-title{display:flex;align-items:flex-start;justify-content:space-between}.member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:16px}.member-grid label{font-size:12px;font-weight:800;color:#687a70}.member-grid .wide{grid-column:span 2}.member-grid textarea{resize:vertical}.editor-actions{display:flex;gap:8px;margin-top:16px}.member-list{display:grid;gap:10px;margin:14px 0 20px}.member-count{font-size:12px;font-weight:900;color:#687a70}.member-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px}.member-main{display:flex;justify-content:space-between;gap:15px}.member-main h3{margin:5px 0 2px}.member-main p{margin:0;color:#687a70}.member-status{height:max-content;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900}.member-status.active{background:var(--mint);color:var(--g)}.member-status.paused{background:#fff4dc;color:#8a5b05}.member-status.exited{background:#edf0ee;color:#687a70}.member-actions{display:flex;gap:7px;margin-top:12px}.member-actions button{border:0;border-radius:8px;padding:8px 10px;font-weight:800}.member-actions button:last-child{background:var(--g);color:#fff}.member-card details{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}.group-history{display:grid;grid-template-columns:1fr 120px 220px;gap:10px;padding:8px 0;border-bottom:1px solid #edf2ee}.admin-settings{margin-top:18px}.admin-settings>summary{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;font-weight:900}.install-form{display:grid;gap:12px}.install-form label{font-weight:800}.install-form input{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;margin-top:5px}.installer{max-width:620px;margin:40px auto;padding:16px}.button{display:inline-block;background:var(--g);color:#fff;padding:12px 16px;border-radius:10px;text-decoration:none;font-weight:900}.notice.error{background:#fff0f0;color:var(--red)}
@media(max-width:700px){.registry-head{align-items:flex-start;flex-direction:column}.member-toolbar,.member-grid{grid-template-columns:1fr}.member-grid .wide{grid-column:auto}.group-history{grid-template-columns:1fr}.member-actions{display:grid;grid-template-columns:1fr 1fr}.member-actions button{margin:0}.member-main{align-items:flex-start}.installer{margin:10px auto}}
.edit-attendance{border:0;border-radius:10px;padding:12px 15px;background:#fff4dc;color:#7b5410;font-weight:900;box-shadow:inset 0 0 0 1px #e7bd69}.notice.recorded{position:sticky;top:8px;z-index:5;background:#e8f7ee;color:#08683f;border:2px solid #74c294;font-weight:900;box-shadow:0 8px 24px #153c2d1c}.notice.editing{position:sticky;top:8px;z-index:5;background:#fff4dc;color:#7b5410;border:2px solid #e7bd69;font-weight:900}.notice.error{background:#fff0f0;color:var(--red)}.recorded-locked{opacity:.72}.detail-button{border:0;border-radius:8px;padding:8px 10px;background:var(--mint);color:var(--g);font-weight:900}.athlete-detail{margin-top:18px;padding:18px;background:#fff;border:2px solid #b9ddc9;border-radius:15px}.detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.detail-title p{margin:0;color:var(--g);font-size:11px;font-weight:900;letter-spacing:.12em}.detail-title h2{margin:5px 0}.detail-title>div:last-child{display:flex;gap:8px}.detail-title button{border:0;border-radius:9px;padding:10px 13px;background:var(--g);color:#fff;font-weight:900}.detail-title button.ghost{background:#edf2ee;color:#456052}.detail-table-wrap{overflow:auto;margin-top:15px}.detail-table-wrap table{width:100%;min-width:1050px;border-collapse:collapse}.detail-table-wrap th,.detail-table-wrap td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.detail-table-wrap th{background:#f1f8f4;font-size:12px}.detail-table-wrap td small{display:block;margin-top:3px;color:#687a70}.detail-table-wrap .absent-row{background:#fff7f7}.detail-table-wrap .absent-row td:nth-child(4){color:#b23838}.detail-table-wrap .present-row td:nth-child(4){color:var(--g)}
@media(min-width:701px){.report>div{grid-template-columns:1.35fr repeat(6,1fr) auto}.report.simple>div{grid-template-columns:1.35fr 1fr 1fr auto}}
.pass-report-value{color:var(--g)}@media(min-width:701px){.report.simple.adult-pass-report>div{grid-template-columns:1.35fr 1fr 1fr 1fr auto}}
@media(max-width:700px){.record-actions{flex-wrap:wrap}.edit-attendance{width:100%}.detail-title{flex-direction:column}.detail-title>div:last-child{width:100%;display:grid;grid-template-columns:1fr}.athlete-detail{padding:13px}}

/* V41: persistent save feedback stays visible at the bottom of a long roster. */
#saveFeedback{position:fixed;top:12px;left:50%;transform:translateX(-50%);z-index:1001;width:min(640px,calc(100% - 24px));max-height:40vh;overflow:auto;display:flex;align-items:flex-start;gap:12px;padding:16px;box-sizing:border-box;box-shadow:0 8px 30px #153c2d40;border-radius:12px;background:#fff}
#saveFeedback[hidden]{display:none}#saveFeedback span{flex:1;min-width:0;overflow-wrap:anywhere}#saveFeedback button{flex:0 0 44px;min-height:44px;border:0;border-radius:8px;background:#e6eee8;color:#153c2d;font-size:24px}
