:root {
    --cpcc-ps-navy: #082b45;
    --cpcc-ps-navy-2: #0e3d5d;
    --cpcc-ps-gold: #f4bd19;
    --cpcc-ps-ink: #17232d;
    --cpcc-ps-muted: #667480;
    --cpcc-ps-line: #dbe2e7;
    --cpcc-ps-soft: #f4f7f9;
    --cpcc-ps-white: #fff;
}

.cpcc-ps-page {
    color: var(--cpcc-ps-ink);
    background: #eef2f4;
    padding: clamp(24px, 4vw, 56px) 18px 72px;
}

.cpcc-ps-shell {
    width: min(1240px, 100%);
    margin: 0 auto;
}

.cpcc-ps-hero {
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr);
    align-items: stretch;
    min-height: 220px;
    overflow: hidden;
    color: var(--cpcc-ps-white);
    background: linear-gradient(125deg, var(--cpcc-ps-navy), var(--cpcc-ps-navy-2));
    border-radius: 18px 18px 0 0;
    box-shadow: 0 16px 42px rgba(8, 43, 69, .18);
}

.cpcc-ps-photo-wrap {
    min-height: 220px;
    background: rgba(255, 255, 255, .08);
}

.cpcc-ps-photo {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 220px;
    object-fit: cover;
}

.cpcc-ps-photo-placeholder {
    display: grid;
    place-items: center;
    font: 800 76px/1 system-ui, sans-serif;
    color: rgba(255, 255, 255, .85);
    background: linear-gradient(145deg, rgba(255,255,255,.16), rgba(255,255,255,.03));
}

.cpcc-ps-identity {
    padding: 32px clamp(26px, 5vw, 64px);
    align-self: center;
}

.cpcc-ps-eyebrow,
.cpcc-ps-kicker {
    margin: 0 0 7px;
    color: var(--cpcc-ps-gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.cpcc-ps-identity h1 {
    margin: 0 0 22px;
    color: var(--cpcc-ps-white);
    font-size: clamp(34px, 5vw, 60px);
    line-height: 1;
    letter-spacing: -.035em;
}

.cpcc-ps-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 34px;
    margin: 0;
}

.cpcc-ps-meta div { min-width: 100px; }
.cpcc-ps-meta dt { color: rgba(255,255,255,.68); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.cpcc-ps-meta dd { margin: 2px 0 0; color: #fff; font-size: 17px; font-weight: 700; }

.cpcc-ps-profile-nav {
    display: flex;
    overflow-x: auto;
    background: var(--cpcc-ps-white);
    border-bottom: 1px solid var(--cpcc-ps-line);
    box-shadow: 0 12px 28px rgba(8, 43, 69, .08);
}

.cpcc-ps-profile-nav a {
    position: relative;
    flex: 0 0 auto;
    padding: 18px 24px 16px;
    color: var(--cpcc-ps-muted);
    font-weight: 750;
    text-decoration: none;
}

.cpcc-ps-profile-nav a:hover,
.cpcc-ps-profile-nav a[aria-current="page"] { color: var(--cpcc-ps-navy); }
.cpcc-ps-profile-nav a[aria-current="page"]::after { position: absolute; right: 20px; bottom: 0; left: 20px; height: 4px; content: ""; background: var(--cpcc-ps-gold); border-radius: 4px 4px 0 0; }

.cpcc-ps-milestones {
    margin-top: 18px;
    padding: 20px 22px;
    color: #fff;
    background: linear-gradient(115deg, #0c3654, #174f70);
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(8, 43, 69, .12);
}
.cpcc-ps-milestones-heading { display: flex; align-items: end; justify-content: space-between; gap: 18px; margin-bottom: 14px; }
.cpcc-ps-milestones-heading .cpcc-ps-kicker { margin-bottom: 3px; }
.cpcc-ps-milestones-heading h2 { margin: 0; color: #fff; font-size: clamp(20px, 2.4vw, 27px); letter-spacing: -.02em; }
.cpcc-ps-milestones-heading > a { color: #fff; font-size: 12px; font-weight: 800; text-underline-offset: 3px; }
.cpcc-ps-milestone-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cpcc-ps-milestone-item { min-width: 0; padding: 13px 14px 12px; background: rgba(255, 255, 255, .09); border: 1px solid rgba(255, 255, 255, .12); border-radius: 9px; }
.cpcc-ps-milestone-copy { display: grid; gap: 1px; }
.cpcc-ps-milestone-copy span { color: #f8d56c; font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.cpcc-ps-milestone-copy strong { overflow: hidden; color: #fff; font-size: 16px; text-overflow: ellipsis; white-space: nowrap; }
.cpcc-ps-milestone-copy small { color: rgba(255, 255, 255, .7); font-size: 11px; }
.cpcc-ps-milestone-progress { height: 4px; margin-top: 10px; overflow: hidden; background: rgba(255, 255, 255, .15); border-radius: 999px; }
.cpcc-ps-milestone-progress span { display: block; height: 100%; background: var(--cpcc-ps-gold); border-radius: inherit; }

.cpcc-ps-section,
.cpcc-ps-explore {
    margin-top: 24px;
    padding: clamp(22px, 4vw, 42px);
    background: var(--cpcc-ps-white);
    border: 1px solid var(--cpcc-ps-line);
    border-radius: 14px;
    box-shadow: 0 10px 28px rgba(8, 43, 69, .06);
}

.cpcc-ps-section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 28px;
}

.cpcc-ps-section-heading h2,
.cpcc-ps-explore h2 { margin: 0; color: var(--cpcc-ps-navy); font-size: clamp(25px, 3vw, 36px); letter-spacing: -.025em; }
.cpcc-ps-section-heading > p { max-width: 530px; margin: 0; color: var(--cpcc-ps-muted); line-height: 1.55; text-align: right; }
.cpcc-ps-section h3 { margin: 30px 0 10px; color: var(--cpcc-ps-navy); font-size: 17px; }
.cpcc-ps-section h3:first-of-type { margin-top: 0; }
.cpcc-ps-player-story { font-size: 16px; line-height: 1.7; }
.cpcc-ps-player-story > :first-child { margin-top: 0; }
.cpcc-ps-player-story > :last-child { margin-bottom: 0; }

.cpcc-ps-table-wrap {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    border: 1px solid var(--cpcc-ps-line);
    border-radius: 9px;
    scrollbar-color: #9aabb5 transparent;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
}

.cpcc-ps-table-wrap::-webkit-scrollbar { height: 7px; }
.cpcc-ps-table-wrap::-webkit-scrollbar-thumb { background: #9aabb5; border-radius: 999px; }
.cpcc-ps-table-wrap::-webkit-scrollbar-track { background: transparent; }

.cpcc-ps-table {
    width: 100%;
    min-width: 760px;
    margin: 0 !important;
    border: 0 !important;
    border-collapse: collapse;
    background: #fff;
    font-size: 14px;
}

.cpcc-ps-table th,
.cpcc-ps-table td {
    padding: 12px 13px !important;
    border: 0 !important;
    border-bottom: 1px solid var(--cpcc-ps-line) !important;
    text-align: right;
    white-space: nowrap;
}

.cpcc-ps-table thead th {
    color: #fff;
    background: var(--cpcc-ps-navy);
    font-size: 11px;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.cpcc-ps-sort-button {
    display: inline-flex;
    width: 100%;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    margin: 0;
    padding: 0;
    color: inherit;
    background: transparent;
    border: 0;
    font: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    text-align: inherit;
    text-transform: inherit;
    cursor: pointer;
}

.cpcc-ps-sort-button::after {
    min-width: 10px;
    content: "↕";
    font-size: 12px;
    line-height: 1;
    opacity: .5;
}

.cpcc-ps-table th:first-child .cpcc-ps-sort-button { justify-content: flex-start; }
.cpcc-ps-table th[aria-sort="ascending"] .cpcc-ps-sort-button::after { content: "↑"; opacity: 1; }
.cpcc-ps-table th[aria-sort="descending"] .cpcc-ps-sort-button::after { content: "↓"; opacity: 1; }
.cpcc-ps-sort-button:hover::after { opacity: 1; }
.cpcc-ps-sort-button:focus-visible { outline: 2px solid var(--cpcc-ps-gold); outline-offset: 3px; border-radius: 2px; }

.cpcc-ps-table th:first-child,
.cpcc-ps-table td:first-child { position: sticky; left: 0; z-index: 1; text-align: left; }
.cpcc-ps-table thead th:first-child { z-index: 2; background: var(--cpcc-ps-navy); }
.cpcc-ps-table tbody th:first-child,
.cpcc-ps-table tbody td:first-child { background: #fff; }
.cpcc-ps-table tbody tr:nth-child(even) th:first-child,
.cpcc-ps-table tbody tr:nth-child(even) td:first-child,
.cpcc-ps-table tbody tr:nth-child(even) { background: #f8fafb; }
.cpcc-ps-table tbody tr:last-child th,
.cpcc-ps-table tbody tr:last-child td { border-bottom: 0 !important; }
.cpcc-ps-table a { color: #0867a0; font-weight: 750; text-decoration: none; }
.cpcc-ps-table a:hover { text-decoration: underline; }

.cpcc-ps-card-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-top: 24px;
}

.cpcc-ps-card-grid a {
    display: flex;
    min-height: 135px;
    flex-direction: column;
    justify-content: flex-end;
    padding: 20px;
    color: var(--cpcc-ps-ink);
    background: var(--cpcc-ps-soft);
    border: 1px solid var(--cpcc-ps-line);
    border-radius: 10px;
    text-decoration: none;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}

.cpcc-ps-card-grid a:hover { transform: translateY(-2px); border-color: var(--cpcc-ps-gold); box-shadow: 0 10px 22px rgba(8,43,69,.08); }
.cpcc-ps-card-grid strong { color: var(--cpcc-ps-navy); font-size: 17px; }
.cpcc-ps-card-grid span { margin-top: 6px; color: var(--cpcc-ps-muted); font-size: 13px; line-height: 1.45; }

.cpcc-ps-filter-form {
    display: grid;
    grid-template-columns: repeat(5, minmax(130px, 1fr));
    gap: 13px;
    margin: 0 0 22px;
    padding: 18px;
    background: var(--cpcc-ps-soft);
    border: 1px solid var(--cpcc-ps-line);
    border-radius: 10px;
}

.cpcc-ps-filter-form-compact { grid-template-columns: repeat(2, minmax(170px, 260px)) auto auto; align-items: end; }
.cpcc-ps-filter { display: flex; min-width: 0; flex-direction: column; gap: 5px; }
.cpcc-ps-filter > span { color: var(--cpcc-ps-muted); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cpcc-ps-filter select { width: 100%; height: 42px; margin: 0; padding: 0 34px 0 10px; color: var(--cpcc-ps-ink); background-color: #fff; border: 1px solid #cdd6dc; border-radius: 6px; font-size: 13px; }
.cpcc-ps-filter-actions { display: flex; align-items: center; gap: 13px; grid-column: 1 / -1; }
.cpcc-ps-filter-form button { min-height: 42px; padding: 9px 18px; color: #fff; background: var(--cpcc-ps-navy); border: 0; border-radius: 6px; font-weight: 750; cursor: pointer; }
.cpcc-ps-filter-form button:hover { background: var(--cpcc-ps-navy-2); }
.cpcc-ps-clear { color: var(--cpcc-ps-navy); font-weight: 750; }

.cpcc-ps-dimension-nav {
    display: flex;
    gap: 7px;
    margin-bottom: 14px;
    overflow-x: auto;
}

.cpcc-ps-dimension-nav a {
    flex: 0 0 auto;
    padding: 8px 13px;
    color: var(--cpcc-ps-navy);
    background: #fff;
    border: 1px solid var(--cpcc-ps-line);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.cpcc-ps-dimension-nav a[aria-current="page"] { color: var(--cpcc-ps-navy); background: var(--cpcc-ps-gold); border-color: var(--cpcc-ps-gold); }
.cpcc-ps-result-count { margin: 0 0 8px; color: var(--cpcc-ps-muted); font-size: 12px; }
.cpcc-ps-footnote { margin: 10px 0 0; color: var(--cpcc-ps-muted); font-size: 12px; }

.cpcc-ps-record-summary {
    display: grid;
    grid-template-columns: 1.35fr repeat(4, minmax(90px, 1fr));
    gap: 10px;
    margin: 0 0 22px;
}
.cpcc-ps-record-summary > div { display: flex; min-height: 92px; flex-direction: column; justify-content: center; padding: 15px 17px; background: var(--cpcc-ps-soft); border: 1px solid var(--cpcc-ps-line); border-radius: 9px; }
.cpcc-ps-record-summary span { color: var(--cpcc-ps-muted); font-size: 11px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.cpcc-ps-record-summary strong { margin-top: 3px; color: var(--cpcc-ps-navy); font-size: 28px; line-height: 1; }
.cpcc-ps-record-summary small { margin-top: 5px; color: var(--cpcc-ps-muted); }
.cpcc-ps-record-summary .cpcc-ps-win-rate { color: #fff; background: var(--cpcc-ps-navy); border-color: var(--cpcc-ps-navy); }
.cpcc-ps-record-summary .cpcc-ps-win-rate span,
.cpcc-ps-record-summary .cpcc-ps-win-rate small { color: rgba(255,255,255,.7); }
.cpcc-ps-record-summary .cpcc-ps-win-rate strong { color: var(--cpcc-ps-gold); font-size: 36px; }
.cpcc-ps-record-summary > p { grid-column: 1 / -1; margin: 0; color: var(--cpcc-ps-muted); font-size: 12px; }

.cpcc-ps-notice,
.cpcc-ps-empty {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 20px;
    color: var(--cpcc-ps-navy);
    background: #fff9df;
    border: 1px solid #eedb8d;
    border-left: 5px solid var(--cpcc-ps-gold);
    border-radius: 8px;
}
.cpcc-ps-notice span { color: var(--cpcc-ps-muted); }
.cpcc-ps-empty { margin-top: 12px; }

.cpcc-ps-result { display: inline-block; padding: 3px 7px; border-radius: 4px; font-size: 11px; font-weight: 850; }
.cpcc-ps-result-win { color: #17663a; background: #dff4e8; }
.cpcc-ps-result-loss { color: #8c2f2f; background: #f8e4e4; }
.cpcc-ps-result-draw { color: #665615; background: #fff3c9; }
.cpcc-ps-result-no-result { color: #52616d; background: #e8edf0; }

.cpcc-ps-page.is-loading #cpcc-analysis-results { opacity: .45; transition: opacity .15s; }

/* Trophy cabinet */
.cpcc-ps-badge-shelf { display: flex; flex-wrap: wrap; gap: 14px; }
.cpcc-ps-honour { position: relative; display: flex; width: 126px; min-height: 126px; flex-direction: column; align-items: center; justify-content: center; gap: 9px; padding: 15px 10px; color: var(--cpcc-ps-navy); background: var(--cpcc-ps-soft); border: 1px solid var(--cpcc-ps-line); border-radius: 12px; font-size: 12px; font-weight: 800; text-align: center; outline: none; }
.cpcc-ps-honour-icon { display: grid; width: 54px; height: 54px; place-items: center; color: #8c9ba5; background: #e5ebef; border-radius: 50%; }
.cpcc-ps-honour-icon svg { width: 34px; height: 34px; fill: currentColor; }
.cpcc-ps-honour.is-captain .cpcc-ps-honour-icon { color: #8b5a00; background: linear-gradient(145deg, #ffe891, var(--cpcc-ps-gold)); box-shadow: 0 7px 18px rgba(244,189,25,.3); }
.cpcc-ps-honour-achievement .cpcc-ps-honour-icon { color: #fff; background: var(--cpcc-ps-navy-2); }
.cpcc-ps-honour-perpetual { width: 164px; min-height: 158px; background: linear-gradient(160deg, #fff 0%, #f4f1e8 100%); border-color: #d9cfb4; line-height: 1.25; }
.cpcc-ps-honour-perpetual .cpcc-ps-honour-icon { width: 64px; height: 64px; color: var(--cpcc-ps-navy); background: linear-gradient(145deg, #fff, #e8e5dd); border: 1px solid #ded7c5; box-shadow: inset 0 1px 0 #fff, 0 5px 14px rgba(28,39,47,.09); }
.cpcc-ps-honour-perpetual .cpcc-ps-honour-icon svg { width: 46px; height: 46px; }
.cpcc-ps-honour-perpetual small { color: #6b747a; font-size: 10px; font-weight: 750; line-height: 1.2; }
.cpcc-ps-honour-icon .cpcc-icon-metal { fill: #b9c3ca; }
.cpcc-ps-honour-icon .cpcc-icon-dark { fill: #28343d; }
.cpcc-ps-honour-icon .cpcc-icon-wood { fill: #704630; }
.cpcc-ps-honour-icon .cpcc-icon-gold { fill: #d4a628; }
.cpcc-ps-honour-icon .cpcc-icon-red { fill: #8f262d; }
.cpcc-ps-honour-icon .cpcc-icon-navy { fill: #18364b; }
.cpcc-ps-honour-williams-column .cpcc-ps-honour-icon,
.cpcc-ps-honour-eade-shield .cpcc-ps-honour-icon { background: linear-gradient(145deg, #fff8ef, #eadfd2); }
.cpcc-ps-honour-huxley-gold-cup .cpcc-ps-honour-icon { background: linear-gradient(145deg, #fff9dc, #efe1a7); }
.cpcc-ps-icon-cut { fill: none; stroke: #fff; stroke-width: 1.5; }
.cpcc-ps-honour::after { position: absolute; z-index: 5; bottom: calc(100% + 8px); left: 50%; width: max-content; max-width: 230px; padding: 7px 9px; content: attr(data-tooltip); color: #fff; background: #101b23; border-radius: 5px; font-size: 11px; font-weight: 650; line-height: 1.35; opacity: 0; pointer-events: none; text-align: center; transform: translate(-50%, 5px); transition: opacity .15s, transform .15s; }
.cpcc-ps-honour:hover::after, .cpcc-ps-honour:focus::after { opacity: 1; transform: translate(-50%, 0); }

/* Record book */
.cpcc-lb-hero { padding: clamp(34px, 6vw, 76px); color: #fff; background: radial-gradient(circle at 84% 10%, rgba(244,189,25,.2), transparent 28%), linear-gradient(125deg, var(--cpcc-ps-navy), var(--cpcc-ps-navy-2)); border-radius: 18px 18px 0 0; box-shadow: 0 16px 42px rgba(8,43,69,.17); }
.cpcc-lb-hero h1 { max-width: 800px; margin: 0; color: #fff; font-size: clamp(38px, 6vw, 68px); line-height: .98; letter-spacing: -.045em; }
.cpcc-lb-hero > p:last-child { max-width: 720px; margin: 18px 0 0; color: rgba(255,255,255,.75); font-size: 17px; line-height: 1.6; }
.cpcc-lb-nav { display: flex; gap: 0; overflow-x: auto; background: #fff; border-bottom: 1px solid var(--cpcc-ps-line); box-shadow: 0 12px 28px rgba(8,43,69,.08); }
.cpcc-lb-nav a { position: relative; flex: 0 0 auto; padding: 17px 18px 15px; color: var(--cpcc-ps-muted); font-size: 13px; font-weight: 800; text-decoration: none; }
.cpcc-lb-nav a:hover, .cpcc-lb-nav a[aria-current="page"] { color: var(--cpcc-ps-navy); }
.cpcc-lb-nav a[aria-current="page"]::after { position: absolute; right: 15px; bottom: 0; left: 15px; height: 4px; content: ""; background: var(--cpcc-ps-gold); border-radius: 4px 4px 0 0; }
.cpcc-lb-filters { margin-top: 24px; grid-template-columns: repeat(4, minmax(145px, 1fr)); }
.cpcc-results-filters { grid-template-columns: repeat(3, minmax(170px, 1fr)); }
.cpcc-results-summary { margin-top: 22px; margin-bottom: 0; }
.cpcc-lb-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; margin-top: 22px; }
.cpcc-lb-card { min-width: 0; padding: 25px; background: #fff; border: 1px solid var(--cpcc-ps-line); border-radius: 13px; box-shadow: 0 9px 25px rgba(8,43,69,.055); }
.cpcc-lb-page-shearer-winners .cpcc-lb-card,
.cpcc-lb-page-shearer-points-by-season .cpcc-lb-card { grid-column: 1 / -1; }
.cpcc-lb-page-results-explorer #matching-results { grid-column: 1 / -1; }
.cpcc-lb-card-heading { display: flex; min-height: 58px; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 17px; }
.cpcc-lb-card-heading h2 { margin: 0; color: var(--cpcc-ps-navy); font-size: 22px; letter-spacing: -.025em; }
.cpcc-lb-card-heading p { margin: 5px 0 0; color: var(--cpcc-ps-muted); font-size: 12px; line-height: 1.45; }
.cpcc-lb-card-heading > span { flex: 0 0 auto; padding: 4px 8px; color: var(--cpcc-ps-navy); background: #eef3f6; border-radius: 999px; font-size: 10px; font-weight: 850; text-transform: uppercase; }
.cpcc-lb-table { min-width: 540px; }
.cpcc-lb-table th:first-child, .cpcc-lb-table td:first-child { width: 45px; min-width: 45px; text-align: center; }
.cpcc-lb-table th:nth-child(2), .cpcc-lb-table td:nth-child(2) { text-align: left; }
.cpcc-lb-rank { color: #87949d; font-size: 12px; font-weight: 850; }
.cpcc-lb-match-link { color: #0867a0; font-weight: 800; text-decoration-thickness: 1px; text-underline-offset: 3px; }
#matching-results .cpcc-lb-table { min-width: 1120px; }
.cpcc-lb-source-note { margin: 24px 0 0; padding: 16px 18px; color: var(--cpcc-ps-muted); background: #fff; border: 1px solid var(--cpcc-ps-line); border-radius: 9px; font-size: 12px; line-height: 1.6; }
.cpcc-milestone-list { display: grid; gap: 8px; }
.cpcc-milestone-list a { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 13px 14px; color: var(--cpcc-ps-ink); background: var(--cpcc-ps-soft); border: 1px solid transparent; border-radius: 8px; text-decoration: none; }
.cpcc-milestone-list a:hover { border-color: var(--cpcc-ps-gold); }
.cpcc-milestone-list span { display: flex; flex-direction: column; }
.cpcc-milestone-list strong { color: var(--cpcc-ps-navy); }
.cpcc-milestone-list small { margin-top: 2px; color: var(--cpcc-ps-muted); }
.cpcc-milestone-list em { flex: 0 0 auto; color: #8b5a00; font-size: 13px; font-style: normal; font-weight: 850; }

/* Player search */
.cpcc-search-hero { border-radius: 18px; }
.cpcc-search-form { display: flex; max-width: 720px; gap: 9px; margin-top: 25px; }
.cpcc-search-form input { min-width: 0; flex: 1; height: 50px; padding: 0 16px; color: var(--cpcc-ps-ink); background: #fff; border: 0; border-radius: 7px; font-size: 15px; }
.cpcc-search-form button { flex: 0 0 auto; padding: 0 20px; color: var(--cpcc-ps-navy); background: var(--cpcc-ps-gold); border: 0; border-radius: 7px; font-weight: 850; cursor: pointer; }
.cpcc-search-summary { margin: 24px 0 10px; color: var(--cpcc-ps-muted); font-size: 13px; font-weight: 750; }
.cpcc-search-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.cpcc-search-card { display: grid; grid-template-columns: 112px minmax(0,1fr); min-width: 0; overflow: hidden; background: #fff; border: 1px solid var(--cpcc-ps-line); border-radius: 12px; box-shadow: 0 8px 22px rgba(8,43,69,.055); }
.cpcc-search-card-photo { display: block; min-height: 218px; color: #fff; background: linear-gradient(145deg, var(--cpcc-ps-navy-2), var(--cpcc-ps-navy)); text-decoration: none; }
.cpcc-search-card-photo img { width: 100%; height: 100%; object-fit: cover; }
.cpcc-search-card-photo span { display: grid; width: 100%; height: 100%; place-items: center; font-size: 48px; font-weight: 850; }
.cpcc-search-card-body { min-width: 0; padding: 17px; }
.cpcc-search-card-body > p { margin: 0 0 2px; color: #997000; font-size: 9px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.cpcc-search-card h2 { margin: 0; overflow: hidden; font-size: 20px; line-height: 1.15; text-overflow: ellipsis; }
.cpcc-search-card h2 a { color: var(--cpcc-ps-navy); text-decoration: none; }
.cpcc-search-card-body > span { display: block; margin-top: 5px; color: var(--cpcc-ps-muted); font-size: 11px; }
.cpcc-search-card dl { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 16px 0; }
.cpcc-search-card dl div { min-width: 0; }
.cpcc-search-card dt { color: var(--cpcc-ps-muted); font-size: 8px; font-weight: 800; text-transform: uppercase; }
.cpcc-search-card dd { margin: 1px 0 0; color: var(--cpcc-ps-ink); font-size: 13px; font-weight: 850; }
.cpcc-search-card-link { color: #0867a0; font-size: 12px; font-weight: 800; text-decoration: none; }
.cpcc-search-pagination ul { display: flex; flex-wrap: wrap; gap: 6px; margin: 24px 0 0; padding: 0; list-style: none; }
.cpcc-search-pagination a, .cpcc-search-pagination span { display: block; padding: 8px 11px; color: var(--cpcc-ps-navy); background: #fff; border: 1px solid var(--cpcc-ps-line); border-radius: 5px; text-decoration: none; }
.cpcc-search-pagination .current { background: var(--cpcc-ps-gold); border-color: var(--cpcc-ps-gold); font-weight: 850; }
.cpcc-search-empty { margin-top: 24px; }

@media (max-width: 1020px) {
    .cpcc-ps-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cpcc-ps-filter-form { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
    .cpcc-ps-record-summary { grid-template-columns: repeat(3, 1fr); }
    .cpcc-ps-record-summary .cpcc-ps-win-rate { grid-column: span 2; }
    .cpcc-lb-grid { grid-template-columns: 1fr; }
    .cpcc-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 720px) {
    .cpcc-ps-page { padding: 12px 10px 48px; }
    .cpcc-ps-hero { grid-template-columns: 105px minmax(0, 1fr); min-height: 165px; border-radius: 12px 12px 0 0; }
    .cpcc-ps-photo-wrap, .cpcc-ps-photo { min-height: 165px; }
    .cpcc-ps-photo-placeholder { font-size: 44px; }
    .cpcc-ps-identity { padding: 22px 18px; }
    .cpcc-ps-identity h1 { margin-bottom: 16px; font-size: clamp(28px, 9vw, 42px); }
    .cpcc-ps-meta { gap: 10px 20px; }
    .cpcc-ps-meta div { min-width: 80px; }
    .cpcc-ps-profile-nav a { padding: 15px 16px 13px; }
    .cpcc-ps-milestones { margin-top: 12px; padding: 17px 14px; }
    .cpcc-ps-milestones-heading { display: block; }
    .cpcc-ps-milestones-heading > a { display: inline-block; margin-top: 7px; }
    .cpcc-ps-milestone-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cpcc-ps-section, .cpcc-ps-explore { margin-top: 14px; padding: 20px 14px; border-radius: 10px; }
    .cpcc-ps-section-heading { display: block; margin-bottom: 20px; }
    .cpcc-ps-section-heading > p { margin-top: 9px; text-align: left; }
    .cpcc-ps-table-wrap { background: #fff; }
    .cpcc-ps-table { font-size: 13px; }
    .cpcc-ps-table th,
    .cpcc-ps-table td { padding: 10px 8px !important; }
    .cpcc-ps-table th:first-child,
    .cpcc-ps-table td:first-child {
        width: 132px;
        max-width: 132px;
        white-space: normal;
        overflow-wrap: anywhere;
        line-height: 1.3;
        box-shadow: 10px 0 13px -13px rgba(8, 43, 69, .85);
    }
    .cpcc-ps-table th:first-child .cpcc-ps-sort-button { white-space: normal; }
    .cpcc-lb-table th:first-child,
    .cpcc-lb-table td:first-child {
        width: 42px;
        min-width: 42px;
        max-width: 42px;
        white-space: nowrap;
    }
    .cpcc-lb-table th:nth-child(2),
    .cpcc-lb-table td:nth-child(2) { min-width: 0; }
    .cpcc-lb-table,
    #matching-results .cpcc-lb-table {
        width: max-content;
        min-width: 100%;
    }
    .cpcc-lb-table .cpcc-lb-col-player-name {
        width: 128px;
        min-width: 128px;
        max-width: 128px;
        line-height: 1.25;
        overflow-wrap: break-word;
        white-space: normal;
    }
    .cpcc-lb-table .cpcc-lb-col-label,
    .cpcc-lb-table .cpcc-lb-col-ground,
    .cpcc-lb-table .cpcc-lb-col-opponent {
        width: 148px;
        min-width: 148px;
        max-width: 148px;
        line-height: 1.25;
        overflow-wrap: break-word;
        white-space: normal;
    }
    .cpcc-lb-table .cpcc-lb-col-match-date {
        width: 92px;
        min-width: 92px;
        max-width: 92px;
    }
    .cpcc-lb-table .cpcc-lb-col-season { width: 82px; min-width: 82px; max-width: 82px; }
    .cpcc-lb-table .cpcc-lb-col-grade,
    .cpcc-lb-table .cpcc-lb-col-grades-display,
    .cpcc-lb-table .cpcc-lb-col-status {
        width: 118px;
        min-width: 118px;
        max-width: 118px;
        line-height: 1.25;
        overflow-wrap: break-word;
        white-space: normal;
    }
    .cpcc-ps-summary-table th:first-child,
    .cpcc-ps-summary-table td:first-child {
        width: 92px;
        min-width: 92px;
        max-width: 92px;
        white-space: nowrap;
    }
    .cpcc-ps-season-table th:first-child,
    .cpcc-ps-season-table td:first-child {
        width: 92px;
        min-width: 92px;
        max-width: 92px;
        white-space: nowrap;
    }
    .cpcc-ps-analysis-table th:first-child,
    .cpcc-ps-analysis-table td:first-child {
        width: 120px;
        min-width: 120px;
        max-width: 120px;
    }
    .cpcc-ps-analysis-table.cpcc-ps-dimension-position th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-position td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-grade th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-grade td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-season th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-season td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-format th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-format td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-match_type th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-match_type td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-captain_status th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-captain_status td:first-child {
        width: 92px;
        min-width: 92px;
        max-width: 92px;
    }
    .cpcc-ps-match-table th:first-child,
    .cpcc-ps-match-table td:first-child {
        width: 92px;
        min-width: 92px;
        max-width: 92px;
        white-space: nowrap;
    }
    .cpcc-ps-match-table th:nth-child(2),
    .cpcc-ps-match-table td:nth-child(2) { min-width: 78px; }
    .cpcc-ps-card-grid { grid-template-columns: 1fr; }
    .cpcc-ps-card-grid a { min-height: 105px; }
    .cpcc-ps-filter-form,
    .cpcc-ps-filter-form-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 13px; }
    .cpcc-ps-filter-form-compact button,
    .cpcc-ps-filter-form-compact .cpcc-ps-clear { align-self: center; }
    .cpcc-ps-record-summary { grid-template-columns: repeat(2, 1fr); }
    .cpcc-ps-record-summary .cpcc-ps-win-rate { grid-column: 1 / -1; }
    .cpcc-lb-hero { padding: 35px 22px; border-radius: 12px 12px 0 0; }
    .cpcc-lb-nav a { padding: 15px 14px 13px; }
    .cpcc-lb-filters { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .cpcc-results-filters { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .cpcc-lb-card { padding: 18px 13px; }
    #shearer-season-points .cpcc-lb-table { width: 100%; min-width: 0; table-layout: fixed; }
    #shearer-season-points .cpcc-lb-table th:first-child,
    #shearer-season-points .cpcc-lb-table td:first-child { display: none; }
    #shearer-season-points .cpcc-lb-table th:nth-child(2),
    #shearer-season-points .cpcc-lb-table td:nth-child(2) { width: 72%; min-width: 0; }
    #shearer-season-points .cpcc-lb-table th:nth-child(3),
    #shearer-season-points .cpcc-lb-table td:nth-child(3) { width: 28%; text-align: right; }
    .cpcc-search-grid { grid-template-columns: 1fr; }
}

@media (max-width: 600px) {
    #shearer-winners-table .cpcc-ps-table-wrap { overflow: visible; }
    #shearer-winners-table .cpcc-lb-table,
    #shearer-winners-table .cpcc-lb-table tbody { display: block; width: 100%; min-width: 0; }
    #shearer-winners-table .cpcc-lb-table thead { display: none; }
    #shearer-winners-table .cpcc-lb-table tbody { display: grid; gap: 9px; }
    #shearer-winners-table .cpcc-lb-table tbody tr {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas: "season points" "winner points" "grade points";
        gap: 2px 14px;
        padding: 13px 14px;
        background: #f7f9fa;
        border: 1px solid #e2e8ec;
        border-radius: 9px;
    }
    #shearer-winners-table .cpcc-lb-table td {
        position: static;
        display: block;
        width: auto;
        min-width: 0;
        max-width: none;
        padding: 0 !important;
        background: transparent;
        border: 0;
        box-shadow: none;
        white-space: normal;
    }
    #shearer-winners-table .cpcc-lb-table td:first-child { display: none; }
    #shearer-winners-table .cpcc-lb-table td:nth-child(2) { grid-area: season; color: #74828c; font-size: 11px; font-weight: 800; }
    #shearer-winners-table .cpcc-lb-table td:nth-child(3) { grid-area: winner; font-size: 15px; font-weight: 850; line-height: 1.3; }
    #shearer-winners-table .cpcc-lb-table td:nth-child(4) { grid-area: grade; color: #74828c; font-size: 10px; font-weight: 750; letter-spacing: .03em; }
    #shearer-winners-table .cpcc-lb-table td:nth-child(5) { grid-area: points; align-self: center; color: var(--cpcc-ps-navy); font-size: 20px; font-weight: 900; text-align: right; }
    #shearer-winners-table .cpcc-lb-table td:nth-child(5)::after { content: " pts"; color: #74828c; font-size: 9px; font-weight: 800; text-transform: uppercase; }
}

@media (max-width: 430px) {
    .cpcc-ps-hero { grid-template-columns: 82px minmax(0, 1fr); }
    .cpcc-ps-photo-wrap, .cpcc-ps-photo { min-height: 150px; }
    .cpcc-ps-identity { padding: 18px 13px; }
    .cpcc-ps-eyebrow { font-size: 10px; }
    .cpcc-ps-identity h1 { font-size: 30px; }
    .cpcc-ps-meta div:nth-child(n+3) { display: none; }
    .cpcc-ps-filter-form,
    .cpcc-ps-filter-form-compact { grid-template-columns: 1fr; }
    .cpcc-results-filters { grid-template-columns: 1fr; }
    .cpcc-ps-record-summary { grid-template-columns: 1fr 1fr; }
    .cpcc-ps-table th:first-child,
    .cpcc-ps-table td:first-child {
        width: 112px;
        max-width: 112px;
    }
    .cpcc-lb-table th:first-child,
    .cpcc-lb-table td:first-child {
        width: 38px;
        min-width: 38px;
        max-width: 38px;
    }
    .cpcc-ps-table { font-size: 12px; }
    .cpcc-ps-table th,
    .cpcc-ps-table td { padding: 9px 7px !important; }
    .cpcc-lb-table .cpcc-lb-col-player-name {
        width: 116px;
        min-width: 116px;
        max-width: 116px;
    }
    .cpcc-lb-table .cpcc-lb-col-label,
    .cpcc-lb-table .cpcc-lb-col-ground,
    .cpcc-lb-table .cpcc-lb-col-opponent {
        width: 132px;
        min-width: 132px;
        max-width: 132px;
    }
    .cpcc-lb-table .cpcc-lb-col-match-date {
        width: 84px;
        min-width: 84px;
        max-width: 84px;
    }
    .cpcc-ps-summary-table th:first-child,
    .cpcc-ps-summary-table td:first-child,
    .cpcc-ps-season-table th:first-child,
    .cpcc-ps-season-table td:first-child,
    .cpcc-ps-match-table th:first-child,
    .cpcc-ps-match-table td:first-child {
        width: 84px;
        min-width: 84px;
        max-width: 84px;
    }
    .cpcc-ps-analysis-table th:first-child,
    .cpcc-ps-analysis-table td:first-child {
        width: 104px;
        min-width: 104px;
        max-width: 104px;
    }
    .cpcc-ps-analysis-table.cpcc-ps-dimension-position th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-position td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-grade th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-grade td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-season th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-season td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-format th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-format td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-match_type th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-match_type td:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-captain_status th:first-child,
    .cpcc-ps-analysis-table.cpcc-ps-dimension-captain_status td:first-child {
        width: 78px;
        min-width: 78px;
        max-width: 78px;
    }
    .cpcc-search-form { flex-direction: column; }
    .cpcc-search-form button { min-height: 46px; }
    .cpcc-search-card { grid-template-columns: 90px minmax(0,1fr); }
    .cpcc-search-card-photo { min-height: 205px; }
    .cpcc-ps-honour { width: calc(50% - 7px); min-width: 0; }
    .cpcc-ps-honour::after {
        right: 0;
        left: 0;
        width: auto;
        max-width: none;
        overflow-wrap: anywhere;
        transform: translateY(5px);
    }
    .cpcc-ps-honour:hover::after,
    .cpcc-ps-honour:focus::after { transform: translateY(0); }
}
