:root {
    --brand:#232a47;
    --deep:#171c31;
    --gold:#d7b44c;
    --paper:#13182a;
    --ink:#fffff0;
    --muted:#b5bcd0;
    --line:#3b4562;
    --surface:#20273f;
    --raised:#2b3452;
    --accent:#e0c269;
    color-scheme:dark;

}

* {
    box-sizing:border-box;
}

html {
    scroll-behavior:smooth;
}

body {
    background:var(--paper);
    color:var(--ink);
    font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
    font-size:16px;
    line-height:1.6;
    font-weight:400;
    letter-spacing:0;
}

h1,h2,h3,h4,h5,strong,b,label,th {
    color:var(--ink);
    letter-spacing:-.025em;
}

h1 {
    font-size:clamp(2.4rem,5.6vw,4.8rem);
    line-height:1.08;
    font-weight:650;
    margin:0 0 1.3rem;
}

h2 {
    font-size:clamp(1.55rem,3vw,2.2rem);
    line-height:1.2;
    margin:0 0 1rem;
}

h3 {
    font-size:1.15rem;
    margin:0 0 .5rem;
}

p {
    margin:0 0 1rem;
}

a {
    border:0;
    color:var(--accent);
    text-decoration:none;
    transition:color .15s;
}

a:hover {
    color:#f6dfa0!important;
}

a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
    outline:3px solid #b78929;
    outline-offset:4px;
}

button,input,select {
    font:inherit;
}

small,.muted {
    color:var(--muted);
}

.skip-link {
    position:absolute;
    left:1rem;
    top:-100px;
    z-index:100;
    background:var(--surface);
    padding:1rem;
}

.skip-link:focus {
    top:1rem;
}

#wrapper {
    width:100%;
    overflow:visible;
    padding-top:0;
}

#main {
    background:transparent;
}

#main>section {
    border:0;
}

.site-header {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:2rem;
    padding:1.25rem max(5vw,calc((100vw - 1240px)/2));
    background:var(--paper);
    border-bottom:1px solid var(--line);
}

.brand {
    display:flex;
    align-items:center;
    gap:.7rem;
    flex-shrink:0;
    font-size:.98rem;
    font-weight:800;
    letter-spacing:.1em;
    line-height:1.4;
}

.brand small {
    display:block;
    font-size:.54rem;
    letter-spacing:.1em;
    margin-top:.25rem;
}

.brand-logo {
    display:block;
    width:64px;
    height:64px;
    flex-shrink:0;
}

.primary-nav {
    display:flex;
    gap:1.5rem;
    flex-wrap:wrap;
    font-size:.85rem;
    font-weight:600;
}

.primary-nav a {
    padding:.5rem 0;
    color:var(--muted);
}

.primary-nav a[aria-current] {
    color:var(--accent);
    box-shadow:0 2px var(--brand);
}

.container {
    width:min(1120px,90%);
    margin:auto;
    padding:3.5rem 0;
}

.container.compact {
    padding-top:2rem;
}

.eyebrow {
    display:block;
    text-transform:uppercase;
    letter-spacing:.17em;
    font-size:.68rem;
    font-weight:750;
    margin-bottom:.85rem;
    color:var(--muted);
}

.hero {
    background:var(--deep);
    position:relative;
    color:white;
    overflow:hidden;
}

.hero .container {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:3rem;
    align-items:center;
    padding:4rem 0;
}

.hero h1,.hero h2,.hero strong {
    color:white;
}

.hero h1 em {
    color:var(--gold);
    font:italic 1.04em Georgia,serif;
}

.hero p {
    max-width:480px;
    color:#c9cedd;
}

.hero .eyebrow {
    color:var(--gold);
}

.hero-photo {
    position:relative;
    min-height:365px;
    border-radius:100px 8px 8px 8px;
    overflow:hidden;
    align-self:stretch;
}

.hero-photo img {
    width:100%;
    height:100%;
    position:absolute;
    object-fit:cover;
}

.photo-caption {
    position:absolute;
    bottom:0;
    left:0;
    right:0;
    background:linear-gradient(transparent,#171c31dd);
    padding:3rem 1.5rem 1rem;
    color:white;
    font-size:.8rem;
}

.hero-actions,.section-heading {
    display:flex;
    align-items:center;
    gap:1rem;
    flex-wrap:wrap;
}

.section-heading {
    justify-content:space-between;
    margin-bottom:1.5rem;
}

.section-heading h2,.section-heading p {
    margin:0;
}

.button,button,input[type=submit] {
    background:var(--brand);
    color:white!important;
    border:1px solid var(--brand);
    box-shadow:none;
    border-radius:6px;
    font-size:.83rem;
    letter-spacing:0;
    text-transform:none;
    font-weight:650;
    height:auto;
    line-height:1.4;
    padding:.85rem 1.2rem;
    cursor:pointer;
}

.button:hover,button:hover {
    background:#364262;
    color:white!important;
    box-shadow:none;
}

.button.light {
    background:var(--gold);
    color:var(--deep)!important;
    border-color:var(--gold);
}

.button.outline {
    color:var(--accent)!important;
    background:transparent;
    border-color:var(--line);
}

.hero .text-link {
    color:white;
    text-decoration:underline;
    text-underline-offset:5px;
}

.stat-strip {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-bottom:1px solid var(--line);
    gap:1rem;
    padding:1.5rem 0;
}

.stat-strip>div {
    padding-left:1.5rem;
    border-left:1px solid var(--line);
}

.stat-strip>div:first-child {
    border-left:0;
    padding-left:0;
}

.stat-strip strong {
    font-size:2rem;
    line-height:1.2;
    display:block;
}

.stat-strip span {
    color:var(--muted);
    font-size:.8rem;
}

.cards {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:1.1rem;
}

.card,.player-card,.badge-card {
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:12px;
    padding:1.5rem;
    box-shadow:0 6px 18px #00000016;
}

.player-card {
    display:block;
    transition:transform .15s,border-color .15s;
}

.player-card:hover {
    transform:translateY(-3px);
    border-color:#b29a55;
}

.player-card h3 {
    margin:1rem 0 .3rem;
}

.avatar {
    display:inline-grid;
    place-items:center;
    background:var(--raised);
    color:var(--accent);
    font-size:1.15rem;
    font-weight:750;
    width:48px;
    height:48px;
    border-radius:50%;
}

.player-card-top {
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.tag {
    font-size:.68rem;
    color:var(--accent);
    background:var(--raised);
    padding:.3rem .65rem;
    border-radius:20px;
    display:inline-block;
    font-weight:650;
}

.tag.gold {
    background:#40351f;
    color:var(--gold);
}

.player-meta {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    font-size:.82rem;
    margin:1rem 0;
}

.progress-label {
    display:flex;
    justify-content:space-between;
    gap:1rem;
    font-size:.76rem;
    color:var(--muted);
    margin-bottom:.5rem;
}

.progress-label strong {
    white-space:nowrap;
}

progress {
    width:100%;
    height:7px;
    display:block;
    border:0;
    border-radius:10px;
    overflow:hidden;
    background:#39425b;
    accent-color:var(--accent);
}

progress::-webkit-progress-bar {
    background:#39425b;
}

progress::-webkit-progress-value {
    background:var(--accent);
    border-radius:10px;
}

progress::-moz-progress-bar {
    background:var(--accent);
}

.section-space {
    margin-top:3.5rem;
}

.two-col {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:1.5rem;
}

.intro {
    max-width:740px;
    font-size:1.02rem;
    color:var(--muted);
}

.page-heading {
    background:#1c243d;
    border-bottom:1px solid var(--line);
}

.page-heading .container {
    padding:3rem 0 2.5rem;
}

.page-heading h1 {
    font-size:clamp(2rem,4vw,3.2rem);
    margin-bottom:.8rem;
}

.page-heading p {
    margin:0;
}

.empty-state {
    border:1px dashed #64708d;
    background:#1c2439;
    border-radius:10px;
    padding:2rem;
    color:var(--muted);
}

.table-wrap {
    overflow-x:auto;
    border:1px solid var(--line);
    border-radius:10px;
    background:var(--surface);
}

table {
    margin:0;
    width:100%;
    border-collapse:collapse;
}

table th {
    font-size:.68rem;
    text-transform:uppercase;
    letter-spacing:.06em;
    white-space:nowrap;
    background:var(--raised);
    padding:.9rem 1rem;
}

table td {
    padding:1rem;
    border-bottom:1px solid var(--line);
    font-size:.88rem;
}

table tbody tr {
    background:var(--surface)!important;
    border:0;
}

table tbody tr:last-child td {
    border:0;
}

table tbody tr:hover {
    background:#2b3552!important;
}

table td small {
    display:block;
    font-size:.73rem;
    margin-top:.25rem;
}

table.alt td,table.alt th {
    border-color:var(--line);
}

.player-link {
    font-weight:650;
    text-decoration:underline;
    text-decoration-color:#94804a;
    text-underline-offset:4px;
}

.points {
    font-weight:750;
    font-size:1.05rem;
    white-space:nowrap;
}

.rank {
    font-weight:750;
    color:#c2c9dd;
}

.round-card {
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:1rem 2rem;
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:10px;
    padding:1.4rem;
    margin-bottom:.8rem;
}

.round-card h3 {
    margin-bottom:.2rem;
}

.round-card p {
    margin:0;
}

.round-results>div {
    display:grid;
    grid-template-columns:1fr auto;
    gap:0 1rem;
    padding:.4rem 0;
}

.round-results small {
    grid-column:1/-1;
    font-size:.73rem;
}

.round-status {
    grid-column:1/-1;
    font-size:.73rem;
    border-top:1px solid var(--line);
    padding-top:.75rem;
    color:var(--muted);
}

.round-status.pending {
    color:#e5c280;
}

.badges {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:1rem;
}

.badge-card {
    padding:1.25rem;
}

.badge-icon {
    display:grid;
    place-content:center;
    border:1px dashed #727b94;
    border-radius:50%;
    width:48px;
    height:48px;
    font-family:Georgia,serif;
    font-size:1.25rem;
    margin-bottom:1rem;
    color:var(--muted);
}

.badge-card.earned {
    background:#343124;
    border-color:#927b3e;
}

.earned .badge-icon {
    background:var(--brand);
    border:0;
    color:var(--gold);
}

.badge-card p {
    font-size:.8rem;
    min-height:2.7rem;
}

.badge-card .tag {
    margin-bottom:1rem;
}

.plain-list {
    list-style:none;
    padding:0;
    margin:0;
}

.plain-list li {
    padding:.8rem 0;
    border-bottom:1px solid var(--line);
    display:flex;
    justify-content:space-between;
    gap:1rem;
}

.plain-list li:last-child {
    border:0;
}

.plain-list span {
    color:var(--muted);
    white-space:nowrap;
}

.note {
    font-size:.8rem;
    color:var(--muted);
    margin-top:1rem;
}

.search-box {
    max-width:400px;
}

.search-box label {
    font-size:.8rem;
}

.search-box input,input[type=text],input[type=date],select {
    background:var(--surface);
    border:1px solid #62708d;
    border-radius:6px;
    color:var(--ink);
    height:2.8rem;
    padding:.5rem .8rem;
}

select option {
    color:var(--ink);
    background:var(--surface);
}

.site-footer {
    background:var(--deep);
    color:#b8c0d3;
    padding:2.5rem 5%;
    display:grid;
    grid-template-columns:1fr 1fr auto;
    gap:2rem;
    margin-top:2rem;
    font-size:.8rem;
}

.site-footer a,.site-footer summary {
    color:#efefe1;
    cursor:pointer;
}

.site-footer nav {
    display:flex;
    flex-wrap:wrap;
    gap:.6rem 1.2rem;
    align-content:start;
}

.site-footer .footer-brand {
    font-weight:750;
    font-size:1rem;
}

.site-footer p {
    margin:.5rem 0;
}

.site-footer small {
    grid-column:1/-1;
    color:#b8c0d3;
}

.site-footer details nav {
    padding-top:1rem;
    max-width:200px;
}

.filter-note {
    font-size:.8rem;
    margin:1rem 0;
}

details>summary {
    cursor:pointer;
    font-weight:650;
}

details>summary+* {
    margin-top:1rem;
}

[hidden] {
    display:none!important;
}

/* Apply the 2027 palette to the existing rules, formats and score-entry pages. */
#banner {
    background:var(--brand)!important;
    top:0;
    margin-bottom:0;
    height:auto;
    min-height:0;
    padding:3rem 0!important;
}

#banner:after {
    background:var(--brand)!important;
    opacity:.9;
}

#banner h1,#banner h2 {
    color:white;
    font-size:2.8rem;
}

#banner>.inner {
    z-index:2;
}

header.major>:first-child:after {
    background:#d7b44c;
}

.spotlights>section {
    background:transparent!important;
}

.spotlights>section>.image {
    display:none;
}

.spotlights>section>.content {
    width:100%;
    padding:2rem max(5%,calc((100% - 1120px)/2));
    max-width:none;
}

#main>.inner,#main>section>.inner {
    width:min(1120px,90%);
    max-width:none;
}

#main.alt {
    background:var(--paper);
}

blockquote {
    border-color:var(--line);
}

input[type=radio]+label {
    color:var(--ink);
}

input[type=radio]+label:before {
    background:#303951;
    border-color:#7b86a3;
}

input[type=radio]:checked+label:before {
    background:var(--brand);
    color:white;
}

.kpi,.kpis .kpi {
    background:var(--surface)!important;
    color:var(--ink)!important;
    border-color:var(--line)!important;
}

.card .card-title {
    color:var(--ink);
}

@media(max-width:900px) {
    .site-header {
        flex-direction:column;
        align-items:flex-start;
        gap:.8rem;
    }
    .primary-nav {
        gap:1.25rem;
    }
    .hero .container {
        gap:2rem;
    }
    .hero-photo {
        min-height:300px;
    }
    .cards {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .badges {
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .site-footer {
        grid-template-columns:1fr 1fr;
    }
    .site-footer details {
        grid-column:1/-1;
    }
}

@media(max-width:600px) {
    body {
        font-size:15px;
    }
    .site-header {
        padding:1rem 5%;
    }
    .primary-nav {
        gap:.5rem 1rem;
        font-size:.77rem;
    }
    .hero .container {
        grid-template-columns:1fr;
        padding:2.5rem 0;
        gap:1.5rem;
    }
    .hero-photo {
        min-height:220px;
        border-radius:50px 6px 6px 6px;
    }
    .container {
        padding:2.5rem 0;
    }
    .hero h1 {
        font-size:3rem;
    }
    .cards,.two-col {
        grid-template-columns:1fr;
    }
    .stat-strip {
        grid-template-columns:repeat(2,1fr);
        gap:1.25rem;
    }
    .stat-strip>div:nth-child(3) {
        border:0;
        padding-left:0;
    }
    .stat-strip strong {
        font-size:1.6rem;
    }
    .round-card {
        grid-template-columns:1fr;
        padding:1.1rem;
    }
    .badge-card {
        padding:1rem;
    }
    .badge-card h3 {
        font-size:1rem;
    }
    .badge-card p {
        min-height:3.8rem;
    }
    .site-footer {
        grid-template-columns:1fr;
    }
    .site-footer details {
        grid-column:auto;
    }
    .section-space {
        margin-top:2.5rem;
    }
    .table-wrap {
        border-radius:8px;
    }
    .table-wrap .wide-table {
        min-width:530px;
    }
    .table-wrap.history table {
        min-width:600px;
    }
    .section-heading {
        align-items:flex-start;
    }
    .button {
        padding:.8rem 1rem;
    }
}

@media(prefers-reduced-motion:reduce) {
    * {
        scroll-behavior:auto!important;
        transition:none!important;
        animation:none!important;
    }
}

.search-box input[type=search] {
    background:var(--surface);
    border:1px solid #62708d;
    border-radius:6px;
    color:var(--ink);
    height:2.8rem;
    padding:.5rem .8rem;
    width:100%;
}

.spotlights>section>.content>.inner {
    width:100%;
    max-width:100%;
    min-width:0;
}

#banner>.inner {
    z-index:2;
}

input::placeholder {
    color:#a8b3c9!important;
    opacity:1;
}

input[type=number] {
    background:var(--surface);
    border:1px solid #62708d;
    border-radius:6px;
    color:var(--ink);
    height:2.8rem;
    padding:.5rem .8rem;
    width:100%;
}

table th {
    color:var(--ink);
}

/* Compact summaries fit on a phone; only detailed rankings need a wide table. */
.compact-table {
    table-layout:fixed;
}
.compact-table th,.compact-table td {
    white-space:normal;
    overflow-wrap:anywhere;
}
.compact-table th:last-child,.compact-table td:last-child {
    width:5.5rem;
    text-align:right;
}
@media(max-width:600px) {
    .brand-logo { width:52px; height:52px; }
    .compact-table th,.compact-table td { padding:.8rem; }
    .table-wrap .compact-table { min-width:0; }
}

.ranking-table,.all-results-table {
    table-layout:fixed;
    min-width:0;
}
.ranking-table th:first-child { width:4rem; }
.ranking-table th:nth-child(3),.all-results-table th:nth-child(2) { width:9rem; }
.ranking-table th:last-child,.all-results-table th:last-child { width:6rem; }
.ranking-table td:nth-child(2),.all-results-table td:first-child { overflow-wrap:anywhere; }
.ranking-table td:nth-child(3),.all-results-table td:nth-child(2),
.ranking-table th:nth-child(3),.all-results-table th:nth-child(2) { text-align:right; }
.ranking-table td:last-child,.all-results-table td:last-child,
.ranking-table th:last-child,.all-results-table th:last-child { text-align:right; }
.score-breakdown { font-weight:400; white-space:nowrap; }
.table-progress { max-width:180px; margin-top:.5rem; }
@media(max-width:600px) {
    .ranking-table th,.ranking-table td,.all-results-table th,.all-results-table td { padding:.75rem .4rem; }
    .ranking-table th,.all-results-table th { font-size:.6rem; letter-spacing:0; }
    .ranking-table td,.all-results-table td { font-size:.8rem; }
    .ranking-table th:first-child { width:2.2rem; }
    .ranking-table th:nth-child(3),.all-results-table th:nth-child(2) { width:6rem; }
    .ranking-table th:last-child,.all-results-table th:last-child { width:3.3rem; }
    .ranking-table td small,.all-results-table td small { font-size:.64rem; }
}

.optional-player-result { margin-top:1rem; }
.optional-player-result label { font-size:.72rem; white-space:normal!important; }
.optional-player-result input { margin-bottom:.5rem; }
.optional-round-result { padding:1rem 0; border-top:1px solid var(--line); margin-top:1rem; }
.optional-round-result h4 { margin-bottom:.4rem; }
.optional-round-result h4 small { font-size:.75rem; font-weight:400; }
.optional-round-result .note { margin:0 0 .8rem; }
.round-results .sport-result { grid-column:1/-1; }
.sport-result { color:var(--accent); font-size:.85rem; overflow-wrap:anywhere; }
.round-card p.sport-result { margin-top:.5rem; }
#save-status { color:var(--accent); }

.partner-card>.note { margin-top:0; }
.partner-record { padding:.9rem 0; border-bottom:1px solid var(--line); }
.partner-record summary { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .7rem; margin-top:.4rem; font-size:.8rem; }
.partner-record summary::before { content:'▸'; color:var(--accent); }
.partner-record details[open]>summary::before { content:'▾'; }
.partner-record summary::-webkit-details-marker { display:none; }
.partner-record summary>span { flex:1; color:var(--muted); font-weight:400; }
.partner-record strong { white-space:nowrap; font-variant-numeric:tabular-nums; }
.partner-years { background:var(--paper); border-radius:6px; padding:.4rem .65rem; margin-top:.6rem; }
.partner-years>div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:.3rem .7rem; padding:.4rem 0; font-size:.8rem; }
.partner-years small { font-size:.72rem; }
.partner-record>.player-link { overflow-wrap:anywhere; }
