.roster-landing {
    color:#192d41;
    line-height:1.55}
.roster-landing [hidden] {
    display:none!important}
.roster-landing a:focus-visible,.roster-landing button:focus-visible,.roster-landing input:focus-visible,.roster-landing select:focus-visible {
    outline:3px solid #ba7400;
    outline-offset:3px}
.roster-hero {
    background:linear-gradient(120deg,#001c36,#064c79);
    color:#fff;
    padding:28px 32px;
    border-top:4px solid #f4b942}
.roster-hero h1 {
    color:#fff;
    font-size:clamp(2rem,4vw,3.2rem);
    font-weight:800;
    line-height:1.12;
    margin:10px 0}
.roster-hero>p:not(.roster-eyebrow) {
    font-size:1.05rem;
    margin:12px 0 18px}
.roster-eyebrow {
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
    color:#356080;
    margin:0}
.roster-hero .roster-eyebrow {
    color:#ffd36c}
.roster-jump {
    display:flex;
    gap:12px;
    flex-wrap:wrap}
.roster-jump a {
    display:inline-block;
    padding:10px 16px;
    border:1px solid #7191ab;
    border-radius:4px;
    color:#fff;
    text-decoration:none;
    font-size:.9rem;
    font-weight:700}
.roster-jump a:first-child {
    background:#f4b942;
    border-color:#f4b942;
    color:#102a42}
.roster-jump a:hover {
    background:#fff;
    color:#002244}
.roster-summary {
    display:flex;
    gap:32px;
    border-top:1px solid #42657f;
    margin-top:24px;
    padding-top:18px}
.roster-summary strong {
    font-size:1.65rem;
    display:block;
    line-height:1.15}
.roster-summary span {
    font-size:.78rem;
    color:#d0e0ed}
.roster-section {
    padding:26px;
    border-radius:3px}
.roster-section h2 {
    font-size:1.5rem;
    line-height:1.25;
    font-weight:750;
    margin:8px 0 12px}
.roster-section-heading {
    display:flex;
    justify-content:space-between;
    gap:16px;
    align-items:center}
.roster-updated {
    font-size:.75rem;
    color:#5a6c7c;
    text-align:right;
    margin:0}
.roster-updated strong {
    color:#213c55}
.roster-muted,.roster-footnote {
    color:#596b7a}
.roster-footnote {
    font-size:.78rem;
    margin:20px 0 0}
.roster-search {
    margin:22px 0 10px}
.roster-search label,.roster-archive-form label {
    display:block;
    font-weight:700;
    font-size:.82rem;
    margin-bottom:6px}
.roster-search>div {
    display:flex;
    gap:8px}
.roster-search input {
    width:100%;
    min-width:0;
    border:1px solid #aabcca;
    border-radius:4px;
    padding:11px 12px;
    background:#fff;
    color:#192d41}
.roster-search button {
    background:#eef3f7;
    border:1px solid #bccbd7;
    border-radius:4px;
    padding:10px 16px;
    cursor:pointer;
    color:#002244}
.roster-search>p {
    font-size:.76rem;
    color:#596b7a;
    margin:6px 0;
    min-height:1.2em}
.roster-conference {
    margin-top:24px}
.roster-conference>h3 {
    font-size:.85rem;
    font-weight:700;
    border-bottom:1px solid #d8e2ea;
    padding-bottom:12px;
    display:flex;
    align-items:center;
    gap:10px}
.roster-conference>h3>span {
    background:#002244;
    color:#fff;
    padding:5px 9px;
    font-size:.82rem;
    border-radius:3px}
.roster-conference:nth-of-type(2)>h3>span {
    background:#a82c3c}
.roster-division-grid {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px 16px}
.roster-division h4 {
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.07em;
    text-transform:uppercase;
    margin:8px 0;
    color:#50677b}
.roster-team-list {
    border:1px solid #dce4eb;
    border-radius:5px;
    overflow:hidden}
.roster-team {
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px 10px;
    text-decoration:none;
    background:#fff;
    min-height:78px;
    color:#142e47}
.roster-team+.roster-team {
    border-top:1px solid #e4ebf0}
.roster-team:hover {
    background:#edf5fb;
    color:#064c79}
.roster-team img {
    object-fit:contain;
    flex:0 0 40px;
    width:40px;
    height:40px}
.roster-team-info {
    min-width:0;
    flex:1}
.roster-team-info strong {
    display:block;
    font-size:.85rem;
    line-height:1.35}
.roster-team-info small {
    display:block;
    font-size:.68rem;
    color:#667888;
    margin-top:4px}
.roster-arrow {
    font-size:1.15rem;
    color:#527591}
.roster-logo-fallback {
    width:40px;
    font-weight:bold;
    font-size:.8rem}
.roster-button {
    display:inline-block;
    background:#002244;
    color:#fff!important;
    padding:12px 16px;
    border:0;
    border-radius:4px;
    font-weight:700;
    font-size:.87rem;
    text-decoration:none;
    cursor:pointer}
.roster-button:hover {
    background:#0b4f8a}
.roster-archive-form select {
    width:100%;
    padding:11px;
    border:1px solid #aabcca;
    border-radius:4px;
    background:#fff;
    color:#192d41;
    font-size:1rem;
    margin-bottom:10px}
.roster-archive-form .roster-button {
    width:100%}
.roster-small-heading {
    font-size:.88rem;
    font-weight:700;
    margin:22px 0 10px}
.roster-year-links {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px}
.roster-year-links a {
    border:1px solid #d7e1ea;
    background:#f3f7fa;
    text-align:center;
    padding:9px 4px;
    border-radius:4px;
    color:#16496e;
    text-decoration:none;
    font-weight:700;
    font-size:.86rem}
.roster-year-links a:hover {
    background:#e0edf7}
.roster-resource-links a {
    display:block;
    text-decoration:none;
    padding:13px 0;
    border-top:1px solid #e1e8ee}
.roster-resource-links strong {
    font-size:.9rem;
    display:block;
    color:#144769}
.roster-resource-links strong span {
    float:right}
.roster-resource-links small {
    display:block;
    color:#667888;
    font-size:.78rem;
    margin-top:3px}
.roster-resource-links a:hover strong {
    text-decoration:underline}
.roster-source {
    border-top:4px solid #d6a337}
.roster-source p {
    font-size:.88rem}
.roster-notice {
    padding:14px;
    background:#fff5dc;
    border-left:3px solid #d6a337}
.roster-landing :target {
    scroll-margin-top:24px}
@media(min-width:993px) and (max-width:1150px) {
    .roster-division-grid {
    grid-template-columns:1fr}
}
@media(max-width:600px) {
    .roster-hero {
    padding:24px 20px}
.roster-section {
    padding:20px 16px}
.roster-summary {
    gap:24px}
.roster-summary strong {
    font-size:1.35rem}
.roster-summary span {
    font-size:.7rem}
.roster-division-grid {
    grid-template-columns:1fr;
    gap:16px}
.roster-section-heading {
    display:block}
.roster-updated {
    text-align:left;
    margin:12px 0}
.roster-team-info strong {
    font-size:.94rem}
.roster-team-info small {
    font-size:.75rem}
.roster-conference>h3 {
    font-size:.77rem}
.roster-team {
    padding:12px}
.roster-hero h1 {
    font-size:2.2rem}
}
