/* Chapel Baseball roster system. Every selector is scoped to tr- classes. */
.tr-wrap{max-width:1100px;margin:30px auto 48px;padding:0 18px;box-sizing:border-box;color:#17283a}
.tr-wrap *{box-sizing:border-box}
.tr-wrap h1,.tr-wrap h2,.tr-wrap h3{color:#003B71}
.tr-header{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:20px}
.tr-header h1{margin:0 0 7px}
.tr-header p{margin:0;color:#5e6f80}
.tr-actions{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.tr-btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:42px;padding:9px 14px;background:#0067B1;border:1px solid #0067B1;border-radius:8px;color:#fff!important;text-decoration:none!important;font-weight:700;font-size:.94rem;line-height:1.3;font-family:inherit;cursor:pointer;white-space:normal}
.tr-btn:hover{background:#003B71;border-color:#003B71;color:#fff!important}
.tr-btn-alt{background:#fff;color:#003B71!important;border-color:#b5c9d8}
.tr-btn-alt:hover{background:#eaf4fa;color:#003B71!important;border-color:#7BAFD4}
.tr-btn-danger{background:#fff;color:#9e2b2b!important;border-color:#daa8a8}
.tr-btn-danger:hover{background:#fff0f0;color:#8f2020!important}
.tr-btn:focus-visible,.tr-tab:focus-visible,.tr-wrap input:focus-visible{outline:3px solid #7BAFD4;outline-offset:3px}
.tr-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin:18px 0 24px}
.tr-summary-card{border-radius:12px;background:#f4f8fc;border:1px solid #dce8f2;padding:17px}
.tr-summary-label{font-weight:700;color:#456076;font-size:.83rem;text-transform:uppercase;letter-spacing:.03em}
.tr-summary-value{color:#003B71;font-weight:800;font-size:2rem;line-height:1.15;margin-top:7px}
.tr-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0 20px}
.tr-tab{display:inline-flex;gap:7px;align-items:center;text-decoration:none!important;padding:11px 16px;border-radius:9px;border:1px solid #b8ccdb;background:#fff;color:#003B71!important;font-weight:750}
.tr-tab[aria-current="page"]{background:#003B71;color:#fff!important;border-color:#003B71}
.tr-panel{border:1px solid #dae4ec;border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.045);margin-bottom:24px}
.tr-panel-heading{padding:19px 21px;border-bottom:1px solid #e3eaf0;background:#f7fafd}
.tr-panel-heading h2{margin:0 0 4px}
.tr-panel-heading p{margin:0;color:#596d7f}
.tr-table-scroll{overflow-x:auto}
.tr-table{border-collapse:collapse;width:100%;min-width:690px}
.tr-table th,.tr-table td{padding:12px 13px;vertical-align:middle;border-bottom:1px solid #edf1f5;text-align:left}
.tr-table th{font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.025em;background:#f2f6fa;color:#4c6378}
.tr-table tbody tr:last-child td{border-bottom:0}
.tr-table tbody tr:hover{background:#f8fbfe}
.tr-profile-link{font-weight:750;color:#003B71}
.tr-player-name{display:flex;gap:12px;align-items:center;min-width:195px}
.tr-avatar{width:48px;height:48px;flex:0 0 48px;object-fit:cover;border-radius:50%;border:2px solid #d7e5f1}
.tr-avatar-empty{display:flex;align-items:center;justify-content:center;background:#d9e8f5;color:#003B71;font-weight:850;font-size:1.15rem}
.tr-small{color:#627385;font-size:.84rem}
.tr-chip{display:inline-block;border-radius:999px;font-size:.78rem;font-weight:800;padding:4px 10px;border:1px solid #aec8db;background:#edf5fb;color:#003B71;white-space:nowrap}
.tr-chip-flex{background:#e5f3ec;color:#195b3b;border-color:#a4d5b5}
.tr-chip-alumni{background:#f3effb;color:#58368c;border-color:#c7b8df}
.tr-alumni-choice{padding-left:8px;border-left:1px solid #dbe4ed}
.tr-empty{padding:26px;color:#637688}
.tr-notice{padding:15px 17px;border-radius:10px;margin:17px 0;border-left:5px solid #0067B1;background:#eff7fd}
.tr-notice-ok{border-left-color:#207447;background:#eef9f2;color:#22563a}
.tr-notice-warn{border-left-color:#c38d22;background:#fff7e7;color:#624917}
.tr-notice-error{border-left-color:#a83b3b;background:#fff1ef;color:#7b2626}
.tr-player-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 23px}
.tr-player-card{border:1px solid #d9e4ed;border-radius:13px;background:#fff;box-shadow:0 4px 13px rgba(0,0,0,.045);padding:16px}
.tr-player-card-head{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-bottom:11px}
.tr-player-card h3{margin:0 0 4px;font-size:1rem}
.tr-player-card label{display:inline-flex;align-items:center;gap:7px;font-weight:750;cursor:pointer}
.tr-player-card input[type=checkbox]{width:17px;height:17px;accent-color:#0067B1}
.tr-choices{display:flex;flex-wrap:wrap;gap:16px;margin:14px 0}
.tr-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tr-help{font-size:.85rem;color:#617181}
.tr-log{list-style:none;margin:0;padding:0}
.tr-log li{padding:12px 19px;border-bottom:1px solid #ecf0f4}
.tr-log li:last-child{border-bottom:0}
.tr-role-row{display:flex;justify-content:space-between;align-items:center;gap:17px;flex-wrap:wrap;padding:18px 19px;border-bottom:1px solid #e8eef3}
.tr-role-row:last-child{border-bottom:0}
.tr-role-row p{margin:5px 0 0;color:#637688}
.tr-roster-subtitle{font-weight:600;color:#4e6980}
.tr-no-print{}
@media(max-width:720px){.tr-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.tr-player-grid{grid-template-columns:1fr}.tr-header{display:block}.tr-actions{margin-top:13px}}
@media(max-width:470px){.tr-summary{grid-template-columns:1fr 1fr}.tr-actions .tr-btn{flex:1}}
@media print{.site-header,.nav-wrapper,.site-footer,.tr-no-print,.sidebar,.footer,footer{display:none!important}.tr-wrap{margin:0;padding:0;max-width:100%;font-size:10pt}.tr-panel{box-shadow:none;border:0}.tr-panel-heading{padding:8px 0;background:white}.tr-table-scroll{overflow:visible}.tr-table{min-width:0}.tr-table th,.tr-table td{padding:7px 6px}.tr-avatar{width:32px;height:32px;flex-basis:32px}.tr-summary{margin:6px 0 12px}.tr-summary-card{padding:8px}.tr-summary-value{font-size:1.25rem}.tr-panel{break-inside:avoid}.tr-table tr{break-inside:avoid}.tr-header h1{font-size:22pt}}

/* Active player roster visibility enhancements */
.tr-unassigned-names{margin:9px 0 5px;font-weight:750;line-height:1.65}
.tr-unassigned-names a{color:#003B71;text-decoration:underline;text-underline-offset:2px}
.tr-roster-quick-assign{margin-top:7px;font-size:.85rem}
.tr-roster-quick-assign a{color:#003B71;font-weight:750;text-decoration:underline}
@media (min-width:721px) and (max-width:940px){.tr-summary{grid-template-columns:repeat(3,minmax(0,1fr))}}


/* Inline assignments for authorized administrators and Head Coaches. */
.tr-inline-assign{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:220px}
.tr-inline-assign select{min-width:155px;min-height:42px;padding:8px 10px;border:1px solid #b5c9d8;border-radius:8px;font:inherit;background:#fff;color:#17283a}
.tr-inline-assign select:focus-visible{outline:3px solid #7BAFD4;outline-offset:2px}
.tr-inline-assign .tr-btn{white-space:nowrap}
.tr-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media (max-width:720px){.tr-inline-assign{min-width:190px}}
