/* ==========================================================
   Poor Golfers Association
   Shared Site Styles
   ========================================================== */


:root {

    --pga-green-dark: #1f4d2e;

    --pga-green: #2f6b3c;

    --pga-green-light: #e8f1e9;

    --pga-gold: #d6b24c;


    --pga-background: #f4f5f2;

    --pga-card-background: #ffffff;


    --pga-text: #222222;

    --pga-text-light: #666666;


    --pga-border: #d2d6d0;


    --pga-shadow:
        0 2px 6px
        rgba(
            0,
            0,
            0,
            0.10
        );


    --pga-radius: 8px;

}



/* ==========================================================
   Base
   ========================================================== */


* {

    box-sizing:
        border-box;

}


html,
body {

    margin: 0;

    padding: 0;

}


body {

    font-family:
        Arial,
        Helvetica,
        sans-serif;


    background:
        var(
            --pga-background
        );


    color:
        var(
            --pga-text
        );


    font-size:
        16px;


    line-height:
        1.5;

}


a {

    color:
        var(
            --pga-green
        );

}


a:hover {

    color:
        var(
            --pga-green-dark
        );

}



/* ==========================================================
   Page Layout
   ========================================================== */


.pga-page {

    max-width:
        1400px;


    margin:
        0 auto;


    padding:
        24px;

}



/* ==========================================================
   Website Development Notice
   ========================================================== */


.pga-maintenance-banner,
.pga-development-notice {

    max-width:
        1352px;


    margin:
        0 auto 18px auto;


    padding:
        14px 20px;


    background:
        #fff3cd;


    border:
        2px solid
        var(
            --pga-gold
        );


    border-radius:
        6px;


    color:
        #664d03;


    text-align:
        center;


    font-size:
        20px;


    font-weight:
        bold;

}



/* ==========================================================
   Shared Header
   ========================================================== */


.pga-site-header {

    margin-bottom:
        20px;

}


.pga-header-shell {

    max-width:
        1352px;


    margin:
        0 auto;


    min-height:
        178px;


    padding:
        18px 20px;


    display:
        flex;


    align-items:
        stretch;


    justify-content:
        space-between;


    gap:
        35px;


    background:
        var(
            --pga-green-dark
        );


    border-bottom:
        4px solid
        var(
            --pga-gold
        );


    border-radius:
        8px;


    color:
        #ffffff;

}



/* ==========================================================
   Header - Left Side
   ========================================================== */


.pga-header-left {

    flex:
        1 1 auto;


    display:
        flex;


    align-items:
        center;


    min-width:
        300px;


    padding-left:
        8px;

}


.pga-brand {

    color:
        #ffffff;


    font-size:
        30px;


    font-weight:
        bold;


    line-height:
        1.15;


    white-space:
        nowrap;

}



/* ==========================================================
   Header - Right Side
   ========================================================== */


.pga-header-right {

    flex:
        0 1 auto;


    display:
        flex;


    flex-direction:
        column;


    justify-content:
        center;


    align-items:
        flex-end;


    gap:
        7px;

}



/* ==========================================================
   Header Navigation Rows
   ========================================================== */


.pga-nav-row {

    width:
        100%;


    min-height:
        30px;


    display:
        flex;


    align-items:
        center;


    justify-content:
        flex-end;

}


.pga-nav {

    display:
        flex;


    align-items:
        center;


    justify-content:
        flex-end;


    flex-wrap:
        wrap;


    gap:
        8px;

}



/* ==========================================================
   Header Navigation Buttons
   ========================================================== */


.pga-nav-button {

    display:
        inline-block;


    padding:
        7px 13px;


    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.45
        );


    border-radius:
        5px;


    background:
        rgba(
            255,
            255,
            255,
            0.12
        );


    color:
        #ffffff;


    text-decoration:
        none;


    font-size:
        14px;


    font-weight:
        bold;


    white-space:
        nowrap;


    transition:
        background
        0.15s ease,
        color
        0.15s ease;

}


.pga-nav-button:hover {

    background:
        rgba(
            255,
            255,
            255,
            0.25
        );


    color:
        #ffffff;

}


.pga-nav-button.active {

    background:
        var(
            --pga-gold
        );


    border-color:
        var(
            --pga-gold
        );


    color:
        #222222;

}



/* ==========================================================
   Login Status
   ========================================================== */


.pga-login-status {

    color:
        #ffffff;


    font-size:
        13px;


    font-weight:
        bold;


    white-space:
        nowrap;

}



/* ==========================================================
   Cards
   ========================================================== */


.pga-card-grid {

    display:
        grid;


    grid-template-columns:
        repeat(
            auto-fit,
            minmax(
                260px,
                1fr
            )
        );


    gap:
        18px;

}


.pga-card {

    background:
        var(
            --pga-card-background
        );


    border:
        1px solid
        var(
            --pga-border
        );


    border-radius:
        var(
            --pga-radius
        );


    box-shadow:
        var(
            --pga-shadow
        );


    padding:
        20px;

}


.pga-card h2 {

    margin:
        0 0 8px 0;


    color:
        var(
            --pga-green-dark
        );


    font-size:
        20px;

}


.pga-card p {

    margin:
        0 0 16px 0;


    color:
        var(
            --pga-text-light
        );

}


.pga-card.disabled {

    opacity:
        0.60;

}


.pga-card-status {

    display:
        inline-block;


    padding:
        4px 8px;


    background:
        #eeeeee;


    border-radius:
        4px;


    color:
        #666666;


    font-size:
        12px;


    font-weight:
        bold;

}



/* ==========================================================
   Card Buttons
   ========================================================== */


.pga-card-button {

    display:
        inline-block;


    padding:
        9px 15px;


    background:
        var(
            --pga-green
        );


    border-radius:
        5px;


    color:
        #ffffff;


    text-decoration:
        none;


    font-size:
        14px;


    font-weight:
        bold;

}


.pga-card-button:hover {

    background:
        var(
            --pga-green-dark
        );


    color:
        #ffffff;

}



/* ==========================================================
   General Panels
   ========================================================== */


.pga-panel {

    background:
        #ffffff;


    border:
        1px solid
        var(
            --pga-border
        );


    border-radius:
        var(
            --pga-radius
        );


    box-shadow:
        var(
            --pga-shadow
        );


    padding:
        22px;

}


.pga-panel h1,
.pga-panel h2 {

    color:
        var(
            --pga-green-dark
        );

}


.pga-panel h1 {

    margin-top:
        0;

}



/* ==========================================================
   Login / Account Forms
   ========================================================== */


.pga-login-panel {

    width:
        min(
            520px,
            100%
        );


    margin:
        30px auto;

}


.pga-login-panel form,
.pga-settings-form {

    display:
        grid;


    gap:
        9px;

}


.pga-login-panel label,
.pga-settings-form label,
.pga-form-row label {

    font-weight:
        bold;

}


.pga-login-panel input,
.pga-settings-form input,
.pga-form-row input,
.pga-form-row select,
.pga-form-row textarea {

    width:
        100%;


    padding:
        10px;


    border:
        1px solid
        #b8bcb6;


    border-radius:
        5px;


    background:
        #ffffff;


    font:
        inherit;

}


.pga-login-panel input {

    margin-bottom:
        6px;

}


.pga-form-row {

    margin-bottom:
        14px;

}


.pga-form-help {

    margin-top:
        -2px;


    margin-bottom:
        10px;


    color:
        var(
            --pga-text-light
        );


    font-size:
        13px;

}


.pga-login-links {

    margin-top:
        16px;


    display:
        flex;


    justify-content:
        center;


    gap:
        10px;


    font-size:
        14px;

}


.pga-settings-section {

    max-width:
        700px;

}


.pga-inline-danger-form {

    margin-top:
        22px;

}



/* ==========================================================
   Buttons
   ========================================================== */


.pga-primary-button,
.pga-secondary-button {

    display:
        inline-block;


    margin-top:
        8px;


    padding:
        10px 16px;


    border-radius:
        5px;


    font-size:
        15px;


    font-weight:
        bold;


    cursor:
        pointer;

}


.pga-primary-button {

    border:
        0;


    background:
        var(
            --pga-green
        );


    color:
        #ffffff;

}


.pga-primary-button:hover {

    background:
        var(
            --pga-green-dark
        );

}


.pga-secondary-button {

    border:
        1px solid
        #999999;


    background:
        #eeeeee;


    color:
        #333333;

}



/* ==========================================================
   Messages
   ========================================================== */


.pga-error,
.pga-success {

    margin-bottom:
        16px;


    padding:
        12px 14px;


    border-radius:
        6px;

}


.pga-error {

    border:
        1px solid
        #b42318;


    background:
        #fff1f1;


    color:
        #8b1e1e;

}


.pga-success {

    border:
        1px solid
        #287a3e;


    background:
        #effaf1;


    color:
        #1d5f30;

}



/* ==========================================================
   Admin Page
   ========================================================== */


.pga-admin-grid {

    display:
        grid;


    grid-template-columns:
        repeat(
            3,
            minmax(
                0,
                1fr
            )
        );


    gap:
        18px;


    margin-top:
        18px;

}


.pga-admin-card {

    display:
        grid;


    gap:
        8px;


    padding:
        18px;


    border:
        1px solid
        var(
            --pga-border
        );


    border-radius:
        var(
            --pga-radius
        );


    background:
        #ffffff;


    box-shadow:
        var(
            --pga-shadow
        );

}


.pga-admin-card strong {

    color:
        var(
            --pga-green-dark
        );


    font-size:
        18px;

}


.pga-admin-card span {

    color:
        var(
            --pga-text-light
        );

}



/* ==========================================================
   Tables
   ========================================================== */


.pga-table {

    width:
        100%;


    border-collapse:
        collapse;


    background:
        #ffffff;

}


.pga-table th,
.pga-table td {

    padding:
        9px 10px;


    border:
        1px solid
        var(
            --pga-border
        );


    text-align:
        left;

}


.pga-table th {

    background:
        var(
            --pga-green-dark
        );


    color:
        #ffffff;


    font-weight:
        bold;

}


.pga-table tbody tr:nth-child(even) {

    background:
        #f8f9f7;

}



/* ==========================================================
   Responsive
   ========================================================== */


@media
(
    max-width:
        900px
) {

    .pga-header-shell {

        flex-direction:
            column;


        min-height:
            auto;


        gap:
            14px;

    }


    .pga-header-left {

        min-width:
            0;


        padding-left:
            0;

    }


    .pga-header-right {

        width:
            100%;


        align-items:
            flex-start;

    }


    .pga-nav-row {

        justify-content:
            flex-start;

    }


    .pga-nav {

        justify-content:
            flex-start;

    }


    .pga-brand {

        font-size:
            25px;

    }


    .pga-admin-grid {

        grid-template-columns:
            1fr;

    }

}



@media
(
    max-width:
        500px
) {

    .pga-page {

        padding:
            18px;

    }


    .pga-maintenance-banner,
    .pga-development-notice {

        margin-left:
            0;


        margin-right:
            0;


        font-size:
            17px;

    }


    .pga-card-grid {

        grid-template-columns:
            1fr;

    }


    .pga-nav-button {

        padding:
            7px 10px;


        font-size:
            13px;

    }


    .pga-login-status {

        width:
            100%;

    }

}
/* Score entry: shared site shell, horizontally scrollable 18-hole grids. */
.se-page input, .se-page select, .se-page button, .ys-nav.se-selectors select, .ys-nav.se-selectors button { font: inherit; }
.se-page input, .se-page select, .ys-nav.se-selectors select { box-sizing: border-box; padding: 7px; border: 1px solid #a9b8ae; border-radius: 5px; background: #fff; color: #183626; }
.se-page input:focus, .se-page select:focus, .se-page button:focus-visible { outline: 3px solid #b68b39; outline-offset: 2px; }
.se-page button, .ys-nav.se-selectors button { padding: 8px 13px; border: 1px solid #547b61; border-radius: 5px; background: #f3f7f4; color: #183626; cursor: pointer; }
.se-page button:hover { background: #e4eee7; }
.se-page .se-primary { background: #24583a; color: #fff; font-weight: 700; }
.se-selectors, .se-selectors form, .se-layout-form, .se-actions, .se-tee-heading, .se-confirmed { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.se-selectors { gap: 24px; margin-bottom: 24px; }
.se-round-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 16px; border-top: 1px solid #d3ded5; border-bottom: 1px solid #d3ded5; padding: 20px 0; margin: 22px 0; }
.se-round-heading h2 { margin: 5px 0; }
.se-round-heading p { margin: 5px 0; }
.se-kicker { color: #506c59; font-size: 14px; font-weight: 700; }
.se-badge { background: #e7f0e9; color: #24583a; padding: 8px 12px; border-radius: 20px; font-size: 14px; }
.se-message, .se-error { padding: 14px 16px; border-radius: 5px; }
.se-message { background: #e7f0e9; border-left: 4px solid #34764b; }
.se-error { background: #fff0ed; border-left: 4px solid #ac493c; color: #75271c; }
.se-muted { font-size: 14px; color: #53665a; }
.se-table-scroll { overflow-x: auto; max-width: 100%; margin: 12px 0 20px; border: 1px solid #d0dcd3; border-radius: 6px; }
.se-grid { border-collapse: separate; border-spacing: 0; width: 100%; font-size: 14px; }
.se-grid th, .se-grid td { text-align: center; padding: 5px; border-right: 1px solid #e0e7e2; border-bottom: 1px solid #e0e7e2; }
.se-grid thead th { background: #eaf0ec; color: #224b31; padding: 10px 6px; }
.se-grid tbody th { background: #f5f8f6; }
.se-grid input[type=number] { width: 64px; padding: 7px 4px; text-align: center; appearance: textfield; }
.se-grid input[type=number]::-webkit-inner-spin-button, .se-grid input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.se-grid input[type=checkbox], .se-tee-check input { width: 18px; height: 18px; accent-color: #24583a; }
.se-grid th:first-child, .se-grid td:first-child { position: sticky; left: 0; z-index: 1; background: #f8faf8; }
.se-grid thead th:first-child { background: #eaf0ec; z-index: 2; }
.se-scores td:first-child select, .se-blinds td:first-child select { width: 185px; }
.se-scores td:nth-child(3) select { width: 135px; }
.se-grid .se-team-separator th { text-align: left; background: #dce9df; color: #224b31; padding: 10px 12px; border-top: 2px solid #9db7a4; }
.se-not-played td { background: #f0f0f0; }
.se-not-played input:disabled, .se-not-played select:disabled { color: #606960; background: #e8ebe8; }
.se-tee { margin: 24px 0; border-top: 2px solid #a5bba9; padding-top: 16px; }
.se-tee-heading { justify-content: space-between; }
.se-tee-check { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; }
.se-tee-heading input[type=number] { width: 90px; }
.se-tee-unused input:disabled { background: #f0f2f0; color: #667268; }
.se-confirmed { justify-content: space-between; padding: 14px; background: #f0f6f1; border-radius: 6px; }
.se-actions { margin: 18px 0; }
.se-save-bar { position: sticky; bottom: 0; z-index: 4; padding: 15px; background: #fff; border: 1px solid #c1d3c6; box-shadow: 0 -3px 15px #163e2310; border-radius: 6px; }
.se-contests { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.se-contest { border: 1px solid #d0dcd3; border-radius: 6px; padding: 12px; min-width: 0; }
.se-contest h3 { margin: 0 0 14px; font-size: 18px; }
.se-contest table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: 13px; margin-bottom: 12px; }
.se-contest th { text-align: left; padding: 4px; }
.se-contest td { padding: 5px 2px; }
.se-contest th:first-child { width: 46px; }
.se-contest th:nth-child(3) { width: 75px; }
.se-contest th:last-child { width: 26px; }
.se-contest input, .se-contest select { width: 100%; min-width: 0; padding: 6px 3px; }
.se-contest td button { padding: 3px 7px; }
@media (max-width: 1050px) { .se-contests { grid-template-columns: 1fr; } .se-contest th:nth-child(3) { width: 140px; } }

/* Score-entry refinement: compact controls and two fixed identity columns. */
.se-button { display: inline-block; padding: 8px 13px; border: 1px solid #547b61; border-radius: 5px; background: #f3f7f4; color: #183626; text-decoration: none; }
.se-button:hover { background: #e4eee7; }
.se-confirmed { justify-content: flex-start; }
#se-course-content .se-grid input[type=number] { width: 44px; }
.se-tee-heading { display: grid; grid-template-columns: 170px 170px 150px repeat(3,120px); justify-content: start; align-items: center; }
.se-tee-heading label { display: flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 14px; }
.se-tee-heading input[type=number] { width: 50px; padding: 7px 3px; text-align: center; }
.se-tee-name { font-size: 18px; margin: 0; }
.se-table-scroll { cursor: grab; }
.se-table-scroll :is(input,select,textarea,button,a) { cursor: auto; }
.se-dragging { cursor: grabbing; user-select: none; }
.se-scores { --se-played-width: 58px; }
.se-scores th { white-space: pre-line; }
.se-scores td { background: #fff; }
.se-scores th:first-child, .se-scores td:first-child { min-width: var(--se-played-width); width: var(--se-played-width); left: 0; }
.se-scores th:nth-child(2), .se-scores td:nth-child(2) { position: sticky; left: var(--se-played-width); z-index: 1; background: #f8faf8; text-align: left; }
.se-scores thead th:nth-child(2) { z-index: 2; background: #eaf0ec; }
.se-scores td:nth-child(2) select { width: 165px; }
.se-scores td:nth-child(5) { text-align: left; }
.se-scores td:nth-child(5) select { width: 120px; }
.se-scores input[type=number] { width: 32px; padding: 7px 2px; }
.se-scores td:nth-child(6) input, .se-scores td:nth-child(7) input { width: 50px; }
.se-scores .se-team-separator th { width: auto; }
.se-scores output { display: block; min-width: 32px; font-weight: 700; text-align: center; }
.se-page .se-over-par { color: #8b1717; background: #ffe0e0; border: 2px solid #bd3030; }
.se-page .se-hcp-warning { border: 2px solid #aa7900; background: #fff5cf; }
.se-row-warning { display: block; font-size: 11px; color: #7a5100; }
.se-row-warning[hidden] { display: none; }
.se-preserve { display: flex; align-items: center; gap: 8px; font-weight: 700; }
.se-preserve input { width: 18px; height: 18px; accent-color: #24583a; }
@media (max-width: 1050px) { .se-tee-heading { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 620px) { .se-tee-heading { grid-template-columns: 1fr; } }
/* Saved daily results: keep wide verification tables usable on small screens. */
.se-daily-results { margin-top: 2rem; }
.se-results-scroll { max-width: 100%; overflow-x: auto; margin-bottom: 1rem; }
.se-results-scroll table { width: 100%; border-collapse: collapse; }
.se-results-scroll th, .se-results-scroll td { padding: .55rem .75rem; text-align: left; border-bottom: 1px solid #d8dfda; }
.se-results-scroll thead { background: #edf2ee; }

/* Score-entry advisories do not change historical save validation. */
.se-scores td.se-green-cell { background: #eaf0ec; }
.se-grid input.se-validation-warning, .se-contests input.se-validation-warning,
.se-grid .se-paste-error { background: #ffe0e0; border-color: #b42318; color: #7a1710; }
.se-scores .se-team-separator.se-team-warning th { background: #ffe0e0; color: #7a1710; border-top-color: #b42318; }
.se-contests input[type=number] { text-align: center; }
.se-individual-results thead button { border: 0; background: transparent; color: inherit; font: inherit; font-weight: inherit; cursor: pointer; padding: 0; }
.se-individual-results th[aria-sort=ascending] button::after { content: ' ▲'; }
.se-individual-results th[aria-sort=descending] button::after { content: ' ▼'; }
/* Contest range errors block save; par advisories remain non-blocking. */
.se-contests input[type=number] { appearance: textfield; -moz-appearance: textfield; }
.se-contests input[type=number]::-webkit-inner-spin-button,
.se-contests input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.se-contests input.se-range-error { background: #ffe0e0; border: 2px solid #b42318; color: #7a1710; }
.se-scores td.se-summary-cell { background: #eaf0ec; }
.se-message { white-space: pre-line; }
.history-import{max-width:1400px;margin:24px auto;padding:0 18px}
.history-import form{display:flex;gap:16px;flex-wrap:wrap;align-items:center;margin:20px 0}
.history-import label{display:block}
.history-scroll{max-height:460px;overflow:auto;margin:16px 0}
.history-import table{border-collapse:collapse;width:100%}
.history-import th,.history-import td{border:1px solid #bbb;padding:8px;text-align:left;vertical-align:top}
.history-import th{background:#eee}
.history-import .history-error{background:#fde8e8;border:1px solid #b11;padding:12px}

/* Historical year summary: compact, non-sticky scorecards. */
.ys-page { max-width: 1900px; width: 98%; margin: auto; }
.ps-profile { display:flex; align-items:center; gap:20px; margin:16px 0; }
.ps-page .ps-selection { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:16px; }
.ps-selection form { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.ps-current-players { min-width:0; }
.ps-current-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-top:6px; }
.ps-page .ps-current-grid .pga-nav-button { display:flex; align-items:center; justify-content:center; text-align:center; white-space:normal; overflow-wrap:anywhere; }
.ps-current-grid [aria-current="page"] { box-shadow:inset 0 0 0 2px #183626; }
@media (max-width:600px) { .ps-current-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.ps-photo { width:288px; height:auto; max-width:40vw; max-height:384px; object-fit:contain; }
.ps-page .ps-course-header { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); align-items:center; gap:12px; }
.ps-page .ps-course-header .ys-round-nav { grid-column:3; grid-row:1; justify-content:flex-end; flex-wrap:wrap; }
.ps-page .ps-course-header h2 { grid-column:2; grid-row:1; overflow-wrap:anywhere; }
.ps-page .ps-course-header [role="group"] { grid-column:1; grid-row:1; justify-self:start; }
.ps-page .ys-week .ys-section-start { border-left:5px solid #d2d6d0; }
.ps-tee-label { display:grid; grid-template-columns:minmax(0,1fr) 9ch; align-items:center; gap:8px; }
.ps-tee-label span:last-child { text-align:right; }
.ps-page .ps-scorecard { table-layout:fixed; min-width:1320px; }
.ps-col-date { width:210px; }
.ps-col-tee { width:110px; }
.ps-col-hole { width:32px; }
.ps-col-summary { width:42px; }
.ps-page .ps-scorecard th:first-child,.ps-page .ps-scorecard td:first-child,
.ps-page .ps-scorecard th:nth-child(2),.ps-page .ps-scorecard td:nth-child(2) { white-space:normal; overflow-wrap:anywhere; }
.ps-reference-years { display:block; }
@media (max-width:900px) {
    .ps-page .ps-course-header { grid-template-columns:auto minmax(0,1fr); }
    .ps-page .ps-course-header h2 { grid-column:1 / -1; grid-row:1; }
    .ps-page .ps-course-header .ys-round-nav { grid-column:2; grid-row:2; }
    .ps-page .ps-course-header [role="group"] { grid-column:1; grid-row:2; }
    .ps-photo { width:192px; max-height:252px; }
}
.ys-page h1 { margin: 16px 0 4px; }
.ys-page h2 { margin: 12px 0 6px; }
.ys-nav { display:flex; align-items:center; flex-wrap:wrap; gap:6px; margin:10px 0; }
.ys-photo { display:block; width:auto; max-width:100%; max-height:440px; margin:12px auto; object-fit:contain; }
.ys-overflow { overflow-x:auto; }
.ys-table { border-collapse:collapse; width:100%; background:white; font-size:calc(12px + 2pt); }
.ys-table th,.ys-table td { padding:2px 4px; border:1px solid #d2d6d0; text-align:center; white-space:nowrap; }
.ys-table th { background:#e8f1e9; font-weight:bold; }
.ys-table td:first-child,.ys-table th:first-child { text-align:left; }
.ys-table button { font:inherit; cursor:pointer; background:transparent; border:0; color:inherit; }
.ys-week th[data-sort] button:hover { text-decoration:underline; }
.ys-vertical { writing-mode:vertical-rl; transform:rotate(180deg); display:inline-block; min-height:76px; padding:4px; text-align:left; }
.ys-week th { vertical-align:bottom; }
.ys-week th .ys-vertical { min-height:0; }
.ys-week th .ys-round-sort { height:210px; white-space:pre; }
.ys-week th>button:not(.ys-vertical) { display:block; margin:auto; }
.ys-scorecard { min-width:1120px; }
.ys-scorecard td:first-child { min-width:125px; }
.ys-scorecard td:nth-child(n+3):nth-child(-n+20) { min-width:26px; }
.ys-round { margin:24px 0; scroll-margin-top:8px; }
.ys-round-title { display:flex; align-items:center; justify-content:space-between; gap:12px; color:rgb(150,0,0); font-size:15px; padding:5px 0; }
.ys-round-title h2 { font-size:18px; margin:0; text-align:center; }
.ys-round-title button { cursor:pointer; font-size:15px; padding:7px 12px; min-height:34px; }
.ys-round-title [aria-pressed=true] { background:#960000; color:white; }
.ys-round-nav { display:flex; justify-content:flex-end; gap:10px; font-size:12px; }
.ys-round-nav span { color:#666; }
.ys-reference th,.ys-reference td { background:#eee; }
.ys-group-start td { border-top:3px solid #aeb8af; }
.ys-blind,.ys-blind a { font-style:italic; color:rgb(192,80,77); }
.ys-score { display:inline-flex; min-width:22px; height:22px; align-items:center; justify-content:center; border:1px solid transparent; }
.ys-birdie { border:2px solid red; border-radius:50%; }
.ys-eagle { border:4px solid red; border-radius:50%; }
.ys-table td.ys-skin { background:#d9efcf; }
.ys-legend { font-size:12px; color:#555; margin:6px 0; }

.ys-nav .pga-nav-button,.ys-round-nav .pga-nav-button { background:#2f6b3c; color:white; padding:6px 10px; }
.ys-week th:first-child>button { margin-left:0; }

.ys-scorecard .ys-section-start { border-left:5px solid #d2d6d0; }
.ys-stat-heading { vertical-align:bottom; }
.ys-champion { color:#00008b; font-weight:bold; }
.ys-round-notes p { margin:4px 0; }

.ys-scorecard thead th,.ys-scorecard thead td { font-weight:bold; }

.se-tee-heading .se-yardage-total { width:72px; background:#f3f7f4; }
.ys-round-nav [aria-disabled="true"] { opacity:0.55; cursor:default; }

/* Match the Year Summary content container without changing other site headers. */
.ys-page .pga-header-shell { max-width:none; width:100%; margin-left:0; margin-right:0; }

.ys-page .pga-maintenance-banner { max-width:none; width:100%; }

.ys-date-line,.ys-course-line { display:block; }
.trip-setup-page .player-entry-table .hcp-text { width:90px; min-width:90px; }
.trip-setup-page .player-entry-table .travel-code { width:70px; min-width:70px; text-align:center; }
.trip-setup-page .player-entry-table .van-input { width:35px; min-width:35px; }
.trip-setup-page .player-entry-table th { text-align:center; }
.trip-setup-page .player-entry-table th.left-head { text-align:left; }
.ys-table.gt-table th,.ys-table.gt-table td { text-align:center; }
.gt-table td { white-space:pre-wrap; }
.gt-table th a { display:block; color:inherit; }
.gt-table { min-width:800px; }

.ys-overflow { border-radius:8px; overflow-y:hidden; }
.ys-round-title button { border-radius:8px; }
.ys-round-title [role="group"] { display:flex; gap:4px; }
.ys-week th[data-sort="result"],.ys-week tbody td:nth-child(3) { text-align:left; }
.ys-week th[data-sort="result"]>button { margin-left:0; }
.ys-table tfoot th,.ys-table tfoot td { background:#e8f1e9; font-weight:bold; padding:7px 4px; border-top:6px solid var(--pga-background); }

.ps-scorecard .ys-player-heading > th:not(.ps-stat-heading) { vertical-align:bottom; }

.ys-nav.ys-year-selection { display:block; }
.ys-year-links { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }

/* Course history: fixed pixel columns cannot redistribute omitted contest space. */
.cs-page .cs-scorecard { table-layout:fixed; min-width:0; }
.cs-scorecard th:first-child,.cs-scorecard td:first-child,
.cs-scorecard th:nth-child(2),.cs-scorecard td:nth-child(2) { white-space:normal; overflow-wrap:anywhere; }
.cs-page .cs-selection { display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
.cs-selection form { display:flex; align-items:center; flex-wrap:wrap; gap:6px; }
.cs-page .ps-current-grid .pga-nav-button { display:flex; align-items:center; justify-content:center; text-align:center; white-space:normal; overflow-wrap:anywhere; }
.cs-page .ys-round-title { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); }
.cs-page .ys-round-title > span { text-align:right; overflow-wrap:anywhere; }
.cs-page .ys-round-nav { flex-wrap:wrap; margin-top:12px; }
.cs-year { scroll-margin-top:8px; }
@media (max-width:700px) {
    .cs-page .ys-round-title { grid-template-columns:auto minmax(0,1fr); }
    .cs-page .ys-round-title h2 { grid-column:1 / -1; grid-row:1; }
}

.se-selectors > form, .se-selectors select { min-width:0; max-width:100%; }

/* Stable navigation slots across all rounds, including page endpoints. */
.ys-fixed-nav { display:grid; grid-template-columns:124px 100px 100px 100px; gap:10px; justify-content:end; margin:8px 0; }
.ys-fixed-nav .pga-nav-button { box-sizing:border-box; text-align:center; white-space:nowrap; }
.ys-fixed-nav .ys-nav-placeholder { visibility:hidden; pointer-events:none; }
.cs-page .ys-round-title h2 { font-size:28px; align-self:center; }
.se-source-tee { min-width:90px; max-width:150px; }
@media (max-width:500px) {
    .ys-fixed-nav { grid-template-columns:124px 100px; }
}

/* Course shortcuts remain equal-size cells on one horizontally scrollable row. */
.cs-page .cs-current-grid { display:grid; grid-auto-flow:column; grid-template-columns:none; grid-auto-columns:190px; grid-template-rows:1fr; gap:6px; overflow-x:auto; padding:2px 0 6px; }
.cs-page .cs-current-grid .pga-nav-button { box-sizing:border-box; min-height:52px; margin:0; }
.cs-photo { display:block; width:auto; height:auto; max-width:min(100%,1080px); max-height:720px; object-fit:contain; margin:16px auto; }
.cs-photo[hidden] { display:none; }
.cs-history,.ps-career { font-size:1rem; }

/* Historical media: shared PGA colors and controls. */
.media-panel { overflow-wrap:anywhere; }
.media-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin:16px 0; }
.media-filters label { display:flex; flex-direction:column; gap:4px; }
.media-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:16px; }
.media-tile { display:flex; flex-direction:column; gap:6px; text-decoration:none; color:inherit; border:1px solid #bbb; border-radius:6px; padding:8px; }
.media-thumb { width:100%; height:150px; object-fit:contain; background:#eee; }
.media-placeholder { display:flex; align-items:center; justify-content:center; min-height:150px; background:#eee; color:#444; }
.media-view { display:block; max-width:100%; max-height:75vh; margin:16px auto; }
.media-pagination { display:flex; flex-wrap:wrap; gap:12px; margin:18px 0; }
.media-pagination [aria-current] { font-weight:bold; text-decoration:underline; }
.media-tags { width:100%; border-collapse:collapse; margin:20px 0; }
.media-tags caption { text-align:left; font-weight:bold; margin-bottom:8px; }
.media-tags th,.media-tags td,.media-report th,.media-report td { padding:8px; border:1px solid #bbb; text-align:left; }
.media-tags td:first-child { width:110px; }
.media-tags button { margin:3px; cursor:pointer; }
.media-panel textarea { display:block; box-sizing:border-box; width:100%; min-height:70px; }
.media-panel button { cursor:pointer; padding:7px 12px; }
.media-panel button:disabled { cursor:wait; opacity:.6; }
.media-panel progress { width:100%; }
.media-report-wrap { overflow:auto; max-height:500px; }
.media-report { border-collapse:collapse; width:100%; }
.media-crop-stage { max-width:1000px; margin:auto; }
#media-crop { display:block; max-width:100%; height:auto; touch-action:none; }
#media-crop-form input[type=number] { width:100px; }

/* Media controls use the summary form palette, not white-on-dark header buttons. */
.media-panel select, .media-panel input[type=number], .media-panel input[type=text], .media-panel input:not([type]) {
    font:inherit; box-sizing:border-box; padding:7px; min-height:38px; min-width:0; max-width:100%;
    border:1px solid #a9b8ae; border-radius:5px; background:#fff; color:#183626;
}
.media-filters label, #media-new-tag label { min-width:0; max-width:100%; }
#media-new-tag, .media-actions, .media-tag-list { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
#media-new-tag { align-items:end; gap:12px; }
#media-new-tag label { display:flex; flex-direction:column; gap:4px; }
#media-new-tag input { width:24ch; }
.media-actions { margin:16px 0; }
.media-panel a.se-button, .media-panel a.se-button:visited { color:#183626; }
.media-panel a.se-button:hover { color:#183626; background:#e4eee7; }
.media-panel .media-tag-button, .media-panel a.media-tag-button:visited {
    display:inline-block; box-sizing:border-box; max-width:100%; white-space:normal; overflow-wrap:anywhere;
    padding:6px 10px; border:1px solid #547b61; border-radius:5px;
    background:#e8f0e9; color:#183626; font:inherit; font-size:14px; font-weight:600; text-decoration:none;
}
.media-panel .media-tag-button:hover, .media-panel a.media-tag-button:hover { color:#183626; background:#d5e5d8; }
.media-panel :is(a,button,select,input):focus-visible { outline:3px solid #b68b39; outline-offset:2px; }
.media-tag-group { border:1px solid #d7ddd9; border-radius:8px; overflow:hidden; background:#f7f8f7; margin:20px 0; }
.media-tag-group .media-tags { margin:0; table-layout:fixed; }
.media-tag-group caption { padding:10px; margin:0; }
.media-tag-group th, .media-tag-group td { border-color:#d7ddd9; }
.media-tag-group th:first-child, .media-tag-group td:first-child { width:100px; }
#media-crop-form input[type=number] { width:7.5rem; }
.media-lock-label { display:flex; align-items:center; gap:8px; }
#crop-lock { width:20px; height:20px; }

/* Match media action links and submit buttons; compact tag chips stay separate. */
.media-panel .se-button {
    display:inline-flex; align-items:center; justify-content:center; box-sizing:border-box;
    font:inherit; line-height:1.25; padding:8px 13px; min-height:38px;
    border:1px solid #547b61; border-radius:5px; vertical-align:middle;
    background:#f3f7f4; color:#183626; text-decoration:none; text-align:center;
}
.media-panel .se-button:hover { background:#e4eee7; }
#media-new-tag { margin-bottom:24px; }
.media-delete { margin:24px 0; padding-top:16px; border-top:1px solid #d7ddd9; }
.media-panel .media-danger { color:#842828; background:#fff4f4; border-color:#a34747; }
.media-panel .media-danger:hover { background:#f8dddd; }

/* Trip information and public home media share the responsive site shell. */
.ys-page.gt-page { max-width:1200px; }
.ys-table.gt-table th:first-child,.ys-table.gt-table td:first-child,
.ys-table.gt-table th:last-child,.ys-table.gt-table td:last-child { text-align:left; }
.gt-rounds td { white-space:pre-wrap; }
.home-photo { display:block; max-width:100%; width:auto; height:auto; max-height:600px; margin:20px auto; }
.limited-access { margin:16px 0; }
.limited-access input[type=password] { max-width:100%; box-sizing:border-box; padding:8px; }
/* Tee holes only: 60% of 82px / 108px / 100px, with the row-label column unchanged. */
.course-table.course-table--tee-holes { width:max-content; min-width:0; table-layout:fixed; }
.course-table--tee-holes.course-entry-grid .hole-column { width:49.2px; min-width:49.2px; }
.course-table--tee-holes.course-entry-grid .hole-column-wide { width:64.8px; min-width:64.8px; }
.course-table--tee-holes.course-entry-grid td:not(:first-child) input,
.course-table--tee-holes.course-entry-grid td:not(:first-child) select { width:64.8px; min-width:0; padding-left:2px; padding-right:2px; }
.course-table--tee-holes.course-entry-grid td:not(:first-child) .notes-input { width:60px; min-width:60px; }

.gt-caption { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }

.player-table .player-admin-edit { padding:4px 9px; }
.player-table th a { color:inherit; }
.trip-setup-page .setup-table { min-width:1450px; }
.trip-setup-page .setup-table th,.trip-setup-page .setup-table td { padding:4px; }

.handicap-table th button { border:0; background:transparent; color:inherit; font:inherit; font-weight:bold; cursor:pointer; padding:0; }

.media-crop-target { margin-bottom:24px; }

/* Heading actions and the public directory/card views. */
.summary-heading { display:flex; align-items:center; flex-wrap:wrap; gap:12px 20px; margin:20px 0 12px; min-width:0; }
.summary-heading h1,.ys-page .summary-heading h1 { margin:0; overflow-wrap:anywhere; }
.summary-heading .summary-photos { font-size:22px; line-height:1.25; padding:9px 20px; white-space:nowrap; }
.ps-profile > div { min-width:0; }
.player-admin-controls .attending-heading { font-size:26px; margin:0; }
.player-admin-controls .attending-heading label { font:inherit; }
.home-card-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px 22px; margin:28px 0 40px; }
.home-card { display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--pga-border); border-radius:8px; background:white; box-shadow:var(--pga-shadow); color:var(--pga-green-dark); text-decoration:none; }
.home-card:hover { box-shadow:0 5px 14px #18362633; border-color:var(--pga-green); }
.home-card:focus-visible { outline:3px solid var(--pga-green); outline-offset:4px; }
.home-card img,.home-card-placeholder { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.home-card-placeholder { display:grid; place-items:center; background:linear-gradient(135deg,#e8f1e9,#c8dccc); }
.home-card-placeholder span { display:grid; place-items:center; width:42%; aspect-ratio:1; border:2px solid #789b80; border-radius:50%; color:#557a5d; font-size:clamp(20px,3vw,40px); font-weight:bold; letter-spacing:.08em; }
.home-card-title { display:flex; align-items:center; justify-content:center; text-align:center; padding:14px 10px; font-size:22px; font-weight:bold; line-height:1.25; min-height:84px; flex:1; }
.public-list-filters { display:flex; align-items:end; flex-wrap:wrap; gap:14px; margin:20px 0; }
.public-list-filters label { display:flex; flex-direction:column; gap:4px; font-weight:bold; }
.public-list-filters select { padding:8px; font:inherit; max-width:100%; }
.list-help { color:var(--pga-text-light); font-size:14px; }
.public-list-scroll { overflow:auto; max-height:70vh; border:1px solid var(--pga-border); border-radius:8px; cursor:grab; position:relative; }
.public-list-scroll:focus-visible { outline:3px solid var(--pga-green); outline-offset:2px; }
.public-list-scroll.is-dragging { cursor:grabbing; user-select:none; }
.public-list-table { width:max-content; min-width:100%; border-collapse:separate; border-spacing:0; }
.public-list-table th,.public-list-table td { min-width:48px; padding:6px 9px; border-width:0 1px 1px 0; }
.public-list-table thead th { position:sticky; top:0; z-index:2; }
.public-list-table tr > :first-child { position:sticky; left:0; z-index:1; min-width:180px; max-width:260px; white-space:normal; background:white; box-shadow:2px 0 2px #0001; }
.public-list-table thead tr > :first-child { z-index:3; background:var(--pga-green-light); }
.public-list-table th button { min-height:30px; }
.public-list-table th[aria-sort=ascending] button::after { content:' ↑'; }
.public-list-table th[aria-sort=descending] button::after { content:' ↓'; }
@media(max-width:900px) { .home-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:480px) {
    .home-card-grid { gap:26px 12px; }
    .home-card-title { font-size:18px; padding:12px 6px; min-height:74px; }
    .summary-heading { gap:10px 14px; }
    .summary-heading .summary-photos { font-size:20px; padding:8px 16px; }
    .public-list-table tr > :first-child { min-width:140px; max-width:180px; }
}

.summary-heading .pga-nav-button,.public-list-filters .pga-nav-button { background:var(--pga-green); color:white; border-color:var(--pga-green); }
.summary-heading .pga-nav-button:hover,.public-list-filters .pga-nav-button:hover { background:var(--pga-green-dark); }
.trip-setup-body .pga-header-shell,.trip-setup-body .pga-maintenance-banner { width:min(1352px,calc(100% - 32px)); }

/* Compact brand and responsive photo/history section. */
.pga-header-left { align-items:flex-start; }
.pga-brand { white-space:normal; width:max-content; max-width:100%; }
.pga-brand-logo { display:block; width:auto; height:135px; max-width:100%; object-fit:contain; margin:8px auto 0; }
.home-intro { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:24px; align-items:start; margin:20px 0; }
.home-main-photo { min-width:0; height:480px; display:grid; place-items:center; }
.home-main-photo > a { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:0; }
.home-main-photo .home-photo { margin:0; width:100%; height:100%; max-height:480px; object-fit:contain; }
.home-history { border:1px solid var(--pga-border); border-radius:8px; padding:18px; background:white; overflow-wrap:anywhere; }
.home-history h2 { margin:0 0 12px; font-family:"Lucida Handwriting", "Brush Script MT", cursive; text-align:center; }
.home-history p { margin:0; line-height:1.6; text-align:justify; }
.ys-table.public-list-table .list-col-city { text-align:left; }
.ys-table.public-list-table .list-col-state,.ys-table.public-list-table .list-col-map,.ys-table.public-list-table .list-col-website,.ys-table.public-list-table .list-col-scorecard { text-align:center; }
.public-list-table th button { text-align:inherit; }
@media(max-width:600px) {
    .home-intro { grid-template-columns:minmax(0,1fr); gap:16px; }
    .pga-brand-logo { height:105px; }
    .home-main-photo { height:auto; }
    .home-main-photo > a { height:auto; }
    .home-main-photo .home-photo { height:auto; max-height:none; }
}
