/* Users page: page geometry only. Shell, cards and controls come from management.css. */
.users-page .users-layout{display:grid;grid-template-columns:minmax(300px,350px) minmax(0,1fr);gap:18px;align-items:start}
.users-page .users-list{position:sticky;top:16px;padding:0;overflow:hidden}
.users-page .users-list .card-head{padding:16px 18px 10px;margin:0}
.users-page .users-list .card-head h2{font-size:15px;margin:0}
.users-page .list-tools{display:grid;gap:9px;padding:0 16px 14px;border-bottom:1px solid #eef3f6}
.users-page .list-tools .admin-search{max-width:none}
.users-page .list-tools .primary{width:100%;height:36px;font-size:12px}
.users-page #usersList{display:grid;gap:3px;padding:8px;max-height:calc(100vh - 310px);overflow:auto}
.users-page .user-card{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;height:auto;min-height:44px;padding:7px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#22323d;text-align:left;cursor:pointer}
.users-page .user-card:hover{background:#f4fafb;border-color:#d6e7ec}
.users-page .user-card.is-selected{background:#eaf8fb;border-color:#bfe4eb;box-shadow:inset 3px 0 var(--color-primary)}
.users-page .avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#e6f5f9;color:#1f6274;font-size:10.5px;font-weight:800}
.users-page .user-card-main{display:grid;gap:1px;min-width:0}
.users-page .user-card-main strong{overflow:hidden;font-size:12.5px;line-height:1.25;color:#16242d;text-overflow:ellipsis;white-space:nowrap}
.users-page .user-card-main span{overflow:hidden;font-size:10.5px;line-height:1.3;color:#7b909d;text-overflow:ellipsis;white-space:nowrap}
.users-page .user-card-meta{display:grid;justify-items:end;gap:3px}
.users-page .role-pill,.users-page .state-pill{padding:2px 7px;border-radius:999px;font-size:9.5px;font-weight:700;white-space:nowrap}
.users-page .role-pill{background:#eef3f6;color:#4f6a7a}
.users-page .role-pill.role-admin{background:#eceef8;color:#4a5b86}
.users-page .role-pill.role-coach{background:#e8f4f7;color:#1f6574}
.users-page .role-pill.role-athlete{background:#eef7ea;color:#356b2d}
.users-page .state-pill.active{background:#e0f4eb;color:#17684c}
.users-page .state-pill.off{background:#eef3f6;color:#71889a}
.users-page .user-editor{padding:18px 20px 20px}
.users-page .user-editor .card-head{padding:0 0 12px;margin:0 0 2px}
.users-page .user-editor .card-head h2{font-size:18px;margin:0}
.users-page .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.users-page .form-grid label,.users-page .user-editor>form>label{margin:10px 0}
.users-page .form-section{margin-top:20px;padding-top:16px;border-top:1px solid #eef3f6}
.users-page .form-section h3{margin:0 0 10px;font-size:13px;color:#16242d}
.users-page .choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.users-page .choice-grid label{display:flex;align-items:center;gap:8px;margin:0;padding:9px 10px;border:1px solid #dfe9ee;border-radius:8px;background:#fbfdfe;font-size:12px;font-weight:600}
.users-page .choice-grid input,.users-page .check input,.users-page .visibility-match input{width:auto;height:auto;margin:0;accent-color:var(--color-primary-ink)}
.users-page .access-details{margin-top:20px;border:1px solid #dfe9ee;border-radius:10px;background:#fbfdfe;padding:0 14px 14px}
.users-page .access-details summary{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:12px 0;color:#243a5a;font-size:12.5px;font-weight:750}
.users-page .access-details summary span{font-size:10.5px;font-weight:500;color:#7b909d;text-align:right}
.users-page .access-details>label{margin:4px 0 10px}
.users-page .visibility-match{display:flex;align-items:flex-start;gap:9px;padding:8px 0;border-bottom:1px solid #edf3f6}
.users-page .visibility-match span{display:grid;gap:2px;font-size:12px;font-weight:650}
.users-page .visibility-match small{font-size:10.5px;font-weight:400;color:#7b909d}
.users-page .details-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}
.users-page .details-actions button{border:1px solid #b9cbe6;border-radius:8px;background:#fff;color:var(--color-primary-ink);padding:8px 11px;font-size:11.5px;font-weight:700;cursor:pointer}
.users-page .details-actions [role=status]{margin:0;font-size:11.5px;color:#26734d}
.users-page .check{display:flex;align-items:center;gap:8px;margin:18px 0;padding:10px 12px;border:1px solid #dfe9ee;border-radius:9px;background:#fbfdfe;font-size:12px;font-weight:650}
.users-page .editor-actions{position:sticky;bottom:0;padding:12px 0 2px;background:linear-gradient(#fff0,#fff 35%)}
.users-page .save-user{width:100%;height:40px;font-size:13px}
.users-page .video-security{margin-top:18px;padding:18px 20px}
.users-page .video-security summary{cursor:pointer;font-size:13px;font-weight:750;color:#16242d}
.users-page .video-security p{font-size:12px;color:#607886}
.users-page .video-security h3{font-size:12.5px;margin:16px 0 8px}
.users-page .security-table{overflow:auto;margin:10px 0}
.users-page .security-table table{width:100%;border-collapse:collapse;font-size:11.5px}
.users-page .security-table th,.users-page .security-table td{padding:8px 9px;text-align:left;border-bottom:1px solid #e4edf1;vertical-align:top}
.users-page .video-security form{display:flex;flex-wrap:wrap;gap:10px;align-items:end}
.users-page .video-security input{max-width:220px}
@media(max-width:980px){.users-page .users-layout{grid-template-columns:minmax(260px,310px) minmax(0,1fr)}.users-page #usersList{max-height:none}}
@media(max-width:820px){.users-page .users-layout{grid-template-columns:1fr}.users-page .users-list{position:static}.users-page #usersList{max-height:360px}.users-page .editor-actions{position:static;background:none;padding-top:14px}}
@media(max-width:600px){
 .users-page .form-grid,.users-page .choice-grid{grid-template-columns:1fr}
 .users-page .access-details summary{display:block}
 .users-page .access-details summary span{display:block;margin-top:3px;text-align:left}
 .users-page .user-editor{padding:16px}
 .users-page #usersList{max-height:none}
}
